From ad85a44221aae7eafcec00f7df83fc82cb787308 Mon Sep 17 00:00:00 2001 From: Brian Hanson Date: Fri, 17 Jul 2026 09:29:33 -0500 Subject: [PATCH 01/13] Rename @craftcms/cp to @craftcms/ui Package directory moves from packages/craftcms-cp to packages/craftcms-ui; npm scripts dev:cp/build:cp/test:cp/storybook:cp become dev:ui/build:ui/ test:ui/storybook:ui. package-lock.json is path-renamed rather than re-resolved, so dependency versions are unchanged. Co-Authored-By: Claude Fable 5 --- .github/instructions/a11y.instructions.md | 6 +- .github/scripts/storybook-preview-comment.cjs | 6 +- .github/workflows/js-ci.yml | 12 +- .github/workflows/storybook.yml | 22 +- .storybook/main.ts | 2 +- .storybook/preview.ts | 2 +- AGENTS.md | 12 +- CONTRIBUTING.md | 10 +- docs/admin-table.md | 2 +- package-lock.json | 2862 ++++++++--------- package.json | 18 +- .../craftcms-garnish/docs/contributing.md | 2 +- .../craftcms-legacy/cp/src/css/_compat.scss | 2 +- packages/craftcms-legacy/cp/src/js/CP.js | 4 +- packages/craftcms-legacy/cp/src/js/Craft.js | 2 +- .../cp/src/js/ElementThumbLoader.js | 4 +- packages/craftcms-legacy/package.json | 2 +- .../{craftcms-cp => craftcms-ui}/.gitignore | 0 packages/{craftcms-cp => craftcms-ui}/.nvmrc | 0 .../.prettierignore | 0 .../.storybook/main.ts | 0 .../.storybook/preview.css | 0 .../.storybook/preview.ts | 0 .../.storybook/vitest.setup.ts | 0 .../{craftcms-cp => craftcms-ui}/README.md | 22 +- .../custom-elements-manifest.config.mjs | 0 .../custom-elements.json | 0 .../{craftcms-cp => craftcms-ui}/package.json | 2 +- .../scripts/build.js | 2 +- .../scripts/generate-color-palette.js | 0 .../scripts/generate-colors.js | 0 .../scripts/generate-vue-wrappers.js | 2 +- .../scripts/utils.js | 0 .../src/actions/index.ts | 0 .../action-item/action-item.stories.ts | 0 .../action-item/action-item.styles.ts | 0 .../src/components/action-item/action-item.ts | 0 .../action-menu/action-menu.stories.ts | 0 .../src/components/action-menu/action-menu.ts | 0 .../action-menu/action-menu.types.ts | 0 .../auth-challenge-form.ts | 2 +- .../src/components/avatar/avatar.stories.ts | 0 .../src/components/avatar/avatar.styles.ts | 0 .../src/components/avatar/avatar.ts | 0 .../badge-indicator.stories.ts | 0 .../badge-indicator/badge-indicator.styles.ts | 0 .../badge-indicator/badge-indicator.ts | 0 .../src/components/badge/Badge.mdx | 0 .../src/components/badge/badge.stories.ts | 0 .../src/components/badge/badge.styles.ts | 0 .../src/components/badge/badge.ts | 0 .../breadcrumb-item/breadcrumb-item.test.ts | 0 .../breadcrumb-item/breadcrumb-item.ts | 0 .../breadcrumbs/breadcrumbs.stories.ts | 0 .../breadcrumbs/breadcrumbs.styles.ts | 0 .../src/components/breadcrumbs/breadcrumbs.ts | 0 .../button-group/button-group.stories.ts | 0 .../button-group/button-group.styles.ts | 0 .../components/button-group/button-group.ts | 0 .../src/components/button/Docs.mdx | 0 .../src/components/button/button.stories.ts | 0 .../src/components/button/button.styles.ts | 0 .../src/components/button/button.test.ts | 0 .../src/components/button/button.ts | 0 .../src/components/callout/callout.stories.ts | 0 .../src/components/callout/callout.styles.ts | 0 .../src/components/callout/callout.ts | 0 .../src/components/card/card.stories.ts | 0 .../src/components/card/card.styles.ts | 0 .../src/components/card/card.ts | 0 .../checkbox-group/checkbox-group.ts | 0 .../checkbox-indeterminate.stories.ts | 0 .../checkbox-indeterminate.ts | 0 .../components/checkbox/checkbox.stories.ts | 0 .../src/components/checkbox/checkbox.ts | 0 .../src/components/chip/chip.stories.ts | 0 .../src/components/chip/chip.styles.ts | 0 .../src/components/chip/chip.ts | 0 .../components/combobox/combobox.stories.ts | 0 .../components/combobox/combobox.styles.ts | 0 .../src/components/combobox/combobox.ts | 0 .../copy-attribute/copy-attribute.stories.ts | 0 .../copy-attribute/copy-attribute.styles.ts | 0 .../copy-attribute/copy-attribute.ts | 0 .../copy-button/copy-button.stories.ts | 0 .../copy-button/copy-button.styles.ts | 0 .../src/components/copy-button/copy-button.ts | 0 .../src/components/dialog/dialog.stories.ts | 0 .../src/components/dialog/dialog.test.ts | 0 .../src/components/dialog/dialog.ts | 0 .../disclosure/disclosure.stories.ts | 0 .../src/components/disclosure/disclosure.ts | 0 .../src/components/empty/empty.ts | 0 .../src/components/field-group/field-group.ts | 0 .../src/components/icon/icon.stories.ts | 0 .../src/components/icon/icon.test.ts | 0 .../src/components/icon/icon.ts | 0 .../src/components/indicator/Indicator.mdx | 0 .../components/indicator/indicator.stories.ts | 0 .../src/components/indicator/indicator.ts | 0 .../components/info-icon/info-icon.stories.ts | 0 .../src/components/info-icon/info-icon.ts | 0 .../input-color/input-color.stories.ts | 0 .../input-color/input-color.styles.ts | 0 .../input-color/input-color.test.ts | 0 .../src/components/input-color/input-color.ts | 0 .../input-file/input-file.stories.ts | 0 .../input-file/input-file.styles.ts | 0 .../src/components/input-file/input-file.ts | 0 .../input-file/selected-file-list.ts | 0 .../components/input-handle/input-handle.ts | 0 .../input-password/input-password.stories.ts | 0 .../input-password/input-password.ts | 0 .../src/components/input/input.stories.ts | 0 .../src/components/input/input.styles.ts | 0 .../src/components/input/input.ts | 0 .../components/nav-item/nav-item.stories.ts | 0 .../components/nav-item/nav-item.styles.ts | 0 .../src/components/nav-item/nav-item.ts | 0 .../components/nav-list/nav-list.stories.ts | 0 .../src/components/nav-list/nav-list.ts | 0 .../src/components/option/option.styles.ts | 0 .../src/components/option/option.ts | 0 .../src/components/pane/pane.ts | 0 .../src/components/popover/popover.stories.ts | 0 .../src/components/popover/popover.styles.ts | 0 .../src/components/popover/popover.test.ts | 0 .../src/components/popover/popover.ts | 0 .../progress-bar/progress-bar.stories.ts | 0 .../progress-bar/progress-bar.styles.ts | 0 .../components/progress-bar/progress-bar.ts | 0 .../components/progress/progress.stories.ts | 0 .../src/components/progress/progress.ts | 0 .../src/components/radio-group/radio-group.ts | 0 .../src/components/radio/radio.ts | 0 .../reorder-button/reorder-button.stories.ts | 0 .../reorder-button/reorder-button.styles.ts | 0 .../reorder-button/reorder-button.ts | 0 .../select-color/select-color.stories.ts | 0 .../select-color/select-color.styles.ts | 0 .../components/select-color/select-color.ts | 0 .../select-rich/select-invoker.styles.ts | 0 .../components/select-rich/select-invoker.ts | 0 .../select-rich/select-rich.stories.ts | 0 .../select-rich/select-rich.styles.ts | 0 .../src/components/select-rich/select-rich.ts | 0 .../src/components/select/select.stories.ts | 0 .../src/components/select/select.styles.ts | 0 .../src/components/select/select.ts | 0 .../components/shortcut/shortcut.stories.ts | 0 .../src/components/shortcut/shortcut.ts | 0 .../src/components/spinner/spinner.stories.ts | 0 .../src/components/spinner/spinner.styles.ts | 0 .../src/components/spinner/spinner.ts | 0 .../src/components/status/status.stories.ts | 0 .../src/components/status/status.styles.ts | 0 .../src/components/status/status.ts | 0 .../components/switch-button/switch-button.ts | 0 .../src/components/switch/switch.stories.ts | 0 .../src/components/switch/switch.styles.ts | 0 .../src/components/switch/switch.test.ts | 0 .../src/components/switch/switch.ts | 0 .../src/components/tab/tab.styles.ts | 0 .../src/components/tab/tab.ts | 0 .../src/components/tabs/tabs.stories.ts | 0 .../src/components/tabs/tabs.styles.ts | 0 .../src/components/tabs/tabs.ts | 0 .../components/textarea/textarea.stories.ts | 0 .../components/textarea/textarea.styles.ts | 0 .../src/components/textarea/textarea.ts | 0 .../src/components/thumbnail-loader/README.md | 10 +- .../thumbnail-loader/thumbnail-loader.ts | 0 .../components/thumbnail/thumbnail.stories.ts | 0 .../components/thumbnail/thumbnail.styles.ts | 0 .../src/components/thumbnail/thumbnail.ts | 0 .../src/components/tooltip/Tooltip.mdx | 0 .../src/components/tooltip/tooltip.stories.ts | 0 .../src/components/tooltip/tooltip.test.ts | 0 .../src/components/tooltip/tooltip.ts | 0 .../visually-hidden/visually-hidden.ts | 0 .../src/constants/appearances.ts | 0 .../src/constants/colors.ts | 0 .../src/constants/size.ts | 0 .../src/constants/statuses.ts | 0 .../src/constants/variants.ts | 0 .../src/constants/volume.ts | 0 .../{craftcms-cp => craftcms-ui}/src/index.ts | 0 .../src/services/AssetIndexer.ts | 0 .../src/services/Config.ts | 0 .../src/services/Csrf.ts | 0 .../src/services/Queue.test.ts | 0 .../src/services/Queue.ts | 0 .../src/stories/tokens/Colors.mdx | 0 .../src/stories/tokens/Docs.mdx | 0 .../src/stories/tokens/colorable.stories.ts | 0 .../src/stories/tokens/colors.stories.ts | 0 .../src/stories/tokens/helpers.ts | 0 .../src/stories/tokens/spacing.stories.ts | 0 .../src/stories/tokens/surface.stories.ts | 0 .../src/stories/tokens/text.stories.ts | 0 .../src/stories/tokens/variants.stories.ts | 0 .../src/styles/color-definitions.js | 0 .../src/styles/cp.css | 0 .../src/styles/form.styles.ts | 0 .../src/styles/host.styles.ts | 0 .../src/styles/shared/base.css | 0 .../src/styles/shared/color-palette.css | 0 .../src/styles/shared/colorable.css | 0 .../src/styles/shared/preflight.css | 0 .../src/styles/shared/tokens.css | 0 .../src/styles/shared/variables.css | 0 .../src/styles/static-variants.styles.ts | 0 .../src/styles/variants.styles.ts | 0 .../src/styles/visually-hidden.styles.ts | 0 .../src/types/events.ts | 0 .../src/types/globals.ts | 0 .../src/types/index.ts | 0 .../src/types/queue.ts | 0 .../src/utilities/api/actionClient.ts | 0 .../src/utilities/api/apiClient.ts | 0 .../src/utilities/attrs.test.ts | 0 .../src/utilities/attrs.ts | 0 .../src/utilities/cookies.test.ts | 0 .../src/utilities/cookies.ts | 0 .../src/utilities/dom.test.ts | 0 .../src/utilities/dom.ts | 0 .../src/utilities/escapeHtml.ts | 0 .../src/utilities/format.test.ts | 0 .../src/utilities/format.ts | 0 .../src/utilities/icons.test.ts | 0 .../src/utilities/icons.ts | 0 .../src/utilities/overlay-events.test.ts | 0 .../src/utilities/overlay-events.ts | 0 .../src/utilities/string.test.ts | 0 .../src/utilities/string.ts | 0 .../src/utilities/thumbnail-loader.ts | 0 .../src/utilities/translate.test.ts | 0 .../src/utilities/translate.ts | 0 .../{craftcms-cp => craftcms-ui}/tailwind.css | 4 +- .../tsconfig.json | 0 .../vitest.config.ts | 0 .../vitest.shims.d.ts | 0 packages/craftcms-webpack/index.js | 2 +- resources/css/cp.css | 4 +- resources/js/bootstrap/cp.ts | 4 +- resources/js/bootstrap/icons.ts | 2 +- resources/js/common/components/ActionMenu.vue | 4 +- .../js/common/components/Breadcrumbs.vue | 2 +- .../js/common/components/CalloutReadOnly.vue | 2 +- resources/js/common/components/CpSidebar.vue | 2 +- resources/js/common/components/DebugPanel.vue | 2 +- resources/js/common/components/FileUpload.vue | 2 +- .../js/common/components/FormActions.vue | 2 +- .../components/HtmlFragmentRenderer.vue | 2 +- resources/js/common/components/ModalForm.vue | 2 +- .../js/common/components/SecondaryNav.vue | 2 +- resources/js/common/components/Text.vue | 2 +- resources/js/common/components/UserMenu.vue | 2 +- .../common/composables/useActionRedirect.ts | 2 +- .../js/common/composables/useAppendHtml.ts | 2 +- resources/js/common/composables/useFetch.ts | 2 +- resources/js/common/form/CheckboxGroup.vue | 4 +- resources/js/common/form/CraftCombobox.vue | 2 +- resources/js/common/form/ErrorSummary.vue | 2 +- resources/js/common/form/IconPicker.vue | 4 +- resources/js/common/form/MixedInput.vue | 2 +- resources/js/common/form/Select.vue | 2 +- resources/js/common/layouts/AppLayout.vue | 4 +- resources/js/common/layouts/AuthBase.vue | 2 +- resources/js/common/types/globals.d.ts | 2 +- resources/js/common/types/index.ts | 2 +- resources/js/common/types/keys.ts | 4 +- .../common/utils/transformBooleanOptions.ts | 2 +- resources/js/cp.ts | 2 +- resources/js/legacy.ts | 4 +- .../admin-table/components/DeleteButton.vue | 2 +- .../admin-table/components/SearchForm.vue | 4 +- .../composables/useEditableTable.ts | 2 +- .../helpers/createCraftColumnHelper.ts | 2 +- .../auth/components/login/login-challenge.ts | 2 +- .../auth/components/login/login-form.ts | 2 +- .../components/login/login-reset-password.ts | 2 +- .../recovery-codes/recovery-code-form.ts | 2 +- .../set-password/set-password-form.ts | 2 +- .../modules/auth/components/totp/totp-form.ts | 2 +- .../verify-email/verify-email-form.ts | 2 +- .../ElevatedSessionHost.test.ts | 2 +- .../elevated-session/ElevatedSessionHost.vue | 4 +- .../modules/auth/elevated-session/manager.ts | 2 +- .../modules/editable-table/editable-table.ts | 2 +- .../js/modules/elements/ElementStatus.vue | 2 +- .../elements/components/BaseElementIndex.vue | 2 +- .../elements/components/BulkActionsBar.vue | 2 +- .../modules/elements/components/DataTable.vue | 2 +- .../elements/components/ElementCards.vue | 2 +- .../components/ElementIndexToolbar.vue | 6 +- .../modules/elements/components/FilterHud.vue | 2 +- .../elements/components/IndexViewSettings.vue | 2 +- .../elements/components/NewEntryButton.vue | 2 +- .../components/EntryTypeSelect.vue | 4 +- .../modules/field-layout-designer/element.ts | 2 +- .../field-layout-designer.ts | 2 +- .../js/modules/field-layout-designer/tab.ts | 2 +- .../install/components/AccountFields.vue | 6 +- .../modules/install/components/DbFields.vue | 6 +- .../install/components/InstallingScreen.vue | 2 +- .../modules/install/components/SiteFields.vue | 4 +- .../modules/install/composables/useInstall.ts | 2 +- .../js/modules/link-field/craft-link-field.ts | 2 +- .../markdown-field/behaviors/assets.ts | 2 +- .../markdown-field/behaviors/link-popover.ts | 2 +- .../markdown-field/behaviors/preview.ts | 2 +- .../behaviors/toolbar/guide-link.ts | 2 +- .../markdown-field/behaviors/toolbar/items.ts | 2 +- .../markdown-field/behaviors/uploads.ts | 2 +- .../modules/markdown-field/markdown-field.ts | 2 +- .../components/cp-queue-indicator.ts | 8 +- .../permissions/components/PermissionList.vue | 4 +- .../components/PluginActionMenu.vue | 2 +- .../components/PluginDetails.vue | 2 +- .../components/PluginEdition.vue | 2 +- .../components/PluginLicenseInput.vue | 4 +- .../components/PluginLicenseIssues.vue | 2 +- .../components/PluginStatus.vue | 2 +- .../plugin-manager/components/PluginsList.vue | 2 +- .../components/DeleteSectionButton.vue | 2 +- .../components/PreviewTargetsTable.vue | 2 +- .../sections/components/SiteSettingsTable.vue | 2 +- .../components/email/SiteOverridesTable.vue | 2 +- .../sites/components/DeleteSiteModal.vue | 2 +- .../modules/sites/components/SiteFields.vue | 4 +- .../sortable-checkbox-select.ts | 2 +- .../js/modules/updater/components/Release.vue | 2 +- .../js/modules/updater/components/Update.vue | 2 +- .../js/modules/updater/components/Updates.vue | 2 +- .../modules/updater/composables/useUpdater.ts | 2 +- .../user/components/UserGroupSelect.vue | 4 +- .../utilities/components/DatabaseBackup.vue | 4 +- .../utilities/components/Migrations.vue | 2 +- .../components/asset-indexes/AssetIndexes.vue | 4 +- .../asset-indexes/IndexingSessions.vue | 2 +- .../asset-indexes/ReviewSessionModal.vue | 6 +- .../asset-indexes/SessionActions.vue | 2 +- .../components/clear-caches/ClearCaches.vue | 2 +- .../deprecation-errors/DeleteLogButton.vue | 2 +- .../deprecation-errors/DeprecationErrors.vue | 2 +- .../DeprecationErrorsToolbar.vue | 2 +- .../deprecation-errors/StackTraceButton.vue | 2 +- .../components/find-replace/FindReplace.vue | 4 +- .../project-config/ProjectConfig.vue | 2 +- .../project-config/ProjectConfigDiff.vue | 2 +- .../project-config/SyncConfigButton.vue | 2 +- .../components/queue-manager/QueueManager.vue | 2 +- .../queue-manager/QueueManagerIndex.vue | 4 +- .../queue-manager/QueueManagerShow.vue | 4 +- .../queue-manager/QueueManagerToolbar.vue | 4 +- .../queue-manager/ReleaseJobButton.vue | 4 +- .../queue-manager/RetryJobButton.vue | 4 +- .../SystemMessageEditModal.vue | 6 +- .../system-messages/SystemMessages.vue | 2 +- .../utilities/composables/useAssetIndexer.ts | 2 +- .../utilities/composables/useProjectConfig.ts | 2 +- resources/js/pages/auth/SetPassword.vue | 2 +- resources/js/pages/auth/VerifyEmail.vue | 2 +- resources/js/pages/content/Index.vue | 2 +- resources/js/pages/graphql/Explore.vue | 2 +- resources/js/pages/graphql/schemas/Edit.vue | 6 +- resources/js/pages/graphql/schemas/Index.vue | 2 +- resources/js/pages/graphql/tokens/Edit.vue | 6 +- resources/js/pages/graphql/tokens/Index.vue | 2 +- resources/js/pages/install/Install.vue | 2 +- resources/js/pages/settings/Email.vue | 4 +- resources/js/pages/settings/General.vue | 4 +- resources/js/pages/settings/Index.vue | 2 +- resources/js/pages/settings/assets/Index.vue | 2 +- .../pages/settings/assets/transforms/Edit.vue | 12 +- .../settings/assets/transforms/Index.vue | 2 +- .../js/pages/settings/entry-types/Edit.vue | 14 +- .../js/pages/settings/entry-types/Index.vue | 2 +- resources/js/pages/settings/fields/Edit.vue | 12 +- resources/js/pages/settings/fields/Index.vue | 2 +- .../js/pages/settings/filesystems/Index.vue | 2 +- resources/js/pages/settings/routes/Edit.vue | 2 +- resources/js/pages/settings/routes/Index.vue | 2 +- resources/js/pages/settings/sections/Edit.vue | 10 +- .../js/pages/settings/sections/Index.vue | 2 +- resources/js/pages/settings/sites/Edit.vue | 2 +- resources/js/pages/settings/sites/Index.vue | 2 +- .../js/pages/settings/users/Settings.vue | 4 +- .../js/pages/settings/users/groups/Edit.vue | 8 +- .../js/pages/settings/users/groups/Index.vue | 2 +- resources/js/pages/updater/Index.vue | 2 +- resources/js/pages/users/Permissions.vue | 4 +- resources/js/pages/users/Preferences.vue | 2 +- resources/js/pages/users/SignInProviders.vue | 2 +- resources/legacy/cp/dist/cp.js.map | 2 +- resources/legacy/cp/dist/css/cp.css.map | 2 +- scripts/ensure-built.mjs | 6 +- vite.config.js | 2 +- 399 files changed, 1734 insertions(+), 1734 deletions(-) rename packages/{craftcms-cp => craftcms-ui}/.gitignore (100%) rename packages/{craftcms-cp => craftcms-ui}/.nvmrc (100%) rename packages/{craftcms-cp => craftcms-ui}/.prettierignore (100%) rename packages/{craftcms-cp => craftcms-ui}/.storybook/main.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/.storybook/preview.css (100%) rename packages/{craftcms-cp => craftcms-ui}/.storybook/preview.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/.storybook/vitest.setup.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/README.md (85%) rename packages/{craftcms-cp => craftcms-ui}/custom-elements-manifest.config.mjs (100%) rename packages/{craftcms-cp => craftcms-ui}/custom-elements.json (100%) rename packages/{craftcms-cp => craftcms-ui}/package.json (99%) rename packages/{craftcms-cp => craftcms-ui}/scripts/build.js (98%) rename packages/{craftcms-cp => craftcms-ui}/scripts/generate-color-palette.js (100%) rename packages/{craftcms-cp => craftcms-ui}/scripts/generate-colors.js (100%) rename packages/{craftcms-cp => craftcms-ui}/scripts/generate-vue-wrappers.js (99%) rename packages/{craftcms-cp => craftcms-ui}/scripts/utils.js (100%) rename packages/{craftcms-cp => craftcms-ui}/src/actions/index.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/action-item/action-item.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/action-item/action-item.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/action-item/action-item.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/action-menu/action-menu.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/action-menu/action-menu.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/action-menu/action-menu.types.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/auth-challenge-form/auth-challenge-form.ts (99%) rename packages/{craftcms-cp => craftcms-ui}/src/components/avatar/avatar.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/avatar/avatar.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/avatar/avatar.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/badge-indicator/badge-indicator.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/badge-indicator/badge-indicator.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/badge-indicator/badge-indicator.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/badge/Badge.mdx (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/badge/badge.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/badge/badge.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/badge/badge.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/breadcrumb-item/breadcrumb-item.test.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/breadcrumb-item/breadcrumb-item.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/breadcrumbs/breadcrumbs.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/breadcrumbs/breadcrumbs.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/breadcrumbs/breadcrumbs.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/button-group/button-group.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/button-group/button-group.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/button-group/button-group.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/button/Docs.mdx (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/button/button.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/button/button.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/button/button.test.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/button/button.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/callout/callout.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/callout/callout.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/callout/callout.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/card/card.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/card/card.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/card/card.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/checkbox-group/checkbox-group.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/checkbox-indeterminate/checkbox-indeterminate.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/checkbox-indeterminate/checkbox-indeterminate.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/checkbox/checkbox.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/checkbox/checkbox.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/chip/chip.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/chip/chip.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/chip/chip.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/combobox/combobox.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/combobox/combobox.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/combobox/combobox.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/copy-attribute/copy-attribute.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/copy-attribute/copy-attribute.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/copy-attribute/copy-attribute.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/copy-button/copy-button.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/copy-button/copy-button.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/copy-button/copy-button.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/dialog/dialog.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/dialog/dialog.test.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/dialog/dialog.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/disclosure/disclosure.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/disclosure/disclosure.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/empty/empty.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/field-group/field-group.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/icon/icon.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/icon/icon.test.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/icon/icon.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/indicator/Indicator.mdx (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/indicator/indicator.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/indicator/indicator.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/info-icon/info-icon.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/info-icon/info-icon.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/input-color/input-color.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/input-color/input-color.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/input-color/input-color.test.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/input-color/input-color.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/input-file/input-file.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/input-file/input-file.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/input-file/input-file.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/input-file/selected-file-list.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/input-handle/input-handle.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/input-password/input-password.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/input-password/input-password.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/input/input.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/input/input.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/input/input.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/nav-item/nav-item.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/nav-item/nav-item.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/nav-item/nav-item.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/nav-list/nav-list.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/nav-list/nav-list.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/option/option.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/option/option.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/pane/pane.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/popover/popover.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/popover/popover.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/popover/popover.test.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/popover/popover.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/progress-bar/progress-bar.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/progress-bar/progress-bar.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/progress-bar/progress-bar.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/progress/progress.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/progress/progress.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/radio-group/radio-group.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/radio/radio.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/reorder-button/reorder-button.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/reorder-button/reorder-button.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/reorder-button/reorder-button.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/select-color/select-color.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/select-color/select-color.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/select-color/select-color.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/select-rich/select-invoker.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/select-rich/select-invoker.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/select-rich/select-rich.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/select-rich/select-rich.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/select-rich/select-rich.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/select/select.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/select/select.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/select/select.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/shortcut/shortcut.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/shortcut/shortcut.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/spinner/spinner.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/spinner/spinner.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/spinner/spinner.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/status/status.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/status/status.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/status/status.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/switch-button/switch-button.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/switch/switch.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/switch/switch.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/switch/switch.test.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/switch/switch.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/tab/tab.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/tab/tab.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/tabs/tabs.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/tabs/tabs.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/tabs/tabs.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/textarea/textarea.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/textarea/textarea.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/textarea/textarea.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/thumbnail-loader/README.md (89%) rename packages/{craftcms-cp => craftcms-ui}/src/components/thumbnail-loader/thumbnail-loader.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/thumbnail/thumbnail.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/thumbnail/thumbnail.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/thumbnail/thumbnail.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/tooltip/Tooltip.mdx (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/tooltip/tooltip.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/tooltip/tooltip.test.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/tooltip/tooltip.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/components/visually-hidden/visually-hidden.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/constants/appearances.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/constants/colors.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/constants/size.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/constants/statuses.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/constants/variants.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/constants/volume.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/index.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/services/AssetIndexer.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/services/Config.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/services/Csrf.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/services/Queue.test.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/services/Queue.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/stories/tokens/Colors.mdx (100%) rename packages/{craftcms-cp => craftcms-ui}/src/stories/tokens/Docs.mdx (100%) rename packages/{craftcms-cp => craftcms-ui}/src/stories/tokens/colorable.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/stories/tokens/colors.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/stories/tokens/helpers.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/stories/tokens/spacing.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/stories/tokens/surface.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/stories/tokens/text.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/stories/tokens/variants.stories.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/styles/color-definitions.js (100%) rename packages/{craftcms-cp => craftcms-ui}/src/styles/cp.css (100%) rename packages/{craftcms-cp => craftcms-ui}/src/styles/form.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/styles/host.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/styles/shared/base.css (100%) rename packages/{craftcms-cp => craftcms-ui}/src/styles/shared/color-palette.css (100%) rename packages/{craftcms-cp => craftcms-ui}/src/styles/shared/colorable.css (100%) rename packages/{craftcms-cp => craftcms-ui}/src/styles/shared/preflight.css (100%) rename packages/{craftcms-cp => craftcms-ui}/src/styles/shared/tokens.css (100%) rename packages/{craftcms-cp => craftcms-ui}/src/styles/shared/variables.css (100%) rename packages/{craftcms-cp => craftcms-ui}/src/styles/static-variants.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/styles/variants.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/styles/visually-hidden.styles.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/types/events.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/types/globals.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/types/index.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/types/queue.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/utilities/api/actionClient.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/utilities/api/apiClient.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/utilities/attrs.test.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/utilities/attrs.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/utilities/cookies.test.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/utilities/cookies.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/utilities/dom.test.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/utilities/dom.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/utilities/escapeHtml.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/utilities/format.test.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/utilities/format.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/utilities/icons.test.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/utilities/icons.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/utilities/overlay-events.test.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/utilities/overlay-events.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/utilities/string.test.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/utilities/string.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/utilities/thumbnail-loader.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/utilities/translate.test.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/src/utilities/translate.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/tailwind.css (97%) rename packages/{craftcms-cp => craftcms-ui}/tsconfig.json (100%) rename packages/{craftcms-cp => craftcms-ui}/vitest.config.ts (100%) rename packages/{craftcms-cp => craftcms-ui}/vitest.shims.d.ts (100%) diff --git a/.github/instructions/a11y.instructions.md b/.github/instructions/a11y.instructions.md index aa3a8ef2a87..08e3c83c902 100644 --- a/.github/instructions/a11y.instructions.md +++ b/.github/instructions/a11y.instructions.md @@ -1,6 +1,6 @@ --- description: "Guidance for creating more accessible code" -applyTo: "resources/js/**,resources/css/**,resources/templates/**,packages/craftcms-cp/src/**" +applyTo: "resources/js/**,resources/css/**,resources/templates/**,packages/craftcms-ui/src/**" --- # Accessibility instructions @@ -11,11 +11,11 @@ You are an expert in accessibility with deep software engineering expertise. - Conform to [WCAG 2.2 Level AA](https://www.w3.org/TR/WCAG22/). - Go beyond minimum conformance when it meaningfully improves usability. -- UI components are defined as Lit Web Components in the component library (`@craftcms/cp`) or as Vue components in `./resources/js/`. You SHOULD use the component patterns as defined. Do not recreate patterns. +- UI components are defined as Lit Web Components in the component library (`@craftcms/ui`) or as Vue components in `./resources/js/`. You SHOULD use the component patterns as defined. Do not recreate patterns. - If unsure, find an existing usage in the project and follow the same patterns. - Ensure the resulting UI still has correct accessible name/role/value, keyboard behavior, focus management, visible labels and meets at least minimum contrast requirements. - If a needed component does not exist, prefer native HTML elements/attributes over ARIA. - - The `@craftcms/cp` component library should include components that can be reused by plugin developers, or outside the context of this application. Vue components should be used for application-specific UI. + - The `@craftcms/ui` component library should include components that can be reused by plugin developers, or outside the context of this application. Vue components should be used for application-specific UI. - Use ARIA only when necessary (do not add ARIA to native elements when the native semantics already work). - Ensure correct accessible **name, role, value, states, and properties**. - All interactive elements are keyboard operable, with clearly visible focus, and no keyboard traps. diff --git a/.github/scripts/storybook-preview-comment.cjs b/.github/scripts/storybook-preview-comment.cjs index ba5c7113c8f..abe651c58c4 100644 --- a/.github/scripts/storybook-preview-comment.cjs +++ b/.github/scripts/storybook-preview-comment.cjs @@ -49,8 +49,8 @@ async function sectionFor(preview, changed) { // Scope the changed-file matching to the relevant subtree so similarly-named // directories elsewhere in the repo don't create false positives. const baseDir = - preview.name === '@craftcms/cp' - ? 'packages/craftcms-cp' + preview.name === '@craftcms/ui' + ? 'packages/craftcms-ui' : preview.name === 'resources/js' ? 'resources/js' : null; @@ -87,7 +87,7 @@ async function sectionFor(preview, changed) { module.exports = async ({github, context}) => { const previews = [ - {name: '@craftcms/cp', result: process.env.CP_RESULT, url: process.env.CP_URL}, + {name: '@craftcms/ui', result: process.env.CP_RESULT, url: process.env.CP_URL}, {name: 'resources/js', result: process.env.RESOURCES_RESULT, url: process.env.RESOURCES_URL}, ]; diff --git a/.github/workflows/js-ci.yml b/.github/workflows/js-ci.yml index 8210e6d77cd..2b01e283752 100644 --- a/.github/workflows/js-ci.yml +++ b/.github/workflows/js-ci.yml @@ -47,7 +47,7 @@ jobs: # `testbench typescript:transform` and `testbench wayfinder:generate` # derive their output from controllers, DTOs, and routes in src/. run: | - echo "value=js-ci-v3-${{ runner.os }}-${{ hashFiles('package-lock.json', 'composer.lock', 'package.json', 'packages/*/package.json', 'packages/craftcms-cp/src/**', 'packages/craftcms-cp/tsconfig*.json', 'packages/craftcms-cp/vite.config.*', 'packages/craftcms-cp/tsdown.config.*', 'packages/craftcms-garnish/src/**', 'packages/craftcms-garnish/tsconfig*.json', 'packages/craftcms-garnish/tsdown.config.*', 'src/**/*.php', 'workbench/**/*.php') }}" >> "$GITHUB_OUTPUT" + echo "value=js-ci-v3-${{ runner.os }}-${{ hashFiles('package-lock.json', 'composer.lock', 'package.json', 'packages/*/package.json', 'packages/craftcms-ui/src/**', 'packages/craftcms-ui/tsconfig*.json', 'packages/craftcms-ui/vite.config.*', 'packages/craftcms-ui/tsdown.config.*', 'packages/craftcms-garnish/src/**', 'packages/craftcms-garnish/tsconfig*.json', 'packages/craftcms-garnish/tsdown.config.*', 'src/**/*.php', 'workbench/**/*.php') }}" >> "$GITHUB_OUTPUT" - name: Restore install + build + generated cache id: cache @@ -56,7 +56,7 @@ jobs: path: | node_modules packages/*/node_modules - packages/craftcms-cp/dist + packages/craftcms-ui/dist packages/craftcms-garnish/dist vendor resources/js/actions @@ -82,9 +82,9 @@ jobs: if: steps.cache.outputs.cache-hit != 'true' run: npm run build:garnish - - name: Build @craftcms/cp + - name: Build @craftcms/ui if: steps.cache.outputs.cache-hit != 'true' - run: npm run build:cp + run: npm run build:ui - name: Generate TypeScript types if: steps.cache.outputs.cache-hit != 'true' @@ -115,7 +115,7 @@ jobs: path: | node_modules packages/*/node_modules - packages/craftcms-cp/dist + packages/craftcms-ui/dist packages/craftcms-garnish/dist vendor resources/js/actions @@ -148,7 +148,7 @@ jobs: path: | node_modules packages/*/node_modules - packages/craftcms-cp/dist + packages/craftcms-ui/dist packages/craftcms-garnish/dist vendor resources/js/actions diff --git a/.github/workflows/storybook.yml b/.github/workflows/storybook.yml index 6271cc667ea..620978352d7 100644 --- a/.github/workflows/storybook.yml +++ b/.github/workflows/storybook.yml @@ -5,13 +5,13 @@ on: branches: - 6.x paths: - - 'packages/craftcms-cp/**' + - 'packages/craftcms-ui/**' - 'packages/craftcms-garnish/**' - 'resources/js/**' - 'src/**/*.php' pull_request: paths: - - 'packages/craftcms-cp/**' + - 'packages/craftcms-ui/**' - 'packages/craftcms-garnish/**' - 'resources/js/**' - 'src/**/*.php' @@ -59,7 +59,7 @@ jobs: # Keep this in sync with .github/workflows/js-ci.yml so the built assets # and generated files are shared between the two workflows. run: | - echo "value=js-ci-v3-${{ runner.os }}-${{ hashFiles('package-lock.json', 'composer.lock', 'package.json', 'packages/*/package.json', 'packages/craftcms-cp/src/**', 'packages/craftcms-cp/tsconfig*.json', 'packages/craftcms-cp/vite.config.*', 'packages/craftcms-cp/tsdown.config.*', 'packages/craftcms-garnish/src/**', 'packages/craftcms-garnish/tsconfig*.json', 'packages/craftcms-garnish/tsdown.config.*', 'src/**/*.php', 'workbench/**/*.php') }}" >> "$GITHUB_OUTPUT" + echo "value=js-ci-v3-${{ runner.os }}-${{ hashFiles('package-lock.json', 'composer.lock', 'package.json', 'packages/*/package.json', 'packages/craftcms-ui/src/**', 'packages/craftcms-ui/tsconfig*.json', 'packages/craftcms-ui/vite.config.*', 'packages/craftcms-ui/tsdown.config.*', 'packages/craftcms-garnish/src/**', 'packages/craftcms-garnish/tsconfig*.json', 'packages/craftcms-garnish/tsdown.config.*', 'src/**/*.php', 'workbench/**/*.php') }}" >> "$GITHUB_OUTPUT" - name: Restore install + build + generated cache id: cache @@ -68,7 +68,7 @@ jobs: path: | node_modules packages/*/node_modules - packages/craftcms-cp/dist + packages/craftcms-ui/dist packages/craftcms-garnish/dist vendor resources/js/actions @@ -93,9 +93,9 @@ jobs: if: steps.cache.outputs.cache-hit != 'true' run: npm run build:garnish - - name: Build @craftcms/cp + - name: Build @craftcms/ui if: steps.cache.outputs.cache-hit != 'true' - run: npm run build:cp + run: npm run build:ui - name: Generate TypeScript types if: steps.cache.outputs.cache-hit != 'true' @@ -115,7 +115,7 @@ jobs: fi deploy-cp: - name: 'Deploy / craftcms-cp' + name: 'Deploy / craftcms-ui' runs-on: ubuntu-latest timeout-minutes: 10 needs: build-assets @@ -137,7 +137,7 @@ jobs: path: | node_modules packages/*/node_modules - packages/craftcms-cp/dist + packages/craftcms-ui/dist packages/craftcms-garnish/dist vendor resources/js/actions @@ -147,7 +147,7 @@ jobs: key: ${{ needs.build-assets.outputs.cache-key }} - name: Build Storybook - run: npm run build:storybook --workspace=@craftcms/cp + run: npm run build:storybook --workspace=@craftcms/ui - name: Deploy to Cloudflare Pages id: deploy @@ -155,7 +155,7 @@ jobs: with: apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} - command: pages deploy packages/craftcms-cp/storybook-static --project-name=craftcms-ui-storybook --branch=${{ needs.build-assets.outputs.deploy-branch }} + command: pages deploy packages/craftcms-ui/storybook-static --project-name=craftcms-ui-storybook --branch=${{ needs.build-assets.outputs.deploy-branch }} deploy-resources: name: 'Deploy / resources' @@ -180,7 +180,7 @@ jobs: path: | node_modules packages/*/node_modules - packages/craftcms-cp/dist + packages/craftcms-ui/dist packages/craftcms-garnish/dist vendor resources/js/actions diff --git a/.storybook/main.ts b/.storybook/main.ts index e7fc48c2c03..3dcaaae08ba 100644 --- a/.storybook/main.ts +++ b/.storybook/main.ts @@ -32,7 +32,7 @@ const config: StorybookConfig = { viteFinal(config) { // Storybook's vue3-vite framework adds its own Vue plugin with default options. // We need to configure `isCustomElement` so Vue treats `craft-*` tags as web - // components (from @craftcms/cp) rather than trying to resolve them as Vue + // components (from @craftcms/ui) rather than trying to resolve them as Vue // components. Since Vite's mergeConfig doesn't deep-merge plugin options, // we remove Storybook's Vue plugin and add our own with the correct config. const filteredPlugins = (config.plugins || []).flat().filter((plugin) => { diff --git a/.storybook/preview.ts b/.storybook/preview.ts index 8194479ba14..a2ed9d3e6ed 100644 --- a/.storybook/preview.ts +++ b/.storybook/preview.ts @@ -1,7 +1,7 @@ import type {Preview} from '@storybook/vue3'; import {setup} from '@storybook/vue3'; import {withThemeByDataAttribute} from '@storybook/addon-themes'; -import '@craftcms/cp'; +import '@craftcms/ui'; import '../resources/css/cp.css'; import './preview.css'; import {installInertiaMock, setPageProps} from './inertia-mock'; diff --git a/AGENTS.md b/AGENTS.md index 53b8c996213..f4ee338de38 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -32,14 +32,14 @@ npm run dev # Vite dev server (HMR) for the Inertia/Vue CP npm run build # Production Vite build (cp.ts + legacy.ts + cp.css) npm run build:all # Build legacy bundles + CP component package + Vite npm run dev:bundles # Webpack dev watch for legacy jQuery bundles -npm run dev:cp # Dev build for the @craftcms/cp component package -npm run build:cp # Production build for the @craftcms/cp component package +npm run dev:ui # Dev build for the @craftcms/ui component package +npm run build:ui # Production build for the @craftcms/ui component package npm run lint # ESLint + Stylelint + TypeScript type-check npm run typecheck # TypeScript type-check only (vue-tsc) -npm run test:cp # Vitest tests for the @craftcms/cp package +npm run test:ui # Vitest tests for the @craftcms/ui package ``` -> **Note:** `@craftcms/cp` must be built (`npm run build:cp`) before building or running the main Vite app if you've +> **Note:** `@craftcms/ui` must be built (`npm run build:ui`) before building or running the main Vite app if you've > made changes to it. ## Testing @@ -79,8 +79,8 @@ partially migrated; full migration means converting the inner form to a Vue comp **Packages:** -- `packages/craftcms-cp` — the `@craftcms/cp` component library (Web Components built on Lit/WebAwesome). Imported as - `@craftcms/cp` in Vue pages. Has its own build (`npm run build:cp`) and Vitest tests (`npm run test:cp`). +- `packages/craftcms-ui` — the `@craftcms/ui` component library (Web Components built on Lit/WebAwesome). Imported as + `@craftcms/ui` in Vue pages. Has its own build (`npm run build:ui`) and Vitest tests (`npm run test:ui`). - `packages/craftcms-legacy` — webpack-bundled jQuery modules used by legacy CP surfaces. **TypeScript types** for PHP classes are auto-generated via `spatie/laravel-typescript-transformer` and written to diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 91748d6cb15..1e8275483d8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -69,7 +69,7 @@ If you would like to work on a new core feature or improvement, first create a [ ## Control Panel Front End -In order to work on the control panel front end, run `npm run dev`. On first run, this ensures the build artifacts the dev server depends on exist (building them if they don't), then starts the Vite development server together with the `@craftcms/cp` watcher, with output from each prefixed so you can tell them apart. +In order to work on the control panel front end, run `npm run dev`. On first run, this ensures the build artifacts the dev server depends on exist (building them if they don't), then starts the Vite development server together with the `@craftcms/ui` watcher, with output from each prefixed so you can tell them apart. That covers most control panel work. If you also need to edit files under `packages/craftcms-legacy`, run `npm run dev:legacy` instead, which additionally starts the legacy webpack watcher. @@ -86,15 +86,15 @@ npm run dev npm run build ``` -### `@craftcms/cp` package +### `@craftcms/ui` package -The control panel is largely backed by web components that live in the `@craftcms/cp` package within the `packages/craftcms-cp` directory. Like other packages, it has its own build process that can be run independently of the control panel. +The control panel is largely backed by web components that live in the `@craftcms/ui` package within the `packages/craftcms-ui` directory. Like other packages, it has its own build process that can be run independently of the control panel. ```shell # Run the build in watch mode. Assets will be rebuilt on every change -npm run dev:cp +npm run dev:ui # Run the build for production -npm run build:cp +npm run build:ui ``` In practice, you rarely work on one without the other, which is why `npm run dev` runs both together. diff --git a/docs/admin-table.md b/docs/admin-table.md index 71f778490fb..44e467cb2ee 100644 --- a/docs/admin-table.md +++ b/docs/admin-table.md @@ -9,7 +9,7 @@ The `AdminTable` component renders data tables in the Craft CMS Control Panel. I import {getCoreRowModel, useVueTable} from '@tanstack/vue-table'; import AdminTable from '@/components/AdminTable/AdminTable.vue'; import {createCraftColumnHelper} from '@/components/AdminTable/createCraftColumnHelper'; -import {t} from '@craftcms/cp'; +import {t} from '@craftcms/ui'; interface RowData { id: number; diff --git a/package-lock.json b/package-lock.json index 1bb0d5c5bf5..6e0ababf132 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,8 +11,8 @@ "dependencies": { "@atlaskit/pragmatic-drag-and-drop": "^1.8.1", "@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.1.0", - "@craftcms/cp": "file:packages/craftcms-cp", "@craftcms/graphiql": "file:packages/craftcms-graphiql", + "@craftcms/ui": "file:packages/craftcms-ui", "@headlessui/vue": "^1.7.23", "@inertiajs/vite": "^3.0.3", "@inertiajs/vue3": "^3.0.3", @@ -1893,10 +1893,6 @@ "resolved": "packages/craftcms-browserslist-config", "link": true }, - "node_modules/@craftcms/cp": { - "resolved": "packages/craftcms-cp", - "link": true - }, "node_modules/@craftcms/garnish": { "resolved": "packages/craftcms-garnish", "link": true @@ -1917,6 +1913,10 @@ "resolved": "packages/craftcms-sass", "link": true }, + "node_modules/@craftcms/ui": { + "resolved": "packages/craftcms-ui", + "link": true + }, "node_modules/@craftcms/vue": { "resolved": "packages/craftcms-vue", "link": true @@ -23877,555 +23877,463 @@ "version": "2.0.0", "license": "MIT" }, - "packages/craftcms-cp": { - "name": "@craftcms/cp", + "packages/craftcms-garnish": { + "name": "@craftcms/garnish", "version": "0.0.0", "license": "MIT", - "dependencies": { - "@chromatic-com/storybook": "^5.1.2", - "@formatjs/intl-durationformat": "^0.10.8", - "@github/relative-time-element": "^5.0.0", - "@simplewebauthn/browser": "^13.3.0", - "@vitest/browser-playwright": "^4.1.5", - "axios": "^1.17.0" - }, "devDependencies": { - "@adobe/leonardo-contrast-colors": "^1.1.0", - "@arethetypeswrong/cli": "^0.18.2", - "@custom-elements-manifest/analyzer": "^0.11.0", - "@lion/ui": "^0.16.1", - "@shoelace-style/shoelace": "^2.20.1", "@storybook/addon-a11y": "^10.4.1", "@storybook/addon-docs": "^10.4.1", "@storybook/addon-themes": "^10.4.1", - "@storybook/addon-vitest": "^10.4.1", - "@storybook/web-components-vite": "^10.4.1", + "@storybook/html-vite": "^10.4.1", "@total-typescript/tsconfig": "^1.0.4", - "@types/humanize-duration": "^3.27.4", - "@types/jquery": "^4.0.0", "@types/node": "^25.6.0", - "@vitest/browser": "^4.1.5", "@vitest/coverage-v8": "^4.1.5", - "@wc-toolkit/storybook-helpers": "^10.3.0", - "del": "^8.0.1", - "dom-accessibility-api": "^0.7.1", - "esbuild": "^0.28.0", - "globby": "^16.2.0", "happy-dom": "^20.9.0", - "humanize-duration": "^3.33.2", - "lit": "^3.3.2", - "ora": "^9.4.0", - "playwright": "^1.59.1", - "plop": "^4.0.5", - "recursive-copy": "^2.0.14", - "rimraf": "^6.1.3", "storybook": "^10.4.1", "tsdown": "^0.21.10", "typescript": "^6.0.3", - "unplugin-dts": "^1.0.0", - "vite-plugin-dts": "^5.0.0", - "vite-tsconfig-paths": "^6.1.1", + "vite": "^7.1.5", "vitest": "^4.1.5" }, "peerDependencies": { - "@lion/ui": "0.x", - "lit": "3.x" - } - }, - "packages/craftcms-cp/node_modules/@types/jquery": { - "version": "4.0.0", - "dev": true, - "license": "MIT" - }, - "packages/craftcms-cp/node_modules/@vitest/coverage-v8": { - "version": "4.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^1.0.2", - "@vitest/utils": "4.1.5", - "ast-v8-to-istanbul": "^1.0.0", - "istanbul-lib-coverage": "^3.2.2", - "istanbul-lib-report": "^3.0.1", - "istanbul-reports": "^3.2.0", - "magicast": "^0.5.2", - "obug": "^2.1.1", - "std-env": "^4.0.0-rc.1", - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@vitest/browser": "4.1.5", - "vitest": "4.1.5" + "jquery": "^3.5.0" }, "peerDependenciesMeta": { - "@vitest/browser": { + "jquery": { "optional": true } } }, - "packages/craftcms-cp/node_modules/@vitest/pretty-format": { - "version": "4.1.5", + "packages/craftcms-garnish/node_modules/@esbuild/aix-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", + "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==", + "cpu": [ + "ppc64" + ], "dev": true, "license": "MIT", - "dependencies": { - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" } }, - "packages/craftcms-cp/node_modules/@vitest/utils": { - "version": "4.1.5", + "packages/craftcms-garnish/node_modules/@esbuild/android-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz", + "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "4.1.5", - "convert-source-map": "^2.0.0", - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" } }, - "packages/craftcms-cp/node_modules/@wc-toolkit/storybook-helpers": { - "version": "10.3.0", + "packages/craftcms-garnish/node_modules/@esbuild/android-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz", + "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "peerDependencies": { - "lit": "^2.0.0 || ^3.0.0", - "storybook": ">=10.1.11-0 <11.0.0-0" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" } }, - "packages/craftcms-cp/node_modules/balanced-match": { - "version": "4.0.4", + "packages/craftcms-garnish/node_modules/@esbuild/android-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz", + "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "18 || 20 || >=22" + "node": ">=18" } }, - "packages/craftcms-cp/node_modules/brace-expansion": { - "version": "5.0.5", + "packages/craftcms-garnish/node_modules/@esbuild/darwin-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz", + "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": "18 || 20 || >=22" + "node": ">=18" } }, - "packages/craftcms-cp/node_modules/chalk": { - "version": "5.6.2", + "packages/craftcms-garnish/node_modules/@esbuild/darwin-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz", + "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=18" } }, - "packages/craftcms-cp/node_modules/cli-spinners": { - "version": "3.3.0", + "packages/craftcms-garnish/node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz", + "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=18.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "packages/craftcms-cp/node_modules/del": { - "version": "8.0.1", + "packages/craftcms-garnish/node_modules/@esbuild/freebsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz", + "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "globby": "^14.0.2", - "is-glob": "^4.0.3", - "is-path-cwd": "^3.0.0", - "is-path-inside": "^4.0.0", - "p-map": "^7.0.2", - "presentable-error": "^0.0.1", - "slash": "^5.1.0" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/craftcms-cp/node_modules/dom-accessibility-api": { - "version": "0.7.1", - "dev": true, - "license": "MIT" - }, - "packages/craftcms-cp/node_modules/glob": { - "version": "13.0.6", + "packages/craftcms-garnish/node_modules/@esbuild/linux-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz", + "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==", + "cpu": [ + "arm" + ], "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=18" } }, - "packages/craftcms-cp/node_modules/globby": { - "version": "14.1.0", + "packages/craftcms-garnish/node_modules/@esbuild/linux-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz", + "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.3", - "ignore": "^7.0.3", - "path-type": "^6.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.3.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/craftcms-cp/node_modules/is-interactive": { - "version": "2.0.0", + "packages/craftcms-garnish/node_modules/@esbuild/linux-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz", + "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==", + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "packages/craftcms-cp/node_modules/is-path-cwd": { - "version": "3.0.0", + "packages/craftcms-garnish/node_modules/@esbuild/linux-loong64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz", + "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==", + "cpu": [ + "loong64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "packages/craftcms-cp/node_modules/is-path-inside": { - "version": "4.0.0", + "packages/craftcms-garnish/node_modules/@esbuild/linux-mips64el": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz", + "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==", + "cpu": [ + "mips64el" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "packages/craftcms-cp/node_modules/is-unicode-supported": { - "version": "2.1.0", + "packages/craftcms-garnish/node_modules/@esbuild/linux-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz", + "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==", + "cpu": [ + "ppc64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/craftcms-cp/node_modules/log-symbols": { - "version": "7.0.1", + "packages/craftcms-garnish/node_modules/@esbuild/linux-riscv64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz", + "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==", + "cpu": [ + "riscv64" + ], "dev": true, "license": "MIT", - "dependencies": { - "is-unicode-supported": "^2.0.0", - "yoctocolors": "^2.1.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/craftcms-cp/node_modules/minimatch": { - "version": "10.2.5", + "packages/craftcms-garnish/node_modules/@esbuild/linux-s390x": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz", + "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==", + "cpu": [ + "s390x" + ], "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=18" } }, - "packages/craftcms-cp/node_modules/ora": { - "version": "9.4.0", + "packages/craftcms-garnish/node_modules/@esbuild/linux-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz", + "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "chalk": "^5.6.2", - "cli-cursor": "^5.0.0", - "cli-spinners": "^3.2.0", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^2.1.0", - "log-symbols": "^7.0.1", - "stdin-discarder": "^0.3.2", - "string-width": "^8.1.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "packages/craftcms-cp/node_modules/p-map": { - "version": "7.0.4", + "packages/craftcms-garnish/node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz", + "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], "engines": { "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/craftcms-cp/node_modules/path-scurry": { - "version": "2.0.2", + "packages/craftcms-garnish/node_modules/@esbuild/netbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz", + "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==", + "cpu": [ + "x64" + ], "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=18" } }, - "packages/craftcms-cp/node_modules/path-type": { - "version": "6.0.0", + "packages/craftcms-garnish/node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz", + "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], "engines": { "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/craftcms-cp/node_modules/rimraf": { - "version": "6.1.3", + "packages/craftcms-garnish/node_modules/@esbuild/openbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz", + "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==", + "cpu": [ + "x64" + ], "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "glob": "^13.0.3", - "package-json-from-dist": "^1.0.1" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=18" } }, - "packages/craftcms-cp/node_modules/semver": { - "version": "7.7.4", + "packages/craftcms-garnish/node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz", + "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], "engines": { - "node": ">=10" + "node": ">=18" } }, - "packages/craftcms-cp/node_modules/slash": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages/craftcms-cp/node_modules/tinyrainbow": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "packages/craftcms-cp/node_modules/tsdown": { - "version": "0.21.10", - "dev": true, - "license": "MIT", - "dependencies": { - "ansis": "^4.2.0", - "cac": "^7.0.0", - "defu": "^6.1.7", - "empathic": "^2.0.0", - "hookable": "^6.1.1", - "import-without-cache": "^0.3.3", - "obug": "^2.1.1", - "picomatch": "^4.0.4", - "rolldown": "1.0.0-rc.17", - "rolldown-plugin-dts": "^0.23.2", - "semver": "^7.7.4", - "tinyexec": "^1.1.1", - "tinyglobby": "^0.2.16", - "tree-kill": "^1.2.2", - "unconfig-core": "^7.5.0", - "unrun": "^0.2.37" - }, - "bin": { - "tsdown": "dist/run.mjs" - }, - "engines": { - "node": ">=20.19.0" - }, - "funding": { - "url": "https://github.com/sponsors/sxzz" - }, - "peerDependencies": { - "@arethetypeswrong/core": "^0.18.1", - "@tsdown/css": "0.21.10", - "@tsdown/exe": "0.21.10", - "@vitejs/devtools": "*", - "publint": "^0.3.0", - "typescript": "^5.0.0 || ^6.0.0", - "unplugin-unused": "^0.5.0" - }, - "peerDependenciesMeta": { - "@arethetypeswrong/core": { - "optional": true - }, - "@tsdown/css": { - "optional": true - }, - "@tsdown/exe": { - "optional": true - }, - "@vitejs/devtools": { - "optional": true - }, - "publint": { - "optional": true - }, - "typescript": { - "optional": true - }, - "unplugin-unused": { - "optional": true - } - } - }, - "packages/craftcms-garnish": { - "name": "@craftcms/garnish", - "version": "0.0.0", - "license": "MIT", - "devDependencies": { - "@storybook/addon-a11y": "^10.4.1", - "@storybook/addon-docs": "^10.4.1", - "@storybook/addon-themes": "^10.4.1", - "@storybook/html-vite": "^10.4.1", - "@total-typescript/tsconfig": "^1.0.4", - "@types/node": "^25.6.0", - "@vitest/coverage-v8": "^4.1.5", - "happy-dom": "^20.9.0", - "storybook": "^10.4.1", - "tsdown": "^0.21.10", - "typescript": "^6.0.3", - "vite": "^7.1.5", - "vitest": "^4.1.5" - }, - "peerDependencies": { - "jquery": "^3.5.0" - }, - "peerDependenciesMeta": { - "jquery": { - "optional": true - } - } - }, - "packages/craftcms-garnish/node_modules/@esbuild/aix-ppc64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", - "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==", - "cpu": [ - "ppc64" - ], + "packages/craftcms-garnish/node_modules/@esbuild/sunos-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz", + "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, "os": [ - "aix" + "sunos" ], "engines": { "node": ">=18" } }, - "packages/craftcms-garnish/node_modules/@esbuild/android-arm": { + "packages/craftcms-garnish/node_modules/@esbuild/win32-arm64": { "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz", - "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz", + "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==", "cpu": [ - "arm" + "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "android" + "win32" ], "engines": { "node": ">=18" } }, - "packages/craftcms-garnish/node_modules/@esbuild/android-arm64": { + "packages/craftcms-garnish/node_modules/@esbuild/win32-ia32": { "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz", - "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz", + "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==", "cpu": [ - "arm64" + "ia32" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "android" + "win32" ], "engines": { "node": ">=18" } }, - "packages/craftcms-garnish/node_modules/@esbuild/android-x64": { + "packages/craftcms-garnish/node_modules/@esbuild/win32-x64": { "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz", - "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz", + "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==", "cpu": [ "x64" ], @@ -24433,836 +24341,462 @@ "license": "MIT", "optional": true, "os": [ - "android" + "win32" ], "engines": { "node": ">=18" } }, - "packages/craftcms-garnish/node_modules/@esbuild/darwin-arm64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz", - "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==", - "cpu": [ - "arm64" - ], + "packages/craftcms-garnish/node_modules/@vitest/coverage-v8": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.9.tgz", + "integrity": "sha512-G9/lgqibheLVBDRuya45EbsEXTYcWoSG+TLg7i2axuzx0Eq62eXn+aWXyaVdV5vKvFSWd6ywcX8hA7la9Pvu8g==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" + "dependencies": { + "@bcoe/v8-coverage": "^1.0.2", + "@vitest/utils": "4.1.9", + "ast-v8-to-istanbul": "^1.0.0", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-reports": "^3.2.0", + "magicast": "^0.5.2", + "obug": "^2.1.1", + "std-env": "^4.0.0-rc.1", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "4.1.9", + "vitest": "4.1.9" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } } }, - "packages/craftcms-garnish/node_modules/@esbuild/darwin-x64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz", - "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==", - "cpu": [ - "x64" - ], + "packages/craftcms-garnish/node_modules/@vitest/expect": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.9.tgz", + "integrity": "sha512-vl/rYsUKcBr3SnQn166+XR5ZQcgMx3DQhFWdfli/cWpLnLUmbxZvyrJZotLFUryib+LtArYMSTJ5RbQ57ZqrlA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" + "dependencies": { + "@standard-schema/spec": "^1.1.0", + "@types/chai": "^5.2.2", + "@vitest/spy": "4.1.9", + "@vitest/utils": "4.1.9", + "chai": "^6.2.2", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "packages/craftcms-garnish/node_modules/@esbuild/freebsd-arm64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz", - "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==", - "cpu": [ - "arm64" - ], + "packages/craftcms-garnish/node_modules/@vitest/mocker": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.9.tgz", + "integrity": "sha512-EVkXzBjrPGM+cK8/ANWgBrkUCfJfb38/EfTSO8h7pWvKkyPkpWxvR7BkD2MyItMF62C97zAEoqdpUixwR/e+Rw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" + "dependencies": { + "@vitest/spy": "4.1.9", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } } }, - "packages/craftcms-garnish/node_modules/@esbuild/freebsd-x64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz", - "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==", - "cpu": [ - "x64" - ], + "packages/craftcms-garnish/node_modules/@vitest/pretty-format": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.9.tgz", + "integrity": "sha512-s0iufns3iIFitdgm+YR7g1whCAaGtXz459VS9/PqyKDEEFgYIhsHOQmXgIgDuYCt7DeQmiZT0Qe2OA2p4ZPu5A==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" + "dependencies": { + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "packages/craftcms-garnish/node_modules/@esbuild/linux-arm": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz", - "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==", - "cpu": [ - "arm" - ], + "packages/craftcms-garnish/node_modules/@vitest/runner": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.9.tgz", + "integrity": "sha512-KXLMDtc7oe70+3mJfGrPUWPesswH+3sTxAMAMl8DG7I8IUQT4XW718dY5ID3vPUcmlu27CcKfY4P3h3I29SLJg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" + "dependencies": { + "@vitest/utils": "4.1.9", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "packages/craftcms-garnish/node_modules/@esbuild/linux-arm64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz", - "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==", - "cpu": [ - "arm64" - ], + "packages/craftcms-garnish/node_modules/@vitest/snapshot": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.9.tgz", + "integrity": "sha512-Jc7RKGNBo8Z28WYIm0Niej4xdSPByRf6mU58VpHQkd6Zh05rlnA+twjbK5HyeIGHxrzsc3mJgS43uM0CZKzaIA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" + "dependencies": { + "@vitest/pretty-format": "4.1.9", + "@vitest/utils": "4.1.9", + "magic-string": "^0.30.21", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "packages/craftcms-garnish/node_modules/@esbuild/linux-ia32": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz", - "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==", - "cpu": [ - "ia32" - ], + "packages/craftcms-garnish/node_modules/@vitest/spy": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.9.tgz", + "integrity": "sha512-fHpsS6mIi+PiEW+vcRVOMkX1oSaPKne3VOclSFICPcGOmfKgXPU5iAah+wcNcj2xPrCCmfq99IDGf+EojhhvhA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "packages/craftcms-garnish/node_modules/@esbuild/linux-loong64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz", - "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==", - "cpu": [ - "loong64" - ], + "packages/craftcms-garnish/node_modules/@vitest/utils": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.9.tgz", + "integrity": "sha512-A51o8ymO5PpqlWNnBP9ZHPXDIpuMtTLlGSjN7la4US+LJzoUMyhwjA5QXlm39JexgwHKW4Xjs8Z2d3dLCXOeuA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" + "dependencies": { + "@vitest/pretty-format": "4.1.9", + "convert-source-map": "^2.0.0", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "packages/craftcms-garnish/node_modules/@esbuild/linux-mips64el": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz", - "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==", - "cpu": [ - "mips64el" - ], + "packages/craftcms-garnish/node_modules/chai": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], "engines": { "node": ">=18" } }, - "packages/craftcms-garnish/node_modules/@esbuild/linux-ppc64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz", - "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==", - "cpu": [ - "ppc64" - ], + "packages/craftcms-garnish/node_modules/es-module-lexer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz", + "integrity": "sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } + "license": "MIT" }, - "packages/craftcms-garnish/node_modules/@esbuild/linux-riscv64": { + "packages/craftcms-garnish/node_modules/esbuild": { "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz", - "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==", - "cpu": [ - "riscv64" - ], + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz", + "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==", "dev": true, + "hasInstallScript": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "bin": { + "esbuild": "bin/esbuild" + }, "engines": { "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.7", + "@esbuild/android-arm": "0.27.7", + "@esbuild/android-arm64": "0.27.7", + "@esbuild/android-x64": "0.27.7", + "@esbuild/darwin-arm64": "0.27.7", + "@esbuild/darwin-x64": "0.27.7", + "@esbuild/freebsd-arm64": "0.27.7", + "@esbuild/freebsd-x64": "0.27.7", + "@esbuild/linux-arm": "0.27.7", + "@esbuild/linux-arm64": "0.27.7", + "@esbuild/linux-ia32": "0.27.7", + "@esbuild/linux-loong64": "0.27.7", + "@esbuild/linux-mips64el": "0.27.7", + "@esbuild/linux-ppc64": "0.27.7", + "@esbuild/linux-riscv64": "0.27.7", + "@esbuild/linux-s390x": "0.27.7", + "@esbuild/linux-x64": "0.27.7", + "@esbuild/netbsd-arm64": "0.27.7", + "@esbuild/netbsd-x64": "0.27.7", + "@esbuild/openbsd-arm64": "0.27.7", + "@esbuild/openbsd-x64": "0.27.7", + "@esbuild/openharmony-arm64": "0.27.7", + "@esbuild/sunos-x64": "0.27.7", + "@esbuild/win32-arm64": "0.27.7", + "@esbuild/win32-ia32": "0.27.7", + "@esbuild/win32-x64": "0.27.7" } }, - "packages/craftcms-garnish/node_modules/@esbuild/linux-s390x": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz", - "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==", - "cpu": [ - "s390x" - ], + "packages/craftcms-garnish/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, + "hasInstallScript": true, "license": "MIT", "optional": true, "os": [ - "linux" + "darwin" ], "engines": { - "node": ">=18" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "packages/craftcms-garnish/node_modules/@esbuild/linux-x64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz", - "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==", - "cpu": [ - "x64" - ], + "packages/craftcms-garnish/node_modules/semver": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.4.tgz", + "integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">=18" + "node": ">=10" } }, - "packages/craftcms-garnish/node_modules/@esbuild/netbsd-arm64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz", - "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==", - "cpu": [ - "arm64" - ], + "packages/craftcms-garnish/node_modules/tinyrainbow": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz", + "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], "engines": { - "node": ">=18" + "node": ">=14.0.0" } }, - "packages/craftcms-garnish/node_modules/@esbuild/netbsd-x64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz", - "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "packages/craftcms-garnish/node_modules/@esbuild/openbsd-arm64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz", - "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "packages/craftcms-garnish/node_modules/@esbuild/openbsd-x64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz", - "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "packages/craftcms-garnish/node_modules/@esbuild/openharmony-arm64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz", - "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, - "packages/craftcms-garnish/node_modules/@esbuild/sunos-x64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz", - "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "packages/craftcms-garnish/node_modules/@esbuild/win32-arm64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz", - "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "packages/craftcms-garnish/node_modules/@esbuild/win32-ia32": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz", - "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "packages/craftcms-garnish/node_modules/@esbuild/win32-x64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz", - "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "packages/craftcms-garnish/node_modules/@vitest/coverage-v8": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.9.tgz", - "integrity": "sha512-G9/lgqibheLVBDRuya45EbsEXTYcWoSG+TLg7i2axuzx0Eq62eXn+aWXyaVdV5vKvFSWd6ywcX8hA7la9Pvu8g==", + "packages/craftcms-garnish/node_modules/tsdown": { + "version": "0.21.10", + "resolved": "https://registry.npmjs.org/tsdown/-/tsdown-0.21.10.tgz", + "integrity": "sha512-3wk73yBhZe/wX7REqSdivNQ84TDs1mJ+IlnzrrEREP70xlJ/AEIzqaI04l/TzMKVIdkTdC3CPaADn2Lk/0SkdA==", "dev": true, "license": "MIT", "dependencies": { - "@bcoe/v8-coverage": "^1.0.2", - "@vitest/utils": "4.1.9", - "ast-v8-to-istanbul": "^1.0.0", - "istanbul-lib-coverage": "^3.2.2", - "istanbul-lib-report": "^3.0.1", - "istanbul-reports": "^3.2.0", - "magicast": "^0.5.2", + "ansis": "^4.2.0", + "cac": "^7.0.0", + "defu": "^6.1.7", + "empathic": "^2.0.0", + "hookable": "^6.1.1", + "import-without-cache": "^0.3.3", "obug": "^2.1.1", - "std-env": "^4.0.0-rc.1", - "tinyrainbow": "^3.1.0" + "picomatch": "^4.0.4", + "rolldown": "1.0.0-rc.17", + "rolldown-plugin-dts": "^0.23.2", + "semver": "^7.7.4", + "tinyexec": "^1.1.1", + "tinyglobby": "^0.2.16", + "tree-kill": "^1.2.2", + "unconfig-core": "^7.5.0", + "unrun": "^0.2.37" + }, + "bin": { + "tsdown": "dist/run.mjs" + }, + "engines": { + "node": ">=20.19.0" }, "funding": { - "url": "https://opencollective.com/vitest" + "url": "https://github.com/sponsors/sxzz" }, "peerDependencies": { - "@vitest/browser": "4.1.9", - "vitest": "4.1.9" + "@arethetypeswrong/core": "^0.18.1", + "@tsdown/css": "0.21.10", + "@tsdown/exe": "0.21.10", + "@vitejs/devtools": "*", + "publint": "^0.3.0", + "typescript": "^5.0.0 || ^6.0.0", + "unplugin-unused": "^0.5.0" }, "peerDependenciesMeta": { - "@vitest/browser": { + "@arethetypeswrong/core": { + "optional": true + }, + "@tsdown/css": { + "optional": true + }, + "@tsdown/exe": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "publint": { + "optional": true + }, + "typescript": { + "optional": true + }, + "unplugin-unused": { "optional": true } } }, - "packages/craftcms-garnish/node_modules/@vitest/expect": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.9.tgz", - "integrity": "sha512-vl/rYsUKcBr3SnQn166+XR5ZQcgMx3DQhFWdfli/cWpLnLUmbxZvyrJZotLFUryib+LtArYMSTJ5RbQ57ZqrlA==", + "packages/craftcms-garnish/node_modules/vite": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.5.tgz", + "integrity": "sha512-KuOaNhcnGFN2zIPGA7wRmzF+lJA1sea7rHq17aiJ++9lzY1WWG6Jpwqwe1KNbRVPIqHmr8GLYx7jbrQcN/7/ww==", "dev": true, "license": "MIT", "dependencies": { - "@standard-schema/spec": "^1.1.0", - "@types/chai": "^5.2.2", - "@vitest/spy": "4.1.9", - "@vitest/utils": "4.1.9", - "chai": "^6.2.2", - "tinyrainbow": "^3.1.0" + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "packages/craftcms-garnish/node_modules/@vitest/mocker": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.9.tgz", - "integrity": "sha512-EVkXzBjrPGM+cK8/ANWgBrkUCfJfb38/EfTSO8h7pWvKkyPkpWxvR7BkD2MyItMF62C97zAEoqdpUixwR/e+Rw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/spy": "4.1.9", - "estree-walker": "^3.0.3", - "magic-string": "^0.30.21" + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" }, "funding": { - "url": "https://opencollective.com/vitest" + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" }, "peerDependencies": { - "msw": "^2.4.9", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { - "msw": { + "@types/node": { "optional": true }, - "vite": { + "jiti": { "optional": true - } - } - }, - "packages/craftcms-garnish/node_modules/@vitest/pretty-format": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.9.tgz", - "integrity": "sha512-s0iufns3iIFitdgm+YR7g1whCAaGtXz459VS9/PqyKDEEFgYIhsHOQmXgIgDuYCt7DeQmiZT0Qe2OA2p4ZPu5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "packages/craftcms-garnish/node_modules/@vitest/runner": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.9.tgz", - "integrity": "sha512-KXLMDtc7oe70+3mJfGrPUWPesswH+3sTxAMAMl8DG7I8IUQT4XW718dY5ID3vPUcmlu27CcKfY4P3h3I29SLJg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/utils": "4.1.9", - "pathe": "^2.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } } }, - "packages/craftcms-garnish/node_modules/@vitest/snapshot": { + "packages/craftcms-garnish/node_modules/vitest": { "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.9.tgz", - "integrity": "sha512-Jc7RKGNBo8Z28WYIm0Niej4xdSPByRf6mU58VpHQkd6Zh05rlnA+twjbK5HyeIGHxrzsc3mJgS43uM0CZKzaIA==", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.9.tgz", + "integrity": "sha512-nE3/LEyc0z87uHYLZebqCUOaJr2hdtuPp7BQ4BosVFnfltxgAvMG08NyrSGlPpOUWvR27c5flSmYFTNr78L9GQ==", "dev": true, "license": "MIT", "dependencies": { + "@vitest/expect": "4.1.9", + "@vitest/mocker": "4.1.9", "@vitest/pretty-format": "4.1.9", + "@vitest/runner": "4.1.9", + "@vitest/snapshot": "4.1.9", + "@vitest/spy": "4.1.9", "@vitest/utils": "4.1.9", + "es-module-lexer": "^2.0.0", + "expect-type": "^1.3.0", "magic-string": "^0.30.21", - "pathe": "^2.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "packages/craftcms-garnish/node_modules/@vitest/spy": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.9.tgz", - "integrity": "sha512-fHpsS6mIi+PiEW+vcRVOMkX1oSaPKne3VOclSFICPcGOmfKgXPU5iAah+wcNcj2xPrCCmfq99IDGf+EojhhvhA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "packages/craftcms-garnish/node_modules/@vitest/utils": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.9.tgz", - "integrity": "sha512-A51o8ymO5PpqlWNnBP9ZHPXDIpuMtTLlGSjN7la4US+LJzoUMyhwjA5QXlm39JexgwHKW4Xjs8Z2d3dLCXOeuA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "4.1.9", - "convert-source-map": "^2.0.0", - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "packages/craftcms-garnish/node_modules/chai": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", - "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "packages/craftcms-garnish/node_modules/es-module-lexer": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz", - "integrity": "sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==", - "dev": true, - "license": "MIT" - }, - "packages/craftcms-garnish/node_modules/esbuild": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz", - "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.27.7", - "@esbuild/android-arm": "0.27.7", - "@esbuild/android-arm64": "0.27.7", - "@esbuild/android-x64": "0.27.7", - "@esbuild/darwin-arm64": "0.27.7", - "@esbuild/darwin-x64": "0.27.7", - "@esbuild/freebsd-arm64": "0.27.7", - "@esbuild/freebsd-x64": "0.27.7", - "@esbuild/linux-arm": "0.27.7", - "@esbuild/linux-arm64": "0.27.7", - "@esbuild/linux-ia32": "0.27.7", - "@esbuild/linux-loong64": "0.27.7", - "@esbuild/linux-mips64el": "0.27.7", - "@esbuild/linux-ppc64": "0.27.7", - "@esbuild/linux-riscv64": "0.27.7", - "@esbuild/linux-s390x": "0.27.7", - "@esbuild/linux-x64": "0.27.7", - "@esbuild/netbsd-arm64": "0.27.7", - "@esbuild/netbsd-x64": "0.27.7", - "@esbuild/openbsd-arm64": "0.27.7", - "@esbuild/openbsd-x64": "0.27.7", - "@esbuild/openharmony-arm64": "0.27.7", - "@esbuild/sunos-x64": "0.27.7", - "@esbuild/win32-arm64": "0.27.7", - "@esbuild/win32-ia32": "0.27.7", - "@esbuild/win32-x64": "0.27.7" - } - }, - "packages/craftcms-garnish/node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "packages/craftcms-garnish/node_modules/semver": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.4.tgz", - "integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "packages/craftcms-garnish/node_modules/tinyrainbow": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz", - "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "packages/craftcms-garnish/node_modules/tsdown": { - "version": "0.21.10", - "resolved": "https://registry.npmjs.org/tsdown/-/tsdown-0.21.10.tgz", - "integrity": "sha512-3wk73yBhZe/wX7REqSdivNQ84TDs1mJ+IlnzrrEREP70xlJ/AEIzqaI04l/TzMKVIdkTdC3CPaADn2Lk/0SkdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansis": "^4.2.0", - "cac": "^7.0.0", - "defu": "^6.1.7", - "empathic": "^2.0.0", - "hookable": "^6.1.1", - "import-without-cache": "^0.3.3", "obug": "^2.1.1", - "picomatch": "^4.0.4", - "rolldown": "1.0.0-rc.17", - "rolldown-plugin-dts": "^0.23.2", - "semver": "^7.7.4", - "tinyexec": "^1.1.1", - "tinyglobby": "^0.2.16", - "tree-kill": "^1.2.2", - "unconfig-core": "^7.5.0", - "unrun": "^0.2.37" + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "std-env": "^4.0.0-rc.1", + "tinybench": "^2.9.0", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.1.0", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", + "why-is-node-running": "^2.3.0" }, "bin": { - "tsdown": "dist/run.mjs" + "vitest": "vitest.mjs" }, "engines": { - "node": ">=20.19.0" + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" }, "funding": { - "url": "https://github.com/sponsors/sxzz" + "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "@arethetypeswrong/core": "^0.18.1", - "@tsdown/css": "0.21.10", - "@tsdown/exe": "0.21.10", - "@vitejs/devtools": "*", - "publint": "^0.3.0", - "typescript": "^5.0.0 || ^6.0.0", - "unplugin-unused": "^0.5.0" + "@edge-runtime/vm": "*", + "@opentelemetry/api": "^1.9.0", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.1.9", + "@vitest/browser-preview": "4.1.9", + "@vitest/browser-webdriverio": "4.1.9", + "@vitest/coverage-istanbul": "4.1.9", + "@vitest/coverage-v8": "4.1.9", + "@vitest/ui": "4.1.9", + "happy-dom": "*", + "jsdom": "*", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { - "@arethetypeswrong/core": { + "@edge-runtime/vm": { "optional": true }, - "@tsdown/css": { + "@opentelemetry/api": { "optional": true }, - "@tsdown/exe": { + "@types/node": { "optional": true }, - "@vitejs/devtools": { + "@vitest/browser-playwright": { "optional": true }, - "publint": { + "@vitest/browser-preview": { "optional": true }, - "typescript": { - "optional": true - }, - "unplugin-unused": { - "optional": true - } - } - }, - "packages/craftcms-garnish/node_modules/vite": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.5.tgz", - "integrity": "sha512-KuOaNhcnGFN2zIPGA7wRmzF+lJA1sea7rHq17aiJ++9lzY1WWG6Jpwqwe1KNbRVPIqHmr8GLYx7jbrQcN/7/ww==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.27.0", - "fdir": "^6.5.0", - "picomatch": "^4.0.3", - "postcss": "^8.5.6", - "rollup": "^4.43.0", - "tinyglobby": "^0.2.15" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^20.19.0 || >=22.12.0", - "jiti": ">=1.21.0", - "less": "^4.0.0", - "lightningcss": "^1.21.0", - "sass": "^1.70.0", - "sass-embedded": "^1.70.0", - "stylus": ">=0.54.8", - "sugarss": "^5.0.0", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "packages/craftcms-garnish/node_modules/vitest": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.9.tgz", - "integrity": "sha512-nE3/LEyc0z87uHYLZebqCUOaJr2hdtuPp7BQ4BosVFnfltxgAvMG08NyrSGlPpOUWvR27c5flSmYFTNr78L9GQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/expect": "4.1.9", - "@vitest/mocker": "4.1.9", - "@vitest/pretty-format": "4.1.9", - "@vitest/runner": "4.1.9", - "@vitest/snapshot": "4.1.9", - "@vitest/spy": "4.1.9", - "@vitest/utils": "4.1.9", - "es-module-lexer": "^2.0.0", - "expect-type": "^1.3.0", - "magic-string": "^0.30.21", - "obug": "^2.1.1", - "pathe": "^2.0.3", - "picomatch": "^4.0.3", - "std-env": "^4.0.0-rc.1", - "tinybench": "^2.9.0", - "tinyexec": "^1.0.2", - "tinyglobby": "^0.2.15", - "tinyrainbow": "^3.1.0", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", - "why-is-node-running": "^2.3.0" - }, - "bin": { - "vitest": "vitest.mjs" - }, - "engines": { - "node": "^20.0.0 || ^22.0.0 || >=24.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@edge-runtime/vm": "*", - "@opentelemetry/api": "^1.9.0", - "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "4.1.9", - "@vitest/browser-preview": "4.1.9", - "@vitest/browser-webdriverio": "4.1.9", - "@vitest/coverage-istanbul": "4.1.9", - "@vitest/coverage-v8": "4.1.9", - "@vitest/ui": "4.1.9", - "happy-dom": "*", - "jsdom": "*", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "@edge-runtime/vm": { - "optional": true - }, - "@opentelemetry/api": { - "optional": true - }, - "@types/node": { - "optional": true - }, - "@vitest/browser-playwright": { - "optional": true - }, - "@vitest/browser-preview": { - "optional": true - }, - "@vitest/browser-webdriverio": { + "@vitest/browser-webdriverio": { "optional": true }, "@vitest/coverage-istanbul": { @@ -25308,8 +24842,8 @@ "name": "@craftcms/legacy", "dependencies": { "@benmajor/jquery-touch-events": "^2.0.3", - "@craftcms/cp": "file:../craftcms-cp", "@craftcms/sass": "file:../craftcms-sass", + "@craftcms/ui": "file:../craftcms-ui", "@craftcms/vue": "file:../craftcms-vue", "@floating-ui/dom": "^1.7.6", "@selectize/selectize": "selectize/selectize.js#master", @@ -25363,534 +24897,1000 @@ "vue-apexcharts": "^1.7.0" }, "engines": { - "node": ">=20" + "node": ">=20" + }, + "optionalDependencies": { + "@awesome.me/kit-ddaed3f5c5": "^1.0.74" + } + }, + "packages/craftcms-legacy/node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.5", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "packages/craftcms-legacy/node_modules/@csstools/css-tokenizer": { + "version": "3.0.4", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "packages/craftcms-legacy/node_modules/@csstools/media-query-list-parser": { + "version": "4.0.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "packages/craftcms-legacy/node_modules/@vue/compiler-sfc": { + "version": "2.7.16", + "dependencies": { + "@babel/parser": "^7.23.5", + "postcss": "^8.4.14", + "source-map": "^0.6.1" + }, + "optionalDependencies": { + "prettier": "^1.18.2 || ^2.0.0" + } + }, + "packages/craftcms-legacy/node_modules/@vue/compiler-sfc/node_modules/prettier": { + "version": "2.8.8", + "license": "MIT", + "optional": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "packages/craftcms-legacy/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "packages/craftcms-legacy/node_modules/balanced-match": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "packages/craftcms-legacy/node_modules/chokidar": { + "version": "3.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "packages/craftcms-legacy/node_modules/globby": { + "version": "11.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/craftcms-legacy/node_modules/globby/node_modules/ignore": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "packages/craftcms-legacy/node_modules/html-tags": { + "version": "3.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/craftcms-legacy/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "packages/craftcms-legacy/node_modules/jiti": { + "version": "1.21.7", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "packages/craftcms-legacy/node_modules/mathml-tag-names": { + "version": "2.1.3", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "packages/craftcms-legacy/node_modules/meow": { + "version": "13.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/craftcms-legacy/node_modules/pkg-dir": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "packages/craftcms-legacy/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "packages/craftcms-legacy/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "packages/craftcms-legacy/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "packages/craftcms-legacy/node_modules/stylelint": { + "version": "16.26.1", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-syntax-patches-for-csstree": "^1.0.19", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3", + "@csstools/selector-specificity": "^5.0.0", + "@dual-bundle/import-meta-resolve": "^4.2.1", + "balanced-match": "^2.0.0", + "colord": "^2.9.3", + "cosmiconfig": "^9.0.0", + "css-functions-list": "^3.2.3", + "css-tree": "^3.1.0", + "debug": "^4.4.3", + "fast-glob": "^3.3.3", + "fastest-levenshtein": "^1.0.16", + "file-entry-cache": "^11.1.1", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.3.1", + "ignore": "^7.0.5", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.37.0", + "mathml-tag-names": "^2.1.3", + "meow": "^13.2.0", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.5.6", + "postcss-resolve-nested-selector": "^0.1.6", + "postcss-safe-parser": "^7.0.1", + "postcss-selector-parser": "^7.1.0", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "supports-hyperlinks": "^3.2.0", + "svg-tags": "^1.0.0", + "table": "^6.9.0", + "write-file-atomic": "^5.0.1" + }, + "bin": { + "stylelint": "bin/stylelint.mjs" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "packages/craftcms-legacy/node_modules/stylelint-config-recommended": { + "version": "14.0.1", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "stylelint": "^16.1.0" + } + }, + "packages/craftcms-legacy/node_modules/stylelint-config-recommended-scss": { + "version": "14.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-scss": "^4.0.9", + "stylelint-config-recommended": "^14.0.1", + "stylelint-scss": "^6.4.0" + }, + "engines": { + "node": ">=18.12.0" }, - "optionalDependencies": { - "@awesome.me/kit-ddaed3f5c5": "^1.0.74" + "peerDependencies": { + "postcss": "^8.3.3", + "stylelint": "^16.6.1" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } } }, - "packages/craftcms-legacy/node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.5", + "packages/craftcms-legacy/node_modules/stylelint-config-standard": { + "version": "36.0.1", "dev": true, "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/csstools" + "type": "opencollective", + "url": "https://opencollective.com/stylelint" }, { - "type": "opencollective", - "url": "https://opencollective.com/csstools" + "type": "github", + "url": "https://github.com/sponsors/stylelint" } ], "license": "MIT", + "dependencies": { + "stylelint-config-recommended": "^14.0.1" + }, "engines": { - "node": ">=18" + "node": ">=18.12.0" }, "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.4" + "stylelint": "^16.1.0" } }, - "packages/craftcms-legacy/node_modules/@csstools/css-tokenizer": { - "version": "3.0.4", + "packages/craftcms-legacy/node_modules/stylelint-config-standard-scss": { + "version": "13.1.0", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], "license": "MIT", + "dependencies": { + "stylelint-config-recommended-scss": "^14.0.0", + "stylelint-config-standard": "^36.0.0" + }, "engines": { - "node": ">=18" + "node": ">=18.12.0" + }, + "peerDependencies": { + "postcss": "^8.3.3", + "stylelint": "^16.3.1" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } } }, - "packages/craftcms-legacy/node_modules/@csstools/media-query-list-parser": { - "version": "4.0.3", + "packages/craftcms-legacy/node_modules/stylelint-scss": { + "version": "6.14.0", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], "license": "MIT", + "dependencies": { + "css-tree": "^3.0.1", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.37.0", + "mdn-data": "^2.25.0", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.6", + "postcss-selector-parser": "^7.1.1", + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=18" + "node": ">=18.12.0" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" + "stylelint": "^16.8.2" } }, - "packages/craftcms-legacy/node_modules/@vue/compiler-sfc": { - "version": "2.7.16", + "packages/craftcms-legacy/node_modules/tailwindcss": { + "version": "3.4.19", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/parser": "^7.23.5", - "postcss": "^8.4.14", - "source-map": "^0.6.1" + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.7", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" }, - "optionalDependencies": { - "prettier": "^1.18.2 || ^2.0.0" + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" } }, - "packages/craftcms-legacy/node_modules/@vue/compiler-sfc/node_modules/prettier": { - "version": "2.8.8", - "license": "MIT", - "optional": true, - "bin": { - "prettier": "bin-prettier.js" + "packages/craftcms-legacy/node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" }, "engines": { "node": ">=10.13.0" + } + }, + "packages/craftcms-legacy/node_modules/tailwindcss/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "engines": { + "node": ">=4" } }, - "packages/craftcms-legacy/node_modules/ansi-regex": { + "packages/craftcms-legacy/node_modules/typescript": { + "version": "5.9.3", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "packages/craftcms-legacy/node_modules/vue": { + "version": "2.7.16", + "license": "MIT", + "dependencies": { + "@vue/compiler-sfc": "2.7.16", + "csstype": "^3.1.0" + } + }, + "packages/craftcms-legacy/node_modules/write-file-atomic": { "version": "5.0.1", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, "engines": { - "node": ">=8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "packages/craftcms-legacy/node_modules/balanced-match": { - "version": "2.0.0", + "packages/craftcms-playwright": { + "name": "@craftcms/playwright", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@playwright/test": "^1.47.0", + "events": "^3.3.0", + "signale": "^1.4.0" + }, + "bin": { + "craft-playwright": "src/cli.js" + } + }, + "packages/craftcms-sass": { + "name": "@craftcms/sass", + "version": "1.1.0", + "license": "MIT" + }, + "packages/craftcms-ui": { + "name": "@craftcms/ui", + "version": "0.0.0", + "license": "MIT", + "dependencies": { + "@chromatic-com/storybook": "^5.1.2", + "@formatjs/intl-durationformat": "^0.10.8", + "@github/relative-time-element": "^5.0.0", + "@simplewebauthn/browser": "^13.3.0", + "@vitest/browser-playwright": "^4.1.5", + "axios": "^1.17.0" + }, + "devDependencies": { + "@adobe/leonardo-contrast-colors": "^1.1.0", + "@arethetypeswrong/cli": "^0.18.2", + "@custom-elements-manifest/analyzer": "^0.11.0", + "@lion/ui": "^0.16.1", + "@shoelace-style/shoelace": "^2.20.1", + "@storybook/addon-a11y": "^10.4.1", + "@storybook/addon-docs": "^10.4.1", + "@storybook/addon-themes": "^10.4.1", + "@storybook/addon-vitest": "^10.4.1", + "@storybook/web-components-vite": "^10.4.1", + "@total-typescript/tsconfig": "^1.0.4", + "@types/humanize-duration": "^3.27.4", + "@types/jquery": "^4.0.0", + "@types/node": "^25.6.0", + "@vitest/browser": "^4.1.5", + "@vitest/coverage-v8": "^4.1.5", + "@wc-toolkit/storybook-helpers": "^10.3.0", + "del": "^8.0.1", + "dom-accessibility-api": "^0.7.1", + "esbuild": "^0.28.0", + "globby": "^16.2.0", + "happy-dom": "^20.9.0", + "humanize-duration": "^3.33.2", + "lit": "^3.3.2", + "ora": "^9.4.0", + "playwright": "^1.59.1", + "plop": "^4.0.5", + "recursive-copy": "^2.0.14", + "rimraf": "^6.1.3", + "storybook": "^10.4.1", + "tsdown": "^0.21.10", + "typescript": "^6.0.3", + "unplugin-dts": "^1.0.0", + "vite-plugin-dts": "^5.0.0", + "vite-tsconfig-paths": "^6.1.1", + "vitest": "^4.1.5" + }, + "peerDependencies": { + "@lion/ui": "0.x", + "lit": "3.x" + } + }, + "packages/craftcms-ui/node_modules/@types/jquery": { + "version": "4.0.0", "dev": true, "license": "MIT" }, - "packages/craftcms-legacy/node_modules/chokidar": { - "version": "3.6.0", + "packages/craftcms-ui/node_modules/@vitest/coverage-v8": { + "version": "4.1.5", "dev": true, "license": "MIT", "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" + "@bcoe/v8-coverage": "^1.0.2", + "@vitest/utils": "4.1.5", + "ast-v8-to-istanbul": "^1.0.0", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-reports": "^3.2.0", + "magicast": "^0.5.2", + "obug": "^2.1.1", + "std-env": "^4.0.0-rc.1", + "tinyrainbow": "^3.1.0" }, "funding": { - "url": "https://paulmillr.com/funding/" + "url": "https://opencollective.com/vitest" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "peerDependencies": { + "@vitest/browser": "4.1.5", + "vitest": "4.1.5" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } } }, - "packages/craftcms-legacy/node_modules/globby": { - "version": "11.1.0", + "packages/craftcms-ui/node_modules/@vitest/pretty-format": { + "version": "4.1.5", "dev": true, "license": "MIT", "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" + "tinyrainbow": "^3.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/vitest" } }, - "packages/craftcms-legacy/node_modules/globby/node_modules/ignore": { - "version": "5.3.2", + "packages/craftcms-ui/node_modules/@vitest/utils": { + "version": "4.1.5", "dev": true, "license": "MIT", - "engines": { - "node": ">= 4" + "dependencies": { + "@vitest/pretty-format": "4.1.5", + "convert-source-map": "^2.0.0", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "packages/craftcms-legacy/node_modules/html-tags": { - "version": "3.3.1", + "packages/craftcms-ui/node_modules/@wc-toolkit/storybook-helpers": { + "version": "10.3.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "lit": "^2.0.0 || ^3.0.0", + "storybook": ">=10.1.11-0 <11.0.0-0" } }, - "packages/craftcms-legacy/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", + "packages/craftcms-ui/node_modules/balanced-match": { + "version": "4.0.4", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" } }, - "packages/craftcms-legacy/node_modules/jiti": { - "version": "1.21.7", + "packages/craftcms-ui/node_modules/brace-expansion": { + "version": "5.0.5", "dev": true, "license": "MIT", - "bin": { - "jiti": "bin/jiti.js" + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" } }, - "packages/craftcms-legacy/node_modules/mathml-tag-names": { - "version": "2.1.3", + "packages/craftcms-ui/node_modules/chalk": { + "version": "5.6.2", "dev": true, "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "packages/craftcms-legacy/node_modules/meow": { - "version": "13.2.0", + "packages/craftcms-ui/node_modules/cli-spinners": { + "version": "3.3.0", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=18.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/craftcms-legacy/node_modules/pkg-dir": { - "version": "5.0.0", + "packages/craftcms-ui/node_modules/del": { + "version": "8.0.1", "dev": true, "license": "MIT", "dependencies": { - "find-up": "^5.0.0" + "globby": "^14.0.2", + "is-glob": "^4.0.3", + "is-path-cwd": "^3.0.0", + "is-path-inside": "^4.0.0", + "p-map": "^7.0.2", + "presentable-error": "^0.0.1", + "slash": "^5.1.0" }, "engines": { - "node": ">=10" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/craftcms-legacy/node_modules/postcss-selector-parser": { - "version": "7.1.1", + "packages/craftcms-ui/node_modules/dom-accessibility-api": { + "version": "0.7.1", "dev": true, - "license": "MIT", + "license": "MIT" + }, + "packages/craftcms-ui/node_modules/glob": { + "version": "13.0.6", + "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" }, "engines": { - "node": ">=4" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "packages/craftcms-legacy/node_modules/string-width": { - "version": "4.2.3", + "packages/craftcms-ui/node_modules/globby": { + "version": "14.1.0", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.3", + "path-type": "^6.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.3.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/craftcms-legacy/node_modules/strip-ansi": { - "version": "6.0.1", + "packages/craftcms-ui/node_modules/is-interactive": { + "version": "2.0.0", "dev": true, "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/craftcms-legacy/node_modules/stylelint": { - "version": "16.26.1", + "packages/craftcms-ui/node_modules/is-path-cwd": { + "version": "3.0.0", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" - }, - { - "type": "github", - "url": "https://github.com/sponsors/stylelint" - } - ], "license": "MIT", - "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-syntax-patches-for-csstree": "^1.0.19", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/media-query-list-parser": "^4.0.3", - "@csstools/selector-specificity": "^5.0.0", - "@dual-bundle/import-meta-resolve": "^4.2.1", - "balanced-match": "^2.0.0", - "colord": "^2.9.3", - "cosmiconfig": "^9.0.0", - "css-functions-list": "^3.2.3", - "css-tree": "^3.1.0", - "debug": "^4.4.3", - "fast-glob": "^3.3.3", - "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^11.1.1", - "global-modules": "^2.0.0", - "globby": "^11.1.0", - "globjoin": "^0.1.4", - "html-tags": "^3.3.1", - "ignore": "^7.0.5", - "imurmurhash": "^0.1.4", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.37.0", - "mathml-tag-names": "^2.1.3", - "meow": "^13.2.0", - "micromatch": "^4.0.8", - "normalize-path": "^3.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.5.6", - "postcss-resolve-nested-selector": "^0.1.6", - "postcss-safe-parser": "^7.0.1", - "postcss-selector-parser": "^7.1.0", - "postcss-value-parser": "^4.2.0", - "resolve-from": "^5.0.0", - "string-width": "^4.2.3", - "supports-hyperlinks": "^3.2.0", - "svg-tags": "^1.0.0", - "table": "^6.9.0", - "write-file-atomic": "^5.0.1" - }, - "bin": { - "stylelint": "bin/stylelint.mjs" - }, "engines": { - "node": ">=18.12.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/craftcms-legacy/node_modules/stylelint-config-recommended": { - "version": "14.0.1", + "packages/craftcms-ui/node_modules/is-path-inside": { + "version": "4.0.0", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" - }, - { - "type": "github", - "url": "https://github.com/sponsors/stylelint" - } - ], "license": "MIT", "engines": { - "node": ">=18.12.0" + "node": ">=12" }, - "peerDependencies": { - "stylelint": "^16.1.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/craftcms-legacy/node_modules/stylelint-config-recommended-scss": { - "version": "14.1.0", + "packages/craftcms-ui/node_modules/is-unicode-supported": { + "version": "2.1.0", "dev": true, "license": "MIT", - "dependencies": { - "postcss-scss": "^4.0.9", - "stylelint-config-recommended": "^14.0.1", - "stylelint-scss": "^6.4.0" - }, "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "postcss": "^8.3.3", - "stylelint": "^16.6.1" + "node": ">=18" }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/craftcms-legacy/node_modules/stylelint-config-standard": { - "version": "36.0.1", + "packages/craftcms-ui/node_modules/log-symbols": { + "version": "7.0.1", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" - }, - { - "type": "github", - "url": "https://github.com/sponsors/stylelint" - } - ], "license": "MIT", "dependencies": { - "stylelint-config-recommended": "^14.0.1" + "is-unicode-supported": "^2.0.0", + "yoctocolors": "^2.1.1" }, "engines": { - "node": ">=18.12.0" + "node": ">=18" }, - "peerDependencies": { - "stylelint": "^16.1.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/craftcms-legacy/node_modules/stylelint-config-standard-scss": { - "version": "13.1.0", + "packages/craftcms-ui/node_modules/minimatch": { + "version": "10.2.5", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "stylelint-config-recommended-scss": "^14.0.0", - "stylelint-config-standard": "^36.0.0" + "brace-expansion": "^5.0.5" }, "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "postcss": "^8.3.3", - "stylelint": "^16.3.1" + "node": "18 || 20 || >=22" }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "packages/craftcms-legacy/node_modules/stylelint-scss": { - "version": "6.14.0", + "packages/craftcms-ui/node_modules/ora": { + "version": "9.4.0", "dev": true, "license": "MIT", "dependencies": { - "css-tree": "^3.0.1", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.37.0", - "mdn-data": "^2.25.0", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.6", - "postcss-selector-parser": "^7.1.1", - "postcss-value-parser": "^4.2.0" + "chalk": "^5.6.2", + "cli-cursor": "^5.0.0", + "cli-spinners": "^3.2.0", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^2.1.0", + "log-symbols": "^7.0.1", + "stdin-discarder": "^0.3.2", + "string-width": "^8.1.0" }, "engines": { - "node": ">=18.12.0" + "node": ">=20" }, - "peerDependencies": { - "stylelint": "^16.8.2" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/craftcms-legacy/node_modules/tailwindcss": { - "version": "3.4.19", + "packages/craftcms-ui/node_modules/p-map": { + "version": "7.0.4", "dev": true, "license": "MIT", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.6.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.2", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.7", - "lilconfig": "^3.1.3", - "micromatch": "^4.0.8", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.4.47", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", - "postcss-nested": "^6.2.0", - "postcss-selector-parser": "^6.1.2", - "resolve": "^1.22.8", - "sucrase": "^3.35.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, "engines": { - "node": ">=14.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/craftcms-legacy/node_modules/tailwindcss/node_modules/glob-parent": { - "version": "6.0.2", + "packages/craftcms-ui/node_modules/path-scurry": { + "version": "2.0.2", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "is-glob": "^4.0.3" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=10.13.0" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "packages/craftcms-legacy/node_modules/tailwindcss/node_modules/postcss-selector-parser": { - "version": "6.1.2", + "packages/craftcms-ui/node_modules/path-type": { + "version": "6.0.0", "dev": true, "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/craftcms-ui/node_modules/rimraf": { + "version": "6.1.3", + "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" + "glob": "^13.0.3", + "package-json-from-dist": "^1.0.1" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" }, "engines": { - "node": ">=4" + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "packages/craftcms-legacy/node_modules/typescript": { - "version": "5.9.3", - "license": "Apache-2.0", + "packages/craftcms-ui/node_modules/semver": { + "version": "7.7.4", + "dev": true, + "license": "ISC", "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "semver": "bin/semver.js" }, "engines": { - "node": ">=14.17" + "node": ">=10" } }, - "packages/craftcms-legacy/node_modules/vue": { - "version": "2.7.16", + "packages/craftcms-ui/node_modules/slash": { + "version": "5.1.0", + "dev": true, "license": "MIT", - "dependencies": { - "@vue/compiler-sfc": "2.7.16", - "csstype": "^3.1.0" + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/craftcms-legacy/node_modules/write-file-atomic": { - "version": "5.0.1", + "packages/craftcms-ui/node_modules/tinyrainbow": { + "version": "3.1.0", "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" - }, + "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=14.0.0" } }, - "packages/craftcms-playwright": { - "name": "@craftcms/playwright", - "version": "1.0.0", + "packages/craftcms-ui/node_modules/tsdown": { + "version": "0.21.10", + "dev": true, "license": "MIT", "dependencies": { - "@playwright/test": "^1.47.0", - "events": "^3.3.0", - "signale": "^1.4.0" + "ansis": "^4.2.0", + "cac": "^7.0.0", + "defu": "^6.1.7", + "empathic": "^2.0.0", + "hookable": "^6.1.1", + "import-without-cache": "^0.3.3", + "obug": "^2.1.1", + "picomatch": "^4.0.4", + "rolldown": "1.0.0-rc.17", + "rolldown-plugin-dts": "^0.23.2", + "semver": "^7.7.4", + "tinyexec": "^1.1.1", + "tinyglobby": "^0.2.16", + "tree-kill": "^1.2.2", + "unconfig-core": "^7.5.0", + "unrun": "^0.2.37" }, "bin": { - "craft-playwright": "src/cli.js" + "tsdown": "dist/run.mjs" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + }, + "peerDependencies": { + "@arethetypeswrong/core": "^0.18.1", + "@tsdown/css": "0.21.10", + "@tsdown/exe": "0.21.10", + "@vitejs/devtools": "*", + "publint": "^0.3.0", + "typescript": "^5.0.0 || ^6.0.0", + "unplugin-unused": "^0.5.0" + }, + "peerDependenciesMeta": { + "@arethetypeswrong/core": { + "optional": true + }, + "@tsdown/css": { + "optional": true + }, + "@tsdown/exe": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "publint": { + "optional": true + }, + "typescript": { + "optional": true + }, + "unplugin-unused": { + "optional": true + } } }, - "packages/craftcms-sass": { - "name": "@craftcms/sass", - "version": "1.1.0", - "license": "MIT" - }, "packages/craftcms-vue": { "name": "@craftcms/vue", "version": "1.0.1", diff --git a/package.json b/package.json index 83b4fe26317..2ad09a5a9b3 100644 --- a/package.json +++ b/package.json @@ -9,12 +9,12 @@ "prepare": "husky", "prebuild": "npm run fix-prettier", "build": "vite build", - "build:fe": "npm run build:cp && npm run build", + "build:fe": "npm run build:ui && npm run build", "predev": "node scripts/ensure-built.mjs", - "dev": "run-p -l dev:vite dev:cp", + "dev": "run-p -l dev:vite dev:ui", "dev:vite": "vite", "predev:legacy": "node scripts/ensure-built.mjs", - "dev:legacy": "run-p -l dev:vite dev:cp dev:bundles", + "dev:legacy": "run-p -l dev:vite dev:ui dev:bundles", "lint:js": "eslint resources/js/", "lint:styles": "stylelint \"resources/**/*.css\"", "generate:types": "./vendor/bin/testbench typescript:transform", @@ -24,15 +24,15 @@ "build:bundles": "cd ./packages/craftcms-legacy && npm run build", "dev:bundles": "cd ./packages/craftcms-legacy && npm run dev", "serve:bundles": "cd ./packages/craftcms-legacy && npm run serve", - "dev:cp": "cd ./packages/craftcms-cp && npm run dev", - "build:cp": "cd ./packages/craftcms-cp && npm run build", + "dev:ui": "cd ./packages/craftcms-ui && npm run dev", + "build:ui": "cd ./packages/craftcms-ui && npm run build", "build:garnish": "cd ./packages/craftcms-garnish && npm run build", "test": "vitest run", - "test:cp": "cd ./packages/craftcms-cp && npm run test", + "test:ui": "cd ./packages/craftcms-ui && npm run test", "storybook": "storybook dev -p 6007", "build:storybook": "storybook build", - "storybook:cp": "cd ./packages/craftcms-cp && npm run storybook", - "build:all": "npm run build:garnish && npm run build:cp && npm run build:bundles && npm run build" + "storybook:ui": "cd ./packages/craftcms-ui && npm run storybook", + "build:all": "npm run build:garnish && npm run build:ui && npm run build:bundles && npm run build" }, "workspaces": [ "packages/*" @@ -77,7 +77,7 @@ "dependencies": { "@atlaskit/pragmatic-drag-and-drop": "^1.8.1", "@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.1.0", - "@craftcms/cp": "file:packages/craftcms-cp", + "@craftcms/ui": "file:packages/craftcms-ui", "@craftcms/graphiql": "file:packages/craftcms-graphiql", "@headlessui/vue": "^1.7.23", "@inertiajs/vite": "^3.0.3", diff --git a/packages/craftcms-garnish/docs/contributing.md b/packages/craftcms-garnish/docs/contributing.md index b8b1fd3d319..53d365423f3 100644 --- a/packages/craftcms-garnish/docs/contributing.md +++ b/packages/craftcms-garnish/docs/contributing.md @@ -57,7 +57,7 @@ Garnish widgets are **imperative** — `new Modal(container)`, `new DisclosureMenu(trigger)`, `new HUD(trigger, body)` — operating on plain DOM, **not** web components. So we use the **`@storybook/html-vite`** renderer: each story's `render()` returns an `HTMLElement` and instantiates the Garnish class -inside it. (By contrast, `@craftcms/cp` uses `@storybook/web-components-vite` +inside it. (By contrast, `@craftcms/ui` uses `@storybook/web-components-vite` because its components are custom elements.) We otherwise match cp's Storybook: version **10.4.1** and the **docs / a11y / themes** addons. diff --git a/packages/craftcms-legacy/cp/src/css/_compat.scss b/packages/craftcms-legacy/cp/src/css/_compat.scss index 1c6e49acb8a..0947c76657b 100644 --- a/packages/craftcms-legacy/cp/src/css/_compat.scss +++ b/packages/craftcms-legacy/cp/src/css/_compat.scss @@ -2,7 +2,7 @@ * Legacy Token Mapping * * This file maps legacy CSS variables to the new token system defined in - * @craftcms/cp tokens.css. Import this file to provide backwards compatibility + * @craftcms/ui tokens.css. Import this file to provide backwards compatibility * for legacy styles. * * Variables mapped to --CHANGE require manual review and update. diff --git a/packages/craftcms-legacy/cp/src/js/CP.js b/packages/craftcms-legacy/cp/src/js/CP.js index f92faa3ed21..47c3898a668 100644 --- a/packages/craftcms-legacy/cp/src/js/CP.js +++ b/packages/craftcms-legacy/cp/src/js/CP.js @@ -1,8 +1,8 @@ // Import from the deep service module rather than the package root. The root -// entry (`@craftcms/cp`) side-effect-registers WebAwesome components (e.g. +// entry (`@craftcms/ui`) side-effect-registers WebAwesome components (e.g. // `wa-icon`); pulling that into this separately-webpacked legacy bundle causes // a duplicate custom-element registration when it loads alongside the Vite app. -import {QueueService} from '@craftcms/cp/services/Queue'; +import {QueueService} from '@craftcms/ui/services/Queue'; /** global: Craft */ /** global: Garnish */ /** global: $ */ diff --git a/packages/craftcms-legacy/cp/src/js/Craft.js b/packages/craftcms-legacy/cp/src/js/Craft.js index 089947ccf63..1ff729651d2 100644 --- a/packages/craftcms-legacy/cp/src/js/Craft.js +++ b/packages/craftcms-legacy/cp/src/js/Craft.js @@ -1,4 +1,4 @@ -import {formatMessage, t} from '@craftcms/cp/utilities/translate'; +import {formatMessage, t} from '@craftcms/ui/utilities/translate'; import * as d3 from 'd3'; /** global: Craft */ diff --git a/packages/craftcms-legacy/cp/src/js/ElementThumbLoader.js b/packages/craftcms-legacy/cp/src/js/ElementThumbLoader.js index b602e1cf640..4420fbf0984 100644 --- a/packages/craftcms-legacy/cp/src/js/ElementThumbLoader.js +++ b/packages/craftcms-legacy/cp/src/js/ElementThumbLoader.js @@ -1,8 +1,8 @@ -import {ThumbnailLoader} from '@craftcms/cp/utilities/thumbnail-loader'; +import {ThumbnailLoader} from '@craftcms/ui/utilities/thumbnail-loader'; /** global: Craft */ /** - * Legacy `Craft.ElementThumbLoader` — a thin bridge over `@craftcms/cp`'s + * Legacy `Craft.ElementThumbLoader` — a thin bridge over `@craftcms/ui`'s * `ThumbnailLoader` (see the package's `components/thumbnail-loader/README.md`). * * Callers (`Craft.cp.elementThumbLoader`, element index views, slideouts, diff --git a/packages/craftcms-legacy/package.json b/packages/craftcms-legacy/package.json index 48cff937e2e..600bb22470c 100644 --- a/packages/craftcms-legacy/package.json +++ b/packages/craftcms-legacy/package.json @@ -35,7 +35,7 @@ }, "dependencies": { "@benmajor/jquery-touch-events": "^2.0.3", - "@craftcms/cp": "file:../craftcms-cp", + "@craftcms/ui": "file:../craftcms-ui", "@craftcms/sass": "file:../craftcms-sass", "@craftcms/vue": "file:../craftcms-vue", "@floating-ui/dom": "^1.7.6", diff --git a/packages/craftcms-cp/.gitignore b/packages/craftcms-ui/.gitignore similarity index 100% rename from packages/craftcms-cp/.gitignore rename to packages/craftcms-ui/.gitignore diff --git a/packages/craftcms-cp/.nvmrc b/packages/craftcms-ui/.nvmrc similarity index 100% rename from packages/craftcms-cp/.nvmrc rename to packages/craftcms-ui/.nvmrc diff --git a/packages/craftcms-cp/.prettierignore b/packages/craftcms-ui/.prettierignore similarity index 100% rename from packages/craftcms-cp/.prettierignore rename to packages/craftcms-ui/.prettierignore diff --git a/packages/craftcms-cp/.storybook/main.ts b/packages/craftcms-ui/.storybook/main.ts similarity index 100% rename from packages/craftcms-cp/.storybook/main.ts rename to packages/craftcms-ui/.storybook/main.ts diff --git a/packages/craftcms-cp/.storybook/preview.css b/packages/craftcms-ui/.storybook/preview.css similarity index 100% rename from packages/craftcms-cp/.storybook/preview.css rename to packages/craftcms-ui/.storybook/preview.css diff --git a/packages/craftcms-cp/.storybook/preview.ts b/packages/craftcms-ui/.storybook/preview.ts similarity index 100% rename from packages/craftcms-cp/.storybook/preview.ts rename to packages/craftcms-ui/.storybook/preview.ts diff --git a/packages/craftcms-cp/.storybook/vitest.setup.ts b/packages/craftcms-ui/.storybook/vitest.setup.ts similarity index 100% rename from packages/craftcms-cp/.storybook/vitest.setup.ts rename to packages/craftcms-ui/.storybook/vitest.setup.ts diff --git a/packages/craftcms-cp/README.md b/packages/craftcms-ui/README.md similarity index 85% rename from packages/craftcms-cp/README.md rename to packages/craftcms-ui/README.md index 49c0a0d24a2..c36d2775907 100644 --- a/packages/craftcms-cp/README.md +++ b/packages/craftcms-ui/README.md @@ -1,4 +1,4 @@ -# @craftcms/cp +# @craftcms/ui Web Components library for Craft CMS Control Panel UI. @@ -13,7 +13,7 @@ Web Components library for Craft CMS Control Panel UI. ## Installation ```bash -npm install @craftcms/cp +npm install @craftcms/ui ``` ## Usage @@ -21,7 +21,7 @@ npm install @craftcms/cp ### Importing Components ```js -import '@craftcms/cp'; +import '@craftcms/ui'; ``` This imports all components and makes them available as custom elements with the `craft-` prefix. @@ -29,7 +29,7 @@ This imports all components and makes them available as custom elements with the ### Importing Styles ```css -@import '@craftcms/cp'; +@import '@craftcms/ui'; ``` This will import all the styles for all components. You'll have to be using some kind of bundler for this to work. @@ -53,7 +53,7 @@ This will import all the styles for all components. You'll have to be using some You can import utility functions directly: ```js -import {t, formatNumber, actionClient, apiClient} from '@craftcms/cp'; +import {t, formatNumber, actionClient, apiClient} from '@craftcms/ui'; // Translation const message = t('app', 'Welcome'); @@ -68,8 +68,8 @@ const response = await apiClient.get('/api/entries'); Individual utilities can also be imported: ```js -import {t} from '@craftcms/cp/utilities/translate'; -import {formatNumber} from '@craftcms/cp/utilities/format'; +import {t} from '@craftcms/ui/utilities/translate'; +import {formatNumber} from '@craftcms/ui/utilities/format'; ``` ## Utilities @@ -77,7 +77,7 @@ import {formatNumber} from '@craftcms/cp/utilities/format'; ### API Clients ```js -import {actionClient, apiClient} from '@craftcms/cp'; +import {actionClient, apiClient} from '@craftcms/ui'; // Controller actions await actionClient.post('users/save-user', data); @@ -89,7 +89,7 @@ await apiClient.get('/api/entries'); ### Translation ```js -import {t, formatMessage} from '@craftcms/cp'; +import {t, formatMessage} from '@craftcms/ui'; t('category', 'message'); formatMessage('Hello {name}', {name: 'World'}); @@ -98,7 +98,7 @@ formatMessage('Hello {name}', {name: 'World'}); ### Formatting ```js -import {formatNumber} from '@craftcms/cp'; +import {formatNumber} from '@craftcms/ui'; formatNumber(1234.56); // Locale-aware number formatting ``` @@ -106,7 +106,7 @@ formatNumber(1234.56); // Locale-aware number formatting ### Cookie Utilities ```js -import {getCookie, setCookie, deleteCookie} from '@craftcms/cp'; +import {getCookie, setCookie, deleteCookie} from '@craftcms/ui'; setCookie('name', 'value', 7); // expires in 7 days const value = getCookie('name'); diff --git a/packages/craftcms-cp/custom-elements-manifest.config.mjs b/packages/craftcms-ui/custom-elements-manifest.config.mjs similarity index 100% rename from packages/craftcms-cp/custom-elements-manifest.config.mjs rename to packages/craftcms-ui/custom-elements-manifest.config.mjs diff --git a/packages/craftcms-cp/custom-elements.json b/packages/craftcms-ui/custom-elements.json similarity index 100% rename from packages/craftcms-cp/custom-elements.json rename to packages/craftcms-ui/custom-elements.json diff --git a/packages/craftcms-cp/package.json b/packages/craftcms-ui/package.json similarity index 99% rename from packages/craftcms-cp/package.json rename to packages/craftcms-ui/package.json index 9158dd3a9a7..f0e87f038cd 100644 --- a/packages/craftcms-cp/package.json +++ b/packages/craftcms-ui/package.json @@ -1,5 +1,5 @@ { - "name": "@craftcms/cp", + "name": "@craftcms/ui", "version": "0.0.0", "description": "CP Components for Craft CMS", "type": "module", diff --git a/packages/craftcms-cp/scripts/build.js b/packages/craftcms-ui/scripts/build.js similarity index 98% rename from packages/craftcms-cp/scripts/build.js rename to packages/craftcms-ui/scripts/build.js index 5abe1915977..680cb1f3244 100755 --- a/packages/craftcms-cp/scripts/build.js +++ b/packages/craftcms-ui/scripts/build.js @@ -10,7 +10,7 @@ import {deleteAsync} from 'del'; import createVueWrappers from './generate-vue-wrappers.js'; import createColors from './generate-colors.js'; -const spinner = ora({text: '@craftcms/cp', color: 'red'}).start(); +const spinner = ora({text: '@craftcms/ui', color: 'red'}).start(); const isDeveloping = process.argv.includes('--develop'); async function cleanup() { diff --git a/packages/craftcms-cp/scripts/generate-color-palette.js b/packages/craftcms-ui/scripts/generate-color-palette.js similarity index 100% rename from packages/craftcms-cp/scripts/generate-color-palette.js rename to packages/craftcms-ui/scripts/generate-color-palette.js diff --git a/packages/craftcms-cp/scripts/generate-colors.js b/packages/craftcms-ui/scripts/generate-colors.js similarity index 100% rename from packages/craftcms-cp/scripts/generate-colors.js rename to packages/craftcms-ui/scripts/generate-colors.js diff --git a/packages/craftcms-cp/scripts/generate-vue-wrappers.js b/packages/craftcms-ui/scripts/generate-vue-wrappers.js similarity index 99% rename from packages/craftcms-cp/scripts/generate-vue-wrappers.js rename to packages/craftcms-ui/scripts/generate-vue-wrappers.js index a08a728fe18..1030fdbf836 100644 --- a/packages/craftcms-cp/scripts/generate-vue-wrappers.js +++ b/packages/craftcms-ui/scripts/generate-vue-wrappers.js @@ -5,7 +5,7 @@ * 1. Vue SFC wrappers for Lion-based form components (src/vue/) * 2. Vue type augmentations for ALL craft-* web components (src/vue/craft-elements.d.ts) * - * Usage (from packages/craftcms-cp/): + * Usage (from packages/craftcms-ui/): * node scripts/generate-vue-wrappers.js * * The generated wrappers handle v-model bridging between Vue's reactivity system and diff --git a/packages/craftcms-cp/scripts/utils.js b/packages/craftcms-ui/scripts/utils.js similarity index 100% rename from packages/craftcms-cp/scripts/utils.js rename to packages/craftcms-ui/scripts/utils.js diff --git a/packages/craftcms-cp/src/actions/index.ts b/packages/craftcms-ui/src/actions/index.ts similarity index 100% rename from packages/craftcms-cp/src/actions/index.ts rename to packages/craftcms-ui/src/actions/index.ts diff --git a/packages/craftcms-cp/src/components/action-item/action-item.stories.ts b/packages/craftcms-ui/src/components/action-item/action-item.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/action-item/action-item.stories.ts rename to packages/craftcms-ui/src/components/action-item/action-item.stories.ts diff --git a/packages/craftcms-cp/src/components/action-item/action-item.styles.ts b/packages/craftcms-ui/src/components/action-item/action-item.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/action-item/action-item.styles.ts rename to packages/craftcms-ui/src/components/action-item/action-item.styles.ts diff --git a/packages/craftcms-cp/src/components/action-item/action-item.ts b/packages/craftcms-ui/src/components/action-item/action-item.ts similarity index 100% rename from packages/craftcms-cp/src/components/action-item/action-item.ts rename to packages/craftcms-ui/src/components/action-item/action-item.ts diff --git a/packages/craftcms-cp/src/components/action-menu/action-menu.stories.ts b/packages/craftcms-ui/src/components/action-menu/action-menu.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/action-menu/action-menu.stories.ts rename to packages/craftcms-ui/src/components/action-menu/action-menu.stories.ts diff --git a/packages/craftcms-cp/src/components/action-menu/action-menu.ts b/packages/craftcms-ui/src/components/action-menu/action-menu.ts similarity index 100% rename from packages/craftcms-cp/src/components/action-menu/action-menu.ts rename to packages/craftcms-ui/src/components/action-menu/action-menu.ts diff --git a/packages/craftcms-cp/src/components/action-menu/action-menu.types.ts b/packages/craftcms-ui/src/components/action-menu/action-menu.types.ts similarity index 100% rename from packages/craftcms-cp/src/components/action-menu/action-menu.types.ts rename to packages/craftcms-ui/src/components/action-menu/action-menu.types.ts diff --git a/packages/craftcms-cp/src/components/auth-challenge-form/auth-challenge-form.ts b/packages/craftcms-ui/src/components/auth-challenge-form/auth-challenge-form.ts similarity index 99% rename from packages/craftcms-cp/src/components/auth-challenge-form/auth-challenge-form.ts rename to packages/craftcms-ui/src/components/auth-challenge-form/auth-challenge-form.ts index f947670f502..2162055ef8f 100644 --- a/packages/craftcms-cp/src/components/auth-challenge-form/auth-challenge-form.ts +++ b/packages/craftcms-ui/src/components/auth-challenge-form/auth-challenge-form.ts @@ -20,7 +20,7 @@ const _registry = new Map(); * @example * ```typescript * import {html} from 'lit'; - * import {CraftAuthChallengeForm} from '@craftcms/cp'; + * import {CraftAuthChallengeForm} from '@craftcms/ui'; * * class MyPluginForm extends CraftAuthChallengeForm { * static METHOD = 'my-method'; diff --git a/packages/craftcms-cp/src/components/avatar/avatar.stories.ts b/packages/craftcms-ui/src/components/avatar/avatar.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/avatar/avatar.stories.ts rename to packages/craftcms-ui/src/components/avatar/avatar.stories.ts diff --git a/packages/craftcms-cp/src/components/avatar/avatar.styles.ts b/packages/craftcms-ui/src/components/avatar/avatar.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/avatar/avatar.styles.ts rename to packages/craftcms-ui/src/components/avatar/avatar.styles.ts diff --git a/packages/craftcms-cp/src/components/avatar/avatar.ts b/packages/craftcms-ui/src/components/avatar/avatar.ts similarity index 100% rename from packages/craftcms-cp/src/components/avatar/avatar.ts rename to packages/craftcms-ui/src/components/avatar/avatar.ts diff --git a/packages/craftcms-cp/src/components/badge-indicator/badge-indicator.stories.ts b/packages/craftcms-ui/src/components/badge-indicator/badge-indicator.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/badge-indicator/badge-indicator.stories.ts rename to packages/craftcms-ui/src/components/badge-indicator/badge-indicator.stories.ts diff --git a/packages/craftcms-cp/src/components/badge-indicator/badge-indicator.styles.ts b/packages/craftcms-ui/src/components/badge-indicator/badge-indicator.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/badge-indicator/badge-indicator.styles.ts rename to packages/craftcms-ui/src/components/badge-indicator/badge-indicator.styles.ts diff --git a/packages/craftcms-cp/src/components/badge-indicator/badge-indicator.ts b/packages/craftcms-ui/src/components/badge-indicator/badge-indicator.ts similarity index 100% rename from packages/craftcms-cp/src/components/badge-indicator/badge-indicator.ts rename to packages/craftcms-ui/src/components/badge-indicator/badge-indicator.ts diff --git a/packages/craftcms-cp/src/components/badge/Badge.mdx b/packages/craftcms-ui/src/components/badge/Badge.mdx similarity index 100% rename from packages/craftcms-cp/src/components/badge/Badge.mdx rename to packages/craftcms-ui/src/components/badge/Badge.mdx diff --git a/packages/craftcms-cp/src/components/badge/badge.stories.ts b/packages/craftcms-ui/src/components/badge/badge.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/badge/badge.stories.ts rename to packages/craftcms-ui/src/components/badge/badge.stories.ts diff --git a/packages/craftcms-cp/src/components/badge/badge.styles.ts b/packages/craftcms-ui/src/components/badge/badge.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/badge/badge.styles.ts rename to packages/craftcms-ui/src/components/badge/badge.styles.ts diff --git a/packages/craftcms-cp/src/components/badge/badge.ts b/packages/craftcms-ui/src/components/badge/badge.ts similarity index 100% rename from packages/craftcms-cp/src/components/badge/badge.ts rename to packages/craftcms-ui/src/components/badge/badge.ts diff --git a/packages/craftcms-cp/src/components/breadcrumb-item/breadcrumb-item.test.ts b/packages/craftcms-ui/src/components/breadcrumb-item/breadcrumb-item.test.ts similarity index 100% rename from packages/craftcms-cp/src/components/breadcrumb-item/breadcrumb-item.test.ts rename to packages/craftcms-ui/src/components/breadcrumb-item/breadcrumb-item.test.ts diff --git a/packages/craftcms-cp/src/components/breadcrumb-item/breadcrumb-item.ts b/packages/craftcms-ui/src/components/breadcrumb-item/breadcrumb-item.ts similarity index 100% rename from packages/craftcms-cp/src/components/breadcrumb-item/breadcrumb-item.ts rename to packages/craftcms-ui/src/components/breadcrumb-item/breadcrumb-item.ts diff --git a/packages/craftcms-cp/src/components/breadcrumbs/breadcrumbs.stories.ts b/packages/craftcms-ui/src/components/breadcrumbs/breadcrumbs.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/breadcrumbs/breadcrumbs.stories.ts rename to packages/craftcms-ui/src/components/breadcrumbs/breadcrumbs.stories.ts diff --git a/packages/craftcms-cp/src/components/breadcrumbs/breadcrumbs.styles.ts b/packages/craftcms-ui/src/components/breadcrumbs/breadcrumbs.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/breadcrumbs/breadcrumbs.styles.ts rename to packages/craftcms-ui/src/components/breadcrumbs/breadcrumbs.styles.ts diff --git a/packages/craftcms-cp/src/components/breadcrumbs/breadcrumbs.ts b/packages/craftcms-ui/src/components/breadcrumbs/breadcrumbs.ts similarity index 100% rename from packages/craftcms-cp/src/components/breadcrumbs/breadcrumbs.ts rename to packages/craftcms-ui/src/components/breadcrumbs/breadcrumbs.ts diff --git a/packages/craftcms-cp/src/components/button-group/button-group.stories.ts b/packages/craftcms-ui/src/components/button-group/button-group.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/button-group/button-group.stories.ts rename to packages/craftcms-ui/src/components/button-group/button-group.stories.ts diff --git a/packages/craftcms-cp/src/components/button-group/button-group.styles.ts b/packages/craftcms-ui/src/components/button-group/button-group.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/button-group/button-group.styles.ts rename to packages/craftcms-ui/src/components/button-group/button-group.styles.ts diff --git a/packages/craftcms-cp/src/components/button-group/button-group.ts b/packages/craftcms-ui/src/components/button-group/button-group.ts similarity index 100% rename from packages/craftcms-cp/src/components/button-group/button-group.ts rename to packages/craftcms-ui/src/components/button-group/button-group.ts diff --git a/packages/craftcms-cp/src/components/button/Docs.mdx b/packages/craftcms-ui/src/components/button/Docs.mdx similarity index 100% rename from packages/craftcms-cp/src/components/button/Docs.mdx rename to packages/craftcms-ui/src/components/button/Docs.mdx diff --git a/packages/craftcms-cp/src/components/button/button.stories.ts b/packages/craftcms-ui/src/components/button/button.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/button/button.stories.ts rename to packages/craftcms-ui/src/components/button/button.stories.ts diff --git a/packages/craftcms-cp/src/components/button/button.styles.ts b/packages/craftcms-ui/src/components/button/button.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/button/button.styles.ts rename to packages/craftcms-ui/src/components/button/button.styles.ts diff --git a/packages/craftcms-cp/src/components/button/button.test.ts b/packages/craftcms-ui/src/components/button/button.test.ts similarity index 100% rename from packages/craftcms-cp/src/components/button/button.test.ts rename to packages/craftcms-ui/src/components/button/button.test.ts diff --git a/packages/craftcms-cp/src/components/button/button.ts b/packages/craftcms-ui/src/components/button/button.ts similarity index 100% rename from packages/craftcms-cp/src/components/button/button.ts rename to packages/craftcms-ui/src/components/button/button.ts diff --git a/packages/craftcms-cp/src/components/callout/callout.stories.ts b/packages/craftcms-ui/src/components/callout/callout.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/callout/callout.stories.ts rename to packages/craftcms-ui/src/components/callout/callout.stories.ts diff --git a/packages/craftcms-cp/src/components/callout/callout.styles.ts b/packages/craftcms-ui/src/components/callout/callout.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/callout/callout.styles.ts rename to packages/craftcms-ui/src/components/callout/callout.styles.ts diff --git a/packages/craftcms-cp/src/components/callout/callout.ts b/packages/craftcms-ui/src/components/callout/callout.ts similarity index 100% rename from packages/craftcms-cp/src/components/callout/callout.ts rename to packages/craftcms-ui/src/components/callout/callout.ts diff --git a/packages/craftcms-cp/src/components/card/card.stories.ts b/packages/craftcms-ui/src/components/card/card.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/card/card.stories.ts rename to packages/craftcms-ui/src/components/card/card.stories.ts diff --git a/packages/craftcms-cp/src/components/card/card.styles.ts b/packages/craftcms-ui/src/components/card/card.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/card/card.styles.ts rename to packages/craftcms-ui/src/components/card/card.styles.ts diff --git a/packages/craftcms-cp/src/components/card/card.ts b/packages/craftcms-ui/src/components/card/card.ts similarity index 100% rename from packages/craftcms-cp/src/components/card/card.ts rename to packages/craftcms-ui/src/components/card/card.ts diff --git a/packages/craftcms-cp/src/components/checkbox-group/checkbox-group.ts b/packages/craftcms-ui/src/components/checkbox-group/checkbox-group.ts similarity index 100% rename from packages/craftcms-cp/src/components/checkbox-group/checkbox-group.ts rename to packages/craftcms-ui/src/components/checkbox-group/checkbox-group.ts diff --git a/packages/craftcms-cp/src/components/checkbox-indeterminate/checkbox-indeterminate.stories.ts b/packages/craftcms-ui/src/components/checkbox-indeterminate/checkbox-indeterminate.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/checkbox-indeterminate/checkbox-indeterminate.stories.ts rename to packages/craftcms-ui/src/components/checkbox-indeterminate/checkbox-indeterminate.stories.ts diff --git a/packages/craftcms-cp/src/components/checkbox-indeterminate/checkbox-indeterminate.ts b/packages/craftcms-ui/src/components/checkbox-indeterminate/checkbox-indeterminate.ts similarity index 100% rename from packages/craftcms-cp/src/components/checkbox-indeterminate/checkbox-indeterminate.ts rename to packages/craftcms-ui/src/components/checkbox-indeterminate/checkbox-indeterminate.ts diff --git a/packages/craftcms-cp/src/components/checkbox/checkbox.stories.ts b/packages/craftcms-ui/src/components/checkbox/checkbox.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/checkbox/checkbox.stories.ts rename to packages/craftcms-ui/src/components/checkbox/checkbox.stories.ts diff --git a/packages/craftcms-cp/src/components/checkbox/checkbox.ts b/packages/craftcms-ui/src/components/checkbox/checkbox.ts similarity index 100% rename from packages/craftcms-cp/src/components/checkbox/checkbox.ts rename to packages/craftcms-ui/src/components/checkbox/checkbox.ts diff --git a/packages/craftcms-cp/src/components/chip/chip.stories.ts b/packages/craftcms-ui/src/components/chip/chip.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/chip/chip.stories.ts rename to packages/craftcms-ui/src/components/chip/chip.stories.ts diff --git a/packages/craftcms-cp/src/components/chip/chip.styles.ts b/packages/craftcms-ui/src/components/chip/chip.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/chip/chip.styles.ts rename to packages/craftcms-ui/src/components/chip/chip.styles.ts diff --git a/packages/craftcms-cp/src/components/chip/chip.ts b/packages/craftcms-ui/src/components/chip/chip.ts similarity index 100% rename from packages/craftcms-cp/src/components/chip/chip.ts rename to packages/craftcms-ui/src/components/chip/chip.ts diff --git a/packages/craftcms-cp/src/components/combobox/combobox.stories.ts b/packages/craftcms-ui/src/components/combobox/combobox.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/combobox/combobox.stories.ts rename to packages/craftcms-ui/src/components/combobox/combobox.stories.ts diff --git a/packages/craftcms-cp/src/components/combobox/combobox.styles.ts b/packages/craftcms-ui/src/components/combobox/combobox.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/combobox/combobox.styles.ts rename to packages/craftcms-ui/src/components/combobox/combobox.styles.ts diff --git a/packages/craftcms-cp/src/components/combobox/combobox.ts b/packages/craftcms-ui/src/components/combobox/combobox.ts similarity index 100% rename from packages/craftcms-cp/src/components/combobox/combobox.ts rename to packages/craftcms-ui/src/components/combobox/combobox.ts diff --git a/packages/craftcms-cp/src/components/copy-attribute/copy-attribute.stories.ts b/packages/craftcms-ui/src/components/copy-attribute/copy-attribute.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/copy-attribute/copy-attribute.stories.ts rename to packages/craftcms-ui/src/components/copy-attribute/copy-attribute.stories.ts diff --git a/packages/craftcms-cp/src/components/copy-attribute/copy-attribute.styles.ts b/packages/craftcms-ui/src/components/copy-attribute/copy-attribute.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/copy-attribute/copy-attribute.styles.ts rename to packages/craftcms-ui/src/components/copy-attribute/copy-attribute.styles.ts diff --git a/packages/craftcms-cp/src/components/copy-attribute/copy-attribute.ts b/packages/craftcms-ui/src/components/copy-attribute/copy-attribute.ts similarity index 100% rename from packages/craftcms-cp/src/components/copy-attribute/copy-attribute.ts rename to packages/craftcms-ui/src/components/copy-attribute/copy-attribute.ts diff --git a/packages/craftcms-cp/src/components/copy-button/copy-button.stories.ts b/packages/craftcms-ui/src/components/copy-button/copy-button.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/copy-button/copy-button.stories.ts rename to packages/craftcms-ui/src/components/copy-button/copy-button.stories.ts diff --git a/packages/craftcms-cp/src/components/copy-button/copy-button.styles.ts b/packages/craftcms-ui/src/components/copy-button/copy-button.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/copy-button/copy-button.styles.ts rename to packages/craftcms-ui/src/components/copy-button/copy-button.styles.ts diff --git a/packages/craftcms-cp/src/components/copy-button/copy-button.ts b/packages/craftcms-ui/src/components/copy-button/copy-button.ts similarity index 100% rename from packages/craftcms-cp/src/components/copy-button/copy-button.ts rename to packages/craftcms-ui/src/components/copy-button/copy-button.ts diff --git a/packages/craftcms-cp/src/components/dialog/dialog.stories.ts b/packages/craftcms-ui/src/components/dialog/dialog.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/dialog/dialog.stories.ts rename to packages/craftcms-ui/src/components/dialog/dialog.stories.ts diff --git a/packages/craftcms-cp/src/components/dialog/dialog.test.ts b/packages/craftcms-ui/src/components/dialog/dialog.test.ts similarity index 100% rename from packages/craftcms-cp/src/components/dialog/dialog.test.ts rename to packages/craftcms-ui/src/components/dialog/dialog.test.ts diff --git a/packages/craftcms-cp/src/components/dialog/dialog.ts b/packages/craftcms-ui/src/components/dialog/dialog.ts similarity index 100% rename from packages/craftcms-cp/src/components/dialog/dialog.ts rename to packages/craftcms-ui/src/components/dialog/dialog.ts diff --git a/packages/craftcms-cp/src/components/disclosure/disclosure.stories.ts b/packages/craftcms-ui/src/components/disclosure/disclosure.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/disclosure/disclosure.stories.ts rename to packages/craftcms-ui/src/components/disclosure/disclosure.stories.ts diff --git a/packages/craftcms-cp/src/components/disclosure/disclosure.ts b/packages/craftcms-ui/src/components/disclosure/disclosure.ts similarity index 100% rename from packages/craftcms-cp/src/components/disclosure/disclosure.ts rename to packages/craftcms-ui/src/components/disclosure/disclosure.ts diff --git a/packages/craftcms-cp/src/components/empty/empty.ts b/packages/craftcms-ui/src/components/empty/empty.ts similarity index 100% rename from packages/craftcms-cp/src/components/empty/empty.ts rename to packages/craftcms-ui/src/components/empty/empty.ts diff --git a/packages/craftcms-cp/src/components/field-group/field-group.ts b/packages/craftcms-ui/src/components/field-group/field-group.ts similarity index 100% rename from packages/craftcms-cp/src/components/field-group/field-group.ts rename to packages/craftcms-ui/src/components/field-group/field-group.ts diff --git a/packages/craftcms-cp/src/components/icon/icon.stories.ts b/packages/craftcms-ui/src/components/icon/icon.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/icon/icon.stories.ts rename to packages/craftcms-ui/src/components/icon/icon.stories.ts diff --git a/packages/craftcms-cp/src/components/icon/icon.test.ts b/packages/craftcms-ui/src/components/icon/icon.test.ts similarity index 100% rename from packages/craftcms-cp/src/components/icon/icon.test.ts rename to packages/craftcms-ui/src/components/icon/icon.test.ts diff --git a/packages/craftcms-cp/src/components/icon/icon.ts b/packages/craftcms-ui/src/components/icon/icon.ts similarity index 100% rename from packages/craftcms-cp/src/components/icon/icon.ts rename to packages/craftcms-ui/src/components/icon/icon.ts diff --git a/packages/craftcms-cp/src/components/indicator/Indicator.mdx b/packages/craftcms-ui/src/components/indicator/Indicator.mdx similarity index 100% rename from packages/craftcms-cp/src/components/indicator/Indicator.mdx rename to packages/craftcms-ui/src/components/indicator/Indicator.mdx diff --git a/packages/craftcms-cp/src/components/indicator/indicator.stories.ts b/packages/craftcms-ui/src/components/indicator/indicator.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/indicator/indicator.stories.ts rename to packages/craftcms-ui/src/components/indicator/indicator.stories.ts diff --git a/packages/craftcms-cp/src/components/indicator/indicator.ts b/packages/craftcms-ui/src/components/indicator/indicator.ts similarity index 100% rename from packages/craftcms-cp/src/components/indicator/indicator.ts rename to packages/craftcms-ui/src/components/indicator/indicator.ts diff --git a/packages/craftcms-cp/src/components/info-icon/info-icon.stories.ts b/packages/craftcms-ui/src/components/info-icon/info-icon.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/info-icon/info-icon.stories.ts rename to packages/craftcms-ui/src/components/info-icon/info-icon.stories.ts diff --git a/packages/craftcms-cp/src/components/info-icon/info-icon.ts b/packages/craftcms-ui/src/components/info-icon/info-icon.ts similarity index 100% rename from packages/craftcms-cp/src/components/info-icon/info-icon.ts rename to packages/craftcms-ui/src/components/info-icon/info-icon.ts diff --git a/packages/craftcms-cp/src/components/input-color/input-color.stories.ts b/packages/craftcms-ui/src/components/input-color/input-color.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/input-color/input-color.stories.ts rename to packages/craftcms-ui/src/components/input-color/input-color.stories.ts diff --git a/packages/craftcms-cp/src/components/input-color/input-color.styles.ts b/packages/craftcms-ui/src/components/input-color/input-color.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/input-color/input-color.styles.ts rename to packages/craftcms-ui/src/components/input-color/input-color.styles.ts diff --git a/packages/craftcms-cp/src/components/input-color/input-color.test.ts b/packages/craftcms-ui/src/components/input-color/input-color.test.ts similarity index 100% rename from packages/craftcms-cp/src/components/input-color/input-color.test.ts rename to packages/craftcms-ui/src/components/input-color/input-color.test.ts diff --git a/packages/craftcms-cp/src/components/input-color/input-color.ts b/packages/craftcms-ui/src/components/input-color/input-color.ts similarity index 100% rename from packages/craftcms-cp/src/components/input-color/input-color.ts rename to packages/craftcms-ui/src/components/input-color/input-color.ts diff --git a/packages/craftcms-cp/src/components/input-file/input-file.stories.ts b/packages/craftcms-ui/src/components/input-file/input-file.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/input-file/input-file.stories.ts rename to packages/craftcms-ui/src/components/input-file/input-file.stories.ts diff --git a/packages/craftcms-cp/src/components/input-file/input-file.styles.ts b/packages/craftcms-ui/src/components/input-file/input-file.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/input-file/input-file.styles.ts rename to packages/craftcms-ui/src/components/input-file/input-file.styles.ts diff --git a/packages/craftcms-cp/src/components/input-file/input-file.ts b/packages/craftcms-ui/src/components/input-file/input-file.ts similarity index 100% rename from packages/craftcms-cp/src/components/input-file/input-file.ts rename to packages/craftcms-ui/src/components/input-file/input-file.ts diff --git a/packages/craftcms-cp/src/components/input-file/selected-file-list.ts b/packages/craftcms-ui/src/components/input-file/selected-file-list.ts similarity index 100% rename from packages/craftcms-cp/src/components/input-file/selected-file-list.ts rename to packages/craftcms-ui/src/components/input-file/selected-file-list.ts diff --git a/packages/craftcms-cp/src/components/input-handle/input-handle.ts b/packages/craftcms-ui/src/components/input-handle/input-handle.ts similarity index 100% rename from packages/craftcms-cp/src/components/input-handle/input-handle.ts rename to packages/craftcms-ui/src/components/input-handle/input-handle.ts diff --git a/packages/craftcms-cp/src/components/input-password/input-password.stories.ts b/packages/craftcms-ui/src/components/input-password/input-password.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/input-password/input-password.stories.ts rename to packages/craftcms-ui/src/components/input-password/input-password.stories.ts diff --git a/packages/craftcms-cp/src/components/input-password/input-password.ts b/packages/craftcms-ui/src/components/input-password/input-password.ts similarity index 100% rename from packages/craftcms-cp/src/components/input-password/input-password.ts rename to packages/craftcms-ui/src/components/input-password/input-password.ts diff --git a/packages/craftcms-cp/src/components/input/input.stories.ts b/packages/craftcms-ui/src/components/input/input.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/input/input.stories.ts rename to packages/craftcms-ui/src/components/input/input.stories.ts diff --git a/packages/craftcms-cp/src/components/input/input.styles.ts b/packages/craftcms-ui/src/components/input/input.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/input/input.styles.ts rename to packages/craftcms-ui/src/components/input/input.styles.ts diff --git a/packages/craftcms-cp/src/components/input/input.ts b/packages/craftcms-ui/src/components/input/input.ts similarity index 100% rename from packages/craftcms-cp/src/components/input/input.ts rename to packages/craftcms-ui/src/components/input/input.ts diff --git a/packages/craftcms-cp/src/components/nav-item/nav-item.stories.ts b/packages/craftcms-ui/src/components/nav-item/nav-item.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/nav-item/nav-item.stories.ts rename to packages/craftcms-ui/src/components/nav-item/nav-item.stories.ts diff --git a/packages/craftcms-cp/src/components/nav-item/nav-item.styles.ts b/packages/craftcms-ui/src/components/nav-item/nav-item.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/nav-item/nav-item.styles.ts rename to packages/craftcms-ui/src/components/nav-item/nav-item.styles.ts diff --git a/packages/craftcms-cp/src/components/nav-item/nav-item.ts b/packages/craftcms-ui/src/components/nav-item/nav-item.ts similarity index 100% rename from packages/craftcms-cp/src/components/nav-item/nav-item.ts rename to packages/craftcms-ui/src/components/nav-item/nav-item.ts diff --git a/packages/craftcms-cp/src/components/nav-list/nav-list.stories.ts b/packages/craftcms-ui/src/components/nav-list/nav-list.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/nav-list/nav-list.stories.ts rename to packages/craftcms-ui/src/components/nav-list/nav-list.stories.ts diff --git a/packages/craftcms-cp/src/components/nav-list/nav-list.ts b/packages/craftcms-ui/src/components/nav-list/nav-list.ts similarity index 100% rename from packages/craftcms-cp/src/components/nav-list/nav-list.ts rename to packages/craftcms-ui/src/components/nav-list/nav-list.ts diff --git a/packages/craftcms-cp/src/components/option/option.styles.ts b/packages/craftcms-ui/src/components/option/option.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/option/option.styles.ts rename to packages/craftcms-ui/src/components/option/option.styles.ts diff --git a/packages/craftcms-cp/src/components/option/option.ts b/packages/craftcms-ui/src/components/option/option.ts similarity index 100% rename from packages/craftcms-cp/src/components/option/option.ts rename to packages/craftcms-ui/src/components/option/option.ts diff --git a/packages/craftcms-cp/src/components/pane/pane.ts b/packages/craftcms-ui/src/components/pane/pane.ts similarity index 100% rename from packages/craftcms-cp/src/components/pane/pane.ts rename to packages/craftcms-ui/src/components/pane/pane.ts diff --git a/packages/craftcms-cp/src/components/popover/popover.stories.ts b/packages/craftcms-ui/src/components/popover/popover.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/popover/popover.stories.ts rename to packages/craftcms-ui/src/components/popover/popover.stories.ts diff --git a/packages/craftcms-cp/src/components/popover/popover.styles.ts b/packages/craftcms-ui/src/components/popover/popover.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/popover/popover.styles.ts rename to packages/craftcms-ui/src/components/popover/popover.styles.ts diff --git a/packages/craftcms-cp/src/components/popover/popover.test.ts b/packages/craftcms-ui/src/components/popover/popover.test.ts similarity index 100% rename from packages/craftcms-cp/src/components/popover/popover.test.ts rename to packages/craftcms-ui/src/components/popover/popover.test.ts diff --git a/packages/craftcms-cp/src/components/popover/popover.ts b/packages/craftcms-ui/src/components/popover/popover.ts similarity index 100% rename from packages/craftcms-cp/src/components/popover/popover.ts rename to packages/craftcms-ui/src/components/popover/popover.ts diff --git a/packages/craftcms-cp/src/components/progress-bar/progress-bar.stories.ts b/packages/craftcms-ui/src/components/progress-bar/progress-bar.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/progress-bar/progress-bar.stories.ts rename to packages/craftcms-ui/src/components/progress-bar/progress-bar.stories.ts diff --git a/packages/craftcms-cp/src/components/progress-bar/progress-bar.styles.ts b/packages/craftcms-ui/src/components/progress-bar/progress-bar.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/progress-bar/progress-bar.styles.ts rename to packages/craftcms-ui/src/components/progress-bar/progress-bar.styles.ts diff --git a/packages/craftcms-cp/src/components/progress-bar/progress-bar.ts b/packages/craftcms-ui/src/components/progress-bar/progress-bar.ts similarity index 100% rename from packages/craftcms-cp/src/components/progress-bar/progress-bar.ts rename to packages/craftcms-ui/src/components/progress-bar/progress-bar.ts diff --git a/packages/craftcms-cp/src/components/progress/progress.stories.ts b/packages/craftcms-ui/src/components/progress/progress.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/progress/progress.stories.ts rename to packages/craftcms-ui/src/components/progress/progress.stories.ts diff --git a/packages/craftcms-cp/src/components/progress/progress.ts b/packages/craftcms-ui/src/components/progress/progress.ts similarity index 100% rename from packages/craftcms-cp/src/components/progress/progress.ts rename to packages/craftcms-ui/src/components/progress/progress.ts diff --git a/packages/craftcms-cp/src/components/radio-group/radio-group.ts b/packages/craftcms-ui/src/components/radio-group/radio-group.ts similarity index 100% rename from packages/craftcms-cp/src/components/radio-group/radio-group.ts rename to packages/craftcms-ui/src/components/radio-group/radio-group.ts diff --git a/packages/craftcms-cp/src/components/radio/radio.ts b/packages/craftcms-ui/src/components/radio/radio.ts similarity index 100% rename from packages/craftcms-cp/src/components/radio/radio.ts rename to packages/craftcms-ui/src/components/radio/radio.ts diff --git a/packages/craftcms-cp/src/components/reorder-button/reorder-button.stories.ts b/packages/craftcms-ui/src/components/reorder-button/reorder-button.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/reorder-button/reorder-button.stories.ts rename to packages/craftcms-ui/src/components/reorder-button/reorder-button.stories.ts diff --git a/packages/craftcms-cp/src/components/reorder-button/reorder-button.styles.ts b/packages/craftcms-ui/src/components/reorder-button/reorder-button.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/reorder-button/reorder-button.styles.ts rename to packages/craftcms-ui/src/components/reorder-button/reorder-button.styles.ts diff --git a/packages/craftcms-cp/src/components/reorder-button/reorder-button.ts b/packages/craftcms-ui/src/components/reorder-button/reorder-button.ts similarity index 100% rename from packages/craftcms-cp/src/components/reorder-button/reorder-button.ts rename to packages/craftcms-ui/src/components/reorder-button/reorder-button.ts diff --git a/packages/craftcms-cp/src/components/select-color/select-color.stories.ts b/packages/craftcms-ui/src/components/select-color/select-color.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/select-color/select-color.stories.ts rename to packages/craftcms-ui/src/components/select-color/select-color.stories.ts diff --git a/packages/craftcms-cp/src/components/select-color/select-color.styles.ts b/packages/craftcms-ui/src/components/select-color/select-color.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/select-color/select-color.styles.ts rename to packages/craftcms-ui/src/components/select-color/select-color.styles.ts diff --git a/packages/craftcms-cp/src/components/select-color/select-color.ts b/packages/craftcms-ui/src/components/select-color/select-color.ts similarity index 100% rename from packages/craftcms-cp/src/components/select-color/select-color.ts rename to packages/craftcms-ui/src/components/select-color/select-color.ts diff --git a/packages/craftcms-cp/src/components/select-rich/select-invoker.styles.ts b/packages/craftcms-ui/src/components/select-rich/select-invoker.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/select-rich/select-invoker.styles.ts rename to packages/craftcms-ui/src/components/select-rich/select-invoker.styles.ts diff --git a/packages/craftcms-cp/src/components/select-rich/select-invoker.ts b/packages/craftcms-ui/src/components/select-rich/select-invoker.ts similarity index 100% rename from packages/craftcms-cp/src/components/select-rich/select-invoker.ts rename to packages/craftcms-ui/src/components/select-rich/select-invoker.ts diff --git a/packages/craftcms-cp/src/components/select-rich/select-rich.stories.ts b/packages/craftcms-ui/src/components/select-rich/select-rich.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/select-rich/select-rich.stories.ts rename to packages/craftcms-ui/src/components/select-rich/select-rich.stories.ts diff --git a/packages/craftcms-cp/src/components/select-rich/select-rich.styles.ts b/packages/craftcms-ui/src/components/select-rich/select-rich.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/select-rich/select-rich.styles.ts rename to packages/craftcms-ui/src/components/select-rich/select-rich.styles.ts diff --git a/packages/craftcms-cp/src/components/select-rich/select-rich.ts b/packages/craftcms-ui/src/components/select-rich/select-rich.ts similarity index 100% rename from packages/craftcms-cp/src/components/select-rich/select-rich.ts rename to packages/craftcms-ui/src/components/select-rich/select-rich.ts diff --git a/packages/craftcms-cp/src/components/select/select.stories.ts b/packages/craftcms-ui/src/components/select/select.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/select/select.stories.ts rename to packages/craftcms-ui/src/components/select/select.stories.ts diff --git a/packages/craftcms-cp/src/components/select/select.styles.ts b/packages/craftcms-ui/src/components/select/select.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/select/select.styles.ts rename to packages/craftcms-ui/src/components/select/select.styles.ts diff --git a/packages/craftcms-cp/src/components/select/select.ts b/packages/craftcms-ui/src/components/select/select.ts similarity index 100% rename from packages/craftcms-cp/src/components/select/select.ts rename to packages/craftcms-ui/src/components/select/select.ts diff --git a/packages/craftcms-cp/src/components/shortcut/shortcut.stories.ts b/packages/craftcms-ui/src/components/shortcut/shortcut.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/shortcut/shortcut.stories.ts rename to packages/craftcms-ui/src/components/shortcut/shortcut.stories.ts diff --git a/packages/craftcms-cp/src/components/shortcut/shortcut.ts b/packages/craftcms-ui/src/components/shortcut/shortcut.ts similarity index 100% rename from packages/craftcms-cp/src/components/shortcut/shortcut.ts rename to packages/craftcms-ui/src/components/shortcut/shortcut.ts diff --git a/packages/craftcms-cp/src/components/spinner/spinner.stories.ts b/packages/craftcms-ui/src/components/spinner/spinner.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/spinner/spinner.stories.ts rename to packages/craftcms-ui/src/components/spinner/spinner.stories.ts diff --git a/packages/craftcms-cp/src/components/spinner/spinner.styles.ts b/packages/craftcms-ui/src/components/spinner/spinner.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/spinner/spinner.styles.ts rename to packages/craftcms-ui/src/components/spinner/spinner.styles.ts diff --git a/packages/craftcms-cp/src/components/spinner/spinner.ts b/packages/craftcms-ui/src/components/spinner/spinner.ts similarity index 100% rename from packages/craftcms-cp/src/components/spinner/spinner.ts rename to packages/craftcms-ui/src/components/spinner/spinner.ts diff --git a/packages/craftcms-cp/src/components/status/status.stories.ts b/packages/craftcms-ui/src/components/status/status.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/status/status.stories.ts rename to packages/craftcms-ui/src/components/status/status.stories.ts diff --git a/packages/craftcms-cp/src/components/status/status.styles.ts b/packages/craftcms-ui/src/components/status/status.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/status/status.styles.ts rename to packages/craftcms-ui/src/components/status/status.styles.ts diff --git a/packages/craftcms-cp/src/components/status/status.ts b/packages/craftcms-ui/src/components/status/status.ts similarity index 100% rename from packages/craftcms-cp/src/components/status/status.ts rename to packages/craftcms-ui/src/components/status/status.ts diff --git a/packages/craftcms-cp/src/components/switch-button/switch-button.ts b/packages/craftcms-ui/src/components/switch-button/switch-button.ts similarity index 100% rename from packages/craftcms-cp/src/components/switch-button/switch-button.ts rename to packages/craftcms-ui/src/components/switch-button/switch-button.ts diff --git a/packages/craftcms-cp/src/components/switch/switch.stories.ts b/packages/craftcms-ui/src/components/switch/switch.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/switch/switch.stories.ts rename to packages/craftcms-ui/src/components/switch/switch.stories.ts diff --git a/packages/craftcms-cp/src/components/switch/switch.styles.ts b/packages/craftcms-ui/src/components/switch/switch.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/switch/switch.styles.ts rename to packages/craftcms-ui/src/components/switch/switch.styles.ts diff --git a/packages/craftcms-cp/src/components/switch/switch.test.ts b/packages/craftcms-ui/src/components/switch/switch.test.ts similarity index 100% rename from packages/craftcms-cp/src/components/switch/switch.test.ts rename to packages/craftcms-ui/src/components/switch/switch.test.ts diff --git a/packages/craftcms-cp/src/components/switch/switch.ts b/packages/craftcms-ui/src/components/switch/switch.ts similarity index 100% rename from packages/craftcms-cp/src/components/switch/switch.ts rename to packages/craftcms-ui/src/components/switch/switch.ts diff --git a/packages/craftcms-cp/src/components/tab/tab.styles.ts b/packages/craftcms-ui/src/components/tab/tab.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/tab/tab.styles.ts rename to packages/craftcms-ui/src/components/tab/tab.styles.ts diff --git a/packages/craftcms-cp/src/components/tab/tab.ts b/packages/craftcms-ui/src/components/tab/tab.ts similarity index 100% rename from packages/craftcms-cp/src/components/tab/tab.ts rename to packages/craftcms-ui/src/components/tab/tab.ts diff --git a/packages/craftcms-cp/src/components/tabs/tabs.stories.ts b/packages/craftcms-ui/src/components/tabs/tabs.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/tabs/tabs.stories.ts rename to packages/craftcms-ui/src/components/tabs/tabs.stories.ts diff --git a/packages/craftcms-cp/src/components/tabs/tabs.styles.ts b/packages/craftcms-ui/src/components/tabs/tabs.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/tabs/tabs.styles.ts rename to packages/craftcms-ui/src/components/tabs/tabs.styles.ts diff --git a/packages/craftcms-cp/src/components/tabs/tabs.ts b/packages/craftcms-ui/src/components/tabs/tabs.ts similarity index 100% rename from packages/craftcms-cp/src/components/tabs/tabs.ts rename to packages/craftcms-ui/src/components/tabs/tabs.ts diff --git a/packages/craftcms-cp/src/components/textarea/textarea.stories.ts b/packages/craftcms-ui/src/components/textarea/textarea.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/textarea/textarea.stories.ts rename to packages/craftcms-ui/src/components/textarea/textarea.stories.ts diff --git a/packages/craftcms-cp/src/components/textarea/textarea.styles.ts b/packages/craftcms-ui/src/components/textarea/textarea.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/textarea/textarea.styles.ts rename to packages/craftcms-ui/src/components/textarea/textarea.styles.ts diff --git a/packages/craftcms-cp/src/components/textarea/textarea.ts b/packages/craftcms-ui/src/components/textarea/textarea.ts similarity index 100% rename from packages/craftcms-cp/src/components/textarea/textarea.ts rename to packages/craftcms-ui/src/components/textarea/textarea.ts diff --git a/packages/craftcms-cp/src/components/thumbnail-loader/README.md b/packages/craftcms-ui/src/components/thumbnail-loader/README.md similarity index 89% rename from packages/craftcms-cp/src/components/thumbnail-loader/README.md rename to packages/craftcms-ui/src/components/thumbnail-loader/README.md index 7079de28663..a7747726656 100644 --- a/packages/craftcms-cp/src/components/thumbnail-loader/README.md +++ b/packages/craftcms-ui/src/components/thumbnail-loader/README.md @@ -9,8 +9,8 @@ the static `retryAll()` retry hook used by previews). ## Pieces - **Main class** — `src/utilities/thumbnail-loader.ts` (`ThumbnailLoader` + - `ThumbnailWorker`), exported from `@craftcms/cp` and importable via - `@craftcms/cp/utilities/thumbnail-loader`. Also instantiated by this + `ThumbnailWorker`), exported from `@craftcms/ui` and importable via + `@craftcms/ui/utilities/thumbnail-loader`. Also instantiated by this package's ``. - **Custom element** — `` (this directory). A light-DOM controller element that boots a bare `ThumbnailLoader` over its @@ -32,10 +32,10 @@ the static `retryAll()` retry hook used by previews). - **The shim scans full collections again.** An interim version of the shim only scanned `$elements[0]`, dropping the rest of multi-row collections (`$rows`, `$newElements`); it also imported a bad - `@craftcms/cp/utilities/thumbnail-loader.ts.mjs` specifier that failed to + `@craftcms/ui/utilities/thumbnail-loader.ts.mjs` specifier that failed to resolve at runtime. Both are fixed (the specifier is now - `@craftcms/cp/utilities/thumbnail-loader`, matching how `CP.js` imports - `@craftcms/cp/services/Queue`). + `@craftcms/ui/utilities/thumbnail-loader`, matching how `CP.js` imports + `@craftcms/ui/services/Queue`). ## Legacy callers that must keep working diff --git a/packages/craftcms-cp/src/components/thumbnail-loader/thumbnail-loader.ts b/packages/craftcms-ui/src/components/thumbnail-loader/thumbnail-loader.ts similarity index 100% rename from packages/craftcms-cp/src/components/thumbnail-loader/thumbnail-loader.ts rename to packages/craftcms-ui/src/components/thumbnail-loader/thumbnail-loader.ts diff --git a/packages/craftcms-cp/src/components/thumbnail/thumbnail.stories.ts b/packages/craftcms-ui/src/components/thumbnail/thumbnail.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/thumbnail/thumbnail.stories.ts rename to packages/craftcms-ui/src/components/thumbnail/thumbnail.stories.ts diff --git a/packages/craftcms-cp/src/components/thumbnail/thumbnail.styles.ts b/packages/craftcms-ui/src/components/thumbnail/thumbnail.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/thumbnail/thumbnail.styles.ts rename to packages/craftcms-ui/src/components/thumbnail/thumbnail.styles.ts diff --git a/packages/craftcms-cp/src/components/thumbnail/thumbnail.ts b/packages/craftcms-ui/src/components/thumbnail/thumbnail.ts similarity index 100% rename from packages/craftcms-cp/src/components/thumbnail/thumbnail.ts rename to packages/craftcms-ui/src/components/thumbnail/thumbnail.ts diff --git a/packages/craftcms-cp/src/components/tooltip/Tooltip.mdx b/packages/craftcms-ui/src/components/tooltip/Tooltip.mdx similarity index 100% rename from packages/craftcms-cp/src/components/tooltip/Tooltip.mdx rename to packages/craftcms-ui/src/components/tooltip/Tooltip.mdx diff --git a/packages/craftcms-cp/src/components/tooltip/tooltip.stories.ts b/packages/craftcms-ui/src/components/tooltip/tooltip.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/tooltip/tooltip.stories.ts rename to packages/craftcms-ui/src/components/tooltip/tooltip.stories.ts diff --git a/packages/craftcms-cp/src/components/tooltip/tooltip.test.ts b/packages/craftcms-ui/src/components/tooltip/tooltip.test.ts similarity index 100% rename from packages/craftcms-cp/src/components/tooltip/tooltip.test.ts rename to packages/craftcms-ui/src/components/tooltip/tooltip.test.ts diff --git a/packages/craftcms-cp/src/components/tooltip/tooltip.ts b/packages/craftcms-ui/src/components/tooltip/tooltip.ts similarity index 100% rename from packages/craftcms-cp/src/components/tooltip/tooltip.ts rename to packages/craftcms-ui/src/components/tooltip/tooltip.ts diff --git a/packages/craftcms-cp/src/components/visually-hidden/visually-hidden.ts b/packages/craftcms-ui/src/components/visually-hidden/visually-hidden.ts similarity index 100% rename from packages/craftcms-cp/src/components/visually-hidden/visually-hidden.ts rename to packages/craftcms-ui/src/components/visually-hidden/visually-hidden.ts diff --git a/packages/craftcms-cp/src/constants/appearances.ts b/packages/craftcms-ui/src/constants/appearances.ts similarity index 100% rename from packages/craftcms-cp/src/constants/appearances.ts rename to packages/craftcms-ui/src/constants/appearances.ts diff --git a/packages/craftcms-cp/src/constants/colors.ts b/packages/craftcms-ui/src/constants/colors.ts similarity index 100% rename from packages/craftcms-cp/src/constants/colors.ts rename to packages/craftcms-ui/src/constants/colors.ts diff --git a/packages/craftcms-cp/src/constants/size.ts b/packages/craftcms-ui/src/constants/size.ts similarity index 100% rename from packages/craftcms-cp/src/constants/size.ts rename to packages/craftcms-ui/src/constants/size.ts diff --git a/packages/craftcms-cp/src/constants/statuses.ts b/packages/craftcms-ui/src/constants/statuses.ts similarity index 100% rename from packages/craftcms-cp/src/constants/statuses.ts rename to packages/craftcms-ui/src/constants/statuses.ts diff --git a/packages/craftcms-cp/src/constants/variants.ts b/packages/craftcms-ui/src/constants/variants.ts similarity index 100% rename from packages/craftcms-cp/src/constants/variants.ts rename to packages/craftcms-ui/src/constants/variants.ts diff --git a/packages/craftcms-cp/src/constants/volume.ts b/packages/craftcms-ui/src/constants/volume.ts similarity index 100% rename from packages/craftcms-cp/src/constants/volume.ts rename to packages/craftcms-ui/src/constants/volume.ts diff --git a/packages/craftcms-cp/src/index.ts b/packages/craftcms-ui/src/index.ts similarity index 100% rename from packages/craftcms-cp/src/index.ts rename to packages/craftcms-ui/src/index.ts diff --git a/packages/craftcms-cp/src/services/AssetIndexer.ts b/packages/craftcms-ui/src/services/AssetIndexer.ts similarity index 100% rename from packages/craftcms-cp/src/services/AssetIndexer.ts rename to packages/craftcms-ui/src/services/AssetIndexer.ts diff --git a/packages/craftcms-cp/src/services/Config.ts b/packages/craftcms-ui/src/services/Config.ts similarity index 100% rename from packages/craftcms-cp/src/services/Config.ts rename to packages/craftcms-ui/src/services/Config.ts diff --git a/packages/craftcms-cp/src/services/Csrf.ts b/packages/craftcms-ui/src/services/Csrf.ts similarity index 100% rename from packages/craftcms-cp/src/services/Csrf.ts rename to packages/craftcms-ui/src/services/Csrf.ts diff --git a/packages/craftcms-cp/src/services/Queue.test.ts b/packages/craftcms-ui/src/services/Queue.test.ts similarity index 100% rename from packages/craftcms-cp/src/services/Queue.test.ts rename to packages/craftcms-ui/src/services/Queue.test.ts diff --git a/packages/craftcms-cp/src/services/Queue.ts b/packages/craftcms-ui/src/services/Queue.ts similarity index 100% rename from packages/craftcms-cp/src/services/Queue.ts rename to packages/craftcms-ui/src/services/Queue.ts diff --git a/packages/craftcms-cp/src/stories/tokens/Colors.mdx b/packages/craftcms-ui/src/stories/tokens/Colors.mdx similarity index 100% rename from packages/craftcms-cp/src/stories/tokens/Colors.mdx rename to packages/craftcms-ui/src/stories/tokens/Colors.mdx diff --git a/packages/craftcms-cp/src/stories/tokens/Docs.mdx b/packages/craftcms-ui/src/stories/tokens/Docs.mdx similarity index 100% rename from packages/craftcms-cp/src/stories/tokens/Docs.mdx rename to packages/craftcms-ui/src/stories/tokens/Docs.mdx diff --git a/packages/craftcms-cp/src/stories/tokens/colorable.stories.ts b/packages/craftcms-ui/src/stories/tokens/colorable.stories.ts similarity index 100% rename from packages/craftcms-cp/src/stories/tokens/colorable.stories.ts rename to packages/craftcms-ui/src/stories/tokens/colorable.stories.ts diff --git a/packages/craftcms-cp/src/stories/tokens/colors.stories.ts b/packages/craftcms-ui/src/stories/tokens/colors.stories.ts similarity index 100% rename from packages/craftcms-cp/src/stories/tokens/colors.stories.ts rename to packages/craftcms-ui/src/stories/tokens/colors.stories.ts diff --git a/packages/craftcms-cp/src/stories/tokens/helpers.ts b/packages/craftcms-ui/src/stories/tokens/helpers.ts similarity index 100% rename from packages/craftcms-cp/src/stories/tokens/helpers.ts rename to packages/craftcms-ui/src/stories/tokens/helpers.ts diff --git a/packages/craftcms-cp/src/stories/tokens/spacing.stories.ts b/packages/craftcms-ui/src/stories/tokens/spacing.stories.ts similarity index 100% rename from packages/craftcms-cp/src/stories/tokens/spacing.stories.ts rename to packages/craftcms-ui/src/stories/tokens/spacing.stories.ts diff --git a/packages/craftcms-cp/src/stories/tokens/surface.stories.ts b/packages/craftcms-ui/src/stories/tokens/surface.stories.ts similarity index 100% rename from packages/craftcms-cp/src/stories/tokens/surface.stories.ts rename to packages/craftcms-ui/src/stories/tokens/surface.stories.ts diff --git a/packages/craftcms-cp/src/stories/tokens/text.stories.ts b/packages/craftcms-ui/src/stories/tokens/text.stories.ts similarity index 100% rename from packages/craftcms-cp/src/stories/tokens/text.stories.ts rename to packages/craftcms-ui/src/stories/tokens/text.stories.ts diff --git a/packages/craftcms-cp/src/stories/tokens/variants.stories.ts b/packages/craftcms-ui/src/stories/tokens/variants.stories.ts similarity index 100% rename from packages/craftcms-cp/src/stories/tokens/variants.stories.ts rename to packages/craftcms-ui/src/stories/tokens/variants.stories.ts diff --git a/packages/craftcms-cp/src/styles/color-definitions.js b/packages/craftcms-ui/src/styles/color-definitions.js similarity index 100% rename from packages/craftcms-cp/src/styles/color-definitions.js rename to packages/craftcms-ui/src/styles/color-definitions.js diff --git a/packages/craftcms-cp/src/styles/cp.css b/packages/craftcms-ui/src/styles/cp.css similarity index 100% rename from packages/craftcms-cp/src/styles/cp.css rename to packages/craftcms-ui/src/styles/cp.css diff --git a/packages/craftcms-cp/src/styles/form.styles.ts b/packages/craftcms-ui/src/styles/form.styles.ts similarity index 100% rename from packages/craftcms-cp/src/styles/form.styles.ts rename to packages/craftcms-ui/src/styles/form.styles.ts diff --git a/packages/craftcms-cp/src/styles/host.styles.ts b/packages/craftcms-ui/src/styles/host.styles.ts similarity index 100% rename from packages/craftcms-cp/src/styles/host.styles.ts rename to packages/craftcms-ui/src/styles/host.styles.ts diff --git a/packages/craftcms-cp/src/styles/shared/base.css b/packages/craftcms-ui/src/styles/shared/base.css similarity index 100% rename from packages/craftcms-cp/src/styles/shared/base.css rename to packages/craftcms-ui/src/styles/shared/base.css diff --git a/packages/craftcms-cp/src/styles/shared/color-palette.css b/packages/craftcms-ui/src/styles/shared/color-palette.css similarity index 100% rename from packages/craftcms-cp/src/styles/shared/color-palette.css rename to packages/craftcms-ui/src/styles/shared/color-palette.css diff --git a/packages/craftcms-cp/src/styles/shared/colorable.css b/packages/craftcms-ui/src/styles/shared/colorable.css similarity index 100% rename from packages/craftcms-cp/src/styles/shared/colorable.css rename to packages/craftcms-ui/src/styles/shared/colorable.css diff --git a/packages/craftcms-cp/src/styles/shared/preflight.css b/packages/craftcms-ui/src/styles/shared/preflight.css similarity index 100% rename from packages/craftcms-cp/src/styles/shared/preflight.css rename to packages/craftcms-ui/src/styles/shared/preflight.css diff --git a/packages/craftcms-cp/src/styles/shared/tokens.css b/packages/craftcms-ui/src/styles/shared/tokens.css similarity index 100% rename from packages/craftcms-cp/src/styles/shared/tokens.css rename to packages/craftcms-ui/src/styles/shared/tokens.css diff --git a/packages/craftcms-cp/src/styles/shared/variables.css b/packages/craftcms-ui/src/styles/shared/variables.css similarity index 100% rename from packages/craftcms-cp/src/styles/shared/variables.css rename to packages/craftcms-ui/src/styles/shared/variables.css diff --git a/packages/craftcms-cp/src/styles/static-variants.styles.ts b/packages/craftcms-ui/src/styles/static-variants.styles.ts similarity index 100% rename from packages/craftcms-cp/src/styles/static-variants.styles.ts rename to packages/craftcms-ui/src/styles/static-variants.styles.ts diff --git a/packages/craftcms-cp/src/styles/variants.styles.ts b/packages/craftcms-ui/src/styles/variants.styles.ts similarity index 100% rename from packages/craftcms-cp/src/styles/variants.styles.ts rename to packages/craftcms-ui/src/styles/variants.styles.ts diff --git a/packages/craftcms-cp/src/styles/visually-hidden.styles.ts b/packages/craftcms-ui/src/styles/visually-hidden.styles.ts similarity index 100% rename from packages/craftcms-cp/src/styles/visually-hidden.styles.ts rename to packages/craftcms-ui/src/styles/visually-hidden.styles.ts diff --git a/packages/craftcms-cp/src/types/events.ts b/packages/craftcms-ui/src/types/events.ts similarity index 100% rename from packages/craftcms-cp/src/types/events.ts rename to packages/craftcms-ui/src/types/events.ts diff --git a/packages/craftcms-cp/src/types/globals.ts b/packages/craftcms-ui/src/types/globals.ts similarity index 100% rename from packages/craftcms-cp/src/types/globals.ts rename to packages/craftcms-ui/src/types/globals.ts diff --git a/packages/craftcms-cp/src/types/index.ts b/packages/craftcms-ui/src/types/index.ts similarity index 100% rename from packages/craftcms-cp/src/types/index.ts rename to packages/craftcms-ui/src/types/index.ts diff --git a/packages/craftcms-cp/src/types/queue.ts b/packages/craftcms-ui/src/types/queue.ts similarity index 100% rename from packages/craftcms-cp/src/types/queue.ts rename to packages/craftcms-ui/src/types/queue.ts diff --git a/packages/craftcms-cp/src/utilities/api/actionClient.ts b/packages/craftcms-ui/src/utilities/api/actionClient.ts similarity index 100% rename from packages/craftcms-cp/src/utilities/api/actionClient.ts rename to packages/craftcms-ui/src/utilities/api/actionClient.ts diff --git a/packages/craftcms-cp/src/utilities/api/apiClient.ts b/packages/craftcms-ui/src/utilities/api/apiClient.ts similarity index 100% rename from packages/craftcms-cp/src/utilities/api/apiClient.ts rename to packages/craftcms-ui/src/utilities/api/apiClient.ts diff --git a/packages/craftcms-cp/src/utilities/attrs.test.ts b/packages/craftcms-ui/src/utilities/attrs.test.ts similarity index 100% rename from packages/craftcms-cp/src/utilities/attrs.test.ts rename to packages/craftcms-ui/src/utilities/attrs.test.ts diff --git a/packages/craftcms-cp/src/utilities/attrs.ts b/packages/craftcms-ui/src/utilities/attrs.ts similarity index 100% rename from packages/craftcms-cp/src/utilities/attrs.ts rename to packages/craftcms-ui/src/utilities/attrs.ts diff --git a/packages/craftcms-cp/src/utilities/cookies.test.ts b/packages/craftcms-ui/src/utilities/cookies.test.ts similarity index 100% rename from packages/craftcms-cp/src/utilities/cookies.test.ts rename to packages/craftcms-ui/src/utilities/cookies.test.ts diff --git a/packages/craftcms-cp/src/utilities/cookies.ts b/packages/craftcms-ui/src/utilities/cookies.ts similarity index 100% rename from packages/craftcms-cp/src/utilities/cookies.ts rename to packages/craftcms-ui/src/utilities/cookies.ts diff --git a/packages/craftcms-cp/src/utilities/dom.test.ts b/packages/craftcms-ui/src/utilities/dom.test.ts similarity index 100% rename from packages/craftcms-cp/src/utilities/dom.test.ts rename to packages/craftcms-ui/src/utilities/dom.test.ts diff --git a/packages/craftcms-cp/src/utilities/dom.ts b/packages/craftcms-ui/src/utilities/dom.ts similarity index 100% rename from packages/craftcms-cp/src/utilities/dom.ts rename to packages/craftcms-ui/src/utilities/dom.ts diff --git a/packages/craftcms-cp/src/utilities/escapeHtml.ts b/packages/craftcms-ui/src/utilities/escapeHtml.ts similarity index 100% rename from packages/craftcms-cp/src/utilities/escapeHtml.ts rename to packages/craftcms-ui/src/utilities/escapeHtml.ts diff --git a/packages/craftcms-cp/src/utilities/format.test.ts b/packages/craftcms-ui/src/utilities/format.test.ts similarity index 100% rename from packages/craftcms-cp/src/utilities/format.test.ts rename to packages/craftcms-ui/src/utilities/format.test.ts diff --git a/packages/craftcms-cp/src/utilities/format.ts b/packages/craftcms-ui/src/utilities/format.ts similarity index 100% rename from packages/craftcms-cp/src/utilities/format.ts rename to packages/craftcms-ui/src/utilities/format.ts diff --git a/packages/craftcms-cp/src/utilities/icons.test.ts b/packages/craftcms-ui/src/utilities/icons.test.ts similarity index 100% rename from packages/craftcms-cp/src/utilities/icons.test.ts rename to packages/craftcms-ui/src/utilities/icons.test.ts diff --git a/packages/craftcms-cp/src/utilities/icons.ts b/packages/craftcms-ui/src/utilities/icons.ts similarity index 100% rename from packages/craftcms-cp/src/utilities/icons.ts rename to packages/craftcms-ui/src/utilities/icons.ts diff --git a/packages/craftcms-cp/src/utilities/overlay-events.test.ts b/packages/craftcms-ui/src/utilities/overlay-events.test.ts similarity index 100% rename from packages/craftcms-cp/src/utilities/overlay-events.test.ts rename to packages/craftcms-ui/src/utilities/overlay-events.test.ts diff --git a/packages/craftcms-cp/src/utilities/overlay-events.ts b/packages/craftcms-ui/src/utilities/overlay-events.ts similarity index 100% rename from packages/craftcms-cp/src/utilities/overlay-events.ts rename to packages/craftcms-ui/src/utilities/overlay-events.ts diff --git a/packages/craftcms-cp/src/utilities/string.test.ts b/packages/craftcms-ui/src/utilities/string.test.ts similarity index 100% rename from packages/craftcms-cp/src/utilities/string.test.ts rename to packages/craftcms-ui/src/utilities/string.test.ts diff --git a/packages/craftcms-cp/src/utilities/string.ts b/packages/craftcms-ui/src/utilities/string.ts similarity index 100% rename from packages/craftcms-cp/src/utilities/string.ts rename to packages/craftcms-ui/src/utilities/string.ts diff --git a/packages/craftcms-cp/src/utilities/thumbnail-loader.ts b/packages/craftcms-ui/src/utilities/thumbnail-loader.ts similarity index 100% rename from packages/craftcms-cp/src/utilities/thumbnail-loader.ts rename to packages/craftcms-ui/src/utilities/thumbnail-loader.ts diff --git a/packages/craftcms-cp/src/utilities/translate.test.ts b/packages/craftcms-ui/src/utilities/translate.test.ts similarity index 100% rename from packages/craftcms-cp/src/utilities/translate.test.ts rename to packages/craftcms-ui/src/utilities/translate.test.ts diff --git a/packages/craftcms-cp/src/utilities/translate.ts b/packages/craftcms-ui/src/utilities/translate.ts similarity index 100% rename from packages/craftcms-cp/src/utilities/translate.ts rename to packages/craftcms-ui/src/utilities/translate.ts diff --git a/packages/craftcms-cp/tailwind.css b/packages/craftcms-ui/tailwind.css similarity index 97% rename from packages/craftcms-cp/tailwind.css rename to packages/craftcms-ui/tailwind.css index e7c21df8fac..725f6bae61e 100644 --- a/packages/craftcms-cp/tailwind.css +++ b/packages/craftcms-ui/tailwind.css @@ -6,8 +6,8 @@ * * Usage in your CSS entry file: * - * @import "@craftcms/cp/dist/styles/cp.css"; // loads :root token values - * @import "@craftcms/cp/tailwind.css"; // @theme inline — generate utilities + * @import "@craftcms/ui/dist/styles/cp.css"; // loads :root token values + * @import "@craftcms/ui/tailwind.css"; // @theme inline — generate utilities * @import "tailwindcss"; // Tailwind v4 engine * * The --c-* variables must already be in scope (via cp.css) for var() to diff --git a/packages/craftcms-cp/tsconfig.json b/packages/craftcms-ui/tsconfig.json similarity index 100% rename from packages/craftcms-cp/tsconfig.json rename to packages/craftcms-ui/tsconfig.json diff --git a/packages/craftcms-cp/vitest.config.ts b/packages/craftcms-ui/vitest.config.ts similarity index 100% rename from packages/craftcms-cp/vitest.config.ts rename to packages/craftcms-ui/vitest.config.ts diff --git a/packages/craftcms-cp/vitest.shims.d.ts b/packages/craftcms-ui/vitest.shims.d.ts similarity index 100% rename from packages/craftcms-cp/vitest.shims.d.ts rename to packages/craftcms-ui/vitest.shims.d.ts diff --git a/packages/craftcms-webpack/index.js b/packages/craftcms-webpack/index.js index ddcab6de53a..9fb42f191ad 100644 --- a/packages/craftcms-webpack/index.js +++ b/packages/craftcms-webpack/index.js @@ -284,7 +284,7 @@ const getConfig = ({context, type, watchPaths, postcssConfig, config = {}}) => { resolve: { extensions: ['.wasm', '.ts', '.tsx', '.mjs', '.js', '.json', '.vue'], // Never match the "development" exports condition: workspace packages - // (e.g. @craftcms/cp) map it to their TypeScript source for Vite's dev + // (e.g. @craftcms/ui) map it to their TypeScript source for Vite's dev // server. The legacy webpack build must always consume built output. conditionNames: ['webpack', 'browser', 'module', 'import', 'require', 'default'], }, diff --git a/resources/css/cp.css b/resources/css/cp.css index bf34ab749ce..11002ca9e64 100644 --- a/resources/css/cp.css +++ b/resources/css/cp.css @@ -4,8 +4,8 @@ CP Styles @layer theme, base, components, cp, utilities; @import 'tailwindcss/theme.css' layer(theme); @import 'tailwindcss/utilities.css' layer(utilities); -@import '@craftcms/cp/styles/cp.css' layer(cp); -@import '@craftcms/cp/tailwind.css' layer(theme); +@import '@craftcms/ui/styles/cp.css' layer(cp); +@import '@craftcms/ui/tailwind.css' layer(theme); @import './fld.css'; @import './cvd.css'; diff --git a/resources/js/bootstrap/cp.ts b/resources/js/bootstrap/cp.ts index 60a7ff76609..d2d076a179f 100644 --- a/resources/js/bootstrap/cp.ts +++ b/resources/js/bootstrap/cp.ts @@ -1,4 +1,4 @@ -import {QueueService, ConfigService} from '@craftcms/cp'; +import {QueueService, ConfigService} from '@craftcms/ui'; import {createInertiaApp, router} from '@inertiajs/vue3'; import QueueManager from '@/modules/utilities/components/queue-manager/QueueManager.vue'; import {Axios, Config, Queue} from '@/common/types/keys'; @@ -15,7 +15,7 @@ import AssetIndexes from '@/modules/utilities/components/asset-indexes/AssetInde import SystemMessages from '@/modules/utilities/components/system-messages/SystemMessages.vue'; import DeprecationErrorsToolbar from '@/modules/utilities/components/deprecation-errors/DeprecationErrorsToolbar.vue'; import CpLink from '@/common/components/CpLink.vue'; -import {setTranslations} from '@craftcms/cp/utilities/translate'; +import {setTranslations} from '@craftcms/ui/utilities/translate'; import {setUrlDefaults} from '@/wayfinder'; import {inertiaPageRegistry, resolveInertiaPage} from './inertia-pages.js'; import AppLayout from '@/common/layouts/AppLayout.vue'; diff --git a/resources/js/bootstrap/icons.ts b/resources/js/bootstrap/icons.ts index cb164ceaaa4..c50ad761607 100644 --- a/resources/js/bootstrap/icons.ts +++ b/resources/js/bootstrap/icons.ts @@ -1,4 +1,4 @@ -import {createUrlIconResolver, getIconUrl, setIconResolver} from '@craftcms/cp'; +import {createUrlIconResolver, getIconUrl, setIconResolver} from '@craftcms/ui'; const LEGACY_NAMES: Record = { alert: 'triangle-exclamation', diff --git a/resources/js/common/components/ActionMenu.vue b/resources/js/common/components/ActionMenu.vue index 3099506a466..c45815150d8 100644 --- a/resources/js/common/components/ActionMenu.vue +++ b/resources/js/common/components/ActionMenu.vue @@ -1,6 +1,6 @@