mirror of
https://github.com/coder/coder.git
synced 2025-03-15 10:17:09 +00:00
chore: replace eslint with biome (#14263)
This commit is contained in:
committed by
GitHub
parent
7b09d98238
commit
d15f16fa2e
.editorconfig.prettierignore.prettierignore.include
.vscode
Makefileofflinedocs
package.jsonpnpm-lock.yamlsite
.eslintignore.eslintrc.yaml.prettierignore.prettierrc.yamlbiome.jsonrouter.tsx
e2e
api.tsconstants.tsexpectUrl.tshelpers.tshooks.tsparameters.tsplaywright.config.tsproxy.tsreporter.ts
jest-runner-eslint.config.jsjest.config.tspackage.jsonpnpm-lock.yamltests
src
@types
App.tsx__mocks__
api
api.test.tsapi.tserrors.test.ts
queries
appearance.tsdebug.tsentitlements.tsexternalAuth.tsgroups.tsinsights.tsnotifications.tsoauth2.tsorganizations.tsroles.tssettings.tssshKeys.tstemplates.tsusers.tsutil.tsworkspaceBuilds.tsworkspaces.ts
typesGenerated.tscomponents
Abbr
ActiveUserChart
Alert
Avatar
AvatarCard
AvatarData
Badges
BuildAvatar
BuildIcon
CopyButton
CopyableValue
DurationField
ErrorBoundary
Expander
ExternalImage
FileUpload
Filter
Form
FullPageForm
FullPageLayout
GlobalSnackbar
GroupAvatar
HelpTooltip
IconField
InfoTooltip
Latency
Logs
Menu
MoreMenu
OrganizationAutocomplete
PaginationWidget
Paywall
Pill
Popover
RichParameterInput
Search
SelectMenu
SettingsHeader
Sidebar
StackLabel
Stats
TableEmpty
Tabs
TemplateAvatar
Timeline
UserAutocomplete
UserAvatar
contexts
hooks
useClassName.tsuseClickable.test.tsxuseClipboard.test.tsxuseClipboard.tsuseEmbeddedMetadata.test.tsuseEmbeddedMetadata.tsusePaginatedQuery.test.tsusePaginatedQuery.tsusePagination.tsuseSearchParamsKey.test.tsuseWorkspaceBuildLogs.ts
modules
dashboard
AnnouncementBanners
DashboardLayout.tsxDashboardProvider.tsxDeploymentBanner
LicenseBanner
Navbar
DeploymentDropdown.tsxNavbar.test.tsxNavbar.tsxNavbarView.stories.tsxNavbarView.test.tsxNavbarView.tsxProxyMenu.stories.tsxProxyMenu.tsx
entitlements.tsuseUpdateCheck.test.tsxuseUpdateCheck.tsUserDropdown
resources
AgentLatency.tsx
AgentLogs
AgentMetadata.tsxAgentOutdatedTooltip.tsxAgentRow.test.tsxAgentRow.tsxAgentRowPreview.test.tsxAgentRowPreview.tsxAgentStatus.tsxAgentVersion.tsxAppLink
DownloadAgentLogsButton.stories.tsxDownloadAgentLogsButton.tsxPortForwardButton.tsxPortForwardPopoverView.test.tsxResourceAvatar.tsxResourceCard.tsxResources.tsxSSHButton
SensitiveValue.tsxTerminalLink
VSCodeDesktopButton
XRayScanAlert.tsxtemplates
TemplateExampleCard
TemplateFiles
TemplateResourcesTable
TemplateUpdateMessage.stories.tsxTemplateUpdateMessage.tsxuseWatchVersionLogs.tsworkspaces
WorkspaceBuildData
WorkspaceBuildLogs
WorkspaceDormantBadge
WorkspaceOutdatedTooltip
WorkspaceStatusBadge
activity.tspages
AuditPage
AuditFilter.tsxAuditHelpTooltip.tsx
AuditLogRow
AuditPage.test.tsxAuditPage.tsxAuditPageView.stories.tsxAuditPageView.tsxCliAuthPage
CreateTemplatePage
BuildLogsDrawer.tsxCreateTemplateForm.tsxCreateTemplatePage.test.tsxCreateTemplatePage.tsxDuplicateTemplateView.tsxImportStarterTemplateView.tsxTemplateUpload.tsxUploadTemplateView.tsxVariableInput.tsxutils.ts
CreateTemplatesGalleryPage
CreateTemplatesGalleryPage.tsxCreateTemplatesPageView.tsxStarterTemplates.tsxStarterTemplatesPage.test.tsxStarterTemplatesPageView.stories.tsxStarterTemplatesPageView.tsx
CreateTokenPage
CreateUserPage
CreateWorkspacePage
CreateWorkspacePage.test.tsxCreateWorkspacePage.tsxCreateWorkspacePageView.stories.tsxCreateWorkspacePageView.tsxExternalAuthButton.tsxSelectedTemplate.tsxuseWorkspaceDuplication.ts
DeploySettingsPage
AppearanceSettingsPage
AnnouncementBannerDialog.tsxAnnouncementBannerItem.tsxAnnouncementBannerSettings.tsxAppearanceSettingsPage.tsxAppearanceSettingsPageView.tsx
DeploySettingsLayout.tsxExternalAuthSettingsPage
Fieldset.tsxGeneralSettingsPage
LicensesSettingsPage
AddNewLicensePage.tsxAddNewLicensePageView.tsxLicenseCard.tsxLicensesSettingsPage.tsxLicensesSettingsPageView.tsx
NetworkSettingsPage
NotificationsPage
OAuth2AppsSettingsPage
CreateOAuth2AppPage.tsxCreateOAuth2AppPageView.stories.tsxCreateOAuth2AppPageView.tsxEditOAuth2AppPage.tsxEditOAuth2AppPageView.stories.tsxEditOAuth2AppPageView.tsxOAuth2AppForm.tsxOAuth2AppsSettingsPage.tsxOAuth2AppsSettingsPageView.stories.tsxOAuth2AppsSettingsPageView.tsx
ObservabilitySettingsPage
Option.tsxOptionsTable.tsxSecuritySettingsPage
Sidebar.tsxUserAuthSettingsPage
optionValue.test.tsoptionValue.tsExternalAuthPage
GroupsPage
CreateGroupPage.tsxCreateGroupPageView.tsxGroupPage.tsxGroupsPage.tsxGroupsPageView.tsxSettingsGroupPage.tsxSettingsGroupPageView.tsx
HealthPage
AccessURLPage.tsxContent.tsxDERPPage.stories.tsxDERPPage.tsxDERPRegionPage.stories.tsxDERPRegionPage.tsxDatabasePage.stories.tsxDatabasePage.tsxDismissWarningButton.tsxHealthLayout.tsxProvisionerDaemonsPage.stories.tsxProvisionerDaemonsPage.tsxWebsocketPage.stories.tsxWebsocketPage.tsxWorkspaceProxyPage.stories.tsxWorkspaceProxyPage.tsxstorybook.tsx
IconsPage
LoginPage
LoginPage.test.tsxLoginPage.tsxLoginPageView.tsxOAuthSignInForm.tsxPasswordSignInForm.tsxSignInForm.tsx
ManagementSettingsPage
CreateOrganizationPage.tsxCreateOrganizationPageView.stories.tsxCreateOrganizationPageView.tsx
CustomRolesPage
CreateEditRolePage.tsxCreateEditRolePageView.stories.tsxCreateEditRolePageView.tsxCustomRolesPage.tsxCustomRolesPageView.tsx
GroupsPage
CreateGroupPage.tsxCreateGroupPageView.tsxGroupPage.tsxGroupSettingsPage.tsxGroupSettingsPageView.tsxGroupsPage.tsxGroupsPageView.tsx
ManagementSettingsLayout.tsxOrganizationMembersPage.test.tsxOrganizationMembersPage.tsxOrganizationMembersPageView.stories.tsxOrganizationMembersPageView.tsxOrganizationSettingsPage.test.tsxOrganizationSettingsPage.tsxOrganizationSettingsPageView.tsxOrganizationSummaryPageView.tsxSidebar.tsxSidebarView.tsxUserTable
SetupPage
StarterTemplatePage
TemplatePage
TemplateDocsPage
TemplateEmbedPage
TemplateFilesPage
TemplateInsightsPage
TemplateLayout.tsxTemplatePageHeader.tsxTemplateRedirectController.tsxTemplateSummaryPage
TemplateVersionsPage
useDeletionDialogState.tsTemplateSettingsPage
Sidebar.tsx
TemplateGeneralSettingsPage
TemplateSettingsForm.tsxTemplateSettingsPage.test.tsxTemplateSettingsPage.tsxTemplateSettingsPageView.stories.tsxTemplateSettingsPageView.tsx
TemplatePermissionsPage
TemplateSchedulePage
AutostopRequirementHelperText.tsxScheduleDialog.tsxTemplateScheduleAutostart.tsxTemplateScheduleForm.tsxTemplateSchedulePage.test.tsxTemplateSchedulePage.tsxTemplateSchedulePageView.tsxformHelpers.tsxuseWorkspacesToBeDeleted.ts
TemplateSettingsLayout.tsxTemplateVariablesPage
TemplateVersionEditorPage
FileDialog.tsxMissingTemplateVariablesDialog.tsxMonacoEditor.tsxProvisionerTagsPopover.tsxPublishTemplateVersionDialog.tsxTemplateVersionEditor.tsxTemplateVersionEditorPage.test.tsxTemplateVersionEditorPage.tsxTemplateVersionStatusBadge.tsx
TemplateVersionPage
TemplatesPage
EmptyTemplates.tsxTemplatesFilter.tsxTemplatesPage.test.tsxTemplatesPage.tsxTemplatesPageView.stories.tsxTemplatesPageView.tsx
TerminalPage
UserSettingsPage
AccountPage
AppearancePage
ExternalAuthPage
Layout.tsxNotificationsPage
OAuth2ProviderPage
SSHKeysPage
SchedulePage
SecurityPage
Sidebar.tsxTokensPage
WorkspaceProxyPage
UsersPage
ResetPasswordDialog.tsxUsersFilter.tsxUsersLayout.tsxUsersPage.test.tsxUsersPage.tsxUsersPageView.stories.tsxUsersPageView.tsx
UsersTable
WorkspaceBuildPage
WorkspacePage
BuildRow.tsxChangeVersionDialog.tsxHistorySidebar.tsxResourceMetadata.tsxResourcesSidebar.tsxResourcesSidebarContent.tsxUpdateBuildParametersDialog.tsxWorkspace.stories.tsxWorkspace.tsx
WorkspaceActions
BuildParametersPopover.tsxButtons.tsxDebugButton.stories.tsxDebugButton.tsxDownloadLogsDialog.stories.tsxDownloadLogsDialog.tsxRetryButton.stories.tsxRetryButton.tsxWorkspaceActions.stories.tsxWorkspaceActions.tsx
WorkspaceBuildLogsSection.tsxWorkspaceBuildProgress.stories.tsxWorkspaceBuildProgress.tsxWorkspaceDeleteDialog
WorkspaceDeletedBanner.tsxWorkspaceNotifications
WorkspacePage.test.tsxWorkspacePage.tsxWorkspaceReadyPage.tsxWorkspaceScheduleControls.test.tsxWorkspaceScheduleControls.tsxWorkspaceTopbar.stories.tsxWorkspaceTopbar.tsxpermissions.tsuseResourcesNav.test.tsxuseResourcesNav.tsWorkspaceSettingsPage
Sidebar.tsx
WorkspaceParametersPage
WorkspaceParametersForm.tsxWorkspaceParametersPage.stories.tsxWorkspaceParametersPage.test.tsxWorkspaceParametersPage.tsx
WorkspaceSchedulePage
WorkspaceScheduleForm.test.tsxWorkspaceScheduleForm.tsxWorkspaceSchedulePage.test.tsxWorkspaceSchedulePage.tsxformToRequest.tsschedule.ts
WorkspaceSettingsForm.tsxWorkspaceSettingsLayout.tsxWorkspaceSettingsPage.tsxWorkspaceSettingsPageView.tsxWorkspacesPage
BatchDeleteConfirmation.stories.tsxBatchDeleteConfirmation.tsxBatchUpdateConfirmation.stories.tsxBatchUpdateConfirmation.tsxLastUsed.tsxWorkspaceHelpTooltip.tsxWorkspacesButton.tsxWorkspacesEmpty.tsxWorkspacesPage.test.tsxWorkspacesPage.tsxWorkspacesPageView.stories.tsxWorkspacesPageView.tsxWorkspacesTable.tsxbatchActions.tsxdata.ts
filter
testHelpers
theme
utils
appearance.tscolors.test.tsdeployOptions.tsdormant.test.tsellipsizeText.test.tsfiletree.test.tsfiletree.tsfilters.tsformUtils.stories.tsxformUtils.tsgroups.tsportForward.tsprovisionerJob.tsrichParameters.tsschedule.test.tsschedule.tsxstarterTemplates.tstar.test.tstar.tsterminal.tsworkspace.test.tsworkspace.tsx
@ -7,7 +7,7 @@ trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
indent_style = tab
|
||||
|
||||
[*.{md,json,yaml,yml,tf,tfvars,nix}]
|
||||
[*.{md,yaml,yml,tf,tfvars,nix}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
|
@ -79,19 +79,13 @@ result
|
||||
# by Prettier.
|
||||
helm/**/templates/*.yaml
|
||||
|
||||
# Terraform state files used in tests, these are automatically generated.
|
||||
# Example: provisioner/terraform/testdata/instance-id/instance-id.tfstate.json
|
||||
**/testdata/**/*.tf*.json
|
||||
|
||||
# Testdata shouldn't be formatted.
|
||||
scripts/apitypings/testdata/**/*.ts
|
||||
enterprise/tailnet/testdata/*.golden.html
|
||||
tailnet/testdata/*.golden.html
|
||||
|
||||
# Generated files shouldn't be formatted.
|
||||
site/e2e/provisionerGenerated.ts
|
||||
testdata/
|
||||
|
||||
# Ignore generated files
|
||||
**/pnpm-lock.yaml
|
||||
|
||||
# Ignore generated JSON (e.g. examples/examples.gen.json).
|
||||
**/*.gen.json
|
||||
|
||||
# Everything in site/ is formatted by Biome. For the rest of the repo though, we
|
||||
# need broader language support.
|
||||
site/
|
||||
|
@ -2,19 +2,13 @@
|
||||
# by Prettier.
|
||||
helm/**/templates/*.yaml
|
||||
|
||||
# Terraform state files used in tests, these are automatically generated.
|
||||
# Example: provisioner/terraform/testdata/instance-id/instance-id.tfstate.json
|
||||
**/testdata/**/*.tf*.json
|
||||
|
||||
# Testdata shouldn't be formatted.
|
||||
scripts/apitypings/testdata/**/*.ts
|
||||
enterprise/tailnet/testdata/*.golden.html
|
||||
tailnet/testdata/*.golden.html
|
||||
|
||||
# Generated files shouldn't be formatted.
|
||||
site/e2e/provisionerGenerated.ts
|
||||
testdata/
|
||||
|
||||
# Ignore generated files
|
||||
**/pnpm-lock.yaml
|
||||
|
||||
# Ignore generated JSON (e.g. examples/examples.gen.json).
|
||||
**/*.gen.json
|
||||
|
||||
# Everything in site/ is formatted by Biome. For the rest of the repo though, we
|
||||
# need broader language support.
|
||||
site/
|
||||
|
4
.vscode/extensions.json
vendored
4
.vscode/extensions.json
vendored
@ -9,7 +9,7 @@
|
||||
"zxh404.vscode-proto3",
|
||||
"redhat.vscode-yaml",
|
||||
"streetsidesoftware.code-spell-checker",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"EditorConfig.EditorConfig"
|
||||
"EditorConfig.EditorConfig",
|
||||
"biomejs.biome"
|
||||
]
|
||||
}
|
||||
|
14
.vscode/settings.json
vendored
14
.vscode/settings.json
vendored
@ -190,7 +190,6 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"eslint.workingDirectories": ["./site"],
|
||||
"search.exclude": {
|
||||
"**.pb.go": true,
|
||||
"**/*.gen.json": true,
|
||||
@ -224,5 +223,16 @@
|
||||
// with VS Code.
|
||||
"typescript.tsdk": "./site/node_modules/typescript/lib",
|
||||
// Playwright tests in VSCode will open a browser to live "view" the test.
|
||||
"playwright.reuseBrowser": true
|
||||
"playwright.reuseBrowser": true,
|
||||
|
||||
"[javascript][javascriptreact][json][jsonc][typescript][typescriptreact]": {
|
||||
"editor.defaultFormatter": "biomejs.biome"
|
||||
// "editor.codeActionsOnSave": {
|
||||
// "source.organizeImports.biome": "explicit"
|
||||
// }
|
||||
},
|
||||
|
||||
"[css][html][markdown][yaml]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
}
|
||||
}
|
||||
|
80
Makefile
80
Makefile
@ -391,7 +391,7 @@ BOLD := $(shell tput bold 2>/dev/null)
|
||||
GREEN := $(shell tput setaf 2 2>/dev/null)
|
||||
RESET := $(shell tput sgr0 2>/dev/null)
|
||||
|
||||
fmt: fmt/eslint fmt/prettier fmt/terraform fmt/shfmt fmt/go
|
||||
fmt: fmt/ts fmt/go fmt/terraform fmt/shfmt fmt/prettier
|
||||
.PHONY: fmt
|
||||
|
||||
fmt/go:
|
||||
@ -401,15 +401,19 @@ fmt/go:
|
||||
go run mvdan.cc/gofumpt@v0.4.0 -w -l .
|
||||
.PHONY: fmt/go
|
||||
|
||||
fmt/eslint:
|
||||
echo "$(GREEN)==>$(RESET) $(BOLD)fmt/eslint$(RESET)"
|
||||
fmt/ts:
|
||||
echo "$(GREEN)==>$(RESET) $(BOLD)fmt/ts$(RESET)"
|
||||
cd site
|
||||
pnpm run lint:fix
|
||||
.PHONY: fmt/eslint
|
||||
# Avoid writing files in CI to reduce file write activity
|
||||
ifdef CI
|
||||
pnpm run check --linter-enabled=false
|
||||
else
|
||||
pnpm run check:fix
|
||||
endif
|
||||
.PHONY: fmt/ts
|
||||
|
||||
fmt/prettier:
|
||||
fmt/prettier: .prettierignore
|
||||
echo "$(GREEN)==>$(RESET) $(BOLD)fmt/prettier$(RESET)"
|
||||
cd site
|
||||
# Avoid writing files in CI to reduce file write activity
|
||||
ifdef CI
|
||||
pnpm run format:check
|
||||
@ -442,7 +446,7 @@ lint/site-icons:
|
||||
|
||||
lint/ts:
|
||||
cd site
|
||||
pnpm i && pnpm lint
|
||||
pnpm lint
|
||||
.PHONY: lint/ts
|
||||
|
||||
lint/go:
|
||||
@ -495,9 +499,6 @@ gen: \
|
||||
.prettierignore.include \
|
||||
.prettierignore \
|
||||
provisioner/terraform/testdata/version \
|
||||
site/.prettierrc.yaml \
|
||||
site/.prettierignore \
|
||||
site/.eslintignore \
|
||||
site/e2e/provisionerGenerated.ts \
|
||||
site/src/theme/icons.json \
|
||||
examples/examples.gen.json \
|
||||
@ -526,9 +527,6 @@ gen/mark-fresh:
|
||||
coderd/apidoc/swagger.json \
|
||||
.prettierignore.include \
|
||||
.prettierignore \
|
||||
site/.prettierrc.yaml \
|
||||
site/.prettierignore \
|
||||
site/.eslintignore \
|
||||
site/e2e/provisionerGenerated.ts \
|
||||
site/src/theme/icons.json \
|
||||
examples/examples.gen.json \
|
||||
@ -603,7 +601,6 @@ provisionerd/proto/provisionerd.pb.go: provisionerd/proto/provisionerd.proto
|
||||
site/src/api/typesGenerated.ts: $(wildcard scripts/apitypings/*) $(shell find ./codersdk $(FIND_EXCLUSIONS) -type f -name '*.go')
|
||||
go run ./scripts/apitypings/ > $@
|
||||
./scripts/pnpm_install.sh
|
||||
pnpm exec prettier --write "$@"
|
||||
|
||||
site/e2e/provisionerGenerated.ts: provisionerd/proto/provisionerd.pb.go provisionersdk/proto/provisioner.pb.go
|
||||
cd site
|
||||
@ -613,7 +610,7 @@ site/e2e/provisionerGenerated.ts: provisionerd/proto/provisionerd.pb.go provisio
|
||||
site/src/theme/icons.json: $(wildcard scripts/gensite/*) $(wildcard site/static/icon/*)
|
||||
go run ./scripts/gensite/ -icons "$@"
|
||||
./scripts/pnpm_install.sh
|
||||
pnpm exec prettier --write "$@"
|
||||
pnpm -C site/ exec biome format --write src/theme/icons.json
|
||||
|
||||
examples/examples.gen.json: scripts/examplegen/main.go examples/examples.go $(shell find ./examples/templates)
|
||||
go run ./scripts/examplegen/main.go > examples/examples.gen.json
|
||||
@ -702,23 +699,6 @@ scripts/ci-report/testdata/.gen-golden: $(wildcard scripts/ci-report/testdata/*)
|
||||
go test ./scripts/ci-report -run=TestOutputMatchesGoldenFile -update
|
||||
touch "$@"
|
||||
|
||||
# Generate a prettierrc for the site package that uses relative paths for
|
||||
# overrides. This allows us to share the same prettier config between the
|
||||
# site and the root of the repo.
|
||||
site/.prettierrc.yaml: .prettierrc.yaml
|
||||
. ./scripts/lib.sh
|
||||
dependencies yq
|
||||
|
||||
echo "# Code generated by Makefile (../$<). DO NOT EDIT." > "$@"
|
||||
echo "" >> "$@"
|
||||
|
||||
# Replace all listed override files with relative paths inside site/.
|
||||
# - ./ -> ../
|
||||
# - ./site -> ./
|
||||
yq \
|
||||
'.overrides[].files |= map(. | sub("^./"; "") | sub("^"; "../") | sub("../site/"; "./") | sub("../!"; "!../"))' \
|
||||
"$<" >> "$@"
|
||||
|
||||
# Combine .gitignore with .prettierignore.include to generate .prettierignore.
|
||||
.prettierignore: .gitignore .prettierignore.include
|
||||
echo "# Code generated by Makefile ($^). DO NOT EDIT." > "$@"
|
||||
@ -728,40 +708,6 @@ site/.prettierrc.yaml: .prettierrc.yaml
|
||||
cat "$$f" >> "$@"
|
||||
done
|
||||
|
||||
# Generate ignore files based on gitignore into the site directory. We turn all
|
||||
# rules into relative paths for the `site/` directory (where applicable),
|
||||
# following the pattern format defined by git:
|
||||
# https://git-scm.com/docs/gitignore#_pattern_format
|
||||
#
|
||||
# This is done for compatibility reasons, see:
|
||||
# https://github.com/prettier/prettier/issues/8048
|
||||
# https://github.com/prettier/prettier/issues/8506
|
||||
# https://github.com/prettier/prettier/issues/8679
|
||||
site/.eslintignore site/.prettierignore: .prettierignore Makefile
|
||||
rm -f "$@"
|
||||
touch "$@"
|
||||
# Skip generated by header, inherit `.prettierignore` header as-is.
|
||||
while read -r rule; do
|
||||
# Remove leading ! if present to simplify rule, added back at the end.
|
||||
tmp="$${rule#!}"
|
||||
ignore="$${rule%"$$tmp"}"
|
||||
rule="$$tmp"
|
||||
case "$$rule" in
|
||||
# Comments or empty lines (include).
|
||||
\#*|'') ;;
|
||||
# Generic rules (include).
|
||||
\*\**) ;;
|
||||
# Site prefixed rules (include).
|
||||
site/*) rule="$${rule#site/}";;
|
||||
./site/*) rule="$${rule#./site/}";;
|
||||
# Rules that are non-generic and don't start with site (rewrite).
|
||||
/*) rule=.."$$rule";;
|
||||
*/?*) rule=../"$$rule";;
|
||||
*) ;;
|
||||
esac
|
||||
echo "$${ignore}$${rule}" >> "$@"
|
||||
done < "$<"
|
||||
|
||||
test:
|
||||
$(GIT_FLAGS) gotestsum --format standard-quiet -- -v -short -count=1 ./...
|
||||
.PHONY: test
|
||||
|
@ -16,7 +16,6 @@
|
||||
"@chakra-ui/react": "2.8.2",
|
||||
"@emotion/react": "11.11.4",
|
||||
"@emotion/styled": "11.11.5",
|
||||
"@types/lodash": "4.14.196",
|
||||
"archiver": "6.0.2",
|
||||
"framer-motion": "^10.17.6",
|
||||
"front-matter": "4.0.2",
|
||||
@ -36,7 +35,7 @@
|
||||
"@types/react-dom": "18.3.0",
|
||||
"eslint": "8.56.0",
|
||||
"eslint-config-next": "14.0.1",
|
||||
"prettier": "3.1.0",
|
||||
"prettier": "3.3.3",
|
||||
"typescript": "5.3.2"
|
||||
},
|
||||
"engines": {
|
||||
|
427
offlinedocs/pnpm-lock.yaml
generated
427
offlinedocs/pnpm-lock.yaml
generated
@ -10,22 +10,19 @@ importers:
|
||||
dependencies:
|
||||
'@chakra-ui/react':
|
||||
specifier: 2.8.2
|
||||
version: 2.8.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.3)(framer-motion@10.17.6)(react-dom@18.3.1)(react@18.3.1)
|
||||
version: 2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@emotion/react':
|
||||
specifier: 11.11.4
|
||||
version: 11.11.4(@types/react@18.3.3)(react@18.3.1)
|
||||
'@emotion/styled':
|
||||
specifier: 11.11.5
|
||||
version: 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.3)(react@18.3.1)
|
||||
'@types/lodash':
|
||||
specifier: 4.14.196
|
||||
version: 4.14.196
|
||||
version: 11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)
|
||||
archiver:
|
||||
specifier: 6.0.2
|
||||
version: 6.0.2
|
||||
framer-motion:
|
||||
specifier: ^10.17.6
|
||||
version: 10.17.6(react-dom@18.3.1)(react@18.3.1)
|
||||
version: 10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
front-matter:
|
||||
specifier: 4.0.2
|
||||
version: 4.0.2
|
||||
@ -34,7 +31,7 @@ importers:
|
||||
version: 4.17.21
|
||||
next:
|
||||
specifier: 14.2.4
|
||||
version: 14.2.4(react-dom@18.3.1)(react@18.3.1)
|
||||
version: 14.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
react:
|
||||
specifier: 18.3.1
|
||||
version: 18.3.1
|
||||
@ -54,6 +51,9 @@ importers:
|
||||
specifier: 4.0.0
|
||||
version: 4.0.0
|
||||
devDependencies:
|
||||
'@types/lodash':
|
||||
specifier: 4.14.196
|
||||
version: 4.14.196
|
||||
'@types/node':
|
||||
specifier: 18.19.0
|
||||
version: 18.19.0
|
||||
@ -70,8 +70,8 @@ importers:
|
||||
specifier: 14.0.1
|
||||
version: 14.0.1(eslint@8.56.0)(typescript@5.3.2)
|
||||
prettier:
|
||||
specifier: 3.1.0
|
||||
version: 3.1.0
|
||||
specifier: 3.3.3
|
||||
version: 3.3.3
|
||||
typescript:
|
||||
specifier: 5.3.2
|
||||
version: 5.3.2
|
||||
@ -2100,8 +2100,8 @@ packages:
|
||||
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
|
||||
engines: {node: '>= 0.8.0'}
|
||||
|
||||
prettier@3.1.0:
|
||||
resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==}
|
||||
prettier@3.3.3:
|
||||
resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==}
|
||||
engines: {node: '>=14'}
|
||||
hasBin: true
|
||||
|
||||
@ -2634,69 +2634,69 @@ snapshots:
|
||||
'@babel/helper-validator-identifier': 7.22.20
|
||||
to-fast-properties: 2.0.0
|
||||
|
||||
'@chakra-ui/accordion@2.3.1(@chakra-ui/system@2.6.2)(framer-motion@10.17.6)(react@18.3.1)':
|
||||
'@chakra-ui/accordion@2.3.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(framer-motion@10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/descendant': 3.1.0(react@18.3.1)
|
||||
'@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/react-context': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-use-controllable-state': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/transition': 2.1.0(framer-motion@10.17.6)(react@18.3.1)
|
||||
framer-motion: 10.17.6(react-dom@18.3.1)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/transition': 2.1.0(framer-motion@10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
framer-motion: 10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/alert@2.2.2(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/alert@2.2.2(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/react-context': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/spinner': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/spinner': 2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/anatomy@2.2.2': {}
|
||||
|
||||
'@chakra-ui/avatar@2.3.0(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/avatar@2.3.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/image': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/image': 2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/react-children-utils': 2.0.6(react@18.3.1)
|
||||
'@chakra-ui/react-context': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/breadcrumb@2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/breadcrumb@2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/react-children-utils': 2.0.6(react@18.3.1)
|
||||
'@chakra-ui/react-context': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/breakpoint-utils@2.0.8':
|
||||
dependencies:
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
|
||||
'@chakra-ui/button@2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/button@2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/react-context': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/spinner': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/spinner': 2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/card@2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/card@2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/checkbox@2.3.2(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/checkbox@2.3.2(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/react-context': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-types': 2.0.7(react@18.3.1)
|
||||
'@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1)
|
||||
@ -2705,8 +2705,8 @@ snapshots:
|
||||
'@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-use-update-effect': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/visually-hidden': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/visually-hidden': 2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@zag-js/focus-visible': 0.16.0
|
||||
react: 18.3.1
|
||||
|
||||
@ -2716,10 +2716,10 @@ snapshots:
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/close-button@2.1.1(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/close-button@2.1.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/color-mode@2.2.0(react@18.3.1)':
|
||||
@ -2727,9 +2727,9 @@ snapshots:
|
||||
'@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/control-box@2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/control-box@2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/counter@2.1.0(react@18.3.1)':
|
||||
@ -2739,7 +2739,7 @@ snapshots:
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/css-reset@2.3.0(@emotion/react@11.11.4)(react@18.3.1)':
|
||||
'@chakra-ui/css-reset@2.3.0(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@emotion/react': 11.11.4(@types/react@18.3.3)(react@18.3.1)
|
||||
react: 18.3.1
|
||||
@ -2752,7 +2752,7 @@ snapshots:
|
||||
|
||||
'@chakra-ui/dom-utils@2.1.0': {}
|
||||
|
||||
'@chakra-ui/editable@3.1.0(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/editable@3.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/react-context': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-types': 2.0.7(react@18.3.1)
|
||||
@ -2763,7 +2763,7 @@ snapshots:
|
||||
'@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-use-update-effect': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/event-utils@2.0.8': {}
|
||||
@ -2776,14 +2776,14 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- '@types/react'
|
||||
|
||||
'@chakra-ui/form-control@2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/form-control@2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/react-context': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-types': 2.0.7(react@18.3.1)
|
||||
'@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/hooks@2.2.1(react@18.3.1)':
|
||||
@ -2794,38 +2794,38 @@ snapshots:
|
||||
copy-to-clipboard: 3.3.3
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/icon@3.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/icon@3.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/image@2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/image@2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/input@2.1.2(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/input@2.1.2(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/object-utils': 2.1.0
|
||||
'@chakra-ui/react-children-utils': 2.0.6(react@18.3.1)
|
||||
'@chakra-ui/react-context': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/layout@2.3.1(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/layout@2.3.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/breakpoint-utils': 2.0.8
|
||||
'@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/object-utils': 2.1.0
|
||||
'@chakra-ui/react-children-utils': 2.0.6(react@18.3.1)
|
||||
'@chakra-ui/react-context': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/lazy-utils@2.0.5': {}
|
||||
@ -2834,15 +2834,15 @@ snapshots:
|
||||
dependencies:
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/media-query@3.3.0(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/media-query@3.3.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/breakpoint-utils': 2.0.8
|
||||
'@chakra-ui/react-env': 3.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/menu@2.2.1(@chakra-ui/system@2.6.2)(framer-motion@10.17.6)(react@18.3.1)':
|
||||
'@chakra-ui/menu@2.2.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(framer-motion@10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/clickable': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/descendant': 3.1.0(react@18.3.1)
|
||||
@ -2858,35 +2858,35 @@ snapshots:
|
||||
'@chakra-ui/react-use-outside-click': 2.2.0(react@18.3.1)
|
||||
'@chakra-ui/react-use-update-effect': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/transition': 2.1.0(framer-motion@10.17.6)(react@18.3.1)
|
||||
framer-motion: 10.17.6(react-dom@18.3.1)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/transition': 2.1.0(framer-motion@10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
framer-motion: 10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/modal@2.3.1(@chakra-ui/system@2.6.2)(@types/react@18.3.3)(framer-motion@10.17.6)(react-dom@18.3.1)(react@18.3.1)':
|
||||
'@chakra-ui/modal@2.3.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/focus-lock': 2.1.0(@types/react@18.3.3)(react@18.3.1)
|
||||
'@chakra-ui/portal': 2.1.0(react-dom@18.3.1)(react@18.3.1)
|
||||
'@chakra-ui/portal': 2.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/react-context': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-types': 2.0.7(react@18.3.1)
|
||||
'@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/transition': 2.1.0(framer-motion@10.17.6)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/transition': 2.1.0(framer-motion@10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
aria-hidden: 1.2.3
|
||||
framer-motion: 10.17.6(react-dom@18.3.1)(react@18.3.1)
|
||||
framer-motion: 10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
react-remove-scroll: 2.5.6(@types/react@18.3.3)(react@18.3.1)
|
||||
transitivePeerDependencies:
|
||||
- '@types/react'
|
||||
|
||||
'@chakra-ui/number-input@2.1.2(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/number-input@2.1.2(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/counter': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/react-context': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-types': 2.0.7(react@18.3.1)
|
||||
'@chakra-ui/react-use-callback-ref': 2.1.0(react@18.3.1)
|
||||
@ -2896,14 +2896,14 @@ snapshots:
|
||||
'@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-use-update-effect': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/number-utils@2.0.7': {}
|
||||
|
||||
'@chakra-ui/object-utils@2.1.0': {}
|
||||
|
||||
'@chakra-ui/pin-input@2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/pin-input@2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/descendant': 3.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-children-utils': 2.0.6(react@18.3.1)
|
||||
@ -2911,12 +2911,12 @@ snapshots:
|
||||
'@chakra-ui/react-use-controllable-state': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/popover@2.2.1(@chakra-ui/system@2.6.2)(framer-motion@10.17.6)(react@18.3.1)':
|
||||
'@chakra-ui/popover@2.2.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(framer-motion@10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/lazy-utils': 2.0.5
|
||||
'@chakra-ui/popper': 3.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-context': 2.1.0(react@18.3.1)
|
||||
@ -2927,8 +2927,8 @@ snapshots:
|
||||
'@chakra-ui/react-use-focus-on-pointer-down': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
framer-motion: 10.17.6(react-dom@18.3.1)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
framer-motion: 10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/popper@3.1.0(react@18.3.1)':
|
||||
@ -2938,39 +2938,39 @@ snapshots:
|
||||
'@popperjs/core': 2.11.8
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/portal@2.1.0(react-dom@18.3.1)(react@18.3.1)':
|
||||
'@chakra-ui/portal@2.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/react-context': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1)
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
|
||||
'@chakra-ui/progress@2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/progress@2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/react-context': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/provider@2.4.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react-dom@18.3.1)(react@18.3.1)':
|
||||
'@chakra-ui/provider@2.4.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/css-reset': 2.3.0(@emotion/react@11.11.4)(react@18.3.1)
|
||||
'@chakra-ui/portal': 2.1.0(react-dom@18.3.1)(react@18.3.1)
|
||||
'@chakra-ui/css-reset': 2.3.0(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/portal': 2.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/react-env': 3.1.0(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/utils': 2.0.15
|
||||
'@emotion/react': 11.11.4(@types/react@18.3.3)(react@18.3.1)
|
||||
'@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.3)(react@18.3.1)
|
||||
'@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
|
||||
'@chakra-ui/radio@2.1.2(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/radio@2.1.2(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/react-context': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-types': 2.0.7(react@18.3.1)
|
||||
'@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
'@zag-js/focus-visible': 0.16.0
|
||||
react: 18.3.1
|
||||
|
||||
@ -3081,92 +3081,92 @@ snapshots:
|
||||
'@chakra-ui/utils': 2.0.15
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/react@2.8.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.3)(framer-motion@10.17.6)(react-dom@18.3.1)(react@18.3.1)':
|
||||
'@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/accordion': 2.3.1(@chakra-ui/system@2.6.2)(framer-motion@10.17.6)(react@18.3.1)
|
||||
'@chakra-ui/alert': 2.2.2(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/avatar': 2.3.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/breadcrumb': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/button': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/card': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/checkbox': 2.3.2(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/control-box': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/accordion': 2.3.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(framer-motion@10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/alert': 2.2.2(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/avatar': 2.3.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/breadcrumb': 2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/button': 2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/card': 2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/checkbox': 2.3.2(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/control-box': 2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/counter': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/css-reset': 2.3.0(@emotion/react@11.11.4)(react@18.3.1)
|
||||
'@chakra-ui/editable': 3.1.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/css-reset': 2.3.0(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/editable': 3.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/focus-lock': 2.1.0(@types/react@18.3.3)(react@18.3.1)
|
||||
'@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/hooks': 2.2.1(react@18.3.1)
|
||||
'@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/image': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/input': 2.1.2(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/layout': 2.3.1(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/image': 2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/input': 2.1.2(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/layout': 2.3.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/live-region': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/media-query': 3.3.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/menu': 2.2.1(@chakra-ui/system@2.6.2)(framer-motion@10.17.6)(react@18.3.1)
|
||||
'@chakra-ui/modal': 2.3.1(@chakra-ui/system@2.6.2)(@types/react@18.3.3)(framer-motion@10.17.6)(react-dom@18.3.1)(react@18.3.1)
|
||||
'@chakra-ui/number-input': 2.1.2(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/pin-input': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/popover': 2.2.1(@chakra-ui/system@2.6.2)(framer-motion@10.17.6)(react@18.3.1)
|
||||
'@chakra-ui/media-query': 3.3.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/menu': 2.2.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(framer-motion@10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/modal': 2.3.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/number-input': 2.1.2(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/pin-input': 2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/popover': 2.2.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(framer-motion@10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/popper': 3.1.0(react@18.3.1)
|
||||
'@chakra-ui/portal': 2.1.0(react-dom@18.3.1)(react@18.3.1)
|
||||
'@chakra-ui/progress': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/provider': 2.4.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react-dom@18.3.1)(react@18.3.1)
|
||||
'@chakra-ui/radio': 2.1.2(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/portal': 2.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/progress': 2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/provider': 2.4.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/radio': 2.1.2(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/react-env': 3.1.0(react@18.3.1)
|
||||
'@chakra-ui/select': 2.1.2(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/skeleton': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/skip-nav': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/slider': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/spinner': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/stat': 2.1.1(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/stepper': 2.3.1(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/select': 2.1.2(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/skeleton': 2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/skip-nav': 2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/slider': 2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/spinner': 2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/stat': 2.1.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/stepper': 2.3.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/styled-system': 2.9.2
|
||||
'@chakra-ui/switch': 2.1.2(@chakra-ui/system@2.6.2)(framer-motion@10.17.6)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/table': 2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/tabs': 3.0.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/tag': 3.1.1(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/textarea': 2.1.2(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/switch': 2.1.2(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(framer-motion@10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/table': 2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/tabs': 3.0.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/tag': 3.1.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/textarea': 2.1.2(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/theme': 3.3.1(@chakra-ui/styled-system@2.9.2)
|
||||
'@chakra-ui/theme-utils': 2.0.21
|
||||
'@chakra-ui/toast': 7.0.2(@chakra-ui/system@2.6.2)(framer-motion@10.17.6)(react-dom@18.3.1)(react@18.3.1)
|
||||
'@chakra-ui/tooltip': 2.3.1(@chakra-ui/system@2.6.2)(framer-motion@10.17.6)(react-dom@18.3.1)(react@18.3.1)
|
||||
'@chakra-ui/transition': 2.1.0(framer-motion@10.17.6)(react@18.3.1)
|
||||
'@chakra-ui/toast': 7.0.2(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(framer-motion@10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/tooltip': 2.3.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(framer-motion@10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/transition': 2.1.0(framer-motion@10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/utils': 2.0.15
|
||||
'@chakra-ui/visually-hidden': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/visually-hidden': 2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@emotion/react': 11.11.4(@types/react@18.3.3)(react@18.3.1)
|
||||
'@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.3)(react@18.3.1)
|
||||
framer-motion: 10.17.6(react-dom@18.3.1)(react@18.3.1)
|
||||
'@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)
|
||||
framer-motion: 10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
transitivePeerDependencies:
|
||||
- '@types/react'
|
||||
|
||||
'@chakra-ui/select@2.1.2(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/select@2.1.2(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/shared-utils@2.0.5': {}
|
||||
|
||||
'@chakra-ui/skeleton@2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/skeleton@2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/media-query': 3.3.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/media-query': 3.3.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/react-use-previous': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/skip-nav@2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/skip-nav@2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/slider@2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/slider@2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/number-utils': 2.0.7
|
||||
'@chakra-ui/react-context': 2.1.0(react@18.3.1)
|
||||
@ -3178,29 +3178,29 @@ snapshots:
|
||||
'@chakra-ui/react-use-pan-event': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-use-size': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-use-update-effect': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/spinner@2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/spinner@2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/stat@2.1.1(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/stat@2.1.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/react-context': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/stepper@2.3.1(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/stepper@2.3.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/react-context': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/styled-system@2.9.2':
|
||||
@ -3209,15 +3209,15 @@ snapshots:
|
||||
csstype: 3.1.2
|
||||
lodash.mergewith: 4.6.2
|
||||
|
||||
'@chakra-ui/switch@2.1.2(@chakra-ui/system@2.6.2)(framer-motion@10.17.6)(react@18.3.1)':
|
||||
'@chakra-ui/switch@2.1.2(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(framer-motion@10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/checkbox': 2.3.2(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/checkbox': 2.3.2(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
framer-motion: 10.17.6(react-dom@18.3.1)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
framer-motion: 10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/system@2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)':
|
||||
'@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/color-mode': 2.2.0(react@18.3.1)
|
||||
'@chakra-ui/object-utils': 2.1.0
|
||||
@ -3226,18 +3226,18 @@ snapshots:
|
||||
'@chakra-ui/theme-utils': 2.0.21
|
||||
'@chakra-ui/utils': 2.0.15
|
||||
'@emotion/react': 11.11.4(@types/react@18.3.3)(react@18.3.1)
|
||||
'@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.3)(react@18.3.1)
|
||||
'@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)
|
||||
react: 18.3.1
|
||||
react-fast-compare: 3.2.2
|
||||
|
||||
'@chakra-ui/table@2.1.0(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/table@2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/react-context': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/tabs@3.0.0(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/tabs@3.0.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/clickable': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/descendant': 3.1.0(react@18.3.1)
|
||||
@ -3248,21 +3248,21 @@ snapshots:
|
||||
'@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/tag@3.1.1(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/tag@3.1.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/react-context': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/textarea@2.1.2(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/textarea@2.1.2(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/theme-tools@2.1.2(@chakra-ui/styled-system@2.9.2)':
|
||||
@ -3286,41 +3286,41 @@ snapshots:
|
||||
'@chakra-ui/styled-system': 2.9.2
|
||||
'@chakra-ui/theme-tools': 2.1.2(@chakra-ui/styled-system@2.9.2)
|
||||
|
||||
'@chakra-ui/toast@7.0.2(@chakra-ui/system@2.6.2)(framer-motion@10.17.6)(react-dom@18.3.1)(react@18.3.1)':
|
||||
'@chakra-ui/toast@7.0.2(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(framer-motion@10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/alert': 2.2.2(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.2)(react@18.3.1)
|
||||
'@chakra-ui/portal': 2.1.0(react-dom@18.3.1)(react@18.3.1)
|
||||
'@chakra-ui/alert': 2.2.2(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/portal': 2.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/react-context': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-use-timeout': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-use-update-effect': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/styled-system': 2.9.2
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/theme': 3.3.1(@chakra-ui/styled-system@2.9.2)
|
||||
framer-motion: 10.17.6(react-dom@18.3.1)(react@18.3.1)
|
||||
framer-motion: 10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
|
||||
'@chakra-ui/tooltip@2.3.1(@chakra-ui/system@2.6.2)(framer-motion@10.17.6)(react-dom@18.3.1)(react@18.3.1)':
|
||||
'@chakra-ui/tooltip@2.3.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(framer-motion@10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/dom-utils': 2.1.0
|
||||
'@chakra-ui/popper': 3.1.0(react@18.3.1)
|
||||
'@chakra-ui/portal': 2.1.0(react-dom@18.3.1)(react@18.3.1)
|
||||
'@chakra-ui/portal': 2.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@chakra-ui/react-types': 2.0.7(react@18.3.1)
|
||||
'@chakra-ui/react-use-disclosure': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-use-event-listener': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/react-use-merge-refs': 2.1.0(react@18.3.1)
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
framer-motion: 10.17.6(react-dom@18.3.1)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
framer-motion: 10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
|
||||
'@chakra-ui/transition@2.1.0(framer-motion@10.17.6)(react@18.3.1)':
|
||||
'@chakra-ui/transition@2.1.0(framer-motion@10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/shared-utils': 2.0.5
|
||||
framer-motion: 10.17.6(react-dom@18.3.1)(react@18.3.1)
|
||||
framer-motion: 10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@chakra-ui/utils@2.0.15':
|
||||
@ -3330,9 +3330,9 @@ snapshots:
|
||||
framesync: 6.1.2
|
||||
lodash.mergewith: 4.6.2
|
||||
|
||||
'@chakra-ui/visually-hidden@2.2.0(@chakra-ui/system@2.6.2)(react@18.3.1)':
|
||||
'@chakra-ui/visually-hidden@2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
|
||||
'@chakra-ui/system': 2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
|
||||
'@emotion/babel-plugin@11.11.0':
|
||||
@ -3382,9 +3382,10 @@ snapshots:
|
||||
'@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1)
|
||||
'@emotion/utils': 1.2.1
|
||||
'@emotion/weak-memoize': 0.3.1
|
||||
'@types/react': 18.3.3
|
||||
hoist-non-react-statics: 3.3.2
|
||||
react: 18.3.1
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.3
|
||||
|
||||
'@emotion/serialize@1.1.4':
|
||||
dependencies:
|
||||
@ -3396,7 +3397,7 @@ snapshots:
|
||||
|
||||
'@emotion/sheet@1.2.2': {}
|
||||
|
||||
'@emotion/styled@11.11.5(@emotion/react@11.11.4)(@types/react@18.3.3)(react@18.3.1)':
|
||||
'@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)':
|
||||
dependencies:
|
||||
'@babel/runtime': 7.22.6
|
||||
'@emotion/babel-plugin': 11.11.0
|
||||
@ -3405,8 +3406,9 @@ snapshots:
|
||||
'@emotion/serialize': 1.1.4
|
||||
'@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1)
|
||||
'@emotion/utils': 1.2.1
|
||||
'@types/react': 18.3.3
|
||||
react: 18.3.1
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.3
|
||||
|
||||
'@emotion/unitless@0.8.1': {}
|
||||
|
||||
@ -3574,6 +3576,7 @@ snapshots:
|
||||
'@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.2)
|
||||
debug: 4.3.4
|
||||
eslint: 8.56.0
|
||||
optionalDependencies:
|
||||
typescript: 5.3.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@ -3594,6 +3597,7 @@ snapshots:
|
||||
is-glob: 4.0.3
|
||||
semver: 7.5.4
|
||||
tsutils: 3.21.0(typescript@5.3.2)
|
||||
optionalDependencies:
|
||||
typescript: 5.3.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@ -4040,11 +4044,12 @@ snapshots:
|
||||
'@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@5.3.2)
|
||||
eslint: 8.56.0
|
||||
eslint-import-resolver-node: 0.3.7
|
||||
eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.28.1)(eslint@8.56.0)
|
||||
eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.56.0)
|
||||
eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.2))(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.28.1(eslint@8.56.0))(eslint@8.56.0)
|
||||
eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.2))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.2))(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.28.1(eslint@8.56.0))(eslint@8.56.0))(eslint@8.56.0)
|
||||
eslint-plugin-jsx-a11y: 6.7.1(eslint@8.56.0)
|
||||
eslint-plugin-react: 7.33.2(eslint@8.56.0)
|
||||
eslint-plugin-react-hooks: 4.6.0(eslint@8.56.0)
|
||||
optionalDependencies:
|
||||
typescript: 5.3.2
|
||||
transitivePeerDependencies:
|
||||
- eslint-import-resolver-webpack
|
||||
@ -4058,13 +4063,13 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.28.1)(eslint@8.56.0):
|
||||
eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.2))(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.28.1(eslint@8.56.0))(eslint@8.56.0):
|
||||
dependencies:
|
||||
debug: 4.3.4
|
||||
enhanced-resolve: 5.15.0
|
||||
eslint: 8.56.0
|
||||
eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.56.0)
|
||||
eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.56.0)
|
||||
eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.2))(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.2))(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.28.1(eslint@8.56.0))(eslint@8.56.0))(eslint@8.56.0)
|
||||
eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.2))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.2))(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.28.1(eslint@8.56.0))(eslint@8.56.0))(eslint@8.56.0)
|
||||
get-tsconfig: 4.6.2
|
||||
globby: 13.2.2
|
||||
is-core-module: 2.13.0
|
||||
@ -4076,19 +4081,19 @@ snapshots:
|
||||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
|
||||
eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.56.0):
|
||||
eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.2))(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.2))(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.28.1(eslint@8.56.0))(eslint@8.56.0))(eslint@8.56.0):
|
||||
dependencies:
|
||||
'@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@5.3.2)
|
||||
debug: 3.2.7
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@5.3.2)
|
||||
eslint: 8.56.0
|
||||
eslint-import-resolver-node: 0.3.7
|
||||
eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.28.1)(eslint@8.56.0)
|
||||
eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.2))(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.28.1(eslint@8.56.0))(eslint@8.56.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.56.0):
|
||||
eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.2))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.2))(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.28.1(eslint@8.56.0))(eslint@8.56.0))(eslint@8.56.0):
|
||||
dependencies:
|
||||
'@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@5.3.2)
|
||||
array-includes: 3.1.6
|
||||
array.prototype.findlastindex: 1.2.3
|
||||
array.prototype.flat: 1.3.1
|
||||
@ -4097,7 +4102,7 @@ snapshots:
|
||||
doctrine: 2.1.0
|
||||
eslint: 8.56.0
|
||||
eslint-import-resolver-node: 0.3.7
|
||||
eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.56.0)
|
||||
eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.2))(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.2))(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.28.1(eslint@8.56.0))(eslint@8.56.0))(eslint@8.56.0)
|
||||
has: 1.0.3
|
||||
is-core-module: 2.13.0
|
||||
is-glob: 4.0.3
|
||||
@ -4107,6 +4112,8 @@ snapshots:
|
||||
object.values: 1.1.6
|
||||
semver: 6.3.1
|
||||
tsconfig-paths: 3.14.2
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@5.3.2)
|
||||
transitivePeerDependencies:
|
||||
- eslint-import-resolver-typescript
|
||||
- eslint-import-resolver-webpack
|
||||
@ -4305,13 +4312,13 @@ snapshots:
|
||||
dependencies:
|
||||
is-callable: 1.2.7
|
||||
|
||||
framer-motion@10.17.6(react-dom@18.3.1)(react@18.3.1):
|
||||
framer-motion@10.17.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
||||
dependencies:
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
tslib: 2.6.2
|
||||
optionalDependencies:
|
||||
'@emotion/is-prop-valid': 0.8.8
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
|
||||
framesync@6.1.2:
|
||||
dependencies:
|
||||
@ -5137,7 +5144,7 @@ snapshots:
|
||||
|
||||
natural-compare@1.4.0: {}
|
||||
|
||||
next@14.2.4(react-dom@18.3.1)(react@18.3.1):
|
||||
next@14.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
||||
dependencies:
|
||||
'@next/env': 14.2.4
|
||||
'@swc/helpers': 0.5.5
|
||||
@ -5301,7 +5308,7 @@ snapshots:
|
||||
|
||||
prelude-ls@1.2.1: {}
|
||||
|
||||
prettier@3.1.0: {}
|
||||
prettier@3.3.3: {}
|
||||
|
||||
process-nextick-args@2.0.1: {}
|
||||
|
||||
@ -5335,13 +5342,14 @@ snapshots:
|
||||
react-focus-lock@2.9.5(@types/react@18.3.3)(react@18.3.1):
|
||||
dependencies:
|
||||
'@babel/runtime': 7.22.6
|
||||
'@types/react': 18.3.3
|
||||
focus-lock: 0.11.6
|
||||
prop-types: 15.8.1
|
||||
react: 18.3.1
|
||||
react-clientside-effect: 1.2.6(react@18.3.1)
|
||||
use-callback-ref: 1.3.0(@types/react@18.3.3)(react@18.3.1)
|
||||
use-sidecar: 1.1.2(@types/react@18.3.3)(react@18.3.1)
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.3
|
||||
|
||||
react-icons@4.12.0(react@18.3.1):
|
||||
dependencies:
|
||||
@ -5368,28 +5376,31 @@ snapshots:
|
||||
|
||||
react-remove-scroll-bar@2.3.4(@types/react@18.3.3)(react@18.3.1):
|
||||
dependencies:
|
||||
'@types/react': 18.3.3
|
||||
react: 18.3.1
|
||||
react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1)
|
||||
tslib: 2.6.2
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.3
|
||||
|
||||
react-remove-scroll@2.5.6(@types/react@18.3.3)(react@18.3.1):
|
||||
dependencies:
|
||||
'@types/react': 18.3.3
|
||||
react: 18.3.1
|
||||
react-remove-scroll-bar: 2.3.4(@types/react@18.3.3)(react@18.3.1)
|
||||
react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1)
|
||||
tslib: 2.6.2
|
||||
use-callback-ref: 1.3.0(@types/react@18.3.3)(react@18.3.1)
|
||||
use-sidecar: 1.1.2(@types/react@18.3.3)(react@18.3.1)
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.3
|
||||
|
||||
react-style-singleton@2.2.1(@types/react@18.3.3)(react@18.3.1):
|
||||
dependencies:
|
||||
'@types/react': 18.3.3
|
||||
get-nonce: 1.0.1
|
||||
invariant: 2.2.4
|
||||
react: 18.3.1
|
||||
tslib: 2.6.2
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.3
|
||||
|
||||
react@18.3.1:
|
||||
dependencies:
|
||||
@ -5789,16 +5800,18 @@ snapshots:
|
||||
|
||||
use-callback-ref@1.3.0(@types/react@18.3.3)(react@18.3.1):
|
||||
dependencies:
|
||||
'@types/react': 18.3.3
|
||||
react: 18.3.1
|
||||
tslib: 2.6.2
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.3
|
||||
|
||||
use-sidecar@1.1.2(@types/react@18.3.3)(react@18.3.1):
|
||||
dependencies:
|
||||
'@types/react': 18.3.3
|
||||
detect-node-es: 1.1.0
|
||||
react: 18.3.1
|
||||
tslib: 2.6.2
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.3
|
||||
|
||||
util-deprecate@1.0.2: {}
|
||||
|
||||
|
12
package.json
12
package.json
@ -2,15 +2,13 @@
|
||||
"_comment": "This version doesn't matter, it's just to allow importing from other repos.",
|
||||
"name": "coder",
|
||||
"version": "0.0.0",
|
||||
"packageManager": "pnpm@9.7.1+sha512.faf344af2d6ca65c4c5c8c2224ea77a81a5e8859cbc4e06b1511ddce2f0151512431dd19e6aff31f2c6a8f5f2aced9bd2273e1fed7dd4de1868984059d2c4247",
|
||||
"scripts": {
|
||||
"format": "prettier --cache --write",
|
||||
"format": "prettier --cache --write '**/*.{css,html,json,md,yaml,yml}'",
|
||||
"format:check": "prettier --cache --check '**/*.{css,html,json,md,yaml,yml}'",
|
||||
"storybook": "pnpm run -C site/ storybook"
|
||||
},
|
||||
"devDependencies": {
|
||||
"prettier": "3.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"exec": "^0.2.1"
|
||||
},
|
||||
"packageManager": "pnpm@8.14.0+sha1.bb42032ff80dba5f9245bc1b03470d2fa0b7fb2f"
|
||||
"prettier": "3.3.3"
|
||||
}
|
||||
}
|
||||
|
21
pnpm-lock.yaml
generated
21
pnpm-lock.yaml
generated
@ -7,29 +7,18 @@ settings:
|
||||
importers:
|
||||
|
||||
.:
|
||||
dependencies:
|
||||
exec:
|
||||
specifier: ^0.2.1
|
||||
version: 0.2.1
|
||||
devDependencies:
|
||||
prettier:
|
||||
specifier: 3.0.0
|
||||
version: 3.0.0
|
||||
specifier: 3.3.3
|
||||
version: 3.3.3
|
||||
|
||||
packages:
|
||||
|
||||
exec@0.2.1:
|
||||
resolution: {integrity: sha512-lE5ZlJgRYh+rmwidatL2AqRA/U9IBoCpKlLriBmnfUIrV/Rj4oLjb63qZ57iBCHWi5j9IjLt5wOWkFYPiTfYAg==}
|
||||
engines: {node: '>= v0.9.1'}
|
||||
deprecated: deprecated in favor of builtin child_process.execFile
|
||||
|
||||
prettier@3.0.0:
|
||||
resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==}
|
||||
prettier@3.3.3:
|
||||
resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==}
|
||||
engines: {node: '>=14'}
|
||||
hasBin: true
|
||||
|
||||
snapshots:
|
||||
|
||||
exec@0.2.1: {}
|
||||
|
||||
prettier@3.0.0: {}
|
||||
prettier@3.3.3: {}
|
||||
|
@ -1,97 +0,0 @@
|
||||
# Code generated by Makefile (.gitignore .prettierignore.include). DO NOT EDIT.
|
||||
|
||||
# .gitignore:
|
||||
# Common ignore patterns, these rules applies in both root and subdirectories.
|
||||
.DS_Store
|
||||
.eslintcache
|
||||
.gitpod.yml
|
||||
.idea
|
||||
**/*.swp
|
||||
gotests.coverage
|
||||
gotests.xml
|
||||
gotests_stats.json
|
||||
gotests.json
|
||||
node_modules/
|
||||
vendor/
|
||||
yarn-error.log
|
||||
|
||||
# VSCode settings.
|
||||
**/.vscode/*
|
||||
# Allow VSCode recommendations and default settings in project root.
|
||||
!../.vscode/extensions.json
|
||||
!../.vscode/settings.json
|
||||
|
||||
# Front-end ignore patterns.
|
||||
.next/
|
||||
build-storybook.log
|
||||
coverage/
|
||||
storybook-static/
|
||||
test-results/*
|
||||
e2e/test-results/*
|
||||
e2e/states/*.json
|
||||
e2e/.auth.json
|
||||
playwright-report/*
|
||||
.swc
|
||||
|
||||
# Make target for updating golden files (any dir).
|
||||
.gen-golden
|
||||
|
||||
# Build
|
||||
build/
|
||||
dist/
|
||||
out/
|
||||
|
||||
# Bundle analysis
|
||||
stats/
|
||||
|
||||
*.tfstate
|
||||
*.tfstate.backup
|
||||
*.tfplan
|
||||
*.lock.hcl
|
||||
.terraform/
|
||||
|
||||
**/.coderv2/*
|
||||
**/__debug_bin
|
||||
|
||||
# direnv
|
||||
.envrc
|
||||
*.test
|
||||
|
||||
# Loadtesting
|
||||
.././scaletest/terraform/.terraform
|
||||
.././scaletest/terraform/.terraform.lock.hcl
|
||||
../scaletest/terraform/secrets.tfvars
|
||||
.terraform.tfstate.*
|
||||
|
||||
# Nix
|
||||
result
|
||||
|
||||
# Data dumps from unit tests
|
||||
**/*.test.sql
|
||||
|
||||
# Filebrowser.db
|
||||
**/filebrowser.db
|
||||
|
||||
# pnpm
|
||||
.pnpm-store/
|
||||
# .prettierignore.include:
|
||||
# Helm templates contain variables that are invalid YAML and can't be formatted
|
||||
# by Prettier.
|
||||
../helm/**/templates/*.yaml
|
||||
|
||||
# Terraform state files used in tests, these are automatically generated.
|
||||
# Example: provisioner/terraform/testdata/instance-id/instance-id.tfstate.json
|
||||
**/testdata/**/*.tf*.json
|
||||
|
||||
# Testdata shouldn't be formatted.
|
||||
../scripts/apitypings/testdata/**/*.ts
|
||||
../enterprise/tailnet/testdata/*.golden.html
|
||||
../tailnet/testdata/*.golden.html
|
||||
|
||||
# Generated files shouldn't be formatted.
|
||||
e2e/provisionerGenerated.ts
|
||||
|
||||
**/pnpm-lock.yaml
|
||||
|
||||
# Ignore generated JSON (e.g. examples/examples.gen.json).
|
||||
**/*.gen.json
|
@ -1,205 +0,0 @@
|
||||
---
|
||||
env:
|
||||
browser: true
|
||||
commonjs: true
|
||||
es6: true
|
||||
jest: true
|
||||
node: true
|
||||
ignorePatterns:
|
||||
- "jest.polyfills.js"
|
||||
extends:
|
||||
- eslint:recommended
|
||||
- plugin:@typescript-eslint/recommended
|
||||
- plugin:@typescript-eslint/recommended-requiring-type-checking
|
||||
- plugin:eslint-comments/recommended
|
||||
- plugin:import/recommended
|
||||
- plugin:import/typescript
|
||||
- plugin:react/recommended
|
||||
- plugin:jsx-a11y/strict
|
||||
- plugin:compat/recommended
|
||||
- prettier
|
||||
parser: "@typescript-eslint/parser"
|
||||
parserOptions:
|
||||
ecmaVersion: 2018
|
||||
project: "./tsconfig.json"
|
||||
sourceType: module
|
||||
ecmaFeatures:
|
||||
jsx: true
|
||||
# REMARK(Grey): We might want to move this to repository root eventually to
|
||||
# lint multiple projects (supply array to project property).
|
||||
tsconfigRootDir: "./"
|
||||
plugins:
|
||||
- "@typescript-eslint"
|
||||
- import
|
||||
- react-hooks
|
||||
- jest
|
||||
- unicorn
|
||||
- testing-library
|
||||
overrides:
|
||||
- files: ["**/__tests__/**/*.[jt]s?(x)", "**/?(*.)+(spec|test).[jt]s?(x)"]
|
||||
extends: ["plugin:testing-library/react", "plugin:testing-library/dom"]
|
||||
rules:
|
||||
# Occasionally, we must traverse the DOM when querying for an element to
|
||||
# avoid the performance costs that come with using selectors like ByRole.
|
||||
# You can read more about these performance costs here:
|
||||
# https://coder.com/docs/contributing/frontend#tests-getting-too-slow.
|
||||
testing-library/no-node-access: off
|
||||
testing-library/no-container: off
|
||||
- files: ["e2e/**/*.[tj]s"]
|
||||
extends: ["plugin:testing-library/react", "plugin:testing-library/dom"]
|
||||
rules:
|
||||
# Sometimes the eslint-plugin-testing-library believes playwright queries are
|
||||
# also react-testing-library queries, which is not the case. So we disable this
|
||||
# rule for all e2e tests.
|
||||
testing-library/prefer-screen-queries: "off"
|
||||
root: true
|
||||
rules:
|
||||
# TODO: Investigate whether to enable this rule & fix and/or disable all its complaints
|
||||
"@typescript-eslint/no-misused-promises": "off"
|
||||
# TODO: Investigate whether to enable this rule & fix and/or disable all its complaints
|
||||
"@typescript-eslint/no-unsafe-argument": "off"
|
||||
# TODO: Investigate whether to enable this rule & fix and/or disable all its complaints
|
||||
"@typescript-eslint/no-unsafe-assignment": "off"
|
||||
# TODO: Investigate whether to enable this rule & fix and/or disable all its complaints
|
||||
"@typescript-eslint/no-unsafe-call": "off"
|
||||
# TODO: Investigate whether to enable this rule & fix and/or disable all its complaints
|
||||
"@typescript-eslint/no-unsafe-member-access": "off"
|
||||
# TODO: Investigate whether to enable this rule & fix and/or disable all its complaints
|
||||
"@typescript-eslint/no-unsafe-return": "off"
|
||||
# TODO: Investigate whether to enable this rule & fix and/or disable all its complaints
|
||||
"@typescript-eslint/require-await": "off"
|
||||
# TODO: Investigate whether to enable this rule & fix and/or disable all its complaints
|
||||
"@typescript-eslint/restrict-plus-operands": "off"
|
||||
# TODO: Investigate whether to enable this rule & fix and/or disable all its complaints
|
||||
"@typescript-eslint/restrict-template-expressions": "off"
|
||||
# TODO: Investigate whether to enable this rule & fix and/or disable all its complaints
|
||||
"@typescript-eslint/unbound-method": "off"
|
||||
|
||||
"@typescript-eslint/brace-style":
|
||||
["error", "1tbs", { "allowSingleLine": false }]
|
||||
"@typescript-eslint/consistent-type-imports":
|
||||
- error
|
||||
- fixStyle: inline-type-imports
|
||||
"@typescript-eslint/method-signature-style": ["error", "property"]
|
||||
"@typescript-eslint/no-import-type-side-effects": "error"
|
||||
# We're disabling the `no-namespace` rule to use a pattern of defining an interface,
|
||||
# and then defining functions that operate on that data via namespace. This is helpful for
|
||||
# dealing with immutable objects. This is a common pattern that shows up in some other
|
||||
# large TypeScript projects, like VSCode.
|
||||
# More details: https://github.com/coder/m/pull/9720#discussion_r697609528
|
||||
"@typescript-eslint/no-namespace": "off"
|
||||
"@typescript-eslint/no-unused-vars":
|
||||
- error
|
||||
- argsIgnorePattern: "^_"
|
||||
varsIgnorePattern: "^_"
|
||||
ignoreRestSiblings: true
|
||||
"@typescript-eslint/no-empty-interface":
|
||||
- error
|
||||
- allowSingleExtends: true
|
||||
"brace-style": "off"
|
||||
"curly": ["error", "all"]
|
||||
"eslint-comments/disable-enable-pair":
|
||||
- error
|
||||
- allowWholeFile: true
|
||||
"eslint-comments/require-description": "error"
|
||||
eqeqeq: error
|
||||
import/default: "off"
|
||||
import/namespace: "off"
|
||||
import/newline-after-import:
|
||||
- error
|
||||
- count: 1
|
||||
import/no-named-as-default: "off"
|
||||
import/no-named-as-default-member: "off"
|
||||
import/prefer-default-export: "off"
|
||||
import/order:
|
||||
- error
|
||||
- groups: [["builtin", "external"], "internal", "parent"]
|
||||
newlines-between: never
|
||||
alphabetize:
|
||||
order: asc
|
||||
caseInsensitive: true
|
||||
jest/no-focused-tests: "error"
|
||||
jsx-a11y/label-has-for: "off"
|
||||
jsx-a11y/no-autofocus: "off"
|
||||
no-console:
|
||||
- warn
|
||||
- allow:
|
||||
- warn
|
||||
- error
|
||||
- info
|
||||
- debug
|
||||
no-dupe-class-members: "off"
|
||||
no-implicit-coercion: "error"
|
||||
no-restricted-imports:
|
||||
- error
|
||||
- paths:
|
||||
- name: "@mui/material"
|
||||
message:
|
||||
"Use path imports to avoid pulling in unused modules. See:
|
||||
https://material-ui.com/guides/minimizing-bundle-size/"
|
||||
- name: "@mui/icons-material"
|
||||
message:
|
||||
"Use path imports to avoid pulling in unused modules. See:
|
||||
https://material-ui.com/guides/minimizing-bundle-size/"
|
||||
- name: "@mui/material/Avatar"
|
||||
message:
|
||||
"You should use the Avatar component provided on
|
||||
components/Avatar/Avatar"
|
||||
- name: "@mui/material/Alert"
|
||||
message:
|
||||
"You should use the Alert component provided on
|
||||
components/Alert/Alert"
|
||||
- name: "@mui/material/Popover"
|
||||
message:
|
||||
"You should use the Popover component provided on
|
||||
components/Popover/Popover"
|
||||
- name: "@mui/material/Typography"
|
||||
message:
|
||||
"You should use the native HTML elements as span, p, h1, h2, h3..."
|
||||
- name: "@mui/material/Box"
|
||||
message: "You should use a <div> instead"
|
||||
- name: "@mui/material/styles"
|
||||
importNames: ["Interpolation", "Theme", "useTheme"]
|
||||
message: "Import from @emotion/react instead."
|
||||
- name: "lodash"
|
||||
message: "Import from lodash/<name> instead."
|
||||
no-unused-vars: "off"
|
||||
"object-curly-spacing": "off"
|
||||
react-hooks/exhaustive-deps: warn
|
||||
react-hooks/rules-of-hooks: error
|
||||
react/display-name: "off"
|
||||
react/jsx-no-script-url:
|
||||
- error
|
||||
- - name: Link
|
||||
props:
|
||||
- to
|
||||
- name: Button
|
||||
props:
|
||||
- href
|
||||
- name: IconButton
|
||||
props:
|
||||
- href
|
||||
react/prop-types: "off"
|
||||
react/jsx-boolean-value: ["error", "never"]
|
||||
react/jsx-curly-brace-presence:
|
||||
- error
|
||||
- children: ignore
|
||||
# https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html#eslint
|
||||
react/jsx-key: error
|
||||
react/jsx-uses-react: "off"
|
||||
react/no-unknown-property: ["error", { ignore: ["css"] }]
|
||||
react/react-in-jsx-scope: "off"
|
||||
# https://github.com/jsx-eslint/eslint-plugin-react/issues/2628#issuecomment-984160944
|
||||
no-restricted-syntax:
|
||||
[
|
||||
"error",
|
||||
{
|
||||
selector: "ImportDeclaration[source.value='react'][specifiers.0.type='ImportDefaultSpecifier']",
|
||||
message: "Default React import not allowed",
|
||||
},
|
||||
]
|
||||
settings:
|
||||
react:
|
||||
version: detect
|
||||
import/resolver:
|
||||
typescript: {}
|
@ -1,97 +0,0 @@
|
||||
# Code generated by Makefile (.gitignore .prettierignore.include). DO NOT EDIT.
|
||||
|
||||
# .gitignore:
|
||||
# Common ignore patterns, these rules applies in both root and subdirectories.
|
||||
.DS_Store
|
||||
.eslintcache
|
||||
.gitpod.yml
|
||||
.idea
|
||||
**/*.swp
|
||||
gotests.coverage
|
||||
gotests.xml
|
||||
gotests_stats.json
|
||||
gotests.json
|
||||
node_modules/
|
||||
vendor/
|
||||
yarn-error.log
|
||||
|
||||
# VSCode settings.
|
||||
**/.vscode/*
|
||||
# Allow VSCode recommendations and default settings in project root.
|
||||
!../.vscode/extensions.json
|
||||
!../.vscode/settings.json
|
||||
|
||||
# Front-end ignore patterns.
|
||||
.next/
|
||||
build-storybook.log
|
||||
coverage/
|
||||
storybook-static/
|
||||
test-results/*
|
||||
e2e/test-results/*
|
||||
e2e/states/*.json
|
||||
e2e/.auth.json
|
||||
playwright-report/*
|
||||
.swc
|
||||
|
||||
# Make target for updating golden files (any dir).
|
||||
.gen-golden
|
||||
|
||||
# Build
|
||||
build/
|
||||
dist/
|
||||
out/
|
||||
|
||||
# Bundle analysis
|
||||
stats/
|
||||
|
||||
*.tfstate
|
||||
*.tfstate.backup
|
||||
*.tfplan
|
||||
*.lock.hcl
|
||||
.terraform/
|
||||
|
||||
**/.coderv2/*
|
||||
**/__debug_bin
|
||||
|
||||
# direnv
|
||||
.envrc
|
||||
*.test
|
||||
|
||||
# Loadtesting
|
||||
.././scaletest/terraform/.terraform
|
||||
.././scaletest/terraform/.terraform.lock.hcl
|
||||
../scaletest/terraform/secrets.tfvars
|
||||
.terraform.tfstate.*
|
||||
|
||||
# Nix
|
||||
result
|
||||
|
||||
# Data dumps from unit tests
|
||||
**/*.test.sql
|
||||
|
||||
# Filebrowser.db
|
||||
**/filebrowser.db
|
||||
|
||||
# pnpm
|
||||
.pnpm-store/
|
||||
# .prettierignore.include:
|
||||
# Helm templates contain variables that are invalid YAML and can't be formatted
|
||||
# by Prettier.
|
||||
../helm/**/templates/*.yaml
|
||||
|
||||
# Terraform state files used in tests, these are automatically generated.
|
||||
# Example: provisioner/terraform/testdata/instance-id/instance-id.tfstate.json
|
||||
**/testdata/**/*.tf*.json
|
||||
|
||||
# Testdata shouldn't be formatted.
|
||||
../scripts/apitypings/testdata/**/*.ts
|
||||
../enterprise/tailnet/testdata/*.golden.html
|
||||
../tailnet/testdata/*.golden.html
|
||||
|
||||
# Generated files shouldn't be formatted.
|
||||
e2e/provisionerGenerated.ts
|
||||
|
||||
**/pnpm-lock.yaml
|
||||
|
||||
# Ignore generated JSON (e.g. examples/examples.gen.json).
|
||||
**/*.gen.json
|
@ -1,20 +0,0 @@
|
||||
# Code generated by Makefile (../.prettierrc.yaml). DO NOT EDIT.
|
||||
|
||||
# This config file is used in conjunction with `.editorconfig` to specify
|
||||
# formatting for prettier-supported files. See `.editorconfig` and
|
||||
# `site/.editorconfig` for whitespace formatting options.
|
||||
printWidth: 80
|
||||
proseWrap: always
|
||||
trailingComma: all
|
||||
useTabs: false
|
||||
tabWidth: 2
|
||||
overrides:
|
||||
- files:
|
||||
- ../README.md
|
||||
- ../docs/reference/api/**/*.md
|
||||
- ../docs/reference/cli/**/*.md
|
||||
- ../docs/changelogs/*.md
|
||||
- ../.github/**/*.{yaml,yml,toml}
|
||||
- ../scripts/**/*.{yaml,yml,toml}
|
||||
options:
|
||||
proseWrap: preserve
|
45
site/biome.json
Normal file
45
site/biome.json
Normal file
@ -0,0 +1,45 @@
|
||||
{
|
||||
"files": {
|
||||
"ignore": ["**/*Generated.ts"]
|
||||
},
|
||||
"formatter": {
|
||||
"indentStyle": "space",
|
||||
"indentWidth": 2
|
||||
},
|
||||
"linter": {
|
||||
"rules": {
|
||||
"a11y": {
|
||||
"noSvgWithoutTitle": { "level": "off" },
|
||||
"useButtonType": { "level": "off" }
|
||||
},
|
||||
"style": {
|
||||
"noNonNullAssertion": { "level": "off" },
|
||||
"noParameterAssign": { "level": "off" },
|
||||
"useDefaultParameterLast": { "level": "off" },
|
||||
"useSelfClosingElements": { "level": "off" }
|
||||
},
|
||||
"suspicious": {
|
||||
"noArrayIndexKey": { "level": "off" },
|
||||
"noThenProperty": { "level": "off" }
|
||||
},
|
||||
"nursery": {
|
||||
"noRestrictedImports": {
|
||||
"level": "error",
|
||||
"options": {
|
||||
"paths": {
|
||||
"@mui/material": "Use @mui/material/<name> instead. See: https://material-ui.com/guides/minimizing-bundle-size/.",
|
||||
"@mui/icons-material": "Use @mui/icons-material/<name> instead. See: https://material-ui.com/guides/minimizing-bundle-size/.",
|
||||
"@mui/material/Avatar": "Use components/Avatar/Avatar instead.",
|
||||
"@mui/material/Alert": "Use components/Alert/Alert instead.",
|
||||
"@mui/material/Popover": "Use components/Popover/Popover instead.",
|
||||
"@mui/material/Typography": "Use native HTML elements instead. Eg: <span>, <p>, <h1>, etc.",
|
||||
"@mui/material/Box": "Use a <div> instead.",
|
||||
"@mui/material/styles": "Import from @emotion/react instead.",
|
||||
"lodash": "Use lodash/<name> instead."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,8 +1,8 @@
|
||||
import type { Page } from "@playwright/test";
|
||||
import { expect } from "@playwright/test";
|
||||
import { formatDuration, intervalToDuration } from "date-fns";
|
||||
import { type DeploymentConfig, API } from "api/api";
|
||||
import { API, type DeploymentConfig } from "api/api";
|
||||
import type { SerpentOption } from "api/typesGenerated";
|
||||
import { formatDuration, intervalToDuration } from "date-fns";
|
||||
import { coderPort } from "./constants";
|
||||
import { findSessionToken, randomName } from "./helpers";
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
import * as path from "path";
|
||||
import * as path from "node:path";
|
||||
|
||||
export const coderMain = path.join(__dirname, "../../enterprise/cmd/coder");
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { expect, type Page } from "@playwright/test";
|
||||
import { type Page, expect } from "@playwright/test";
|
||||
|
||||
type PollingOptions = { timeout?: number; intervals?: number[] };
|
||||
|
||||
@ -11,7 +11,10 @@ export const expectUrl = expect.extend({
|
||||
let pass: boolean;
|
||||
try {
|
||||
await expect
|
||||
.poll(() => (actual = new URL(page.url()).pathname), options)
|
||||
.poll(() => {
|
||||
actual = new URL(page.url()).pathname;
|
||||
return actual;
|
||||
}, options)
|
||||
.toBe(expected);
|
||||
pass = true;
|
||||
} catch {
|
||||
@ -24,11 +27,11 @@ export const expectUrl = expect.extend({
|
||||
actual,
|
||||
expected,
|
||||
message: () =>
|
||||
"The page does not have the expected URL pathname.\n" +
|
||||
`Expected: ${this.isNot ? "not" : ""}${this.utils.printExpected(
|
||||
`The page does not have the expected URL pathname.\nExpected: ${
|
||||
this.isNot ? "not" : ""
|
||||
}${this.utils.printExpected(
|
||||
expected,
|
||||
)}\n` +
|
||||
`Actual: ${this.utils.printReceived(actual)}`,
|
||||
)}\nActual: ${this.utils.printReceived(actual)}`,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
@ -1,16 +1,16 @@
|
||||
import { type BrowserContext, expect, type Page, test } from "@playwright/test";
|
||||
import { type ChildProcess, exec, spawn } from "child_process";
|
||||
import { randomUUID } from "crypto";
|
||||
import express from "express";
|
||||
import capitalize from "lodash/capitalize";
|
||||
import path from "path";
|
||||
import * as ssh from "ssh2";
|
||||
import { Duplex } from "stream";
|
||||
import { type ChildProcess, exec, spawn } from "node:child_process";
|
||||
import { randomUUID } from "node:crypto";
|
||||
import path from "node:path";
|
||||
import { Duplex } from "node:stream";
|
||||
import { type BrowserContext, type Page, expect, test } from "@playwright/test";
|
||||
import { API } from "api/api";
|
||||
import type {
|
||||
WorkspaceBuildParameter,
|
||||
UpdateTemplateMeta,
|
||||
WorkspaceBuildParameter,
|
||||
} from "api/typesGenerated";
|
||||
import express from "express";
|
||||
import capitalize from "lodash/capitalize";
|
||||
import * as ssh from "ssh2";
|
||||
import { TarWriter } from "utils/tar";
|
||||
import {
|
||||
agentPProfPort,
|
||||
@ -26,13 +26,13 @@ import {
|
||||
Agent,
|
||||
type App,
|
||||
AppSharingLevel,
|
||||
type ApplyComplete,
|
||||
type ExternalAuthProviderResource,
|
||||
type ParseComplete,
|
||||
type PlanComplete,
|
||||
type ApplyComplete,
|
||||
type Resource,
|
||||
Response,
|
||||
type RichParameter,
|
||||
type ExternalAuthProviderResource,
|
||||
} from "./provisionerGenerated";
|
||||
|
||||
// requiresEnterpriseLicense will skip the test if we're not running with an enterprise license
|
||||
@ -88,7 +88,7 @@ export const createWorkspace = async (
|
||||
|
||||
await page.getByTestId("form-submit").click();
|
||||
|
||||
await expectUrl(page).toHavePathName("/@admin/" + name);
|
||||
await expectUrl(page).toHavePathName(`/@admin/${name}`);
|
||||
|
||||
await page.waitForSelector("*[data-testid='build-status'] >> text=Running", {
|
||||
state: "visible",
|
||||
@ -102,7 +102,7 @@ export const verifyParameters = async (
|
||||
richParameters: RichParameter[],
|
||||
expectedBuildParameters: WorkspaceBuildParameter[],
|
||||
) => {
|
||||
await page.goto("/@admin/" + workspaceName + "/settings/parameters", {
|
||||
await page.goto(`/@admin/${workspaceName}/settings/parameters`, {
|
||||
waitUntil: "domcontentloaded",
|
||||
});
|
||||
await expectUrl(page).toHavePathName(
|
||||
@ -120,7 +120,7 @@ export const verifyParameters = async (
|
||||
}
|
||||
|
||||
const parameterLabel = await page.waitForSelector(
|
||||
"[data-testid='parameter-field-" + richParameter.name + "']",
|
||||
`[data-testid='parameter-field-${richParameter.name}']`,
|
||||
{ state: "visible" },
|
||||
);
|
||||
|
||||
@ -128,17 +128,13 @@ export const verifyParameters = async (
|
||||
|
||||
if (richParameter.type === "bool") {
|
||||
const parameterField = await parameterLabel.waitForSelector(
|
||||
"[data-testid='parameter-field-bool'] .MuiRadio-root.Mui-checked" +
|
||||
muiDisabled +
|
||||
" input",
|
||||
`[data-testid='parameter-field-bool'] .MuiRadio-root.Mui-checked${muiDisabled} input`,
|
||||
);
|
||||
const value = await parameterField.inputValue();
|
||||
expect(value).toEqual(buildParameter.value);
|
||||
} else if (richParameter.options.length > 0) {
|
||||
const parameterField = await parameterLabel.waitForSelector(
|
||||
"[data-testid='parameter-field-options'] .MuiRadio-root.Mui-checked" +
|
||||
muiDisabled +
|
||||
" input",
|
||||
`[data-testid='parameter-field-options'] .MuiRadio-root.Mui-checked${muiDisabled} input`,
|
||||
);
|
||||
const value = await parameterField.inputValue();
|
||||
expect(value).toEqual(buildParameter.value);
|
||||
@ -147,7 +143,7 @@ export const verifyParameters = async (
|
||||
} else {
|
||||
// text or number
|
||||
const parameterField = await parameterLabel.waitForSelector(
|
||||
"[data-testid='parameter-field-text'] input" + muiDisabled,
|
||||
`[data-testid='parameter-field-text'] input${muiDisabled}`,
|
||||
);
|
||||
const value = await parameterField.inputValue();
|
||||
expect(value).toEqual(buildParameter.value);
|
||||
@ -266,7 +262,7 @@ export const sshIntoWorkspace = async (
|
||||
};
|
||||
|
||||
export const stopWorkspace = async (page: Page, workspaceName: string) => {
|
||||
await page.goto("/@admin/" + workspaceName, {
|
||||
await page.goto(`/@admin/${workspaceName}`, {
|
||||
waitUntil: "domcontentloaded",
|
||||
});
|
||||
await expectUrl(page).toHavePathName(`/@admin/${workspaceName}`);
|
||||
@ -283,9 +279,9 @@ export const buildWorkspaceWithParameters = async (
|
||||
workspaceName: string,
|
||||
richParameters: RichParameter[] = [],
|
||||
buildParameters: WorkspaceBuildParameter[] = [],
|
||||
confirm: boolean = false,
|
||||
confirm = false,
|
||||
) => {
|
||||
await page.goto("/@admin/" + workspaceName, {
|
||||
await page.goto(`/@admin/${workspaceName}`, {
|
||||
waitUntil: "domcontentloaded",
|
||||
});
|
||||
await expectUrl(page).toHavePathName(`/@admin/${workspaceName}`);
|
||||
@ -321,7 +317,7 @@ export const downloadCoderVersion = async (
|
||||
version = version.slice(1);
|
||||
}
|
||||
|
||||
const binaryName = "coder-e2e-" + version;
|
||||
const binaryName = `coder-e2e-${version}`;
|
||||
const tempDir = "/tmp/coder-e2e-cache";
|
||||
// The install script adds `./bin` automatically to the path :shrug:
|
||||
const binaryPath = path.join(tempDir, "bin", binaryName);
|
||||
@ -367,7 +363,7 @@ export const downloadCoderVersion = async (
|
||||
if (code === 0) {
|
||||
resolve();
|
||||
} else {
|
||||
reject(new Error("install.sh failed with code " + code));
|
||||
reject(new Error(`install.sh failed with code ${code}`));
|
||||
}
|
||||
});
|
||||
});
|
||||
@ -385,8 +381,8 @@ export const startAgentWithCommand = async (
|
||||
...process.env,
|
||||
CODER_AGENT_URL: `http://localhost:${coderPort}`,
|
||||
CODER_AGENT_TOKEN: token,
|
||||
CODER_AGENT_PPROF_ADDRESS: "127.0.0.1:" + agentPProfPort,
|
||||
CODER_AGENT_PROMETHEUS_ADDRESS: "127.0.0.1:" + prometheusPort,
|
||||
CODER_AGENT_PPROF_ADDRESS: `127.0.0.1:${agentPProfPort}`,
|
||||
CODER_AGENT_PROMETHEUS_ADDRESS: `127.0.0.1:${prometheusPort}`,
|
||||
},
|
||||
});
|
||||
cp.stdout.on("data", (data: Buffer) => {
|
||||
@ -406,7 +402,7 @@ export const startAgentWithCommand = async (
|
||||
return cp;
|
||||
};
|
||||
|
||||
export const stopAgent = async (cp: ChildProcess, goRun: boolean = true) => {
|
||||
export const stopAgent = async (cp: ChildProcess, goRun = true) => {
|
||||
// When the web server is started with `go run`, it spawns a child process with coder server.
|
||||
// `pkill -P` terminates child processes belonging the same group as `go run`.
|
||||
// The command `kill` is used to terminate a web server started as a standalone binary.
|
||||
@ -415,7 +411,7 @@ export const stopAgent = async (cp: ChildProcess, goRun: boolean = true) => {
|
||||
throw new Error(`exec error: ${JSON.stringify(error)}`);
|
||||
}
|
||||
});
|
||||
await waitUntilUrlIsNotResponding("http://localhost:" + prometheusPort);
|
||||
await waitUntilUrlIsNotResponding(`http://localhost:${prometheusPort}`);
|
||||
};
|
||||
|
||||
export const waitUntilUrlIsNotResponding = async (url: string) => {
|
||||
@ -555,7 +551,7 @@ const createTemplateVersionTar = async (
|
||||
try {
|
||||
Agent.encode(agentResource);
|
||||
} catch (e) {
|
||||
let m = `Error: agentResource encode failed, missing defaults?`;
|
||||
let m = "Error: agentResource encode failed, missing defaults?";
|
||||
if (e instanceof Error) {
|
||||
if (!e.stack?.includes(e.message)) {
|
||||
m += `\n${e.name}: ${e.message}`;
|
||||
@ -632,7 +628,9 @@ export class Awaiter {
|
||||
private callback?: () => void;
|
||||
|
||||
constructor() {
|
||||
this.promise = new Promise((r) => (this.callback = r));
|
||||
this.promise = new Promise((r) => {
|
||||
this.callback = r;
|
||||
});
|
||||
}
|
||||
|
||||
public done(): void {
|
||||
@ -745,22 +743,18 @@ export const fillParameters = async (
|
||||
}
|
||||
|
||||
const parameterLabel = await page.waitForSelector(
|
||||
"[data-testid='parameter-field-" + richParameter.name + "']",
|
||||
`[data-testid='parameter-field-${richParameter.name}']`,
|
||||
{ state: "visible" },
|
||||
);
|
||||
|
||||
if (richParameter.type === "bool") {
|
||||
const parameterField = await parameterLabel.waitForSelector(
|
||||
"[data-testid='parameter-field-bool'] .MuiRadio-root input[value='" +
|
||||
buildParameter.value +
|
||||
"']",
|
||||
`[data-testid='parameter-field-bool'] .MuiRadio-root input[value='${buildParameter.value}']`,
|
||||
);
|
||||
await parameterField.click();
|
||||
} else if (richParameter.options.length > 0) {
|
||||
const parameterField = await parameterLabel.waitForSelector(
|
||||
"[data-testid='parameter-field-options'] .MuiRadio-root input[value='" +
|
||||
buildParameter.value +
|
||||
"']",
|
||||
`[data-testid='parameter-field-options'] .MuiRadio-root input[value='${buildParameter.value}']`,
|
||||
);
|
||||
await parameterField.click();
|
||||
} else if (richParameter.type === "list(string)") {
|
||||
@ -856,7 +850,7 @@ export const updateWorkspace = async (
|
||||
richParameters: RichParameter[] = [],
|
||||
buildParameters: WorkspaceBuildParameter[] = [],
|
||||
) => {
|
||||
await page.goto("/@admin/" + workspaceName, {
|
||||
await page.goto(`/@admin/${workspaceName}`, {
|
||||
waitUntil: "domcontentloaded",
|
||||
});
|
||||
await expectUrl(page).toHavePathName(`/@admin/${workspaceName}`);
|
||||
@ -878,7 +872,7 @@ export const updateWorkspaceParameters = async (
|
||||
richParameters: RichParameter[] = [],
|
||||
buildParameters: WorkspaceBuildParameter[] = [],
|
||||
) => {
|
||||
await page.goto("/@admin/" + workspaceName + "/settings/parameters", {
|
||||
await page.goto(`/@admin/${workspaceName}/settings/parameters`, {
|
||||
waitUntil: "domcontentloaded",
|
||||
});
|
||||
await expectUrl(page).toHavePathName(
|
||||
@ -897,7 +891,7 @@ export async function openTerminalWindow(
|
||||
page: Page,
|
||||
context: BrowserContext,
|
||||
workspaceName: string,
|
||||
agentName: string = "dev",
|
||||
agentName = "dev",
|
||||
): Promise<Page> {
|
||||
// Wait for the web terminal to open in a new tab
|
||||
const pagePromise = context.waitForEvent("page");
|
||||
|
@ -1,10 +1,10 @@
|
||||
import http from "node:http";
|
||||
import type { BrowserContext, Page } from "@playwright/test";
|
||||
import http from "http";
|
||||
import { coderPort, gitAuth } from "./constants";
|
||||
|
||||
export const beforeCoderTest = async (page: Page) => {
|
||||
// eslint-disable-next-line no-console -- Show everything that was printed with console.log()
|
||||
page.on("console", (msg) => console.log("[onConsole] " + msg.text()));
|
||||
page.on("console", (msg) => console.log(`[onConsole] ${msg.text()}`));
|
||||
|
||||
page.on("request", (request) => {
|
||||
if (!isApiCall(request.url())) {
|
||||
|
@ -132,7 +132,7 @@ export const seventhParameter: RichParameter = {
|
||||
// It helps to avoid cross-test interference when user-auto-fill triggers on
|
||||
// the same parameter name.
|
||||
export const randParamName = (p: RichParameter): RichParameter => {
|
||||
const name = p.name + "_" + Math.random().toString(36).substring(7);
|
||||
const name = `${p.name}_${Math.random().toString(36).substring(7)}`;
|
||||
return { ...p, name: name };
|
||||
};
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { execSync } from "node:child_process";
|
||||
import * as path from "node:path";
|
||||
import { defineConfig } from "@playwright/test";
|
||||
import { execSync } from "child_process";
|
||||
import * as path from "path";
|
||||
import {
|
||||
coderMain,
|
||||
coderPort,
|
||||
@ -38,14 +38,15 @@ try {
|
||||
}
|
||||
|
||||
if (!hasTerraform || !hasDocker) {
|
||||
const msg =
|
||||
"Terraform provisioners require docker & terraform binaries to function. \n" +
|
||||
(hasTerraform
|
||||
const msg = `Terraform provisioners require docker & terraform binaries to function. \n${
|
||||
hasTerraform
|
||||
? ""
|
||||
: "\tThe `terraform` executable is not present in the runtime environment.\n") +
|
||||
(hasDocker
|
||||
: "\tThe `terraform` executable is not present in the runtime environment.\n"
|
||||
}${
|
||||
hasDocker
|
||||
? ""
|
||||
: "\tThe `docker` executable is not present in the runtime environment.\n");
|
||||
: "\tThe `docker` executable is not present in the runtime environment.\n"
|
||||
}`;
|
||||
throw new Error(msg);
|
||||
}
|
||||
|
||||
@ -96,7 +97,7 @@ export default defineConfig({
|
||||
"--provisioner-daemons 10",
|
||||
// TODO: Enable some terraform provisioners
|
||||
`--provisioner-types=echo${requireTerraformTests ? ",terraform" : ""}`,
|
||||
`--provisioner-daemons=10`,
|
||||
"--provisioner-daemons=10",
|
||||
"--web-terminal-renderer=dom",
|
||||
"--pprof-enable",
|
||||
]
|
||||
@ -146,7 +147,7 @@ export default defineConfig({
|
||||
gitAuth.webPort,
|
||||
gitAuth.validatePath,
|
||||
),
|
||||
CODER_PPROF_ADDRESS: "127.0.0.1:" + coderdPProfPort,
|
||||
CODER_PPROF_ADDRESS: `127.0.0.1:${coderdPProfPort}`,
|
||||
CODER_EXPERIMENTS: `multi-organization,${e2eFakeExperiment1},${e2eFakeExperiment2}`,
|
||||
|
||||
// Tests for Deployment / User Authentication / OIDC
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { spawn, type ChildProcess, exec } from "child_process";
|
||||
import { type ChildProcess, exec, spawn } from "node:child_process";
|
||||
import { coderMain, coderPort, workspaceProxyPort } from "./constants";
|
||||
import { waitUntilUrlIsNotResponding } from "./helpers";
|
||||
|
||||
@ -28,10 +28,7 @@ export const startWorkspaceProxy = async (
|
||||
return cp;
|
||||
};
|
||||
|
||||
export const stopWorkspaceProxy = async (
|
||||
cp: ChildProcess,
|
||||
goRun: boolean = true,
|
||||
) => {
|
||||
export const stopWorkspaceProxy = async (cp: ChildProcess, goRun = true) => {
|
||||
exec(goRun ? `pkill -P ${cp.pid}` : `kill ${cp.pid}`, (error) => {
|
||||
if (error) {
|
||||
throw new Error(`exec error: ${JSON.stringify(error)}`);
|
||||
|
@ -1,15 +1,15 @@
|
||||
import * as fs from "node:fs/promises";
|
||||
import type { Writable } from "node:stream";
|
||||
/* eslint-disable no-console -- Logging is sort of the whole point here */
|
||||
import type {
|
||||
FullConfig,
|
||||
Suite,
|
||||
TestCase,
|
||||
TestResult,
|
||||
FullResult,
|
||||
Reporter,
|
||||
Suite,
|
||||
TestCase,
|
||||
TestError,
|
||||
TestResult,
|
||||
} from "@playwright/test/reporter";
|
||||
import * as fs from "fs/promises";
|
||||
import type { Writable } from "stream";
|
||||
import { API } from "api/api";
|
||||
import { coderdPProfPort, enterpriseLicense } from "./constants";
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { randomUUID } from "node:crypto";
|
||||
import * as http from "node:http";
|
||||
import { test } from "@playwright/test";
|
||||
import { randomUUID } from "crypto";
|
||||
import * as http from "http";
|
||||
import {
|
||||
createTemplate,
|
||||
createWorkspace,
|
||||
@ -37,7 +37,7 @@ test("app", async ({ context, page }) => {
|
||||
token,
|
||||
apps: [
|
||||
{
|
||||
url: "http://localhost:" + addr.port,
|
||||
url: `http://localhost:${addr.port}`,
|
||||
displayName: appName,
|
||||
order: 0,
|
||||
},
|
||||
|
@ -1,6 +1,6 @@
|
||||
import type { Page } from "@playwright/test";
|
||||
import { expect, test } from "@playwright/test";
|
||||
import { type DeploymentConfig, API } from "api/api";
|
||||
import { API, type DeploymentConfig } from "api/api";
|
||||
import {
|
||||
findConfigOption,
|
||||
setupApiCalls,
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { test, expect, type Page } from "@playwright/test";
|
||||
import { type Page, expect, test } from "@playwright/test";
|
||||
import { API } from "api/api";
|
||||
import { setupApiCalls } from "../../api";
|
||||
import { coderPort, workspaceProxyPort } from "../../constants";
|
||||
@ -23,7 +23,7 @@ test("default proxy is online", async ({ page }) => {
|
||||
const workspaceProxyStatus = workspaceProxyPrimary.locator("td.status span");
|
||||
|
||||
await expect(workspaceProxyName).toHaveText("Default");
|
||||
await expect(workspaceProxyURL).toHaveText("http://localhost:" + coderPort);
|
||||
await expect(workspaceProxyURL).toHaveText(`http://localhost:${coderPort}`);
|
||||
await expect(workspaceProxyStatus).toHaveText("Healthy");
|
||||
});
|
||||
|
||||
@ -50,7 +50,7 @@ test("custom proxy is online", async ({ page }) => {
|
||||
waitUntil: "domcontentloaded",
|
||||
});
|
||||
|
||||
const workspaceProxy = page.locator(`table.MuiTable-root tr`, {
|
||||
const workspaceProxy = page.locator("table.MuiTable-root tr", {
|
||||
hasText: proxyName,
|
||||
});
|
||||
|
||||
@ -82,7 +82,7 @@ const waitUntilWorkspaceProxyIsHealthy = async (
|
||||
while (retries < maxRetries) {
|
||||
await page.reload();
|
||||
|
||||
const workspaceProxy = page.locator(`table.MuiTable-root tr`, {
|
||||
const workspaceProxy = page.locator("table.MuiTable-root tr", {
|
||||
hasText: proxyName,
|
||||
});
|
||||
const workspaceProxyStatus = workspaceProxy.locator("td.status span");
|
||||
|
@ -26,8 +26,7 @@ test.beforeAll(async ({ baseURL }) => {
|
||||
});
|
||||
srv.use(gitAuth.authPath, (req, res) => {
|
||||
res.redirect(
|
||||
`${baseURL}/external-auth/${gitAuth.webProvider}/callback?code=1234&state=` +
|
||||
req.query.state,
|
||||
`${baseURL}/external-auth/${gitAuth.webProvider}/callback?code=1234&state=${req.query.state}`,
|
||||
);
|
||||
});
|
||||
});
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { test, expect } from "@playwright/test";
|
||||
import { expect, test } from "@playwright/test";
|
||||
import {
|
||||
createGroup,
|
||||
createUser,
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { test, expect } from "@playwright/test";
|
||||
import { expect, test } from "@playwright/test";
|
||||
import { createUser, getCurrentOrgId, setupApiCalls } from "../../api";
|
||||
import { requiresEnterpriseLicense } from "../../helpers";
|
||||
import { beforeCoderTest } from "../../hooks";
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { test, expect } from "@playwright/test";
|
||||
import { expect, test } from "@playwright/test";
|
||||
import { randomName, requiresEnterpriseLicense } from "../../helpers";
|
||||
import { beforeCoderTest } from "../../hooks";
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { test, expect } from "@playwright/test";
|
||||
import { expect, test } from "@playwright/test";
|
||||
import { createGroup, getCurrentOrgId, setupApiCalls } from "../../api";
|
||||
import { requiresEnterpriseLicense } from "../../helpers";
|
||||
import { beforeCoderTest } from "../../hooks";
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { test, expect } from "@playwright/test";
|
||||
import { expect, test } from "@playwright/test";
|
||||
import { createGroup, getCurrentOrgId, setupApiCalls } from "../../api";
|
||||
import { requiresEnterpriseLicense } from "../../helpers";
|
||||
import { beforeCoderTest } from "../../hooks";
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { test, expect } from "@playwright/test";
|
||||
import { expect, test } from "@playwright/test";
|
||||
import { API } from "api/api";
|
||||
import {
|
||||
createGroup,
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { test, expect } from "@playwright/test";
|
||||
import { expect, test } from "@playwright/test";
|
||||
import { setupApiCalls } from "../api";
|
||||
import { expectUrl } from "../expectUrl";
|
||||
import { requiresEnterpriseLicense } from "../helpers";
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { randomUUID } from "node:crypto";
|
||||
import { test } from "@playwright/test";
|
||||
import { randomUUID } from "crypto";
|
||||
import {
|
||||
createTemplate,
|
||||
createWorkspace,
|
||||
@ -16,7 +16,7 @@ const agentVersion = "v2.12.1";
|
||||
|
||||
test.beforeEach(({ page }) => beforeCoderTest(page));
|
||||
|
||||
test("ssh with agent " + agentVersion, async ({ page }) => {
|
||||
test(`ssh with agent ${agentVersion}`, async ({ page }) => {
|
||||
test.setTimeout(40_000); // This is a slow test, 20s may not be enough on Mac.
|
||||
|
||||
const token = randomUUID();
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { randomUUID } from "node:crypto";
|
||||
import { test } from "@playwright/test";
|
||||
import { randomUUID } from "crypto";
|
||||
import {
|
||||
createTemplate,
|
||||
createWorkspace,
|
||||
@ -16,7 +16,7 @@ const clientVersion = "v0.27.0";
|
||||
|
||||
test.beforeEach(({ page }) => beforeCoderTest(page));
|
||||
|
||||
test("ssh with client " + clientVersion, async ({ page }) => {
|
||||
test(`ssh with client ${clientVersion}`, async ({ page }) => {
|
||||
const token = randomUUID();
|
||||
const template = await createTemplate(page, {
|
||||
apply: [
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { test, expect } from "@playwright/test";
|
||||
import { expect, test } from "@playwright/test";
|
||||
import { beforeCoderTest } from "../../hooks";
|
||||
|
||||
test.beforeEach(({ page }) => beforeCoderTest(page));
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { test, expect } from "@playwright/test";
|
||||
import { expect, test } from "@playwright/test";
|
||||
import { randomName } from "../../helpers";
|
||||
import { beforeCoderTest } from "../../hooks";
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { test, expect } from "@playwright/test";
|
||||
import { expect, test } from "@playwright/test";
|
||||
import { createUser, getCurrentOrgId, setupApiCalls } from "../../api";
|
||||
import { beforeCoderTest } from "../../hooks";
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { randomUUID } from "node:crypto";
|
||||
import { test } from "@playwright/test";
|
||||
import { randomUUID } from "crypto";
|
||||
import {
|
||||
createTemplate,
|
||||
createWorkspace,
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { test, expect } from "@playwright/test";
|
||||
import { expect, test } from "@playwright/test";
|
||||
import { username } from "../../constants";
|
||||
import {
|
||||
createTemplate,
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { test, expect } from "@playwright/test";
|
||||
import { expect, test } from "@playwright/test";
|
||||
import {
|
||||
StarterTemplates,
|
||||
createTemplate,
|
||||
@ -10,14 +10,14 @@ import {
|
||||
} from "../../helpers";
|
||||
import { beforeCoderTest } from "../../hooks";
|
||||
import {
|
||||
secondParameter,
|
||||
fourthParameter,
|
||||
fifthParameter,
|
||||
firstParameter,
|
||||
thirdParameter,
|
||||
fourthParameter,
|
||||
randParamName,
|
||||
secondParameter,
|
||||
seventhParameter,
|
||||
sixthParameter,
|
||||
randParamName,
|
||||
thirdParameter,
|
||||
} from "../../parameters";
|
||||
import type { RichParameter } from "../../provisionerGenerated";
|
||||
|
||||
|
@ -12,9 +12,9 @@ import { beforeCoderTest } from "../../hooks";
|
||||
import {
|
||||
fifthParameter,
|
||||
firstParameter,
|
||||
secondBuildOption,
|
||||
secondParameter,
|
||||
sixthParameter,
|
||||
secondBuildOption,
|
||||
} from "../../parameters";
|
||||
import type { RichParameter } from "../../provisionerGenerated";
|
||||
|
||||
|
@ -1,13 +0,0 @@
|
||||
// Toggle eslint --fix by specifying the `FIX` env.
|
||||
const fix = !!process.env.FIX;
|
||||
|
||||
module.exports = {
|
||||
cliOptions: {
|
||||
ext: [".js", ".ts", ".tsx"],
|
||||
ignorePath: ".eslintignore",
|
||||
cache: false,
|
||||
fix,
|
||||
resolvePluginsRelativeTo: ".",
|
||||
maxWarnings: 0,
|
||||
},
|
||||
};
|
@ -49,21 +49,6 @@ module.exports = {
|
||||
"^@fontsource": "<rootDir>/src/testHelpers/styleMock.ts",
|
||||
},
|
||||
},
|
||||
{
|
||||
displayName: "lint",
|
||||
runner: "jest-runner-eslint",
|
||||
testMatch: [
|
||||
"<rootDir>/**/*.js",
|
||||
"<rootDir>/**/*.ts",
|
||||
"<rootDir>/**/*.tsx",
|
||||
],
|
||||
testPathIgnorePatterns: [
|
||||
"/out/",
|
||||
"/_jest/",
|
||||
"jest.config.js",
|
||||
"jest-runner.*.js",
|
||||
],
|
||||
},
|
||||
],
|
||||
collectCoverageFrom: [
|
||||
// included files
|
||||
|
@ -1,193 +1,177 @@
|
||||
{
|
||||
"name": "coder-v2",
|
||||
"description": "Coder V2 (Workspaces V2)",
|
||||
"repository": "https://github.com/coder/coder",
|
||||
"private": true,
|
||||
"license": "AGPL-3.0",
|
||||
"scripts": {
|
||||
"build": "NODE_ENV=production pnpm vite build",
|
||||
"check:all": "pnpm format:check && pnpm lint && pnpm test",
|
||||
"chromatic": "chromatic",
|
||||
"dev": "vite",
|
||||
"format": "prettier --cache --write '../**/*.{css,html,js,json,jsx,md,ts,tsx,yaml,yml}'",
|
||||
"format:check": "prettier --cache --check '../**/*.{css,html,js,json,jsx,md,ts,tsx,yaml,yml}'",
|
||||
"lint": "pnpm run lint:types && jest --selectProjects lint",
|
||||
"lint:fix": "eslint --fix e2e/ src/",
|
||||
"lint:types": "tsc -p .",
|
||||
"playwright:install": "playwright install --with-deps chromium",
|
||||
"playwright:test": "playwright test --config=e2e/playwright.config.ts",
|
||||
"playwright:test-ui": "playwright test --config=e2e/playwright.config.ts --ui $([[ \"$CODER\" == \"true\" ]] && echo --ui-port=7500 --ui-host=0.0.0.0)",
|
||||
"gen:provisioner": "protoc --plugin=./node_modules/.bin/protoc-gen-ts_proto --ts_proto_out=./e2e/ --ts_proto_opt=outputJsonMethods=false,outputEncodeMethods=encode-no-creation,outputClientImpl=false,nestJs=false,outputPartialMethods=false,fileSuffix=Generated,suffix=hey -I ../provisionersdk/proto ../provisionersdk/proto/provisioner.proto && pnpm exec prettier --ignore-path '/dev/null' --cache --write './e2e/provisionerGenerated.ts'",
|
||||
"storybook": "STORYBOOK=true storybook dev -p 6006",
|
||||
"storybook:build": "storybook build",
|
||||
"storybook:ci": "storybook build --test",
|
||||
"test": "jest --selectProjects test",
|
||||
"test:ci": "jest --selectProjects test --silent",
|
||||
"test:coverage": "jest --selectProjects test --collectCoverage",
|
||||
"test:watch": "jest --selectProjects test --watch",
|
||||
"test:storybook": "test-storybook",
|
||||
"stats": "STATS=true pnpm build && npx http-server ./stats -p 8081 -c-1",
|
||||
"deadcode": "ts-prune | grep -v \".stories\\|.config\\|e2e\\|__mocks__\\|used in module\\|testHelpers\\|typesGenerated\" || echo \"No deadcode found.\""
|
||||
},
|
||||
"dependencies": {
|
||||
"@alwaysmeticulous/recorder-loader": "2.137.0",
|
||||
"@emoji-mart/data": "1.2.1",
|
||||
"@emoji-mart/react": "1.1.1",
|
||||
"@emotion/css": "11.11.2",
|
||||
"@emotion/react": "11.11.4",
|
||||
"@emotion/styled": "11.11.5",
|
||||
"@fastly/performance-observer-polyfill": "2.0.0",
|
||||
"@fontsource-variable/inter": "5.0.15",
|
||||
"@fontsource/ibm-plex-mono": "5.0.5",
|
||||
"@monaco-editor/react": "4.6.0",
|
||||
"@mui/icons-material": "5.16.0",
|
||||
"@mui/lab": "5.0.0-alpha.129",
|
||||
"@mui/material": "5.16.0",
|
||||
"@mui/system": "5.16.0",
|
||||
"@mui/utils": "5.16.0",
|
||||
"@mui/x-tree-view": "7.9.0",
|
||||
"@tanstack/react-query-devtools": "4.35.3",
|
||||
"@xterm/addon-canvas": "0.7.0",
|
||||
"@xterm/addon-fit": "0.10.0",
|
||||
"@xterm/addon-unicode11": "0.8.0",
|
||||
"@xterm/addon-web-links": "0.11.0",
|
||||
"@xterm/addon-webgl": "0.18.0",
|
||||
"@xterm/xterm": "5.5.0",
|
||||
"ansi-to-html": "0.7.2",
|
||||
"axios": "1.7.2",
|
||||
"canvas": "3.0.0-rc2",
|
||||
"chart.js": "4.4.0",
|
||||
"chartjs-adapter-date-fns": "3.0.0",
|
||||
"chartjs-plugin-annotation": "3.0.1",
|
||||
"chroma-js": "2.4.2",
|
||||
"color-convert": "2.0.1",
|
||||
"cron-parser": "4.9.0",
|
||||
"cronstrue": "2.43.0",
|
||||
"date-fns": "2.30.0",
|
||||
"dayjs": "1.11.4",
|
||||
"emoji-mart": "5.6.0",
|
||||
"file-saver": "2.0.5",
|
||||
"formik": "2.4.6",
|
||||
"front-matter": "4.0.2",
|
||||
"jszip": "3.10.1",
|
||||
"lodash": "4.17.21",
|
||||
"monaco-editor": "0.50.0",
|
||||
"pretty-bytes": "6.1.0",
|
||||
"react": "18.3.1",
|
||||
"react-chartjs-2": "5.2.0",
|
||||
"react-color": "2.19.3",
|
||||
"react-confetti": "6.1.0",
|
||||
"react-date-range": "1.4.0",
|
||||
"react-dom": "18.3.1",
|
||||
"react-helmet-async": "2.0.5",
|
||||
"react-markdown": "9.0.1",
|
||||
"react-query": "npm:@tanstack/react-query@4.35.3",
|
||||
"react-router-dom": "6.24.0",
|
||||
"react-syntax-highlighter": "15.5.0",
|
||||
"react-virtualized-auto-sizer": "1.0.24",
|
||||
"react-window": "1.8.10",
|
||||
"remark-gfm": "4.0.0",
|
||||
"rollup-plugin-visualizer": "5.12.0",
|
||||
"semver": "7.6.2",
|
||||
"tzdata": "1.0.30",
|
||||
"ua-parser-js": "1.0.33",
|
||||
"ufuzzy": "npm:@leeoniya/ufuzzy@1.0.10",
|
||||
"undici": "6.19.2",
|
||||
"unique-names-generator": "4.7.1",
|
||||
"uuid": "9.0.0",
|
||||
"yup": "1.4.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@chromatic-com/storybook": "1.6.0",
|
||||
"@octokit/types": "12.3.0",
|
||||
"@playwright/test": "1.40.1",
|
||||
"@storybook/addon-actions": "8.1.11",
|
||||
"@storybook/addon-essentials": "8.1.11",
|
||||
"@storybook/addon-interactions": "8.1.11",
|
||||
"@storybook/addon-links": "8.1.11",
|
||||
"@storybook/addon-mdx-gfm": "8.1.11",
|
||||
"@storybook/addon-themes": "8.1.11",
|
||||
"@storybook/preview-api": "8.1.11",
|
||||
"@storybook/react": "8.1.11",
|
||||
"@storybook/react-vite": "8.1.11",
|
||||
"@storybook/test": "8.1.11",
|
||||
"@swc/core": "1.3.38",
|
||||
"@swc/jest": "0.2.24",
|
||||
"@testing-library/jest-dom": "6.4.6",
|
||||
"@testing-library/react": "14.1.0",
|
||||
"@testing-library/react-hooks": "8.0.1",
|
||||
"@testing-library/user-event": "14.5.1",
|
||||
"@types/chroma-js": "2.4.0",
|
||||
"@types/color-convert": "2.0.0",
|
||||
"@types/express": "4.17.17",
|
||||
"@types/file-saver": "2.0.7",
|
||||
"@types/jest": "29.5.2",
|
||||
"@types/lodash": "4.17.6",
|
||||
"@types/node": "18.19.0",
|
||||
"@types/react": "18.2.6",
|
||||
"@types/react-color": "3.0.6",
|
||||
"@types/react-date-range": "1.4.4",
|
||||
"@types/react-dom": "18.2.4",
|
||||
"@types/react-syntax-highlighter": "15.5.13",
|
||||
"@types/react-virtualized-auto-sizer": "1.0.4",
|
||||
"@types/react-window": "1.8.8",
|
||||
"@types/semver": "7.5.8",
|
||||
"@types/ssh2": "1.15.0",
|
||||
"@types/ua-parser-js": "0.7.36",
|
||||
"@types/uuid": "9.0.2",
|
||||
"@typescript-eslint/eslint-plugin": "6.9.1",
|
||||
"@typescript-eslint/parser": "6.9.1",
|
||||
"@vitejs/plugin-react": "4.3.1",
|
||||
"chromatic": "11.3.0",
|
||||
"eslint": "8.52.0",
|
||||
"eslint-config-prettier": "9.0.0",
|
||||
"eslint-import-resolver-typescript": "3.6.0",
|
||||
"eslint-plugin-compat": "4.2.0",
|
||||
"eslint-plugin-eslint-comments": "3.2.0",
|
||||
"eslint-plugin-import": "2.29.0",
|
||||
"eslint-plugin-jest": "27.6.0",
|
||||
"eslint-plugin-jsx-a11y": "6.7.1",
|
||||
"eslint-plugin-react": "7.33.0",
|
||||
"eslint-plugin-react-hooks": "4.6.0",
|
||||
"eslint-plugin-storybook": "0.8.0",
|
||||
"eslint-plugin-testing-library": "6.1.0",
|
||||
"eslint-plugin-unicorn": "49.0.0",
|
||||
"eventsourcemock": "2.0.0",
|
||||
"express": "4.19.2",
|
||||
"jest": "29.6.2",
|
||||
"jest-canvas-mock": "2.5.2",
|
||||
"jest-environment-jsdom": "29.5.0",
|
||||
"jest-location-mock": "2.0.0",
|
||||
"jest-runner-eslint": "2.1.0",
|
||||
"jest-websocket-mock": "2.5.0",
|
||||
"jest_workaround": "0.1.14",
|
||||
"msw": "2.2.3",
|
||||
"prettier": "3.1.0",
|
||||
"protobufjs": "7.2.5",
|
||||
"rxjs": "7.8.1",
|
||||
"ssh2": "1.15.0",
|
||||
"storybook": "8.1.11",
|
||||
"storybook-addon-remix-react-router": "3.0.0",
|
||||
"storybook-react-context": "0.6.0",
|
||||
"ts-node": "10.9.1",
|
||||
"ts-proto": "1.164.0",
|
||||
"ts-prune": "0.10.3",
|
||||
"typescript": "5.2.2",
|
||||
"vite": "5.3.3",
|
||||
"vite-plugin-checker": "0.7.1",
|
||||
"vite-plugin-turbosnap": "1.0.2"
|
||||
},
|
||||
"browserslist": [
|
||||
"chrome 110",
|
||||
"firefox 111",
|
||||
"safari 16.0"
|
||||
],
|
||||
"resolutions": {
|
||||
"optionator": "0.9.3",
|
||||
"semver": "7.6.2"
|
||||
},
|
||||
"engines": {
|
||||
"npm": ">=9.0.0 <10.0.0",
|
||||
"node": ">=18.0.0 <21.0.0"
|
||||
}
|
||||
"name": "coder-v2",
|
||||
"description": "Coder V2 (Workspaces V2)",
|
||||
"repository": "https://github.com/coder/coder",
|
||||
"private": true,
|
||||
"license": "AGPL-3.0",
|
||||
"scripts": {
|
||||
"build": "NODE_ENV=production pnpm vite build",
|
||||
"check": "biome check --error-on-warnings e2e/ src/",
|
||||
"check:fix": "biome check --error-on-warnings --fix e2e/ src/",
|
||||
"check:all": "pnpm check && pnpm test",
|
||||
"chromatic": "chromatic",
|
||||
"dev": "vite",
|
||||
"format": "biome format --write e2e/ src/",
|
||||
"format:check": "biome format e2e/ src/",
|
||||
"lint": "pnpm run lint:check && pnpm run lint:types",
|
||||
"lint:check": " biome lint --error-on-warnings e2e/ src/",
|
||||
"lint:fix": " biome lint --error-on-warnings --write e2e/ src/",
|
||||
"lint:types": "tsc -p .",
|
||||
"playwright:install": "playwright install --with-deps chromium",
|
||||
"playwright:test": "playwright test --config=e2e/playwright.config.ts",
|
||||
"playwright:test-ui": "playwright test --config=e2e/playwright.config.ts --ui $([[ \"$CODER\" == \"true\" ]] && echo --ui-port=7500 --ui-host=0.0.0.0)",
|
||||
"gen:provisioner": "protoc --plugin=./node_modules/.bin/protoc-gen-ts_proto --ts_proto_out=./e2e/ --ts_proto_opt=outputJsonMethods=false,outputEncodeMethods=encode-no-creation,outputClientImpl=false,nestJs=false,outputPartialMethods=false,fileSuffix=Generated,suffix=hey -I ../provisionersdk/proto ../provisionersdk/proto/provisioner.proto && pnpm exec prettier --ignore-path '/dev/null' --cache --write './e2e/provisionerGenerated.ts'",
|
||||
"storybook": "STORYBOOK=true storybook dev -p 6006",
|
||||
"storybook:build": "storybook build",
|
||||
"storybook:ci": "storybook build --test",
|
||||
"test": "jest --selectProjects test",
|
||||
"test:ci": "jest --selectProjects test --silent",
|
||||
"test:coverage": "jest --selectProjects test --collectCoverage",
|
||||
"test:watch": "jest --selectProjects test --watch",
|
||||
"test:storybook": "test-storybook",
|
||||
"stats": "STATS=true pnpm build && npx http-server ./stats -p 8081 -c-1",
|
||||
"deadcode": "ts-prune | grep -v \".stories\\|.config\\|e2e\\|__mocks__\\|used in module\\|testHelpers\\|typesGenerated\" || echo \"No deadcode found.\""
|
||||
},
|
||||
"dependencies": {
|
||||
"@alwaysmeticulous/recorder-loader": "2.137.0",
|
||||
"@emoji-mart/data": "1.2.1",
|
||||
"@emoji-mart/react": "1.1.1",
|
||||
"@emotion/css": "11.11.2",
|
||||
"@emotion/react": "11.11.4",
|
||||
"@emotion/styled": "11.11.5",
|
||||
"@fastly/performance-observer-polyfill": "2.0.0",
|
||||
"@fontsource-variable/inter": "5.0.15",
|
||||
"@fontsource/ibm-plex-mono": "5.0.5",
|
||||
"@monaco-editor/react": "4.6.0",
|
||||
"@mui/icons-material": "5.16.0",
|
||||
"@mui/lab": "5.0.0-alpha.129",
|
||||
"@mui/material": "5.16.0",
|
||||
"@mui/system": "5.16.0",
|
||||
"@mui/utils": "5.16.0",
|
||||
"@mui/x-tree-view": "7.9.0",
|
||||
"@tanstack/react-query-devtools": "4.35.3",
|
||||
"@xterm/addon-canvas": "0.7.0",
|
||||
"@xterm/addon-fit": "0.10.0",
|
||||
"@xterm/addon-unicode11": "0.8.0",
|
||||
"@xterm/addon-web-links": "0.11.0",
|
||||
"@xterm/addon-webgl": "0.18.0",
|
||||
"@xterm/xterm": "5.5.0",
|
||||
"ansi-to-html": "0.7.2",
|
||||
"axios": "1.7.2",
|
||||
"canvas": "3.0.0-rc2",
|
||||
"chart.js": "4.4.0",
|
||||
"chartjs-adapter-date-fns": "3.0.0",
|
||||
"chartjs-plugin-annotation": "3.0.1",
|
||||
"chroma-js": "2.4.2",
|
||||
"color-convert": "2.0.1",
|
||||
"cron-parser": "4.9.0",
|
||||
"cronstrue": "2.43.0",
|
||||
"date-fns": "2.30.0",
|
||||
"dayjs": "1.11.4",
|
||||
"emoji-mart": "5.6.0",
|
||||
"file-saver": "2.0.5",
|
||||
"formik": "2.4.6",
|
||||
"front-matter": "4.0.2",
|
||||
"jszip": "3.10.1",
|
||||
"lodash": "4.17.21",
|
||||
"monaco-editor": "0.50.0",
|
||||
"pretty-bytes": "6.1.0",
|
||||
"react": "18.3.1",
|
||||
"react-chartjs-2": "5.2.0",
|
||||
"react-color": "2.19.3",
|
||||
"react-confetti": "6.1.0",
|
||||
"react-date-range": "1.4.0",
|
||||
"react-dom": "18.3.1",
|
||||
"react-helmet-async": "2.0.5",
|
||||
"react-markdown": "9.0.1",
|
||||
"react-query": "npm:@tanstack/react-query@4.35.3",
|
||||
"react-router-dom": "6.24.0",
|
||||
"react-syntax-highlighter": "15.5.0",
|
||||
"react-virtualized-auto-sizer": "1.0.24",
|
||||
"react-window": "1.8.10",
|
||||
"remark-gfm": "4.0.0",
|
||||
"rollup-plugin-visualizer": "5.12.0",
|
||||
"semver": "7.6.2",
|
||||
"tzdata": "1.0.30",
|
||||
"ua-parser-js": "1.0.33",
|
||||
"ufuzzy": "npm:@leeoniya/ufuzzy@1.0.10",
|
||||
"undici": "6.19.2",
|
||||
"unique-names-generator": "4.7.1",
|
||||
"uuid": "9.0.0",
|
||||
"yup": "1.4.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "1.8.3",
|
||||
"@chromatic-com/storybook": "1.6.0",
|
||||
"@octokit/types": "12.3.0",
|
||||
"@playwright/test": "1.40.1",
|
||||
"@storybook/addon-actions": "8.1.11",
|
||||
"@storybook/addon-essentials": "8.1.11",
|
||||
"@storybook/addon-interactions": "8.1.11",
|
||||
"@storybook/addon-links": "8.1.11",
|
||||
"@storybook/addon-mdx-gfm": "8.1.11",
|
||||
"@storybook/addon-themes": "8.1.11",
|
||||
"@storybook/preview-api": "8.1.11",
|
||||
"@storybook/react": "8.1.11",
|
||||
"@storybook/react-vite": "8.1.11",
|
||||
"@storybook/test": "8.1.11",
|
||||
"@swc/core": "1.3.38",
|
||||
"@swc/jest": "0.2.24",
|
||||
"@testing-library/jest-dom": "6.4.6",
|
||||
"@testing-library/react": "14.1.0",
|
||||
"@testing-library/react-hooks": "8.0.1",
|
||||
"@testing-library/user-event": "14.5.1",
|
||||
"@types/chroma-js": "2.4.0",
|
||||
"@types/color-convert": "2.0.0",
|
||||
"@types/express": "4.17.17",
|
||||
"@types/file-saver": "2.0.7",
|
||||
"@types/jest": "29.5.2",
|
||||
"@types/lodash": "4.17.6",
|
||||
"@types/node": "18.19.0",
|
||||
"@types/react": "18.2.6",
|
||||
"@types/react-color": "3.0.6",
|
||||
"@types/react-date-range": "1.4.4",
|
||||
"@types/react-dom": "18.2.4",
|
||||
"@types/react-syntax-highlighter": "15.5.13",
|
||||
"@types/react-virtualized-auto-sizer": "1.0.4",
|
||||
"@types/react-window": "1.8.8",
|
||||
"@types/semver": "7.5.8",
|
||||
"@types/ssh2": "1.15.0",
|
||||
"@types/ua-parser-js": "0.7.36",
|
||||
"@types/uuid": "9.0.2",
|
||||
"@vitejs/plugin-react": "4.3.1",
|
||||
"chromatic": "11.3.0",
|
||||
"eventsourcemock": "2.0.0",
|
||||
"express": "4.19.2",
|
||||
"jest": "29.6.2",
|
||||
"jest-canvas-mock": "2.5.2",
|
||||
"jest-environment-jsdom": "29.5.0",
|
||||
"jest-location-mock": "2.0.0",
|
||||
"jest-websocket-mock": "2.5.0",
|
||||
"jest_workaround": "0.1.14",
|
||||
"msw": "2.2.3",
|
||||
"prettier": "3.3.3",
|
||||
"protobufjs": "7.2.5",
|
||||
"rxjs": "7.8.1",
|
||||
"ssh2": "1.15.0",
|
||||
"storybook": "8.1.11",
|
||||
"storybook-addon-remix-react-router": "3.0.0",
|
||||
"storybook-react-context": "0.6.0",
|
||||
"ts-node": "10.9.1",
|
||||
"ts-proto": "1.164.0",
|
||||
"ts-prune": "0.10.3",
|
||||
"typescript": "5.2.2",
|
||||
"vite": "5.3.3",
|
||||
"vite-plugin-checker": "0.7.1",
|
||||
"vite-plugin-turbosnap": "1.0.2"
|
||||
},
|
||||
"browserslist": ["chrome 110", "firefox 111", "safari 16.0"],
|
||||
"resolutions": {
|
||||
"optionator": "0.9.3",
|
||||
"semver": "7.6.2"
|
||||
},
|
||||
"engines": {
|
||||
"npm": ">=9.0.0 <10.0.0",
|
||||
"node": ">=18.0.0 <21.0.0"
|
||||
}
|
||||
}
|
||||
|
1633
site/pnpm-lock.yaml
generated
1633
site/pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
1
site/src/@types/mui.d.ts
vendored
1
site/src/@types/mui.d.ts
vendored
@ -1,3 +1,4 @@
|
||||
// biome-ignore lint/nursery/noRestrictedImports: base theme types
|
||||
import type { PaletteColor, PaletteColorOptions } from "@mui/material/styles";
|
||||
|
||||
declare module "@mui/material/styles" {
|
||||
|
4
site/src/@types/storybook.d.ts
vendored
4
site/src/@types/storybook.d.ts
vendored
@ -1,13 +1,13 @@
|
||||
import * as _storybook_types from "@storybook/react";
|
||||
import type { QueryKey } from "react-query";
|
||||
import type {
|
||||
DeploymentValues,
|
||||
Experiments,
|
||||
FeatureName,
|
||||
SerpentOption,
|
||||
User,
|
||||
DeploymentValues,
|
||||
} from "api/typesGenerated";
|
||||
import type { Permissions } from "contexts/auth/permissions";
|
||||
import type { QueryKey } from "react-query";
|
||||
|
||||
declare module "@storybook/react" {
|
||||
type WebSocketEvent =
|
||||
|
@ -12,8 +12,8 @@ import { QueryClient, QueryClientProvider } from "react-query";
|
||||
import { RouterProvider } from "react-router-dom";
|
||||
import { ErrorBoundary } from "./components/ErrorBoundary/ErrorBoundary";
|
||||
import { GlobalSnackbar } from "./components/GlobalSnackbar/GlobalSnackbar";
|
||||
import { AuthProvider } from "./contexts/auth/AuthProvider";
|
||||
import { ThemeProvider } from "./contexts/ThemeProvider";
|
||||
import { AuthProvider } from "./contexts/auth/AuthProvider";
|
||||
import { router } from "./router";
|
||||
|
||||
const defaultQueryClient = new QueryClient({
|
||||
|
@ -17,4 +17,4 @@ const monaco = {
|
||||
|
||||
module.exports = monaco;
|
||||
|
||||
export {};
|
||||
export type {};
|
||||
|
@ -6,7 +6,7 @@ import {
|
||||
MockWorkspaceBuild,
|
||||
MockWorkspaceBuildParameter1,
|
||||
} from "testHelpers/entities";
|
||||
import { API, getURLWithSearchParams, MissingBuildParameters } from "./api";
|
||||
import { API, MissingBuildParameters, getURLWithSearchParams } from "./api";
|
||||
import type * as TypesGen from "./typesGenerated";
|
||||
|
||||
const axiosInstance = API.getAxiosInstance();
|
||||
@ -146,7 +146,7 @@ describe("api.ts", () => {
|
||||
"/api/v2/workspaces?q=owner%3Ame",
|
||||
],
|
||||
])(
|
||||
`Workspaces - getURLWithSearchParams(%p, %p) returns %p`,
|
||||
"Workspaces - getURLWithSearchParams(%p, %p) returns %p",
|
||||
(basePath, filter, expected) => {
|
||||
expect(getURLWithSearchParams(basePath, filter)).toBe(expected);
|
||||
},
|
||||
@ -163,7 +163,7 @@ describe("api.ts", () => {
|
||||
],
|
||||
["/api/v2/users", { q: "" }, "/api/v2/users"],
|
||||
])(
|
||||
`Users - getURLWithSearchParams(%p, %p) returns %p`,
|
||||
"Users - getURLWithSearchParams(%p, %p) returns %p",
|
||||
(basePath, filter, expected) => {
|
||||
expect(getURLWithSearchParams(basePath, filter)).toBe(expected);
|
||||
},
|
||||
|
@ -34,7 +34,7 @@ const getMissingParameters = (
|
||||
const missingParameters: TypesGen.TemplateVersionParameter[] = [];
|
||||
const requiredParameters: TypesGen.TemplateVersionParameter[] = [];
|
||||
|
||||
templateParameters.forEach((p) => {
|
||||
for (const p of templateParameters) {
|
||||
// It is mutable and required. Mutable values can be changed after so we
|
||||
// don't need to ask them if they are not required.
|
||||
const isMutableAndRequired = p.mutable && p.required;
|
||||
@ -44,7 +44,7 @@ const getMissingParameters = (
|
||||
if (isMutableAndRequired || isImmutable) {
|
||||
requiredParameters.push(p);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
for (const parameter of requiredParameters) {
|
||||
// Check if there is a new value
|
||||
@ -68,9 +68,9 @@ const getMissingParameters = (
|
||||
}
|
||||
|
||||
// Check if parameter "options" changed and we can't use old build parameters.
|
||||
templateParameters.forEach((templateParameter) => {
|
||||
for (const templateParameter of templateParameters) {
|
||||
if (templateParameter.options.length === 0) {
|
||||
return;
|
||||
continue;
|
||||
}
|
||||
|
||||
// Check if there is a new value
|
||||
@ -86,7 +86,7 @@ const getMissingParameters = (
|
||||
}
|
||||
|
||||
if (!buildParameter) {
|
||||
return;
|
||||
continue;
|
||||
}
|
||||
|
||||
const matchingOption = templateParameter.options.find(
|
||||
@ -95,7 +95,8 @@ const getMissingParameters = (
|
||||
if (!matchingOption) {
|
||||
missingParameters.push(templateParameter);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return missingParameters;
|
||||
};
|
||||
|
||||
@ -132,13 +133,11 @@ export const getURLWithSearchParams = (
|
||||
}
|
||||
|
||||
const searchParams = new URLSearchParams();
|
||||
const keys = Object.keys(options) as (keyof SearchParamOptions)[];
|
||||
keys.forEach((key) => {
|
||||
const value = options[key];
|
||||
for (const [key, value] of Object.entries(options)) {
|
||||
if (value !== undefined && value !== "") {
|
||||
searchParams.append(key, value.toString());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const searchString = searchParams.toString();
|
||||
return searchString ? `${basePath}?${searchString}` : basePath;
|
||||
@ -241,7 +240,7 @@ export const watchWorkspaceAgentLogs = (
|
||||
});
|
||||
|
||||
socket.addEventListener("close", () => {
|
||||
onDone && onDone();
|
||||
onDone?.();
|
||||
});
|
||||
|
||||
return socket;
|
||||
@ -281,13 +280,13 @@ export const watchBuildLogsByBuildId = (
|
||||
);
|
||||
|
||||
socket.addEventListener("error", () => {
|
||||
onError && onError(new Error("Connection for logs failed."));
|
||||
onError?.(new Error("Connection for logs failed."));
|
||||
socket.close();
|
||||
});
|
||||
|
||||
socket.addEventListener("close", () => {
|
||||
// When the socket closes, logs have finished streaming!
|
||||
onDone && onDone();
|
||||
onDone?.();
|
||||
});
|
||||
|
||||
return socket;
|
||||
@ -317,7 +316,7 @@ function normalizeGetTemplatesOptions(
|
||||
|
||||
const params: Record<string, string> = {};
|
||||
if (options.deprecated !== undefined) {
|
||||
params["deprecated"] = String(options.deprecated);
|
||||
params.deprecated = String(options.deprecated);
|
||||
}
|
||||
return params;
|
||||
}
|
||||
@ -464,7 +463,7 @@ class ApiMethods {
|
||||
params: TypesGen.AuthorizationRequest,
|
||||
): Promise<TypesGen.AuthorizationResponse> => {
|
||||
const response = await this.axios.post<TypesGen.AuthorizationResponse>(
|
||||
`/api/v2/authcheck`,
|
||||
"/api/v2/authcheck",
|
||||
params,
|
||||
);
|
||||
|
||||
@ -483,7 +482,7 @@ class ApiMethods {
|
||||
params: TypesGen.TokensFilter,
|
||||
): Promise<TypesGen.APIKeyWithOwner[]> => {
|
||||
const response = await this.axios.get<TypesGen.APIKeyWithOwner[]>(
|
||||
`/api/v2/users/me/keys/tokens`,
|
||||
"/api/v2/users/me/keys/tokens",
|
||||
{ params },
|
||||
);
|
||||
|
||||
@ -498,7 +497,7 @@ class ApiMethods {
|
||||
params: TypesGen.CreateTokenRequest,
|
||||
): Promise<TypesGen.GenerateAPIKeyResponse> => {
|
||||
const response = await this.axios.post(
|
||||
`/api/v2/users/me/keys/tokens`,
|
||||
"/api/v2/users/me/keys/tokens",
|
||||
params,
|
||||
);
|
||||
|
||||
@ -706,7 +705,7 @@ class ApiMethods {
|
||||
): Promise<TypesGen.Template[]> => {
|
||||
const params = normalizeGetTemplatesOptions(options);
|
||||
const response = await this.axios.get<TypesGen.Template[]>(
|
||||
`/api/v2/templates`,
|
||||
"/api/v2/templates",
|
||||
{ params },
|
||||
);
|
||||
|
||||
@ -993,8 +992,8 @@ class ApiMethods {
|
||||
let latestJobInfo: TypesGen.ProvisionerJob | undefined = undefined;
|
||||
|
||||
while (
|
||||
!["succeeded", "canceled"].some(
|
||||
(status) => latestJobInfo?.status.includes(status),
|
||||
!["succeeded", "canceled"].some((status) =>
|
||||
latestJobInfo?.status.includes(status),
|
||||
)
|
||||
) {
|
||||
const { job } = await this.getWorkspaceBuildByNumber(
|
||||
@ -1276,7 +1275,7 @@ class ApiMethods {
|
||||
createFirstUser = async (
|
||||
req: TypesGen.CreateFirstUserRequest,
|
||||
): Promise<TypesGen.CreateFirstUserResponse> => {
|
||||
const response = await this.axios.post(`/api/v2/users/first`, req);
|
||||
const response = await this.axios.post("/api/v2/users/first", req);
|
||||
return response.data;
|
||||
};
|
||||
|
||||
@ -1288,8 +1287,9 @@ class ApiMethods {
|
||||
};
|
||||
|
||||
getRoles = async (): Promise<Array<TypesGen.AssignableRoles>> => {
|
||||
const response =
|
||||
await this.axios.get<TypesGen.AssignableRoles[]>(`/api/v2/users/roles`);
|
||||
const response = await this.axios.get<TypesGen.AssignableRoles[]>(
|
||||
"/api/v2/users/roles",
|
||||
);
|
||||
|
||||
return response.data;
|
||||
};
|
||||
@ -1449,7 +1449,7 @@ class ApiMethods {
|
||||
|
||||
getUserExternalAuthProviders =
|
||||
async (): Promise<TypesGen.ListUserExternalAuthResponse> => {
|
||||
const resp = await this.axios.get(`/api/v2/external-auth`);
|
||||
const resp = await this.axios.get("/api/v2/external-auth");
|
||||
return resp.data;
|
||||
};
|
||||
|
||||
@ -1480,7 +1480,7 @@ class ApiMethods {
|
||||
data: TypesGen.PostOAuth2ProviderAppRequest,
|
||||
): Promise<TypesGen.OAuth2ProviderApp> => {
|
||||
const response = await this.axios.post(
|
||||
`/api/v2/oauth2-provider/apps`,
|
||||
"/api/v2/oauth2-provider/apps",
|
||||
data,
|
||||
);
|
||||
return response.data;
|
||||
@ -1599,7 +1599,7 @@ class ApiMethods {
|
||||
};
|
||||
|
||||
getApplicationsHost = async (): Promise<TypesGen.AppHostResponse> => {
|
||||
const response = await this.axios.get(`/api/v2/applications/host`);
|
||||
const response = await this.axios.get("/api/v2/applications/host");
|
||||
return response.data;
|
||||
};
|
||||
|
||||
@ -1722,22 +1722,22 @@ class ApiMethods {
|
||||
|
||||
// getDeploymentSSHConfig is used by the VSCode-Extension.
|
||||
getDeploymentSSHConfig = async (): Promise<TypesGen.SSHConfigResponse> => {
|
||||
const response = await this.axios.get(`/api/v2/deployment/ssh`);
|
||||
const response = await this.axios.get("/api/v2/deployment/ssh");
|
||||
return response.data;
|
||||
};
|
||||
|
||||
getDeploymentConfig = async (): Promise<DeploymentConfig> => {
|
||||
const response = await this.axios.get(`/api/v2/deployment/config`);
|
||||
const response = await this.axios.get("/api/v2/deployment/config");
|
||||
return response.data;
|
||||
};
|
||||
|
||||
getDeploymentStats = async (): Promise<TypesGen.DeploymentStats> => {
|
||||
const response = await this.axios.get(`/api/v2/deployment/stats`);
|
||||
const response = await this.axios.get("/api/v2/deployment/stats");
|
||||
return response.data;
|
||||
};
|
||||
|
||||
getReplicas = async (): Promise<TypesGen.Replica[]> => {
|
||||
const response = await this.axios.get(`/api/v2/replicas`);
|
||||
const response = await this.axios.get("/api/v2/replicas");
|
||||
return response.data;
|
||||
};
|
||||
|
||||
@ -1755,7 +1755,7 @@ class ApiMethods {
|
||||
> => {
|
||||
const response =
|
||||
await this.axios.get<TypesGen.RegionsResponse<TypesGen.Region>>(
|
||||
`/api/v2/regions`,
|
||||
"/api/v2/regions",
|
||||
);
|
||||
|
||||
return response.data;
|
||||
@ -1766,7 +1766,7 @@ class ApiMethods {
|
||||
> => {
|
||||
const response = await this.axios.get<
|
||||
TypesGen.RegionsResponse<TypesGen.WorkspaceProxy>
|
||||
>(`/api/v2/workspaceproxies`);
|
||||
>("/api/v2/workspaceproxies");
|
||||
|
||||
return response.data;
|
||||
};
|
||||
@ -1774,13 +1774,13 @@ class ApiMethods {
|
||||
createWorkspaceProxy = async (
|
||||
b: TypesGen.CreateWorkspaceProxyRequest,
|
||||
): Promise<TypesGen.UpdateWorkspaceProxyResponse> => {
|
||||
const response = await this.axios.post(`/api/v2/workspaceproxies`, b);
|
||||
const response = await this.axios.post("/api/v2/workspaceproxies", b);
|
||||
return response.data;
|
||||
};
|
||||
|
||||
getAppearance = async (): Promise<TypesGen.AppearanceConfig> => {
|
||||
try {
|
||||
const response = await this.axios.get(`/api/v2/appearance`);
|
||||
const response = await this.axios.get("/api/v2/appearance");
|
||||
return response.data || {};
|
||||
} catch (ex) {
|
||||
if (isAxiosError(ex) && ex.response?.status === 404) {
|
||||
@ -1801,7 +1801,7 @@ class ApiMethods {
|
||||
updateAppearance = async (
|
||||
b: TypesGen.AppearanceConfig,
|
||||
): Promise<TypesGen.AppearanceConfig> => {
|
||||
const response = await this.axios.put(`/api/v2/appearance`, b);
|
||||
const response = await this.axios.put("/api/v2/appearance", b);
|
||||
return response.data;
|
||||
};
|
||||
|
||||
@ -1809,7 +1809,7 @@ class ApiMethods {
|
||||
* @param organization Can be the organization's ID or name
|
||||
*/
|
||||
getTemplateExamples = async (): Promise<TypesGen.TemplateExample[]> => {
|
||||
const response = await this.axios.get(`/api/v2/templates/examples`);
|
||||
const response = await this.axios.get("/api/v2/templates/examples");
|
||||
|
||||
return response.data;
|
||||
};
|
||||
@ -1849,14 +1849,14 @@ class ApiMethods {
|
||||
};
|
||||
|
||||
getLicenses = async (): Promise<GetLicensesResponse[]> => {
|
||||
const response = await this.axios.get(`/api/v2/licenses`);
|
||||
const response = await this.axios.get("/api/v2/licenses");
|
||||
return response.data;
|
||||
};
|
||||
|
||||
createLicense = async (
|
||||
data: TypesGen.AddLicenseRequest,
|
||||
): Promise<TypesGen.AddLicenseRequest> => {
|
||||
const response = await this.axios.post(`/api/v2/licenses`, data);
|
||||
const response = await this.axios.post("/api/v2/licenses", data);
|
||||
return response.data;
|
||||
};
|
||||
|
||||
@ -2005,7 +2005,7 @@ class ApiMethods {
|
||||
return response.data;
|
||||
};
|
||||
|
||||
getHealth = async (force: boolean = false) => {
|
||||
getHealth = async (force = false) => {
|
||||
const params = new URLSearchParams({ force: force.toString() });
|
||||
const response = await this.axios.get<TypesGen.HealthcheckReport>(
|
||||
`/api/v2/debug/health?${params}`,
|
||||
@ -2015,7 +2015,7 @@ class ApiMethods {
|
||||
|
||||
getHealthSettings = async (): Promise<TypesGen.HealthSettings> => {
|
||||
const res = await this.axios.get<TypesGen.HealthSettings>(
|
||||
`/api/v2/debug/health/settings`,
|
||||
"/api/v2/debug/health/settings",
|
||||
);
|
||||
|
||||
return res.data;
|
||||
@ -2023,7 +2023,7 @@ class ApiMethods {
|
||||
|
||||
updateHealthSettings = async (data: TypesGen.UpdateHealthSettings) => {
|
||||
const response = await this.axios.put<TypesGen.HealthSettings>(
|
||||
`/api/v2/debug/health/settings`,
|
||||
"/api/v2/debug/health/settings",
|
||||
data,
|
||||
);
|
||||
|
||||
@ -2093,14 +2093,14 @@ class ApiMethods {
|
||||
|
||||
getSystemNotificationTemplates = async () => {
|
||||
const res = await this.axios.get<TypesGen.NotificationTemplate[]>(
|
||||
`/api/v2/notifications/templates/system`,
|
||||
"/api/v2/notifications/templates/system",
|
||||
);
|
||||
return res.data;
|
||||
};
|
||||
|
||||
getNotificationDispatchMethods = async () => {
|
||||
const res = await this.axios.get<TypesGen.NotificationMethodsResponse>(
|
||||
`/api/v2/notifications/dispatch-methods`,
|
||||
"/api/v2/notifications/dispatch-methods",
|
||||
);
|
||||
return res.data;
|
||||
};
|
||||
|
@ -1,9 +1,9 @@
|
||||
import { mockApiError } from "testHelpers/entities";
|
||||
import {
|
||||
getErrorMessage,
|
||||
getValidationErrorMessage,
|
||||
isApiError,
|
||||
mapApiErrorToFieldErrors,
|
||||
getErrorMessage,
|
||||
} from "./errors";
|
||||
|
||||
describe("isApiError", () => {
|
||||
|
@ -1,7 +1,7 @@
|
||||
import type { QueryClient } from "react-query";
|
||||
import { API } from "api/api";
|
||||
import type { AppearanceConfig } from "api/typesGenerated";
|
||||
import type { MetadataState } from "hooks/useEmbeddedMetadata";
|
||||
import type { QueryClient } from "react-query";
|
||||
import { cachedQuery } from "./util";
|
||||
|
||||
export const appearanceConfigKey = ["appearance"] as const;
|
||||
|
@ -1,6 +1,6 @@
|
||||
import type { QueryClient, UseMutationOptions } from "react-query";
|
||||
import { API } from "api/api";
|
||||
import type { HealthSettings, UpdateHealthSettings } from "api/typesGenerated";
|
||||
import type { QueryClient, UseMutationOptions } from "react-query";
|
||||
|
||||
export const HEALTH_QUERY_KEY = ["health"];
|
||||
export const HEALTH_QUERY_SETTINGS_KEY = ["health", "settings"];
|
||||
|
@ -1,7 +1,7 @@
|
||||
import type { QueryClient } from "react-query";
|
||||
import { API } from "api/api";
|
||||
import type { Entitlements } from "api/typesGenerated";
|
||||
import type { MetadataState } from "hooks/useEmbeddedMetadata";
|
||||
import type { QueryClient } from "react-query";
|
||||
import { cachedQuery } from "./util";
|
||||
|
||||
const entitlementsQueryKey = ["entitlements"] as const;
|
||||
|
@ -1,6 +1,6 @@
|
||||
import type { QueryClient, UseMutationOptions } from "react-query";
|
||||
import { API } from "api/api";
|
||||
import type { ExternalAuth } from "api/typesGenerated";
|
||||
import type { QueryClient, UseMutationOptions } from "react-query";
|
||||
|
||||
// Returns all configured external auths for a given user.
|
||||
export const externalAuths = () => {
|
||||
|
@ -1,10 +1,10 @@
|
||||
import type { QueryClient, UseQueryOptions } from "react-query";
|
||||
import { API } from "api/api";
|
||||
import type {
|
||||
CreateGroupRequest,
|
||||
Group,
|
||||
PatchGroupRequest,
|
||||
} from "api/typesGenerated";
|
||||
import type { QueryClient, UseQueryOptions } from "react-query";
|
||||
|
||||
type GroupSortOrder = "asc" | "desc";
|
||||
|
||||
@ -120,7 +120,7 @@ export const patchGroup = (queryClient: QueryClient) => {
|
||||
export const deleteGroup = (queryClient: QueryClient) => {
|
||||
return {
|
||||
mutationFn: API.deleteGroup,
|
||||
onSuccess: async (_: void, groupId: string) =>
|
||||
onSuccess: async (_: unknown, groupId: string) =>
|
||||
invalidateGroup(queryClient, "default", groupId),
|
||||
};
|
||||
};
|
||||
@ -159,15 +159,12 @@ export function sortGroupsByName(
|
||||
) {
|
||||
return [...groups].sort((g1, g2) => {
|
||||
const key = g1.display_name && g2.display_name ? "display_name" : "name";
|
||||
const direction = order === "asc" ? 1 : -1;
|
||||
|
||||
if (g1[key] === g2[key]) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (order === "asc") {
|
||||
return g1[key] < g2[key] ? -1 : 1;
|
||||
} else {
|
||||
return g1[key] < g2[key] ? 1 : -1;
|
||||
}
|
||||
return (g1[key] < g2[key] ? -1 : 1) * direction;
|
||||
});
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { type InsightsParams, type InsightsTemplateParams, API } from "api/api";
|
||||
import { API, type InsightsParams, type InsightsTemplateParams } from "api/api";
|
||||
|
||||
export const insightsTemplate = (params: InsightsTemplateParams) => {
|
||||
return {
|
||||
|
@ -1,4 +1,3 @@
|
||||
import type { QueryClient, UseMutationOptions } from "react-query";
|
||||
import { API } from "api/api";
|
||||
import type {
|
||||
NotificationPreference,
|
||||
@ -6,6 +5,7 @@ import type {
|
||||
UpdateNotificationTemplateMethod,
|
||||
UpdateUserNotificationPreferences,
|
||||
} from "api/typesGenerated";
|
||||
import type { QueryClient, UseMutationOptions } from "react-query";
|
||||
|
||||
export const userNotificationPreferencesKey = (userId: string) => [
|
||||
"users",
|
||||
@ -98,7 +98,7 @@ export const notificationDispatchMethodsKey = [
|
||||
|
||||
export const notificationDispatchMethods = () => {
|
||||
return {
|
||||
staleTime: Infinity,
|
||||
staleTime: Number.POSITIVE_INFINITY,
|
||||
queryKey: notificationDispatchMethodsKey,
|
||||
queryFn: () => API.getNotificationDispatchMethods(),
|
||||
};
|
||||
|
@ -1,6 +1,6 @@
|
||||
import type { QueryClient } from "react-query";
|
||||
import { API } from "api/api";
|
||||
import type * as TypesGen from "api/typesGenerated";
|
||||
import type { QueryClient } from "react-query";
|
||||
|
||||
const appsKey = ["oauth2-provider", "apps"];
|
||||
const userAppsKey = (userId: string) => appsKey.concat(userId);
|
||||
@ -85,7 +85,7 @@ export const deleteAppSecret = (queryClient: QueryClient) => {
|
||||
return {
|
||||
mutationFn: ({ appId, secretId }: { appId: string; secretId: string }) =>
|
||||
API.deleteOAuth2ProviderAppSecret(appId, secretId),
|
||||
onSuccess: async (_: void, { appId }: { appId: string }) => {
|
||||
onSuccess: async (_: unknown, { appId }: { appId: string }) => {
|
||||
await queryClient.invalidateQueries({
|
||||
queryKey: appSecretsKey(appId),
|
||||
});
|
||||
|
@ -1,10 +1,10 @@
|
||||
import type { QueryClient } from "react-query";
|
||||
import { API } from "api/api";
|
||||
import type {
|
||||
AuthorizationResponse,
|
||||
CreateOrganizationRequest,
|
||||
UpdateOrganizationRequest,
|
||||
} from "api/typesGenerated";
|
||||
import type { QueryClient } from "react-query";
|
||||
import { meKey } from "./users";
|
||||
|
||||
export const createOrganization = (queryClient: QueryClient) => {
|
||||
@ -221,14 +221,12 @@ export const organizationsPermissions = (
|
||||
|
||||
// The endpoint takes a flat array, so to avoid collisions prepend each
|
||||
// check with the org ID (the key can be anything we want).
|
||||
const prefixedChecks = organizationIds
|
||||
.map((orgId) =>
|
||||
Object.entries(checks(orgId)).map(([key, val]) => [
|
||||
`${orgId}.${key}`,
|
||||
val,
|
||||
]),
|
||||
)
|
||||
.flat();
|
||||
const prefixedChecks = organizationIds.flatMap((orgId) =>
|
||||
Object.entries(checks(orgId)).map(([key, val]) => [
|
||||
`${orgId}.${key}`,
|
||||
val,
|
||||
]),
|
||||
);
|
||||
|
||||
const response = await API.checkAuthorization({
|
||||
checks: Object.fromEntries(prefixedChecks),
|
||||
|
@ -1,6 +1,6 @@
|
||||
import type { QueryClient } from "react-query";
|
||||
import { API } from "api/api";
|
||||
import type { Role } from "api/typesGenerated";
|
||||
import type { QueryClient } from "react-query";
|
||||
|
||||
const getRoleQueryKey = (organizationId: string, roleName: string) => [
|
||||
"organization",
|
||||
@ -58,7 +58,7 @@ export const deleteOrganizationRole = (
|
||||
return {
|
||||
mutationFn: (roleName: string) =>
|
||||
API.deleteOrganizationRole(organization, roleName),
|
||||
onSuccess: async (_: void, roleName: string) =>
|
||||
onSuccess: async (_: unknown, roleName: string) =>
|
||||
await queryClient.invalidateQueries(
|
||||
getRoleQueryKey(organization, roleName),
|
||||
),
|
||||
|
@ -1,9 +1,9 @@
|
||||
import type { QueryClient, QueryOptions } from "react-query";
|
||||
import { API } from "api/api";
|
||||
import type {
|
||||
UpdateUserQuietHoursScheduleRequest,
|
||||
UserQuietHoursScheduleResponse,
|
||||
} from "api/typesGenerated";
|
||||
import type { QueryClient, QueryOptions } from "react-query";
|
||||
|
||||
export const userQuietHoursScheduleKey = (userId: string) => [
|
||||
"settings",
|
||||
|
@ -1,6 +1,6 @@
|
||||
import type { QueryClient } from "react-query";
|
||||
import { API } from "api/api";
|
||||
import type { GitSSHKey } from "api/typesGenerated";
|
||||
import type { QueryClient } from "react-query";
|
||||
|
||||
const getUserSSHKeyQueryKey = (userId: string) => [userId, "sshKey"];
|
||||
|
||||
|
@ -1,15 +1,15 @@
|
||||
import type { MutationOptions, QueryClient, QueryOptions } from "react-query";
|
||||
import { API, type GetTemplatesQuery, type GetTemplatesOptions } from "api/api";
|
||||
import { API, type GetTemplatesOptions, type GetTemplatesQuery } from "api/api";
|
||||
import type {
|
||||
CreateTemplateRequest,
|
||||
CreateTemplateVersionRequest,
|
||||
ProvisionerJob,
|
||||
ProvisionerJobStatus,
|
||||
UsersRequest,
|
||||
Template,
|
||||
TemplateRole,
|
||||
TemplateVersion,
|
||||
UsersRequest,
|
||||
} from "api/typesGenerated";
|
||||
import type { MutationOptions, QueryClient, QueryOptions } from "react-query";
|
||||
import { delay } from "utils/delay";
|
||||
import { getTemplateVersionFiles } from "utils/templateVersion";
|
||||
|
||||
|
@ -1,24 +1,24 @@
|
||||
import { API } from "api/api";
|
||||
import type {
|
||||
AuthorizationRequest,
|
||||
GenerateAPIKeyResponse,
|
||||
GetUsersResponse,
|
||||
UpdateUserAppearanceSettingsRequest,
|
||||
UpdateUserPasswordRequest,
|
||||
UpdateUserProfileRequest,
|
||||
User,
|
||||
UsersRequest,
|
||||
} from "api/typesGenerated";
|
||||
import {
|
||||
type MetadataState,
|
||||
defaultMetadataManager,
|
||||
} from "hooks/useEmbeddedMetadata";
|
||||
import type { UsePaginatedQueryOptions } from "hooks/usePaginatedQuery";
|
||||
import type {
|
||||
QueryClient,
|
||||
UseMutationOptions,
|
||||
UseQueryOptions,
|
||||
} from "react-query";
|
||||
import { API } from "api/api";
|
||||
import type {
|
||||
AuthorizationRequest,
|
||||
GetUsersResponse,
|
||||
UpdateUserPasswordRequest,
|
||||
UpdateUserProfileRequest,
|
||||
UpdateUserAppearanceSettingsRequest,
|
||||
UsersRequest,
|
||||
User,
|
||||
GenerateAPIKeyResponse,
|
||||
} from "api/typesGenerated";
|
||||
import {
|
||||
defaultMetadataManager,
|
||||
type MetadataState,
|
||||
} from "hooks/useEmbeddedMetadata";
|
||||
import type { UsePaginatedQueryOptions } from "hooks/usePaginatedQuery";
|
||||
import { prepareQuery } from "utils/filters";
|
||||
import { getAuthorizationKey } from "./authCheck";
|
||||
import { cachedQuery } from "./util";
|
||||
|
@ -1,9 +1,9 @@
|
||||
import type { UseQueryOptions, QueryKey } from "react-query";
|
||||
import type { MetadataState, MetadataValue } from "hooks/useEmbeddedMetadata";
|
||||
import type { QueryKey, UseQueryOptions } from "react-query";
|
||||
|
||||
export const disabledRefetchOptions = {
|
||||
cacheTime: Infinity,
|
||||
staleTime: Infinity,
|
||||
cacheTime: Number.POSITIVE_INFINITY,
|
||||
staleTime: Number.POSITIVE_INFINITY,
|
||||
refetchOnMount: false,
|
||||
refetchOnReconnect: false,
|
||||
refetchOnWindowFocus: false,
|
||||
|
@ -1,10 +1,10 @@
|
||||
import type { QueryOptions, UseInfiniteQueryOptions } from "react-query";
|
||||
import { API } from "api/api";
|
||||
import type {
|
||||
WorkspaceBuild,
|
||||
WorkspaceBuildParameter,
|
||||
WorkspaceBuildsRequest,
|
||||
} from "api/typesGenerated";
|
||||
import type { QueryOptions, UseInfiniteQueryOptions } from "react-query";
|
||||
|
||||
export function workspaceBuildParametersKey(workspaceBuildId: string) {
|
||||
return ["workspaceBuilds", workspaceBuildId, "parameters"] as const;
|
||||
|
@ -1,10 +1,4 @@
|
||||
import type { Dayjs } from "dayjs";
|
||||
import type {
|
||||
QueryClient,
|
||||
QueryOptions,
|
||||
UseMutationOptions,
|
||||
} from "react-query";
|
||||
import { type DeleteWorkspaceOptions, API } from "api/api";
|
||||
import { API, type DeleteWorkspaceOptions } from "api/api";
|
||||
import { DetailedError, isApiValidationError } from "api/errors";
|
||||
import type {
|
||||
CreateWorkspaceRequest,
|
||||
@ -16,7 +10,13 @@ import type {
|
||||
WorkspacesRequest,
|
||||
WorkspacesResponse,
|
||||
} from "api/typesGenerated";
|
||||
import type { Dayjs } from "dayjs";
|
||||
import type { ConnectionStatus } from "pages/TerminalPage/types";
|
||||
import type {
|
||||
QueryClient,
|
||||
QueryOptions,
|
||||
UseMutationOptions,
|
||||
} from "react-query";
|
||||
import { disabledRefetchOptions } from "./util";
|
||||
import { workspaceBuildsKey } from "./workspaceBuilds";
|
||||
|
||||
@ -88,7 +88,7 @@ export const autoCreateWorkspace = (queryClient: QueryClient) => {
|
||||
}
|
||||
}
|
||||
|
||||
let templateVersionParameters;
|
||||
let templateVersionParameters: Partial<CreateWorkspaceRequest>;
|
||||
|
||||
if (templateVersionId) {
|
||||
templateVersionParameters = { template_version_id: templateVersionId };
|
||||
@ -307,9 +307,8 @@ export const toggleFavorite = (
|
||||
mutationFn: () => {
|
||||
if (workspace.favorite) {
|
||||
return API.deleteFavoriteWorkspace(workspace.id);
|
||||
} else {
|
||||
return API.putFavoriteWorkspace(workspace.id);
|
||||
}
|
||||
return API.putFavoriteWorkspace(workspace.id);
|
||||
},
|
||||
onSuccess: async () => {
|
||||
queryClient.setQueryData(
|
||||
|
2910
site/src/api/typesGenerated.ts
generated
2910
site/src/api/typesGenerated.ts
generated
File diff suppressed because it is too large
Load Diff
@ -57,7 +57,7 @@ function getAccessibleLabel(
|
||||
}
|
||||
|
||||
function initializeText(text: string): string {
|
||||
return text.trim().toUpperCase().replaceAll(/\B/g, ".") + ".";
|
||||
return `${text.trim().toUpperCase().replaceAll(/\B/g, ".")}.`;
|
||||
}
|
||||
|
||||
function flattenPronunciation(text: string): string {
|
||||
|
@ -4,27 +4,27 @@ import {
|
||||
CategoryScale,
|
||||
Chart as ChartJS,
|
||||
type ChartOptions,
|
||||
defaults,
|
||||
Filler,
|
||||
Legend,
|
||||
LinearScale,
|
||||
LineElement,
|
||||
LinearScale,
|
||||
PointElement,
|
||||
TimeScale,
|
||||
Title,
|
||||
Tooltip,
|
||||
PointElement,
|
||||
defaults,
|
||||
} from "chart.js";
|
||||
import annotationPlugin from "chartjs-plugin-annotation";
|
||||
import {
|
||||
HelpTooltip,
|
||||
HelpTooltipContent,
|
||||
HelpTooltipText,
|
||||
HelpTooltipTitle,
|
||||
HelpTooltipTrigger,
|
||||
} from "components/HelpTooltip/HelpTooltip";
|
||||
import dayjs from "dayjs";
|
||||
import type { FC } from "react";
|
||||
import { Line } from "react-chartjs-2";
|
||||
import {
|
||||
HelpTooltip,
|
||||
HelpTooltipTitle,
|
||||
HelpTooltipText,
|
||||
HelpTooltipContent,
|
||||
HelpTooltipTrigger,
|
||||
} from "components/HelpTooltip/HelpTooltip";
|
||||
|
||||
ChartJS.register(
|
||||
CategoryScale,
|
||||
|
@ -1,14 +1,14 @@
|
||||
// eslint-disable-next-line no-restricted-imports -- It is the base component
|
||||
import MuiAlert, {
|
||||
type AlertProps as MuiAlertProps,
|
||||
// biome-ignore lint/nursery/noRestrictedImports: Used as base component
|
||||
} from "@mui/material/Alert";
|
||||
import Button from "@mui/material/Button";
|
||||
import Collapse from "@mui/material/Collapse";
|
||||
import {
|
||||
useState,
|
||||
type FC,
|
||||
type ReactNode,
|
||||
type PropsWithChildren,
|
||||
type ReactNode,
|
||||
useState,
|
||||
} from "react";
|
||||
|
||||
export type AlertProps = MuiAlertProps & {
|
||||
|
@ -1,6 +1,6 @@
|
||||
import AlertTitle from "@mui/material/AlertTitle";
|
||||
import { getErrorDetail, getErrorMessage } from "api/errors";
|
||||
import type { FC } from "react";
|
||||
import { getErrorMessage, getErrorDetail } from "api/errors";
|
||||
import { Alert, AlertDetail, type AlertProps } from "./Alert";
|
||||
|
||||
export const ErrorAlert: FC<
|
||||
|
@ -1,8 +1,7 @@
|
||||
import { css, type Interpolation, type Theme, useTheme } from "@emotion/react";
|
||||
// This is the only place MuiAvatar can be used
|
||||
// eslint-disable-next-line no-restricted-imports -- Read above
|
||||
import { type Interpolation, type Theme, css, useTheme } from "@emotion/react";
|
||||
import MuiAvatar, {
|
||||
type AvatarProps as MuiAvatarProps,
|
||||
// biome-ignore lint/nursery/noRestrictedImports: Used as base component
|
||||
} from "@mui/material/Avatar";
|
||||
import { visuallyHidden } from "@mui/utils";
|
||||
import { type FC, useId } from "react";
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { type CSSObject, useTheme } from "@emotion/react";
|
||||
import type { FC, ReactNode } from "react";
|
||||
import { Avatar } from "components/Avatar/Avatar";
|
||||
import type { FC, ReactNode } from "react";
|
||||
|
||||
type AvatarCardProps = {
|
||||
header: string;
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { useTheme } from "@emotion/react";
|
||||
import type { FC, ReactNode } from "react";
|
||||
import { Avatar } from "components/Avatar/Avatar";
|
||||
import { Stack } from "components/Stack/Stack";
|
||||
import type { FC, ReactNode } from "react";
|
||||
|
||||
export interface AvatarDataProps {
|
||||
title: ReactNode;
|
||||
|
@ -1,6 +1,6 @@
|
||||
import Skeleton from "@mui/material/Skeleton";
|
||||
import type { FC } from "react";
|
||||
import { Stack } from "components/Stack/Stack";
|
||||
import type { FC } from "react";
|
||||
|
||||
export const AvatarDataSkeleton: FC = () => {
|
||||
return (
|
||||
|
@ -1,16 +1,16 @@
|
||||
import type { Meta, StoryObj } from "@storybook/react";
|
||||
import {
|
||||
Badges,
|
||||
AlphaBadge,
|
||||
PreviewBadge,
|
||||
Badges,
|
||||
DisabledBadge,
|
||||
EnabledBadge,
|
||||
EntitledBadge,
|
||||
EnterpriseBadge,
|
||||
EntitledBadge,
|
||||
HealthyBadge,
|
||||
NotHealthyBadge,
|
||||
NotRegisteredBadge,
|
||||
NotReachableBadge,
|
||||
NotRegisteredBadge,
|
||||
PreviewBadge,
|
||||
} from "./Badges";
|
||||
|
||||
const meta: Meta<typeof Badges> = {
|
||||
|
@ -1,12 +1,12 @@
|
||||
import type { Interpolation, Theme } from "@emotion/react";
|
||||
import Tooltip from "@mui/material/Tooltip";
|
||||
import { Stack } from "components/Stack/Stack";
|
||||
import {
|
||||
type FC,
|
||||
forwardRef,
|
||||
type HTMLAttributes,
|
||||
type PropsWithChildren,
|
||||
forwardRef,
|
||||
} from "react";
|
||||
import { Stack } from "components/Stack/Stack";
|
||||
|
||||
const styles = {
|
||||
badge: {
|
||||
|
@ -1,11 +1,11 @@
|
||||
import { css, cx } from "@emotion/css";
|
||||
import { useTheme } from "@emotion/react";
|
||||
import Badge from "@mui/material/Badge";
|
||||
import type { FC } from "react";
|
||||
import type { WorkspaceBuild } from "api/typesGenerated";
|
||||
import { Avatar, type AvatarProps } from "components/Avatar/Avatar";
|
||||
import { BuildIcon } from "components/BuildIcon/BuildIcon";
|
||||
import { useClassName } from "hooks/useClassName";
|
||||
import type { FC } from "react";
|
||||
import { getDisplayWorkspaceBuildStatus } from "utils/workspace";
|
||||
|
||||
export interface BuildAvatarProps {
|
||||
|
@ -1,8 +1,8 @@
|
||||
import DeleteOutlined from "@mui/icons-material/DeleteOutlined";
|
||||
import PlayArrowOutlined from "@mui/icons-material/PlayArrowOutlined";
|
||||
import StopOutlined from "@mui/icons-material/StopOutlined";
|
||||
import type { ComponentProps } from "react";
|
||||
import type { WorkspaceTransition } from "api/typesGenerated";
|
||||
import type { ComponentProps } from "react";
|
||||
|
||||
type SVGIcon = typeof PlayArrowOutlined;
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
import { css, type Interpolation, type Theme } from "@emotion/react";
|
||||
import { type Interpolation, type Theme, css } from "@emotion/react";
|
||||
import Check from "@mui/icons-material/Check";
|
||||
import IconButton from "@mui/material/Button";
|
||||
import Tooltip from "@mui/material/Tooltip";
|
||||
import { forwardRef, type ReactNode } from "react";
|
||||
import { useClipboard } from "hooks/useClipboard";
|
||||
import { type ReactNode, forwardRef } from "react";
|
||||
import { FileCopyIcon } from "../Icons/FileCopyIcon";
|
||||
|
||||
interface CopyButtonProps {
|
||||
|
@ -1,7 +1,7 @@
|
||||
import Tooltip, { type TooltipProps } from "@mui/material/Tooltip";
|
||||
import type { FC, HTMLAttributes } from "react";
|
||||
import { useClickable } from "hooks/useClickable";
|
||||
import { useClipboard } from "hooks/useClipboard";
|
||||
import type { FC, HTMLAttributes } from "react";
|
||||
|
||||
interface CopyableValueProps extends HTMLAttributes<HTMLSpanElement> {
|
||||
value: string;
|
||||
|
@ -1,5 +1,5 @@
|
||||
import type { Meta, StoryObj } from "@storybook/react";
|
||||
import { expect, within, userEvent } from "@storybook/test";
|
||||
import { expect, userEvent, within } from "@storybook/test";
|
||||
import { useState } from "react";
|
||||
import { DurationField } from "./DurationField";
|
||||
|
||||
|
@ -163,7 +163,7 @@ function intMask(value: string): string {
|
||||
}
|
||||
|
||||
function durationInMs(durationFieldValue: string, unit: TimeUnit): number {
|
||||
const durationInMs = parseInt(durationFieldValue, 10);
|
||||
const durationInMs = Number.parseInt(durationFieldValue, 10);
|
||||
|
||||
if (Number.isNaN(durationInMs)) {
|
||||
return 0;
|
||||
|
@ -1,15 +1,15 @@
|
||||
import { css, type Interpolation, type Theme } from "@emotion/react";
|
||||
import { type Interpolation, type Theme, css } from "@emotion/react";
|
||||
import RefreshOutlined from "@mui/icons-material/RefreshOutlined";
|
||||
import Button from "@mui/material/Button";
|
||||
import Link from "@mui/material/Link";
|
||||
import { type FC, useEffect, useState } from "react";
|
||||
import { Helmet } from "react-helmet-async";
|
||||
import type { BuildInfoResponse } from "api/typesGenerated";
|
||||
import { CopyButton } from "components/CopyButton/CopyButton";
|
||||
import { CoderIcon } from "components/Icons/CoderIcon";
|
||||
import { Loader } from "components/Loader/Loader";
|
||||
import { Margins } from "components/Margins/Margins";
|
||||
import { Stack } from "components/Stack/Stack";
|
||||
import { type FC, useEffect, useState } from "react";
|
||||
import { Helmet } from "react-helmet-async";
|
||||
import { getStaticBuildInfo } from "utils/buildInfo";
|
||||
|
||||
const fetchDynamicallyImportedModuleError =
|
||||
@ -71,8 +71,8 @@ export const RuntimeErrorState: FC<RuntimeErrorStateProps> = ({ error }) => {
|
||||
["**Version**", coderVersion ?? "-- Set version --"].join(
|
||||
"\n",
|
||||
),
|
||||
["**Path**", "`" + location.pathname + "`"].join("\n"),
|
||||
["**Error**", "```\n" + error.stack + "\n```"].join("\n"),
|
||||
["**Path**", `\`${location.pathname}\``].join("\n"),
|
||||
["**Error**", `\`\`\`\n${error.stack}\n\`\`\``].join("\n"),
|
||||
].join("\n\n"),
|
||||
)}`}
|
||||
target="_blank"
|
||||
|
@ -1,8 +1,8 @@
|
||||
import type { Interpolation, Theme } from "@emotion/react";
|
||||
import Collapse from "@mui/material/Collapse";
|
||||
import Link from "@mui/material/Link";
|
||||
import type { FC, ReactNode } from "react";
|
||||
import { DropdownArrow } from "components/DropdownArrow/DropdownArrow";
|
||||
import type { FC, ReactNode } from "react";
|
||||
|
||||
export interface ExpanderProps {
|
||||
expanded: boolean;
|
||||
|
@ -9,9 +9,9 @@ export const ExternalImage = forwardRef<
|
||||
const theme = useTheme();
|
||||
|
||||
return (
|
||||
// biome-ignore lint/a11y/useAltText: no reasonable alt to provide
|
||||
<img
|
||||
ref={ref}
|
||||
alt=""
|
||||
css={getExternalImageStylesFromUrl(theme.externalImages, attrs.src)}
|
||||
{...attrs}
|
||||
/>
|
||||
|
@ -1,12 +1,12 @@
|
||||
import { css, type Interpolation, type Theme } from "@emotion/react";
|
||||
import { type Interpolation, type Theme, css } from "@emotion/react";
|
||||
import UploadIcon from "@mui/icons-material/CloudUploadOutlined";
|
||||
import RemoveIcon from "@mui/icons-material/DeleteOutline";
|
||||
import FileIcon from "@mui/icons-material/FolderOutlined";
|
||||
import CircularProgress from "@mui/material/CircularProgress";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import { type FC, type DragEvent, useRef, type ReactNode } from "react";
|
||||
import { Stack } from "components/Stack/Stack";
|
||||
import { useClickable } from "hooks/useClickable";
|
||||
import { type DragEvent, type FC, type ReactNode, useRef } from "react";
|
||||
|
||||
export interface FileUploadProps {
|
||||
isUploading: boolean;
|
||||
@ -31,8 +31,8 @@ export const FileUpload: FC<FileUploadProps> = ({
|
||||
}) => {
|
||||
const fileDrop = useFileDrop(onUpload, extensions);
|
||||
const inputRef = useRef<HTMLInputElement>(null);
|
||||
const clickable = useClickable<HTMLDivElement>(
|
||||
() => inputRef.current?.click(),
|
||||
const clickable = useClickable<HTMLDivElement>(() =>
|
||||
inputRef.current?.click(),
|
||||
);
|
||||
|
||||
if (!isUploading && file) {
|
||||
|
@ -1,13 +1,13 @@
|
||||
import { action } from "@storybook/addon-actions";
|
||||
import type { Meta, StoryObj } from "@storybook/react";
|
||||
import { userEvent, within, expect } from "@storybook/test";
|
||||
import { useState } from "react";
|
||||
import { expect, userEvent, within } from "@storybook/test";
|
||||
import { UserAvatar } from "components/UserAvatar/UserAvatar";
|
||||
import { useState } from "react";
|
||||
import { withDesktopViewport } from "testHelpers/storybook";
|
||||
import {
|
||||
SelectFilter,
|
||||
SelectFilterSearch,
|
||||
type SelectFilterOption,
|
||||
SelectFilterSearch,
|
||||
} from "./SelectFilter";
|
||||
|
||||
const options: SelectFilterOption[] = Array.from({ length: 50 }, (_, i) => ({
|
||||
|
@ -1,15 +1,15 @@
|
||||
import { useState, type FC, type ReactNode } from "react";
|
||||
import { Loader } from "components/Loader/Loader";
|
||||
import {
|
||||
SelectMenu,
|
||||
SelectMenuTrigger,
|
||||
SelectMenuButton,
|
||||
SelectMenuContent,
|
||||
SelectMenuSearch,
|
||||
SelectMenuList,
|
||||
SelectMenuItem,
|
||||
SelectMenuIcon,
|
||||
SelectMenuItem,
|
||||
SelectMenuList,
|
||||
SelectMenuSearch,
|
||||
SelectMenuTrigger,
|
||||
} from "components/SelectMenu/SelectMenu";
|
||||
import { type FC, type ReactNode, useState } from "react";
|
||||
|
||||
const BASE_WIDTH = 200;
|
||||
const POPOVER_WIDTH = 320;
|
||||
|
@ -1,12 +1,12 @@
|
||||
import type { FC } from "react";
|
||||
import { API } from "api/api";
|
||||
import {
|
||||
SelectFilter,
|
||||
SelectFilterSearch,
|
||||
type SelectFilterOption,
|
||||
SelectFilterSearch,
|
||||
} from "components/Filter/SelectFilter";
|
||||
import { UserAvatar } from "components/UserAvatar/UserAvatar";
|
||||
import { useAuthenticated } from "contexts/auth/RequireAuth";
|
||||
import type { FC } from "react";
|
||||
import { type UseFilterMenuOptions, useFilterMenu } from "./menu";
|
||||
|
||||
export const useUserFilterMenu = ({
|
||||
|
@ -7,8 +7,6 @@ import Menu from "@mui/material/Menu";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import Skeleton, { type SkeletonProps } from "@mui/material/Skeleton";
|
||||
import type { Breakpoint } from "@mui/system/createTheme";
|
||||
import { type FC, type ReactNode, useEffect, useRef, useState } from "react";
|
||||
import type { useSearchParams } from "react-router-dom";
|
||||
import {
|
||||
getValidationErrorMessage,
|
||||
hasError,
|
||||
@ -17,6 +15,8 @@ import {
|
||||
import { InputGroup } from "components/InputGroup/InputGroup";
|
||||
import { SearchField } from "components/SearchField/SearchField";
|
||||
import { useDebouncedFunction } from "hooks/debounce";
|
||||
import { type FC, type ReactNode, useEffect, useRef, useState } from "react";
|
||||
import type { useSearchParams } from "react-router-dom";
|
||||
|
||||
export type PresetFilter = {
|
||||
name: string;
|
||||
|
@ -1,6 +1,6 @@
|
||||
import type { SelectFilterOption } from "components/Filter/SelectFilter";
|
||||
import { useMemo, useRef, useState } from "react";
|
||||
import { useQuery } from "react-query";
|
||||
import type { SelectFilterOption } from "components/Filter/SelectFilter";
|
||||
|
||||
export type UseFilterMenuOptions<TOption extends SelectFilterOption> = {
|
||||
id: string;
|
||||
|
@ -1,15 +1,15 @@
|
||||
import { type Interpolation, type Theme, useTheme } from "@emotion/react";
|
||||
import {
|
||||
type ComponentProps,
|
||||
createContext,
|
||||
type FC,
|
||||
forwardRef,
|
||||
type HTMLProps,
|
||||
type ReactNode,
|
||||
useContext,
|
||||
} from "react";
|
||||
import { AlphaBadge, DeprecatedBadge } from "components/Badges/Badges";
|
||||
import { Stack } from "components/Stack/Stack";
|
||||
import {
|
||||
type ComponentProps,
|
||||
type FC,
|
||||
type HTMLProps,
|
||||
type ReactNode,
|
||||
createContext,
|
||||
forwardRef,
|
||||
useContext,
|
||||
} from "react";
|
||||
import {
|
||||
FormFooter as BaseFormFooter,
|
||||
type FormFooterProps,
|
||||
|
@ -1,10 +1,10 @@
|
||||
import type { FC, ReactNode } from "react";
|
||||
import { Margins } from "components/Margins/Margins";
|
||||
import {
|
||||
PageHeader,
|
||||
PageHeaderTitle,
|
||||
PageHeaderSubtitle,
|
||||
PageHeaderTitle,
|
||||
} from "components/PageHeader/PageHeader";
|
||||
import type { FC, ReactNode } from "react";
|
||||
|
||||
export interface FullPageFormProps {
|
||||
title: string;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user