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/package-lock.json b/package-lock.json index 2a226312d7d..d3dadbeb166 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,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", "@headlessui/vue": "^1.7.23", "@inertiajs/vite": "^3.0.3", "@inertiajs/vue3": "^3.0.3", @@ -51,6 +51,7 @@ "typescript": "^6.0.3", "typescript-eslint": "^8.60.0", "vite": "^8.0.10", + "vitest": "^4.1.8", "vue-tsc": "^3.2.7" }, "engines": { @@ -588,14 +589,18 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -632,10 +637,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.29.2", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", "license": "MIT", "dependencies": { - "@babel/types": "^7.29.0" + "@babel/types": "^7.29.7" }, "bin": { "parser": "bin/babel-parser.js" @@ -1825,11 +1832,13 @@ } }, "node_modules/@babel/types": { - "version": "7.29.0", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1911,10 +1920,6 @@ "resolved": "packages/craftcms-browserslist-config", "link": true }, - "node_modules/@craftcms/cp": { - "resolved": "packages/craftcms-cp", - "link": true - }, "node_modules/@craftcms/graphiql": { "resolved": "packages/craftcms-graphiql", "link": true @@ -1931,6 +1936,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 @@ -5228,6 +5237,22 @@ "node": "^20.19.0 || >=22.12.0" } }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.17.tgz", + "integrity": "sha512-4ksWc9n0mhlZpZ9PMZgTGjeOPRu8MB1Z3Tz0Mo02eWfWCHMW1zN82Qz/pL/rC+yQa+8ZnutMF0JjJe7PjwasYw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, "node_modules/@rolldown/binding-darwin-x64": { "version": "1.0.0-rc.17", "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.17.tgz", @@ -5592,6 +5617,8 @@ }, "node_modules/@standard-schema/spec": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", "license": "MIT" }, "node_modules/@storybook/addon-a11y": { @@ -6507,6 +6534,8 @@ }, "node_modules/@types/jsesc": { "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@types/jsesc/-/jsesc-2.5.1.tgz", + "integrity": "sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==", "dev": true, "license": "MIT" }, @@ -6940,83 +6969,6 @@ "vue": "^3.2.25" } }, - "node_modules/@vitest/browser": { - "version": "4.1.5", - "license": "MIT", - "dependencies": { - "@blazediff/core": "1.9.1", - "@vitest/mocker": "4.1.5", - "@vitest/utils": "4.1.5", - "magic-string": "^0.30.21", - "pngjs": "^7.0.0", - "sirv": "^3.0.2", - "tinyrainbow": "^3.1.0", - "ws": "^8.19.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "vitest": "4.1.5" - } - }, - "node_modules/@vitest/browser-playwright": { - "version": "4.1.5", - "license": "MIT", - "dependencies": { - "@vitest/browser": "4.1.5", - "@vitest/mocker": "4.1.5", - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "playwright": "*", - "vitest": "4.1.5" - }, - "peerDependenciesMeta": { - "playwright": { - "optional": false - } - } - }, - "node_modules/@vitest/browser-playwright/node_modules/tinyrainbow": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@vitest/browser/node_modules/@vitest/pretty-format": { - "version": "4.1.5", - "license": "MIT", - "dependencies": { - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/browser/node_modules/@vitest/utils": { - "version": "4.1.5", - "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" - } - }, - "node_modules/@vitest/browser/node_modules/tinyrainbow": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/@vitest/expect": { "version": "3.2.4", "license": "MIT", @@ -7032,10 +6984,12 @@ } }, "node_modules/@vitest/mocker": { - "version": "4.1.5", + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.8.tgz", + "integrity": "sha512-LEiN/xe4OSIbKe9HQIp5OC24agGD9J5CnmMgsLohVVoOPWL9a2sBoR6VBx43jQZb7Kr1l4RCuyCJzcAa0+dojw==", "license": "MIT", "dependencies": { - "@vitest/spy": "4.1.5", + "@vitest/spy": "4.1.8", "estree-walker": "^3.0.3", "magic-string": "^0.30.21" }, @@ -7056,7 +7010,9 @@ } }, "node_modules/@vitest/mocker/node_modules/@vitest/spy": { - "version": "4.1.5", + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.8.tgz", + "integrity": "sha512-6EevtBp6OZOPF7bmz36HrGMeP3txgVSrgebWxHOafDXGkhIzfXK14f8KF6MuFfgXXUeHxmpD3BQxkV00/3s5mA==", "license": "MIT", "funding": { "url": "https://opencollective.com/vitest" @@ -7073,10 +7029,12 @@ } }, "node_modules/@vitest/runner": { - "version": "4.1.5", + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.8.tgz", + "integrity": "sha512-EmVxeBAfMJvycdjd6Hm+RbFBbA9fKvo0Kx37hNpBYoYeavH3RNsBXWDooR1mgD52dCrxIIuP7UotpfiwOikvcg==", "license": "MIT", "dependencies": { - "@vitest/utils": "4.1.5", + "@vitest/utils": "4.1.8", "pathe": "^2.0.3" }, "funding": { @@ -7084,7 +7042,9 @@ } }, "node_modules/@vitest/runner/node_modules/@vitest/pretty-format": { - "version": "4.1.5", + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.8.tgz", + "integrity": "sha512-9GasEBxpZ1VYIpqHf/0+YGg121uSNwCKOJqIrTwWP/TB7DmFCiaBpNl3aPZzoLWfWkuqhbH8vJIVobZkvdo2cA==", "license": "MIT", "dependencies": { "tinyrainbow": "^3.1.0" @@ -7094,10 +7054,12 @@ } }, "node_modules/@vitest/runner/node_modules/@vitest/utils": { - "version": "4.1.5", + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.8.tgz", + "integrity": "sha512-uOJamYALNhfJ6iolExyQM40yIQwDqYnkKtQ5VCiSe17E33H0aQ/u+1GlRuz4LZBk6Mm3sg90G9hEbmEt37C1Zg==", "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.1.5", + "@vitest/pretty-format": "4.1.8", "convert-source-map": "^2.0.0", "tinyrainbow": "^3.1.0" }, @@ -7107,17 +7069,21 @@ }, "node_modules/@vitest/runner/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==", "license": "MIT", "engines": { "node": ">=14.0.0" } }, "node_modules/@vitest/snapshot": { - "version": "4.1.5", + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.8.tgz", + "integrity": "sha512-acfZboRmAIf05DEKcBQy33VXojFJjtUdLyo7oOmV9kebb2xdU01UknNiPuPZoJZQyO7DF0gZdTGTpeAzET9QPQ==", "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.1.5", - "@vitest/utils": "4.1.5", + "@vitest/pretty-format": "4.1.8", + "@vitest/utils": "4.1.8", "magic-string": "^0.30.21", "pathe": "^2.0.3" }, @@ -7126,7 +7092,9 @@ } }, "node_modules/@vitest/snapshot/node_modules/@vitest/pretty-format": { - "version": "4.1.5", + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.8.tgz", + "integrity": "sha512-9GasEBxpZ1VYIpqHf/0+YGg121uSNwCKOJqIrTwWP/TB7DmFCiaBpNl3aPZzoLWfWkuqhbH8vJIVobZkvdo2cA==", "license": "MIT", "dependencies": { "tinyrainbow": "^3.1.0" @@ -7136,10 +7104,12 @@ } }, "node_modules/@vitest/snapshot/node_modules/@vitest/utils": { - "version": "4.1.5", + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.8.tgz", + "integrity": "sha512-uOJamYALNhfJ6iolExyQM40yIQwDqYnkKtQ5VCiSe17E33H0aQ/u+1GlRuz4LZBk6Mm3sg90G9hEbmEt37C1Zg==", "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.1.5", + "@vitest/pretty-format": "4.1.8", "convert-source-map": "^2.0.0", "tinyrainbow": "^3.1.0" }, @@ -7149,6 +7119,8 @@ }, "node_modules/@vitest/snapshot/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==", "license": "MIT", "engines": { "node": ">=14.0.0" @@ -7730,6 +7702,17 @@ "vue": "^3.5.0" } }, + "node_modules/@wc-toolkit/storybook-helpers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@wc-toolkit/storybook-helpers/-/storybook-helpers-10.3.0.tgz", + "integrity": "sha512-eMZfFVRFcgZREgt37/yQpHOEV7Vdoi2//akT65cdat0jk9yT4f2/AL8696BnRDkJvr3wup6irZSawarg+8bpXg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "lit": "^2.0.0 || ^3.0.0", + "storybook": ">=10.1.11-0 <11.0.0-0" + } + }, "node_modules/@web/config-loader": { "version": "0.1.3", "dev": true, @@ -8310,6 +8293,74 @@ "node": ">=12" } }, + "node_modules/ast-kit": { + "version": "3.0.0-beta.1", + "resolved": "https://registry.npmjs.org/ast-kit/-/ast-kit-3.0.0-beta.1.tgz", + "integrity": "sha512-trmleAnZ2PxN/loHWVhhx1qeOHSRXq4TDsBBxq3GqeJitfk3+jTQ+v/C1km/KYq9M7wKqCewMh+/NAvVH7m+bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^8.0.0-beta.4", + "estree-walker": "^3.0.3", + "pathe": "^2.0.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/ast-kit/node_modules/@babel/helper-string-parser": { + "version": "8.0.0-rc.6", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-8.0.0-rc.6.tgz", + "integrity": "sha512-BCkFy+zN6kXQed3YOT7aJl93NfDSzQc3pBfsvTVPs9gU9X3V0aefEF5kwBT0E+mDWH9QgKaZstYUQN9VdQZT4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/ast-kit/node_modules/@babel/helper-validator-identifier": { + "version": "8.0.0-rc.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-8.0.0-rc.6.tgz", + "integrity": "sha512-nVJ+1JcCgntv8d78rRo++o2wuODT0Irknx2BF8Np4Ft2CRgjLqIs4qzSZ8b66yGbBdMWGmZBO9WEZv1hhNiSpg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/ast-kit/node_modules/@babel/parser": { + "version": "8.0.0-rc.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-8.0.0-rc.6.tgz", + "integrity": "sha512-rOS8IpdO7mQELkTPlCsTgPejO0bFuZdEDCGQJouYbYf9e1FLTym7Fei2pEjq8q7MWbX0ravcd7QQYKs1TxOuog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^8.0.0-rc.6" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/ast-kit/node_modules/@babel/types": { + "version": "8.0.0-rc.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-8.0.0-rc.6.tgz", + "integrity": "sha512-p7/ABylAYlexb31wtRdIfH9L9A0Z2T/9H6zAqzqndkY2PLkvNNc580wGhp/gGKN4Sp9sQvSkhc6Oga8/O+wTyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^8.0.0-rc.6", + "@babel/helper-validator-identifier": "^8.0.0-rc.6" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, "node_modules/ast-types": { "version": "0.16.1", "license": "MIT", @@ -8320,6 +8371,25 @@ "node": ">=4" } }, + "node_modules/ast-v8-to-istanbul": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-1.0.3.tgz", + "integrity": "sha512-jCMQ6ZylLPudp0CDfBmQBZUsrh1/8psbmu9ibeVWKuHWD0YrH9YABwlKu5kVEFoT0GCQQW9Z/SxfuEbbkGQCRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "estree-walker": "^3.0.3", + "js-tokens": "^10.0.0" + } + }, + "node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz", + "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==", + "dev": true, + "license": "MIT" + }, "node_modules/astral-regex": { "version": "2.0.0", "dev": true, @@ -8790,6 +8860,16 @@ "node": ">= 0.8" } }, + "node_modules/cac": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cac/-/cac-7.0.0.tgz", + "integrity": "sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.19.0" + } + }, "node_modules/cacache": { "version": "16.1.3", "license": "ISC", @@ -13138,6 +13218,13 @@ "node": ">=0.10.0" } }, + "node_modules/hookable": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-6.1.1.tgz", + "integrity": "sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==", + "dev": true, + "license": "MIT" + }, "node_modules/hookified": { "version": "1.15.0", "dev": true, @@ -15344,6 +15431,18 @@ "@jridgewell/sourcemap-codec": "^1.5.5" } }, + "node_modules/magicast": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.3.tgz", + "integrity": "sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.3", + "@babel/types": "^7.29.0", + "source-map-js": "^1.2.1" + } + }, "node_modules/make-dir": { "version": "4.0.0", "dev": true, @@ -18809,40 +18908,193 @@ "version": "3.0.3", "license": "Unlicense" }, - "node_modules/rs-module-lexer": { - "version": "2.8.0", - "dev": true, - "hasInstallScript": true, + "node_modules/rolldown": { + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.17.tgz", + "integrity": "sha512-ZrT53oAKrtA4+YtBWPQbtPOxIbVDbxT0orcYERKd63VJTF13zPcgXTvD4843L8pcsI7M6MErt8QtON6lrB9tyA==", "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.127.0", + "@rolldown/pluginutils": "1.0.0-rc.17" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, "engines": { - "node": ">=14" + "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@xn-sakina/rml-darwin-arm64": "2.8.0", - "@xn-sakina/rml-darwin-x64": "2.8.0", - "@xn-sakina/rml-linux-arm-gnueabihf": "2.8.0", - "@xn-sakina/rml-linux-arm64-gnu": "2.8.0", - "@xn-sakina/rml-linux-arm64-musl": "2.8.0", - "@xn-sakina/rml-linux-x64-gnu": "2.8.0", - "@xn-sakina/rml-linux-x64-musl": "2.8.0", - "@xn-sakina/rml-win32-arm64-msvc": "2.8.0", - "@xn-sakina/rml-win32-x64-msvc": "2.8.0" + "@rolldown/binding-android-arm64": "1.0.0-rc.17", + "@rolldown/binding-darwin-arm64": "1.0.0-rc.17", + "@rolldown/binding-darwin-x64": "1.0.0-rc.17", + "@rolldown/binding-freebsd-x64": "1.0.0-rc.17", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.17", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.17", + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.17", + "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.17", + "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.17", + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.17", + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.17", + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.17", + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.17", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.17", + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.17" } }, - "node_modules/run-applescript": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", - "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "node_modules/rolldown-plugin-dts": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/rolldown-plugin-dts/-/rolldown-plugin-dts-0.23.2.tgz", + "integrity": "sha512-PbSqLawLgZBGcOGT3yqWBGn4cX+wh2nt5FuBGdcMHyOhoukmjbhYAl8NT9sE4U38Cm9tqLOIQeOrvzeayM0DLQ==", + "dev": true, "license": "MIT", + "dependencies": { + "@babel/generator": "8.0.0-rc.3", + "@babel/helper-validator-identifier": "8.0.0-rc.3", + "@babel/parser": "8.0.0-rc.3", + "@babel/types": "8.0.0-rc.3", + "ast-kit": "^3.0.0-beta.1", + "birpc": "^4.0.0", + "dts-resolver": "^2.1.3", + "get-tsconfig": "^4.13.7", + "obug": "^2.1.1", + "picomatch": "^4.0.4" + }, "engines": { - "node": ">=18" + "node": ">=20.19.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/sxzz" + }, + "peerDependencies": { + "@ts-macro/tsc": "^0.3.6", + "@typescript/native-preview": ">=7.0.0-dev.20260325.1", + "rolldown": "^1.0.0-rc.12", + "typescript": "^5.0.0 || ^6.0.0", + "vue-tsc": "~3.2.0" + }, + "peerDependenciesMeta": { + "@ts-macro/tsc": { + "optional": true + }, + "@typescript/native-preview": { + "optional": true + }, + "typescript": { + "optional": true + }, + "vue-tsc": { + "optional": true + } } }, - "node_modules/run-async": { - "version": "3.0.0", + "node_modules/rolldown-plugin-dts/node_modules/@babel/generator": { + "version": "8.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-8.0.0-rc.3.tgz", + "integrity": "sha512-em37/13/nR320G4jab/nIIHZgc2Wz2y/D39lxnTyxB4/D/omPQncl/lSdlnJY1OhQcRGugTSIF2l/69o31C9dA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^8.0.0-rc.3", + "@babel/types": "^8.0.0-rc.3", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "@types/jsesc": "^2.5.0", + "jsesc": "^3.0.2" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/rolldown-plugin-dts/node_modules/@babel/helper-string-parser": { + "version": "8.0.0-rc.6", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-8.0.0-rc.6.tgz", + "integrity": "sha512-BCkFy+zN6kXQed3YOT7aJl93NfDSzQc3pBfsvTVPs9gU9X3V0aefEF5kwBT0E+mDWH9QgKaZstYUQN9VdQZT4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/rolldown-plugin-dts/node_modules/@babel/helper-validator-identifier": { + "version": "8.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-8.0.0-rc.3.tgz", + "integrity": "sha512-8AWCJ2VJJyDFlGBep5GpaaQ9AAaE/FjAcrqI7jyssYhtL7WGV0DOKpJsQqM037xDbpRLHXsY8TwU7zDma7coOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/rolldown-plugin-dts/node_modules/@babel/parser": { + "version": "8.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-8.0.0-rc.3.tgz", + "integrity": "sha512-B20dvP3MfNc/XS5KKCHy/oyWl5IA6Cn9YjXRdDlCjNmUFrjvLXMNUfQq/QUy9fnG2gYkKKcrto2YaF9B32ToOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^8.0.0-rc.3" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/rolldown-plugin-dts/node_modules/@babel/types": { + "version": "8.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-8.0.0-rc.3.tgz", + "integrity": "sha512-mOm5ZrYmphGfqVWoH5YYMTITb3cDXsFgmvFlvkvWDMsR9X8RFnt7a0Wb6yNIdoFsiMO9WjYLq+U/FMtqIYAF8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^8.0.0-rc.3", + "@babel/helper-validator-identifier": "^8.0.0-rc.3" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/rolldown/node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.17.tgz", + "integrity": "sha512-n8iosDOt6Ig1UhJ2AYqoIhHWh/isz0xpicHTzpKBeotdVsTEcxsSA/i3EVM7gQAj0rU27OLAxCjzlj15IWY7bg==", + "license": "MIT" + }, + "node_modules/rs-module-lexer": { + "version": "2.8.0", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "optionalDependencies": { + "@xn-sakina/rml-darwin-arm64": "2.8.0", + "@xn-sakina/rml-darwin-x64": "2.8.0", + "@xn-sakina/rml-linux-arm-gnueabihf": "2.8.0", + "@xn-sakina/rml-linux-arm64-gnu": "2.8.0", + "@xn-sakina/rml-linux-arm64-musl": "2.8.0", + "@xn-sakina/rml-linux-x64-gnu": "2.8.0", + "@xn-sakina/rml-linux-x64-musl": "2.8.0", + "@xn-sakina/rml-win32-arm64-msvc": "2.8.0", + "@xn-sakina/rml-win32-x64-msvc": "2.8.0" + } + }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-async": { + "version": "3.0.0", "dev": true, "license": "MIT", "engines": { @@ -21844,58 +22096,6 @@ } } }, - "node_modules/unrun/node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.0-rc.17", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/unrun/node_modules/@rolldown/pluginutils": { - "version": "1.0.0-rc.17", - "dev": true, - "license": "MIT" - }, - "node_modules/unrun/node_modules/rolldown": { - "version": "1.0.0-rc.17", - "dev": true, - "license": "MIT", - "dependencies": { - "@oxc-project/types": "=0.127.0", - "@rolldown/pluginutils": "1.0.0-rc.17" - }, - "bin": { - "rolldown": "bin/cli.mjs" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.0-rc.17", - "@rolldown/binding-darwin-arm64": "1.0.0-rc.17", - "@rolldown/binding-darwin-x64": "1.0.0-rc.17", - "@rolldown/binding-freebsd-x64": "1.0.0-rc.17", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.17", - "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.17", - "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.17", - "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.17", - "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.17", - "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.17", - "@rolldown/binding-linux-x64-musl": "1.0.0-rc.17", - "@rolldown/binding-openharmony-arm64": "1.0.0-rc.17", - "@rolldown/binding-wasm32-wasi": "1.0.0-rc.17", - "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.17", - "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.17" - } - }, "node_modules/update-browserslist-db": { "version": "1.1.4", "funding": [ @@ -22200,24 +22400,6 @@ } } }, - "node_modules/vite/node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.0-rc.17", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vite/node_modules/@rolldown/pluginutils": { - "version": "1.0.0-rc.17", - "license": "MIT" - }, "node_modules/vite/node_modules/fsevents": { "version": "2.3.3", "license": "MIT", @@ -22229,48 +22411,19 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/vite/node_modules/rolldown": { - "version": "1.0.0-rc.17", - "license": "MIT", - "dependencies": { - "@oxc-project/types": "=0.127.0", - "@rolldown/pluginutils": "1.0.0-rc.17" - }, - "bin": { - "rolldown": "bin/cli.mjs" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.0-rc.17", - "@rolldown/binding-darwin-arm64": "1.0.0-rc.17", - "@rolldown/binding-darwin-x64": "1.0.0-rc.17", - "@rolldown/binding-freebsd-x64": "1.0.0-rc.17", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.17", - "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.17", - "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.17", - "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.17", - "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.17", - "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.17", - "@rolldown/binding-linux-x64-musl": "1.0.0-rc.17", - "@rolldown/binding-openharmony-arm64": "1.0.0-rc.17", - "@rolldown/binding-wasm32-wasi": "1.0.0-rc.17", - "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.17", - "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.17" - } - }, "node_modules/vitest": { - "version": "4.1.5", - "license": "MIT", - "dependencies": { - "@vitest/expect": "4.1.5", - "@vitest/mocker": "4.1.5", - "@vitest/pretty-format": "4.1.5", - "@vitest/runner": "4.1.5", - "@vitest/snapshot": "4.1.5", - "@vitest/spy": "4.1.5", - "@vitest/utils": "4.1.5", + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.8.tgz", + "integrity": "sha512-flY6ScbCIt9HThs+C5HS7jvGOB560DJtk/Z15IQROTA6zEy49Nh8T/dofWTQL+n3vswqn87sbJNiuqw1SDp5Ig==", + "license": "MIT", + "dependencies": { + "@vitest/expect": "4.1.8", + "@vitest/mocker": "4.1.8", + "@vitest/pretty-format": "4.1.8", + "@vitest/runner": "4.1.8", + "@vitest/snapshot": "4.1.8", + "@vitest/spy": "4.1.8", + "@vitest/utils": "4.1.8", "es-module-lexer": "^2.0.0", "expect-type": "^1.3.0", "magic-string": "^0.30.21", @@ -22298,12 +22451,12 @@ "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "4.1.5", - "@vitest/browser-preview": "4.1.5", - "@vitest/browser-webdriverio": "4.1.5", - "@vitest/coverage-istanbul": "4.1.5", - "@vitest/coverage-v8": "4.1.5", - "@vitest/ui": "4.1.5", + "@vitest/browser-playwright": "4.1.8", + "@vitest/browser-preview": "4.1.8", + "@vitest/browser-webdriverio": "4.1.8", + "@vitest/coverage-istanbul": "4.1.8", + "@vitest/coverage-v8": "4.1.8", + "@vitest/ui": "4.1.8", "happy-dom": "*", "jsdom": "*", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" @@ -22348,13 +22501,15 @@ } }, "node_modules/vitest/node_modules/@vitest/expect": { - "version": "4.1.5", + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.8.tgz", + "integrity": "sha512-h3nDO677RDLEGlBxyQ5CW8RlMThSKSRLUePLOx09gNIWRL40edgA1GCZSZgf1W55MFAG6/Sw14KeaAnqv0NKdQ==", "license": "MIT", "dependencies": { "@standard-schema/spec": "^1.1.0", "@types/chai": "^5.2.2", - "@vitest/spy": "4.1.5", - "@vitest/utils": "4.1.5", + "@vitest/spy": "4.1.8", + "@vitest/utils": "4.1.8", "chai": "^6.2.2", "tinyrainbow": "^3.1.0" }, @@ -22363,7 +22518,9 @@ } }, "node_modules/vitest/node_modules/@vitest/pretty-format": { - "version": "4.1.5", + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.8.tgz", + "integrity": "sha512-9GasEBxpZ1VYIpqHf/0+YGg121uSNwCKOJqIrTwWP/TB7DmFCiaBpNl3aPZzoLWfWkuqhbH8vJIVobZkvdo2cA==", "license": "MIT", "dependencies": { "tinyrainbow": "^3.1.0" @@ -22373,17 +22530,21 @@ } }, "node_modules/vitest/node_modules/@vitest/spy": { - "version": "4.1.5", + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.8.tgz", + "integrity": "sha512-6EevtBp6OZOPF7bmz36HrGMeP3txgVSrgebWxHOafDXGkhIzfXK14f8KF6MuFfgXXUeHxmpD3BQxkV00/3s5mA==", "license": "MIT", "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/vitest/node_modules/@vitest/utils": { - "version": "4.1.5", + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.8.tgz", + "integrity": "sha512-uOJamYALNhfJ6iolExyQM40yIQwDqYnkKtQ5VCiSe17E33H0aQ/u+1GlRuz4LZBk6Mm3sg90G9hEbmEt37C1Zg==", "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.1.5", + "@vitest/pretty-format": "4.1.8", "convert-source-map": "^2.0.0", "tinyrainbow": "^3.1.0" }, @@ -22393,6 +22554,8 @@ }, "node_modules/vitest/node_modules/chai": { "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", "license": "MIT", "engines": { "node": ">=18" @@ -22400,10 +22563,14 @@ }, "node_modules/vitest/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==", "license": "MIT" }, "node_modules/vitest/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==", "license": "MIT", "engines": { "node": ">=14.0.0" @@ -23796,6 +23963,7 @@ "packages/craftcms-cp": { "name": "@craftcms/cp", "version": "0.0.0", + "extraneous": true, "license": "MIT", "dependencies": { "@chromatic-com/storybook": "^5.1.2", @@ -23850,1300 +24018,1167 @@ "lit": "3.x" } }, - "packages/craftcms-cp/node_modules/@babel/generator": { - "version": "8.0.0-rc.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^8.0.0-rc.3", - "@babel/types": "^8.0.0-rc.3", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "@types/jsesc": "^2.5.0", - "jsesc": "^3.0.2" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "packages/craftcms-cp/node_modules/@babel/generator/node_modules/@babel/helper-validator-identifier": { - "version": "8.0.0-rc.4", - "dev": true, - "license": "MIT", - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "packages/craftcms-cp/node_modules/@babel/generator/node_modules/@babel/parser": { - "version": "8.0.0-rc.4", - "dev": true, + "packages/craftcms-graphiql": { + "name": "@craftcms/graphiql", + "version": "1.0.0", "license": "MIT", "dependencies": { - "@babel/types": "^8.0.0-rc.4" + "graphiql": "^4.1.0", + "graphql": "^16.10.0", + "graphql-ws": "^6.0.4", + "react": "^19.2.0", + "react-dom": "^19.2.0" }, - "bin": { - "parser": "bin/babel-parser.js" + "devDependencies": { + "@craftcms/sass": "file:../craftcms-sass", + "@craftcms/webpack": "file:../craftcms-webpack" }, "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">=20" } }, - "packages/craftcms-cp/node_modules/@babel/generator/node_modules/@babel/types": { - "version": "8.0.0-rc.4", - "dev": true, - "license": "MIT", + "packages/craftcms-legacy": { + "name": "@craftcms/legacy", "dependencies": { - "@babel/helper-string-parser": "^8.0.0-rc.4", - "@babel/helper-validator-identifier": "^8.0.0-rc.4" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "packages/craftcms-cp/node_modules/@babel/helper-string-parser": { - "version": "8.0.0-rc.4", - "dev": true, - "license": "MIT", - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "packages/craftcms-cp/node_modules/@babel/helper-validator-identifier": { - "version": "8.0.0-rc.3", - "dev": true, - "license": "MIT", - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "packages/craftcms-cp/node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.0-rc.17", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "@benmajor/jquery-touch-events": "^2.0.3", + "@craftcms/graphiql": "file:../craftcms-graphiql", + "@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", + "@simplewebauthn/browser": "^13.3.0", + "@types/jquery": "^3.5.34", + "accounting": "^0.4.1", + "apexcharts": "^5.10.6", + "axios": "^1.15.1", + "blueimp-file-upload": "^10.32.0", + "codemirror": "^5.65.21", + "d3": "^7.9.0", + "fabric": "^1.7.22", + "htmx.org": "^1.9.12", + "iframe-resizer": "^4.4.5", + "inputmask": "^5.0.9", + "jquery": "^3.7.1", + "jquery-ui": "^1.14.2", + "jquery.payment": "^3.0.0", + "picturefill": "^3.0.3", + "punycode": "^2.3.1", + "swiper": "^8.4.7", + "timepicker": "^1.14.1", + "ttf2woff2": "^5.0.0", + "typescript": "^5.9.3", + "v-tooltip": "^2.1.3", + "velocity-animate": "^1.5.2", + "vue": "^2.7.16", + "vue-autosuggest": "^2.2.0", + "vue-awesome-swiper": "^4.1.1", + "vue-cleave": "^1.2.2", + "vue-lodash": "^1.0.4", + "vue-router": "^3.6.5", + "vuex": "^3.6.2", + "xregexp": "^5.1.2", + "yii2-pjax": "~2.0.8" + }, + "devDependencies": { + "@craftcms/playwright": "file:../craftcms-playwright", + "@craftcms/webpack": "file:../craftcms-webpack", + "@playwright/test": "^1.59.1", + "husky": "^9.1.7", + "lint-staged": "^16.4.0", + "pkg-dir": "^5.0.0", + "prettier": "3.8.3", + "stylelint": "^16.26.1", + "stylelint-config-standard": "^36.0.1", + "stylelint-config-standard-scss": "^13.1.0", + "stylelint-prettier": "^5.0.3", + "stylelint-use-logical-spec": "^5.0.1", + "tailwindcss": "^3.4.19", + "vue-apexcharts": "^1.7.0" + }, "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">=20" + }, + "optionalDependencies": { + "@awesome.me/kit-ddaed3f5c5": "^1.0.74" } }, - "packages/craftcms-cp/node_modules/@rolldown/pluginutils": { - "version": "1.0.0-rc.17", - "dev": true, - "license": "MIT" - }, - "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", + "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", - "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" + "engines": { + "node": ">=18" }, "peerDependencies": { - "@vitest/browser": "4.1.5", - "vitest": "4.1.5" - }, - "peerDependenciesMeta": { - "@vitest/browser": { - "optional": true - } + "@csstools/css-tokenizer": "^3.0.4" } }, - "packages/craftcms-cp/node_modules/@vitest/pretty-format": { - "version": "4.1.5", + "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", - "dependencies": { - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" + "engines": { + "node": ">=18" } }, - "packages/craftcms-cp/node_modules/@vitest/utils": { - "version": "4.1.5", + "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", - "dependencies": { - "@vitest/pretty-format": "4.1.5", - "convert-source-map": "^2.0.0", - "tinyrainbow": "^3.1.0" + "engines": { + "node": ">=18" }, - "funding": { - "url": "https://opencollective.com/vitest" + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" } }, - "packages/craftcms-cp/node_modules/@wc-toolkit/storybook-helpers": { - "version": "10.3.0", - "dev": true, - "license": "MIT", - "peerDependencies": { - "lit": "^2.0.0 || ^3.0.0", - "storybook": ">=10.1.11-0 <11.0.0-0" + "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-cp/node_modules/ast-kit": { - "version": "3.0.0-beta.1", - "dev": true, + "packages/craftcms-legacy/node_modules/@vue/compiler-sfc/node_modules/prettier": { + "version": "2.8.8", "license": "MIT", - "dependencies": { - "@babel/parser": "^8.0.0-beta.4", - "estree-walker": "^3.0.3", - "pathe": "^2.0.3" + "optional": true, + "bin": { + "prettier": "bin-prettier.js" }, "engines": { - "node": ">=20.19.0" + "node": ">=10.13.0" }, "funding": { - "url": "https://github.com/sponsors/sxzz" + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "packages/craftcms-cp/node_modules/ast-kit/node_modules/@babel/helper-validator-identifier": { - "version": "8.0.0-rc.4", + "packages/craftcms-legacy/node_modules/ansi-regex": { + "version": "5.0.1", "dev": true, "license": "MIT", "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">=8" } }, - "packages/craftcms-cp/node_modules/ast-kit/node_modules/@babel/parser": { - "version": "8.0.0-rc.4", + "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": { - "@babel/types": "^8.0.0-rc.4" - }, - "bin": { - "parser": "bin/babel-parser.js" + "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": "^20.19.0 || >=22.12.0" + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "packages/craftcms-cp/node_modules/ast-kit/node_modules/@babel/types": { - "version": "8.0.0-rc.4", + "packages/craftcms-legacy/node_modules/globby": { + "version": "11.1.0", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^8.0.0-rc.4", - "@babel/helper-validator-identifier": "^8.0.0-rc.4" + "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": "^20.19.0 || >=22.12.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/craftcms-cp/node_modules/ast-v8-to-istanbul": { - "version": "1.0.0", + "packages/craftcms-legacy/node_modules/globby/node_modules/ignore": { + "version": "5.3.2", "dev": true, "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.31", - "estree-walker": "^3.0.3", - "js-tokens": "^10.0.0" + "engines": { + "node": ">= 4" } }, - "packages/craftcms-cp/node_modules/balanced-match": { - "version": "4.0.4", + "packages/craftcms-legacy/node_modules/html-tags": { + "version": "3.3.1", "dev": true, "license": "MIT", "engines": { - "node": "18 || 20 || >=22" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/craftcms-cp/node_modules/brace-expansion": { - "version": "5.0.5", + "packages/craftcms-legacy/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", "dev": true, "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=8" } }, - "packages/craftcms-cp/node_modules/cac": { - "version": "7.0.0", + "packages/craftcms-legacy/node_modules/jiti": { + "version": "1.21.7", "dev": true, "license": "MIT", - "engines": { - "node": ">=20.19.0" + "bin": { + "jiti": "bin/jiti.js" } }, - "packages/craftcms-cp/node_modules/chalk": { - "version": "5.6.2", + "packages/craftcms-legacy/node_modules/mathml-tag-names": { + "version": "2.1.3", "dev": true, "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "packages/craftcms-cp/node_modules/cli-spinners": { - "version": "3.3.0", + "packages/craftcms-legacy/node_modules/meow": { + "version": "13.2.0", "dev": true, "license": "MIT", "engines": { - "node": ">=18.20" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/craftcms-cp/node_modules/del": { - "version": "8.0.1", + "packages/craftcms-legacy/node_modules/pkg-dir": { + "version": "5.0.0", "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" + "find-up": "^5.0.0" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10" } }, - "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-legacy/node_modules/postcss-selector-parser": { + "version": "7.1.1", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" }, "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=4" } }, - "packages/craftcms-cp/node_modules/globby": { - "version": "14.1.0", + "packages/craftcms-legacy/node_modules/string-width": { + "version": "4.2.3", "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" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "packages/craftcms-cp/node_modules/hookable": { - "version": "6.1.1", - "dev": true, - "license": "MIT" - }, - "packages/craftcms-cp/node_modules/is-interactive": { - "version": "2.0.0", + "packages/craftcms-legacy/node_modules/strip-ansi": { + "version": "6.0.1", "dev": true, "license": "MIT", - "engines": { - "node": ">=12" + "dependencies": { + "ansi-regex": "^5.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=8" } }, - "packages/craftcms-cp/node_modules/is-path-cwd": { - "version": "3.0.0", + "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", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "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" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "stylelint": "bin/stylelint.mjs" + }, + "engines": { + "node": ">=18.12.0" } }, - "packages/craftcms-cp/node_modules/is-path-inside": { - "version": "4.0.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": ">=12" + "node": ">=18.12.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "stylelint": "^16.1.0" } }, - "packages/craftcms-cp/node_modules/is-unicode-supported": { - "version": "2.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" + "node": ">=18.12.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "postcss": "^8.3.3", + "stylelint": "^16.6.1" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } } }, - "packages/craftcms-cp/node_modules/js-tokens": { - "version": "10.0.0", - "dev": true, - "license": "MIT" - }, - "packages/craftcms-cp/node_modules/log-symbols": { - "version": "7.0.1", + "packages/craftcms-legacy/node_modules/stylelint-config-standard": { + "version": "36.0.1", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], "license": "MIT", "dependencies": { - "is-unicode-supported": "^2.0.0", - "yoctocolors": "^2.1.1" + "stylelint-config-recommended": "^14.0.1" }, "engines": { - "node": ">=18" + "node": ">=18.12.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "stylelint": "^16.1.0" } }, - "packages/craftcms-cp/node_modules/magicast": { - "version": "0.5.2", + "packages/craftcms-legacy/node_modules/stylelint-config-standard-scss": { + "version": "13.1.0", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.29.0", - "@babel/types": "^7.29.0", - "source-map-js": "^1.2.1" - } - }, - "packages/craftcms-cp/node_modules/minimatch": { - "version": "10.2.5", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" + "stylelint-config-recommended-scss": "^14.0.0", + "stylelint-config-standard": "^36.0.0" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=18.12.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "postcss": "^8.3.3", + "stylelint": "^16.3.1" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } } }, - "packages/craftcms-cp/node_modules/ora": { - "version": "9.4.0", + "packages/craftcms-legacy/node_modules/stylelint-scss": { + "version": "6.14.0", "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" + "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": ">=20" + "node": ">=18.12.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "stylelint": "^16.8.2" } }, - "packages/craftcms-cp/node_modules/p-map": { - "version": "7.0.4", + "packages/craftcms-legacy/node_modules/tailwindcss": { + "version": "3.4.19", "dev": true, "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages/craftcms-cp/node_modules/path-scurry": { - "version": "2.0.2", - "dev": true, - "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "packages/craftcms-cp/node_modules/path-type": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages/craftcms-cp/node_modules/rimraf": { - "version": "6.1.3", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "glob": "^13.0.3", - "package-json-from-dist": "^1.0.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" }, "bin": { - "rimraf": "dist/esm/bin.mjs" + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" }, "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=14.0.0" } }, - "packages/craftcms-cp/node_modules/rolldown": { - "version": "1.0.0-rc.17", + "packages/craftcms-legacy/node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@oxc-project/types": "=0.127.0", - "@rolldown/pluginutils": "1.0.0-rc.17" - }, - "bin": { - "rolldown": "bin/cli.mjs" + "is-glob": "^4.0.3" }, "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.0-rc.17", - "@rolldown/binding-darwin-arm64": "1.0.0-rc.17", - "@rolldown/binding-darwin-x64": "1.0.0-rc.17", - "@rolldown/binding-freebsd-x64": "1.0.0-rc.17", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.17", - "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.17", - "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.17", - "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.17", - "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.17", - "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.17", - "@rolldown/binding-linux-x64-musl": "1.0.0-rc.17", - "@rolldown/binding-openharmony-arm64": "1.0.0-rc.17", - "@rolldown/binding-wasm32-wasi": "1.0.0-rc.17", - "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.17", - "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.17" + "node": ">=10.13.0" } }, - "packages/craftcms-cp/node_modules/rolldown-plugin-dts": { - "version": "0.23.2", + "packages/craftcms-legacy/node_modules/tailwindcss/node_modules/postcss-selector-parser": { + "version": "6.1.2", "dev": true, "license": "MIT", "dependencies": { - "@babel/generator": "8.0.0-rc.3", - "@babel/helper-validator-identifier": "8.0.0-rc.3", - "@babel/parser": "8.0.0-rc.3", - "@babel/types": "8.0.0-rc.3", - "ast-kit": "^3.0.0-beta.1", - "birpc": "^4.0.0", - "dts-resolver": "^2.1.3", - "get-tsconfig": "^4.13.7", - "obug": "^2.1.1", - "picomatch": "^4.0.4" + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" }, "engines": { - "node": ">=20.19.0" - }, - "funding": { - "url": "https://github.com/sponsors/sxzz" - }, - "peerDependencies": { - "@ts-macro/tsc": "^0.3.6", - "@typescript/native-preview": ">=7.0.0-dev.20260325.1", - "rolldown": "^1.0.0-rc.12", - "typescript": "^5.0.0 || ^6.0.0", - "vue-tsc": "~3.2.0" - }, - "peerDependenciesMeta": { - "@ts-macro/tsc": { - "optional": true - }, - "@typescript/native-preview": { - "optional": true - }, - "typescript": { - "optional": true - }, - "vue-tsc": { - "optional": true - } + "node": ">=4" } }, - "packages/craftcms-cp/node_modules/rolldown-plugin-dts/node_modules/@babel/parser": { - "version": "8.0.0-rc.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^8.0.0-rc.3" - }, + "packages/craftcms-legacy/node_modules/typescript": { + "version": "5.9.3", + "license": "Apache-2.0", "bin": { - "parser": "bin/babel-parser.js" + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": "^20.19.0 || >=22.12.0" + "node": ">=14.17" } }, - "packages/craftcms-cp/node_modules/rolldown-plugin-dts/node_modules/@babel/types": { - "version": "8.0.0-rc.3", - "dev": true, + "packages/craftcms-legacy/node_modules/vue": { + "version": "2.7.16", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^8.0.0-rc.3", - "@babel/helper-validator-identifier": "^8.0.0-rc.3" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" + "@vue/compiler-sfc": "2.7.16", + "csstype": "^3.1.0" } }, - "packages/craftcms-cp/node_modules/semver": { - "version": "7.7.4", + "packages/craftcms-legacy/node_modules/write-file-atomic": { + "version": "5.0.1", "dev": true, "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "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" + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" }, "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 - } + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "packages/craftcms-graphiql": { - "name": "@craftcms/graphiql", + "packages/craftcms-playwright": { + "name": "@craftcms/playwright", "version": "1.0.0", "license": "MIT", "dependencies": { - "graphiql": "^4.1.0", - "graphql": "^16.10.0", - "graphql-ws": "^6.0.4", - "react": "^19.2.0", - "react-dom": "^19.2.0" - }, - "devDependencies": { - "@craftcms/sass": "file:../craftcms-sass", - "@craftcms/webpack": "file:../craftcms-webpack" + "@playwright/test": "^1.47.0", + "events": "^3.3.0", + "signale": "^1.4.0" }, - "engines": { - "node": ">=20" + "bin": { + "craft-playwright": "src/cli.js" } }, - "packages/craftcms-legacy": { - "name": "@craftcms/legacy", + "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": { - "@benmajor/jquery-touch-events": "^2.0.3", - "@craftcms/cp": "file:../craftcms-cp", - "@craftcms/graphiql": "file:../craftcms-graphiql", - "@craftcms/sass": "file:../craftcms-sass", - "@craftcms/vue": "file:../craftcms-vue", - "@floating-ui/dom": "^1.7.6", - "@selectize/selectize": "selectize/selectize.js#master", + "@chromatic-com/storybook": "^5.1.2", + "@formatjs/intl-durationformat": "^0.10.8", + "@github/relative-time-element": "^5.0.0", "@simplewebauthn/browser": "^13.3.0", - "@types/jquery": "^3.5.34", - "accounting": "^0.4.1", - "apexcharts": "^5.10.6", - "axios": "^1.15.1", - "blueimp-file-upload": "^10.32.0", - "codemirror": "^5.65.21", - "d3": "^7.9.0", - "fabric": "^1.7.22", - "htmx.org": "^1.9.12", - "iframe-resizer": "^4.4.5", - "inputmask": "^5.0.9", - "jquery": "^3.7.1", - "jquery-ui": "^1.14.2", - "jquery.payment": "^3.0.0", - "picturefill": "^3.0.3", - "punycode": "^2.3.1", - "swiper": "^8.4.7", - "timepicker": "^1.14.1", - "ttf2woff2": "^5.0.0", - "typescript": "^5.9.3", - "v-tooltip": "^2.1.3", - "velocity-animate": "^1.5.2", - "vue": "^2.7.16", - "vue-autosuggest": "^2.2.0", - "vue-awesome-swiper": "^4.1.1", - "vue-cleave": "^1.2.2", - "vue-lodash": "^1.0.4", - "vue-router": "^3.6.5", - "vuex": "^3.6.2", - "xregexp": "^5.1.2", - "yii2-pjax": "~2.0.8" + "@vitest/browser-playwright": "^4.1.5" }, "devDependencies": { - "@craftcms/playwright": "file:../craftcms-playwright", - "@craftcms/webpack": "file:../craftcms-webpack", - "@playwright/test": "^1.59.1", - "husky": "^9.1.7", - "lint-staged": "^16.4.0", - "pkg-dir": "^5.0.0", - "prettier": "3.8.3", - "stylelint": "^16.26.1", - "stylelint-config-standard": "^36.0.1", - "stylelint-config-standard-scss": "^13.1.0", - "stylelint-prettier": "^5.0.3", - "stylelint-use-logical-spec": "^5.0.1", - "tailwindcss": "^3.4.19", - "vue-apexcharts": "^1.7.0" - }, - "engines": { - "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" + "@adobe/leonardo-contrast-colors": "^1.1.0", + "@arethetypeswrong/cli": "^0.18.2", + "@awesome.me/webawesome": "^3.6.0", + "@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": { - "@csstools/css-tokenizer": "^3.0.4" + "@awesome.me/webawesome": "^3.0.0", + "@lion/ui": "0.x", + "lit": "3.x" } }, - "packages/craftcms-legacy/node_modules/@csstools/css-tokenizer": { - "version": "3.0.4", + "packages/craftcms-ui/node_modules/@types/jquery": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-4.0.0.tgz", + "integrity": "sha512-Z+to+A2VkaHq1DfI2oSwsoCdhCHMpTSgjWzNcbNlRGYzksDBpPUgEcAL+RQjOBJRaLoEAOHXxqDGBVP+BblBwg==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - } + "license": "MIT" }, - "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" - } - ], + "packages/craftcms-ui/node_modules/@vitest/browser": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-4.1.8.tgz", + "integrity": "sha512-u21VzX07HzlJYpFgkxmjEXar/tG2UqWGgyGG/46SrrPc7rSdCTPw5vuowopO9CIqF8UCUQzDFdbVnNpw6N0BfQ==", "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" + "@blazediff/core": "1.9.1", + "@vitest/mocker": "4.1.8", + "@vitest/utils": "4.1.8", + "magic-string": "^0.30.21", + "pngjs": "^7.0.0", + "sirv": "^3.0.2", + "tinyrainbow": "^3.1.0", + "ws": "^8.19.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, + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": "4.1.8" + } + }, + "packages/craftcms-ui/node_modules/@vitest/browser-playwright": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@vitest/browser-playwright/-/browser-playwright-4.1.8.tgz", + "integrity": "sha512-SR7FqgegaexEg73xvf3ArtygXegagMdXnL0EZMpxrWvvhQxvicD/E8p0ib0J91riPRtQUViyh67Xjw3NqvyhVg==", "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" + "@vitest/browser": "4.1.8", + "@vitest/mocker": "4.1.8", + "tinyrainbow": "^3.1.0" }, "funding": { - "url": "https://paulmillr.com/funding/" + "url": "https://opencollective.com/vitest" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "peerDependencies": { + "playwright": "*", + "vitest": "4.1.8" + }, + "peerDependenciesMeta": { + "playwright": { + "optional": false + } } }, - "packages/craftcms-legacy/node_modules/globby": { - "version": "11.1.0", + "packages/craftcms-ui/node_modules/@vitest/coverage-v8": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.8.tgz", + "integrity": "sha512-lt3kovsyHwYe00wq4D1ti0Z974fWj4NLp6siqiyEufUpyFwK9Yhi7rBhac9JL5aA0zoMrJqc4vYPZRUnI7l7nw==", "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" + "@bcoe/v8-coverage": "^1.0.2", + "@vitest/utils": "4.1.8", + "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://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "4.1.8", + "vitest": "4.1.8" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } } }, - "packages/craftcms-legacy/node_modules/globby/node_modules/ignore": { - "version": "5.3.2", - "dev": true, + "packages/craftcms-ui/node_modules/@vitest/pretty-format": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.8.tgz", + "integrity": "sha512-9GasEBxpZ1VYIpqHf/0+YGg121uSNwCKOJqIrTwWP/TB7DmFCiaBpNl3aPZzoLWfWkuqhbH8vJIVobZkvdo2cA==", "license": "MIT", - "engines": { - "node": ">= 4" + "dependencies": { + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "packages/craftcms-legacy/node_modules/html-tags": { - "version": "3.3.1", - "dev": true, + "packages/craftcms-ui/node_modules/@vitest/utils": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.8.tgz", + "integrity": "sha512-uOJamYALNhfJ6iolExyQM40yIQwDqYnkKtQ5VCiSe17E33H0aQ/u+1GlRuz4LZBk6Mm3sg90G9hEbmEt37C1Zg==", "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "@vitest/pretty-format": "4.1.8", + "convert-source-map": "^2.0.0", + "tinyrainbow": "^3.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/vitest" } }, - "packages/craftcms-legacy/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", + "packages/craftcms-ui/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "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.6", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", + "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", "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", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", "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.4.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-3.4.0.tgz", + "integrity": "sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==", "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", + "resolved": "https://registry.npmjs.org/del/-/del-8.0.1.tgz", + "integrity": "sha512-gPqh0mKTPvaUZGAuHbrBUYKZWBNAeHG7TU3QH5EhVwPMyKvmfJaNXhcD2jTcXsJRRcffuho4vaYweu80dRrMGA==", "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/del/node_modules/globby": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", + "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", "dev": true, "license": "MIT", "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" + "@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": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/craftcms-legacy/node_modules/string-width": { - "version": "4.2.3", + "packages/craftcms-ui/node_modules/dom-accessibility-api": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.7.1.tgz", + "integrity": "sha512-vdnCeZD+3wZ+8h8xXL/ZtBlvvoobOFyPzSiIfO6sGOZDqjFx4aLMAjZhl4rawj5xYz3UwP6Tgvyh0iH4IOCVnQ==", "dev": true, - "license": "MIT", + "license": "MIT" + }, + "packages/craftcms-ui/node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" }, "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "packages/craftcms-legacy/node_modules/strip-ansi": { - "version": "6.0.1", + "packages/craftcms-ui/node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", "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", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz", + "integrity": "sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==", "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": "^12.20.0 || ^14.13.1 || >=16.0.0" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/craftcms-ui/node_modules/is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=18.12.0" + "node": ">=12" + }, + "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-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", "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": ">=18" }, - "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/log-symbols": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-7.0.1.tgz", + "integrity": "sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==", "dev": true, "license": "MIT", "dependencies": { - "postcss-scss": "^4.0.9", - "stylelint-config-recommended": "^14.0.1", - "stylelint-scss": "^6.4.0" + "is-unicode-supported": "^2.0.0", + "yoctocolors": "^2.1.1" }, "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/minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" - }, - { - "type": "github", - "url": "https://github.com/sponsors/stylelint" - } - ], - "license": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "stylelint-config-recommended": "^14.0.1" + "brace-expansion": "^5.0.5" }, "engines": { - "node": ">=18.12.0" + "node": "18 || 20 || >=22" }, - "peerDependencies": { - "stylelint": "^16.1.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "packages/craftcms-legacy/node_modules/stylelint-config-standard-scss": { - "version": "13.1.0", + "packages/craftcms-ui/node_modules/ora": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-9.4.0.tgz", + "integrity": "sha512-84cglkRILFxdtA8hAvLNdMrtBpPNBTrQ9/ulg0FA7xLMnD6mifv+enAIeRmvtv+WgdCE+LPGOfQmtJRrVaIVhQ==", "dev": true, "license": "MIT", "dependencies": { - "stylelint-config-recommended-scss": "^14.0.0", - "stylelint-config-standard": "^36.0.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" - }, - "peerDependencies": { - "postcss": "^8.3.3", - "stylelint": "^16.3.1" + "node": ">=20" }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/craftcms-legacy/node_modules/stylelint-scss": { - "version": "6.14.0", + "packages/craftcms-ui/node_modules/p-map": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.4.tgz", + "integrity": "sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==", "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" - }, "engines": { - "node": ">=18.12.0" + "node": ">=18" }, - "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/path-scurry": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "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" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=14.0.0" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "packages/craftcms-legacy/node_modules/tailwindcss/node_modules/glob-parent": { - "version": "6.0.2", + "packages/craftcms-ui/node_modules/path-type": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", + "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, + "license": "MIT", "engines": { - "node": ">=10.13.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/craftcms-legacy/node_modules/tailwindcss/node_modules/postcss-selector-parser": { - "version": "6.1.2", + "packages/craftcms-ui/node_modules/rimraf": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.3.tgz", + "integrity": "sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==", "dev": true, - "license": "MIT", + "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.8.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.2.tgz", + "integrity": "sha512-c8jsqUZm3omBOI66G90z1Dyw5z622G8oLG+omfsHBJf3CWQTlOcwOjvOG6wtiNfW6anKm/eA39LMwMtMez2TiQ==", + "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", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "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", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" - }, + "packages/craftcms-ui/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==", + "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", + "resolved": "https://registry.npmjs.org/tsdown/-/tsdown-0.21.10.tgz", + "integrity": "sha512-3wk73yBhZe/wX7REqSdivNQ84TDs1mJ+IlnzrrEREP70xlJ/AEIzqaI04l/TzMKVIdkTdC3CPaADn2Lk/0SkdA==", + "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 2665d82aab4..8058fe69316 100644 --- a/package.json +++ b/package.json @@ -60,6 +60,7 @@ "typescript": "^6.0.3", "typescript-eslint": "^8.60.0", "vite": "^8.0.10", + "vitest": "^4.1.8", "vue-tsc": "^3.2.7" }, "optionalDependencies": { @@ -68,7 +69,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", "@headlessui/vue": "^1.7.23", "@inertiajs/vite": "^3.0.3", "@inertiajs/vue3": "^3.0.3", diff --git a/packages/craftcms-cp/src/services/Config.ts b/packages/craftcms-cp/src/services/Config.ts deleted file mode 100644 index cf2ac31b829..00000000000 --- a/packages/craftcms-cp/src/services/Config.ts +++ /dev/null @@ -1,55 +0,0 @@ -export class ConfigService { - static #instance: ConfigService | null = null; - - #config: Map = new Map(); - - /** Get the singleton instance */ - static getInstance(initialConfig = {}): ConfigService { - if (!ConfigService.#instance) { - ConfigService.#instance = new ConfigService(); - } - return ConfigService.#instance; - } - - /** Reset the singleton (mainly for testing) */ - static resetInstance(): void { - if (ConfigService.#instance) { - ConfigService.#instance = null; - } - } - - initialize(initialConfig = {}) { - this.#config = new Map(Object.entries(initialConfig)); - } - - #buildUrl(baseUrl: string, path: string): string { - const url = new URL(baseUrl); - const cleanPath = path.startsWith('/') ? path.slice(1) : path; - url.pathname = `${url.pathname}/${cleanPath}`; - return url.toString(); - } - - getCpUrl(path: string) { - return this.#buildUrl(this.#config.get('cpUrl'), path); - } - - getActionUrl(path: string) { - return this.#buildUrl(this.#config.get('actionUrl'), path); - } - - all() { - return this.#config; - } - - set(key: string, value: any): void { - this.#config.set(key, value); - } - - get(key: string, fallback: any = null): any { - if (this.#config.has(key)) { - return this.#config.get(key); - } - - return fallback; - } -} 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 7387335a166..c34744fa54f 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. -// `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.ts.mjs'; +// The root 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. QueueService is available at runtime as Craft.$queue (set by +// bootstrap/cp.ts). /** global: Craft */ /** global: Garnish */ /** global: $ */ @@ -81,8 +81,10 @@ Craft.CP = Garnish.Base.extend( resizeTimeout: null, - /** @type QueueService */ - QueueService: QueueService.getInstance(), + /** @deprecated since 6.0. Access via Craft.$queue */ + get QueueService() { + return Craft.$queue; + }, init: function () { this.elementThumbLoader = new Craft.ElementThumbLoader(); @@ -1679,29 +1681,29 @@ Craft.CP = Garnish.Base.extend( /** @deprecated since 6.0. */ runQueue: function () { if (Craft.runQueueAutomatically) { - Craft.queue.push(() => this.QueueService.runQueue()); + Craft.queue.push(() => Craft.$queue.runQueue()); } else { - this.QueueService.startTracking(false, true); + Craft.$queue.startTracking(false, true); } }, - /** @deprecated since 6.0. Use QueueService.startTracking() instead */ + /** @deprecated since 6.0. Use Craft.$queue.startTracking() instead */ trackJobProgress: function (delay, force) { - this.QueueService.startTracking(delay, force); + Craft.$queue.startTracking(delay, force); }, - /** @deprecated since 6.0. Use QueueService.setJobData() instead */ + /** @deprecated since 6.0. Use Craft.$queue.setJobData() instead */ setJobData: function (data) { - this.QueueService.setJobData(data); + Craft.$queue.setJobData(data); }, get jobInfo() { - return this.QueueService.jobInfo; + return Craft.$queue.jobInfo; }, - /** @deprecated since 6.0. Use QueueService.setJobData() instead */ + /** @deprecated since 6.0. Use Craft.$queue.setJobData() instead */ setJobInfo: function (jobInfo) { - this.QueueService.setJobData({ + Craft.$queue.setJobData({ jobs: jobInfo, total: jobInfo.length, }); @@ -1710,9 +1712,9 @@ Craft.CP = Garnish.Base.extend( this.trigger('setJobInfo'); }, - /** @deprecated since 6.0. Use QueueService.stopTracking() instead */ + /** @deprecated since 6.0. Use Craft.$queue.stopTracking() instead */ cancelJobTracking: function () { - this.QueueService.stopTracking(); + Craft.$queue.stopTracking(); }, /** diff --git a/packages/craftcms-legacy/cp/src/js/Craft.js b/packages/craftcms-legacy/cp/src/js/Craft.js index ce6365aafb5..42477931e05 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.ts.mjs'; +import {formatMessage, t} from '@craftcms/ui/utilities/translate.ts.mjs'; import * as d3 from 'd3'; /** global: Craft */ diff --git a/packages/craftcms-legacy/package.json b/packages/craftcms-legacy/package.json index 956a27f31dc..2f722b4ac0e 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/graphiql": "file:../craftcms-graphiql", "@craftcms/sass": "file:../craftcms-sass", "@craftcms/vue": "file:../craftcms-vue", 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 98% rename from packages/craftcms-cp/.storybook/preview.ts rename to packages/craftcms-ui/.storybook/preview.ts index 82cdb1d6cf0..81dbdd19872 100644 --- a/packages/craftcms-cp/.storybook/preview.ts +++ b/packages/craftcms-ui/.storybook/preview.ts @@ -2,7 +2,7 @@ import type { Preview, WebComponentsRenderer, } from '@storybook/web-components-vite'; -import '../src/styles/cp.css'; +import '../src/styles/base.css'; import './preview.css'; import {icons} from '@lion/ui/icon.js'; import {html} from 'lit'; 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 100% rename from packages/craftcms-cp/README.md rename to packages/craftcms-ui/README.md 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 90% rename from packages/craftcms-cp/package.json rename to packages/craftcms-ui/package.json index 2b869da7015..1688aad8d57 100644 --- a/packages/craftcms-cp/package.json +++ b/packages/craftcms-ui/package.json @@ -1,9 +1,9 @@ { - "name": "@craftcms/cp", + "name": "@craftcms/ui", "version": "0.0.0", - "description": "CP Components for Craft CMS", + "description": "UI Components for Craft CMS", "type": "module", - "main": "dist/cp.js", + "main": "dist/ui.js", "types": "dist/index.d.ts", "repository": { "type": "git", @@ -34,16 +34,15 @@ "exports": { "./package.json": "./package.json", ".": { - "types": "./dist/cp.d.mts", - "import": "./dist/cp.mjs", - "require": "./dist/cp.cjs" + "types": "./dist/ui.d.mts", + "import": "./dist/ui.mjs", + "require": "./dist/ui.cjs" }, "./*": "./dist/*", "./dist/*": "./dist/*", "./vue/*": "./dist/vue/*", "./types/*": "./src/types/*", - "./services/*": "./dist/services/*", - "./styles/*": "./dist/styles/*", + "./styles/*": "./src/styles/*", "./utilities/*": "./dist/utilities/*", "./components/*": "./dist/components/*", "./custom-elements.json": "./dist/custom-elements.json", @@ -104,8 +103,7 @@ "@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.15.2" + "@vitest/browser-playwright": "^4.1.5" }, "customElements": "dist/custom-elements.json" } 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 e3e71d44810..2ecdda35eb0 100755 --- a/packages/craftcms-cp/scripts/build.js +++ b/packages/craftcms-ui/scripts/build.js @@ -9,7 +9,7 @@ import {join} from 'path'; import {deleteAsync} from 'del'; import createVueWrappers from './generate-vue-wrappers.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 100% rename from packages/craftcms-cp/scripts/generate-vue-wrappers.js rename to packages/craftcms-ui/scripts/generate-vue-wrappers.js 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/auth-challenge-form/auth-challenge-form.ts b/packages/craftcms-ui/src/components/auth-challenge-form/auth-challenge-form.ts similarity index 95% 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 1b7f70a30f8..d73f3dd6096 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 @@ -1,6 +1,6 @@ import {css, html, LitElement} from 'lit'; import {property, query, state} from 'lit/decorators.js'; -import {actionClient, t} from '@src/index'; +import {t} from '@src/utilities/translate'; /** @internal Module-private registry of PHP METHOD handle → element class. */ const _registry = new Map(); @@ -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'; @@ -139,7 +139,18 @@ export abstract class CraftAuthChallengeForm extends LitElement { this._state = 'loading'; try { - await actionClient.post(this.endpoint, {code}); + const response = await fetch(this.endpoint, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + }, + body: JSON.stringify({code}), + }); + + if (!response.ok) { + throw new Error(`HTTP ${response.status}`); + } this.dispatchEvent( new CustomEvent('login-verified', { 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/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/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.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.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 94% rename from packages/craftcms-cp/src/components/disclosure/disclosure.ts rename to packages/craftcms-ui/src/components/disclosure/disclosure.ts index 4db5ec2a9cc..cf65ba69d08 100644 --- a/packages/craftcms-cp/src/components/disclosure/disclosure.ts +++ b/packages/craftcms-ui/src/components/disclosure/disclosure.ts @@ -4,6 +4,10 @@ * Allows you to wrap a button[type="button"] and target an element to toggle the `data-state` attribute on. * Set `aria-expanded` on the button */ +import {Cookies} from '@src/utilities/cookies'; + +const cookies = new Cookies(); + export default class CraftDisclosure extends HTMLElement { static observedAttributes = ['state']; private cookieName: string | null = null; @@ -91,7 +95,7 @@ export default class CraftDisclosure extends HTMLElement { } if (this.cookieName) { - window.Craft?.setCookie(this.cookieName, 'expanded'); + cookies.set(this.cookieName, 'expanded'); } }; @@ -109,7 +113,7 @@ export default class CraftDisclosure extends HTMLElement { } if (this.cookieName) { - window.Craft?.setCookie(this.cookieName, 'collapsed'); + cookies.set(this.cookieName, 'collapsed'); } }; diff --git a/packages/craftcms-cp/src/components/drawer/drawer.stories.ts b/packages/craftcms-ui/src/components/drawer/drawer.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/drawer/drawer.stories.ts rename to packages/craftcms-ui/src/components/drawer/drawer.stories.ts diff --git a/packages/craftcms-cp/src/components/drawer/drawer.ts b/packages/craftcms-ui/src/components/drawer/drawer.ts similarity index 100% rename from packages/craftcms-cp/src/components/drawer/drawer.ts rename to packages/craftcms-ui/src/components/drawer/drawer.ts diff --git a/packages/craftcms-cp/src/components/dropdown/dropdown.stories.ts b/packages/craftcms-ui/src/components/dropdown/dropdown.stories.ts similarity index 100% rename from packages/craftcms-cp/src/components/dropdown/dropdown.stories.ts rename to packages/craftcms-ui/src/components/dropdown/dropdown.stories.ts diff --git a/packages/craftcms-cp/src/components/dropdown/dropdown.styles.ts b/packages/craftcms-ui/src/components/dropdown/dropdown.styles.ts similarity index 100% rename from packages/craftcms-cp/src/components/dropdown/dropdown.styles.ts rename to packages/craftcms-ui/src/components/dropdown/dropdown.styles.ts diff --git a/packages/craftcms-cp/src/components/dropdown/dropdown.ts b/packages/craftcms-ui/src/components/dropdown/dropdown.ts similarity index 100% rename from packages/craftcms-cp/src/components/dropdown/dropdown.ts rename to packages/craftcms-ui/src/components/dropdown/dropdown.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.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-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.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.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/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.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/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.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/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/index.ts b/packages/craftcms-ui/src/index.ts similarity index 89% rename from packages/craftcms-cp/src/index.ts rename to packages/craftcms-ui/src/index.ts index cf4b2bab405..9cff967fb18 100644 --- a/packages/craftcms-cp/src/index.ts +++ b/packages/craftcms-ui/src/index.ts @@ -5,7 +5,6 @@ import {configureIcons} from './utilities/icons'; import './types/globals.js'; import './types/events.js'; import './types/index.js'; -import './types/queue.js'; export {default as CraftDisclosure} from './components/disclosure/disclosure.js'; export {default as CraftSpinner} from './components/spinner/spinner.js'; @@ -62,28 +61,9 @@ export {default as CraftVisuallyHidden} from './components/visually-hidden/visua export * from './utilities/cookies.js'; export * from './utilities/translate.js'; export * from './utilities/format.js'; -export * from './utilities/api/actionClient.js'; -export * from './utilities/api/apiClient.js'; export * from './utilities/string.js'; export * from './utilities/dom.js'; -// Services -export {QueueService} from './services/Queue.js'; -export {ConfigService} from './services/Config.js'; -export {AssetIndexer} from './services/AssetIndexer.js'; -export type { - IndexingSession, - IndexingResponse, - StartIndexingParams, - FinishIndexingParams, - ChangeEventData, - ErrorEventData, - MissingEntries, - IndexerEventType, - IndexerEventListener, -} from './services/AssetIndexer.js'; -export {IndexingActions} from './services/AssetIndexer.js'; - // Types export * from './types/index.js'; 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-ui/src/styles/base.css b/packages/craftcms-ui/src/styles/base.css new file mode 100644 index 00000000000..35923c27552 --- /dev/null +++ b/packages/craftcms-ui/src/styles/base.css @@ -0,0 +1,7 @@ +@layer preflight, theme, base, components, utilities; + +@import './shared/preflight.css' layer(preflight); +@import './shared/variables.css' layer(theme); +@import './shared/tokens.css' layer(theme); +@import './shared/colorable.css' layer(theme); +@import './shared/base.css' layer(base); 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/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/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 77% rename from packages/craftcms-cp/src/types/globals.ts rename to packages/craftcms-ui/src/types/globals.ts index f6c8a51ed29..36031aaddde 100644 --- a/packages/craftcms-cp/src/types/globals.ts +++ b/packages/craftcms-ui/src/types/globals.ts @@ -1,6 +1,3 @@ -import {QueueService} from '@src/services/Queue'; -import {ConfigService} from '@src/services/Config'; - declare const d3: any | undefined; declare const d3FormatLocaleDefinition: any | undefined; @@ -37,9 +34,4 @@ type Site = { uid: string; }; -export interface CpServices { - $queue: QueueService; - $config: ConfigService; -} - export {}; diff --git a/packages/craftcms-cp/src/types/index.ts b/packages/craftcms-ui/src/types/index.ts similarity index 61% rename from packages/craftcms-cp/src/types/index.ts rename to packages/craftcms-ui/src/types/index.ts index f8866fcbcc4..9be42406667 100644 --- a/packages/craftcms-cp/src/types/index.ts +++ b/packages/craftcms-ui/src/types/index.ts @@ -1,9 +1,3 @@ -export interface DateObject { - date: string; - timezone_type: string; - timezone: string; -} - export const AsyncStates = { Idle: 'idle', Loading: 'loading', @@ -12,5 +6,3 @@ export const AsyncStates = { } as const; export type AsyncState = (typeof AsyncStates)[keyof typeof AsyncStates]; - -export * from './queue.js'; 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/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/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 96% rename from packages/craftcms-cp/tailwind.css rename to packages/craftcms-ui/tailwind.css index fd95de39987..6f7a07d2245 100644 --- a/packages/craftcms-cp/tailwind.css +++ b/packages/craftcms-ui/tailwind.css @@ -6,11 +6,11 @@ * * 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/styles/base.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 + * The --c-* variables must already be in scope (via base.css) for var() to * resolve at render time. Using @theme inline means the generated utilities * reference the CSS custom properties directly, so dark-mode overrides in * [data-theme='dark'] are picked up automatically. 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 86% rename from packages/craftcms-cp/vitest.config.ts rename to packages/craftcms-ui/vitest.config.ts index 4b413cdd686..8666df03cc1 100644 --- a/packages/craftcms-cp/vitest.config.ts +++ b/packages/craftcms-ui/vitest.config.ts @@ -22,16 +22,6 @@ export default defineConfig({ environment: 'happy-dom', }, }, - { - resolve: { - tsconfigPaths: true, - }, - test: { - name: 'services', - root: './src/services', - environment: 'happy-dom', - }, - }, { extends: true, plugins: [ 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/resources/css/cp.css b/resources/css/cp.css index 09d93105ac4..8a487e5c322 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 './ui.css' layer(cp); +@import '@craftcms/ui/tailwind.css' layer(theme); @import './global-sidebar.css'; diff --git a/packages/craftcms-cp/src/styles/cp.css b/resources/css/ui.css similarity index 82% rename from packages/craftcms-cp/src/styles/cp.css rename to resources/css/ui.css index 715500bf73a..d763e4df752 100644 --- a/packages/craftcms-cp/src/styles/cp.css +++ b/resources/css/ui.css @@ -1,10 +1,10 @@ @layer preflight, theme, base, components, utilities; -@import './shared/preflight.css' layer(preflight); -@import './shared/variables.css' layer(theme); -@import './shared/tokens.css' layer(theme); -@import './shared/colorable.css' layer(theme); -@import './shared/base.css' layer(base); +@import '@craftcms/ui/styles/shared/preflight.css' layer(preflight); +@import '@craftcms/ui/styles/shared/variables.css' layer(theme); +@import '@craftcms/ui/styles/shared/tokens.css' layer(theme); +@import '@craftcms/ui/styles/shared/colorable.css' layer(theme); +@import '@craftcms/ui/styles/shared/base.css' layer(base); .resizable-container { border: 2px solid; diff --git a/resources/js/bootstrap/cp.ts b/resources/js/bootstrap/cp.ts index 60275f799cb..abfa3e29b29 100644 --- a/resources/js/bootstrap/cp.ts +++ b/resources/js/bootstrap/cp.ts @@ -1,7 +1,7 @@ -import {QueueService, ConfigService} from '@craftcms/cp'; +import {QueueService} from '@/common/services/Queue'; import {createInertiaApp, router} from '@inertiajs/vue3'; import QueueManager from '@/modules/utilities/components/queue-manager/QueueManager.vue'; -import {Axios, Config, Queue} from '@/common/types/keys'; +import {Axios, Queue} from '@/common/types/keys'; import axios from 'axios'; import QueueManagerToolbar from '@/modules/utilities/components/queue-manager/QueueManagerToolbar.vue'; import DeprecationErrors from '@/modules/utilities/components/deprecation-errors/DeprecationErrors.vue'; @@ -14,101 +14,76 @@ import ProjectConfig from '@/modules/utilities/components/project-config/Project import AssetIndexes from '@/modules/utilities/components/asset-indexes/AssetIndexes.vue'; import SystemMessages from '@/modules/utilities/components/system-messages/SystemMessages.vue'; import DeprecationErrorsToolbar from '@/modules/utilities/components/deprecation-errors/DeprecationErrorsToolbar.vue'; -import {setTranslations} from '@craftcms/cp/utilities/translate.ts.mjs'; +import {setTranslations} from '@craftcms/ui/utilities/translate.ts.mjs'; -let bootedCallbacks: Array<(instance: any) => void> = []; -let bootingCallbacks: Array<(instance: any) => void> = []; - -// Instantiate services -const config = ConfigService.getInstance(); const queue = QueueService.getInstance(); +let hasBooted = false; + +function booting(callback: (craft: any) => void) { + (window.bootingCallbacks ||= []).push(callback); +} + +function booted(callback: (craft: any) => void) { + if (hasBooted) { + callback(window.Craft); + } else { + (window.bootedCallbacks ||= []).push(callback); + } +} + +function init() { + queue.initialize({ + runAutomatically: window.Craft.runQueueAutomatically ?? true, + enabled: true, + appId: window.Craft.systemUid ?? '', + canAccessQueueManager: window.Craft.canAccessQueueManager ?? false, + }); -// Create our object -const Cp = { - initialConfig: {} as Record, - - get $config() { - return config; - }, - - get $queue() { - return queue; - }, - - get $axios() { - return axios; - }, - - booted(callback: (instance: any) => void) { - bootedCallbacks.push(callback); - }, - - booting(callback: (instance: any) => void) { - bootingCallbacks.push(callback); - }, - - config(config: Record) { - this.initialConfig = config; - }, - - init() { - config.initialize(this.initialConfig); - queue.initialize({ - runAutomatically: config.get('runQueueAutomatically', true), - enabled: true, - appId: config.get('systemUid', ''), - canAccessQueueManager: config.get('canAccessQueueManager', false), - }); - - setTranslations(this.initialConfig.translations); - }, - - async start() { - this.init(); - - axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; - axios.defaults.headers.common['X-CSRF-TOKEN'] = - this.$config.get('csrfToken'); - - console.groupCollapsed('Craft configuration'); - console.log(config.all().entries()); - console.groupEnd(); - - console.log('Calling booting callbacks', bootingCallbacks); - bootingCallbacks.forEach((callback) => callback(this)); - bootingCallbacks = []; - - await createInertiaApp({ - pages: '../pages', - title: (title) => `${title} - ${this.$config.get('systemName')}`, - withApp(app) { - app.provide(Queue, queue); - app.provide(Axios, axios); - app.provide(Config, config); - app.provide(Craft, config); - - app.component('QueueManager', QueueManager); - app.component('QueueManagerToolbar', QueueManagerToolbar); - app.component('DeprecationErrors', DeprecationErrors); - app.component('DeprecationErrorsToolbar', DeprecationErrorsToolbar); - app.component('ClearCaches', ClearCaches); - app.component('FindReplace', FindReplace); - app.component('DatabaseBackup', DatabaseBackup); - app.component('Migrations', Migrations); - app.component('Updates', Updates); - app.component('ProjectConfig', ProjectConfig); - app.component('AssetIndexes', AssetIndexes); - app.component('SystemMessages', SystemMessages); - }, - }); - - handleNonInertiaRequests(); - - console.log('Calling booted callbacks', bootedCallbacks); - bootedCallbacks.forEach((callback) => callback(this)); - bootedCallbacks = []; - }, -}; + setTranslations(window.Craft.translations); +} + +async function start() { + init(); + + axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; + axios.defaults.headers.common['X-CSRF-TOKEN'] = + window.Craft.csrfTokenValue; + + (window.bootingCallbacks ?? []).forEach((callback) => + callback(window.Craft) + ); + window.bootingCallbacks = []; + + await createInertiaApp({ + pages: '../pages', + title: (title) => `${title} - ${window.Craft.systemName}`, + withApp(app) { + app.provide(Queue, queue); + app.provide(Axios, axios); + + app.component('QueueManager', QueueManager); + app.component('QueueManagerToolbar', QueueManagerToolbar); + app.component('DeprecationErrors', DeprecationErrors); + app.component('DeprecationErrorsToolbar', DeprecationErrorsToolbar); + app.component('ClearCaches', ClearCaches); + app.component('FindReplace', FindReplace); + app.component('DatabaseBackup', DatabaseBackup); + app.component('Migrations', Migrations); + app.component('Updates', Updates); + app.component('ProjectConfig', ProjectConfig); + app.component('AssetIndexes', AssetIndexes); + app.component('SystemMessages', SystemMessages); + }, + }); + + handleNonInertiaRequests(); + + hasBooted = true; + (window.bootedCallbacks ?? []).forEach((callback) => + callback(window.Craft) + ); + window.bootedCallbacks = []; +} function handleNonInertiaRequests() { let fallbackUrl = ''; @@ -151,4 +126,13 @@ function handleNonInertiaRequests() { }); } -export default Cp; +Object.assign(window.Craft, { + $queue: queue, + $axios: axios, + booting, + booted, + init, + start, +}); + +export default window.Craft; diff --git a/packages/craftcms-cp/src/utilities/api/actionClient.ts b/resources/js/common/api/actionClient.ts similarity index 60% rename from packages/craftcms-cp/src/utilities/api/actionClient.ts rename to resources/js/common/api/actionClient.ts index 4969ff9b1a4..b0f0988abbd 100644 --- a/packages/craftcms-cp/src/utilities/api/actionClient.ts +++ b/resources/js/common/api/actionClient.ts @@ -1,39 +1,41 @@ import axios, {type RawAxiosRequestHeaders} from 'axios'; -import {Csrf} from '@src/services/Csrf'; +import {Csrf} from '@/common/services/Csrf'; /** - * @TODO + * Get the action URL for a given action path. */ export function getActionUrl(action: string = '') { - return `/admin/actions/${action}`; + return window.Craft.getActionUrl(action); } /** - * @TODO + * Get the CP URL for a given path. */ +export function getCpUrl(path: string = '', params?: object) { + return window.Craft.getCpUrl(path, params); +} + export function actionHeaders(): RawAxiosRequestHeaders { let headers: Record = { - 'X-Registered-Asset-Bundles': [...new Set(Cp.registeredAssetBundles)].join( + 'X-Registered-Asset-Bundles': [ + ...new Set(window.Craft.registeredAssetBundles), + ].join(','), + 'X-Registered-Js-Files': [...new Set(window.Craft.registeredJsFiles)].join( ',' ), - 'X-Registered-Js-Files': [...new Set(Cp.registeredJsFiles)].join(','), }; - // @TODO Make sure we really don't need this anymore - // if (Cp.csrfTokenValue) { - // headers['X-CSRF-Token'] = Cp.csrfTokenValue; - // } - return headers; } -export const actionClient = axios.create({ - baseURL: getActionUrl(), -}); +export const actionClient = axios.create(); const csrf = new Csrf(); actionClient.interceptors.request.use(async (config) => { + // Set base URL lazily + config.baseURL ??= window.Craft.getActionUrl(''); + // Set X-Requested-With header config.headers.set('X-Requested-With', 'XMLHttpRequest'); @@ -43,19 +45,6 @@ actionClient.interceptors.request.use(async (config) => { config.headers.set(key, value); }); - // @TODO Make sure we really don't need this anymore - // if ( - // ['post', 'put', 'patch', 'delete'].includes( - // config.method?.toLowerCase() || '' - // ) && - // !config.url?.includes('users/session-info') - // ) { - // const tokenValue = await csrf.getToken(); - // if (tokenValue) { - // config.headers.set('X-CSRF-Token', tokenValue); - // } - // } - return config; }); diff --git a/packages/craftcms-cp/src/utilities/api/apiClient.ts b/resources/js/common/api/apiClient.ts similarity index 94% rename from packages/craftcms-cp/src/utilities/api/apiClient.ts rename to resources/js/common/api/apiClient.ts index 3d63712ca39..f3c25b0dee1 100644 --- a/packages/craftcms-cp/src/utilities/api/apiClient.ts +++ b/resources/js/common/api/apiClient.ts @@ -3,7 +3,7 @@ import axios, { type CancelToken, type InternalAxiosRequestConfig, } from 'axios'; -import {actionClient} from './actionClient.js'; +import {actionClient} from './actionClient'; let loadingApiHeaders = false; let apiHeaderWaitlist: Promise[] = []; @@ -111,7 +111,7 @@ apiClient.interceptors.request.use(async (config) => { const finalConfig = { ...config, params: { - ...(Cp.apiParams || {}), + ...(window.Craft.apiParams || {}), ...config.params, v: new Date().getTime(), }, @@ -121,8 +121,8 @@ apiClient.interceptors.request.use(async (config) => { finalConfig.params.processCraftHeaders = 1; } - if (Cp.httpProxy) { - finalConfig.proxy = Cp.httpProxy as AxiosProxyConfig; + if (window.Craft.httpProxy) { + finalConfig.proxy = window.Craft.httpProxy as AxiosProxyConfig; } return finalConfig; diff --git a/resources/js/common/components/ActionMenu.vue b/resources/js/common/components/ActionMenu.vue index 67e8b79ca72..f7ded082d63 100644 --- a/resources/js/common/components/ActionMenu.vue +++ b/resources/js/common/components/ActionMenu.vue @@ -1,5 +1,5 @@