diff --git a/src/Umbraco.Web.UI.Client/.github/workflows/build_test.yml b/src/Umbraco.Web.UI.Client/.github/workflows/build_test.yml index 215ee2f386..8e77e1488c 100644 --- a/src/Umbraco.Web.UI.Client/.github/workflows/build_test.yml +++ b/src/Umbraco.Web.UI.Client/.github/workflows/build_test.yml @@ -40,7 +40,7 @@ jobs: - run: npx playwright install --with-deps - run: npm test - name: Upload Code Coverage reports - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: always() with: name: code-coverage diff --git a/src/Umbraco.Web.UI.Client/.github/workflows/codeql.yml b/src/Umbraco.Web.UI.Client/.github/workflows/codeql.yml index 88da8bd514..013b41e58f 100644 --- a/src/Umbraco.Web.UI.Client/.github/workflows/codeql.yml +++ b/src/Umbraco.Web.UI.Client/.github/workflows/codeql.yml @@ -42,7 +42,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -53,4 +53,4 @@ jobs: # queries: security-extended,security-and-quality - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@v3 diff --git a/src/Umbraco.Web.UI.Client/.github/workflows/devskim.yml b/src/Umbraco.Web.UI.Client/.github/workflows/devskim.yml index 9e564ac12f..de22a81deb 100644 --- a/src/Umbraco.Web.UI.Client/.github/workflows/devskim.yml +++ b/src/Umbraco.Web.UI.Client/.github/workflows/devskim.yml @@ -31,6 +31,6 @@ jobs: ignore-globs: "**/.git/**,*.md,*.mdx,*.stories.ts,*.js" - name: Upload DevSkim scan results to GitHub Security tab - uses: github/codeql-action/upload-sarif@v2 + uses: github/codeql-action/upload-sarif@v3 with: sarif_file: devskim-results.sarif diff --git a/src/Umbraco.Web.UI.Client/.storybook/preview.js b/src/Umbraco.Web.UI.Client/.storybook/preview.js index 64558236c7..473679ec63 100644 --- a/src/Umbraco.Web.UI.Client/.storybook/preview.js +++ b/src/Umbraco.Web.UI.Client/.storybook/preview.js @@ -10,10 +10,9 @@ import { setCustomElements } from '@storybook/web-components'; import { startMockServiceWorker } from '../src/mocks'; import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbModalManagerContext } from '../src/packages/core/modal'; -import { UmbDataTypeTreeStore } from '../src/packages/core/data-type/tree/data-type.tree.store'; +import { UmbDataTypeTreeStore } from '../src/packages/core/data-type/tree/data-type-tree.store'; import { UmbDocumentStore } from '../src/packages/documents/documents/repository/document.store'; -import { UmbDocumentTreeStore } from '../src/packages/documents/documents/repository/document.tree.store'; -import { UmbDocumentTypeDetailStore } from '../src/packages/documents/document-types/repository/detail/document-type-detail.store'; +import { UmbDocumentTreeStore } from '../src/packages/documents/documents/tree/document-tree.store'; import { umbExtensionsRegistry } from '../src/packages/core/extension-registry'; import { UmbIconRegistry } from '../src/shared/icon-registry/icon.registry'; import { UmbLitElement } from '../src/shared/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index e8680adb11..44f780f893 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -10,71 +10,70 @@ "license": "MIT", "dependencies": { "@openid/appauth": "^1.3.1", - "@types/dompurify": "^3.0.4", - "@types/uuid": "^9.0.2", - "@umbraco-ui/uui": "1.6.0-rc.1", - "@umbraco-ui/uui-css": "1.6.0-rc.1", + "@types/dompurify": "^3.0.5", + "@types/uuid": "^9.0.7", + "@umbraco-ui/uui": "1.6.0-rc.3", + "@umbraco-ui/uui-css": "1.6.0-rc.3", "dompurify": "^3.0.6", - "element-internals-polyfill": "^1.3.7", + "element-internals-polyfill": "^1.3.9", "lit": "^2.8.0", "lodash-es": "4.17.21", - "marked": "^9.1.0", - "monaco-editor": "^0.44.0", + "marked": "^11.1.0", + "monaco-editor": "^0.45.0", "rxjs": "^7.8.1", - "tinymce": "^6.7.3", - "tinymce-i18n": "^23.8.7", - "uuid": "^9.0.0" + "tinymce": "^6.8.2", + "tinymce-i18n": "^23.12.4", + "uuid": "^9.0.1" }, "devDependencies": { "@babel/core": "^7.22.17", "@mdx-js/react": "^2.3.0", "@open-wc/testing": "^3.2.0", "@playwright/test": "^1.40.1", - "@rollup/plugin-commonjs": "^25.0.4", - "@rollup/plugin-json": "^6.0.1", - "@rollup/plugin-node-resolve": "^15.2.1", - "@storybook/addon-a11y": "7.6.3", - "@storybook/addon-actions": "7.6.3", - "@storybook/addon-essentials": "7.6.3", - "@storybook/addon-links": "7.6.3", + "@rollup/plugin-commonjs": "^25.0.7", + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^15.2.3", + "@storybook/addon-a11y": "7.6.5", + "@storybook/addon-actions": "7.6.5", + "@storybook/addon-essentials": "7.6.5", + "@storybook/addon-links": "7.6.5", "@storybook/mdx2-csf": "^1.1.0", - "@storybook/web-components": "7.6.3", - "@storybook/web-components-vite": "7.6.3", + "@storybook/web-components": "7.6.5", + "@storybook/web-components-vite": "7.6.5", "@types/chai": "^4.3.5", "@types/lodash-es": "^4.17.8", "@types/mocha": "^10.0.1", - "@typescript-eslint/eslint-plugin": "^6.13.2", - "@typescript-eslint/parser": "^6.13.2", + "@typescript-eslint/eslint-plugin": "^6.14.0", + "@typescript-eslint/parser": "^6.14.0", "@web/dev-server-esbuild": "^0.4.1", "@web/dev-server-import-maps": "^0.1.1", "@web/dev-server-rollup": "^0.6.0", "@web/test-runner": "^0.18.0", "@web/test-runner-playwright": "^0.11.0", "babel-loader": "^9.1.3", - "eslint": "^8.55.0", - "eslint-config-prettier": "^9.0.0", - "eslint-import-resolver-typescript": "^3.6.0", - "eslint-plugin-import": "^2.28.0", + "eslint": "^8.56.0", + "eslint-config-prettier": "^9.1.0", + "eslint-import-resolver-typescript": "^3.6.1", + "eslint-plugin-import": "^2.29.1", "eslint-plugin-lit": "^1.10.1", - "eslint-plugin-lit-a11y": "^4.1.0", - "eslint-plugin-local-rules": "^1.3.2", + "eslint-plugin-lit-a11y": "^4.1.1", + "eslint-plugin-local-rules": "^2.0.1", "eslint-plugin-storybook": "^0.6.15", "eslint-plugin-wc": "^2.0.4", "lucide-static": "^0.290.0", - "msw": "^1.2.3", + "msw": "^1.3.2", "openapi-typescript-codegen": "^0.25.0", - "playwright-msw": "^3.0.0", + "playwright-msw": "^3.0.1", "plop": "^4.0.0", "prettier": "3.0.3", "react": "^18.2.0", "react-dom": "^18.2.0", "remark-gfm": "^3.0.1", - "rollup": "^3.27.2", - "rollup-plugin-dts": "^5.3.1", - "rollup-plugin-esbuild": "^5.0.0", - "rollup-plugin-import-css": "^3.3.4", + "rollup": "^4.9.0", + "rollup-plugin-esbuild": "^6.1.0", + "rollup-plugin-import-css": "^3.3.5", "rollup-plugin-web-worker-loader": "^1.6.1", - "storybook": "7.6.3", + "storybook": "7.6.5", "tiny-glob": "^0.2.9", "tsc-alias": "^1.8.8", "typescript": "^5.3.2", @@ -82,7 +81,7 @@ "vite": "^4.4.12", "vite-plugin-static-copy": "^0.17.0", "vite-tsconfig-paths": "^4.2.0", - "web-component-analyzer": "^2.0.0-next.5" + "web-component-analyzer": "^2.0.0" }, "engines": { "node": ">=20.9 <21", @@ -273,14 +272,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -289,9 +288,9 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.5.tgz", - "integrity": "sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.6.tgz", + "integrity": "sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", @@ -329,9 +328,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", - "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", + "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", @@ -1196,12 +1195,13 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz", - "integrity": "sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1659,13 +1659,13 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.5.tgz", - "integrity": "sha512-2fMkXEJkrmwgu2Bsv1Saxgj30IXZdJ+84lQcKKI7sm719oXs0BBw2ZENKdJdR1PjWndgLCEBNXJOri0fk7RYQA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz", + "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.23.5", + "@babel/helper-create-class-features-plugin": "^7.23.6", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-typescript": "^7.23.3" }, @@ -1740,13 +1740,13 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.5.tgz", - "integrity": "sha512-0d/uxVD6tFGWXGDSfyMD1p2otoaKmu6+GD+NfAx0tMaH+dxORnp7T9TaVQ6mKyya7iBtCIVxHjWT7MuzzM9z+A==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.6.tgz", + "integrity": "sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ==", "dev": true, "dependencies": { "@babel/compat-data": "^7.23.5", - "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-validator-option": "^7.23.5", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", @@ -1786,7 +1786,7 @@ "@babel/plugin-transform-dynamic-import": "^7.23.4", "@babel/plugin-transform-exponentiation-operator": "^7.23.3", "@babel/plugin-transform-export-namespace-from": "^7.23.4", - "@babel/plugin-transform-for-of": "^7.23.3", + "@babel/plugin-transform-for-of": "^7.23.6", "@babel/plugin-transform-function-name": "^7.23.3", "@babel/plugin-transform-json-strings": "^7.23.4", "@babel/plugin-transform-literals": "^7.23.3", @@ -2573,9 +2573,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", - "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2597,9 +2597,9 @@ "dev": true }, "node_modules/@floating-ui/core": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.1.tgz", - "integrity": "sha512-QgcKYwzcc8vvZ4n/5uklchy8KVdjJwcOeI+HnnTNclJjs2nYsy23DOCf+sSV1kBwD9yDAoVKCkv/gEPzgQU3Pw==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.2.tgz", + "integrity": "sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A==", "dev": true, "dependencies": { "@floating-ui/utils": "^0.1.3" @@ -3142,16 +3142,16 @@ } }, "node_modules/@mswjs/interceptors": { - "version": "0.17.9", - "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.17.9.tgz", - "integrity": "sha512-4LVGt03RobMH/7ZrbHqRxQrS9cc2uh+iNKSj8UWr8M26A2i793ju+csaB5zaqYltqJmA2jUq4VeYfKmVqvsXQg==", + "version": "0.17.10", + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.17.10.tgz", + "integrity": "sha512-N8x7eSLGcmUFNWZRxT1vsHvypzIRgQYdG0rJey/rZCy6zT/30qDt8Joj7FxzGNLSwXbeZqJOMqDurp7ra4hgbw==", "dev": true, "dependencies": { "@open-draft/until": "^1.0.3", "@types/debug": "^4.1.7", "@xmldom/xmldom": "^0.8.3", "debug": "^4.3.3", - "headers-polyfill": "^3.1.0", + "headers-polyfill": "3.2.5", "outvariant": "^1.2.1", "strict-event-emitter": "^0.2.4", "web-encoding": "^1.1.5" @@ -4055,9 +4055,9 @@ } }, "node_modules/@rollup/plugin-commonjs": { - "version": "25.0.4", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.4.tgz", - "integrity": "sha512-L92Vz9WUZXDnlQQl3EwbypJR4+DM2EbsO+/KOcEkP4Mc6Ct453EeDB2uH9lgRwj4w5yflgNpq9pHOiY8aoUXBQ==", + "version": "25.0.7", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.7.tgz", + "integrity": "sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1", @@ -4065,13 +4065,13 @@ "estree-walker": "^2.0.2", "glob": "^8.0.3", "is-reference": "1.2.1", - "magic-string": "^0.27.0" + "magic-string": "^0.30.3" }, "engines": { "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^2.68.0||^3.0.0" + "rollup": "^2.68.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -4080,12 +4080,12 @@ } }, "node_modules/@rollup/plugin-json": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.0.1.tgz", - "integrity": "sha512-RgVfl5hWMkxN1h/uZj8FVESvPuBJ/uf6ly6GTj0GONnkfoBN5KC0MSz+PN2OLDgYXMhtG0mWpTrkiOjoxAIevw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", + "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", "dev": true, "dependencies": { - "@rollup/pluginutils": "^5.0.1" + "@rollup/pluginutils": "^5.1.0" }, "engines": { "node": ">=14.0.0" @@ -4100,9 +4100,9 @@ } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.1.tgz", - "integrity": "sha512-nsbUg588+GDSu8/NS8T4UAshO6xeaOfINNuXeVHcKV02LJtoRaM1SiOacClw4kws1SFiNhdLGxlbMY9ga/zs/w==", + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", + "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1", @@ -4116,7 +4116,7 @@ "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^2.78.0||^3.0.0" + "rollup": "^2.78.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -4125,9 +4125,9 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.4.tgz", - "integrity": "sha512-0KJnIoRI8A+a1dqOYLxH8vBf8bphDmty5QvIm2hqm7oFCFYKCAZWWd2hXgMibaPsNDhI0AtpYfQZJG47pt/k4g==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", "dev": true, "dependencies": { "@types/estree": "^1.0.0", @@ -4138,7 +4138,7 @@ "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -4147,9 +4147,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.6.0.tgz", - "integrity": "sha512-keHkkWAe7OtdALGoutLY3utvthkGF+Y17ws9LYT8pxMBYXaCoH/8dXS2uzo6e8+sEhY7y/zi5RFo22Dy2lFpDw==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.0.tgz", + "integrity": "sha512-+1ge/xmaJpm1KVBuIH38Z94zj9fBD+hp+/5WLaHgyY8XLq1ibxk/zj6dTXaqM2cAbYKq8jYlhHd6k05If1W5xA==", "cpu": [ "arm" ], @@ -4160,9 +4160,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.6.0.tgz", - "integrity": "sha512-y3Kt+34smKQNWilicPbBz/MXEY7QwDzMFNgwEWeYiOhUt9MTWKjHqe3EVkXwT2fR7izOvHpDWZ0o2IyD9SWX7A==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.0.tgz", + "integrity": "sha512-im6hUEyQ7ZfoZdNvtwgEJvBWZYauC9KVKq1w58LG2Zfz6zMd8gRrbN+xCVoqA2hv/v6fm9lp5LFGJ3za8EQH3A==", "cpu": [ "arm64" ], @@ -4173,9 +4173,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.6.0.tgz", - "integrity": "sha512-oLzzxcUIHltHxOCmaXl+pkIlU+uhSxef5HfntW7RsLh1eHm+vJzjD9Oo4oUKso4YuP4PpbFJNlZjJuOrxo8dPg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.0.tgz", + "integrity": "sha512-u7aTMskN6Dmg1lCT0QJ+tINRt+ntUrvVkhbPfFz4bCwRZvjItx2nJtwJnJRlKMMaQCHRjrNqHRDYvE4mBm3DlQ==", "cpu": [ "arm64" ], @@ -4186,9 +4186,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.6.0.tgz", - "integrity": "sha512-+ANnmjkcOBaV25n0+M0Bere3roeVAnwlKW65qagtuAfIxXF9YxUneRyAn/RDcIdRa7QrjRNJL3jR7T43ObGe8Q==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.0.tgz", + "integrity": "sha512-8FvEl3w2ExmpcOmX5RJD0yqXcVSOqAJJUJ29Lca29Ik+3zPS1yFimr2fr5JSZ4Z5gt8/d7WqycpgkX9nocijSw==", "cpu": [ "x64" ], @@ -4199,9 +4199,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.6.0.tgz", - "integrity": "sha512-tBTSIkjSVUyrekddpkAqKOosnj1Fc0ZY0rJL2bIEWPKqlEQk0paORL9pUIlt7lcGJi3LzMIlUGXvtNi1Z6MOCQ==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.0.tgz", + "integrity": "sha512-lHoKYaRwd4gge+IpqJHCY+8Vc3hhdJfU6ukFnnrJasEBUvVlydP8PuwndbWfGkdgSvZhHfSEw6urrlBj0TSSfg==", "cpu": [ "arm" ], @@ -4212,9 +4212,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.6.0.tgz", - "integrity": "sha512-Ed8uJI3kM11de9S0j67wAV07JUNhbAqIrDYhQBrQW42jGopgheyk/cdcshgGO4fW5Wjq97COCY/BHogdGvKVNQ==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.0.tgz", + "integrity": "sha512-JbEPfhndYeWHfOSeh4DOFvNXrj7ls9S/2omijVsao+LBPTPayT1uKcK3dHW3MwDJ7KO11t9m2cVTqXnTKpeaiw==", "cpu": [ "arm64" ], @@ -4225,9 +4225,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.6.0.tgz", - "integrity": "sha512-mZoNQ/qK4D7SSY8v6kEsAAyDgznzLLuSFCA3aBHZTmf3HP/dW4tNLTtWh9+LfyO0Z1aUn+ecpT7IQ3WtIg3ViQ==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.0.tgz", + "integrity": "sha512-ahqcSXLlcV2XUBM3/f/C6cRoh7NxYA/W7Yzuv4bDU1YscTFw7ay4LmD7l6OS8EMhTNvcrWGkEettL1Bhjf+B+w==", "cpu": [ "arm64" ], @@ -4237,10 +4237,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.0.tgz", + "integrity": "sha512-uwvOYNtLw8gVtrExKhdFsYHA/kotURUmZYlinH2VcQxNCQJeJXnkmWgw2hI9Xgzhgu7J9QvWiq9TtTVwWMDa+w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.6.0.tgz", - "integrity": "sha512-rouezFHpwCqdEXsqAfNsTgSWO0FoZ5hKv5p+TGO5KFhyN/dvYXNMqMolOb8BkyKcPqjYRBeT+Z6V3aM26rPaYg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.0.tgz", + "integrity": "sha512-m6pkSwcZZD2LCFHZX/zW2aLIISyzWLU3hrLLzQKMI12+OLEzgruTovAxY5sCZJkipklaZqPy/2bEEBNjp+Y7xg==", "cpu": [ "x64" ], @@ -4251,9 +4264,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.6.0.tgz", - "integrity": "sha512-Bbm+fyn3S6u51urfj3YnqBXg5vI2jQPncRRELaucmhBVyZkbWClQ1fEsRmdnCPpQOQfkpg9gZArvtMVkOMsh1w==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.0.tgz", + "integrity": "sha512-VFAC1RDRSbU3iOF98X42KaVicAfKf0m0OvIu8dbnqhTe26Kh6Ym9JrDulz7Hbk7/9zGc41JkV02g+p3BivOdAg==", "cpu": [ "x64" ], @@ -4264,9 +4277,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.6.0.tgz", - "integrity": "sha512-+MRMcyx9L2kTrTUzYmR61+XVsliMG4odFb5UmqtiT8xOfEicfYAGEuF/D1Pww1+uZkYhBqAHpvju7VN+GnC3ng==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.0.tgz", + "integrity": "sha512-9jPgMvTKXARz4inw6jezMLA2ihDBvgIU9Ml01hjdVpOcMKyxFBJrn83KVQINnbeqDv0+HdO1c09hgZ8N0s820Q==", "cpu": [ "arm64" ], @@ -4277,9 +4290,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.6.0.tgz", - "integrity": "sha512-rxfeE6K6s/Xl2HGeK6cO8SiQq3k/3BYpw7cfhW5Bk2euXNEpuzi2cc7llxx1si1QgwfjNtdRNTGqdBzGlFZGFw==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.0.tgz", + "integrity": "sha512-WE4pT2kTXQN2bAv40Uog0AsV7/s9nT9HBWXAou8+++MBCnY51QS02KYtm6dQxxosKi1VIz/wZIrTQO5UP2EW+Q==", "cpu": [ "ia32" ], @@ -4290,9 +4303,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.6.0.tgz", - "integrity": "sha512-QqmCsydHS172Y0Kc13bkMXvipbJSvzeglBncJG3LsYJSiPlxYACz7MmJBs4A8l1oU+jfhYEIC/+AUSlvjmiX/g==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.0.tgz", + "integrity": "sha512-aPP5Q5AqNGuT0tnuEkK/g4mnt3ZhheiXrDIiSVIHN9mcN21OyXDVbEMqmXPE7e2OplNLDkcvV+ZoGJa2ZImFgw==", "cpu": [ "x64" ], @@ -4309,12 +4322,12 @@ "dev": true }, "node_modules/@storybook/addon-a11y": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-7.6.3.tgz", - "integrity": "sha512-z/vaDkZgbLLqrLz2C1qr3lav5xuZDbBggtNdvnM1TFKqiaQu8MPC0oEe6QSFf2phREf7cB2Qa5LsW7ak16RddQ==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-7.6.5.tgz", + "integrity": "sha512-mbwjgdlNDcp0nL29s9FoF+HEFmWn0fMXfTcgMNjQWHs+sfmOy6w3llk0n0RJeDjc+x2Y8Oj2c+JwLU1hhJBnag==", "dev": true, "dependencies": { - "@storybook/addon-highlight": "7.6.3", + "@storybook/addon-highlight": "7.6.5", "axe-core": "^4.2.0" }, "funding": { @@ -4323,12 +4336,12 @@ } }, "node_modules/@storybook/addon-actions": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.6.3.tgz", - "integrity": "sha512-f4HXteYE8IJXztAK+ab5heSjXWNWvyIAU63T3Fqe3zmqONwCerUKY54Op+RkAZc/R6aALTxvGRKAH2ff8g2vjQ==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.6.5.tgz", + "integrity": "sha512-lW/m9YcaNfBZk+TZLxyzHdd563mBWpsUIveOKYjcPdl/q0FblWWZrRsFHqwLK1ldZ4AZXs8J/47G8CBr6Ew2uQ==", "dev": true, "dependencies": { - "@storybook/core-events": "7.6.3", + "@storybook/core-events": "7.6.5", "@storybook/global": "^5.0.0", "@types/uuid": "^9.0.1", "dequal": "^2.0.2", @@ -4341,9 +4354,9 @@ } }, "node_modules/@storybook/addon-backgrounds": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.6.3.tgz", - "integrity": "sha512-ZZFNf8FBYBsuXvXdVk3sBgxJTn6s0HznuEE9OmAA7tMsLEDlUiWS9LEvjX2jX5K0kWivHTkJDTXV0NcLL1vWAg==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.6.5.tgz", + "integrity": "sha512-wZZOL19vg4TTRtOTl71XKqPe5hQx3XUh9Fle0wOi91FiFrBdqusrppnyS89wPS8RQG5lXEOFEUvYcMmdCcdZfw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -4356,12 +4369,12 @@ } }, "node_modules/@storybook/addon-controls": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.6.3.tgz", - "integrity": "sha512-xsM3z+CY1YOPqrcCldQLoon947fbd/o3gSO7hM3NwKiw/2WikExPO3VM4R2oi4W4PvnhkSOIO+ZDRuSs1yFmOg==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.6.5.tgz", + "integrity": "sha512-EdSZ2pYf74mOXZGGJ22lrDvdvL0YKc95iWv9FFEhUFOloMy/0OZPB2ybYmd2KVCy3SeIE4Zfeiw8pDXdCUniOQ==", "dev": true, "dependencies": { - "@storybook/blocks": "7.6.3", + "@storybook/blocks": "7.6.5", "lodash": "^4.17.21", "ts-dedent": "^2.0.0" }, @@ -4371,26 +4384,26 @@ } }, "node_modules/@storybook/addon-docs": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.6.3.tgz", - "integrity": "sha512-2Ts+3EFg9ehkQdbjBWnCH1SE0BdyCLN6hO2N030tGxi0Vko9t9O7NLj5qdBwxLcEzb/XzL4zWukzfU17pktQwA==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.6.5.tgz", + "integrity": "sha512-D9tZyD41IujCHiPYdfS2bKtZRJPNwO4EydzyqODXppomluhFbY3uTEaf0H1UFnJLQxWNXZ7rr3aS0V3O6yu8pA==", "dev": true, "dependencies": { "@jest/transform": "^29.3.1", "@mdx-js/react": "^2.1.5", - "@storybook/blocks": "7.6.3", - "@storybook/client-logger": "7.6.3", - "@storybook/components": "7.6.3", - "@storybook/csf-plugin": "7.6.3", - "@storybook/csf-tools": "7.6.3", + "@storybook/blocks": "7.6.5", + "@storybook/client-logger": "7.6.5", + "@storybook/components": "7.6.5", + "@storybook/csf-plugin": "7.6.5", + "@storybook/csf-tools": "7.6.5", "@storybook/global": "^5.0.0", "@storybook/mdx2-csf": "^1.0.0", - "@storybook/node-logger": "7.6.3", - "@storybook/postinstall": "7.6.3", - "@storybook/preview-api": "7.6.3", - "@storybook/react-dom-shim": "7.6.3", - "@storybook/theming": "7.6.3", - "@storybook/types": "7.6.3", + "@storybook/node-logger": "7.6.5", + "@storybook/postinstall": "7.6.5", + "@storybook/preview-api": "7.6.5", + "@storybook/react-dom-shim": "7.6.5", + "@storybook/theming": "7.6.5", + "@storybook/types": "7.6.5", "fs-extra": "^11.1.0", "remark-external-links": "^8.0.0", "remark-slug": "^6.0.0", @@ -4406,24 +4419,24 @@ } }, "node_modules/@storybook/addon-essentials": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.6.3.tgz", - "integrity": "sha512-bpbt5O0wcB83VLZg8QMXut+8g+7EF4iuevpwiynN9mbpQFvG49c6SE6T2eFJKTvVb4zszyfcNA0Opne2G83wZw==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.6.5.tgz", + "integrity": "sha512-VCLj1JAEpGoqF5iFJOo1CZFFck/tg4m/98DLdQuNuXvxT6jqaF0NI9UUQuJLIGteDCR7NKRbTFc1hV3/Ev+Ziw==", "dev": true, "dependencies": { - "@storybook/addon-actions": "7.6.3", - "@storybook/addon-backgrounds": "7.6.3", - "@storybook/addon-controls": "7.6.3", - "@storybook/addon-docs": "7.6.3", - "@storybook/addon-highlight": "7.6.3", - "@storybook/addon-measure": "7.6.3", - "@storybook/addon-outline": "7.6.3", - "@storybook/addon-toolbars": "7.6.3", - "@storybook/addon-viewport": "7.6.3", - "@storybook/core-common": "7.6.3", - "@storybook/manager-api": "7.6.3", - "@storybook/node-logger": "7.6.3", - "@storybook/preview-api": "7.6.3", + "@storybook/addon-actions": "7.6.5", + "@storybook/addon-backgrounds": "7.6.5", + "@storybook/addon-controls": "7.6.5", + "@storybook/addon-docs": "7.6.5", + "@storybook/addon-highlight": "7.6.5", + "@storybook/addon-measure": "7.6.5", + "@storybook/addon-outline": "7.6.5", + "@storybook/addon-toolbars": "7.6.5", + "@storybook/addon-viewport": "7.6.5", + "@storybook/core-common": "7.6.5", + "@storybook/manager-api": "7.6.5", + "@storybook/node-logger": "7.6.5", + "@storybook/preview-api": "7.6.5", "ts-dedent": "^2.0.0" }, "funding": { @@ -4436,9 +4449,9 @@ } }, "node_modules/@storybook/addon-highlight": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.6.3.tgz", - "integrity": "sha512-Z9AJ05XCTzFZPAxQSkQf9/Hazf5/QQI0jYSsvKqt7Vk+03q5727oD9KcIY5IHPYqQqN9fHExQh1eyqY8AnS8mg==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.6.5.tgz", + "integrity": "sha512-CxzmIb30F9nLPQwT0lCPYhOAwGlGF4IkgkO8hYA7VfGCGUkJZEyyN/YkP/ZCUSdCIRChDBouR3KiFFd4mDFKzg==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -4449,9 +4462,9 @@ } }, "node_modules/@storybook/addon-links": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.6.3.tgz", - "integrity": "sha512-dUIf6Y0nckxZfVQvQSqcthaycRxy69dCJLo3aORrOPL8NvGz3v1bK0AUded5wv8vnOVxfSx/Zqu7MyFr9xyjOA==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.6.5.tgz", + "integrity": "sha512-Lx4Ng+iXt0YpIrKGr+nOZlpN9ypOoEDoP/7bZ6m7GXuVAkDm3JrRCBp7e2ZKSKcTxPdjPuO9HVKkIjtqjINlpw==", "dev": true, "dependencies": { "@storybook/csf": "^0.1.2", @@ -4472,9 +4485,9 @@ } }, "node_modules/@storybook/addon-measure": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.6.3.tgz", - "integrity": "sha512-DqxADof04ktA5GSA8XnckYGdVYyC4oN8vfKSGcPzpcKrJ2uVr0BXbcyJAEcJAshEJimmpA6nH5TxabXDFBZgPQ==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.6.5.tgz", + "integrity": "sha512-tlUudVQSrA+bwI4dhO8J7nYHtYdylcBZ86ybnqMmdTthsnyc7jnaFVQwbb6bbQJpPxvEvoNds5bVGUFocuvymQ==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -4486,9 +4499,9 @@ } }, "node_modules/@storybook/addon-outline": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.6.3.tgz", - "integrity": "sha512-M7d2tcqBBl+mPBUS6Nrwis50QYSCcmT/uKamud7CnlIWsMH/5GZFfAzGSLY5ETfiGsSFYssOwrXLOV4y0enu2g==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.6.5.tgz", + "integrity": "sha512-P7X4+Z9L/l/RZW9UvvM+iuK2SUHD22KPc+dbYOifRXDovUqhfmcKVh1CUqTDMyZrg2ZAbropehMz1eI9BlQfxg==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -4500,9 +4513,9 @@ } }, "node_modules/@storybook/addon-toolbars": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.6.3.tgz", - "integrity": "sha512-8GpwOt0J5yLrJhTr9/h0a/LTDjt49FhdvdxiVWLlLMrjIXSIc7j193ZgoHfnlwVhJS5zojcjB+HmRw/E+AneoA==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.6.5.tgz", + "integrity": "sha512-/zqWbVNE/SHc8I5Prnd2Q8U57RGEIYvHfeXjfkuLcE2Quc4Iss4x/9eU7SKu4jm+IOO2s0wlN6HcqI3XEf2XxA==", "dev": true, "funding": { "type": "opencollective", @@ -4510,9 +4523,9 @@ } }, "node_modules/@storybook/addon-viewport": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.6.3.tgz", - "integrity": "sha512-I9FQxHi4W7RUyZut4NziYa+nkBCpD1k2YpEDE5IwSC3lqQpDzFZN89eNWQtZ38tIU4c90jL3L1k69IHvANGHsA==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.6.5.tgz", + "integrity": "sha512-9ghKTaduIUvQ6oShmWLuwMeTjtMR4RgKeKHrTJ7THMqvE/ydDPCYeL7ugF65ocXZSEz/QmxdK7uL686ZMKsqNA==", "dev": true, "dependencies": { "memoizerific": "^1.11.3" @@ -4523,22 +4536,22 @@ } }, "node_modules/@storybook/blocks": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.6.3.tgz", - "integrity": "sha512-EyjyNNCZMcV9UnBSujwduiq+F1VLVX/f16fTTPqqZOHigyfrG5LoEYC6dwOC4yO/xfWY+h3qJ51yiugMxVl0Vg==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.6.5.tgz", + "integrity": "sha512-/NjuYkPks5w9lKn47KLgVC5cBkwfc+ERAp0CY0Xe//BQJkP+bcI8lE8d9Qc9IXFbOTvYEULeQrFgCkesk5BmLg==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.3", - "@storybook/client-logger": "7.6.3", - "@storybook/components": "7.6.3", - "@storybook/core-events": "7.6.3", + "@storybook/channels": "7.6.5", + "@storybook/client-logger": "7.6.5", + "@storybook/components": "7.6.5", + "@storybook/core-events": "7.6.5", "@storybook/csf": "^0.1.2", - "@storybook/docs-tools": "7.6.3", + "@storybook/docs-tools": "7.6.5", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.6.3", - "@storybook/preview-api": "7.6.3", - "@storybook/theming": "7.6.3", - "@storybook/types": "7.6.3", + "@storybook/manager-api": "7.6.5", + "@storybook/preview-api": "7.6.5", + "@storybook/theming": "7.6.5", + "@storybook/types": "7.6.5", "@types/lodash": "^4.14.167", "color-convert": "^2.0.1", "dequal": "^2.0.2", @@ -4562,15 +4575,15 @@ } }, "node_modules/@storybook/builder-manager": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.6.3.tgz", - "integrity": "sha512-eLMjRudhiRsg7kgbmPcCkuVf2ut753fbiVR7REtqIYwq5vu8UeNOzt1vA6HgfsUj77/7+1zG8/zeyBv/5nY5mw==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.6.5.tgz", + "integrity": "sha512-FQyI+tfzMam2XKXq7k921YVafIJs9Vqvos5qx8vyRnRffo55UU8tgunwjGn0PswtbMm6sThVqE0C0ZzVr7RG8A==", "dev": true, "dependencies": { "@fal-works/esbuild-plugin-global-externals": "^2.1.2", - "@storybook/core-common": "7.6.3", - "@storybook/manager": "7.6.3", - "@storybook/node-logger": "7.6.3", + "@storybook/core-common": "7.6.5", + "@storybook/manager": "7.6.5", + "@storybook/node-logger": "7.6.5", "@types/ejs": "^3.1.1", "@types/find-cache-dir": "^3.2.1", "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", @@ -4979,19 +4992,19 @@ } }, "node_modules/@storybook/builder-vite": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.6.3.tgz", - "integrity": "sha512-r/G/6wdwgbhMiMZ8Z+Js8VLjIo7a0DG5SxJorTHSWNi0+jyM+3Qlg3Xj96I8yL4gfTIKWVScHqHprhjRb2E64g==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.6.5.tgz", + "integrity": "sha512-VbAYTGr92lgCWTwO2Z7NgSW3f5/K4Vr0Qxa2IlTgMCymWdDbWdIQiREcmCP0vjAGM2ftq1+vxngohVgx/r7pUw==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.3", - "@storybook/client-logger": "7.6.3", - "@storybook/core-common": "7.6.3", - "@storybook/csf-plugin": "7.6.3", - "@storybook/node-logger": "7.6.3", - "@storybook/preview": "7.6.3", - "@storybook/preview-api": "7.6.3", - "@storybook/types": "7.6.3", + "@storybook/channels": "7.6.5", + "@storybook/client-logger": "7.6.5", + "@storybook/core-common": "7.6.5", + "@storybook/csf-plugin": "7.6.5", + "@storybook/node-logger": "7.6.5", + "@storybook/preview": "7.6.5", + "@storybook/preview-api": "7.6.5", + "@storybook/types": "7.6.5", "@types/find-cache-dir": "^3.2.1", "browser-assert": "^1.2.1", "es-module-lexer": "^0.9.3", @@ -5023,32 +5036,30 @@ } } }, - "node_modules/@storybook/builder-vite/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@storybook/builder-vite/node_modules/magic-string": { - "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "node_modules/@storybook/builder-vite/node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" + "bin": { + "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=12" + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, "node_modules/@storybook/channels": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.3.tgz", - "integrity": "sha512-o9J0TBbFon16tUlU5V6kJgzAlsloJcS1cTHWqh3VWczohbRm+X1PLNUihJ7Q8kBWXAuuJkgBu7RQH7Ib46WyYg==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.5.tgz", + "integrity": "sha512-FIlNkyfQy9uHoJfAFL2/wO3ASGJELFvBzURBE2rcEF/TS7GcUiqWnBfiDxAbwSEjSOm2F0eEq3UXhaZEjpJHDw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.3", - "@storybook/core-events": "7.6.3", + "@storybook/client-logger": "7.6.5", + "@storybook/core-events": "7.6.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -5060,23 +5071,23 @@ } }, "node_modules/@storybook/cli": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.6.3.tgz", - "integrity": "sha512-OuYnzZlAtpGm4rDgI4ZWkNbAkddutlJh6KmoU9oQAlZP0zmETyJN8REUWjj5T9Z1AS2iXjCMGlFVd4TC8nKocw==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.6.5.tgz", + "integrity": "sha512-w+Y8dx5oCLQVESOVmpsQuFksr/ewARKrnSKl9kwnVMN4sMgjOgoZ3zmV66J7SKexvwyuwlOjf840pmEglGdPPg==", "dev": true, "dependencies": { "@babel/core": "^7.23.2", "@babel/preset-env": "^7.23.2", "@babel/types": "^7.23.0", "@ndelangen/get-tarball": "^3.0.7", - "@storybook/codemod": "7.6.3", - "@storybook/core-common": "7.6.3", - "@storybook/core-events": "7.6.3", - "@storybook/core-server": "7.6.3", - "@storybook/csf-tools": "7.6.3", - "@storybook/node-logger": "7.6.3", - "@storybook/telemetry": "7.6.3", - "@storybook/types": "7.6.3", + "@storybook/codemod": "7.6.5", + "@storybook/core-common": "7.6.5", + "@storybook/core-events": "7.6.5", + "@storybook/core-server": "7.6.5", + "@storybook/csf-tools": "7.6.5", + "@storybook/node-logger": "7.6.5", + "@storybook/telemetry": "7.6.5", + "@storybook/types": "7.6.5", "@types/semver": "^7.3.4", "@yarnpkg/fslib": "2.10.3", "@yarnpkg/libzip": "2.3.0", @@ -5364,9 +5375,9 @@ "dev": true }, "node_modules/@storybook/client-logger": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.3.tgz", - "integrity": "sha512-BpsCnefrBFdxD6ukMjAblm1D6zB4U5HR1I85VWw6LOqZrfzA6l/1uBxItz0XG96HTjngbvAabWf5k7ZFCx5UCg==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.5.tgz", + "integrity": "sha512-S5aROWgssqg7tcs9lgW5wmCAz4SxMAtioiyVj5oFecmPCbQtFVIAREYzeoxE4GfJL+plrfRkum4BzziANn8EhQ==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -5377,18 +5388,18 @@ } }, "node_modules/@storybook/codemod": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.6.3.tgz", - "integrity": "sha512-A1i8+WQfNg3frVcwSyu8E/cDkCu88Sw7JiGNnq9iW2e2oWMr2awpCDgXp8WfTK+HiDb2X1Pq5y/GmUlh3qr77Q==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.6.5.tgz", + "integrity": "sha512-K5C9ltBClZ0aSyujGt3RJFtRicrUZy8nzhHrcADUj27rrQD26jH/p+Y05jWKj9JcI8SyMg978GN5X/1aw2Y31A==", "dev": true, "dependencies": { "@babel/core": "^7.23.2", "@babel/preset-env": "^7.23.2", "@babel/types": "^7.23.0", "@storybook/csf": "^0.1.2", - "@storybook/csf-tools": "7.6.3", - "@storybook/node-logger": "7.6.3", - "@storybook/types": "7.6.3", + "@storybook/csf-tools": "7.6.5", + "@storybook/node-logger": "7.6.5", + "@storybook/types": "7.6.5", "@types/cross-spawn": "^6.0.2", "cross-spawn": "^7.0.3", "globby": "^11.0.2", @@ -5418,18 +5429,18 @@ } }, "node_modules/@storybook/components": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.6.3.tgz", - "integrity": "sha512-UNV0WoUo+W0huOLvoEMuqRN/VB4p0CNswrXN1mi/oGWvAFJ8idu63lSuV4uQ/LKxAZ6v3Kpdd+oK/o+OeOoL6w==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.6.5.tgz", + "integrity": "sha512-w4ZucbBBZ+NKMWlJKVj2I/bMBBq7gzDp9lzc4+8QaQ3vUPXKqc1ilIPYo/7UR5oxwDVMZocmMSgl9L8lvf7+Mw==", "dev": true, "dependencies": { "@radix-ui/react-select": "^1.2.2", "@radix-ui/react-toolbar": "^1.0.4", - "@storybook/client-logger": "7.6.3", + "@storybook/client-logger": "7.6.5", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/theming": "7.6.3", - "@storybook/types": "7.6.3", + "@storybook/theming": "7.6.5", + "@storybook/types": "7.6.5", "memoizerific": "^1.11.3", "use-resize-observer": "^9.1.0", "util-deprecate": "^1.0.2" @@ -5444,13 +5455,13 @@ } }, "node_modules/@storybook/core-client": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.6.3.tgz", - "integrity": "sha512-RM0Svlajddl8PP4Vq7LK8T22sFefNcTDgo82iRPZzGz0oH8LT0oXGFanj2Nkn0jruOBFClkiJ7EcwrbGJZHELg==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.6.5.tgz", + "integrity": "sha512-6FtyJcz8MSl+JYwNJZ53FM6rkT27pFHWcJPdtw/9229Ec8as9RpkNeZ/NBZjRTeDkn9Ki0VOiVAefNie9tZ/8Q==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.3", - "@storybook/preview-api": "7.6.3" + "@storybook/client-logger": "7.6.5", + "@storybook/preview-api": "7.6.5" }, "funding": { "type": "opencollective", @@ -5458,14 +5469,14 @@ } }, "node_modules/@storybook/core-common": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.3.tgz", - "integrity": "sha512-/ZE4BEyGwBHCQCOo681GyBKF4IqCiwVV/ZJCHTMTHFCPLJT2r+Qwv4tnI7xt1kwflOlbBlG6B6CvAqTjjVw/Ew==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.5.tgz", + "integrity": "sha512-z4EgzZSIVbID6Ib0jhh3jimKeaDWU8OOhoZYfn3galFmgQWowWOv1oMgipWiXfRLWw9DaLFQiCHIdLANH+VO2g==", "dev": true, "dependencies": { - "@storybook/core-events": "7.6.3", - "@storybook/node-logger": "7.6.3", - "@storybook/types": "7.6.3", + "@storybook/core-events": "7.6.5", + "@storybook/node-logger": "7.6.5", + "@storybook/types": "7.6.5", "@types/find-cache-dir": "^3.2.1", "@types/node": "^18.0.0", "@types/node-fetch": "^2.6.4", @@ -5845,9 +5856,9 @@ } }, "node_modules/@storybook/core-common/node_modules/@types/node": { - "version": "18.19.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.2.tgz", - "integrity": "sha512-6wzfBdbWpe8QykUkXBjtmO3zITA0A3FIjoy+in0Y2K4KrCiRhNYJIdwAPDffZ3G6GnaKaSLSEa9ZuORLfEoiwg==", + "version": "18.19.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.3.tgz", + "integrity": "sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -5989,9 +6000,9 @@ } }, "node_modules/@storybook/core-events": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.3.tgz", - "integrity": "sha512-Vu3JX1mjtR8AX84lyqWsi2s2lhD997jKRWVznI3wx+UpTk8t7TTMLFk2rGYJRjaornhrqwvLYpnmtxRSxW9BOQ==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.5.tgz", + "integrity": "sha512-zk2q/qicYXAzHA4oV3GDbIql+Kd4TOHUgDE8e4jPCOPp856z2ScqEKUAbiJizs6eEJOH4nW9Db1kuzgrBVEykQ==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -6002,26 +6013,26 @@ } }, "node_modules/@storybook/core-server": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.6.3.tgz", - "integrity": "sha512-IsM24MmiFmtZeyqoijiExpIPkJNBaWQg9ttkkHS6iYwf3yFNBpYVbvuX2OpT7FDdiF3uTl0R8IvfnJR58tHD7w==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.6.5.tgz", + "integrity": "sha512-BfKzK/ObTjUcPvE5/r1pogCifM/4nLRhOUYJl7XekwHkOQwn19e6H3/ku1W3jDoYXBu642Dc9X7l/ERjKTqxFg==", "dev": true, "dependencies": { "@aw-web-design/x-default-browser": "1.4.126", "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-manager": "7.6.3", - "@storybook/channels": "7.6.3", - "@storybook/core-common": "7.6.3", - "@storybook/core-events": "7.6.3", + "@storybook/builder-manager": "7.6.5", + "@storybook/channels": "7.6.5", + "@storybook/core-common": "7.6.5", + "@storybook/core-events": "7.6.5", "@storybook/csf": "^0.1.2", - "@storybook/csf-tools": "7.6.3", + "@storybook/csf-tools": "7.6.5", "@storybook/docs-mdx": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/manager": "7.6.3", - "@storybook/node-logger": "7.6.3", - "@storybook/preview-api": "7.6.3", - "@storybook/telemetry": "7.6.3", - "@storybook/types": "7.6.3", + "@storybook/manager": "7.6.5", + "@storybook/node-logger": "7.6.5", + "@storybook/preview-api": "7.6.5", + "@storybook/telemetry": "7.6.5", + "@storybook/types": "7.6.5", "@types/detect-port": "^1.3.0", "@types/node": "^18.0.0", "@types/pretty-hrtime": "^1.0.0", @@ -6055,9 +6066,9 @@ } }, "node_modules/@storybook/core-server/node_modules/@types/node": { - "version": "18.19.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.2.tgz", - "integrity": "sha512-6wzfBdbWpe8QykUkXBjtmO3zITA0A3FIjoy+in0Y2K4KrCiRhNYJIdwAPDffZ3G6GnaKaSLSEa9ZuORLfEoiwg==", + "version": "18.19.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.3.tgz", + "integrity": "sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -6158,12 +6169,12 @@ } }, "node_modules/@storybook/csf-plugin": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.6.3.tgz", - "integrity": "sha512-8bMYPsWw2tv+fqZ5H436l4x1KLSB6gIcm6snsjyF916yCHG6WcWm+EI6+wNUoySEtrQY2AiwFJqE37wI5OUJFg==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.6.5.tgz", + "integrity": "sha512-iQ8Y/Qq1IUhHRddjDVicWJA2sM7OZA1FR97OvWUT2240WjCuQSCfy32JD8TQlYjqXgEolJeLPv3zW4qH5om4LQ==", "dev": true, "dependencies": { - "@storybook/csf-tools": "7.6.3", + "@storybook/csf-tools": "7.6.5", "unplugin": "^1.3.1" }, "funding": { @@ -6172,9 +6183,9 @@ } }, "node_modules/@storybook/csf-tools": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.6.3.tgz", - "integrity": "sha512-Zi3pg2pg88/mvBKewkfWhFUR1J4uYpHI5fSjOE+J/FeZObX/DIE7r+wJxZ0UBGyrk0Wy7Jajlb2uSP56Y0i19w==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.6.5.tgz", + "integrity": "sha512-1iaCh7nt+WE7Q5UwRhLLc5flMNoAV/vBr0tvDSCKiHaO+D3dZzlZOe/U+S6wegdyN2QNcvT2xs179CcrX6Qp6w==", "dev": true, "dependencies": { "@babel/generator": "^7.23.0", @@ -6182,7 +6193,7 @@ "@babel/traverse": "^7.23.2", "@babel/types": "^7.23.0", "@storybook/csf": "^0.1.2", - "@storybook/types": "7.6.3", + "@storybook/types": "7.6.5", "fs-extra": "^11.1.0", "recast": "^0.23.1", "ts-dedent": "^2.0.0" @@ -6199,14 +6210,14 @@ "dev": true }, "node_modules/@storybook/docs-tools": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.6.3.tgz", - "integrity": "sha512-6MtirRCQIkBeQ3bksPignZgUuFmjWqcFleTEN6vrNEfbCzMlMvuBGfm9tl4sS3n8ATWmKGj87DcJepPOT3FB4A==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.6.5.tgz", + "integrity": "sha512-UyHkHu5Af6jMpYsR4lZ69D32GQGeA0pLAn7jaBbQndgAjBdK1ykZcifiUC7Wz1hG7+YpuYspEGuDEddOh+X8FQ==", "dev": true, "dependencies": { - "@storybook/core-common": "7.6.3", - "@storybook/preview-api": "7.6.3", - "@storybook/types": "7.6.3", + "@storybook/core-common": "7.6.5", + "@storybook/preview-api": "7.6.5", + "@storybook/types": "7.6.5", "@types/doctrine": "^0.0.3", "assert": "^2.1.0", "doctrine": "^3.0.0", @@ -6224,9 +6235,9 @@ "dev": true }, "node_modules/@storybook/manager": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.6.3.tgz", - "integrity": "sha512-6eMaogHANCSVV2zLPt4Q7fp8RT+AdlOe6IR0583AuqpepcFzj33iGNYABk2rmXAlkD0WzoLcC4H5mouU0fduLA==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.6.5.tgz", + "integrity": "sha512-y1KLH0O1PGPyMxGMvOhppzFSO7r4ibjTve5iqsI0JZwxUjNuBKRLYbrhXdAyC2iacvxYNrHgevae1k9XdD+FQw==", "dev": true, "funding": { "type": "opencollective", @@ -6234,19 +6245,19 @@ } }, "node_modules/@storybook/manager-api": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.6.3.tgz", - "integrity": "sha512-soDH7GZuukkhYRGzlw4jhCm5EzjfkuIAtb37/DFplqxuVbvlyJEVzkMUM2KQO7kq0/8GlWPiZ5mn56wagYyhKQ==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.6.5.tgz", + "integrity": "sha512-tE3OShOcs6A3XtI3NJd6hYQOZLaP++Fn0dCtowBwYh/vS1EN/AyroVmL97tsxn1DZTyoRt0GidwbB6dvLMBOwA==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.3", - "@storybook/client-logger": "7.6.3", - "@storybook/core-events": "7.6.3", + "@storybook/channels": "7.6.5", + "@storybook/client-logger": "7.6.5", + "@storybook/core-events": "7.6.5", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/router": "7.6.3", - "@storybook/theming": "7.6.3", - "@storybook/types": "7.6.3", + "@storybook/router": "7.6.5", + "@storybook/theming": "7.6.5", + "@storybook/types": "7.6.5", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -6300,9 +6311,9 @@ "dev": true }, "node_modules/@storybook/node-logger": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.3.tgz", - "integrity": "sha512-7yL0CMHuh1DhpUAoKCU0a53DvxBpkUom9SX5RaC1G2A9BK/B3XcHtDPAC0uyUwNCKLJMZo9QtmJspvxWjR0LtA==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.5.tgz", + "integrity": "sha512-xKw6IH1wLkIssekdBv3bd13xYKUF1t8EwqDR8BYcN8AVjZlqJMTifssqG4bYV+G/B7J3tz4ugJ5nmtWg6RQ0Qw==", "dev": true, "funding": { "type": "opencollective", @@ -6310,9 +6321,9 @@ } }, "node_modules/@storybook/postinstall": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.6.3.tgz", - "integrity": "sha512-WpgdpJpY6rionluxjFZLbKiSDjvQJ5cPgufjvBRuXTsnVOsH3JNRWnPdkQkJLT9uTUMoNcyBMxbjYkK3vU6wSg==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.6.5.tgz", + "integrity": "sha512-12WxfpqGKsk7GQ3KWiZSbamsYK8vtRmhOTkavZ9IQkcJ/zuVfmqK80/Mds+njJMudUPzuREuSFGWACczo17EDA==", "dev": true, "funding": { "type": "opencollective", @@ -6320,9 +6331,9 @@ } }, "node_modules/@storybook/preview": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.6.3.tgz", - "integrity": "sha512-obSmKN8arWSHuLbCDM1H0lTVRMvAP/l7vOi6TQtFi6TxBz9MRCJA3Ugc0PZrbDADVZP+cp0ZJA0JQtAm+SqNAA==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.6.5.tgz", + "integrity": "sha512-zmLa7C7yFGTYhgGZXoecdww9rx0Z5HpNi/GDBRWoNSK+FEdE8Jj2jF5NJ2ncldtYIyegz9ku29JFMKbhMj9K5Q==", "dev": true, "funding": { "type": "opencollective", @@ -6330,17 +6341,17 @@ } }, "node_modules/@storybook/preview-api": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.3.tgz", - "integrity": "sha512-uPaK7yLE1P++F+IOb/1j9pgdCwfMYZrUPHogF/Mf9r4cfEjDCcIeKgGMcsbU1KnkzNQQGPh8JRzRr/iYnLjswg==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.5.tgz", + "integrity": "sha512-9XzuDXXgNuA6dDZ3DXsUwEG6ElxeTbzLuYuzcjtS1FusSICZ2iYmxfS0GfSud9MjPPYOJYoSOvMdIHjorjgByA==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.3", - "@storybook/client-logger": "7.6.3", - "@storybook/core-events": "7.6.3", + "@storybook/channels": "7.6.5", + "@storybook/client-logger": "7.6.5", + "@storybook/core-events": "7.6.5", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.3", + "@storybook/types": "7.6.5", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -6356,9 +6367,9 @@ } }, "node_modules/@storybook/react-dom-shim": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.6.3.tgz", - "integrity": "sha512-UtaEaTQB27aBsAmn5IfAYkX2xl4wWWXkoAO/jUtx86FQ/r85FG0zxh/rac6IgzjYUqzjJtjIeLdeciG/48hMMA==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.6.5.tgz", + "integrity": "sha512-Qp3N3zENdvx20ikHmz5yI03z+mAWF8bUAwUofqXarVtZUkBNtvfTfUwgAezOAF0eClClH+ktIziIKd976tLSPw==", "dev": true, "funding": { "type": "opencollective", @@ -6370,12 +6381,12 @@ } }, "node_modules/@storybook/router": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.6.3.tgz", - "integrity": "sha512-NZfhJqsXYca9mZCL/LGx6FmZDbrxX2S4ImW7Tqdtcc/sSlZ0BpCDkNUTesCA287cmoKMhXZRh/+bU+C2h2a+bw==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.6.5.tgz", + "integrity": "sha512-QiTC86gRuoepzzmS6HNJZTwfz/n27NcqtaVEIxJi1Yvsx2/kLa9NkRhylNkfTuZ1gEry9stAlKWanMsB2aKyjQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.3", + "@storybook/client-logger": "7.6.5", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -6385,14 +6396,14 @@ } }, "node_modules/@storybook/telemetry": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.6.3.tgz", - "integrity": "sha512-NDCZWhVIUI3M6Lq4M/HPOvZqDXqANDNbI3kyHr4pFGoVaCUXuDPokL9wR+CZcMvATkJ1gHrfLPBdcRq6Biw3Iw==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.6.5.tgz", + "integrity": "sha512-FiLRh9k9LoGphqgBqPYySWdGqplihiZyDwqdo+Qs19RcQ/eiKg0W7fdA09nStcdcsHmDl/1cMfRhz9KUiMtwOw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.3", - "@storybook/core-common": "7.6.3", - "@storybook/csf-tools": "7.6.3", + "@storybook/client-logger": "7.6.5", + "@storybook/core-common": "7.6.5", + "@storybook/csf-tools": "7.6.5", "chalk": "^4.1.0", "detect-package-manager": "^2.0.1", "fetch-retry": "^5.0.2", @@ -6457,13 +6468,13 @@ } }, "node_modules/@storybook/theming": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.6.3.tgz", - "integrity": "sha512-9ToNU2LM6a2kVBjOXitXEeEOuMurVLhn+uaZO1dJjv8NGnJVYiLwNPwrLsImiUD8/XXNuil972aanBR6+Aj9jw==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.6.5.tgz", + "integrity": "sha512-RpcWT0YEgiobO41McVPDfQQHHFnjyr1sJnNTPJIvOUgSfURdgSj17mQVxtD5xcXcPWUdle5UhIOrCixHbL/NNw==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.6.3", + "@storybook/client-logger": "7.6.5", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -6477,12 +6488,12 @@ } }, "node_modules/@storybook/types": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.3.tgz", - "integrity": "sha512-vj9Jzg5eR52l8O9512QywbQpNdo67Z6BQWR8QoZRcG+/Bhzt08YI8IZMPQLFMKzcmWDPK0blQ4GfyKDYplMjPA==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.5.tgz", + "integrity": "sha512-Q757v+fYZZSaEpks/zDL5YgXRozxkgKakXFc+BoQHK5q5sVhJ+0jvpLJiAQAniIIaMIkqY/G24Kd6Uo6UdKBCg==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.3", + "@storybook/channels": "7.6.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -6493,18 +6504,18 @@ } }, "node_modules/@storybook/web-components": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.6.3.tgz", - "integrity": "sha512-dBZi4LOm8juxZU3DlQX+IwD2dDNnVKBXJQRwc4NV+bOk/8DakhvniESWYkkiiCP+MyKDqY4pbi6CkEfnakMgtA==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.6.5.tgz", + "integrity": "sha512-uBL1d/qSwvbmkV/JGBdLySdmyOnZKBK+hn7+lgfQfTPV7JjOmTzuifnnSrhKlI/wupdBM/LYjlax5kGYt3oBXQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.3", - "@storybook/core-client": "7.6.3", - "@storybook/docs-tools": "7.6.3", + "@storybook/client-logger": "7.6.5", + "@storybook/core-client": "7.6.5", + "@storybook/docs-tools": "7.6.5", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.6.3", - "@storybook/preview-api": "7.6.3", - "@storybook/types": "7.6.3", + "@storybook/manager-api": "7.6.5", + "@storybook/preview-api": "7.6.5", + "@storybook/types": "7.6.5", "tiny-invariant": "^1.3.1", "ts-dedent": "^2.0.0" }, @@ -6520,15 +6531,15 @@ } }, "node_modules/@storybook/web-components-vite": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.6.3.tgz", - "integrity": "sha512-Fe/lXB+8kzY5oMyU4XpqQWmaEYcM1wdseuL8fNr4c+ToK1aQyIb5snMvGdoU7kzrd2Uzj/xTxPBfVgrROSw99Q==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.6.5.tgz", + "integrity": "sha512-j4lfrgPjlqAeoUdfXWMESUAxrOn+YUJekGh3saxsHxXIiYnzJBdkiJju4Hzqav4j8645bJzlZBw51e6wJJsuFw==", "dev": true, "dependencies": { - "@storybook/builder-vite": "7.6.3", - "@storybook/core-server": "7.6.3", - "@storybook/node-logger": "7.6.3", - "@storybook/web-components": "7.6.3", + "@storybook/builder-vite": "7.6.5", + "@storybook/core-server": "7.6.5", + "@storybook/node-logger": "7.6.5", + "@storybook/web-components": "7.6.5", "magic-string": "^0.30.0" }, "engines": { @@ -6539,24 +6550,6 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/web-components-vite/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@storybook/web-components-vite/node_modules/magic-string": { - "version": "0.30.2", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.2.tgz", - "integrity": "sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@tootallnate/quickjs-emscripten": { "version": "0.23.0", "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", @@ -6765,9 +6758,9 @@ "dev": true }, "node_modules/@types/dompurify": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-3.0.4.tgz", - "integrity": "sha512-1Jk8S/IRzNSbwQRbuGuLFHviwxQ8pX81ZEW3INY9432Cwb4VedkBYan8gSIXVLOLHBtimOmUTEYphjRVmo+30g==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-3.0.5.tgz", + "integrity": "sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg==", "dependencies": { "@types/trusted-types": "*" } @@ -7163,9 +7156,9 @@ "dev": true }, "node_modules/@types/uuid": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.2.tgz", - "integrity": "sha512-kNnC1GFBLuhImSnV7w4njQkUiJi0ZXUycu1rUaouPqiKlXkh77JKgdRnTAp1x5eBwcIwbtI+3otwzuIDEuDoxQ==" + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.7.tgz", + "integrity": "sha512-WUtIVRUZ9i5dYXefDEAI7sh9/O7jGvHg7Df/5O/gtH3Yabe5odI3UWopVR1qbPXQtvOxWu3mM4XxlYeZtMWF4g==" }, "node_modules/@types/ws": { "version": "7.4.7", @@ -7202,16 +7195,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.2.tgz", - "integrity": "sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.14.0.tgz", + "integrity": "sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.13.2", - "@typescript-eslint/type-utils": "6.13.2", - "@typescript-eslint/utils": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2", + "@typescript-eslint/scope-manager": "6.14.0", + "@typescript-eslint/type-utils": "6.14.0", + "@typescript-eslint/utils": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -7237,13 +7230,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.13.2.tgz", - "integrity": "sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz", + "integrity": "sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2" + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -7254,9 +7247,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.13.2.tgz", - "integrity": "sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.14.0.tgz", + "integrity": "sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -7267,13 +7260,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.2.tgz", - "integrity": "sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz", + "integrity": "sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2", + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -7294,17 +7287,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.13.2.tgz", - "integrity": "sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.14.0.tgz", + "integrity": "sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.13.2", - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/typescript-estree": "6.13.2", + "@typescript-eslint/scope-manager": "6.14.0", + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/typescript-estree": "6.14.0", "semver": "^7.5.4" }, "engines": { @@ -7319,12 +7312,12 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.2.tgz", - "integrity": "sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz", + "integrity": "sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/types": "6.14.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -7369,15 +7362,15 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.13.2.tgz", - "integrity": "sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.14.0.tgz", + "integrity": "sha512-QjToC14CKacd4Pa7JK4GeB/vHmWFJckec49FR4hmIRf97+KXole0T97xxu9IFiPxVQ1DBWrQ5wreLwAGwWAVQA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.13.2", - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/typescript-estree": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2", + "@typescript-eslint/scope-manager": "6.14.0", + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/typescript-estree": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0", "debug": "^4.3.4" }, "engines": { @@ -7397,13 +7390,13 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.13.2.tgz", - "integrity": "sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz", + "integrity": "sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2" + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -7414,9 +7407,9 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.13.2.tgz", - "integrity": "sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.14.0.tgz", + "integrity": "sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -7427,13 +7420,13 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.2.tgz", - "integrity": "sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz", + "integrity": "sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2", + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -7454,12 +7447,12 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.2.tgz", - "integrity": "sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz", + "integrity": "sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/types": "6.14.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -7521,13 +7514,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.13.2.tgz", - "integrity": "sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.14.0.tgz", + "integrity": "sha512-x6OC9Q7HfYKqjnuNu5a7kffIYs3No30isapRBJl1iCHLitD8O0lFbRcVGiOcuyN837fqXzPZ1NS10maQzZMKqw==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.13.2", - "@typescript-eslint/utils": "6.13.2", + "@typescript-eslint/typescript-estree": "6.14.0", + "@typescript-eslint/utils": "6.14.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -7548,13 +7541,13 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.13.2.tgz", - "integrity": "sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz", + "integrity": "sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2" + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -7565,9 +7558,9 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.13.2.tgz", - "integrity": "sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.14.0.tgz", + "integrity": "sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -7578,13 +7571,13 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.2.tgz", - "integrity": "sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz", + "integrity": "sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2", + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -7605,17 +7598,17 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.13.2.tgz", - "integrity": "sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.14.0.tgz", + "integrity": "sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.13.2", - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/typescript-estree": "6.13.2", + "@typescript-eslint/scope-manager": "6.14.0", + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/typescript-estree": "6.14.0", "semver": "^7.5.4" }, "engines": { @@ -7630,12 +7623,12 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.2.tgz", - "integrity": "sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz", + "integrity": "sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/types": "6.14.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -7829,149 +7822,150 @@ } }, "node_modules/@umbraco-ui/uui": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.6.0-rc.1.tgz", - "integrity": "sha512-e0pdsx3iFb9Fgr7uONgRorjKTBU5eNUZ/MkdToI3uBcGUwUFbBiVlQWlOPnZuEYXU4Spaz5Fl+dX9JOnSbTMaA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.6.0-rc.3.tgz", + "integrity": "sha512-nOqoQ+U9X+oLWP62o3owXYuXQtVK8DRNpQsFPDkVjFtqsm/oKydt/PCQgEivwNptjOpA9Qea+8ZoPsg0FqEsNQ==", "dependencies": { - "@umbraco-ui/uui-action-bar": "1.6.0-rc.1", - "@umbraco-ui/uui-avatar": "1.6.0-rc.1", - "@umbraco-ui/uui-avatar-group": "1.6.0-rc.1", - "@umbraco-ui/uui-badge": "1.6.0-rc.1", - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-boolean-input": "1.6.0-rc.1", - "@umbraco-ui/uui-box": "1.6.0-rc.1", - "@umbraco-ui/uui-breadcrumbs": "1.6.0-rc.1", - "@umbraco-ui/uui-button": "1.6.0-rc.1", - "@umbraco-ui/uui-button-group": "1.6.0-rc.1", - "@umbraco-ui/uui-button-inline-create": "1.6.0-rc.1", - "@umbraco-ui/uui-card": "1.6.0-rc.1", - "@umbraco-ui/uui-card-content-node": "1.6.0-rc.1", - "@umbraco-ui/uui-card-media": "1.6.0-rc.1", - "@umbraco-ui/uui-card-user": "1.6.0-rc.1", - "@umbraco-ui/uui-caret": "1.6.0-rc.1", - "@umbraco-ui/uui-checkbox": "1.6.0-rc.1", - "@umbraco-ui/uui-color-area": "1.6.0-rc.1", - "@umbraco-ui/uui-color-picker": "1.6.0-rc.1", - "@umbraco-ui/uui-color-slider": "1.6.0-rc.1", - "@umbraco-ui/uui-color-swatch": "1.6.0-rc.1", - "@umbraco-ui/uui-color-swatches": "1.6.0-rc.1", - "@umbraco-ui/uui-combobox": "1.6.0-rc.1", - "@umbraco-ui/uui-combobox-list": "1.6.0-rc.1", - "@umbraco-ui/uui-css": "1.6.0-rc.1", - "@umbraco-ui/uui-dialog": "1.6.0-rc.1", - "@umbraco-ui/uui-dialog-layout": "1.6.0-rc.1", - "@umbraco-ui/uui-file-dropzone": "1.6.0-rc.1", - "@umbraco-ui/uui-file-preview": "1.6.0-rc.1", - "@umbraco-ui/uui-form": "1.6.0-rc.1", - "@umbraco-ui/uui-form-layout-item": "1.6.0-rc.1", - "@umbraco-ui/uui-form-validation-message": "1.6.0-rc.1", - "@umbraco-ui/uui-icon": "1.6.0-rc.1", - "@umbraco-ui/uui-icon-registry": "1.6.0-rc.1", - "@umbraco-ui/uui-icon-registry-essential": "1.6.0-rc.1", - "@umbraco-ui/uui-input": "1.6.0-rc.1", - "@umbraco-ui/uui-input-file": "1.6.0-rc.1", - "@umbraco-ui/uui-input-lock": "1.6.0-rc.1", - "@umbraco-ui/uui-input-password": "1.6.0-rc.1", - "@umbraco-ui/uui-keyboard-shortcut": "1.6.0-rc.1", - "@umbraco-ui/uui-label": "1.6.0-rc.1", - "@umbraco-ui/uui-loader": "1.6.0-rc.1", - "@umbraco-ui/uui-loader-bar": "1.6.0-rc.1", - "@umbraco-ui/uui-loader-circle": "1.6.0-rc.1", - "@umbraco-ui/uui-menu-item": "1.6.0-rc.1", - "@umbraco-ui/uui-modal": "1.6.0-rc.1", - "@umbraco-ui/uui-pagination": "1.6.0-rc.1", - "@umbraco-ui/uui-popover": "1.6.0-rc.1", - "@umbraco-ui/uui-popover-container": "1.6.0-rc.1", - "@umbraco-ui/uui-progress-bar": "1.6.0-rc.1", - "@umbraco-ui/uui-radio": "1.6.0-rc.1", - "@umbraco-ui/uui-range-slider": "1.6.0-rc.1", - "@umbraco-ui/uui-ref": "1.6.0-rc.1", - "@umbraco-ui/uui-ref-list": "1.6.0-rc.1", - "@umbraco-ui/uui-ref-node": "1.6.0-rc.1", - "@umbraco-ui/uui-ref-node-data-type": "1.6.0-rc.1", - "@umbraco-ui/uui-ref-node-document-type": "1.6.0-rc.1", - "@umbraco-ui/uui-ref-node-form": "1.6.0-rc.1", - "@umbraco-ui/uui-ref-node-member": "1.6.0-rc.1", - "@umbraco-ui/uui-ref-node-package": "1.6.0-rc.1", - "@umbraco-ui/uui-ref-node-user": "1.6.0-rc.1", - "@umbraco-ui/uui-scroll-container": "1.6.0-rc.1", - "@umbraco-ui/uui-select": "1.6.0-rc.1", - "@umbraco-ui/uui-slider": "1.6.0-rc.1", - "@umbraco-ui/uui-symbol-expand": "1.6.0-rc.1", - "@umbraco-ui/uui-symbol-file": "1.6.0-rc.1", - "@umbraco-ui/uui-symbol-file-dropzone": "1.6.0-rc.1", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.6.0-rc.1", - "@umbraco-ui/uui-symbol-folder": "1.6.0-rc.1", - "@umbraco-ui/uui-symbol-lock": "1.6.0-rc.1", - "@umbraco-ui/uui-symbol-more": "1.6.0-rc.1", - "@umbraco-ui/uui-symbol-sort": "1.6.0-rc.1", - "@umbraco-ui/uui-table": "1.6.0-rc.1", - "@umbraco-ui/uui-tabs": "1.6.0-rc.1", - "@umbraco-ui/uui-tag": "1.6.0-rc.1", - "@umbraco-ui/uui-textarea": "1.6.0-rc.1", - "@umbraco-ui/uui-toast-notification": "1.6.0-rc.1", - "@umbraco-ui/uui-toast-notification-container": "1.6.0-rc.1", - "@umbraco-ui/uui-toast-notification-layout": "1.6.0-rc.1", - "@umbraco-ui/uui-toggle": "1.6.0-rc.1", - "@umbraco-ui/uui-visually-hidden": "1.6.0-rc.1" + "@umbraco-ui/uui-action-bar": "1.6.0-rc.3", + "@umbraco-ui/uui-avatar": "1.6.0-rc.3", + "@umbraco-ui/uui-avatar-group": "1.6.0-rc.3", + "@umbraco-ui/uui-badge": "1.6.0-rc.3", + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-boolean-input": "1.6.0-rc.3", + "@umbraco-ui/uui-box": "1.6.0-rc.3", + "@umbraco-ui/uui-breadcrumbs": "1.6.0-rc.3", + "@umbraco-ui/uui-button": "1.6.0-rc.3", + "@umbraco-ui/uui-button-group": "1.6.0-rc.3", + "@umbraco-ui/uui-button-inline-create": "1.6.0-rc.3", + "@umbraco-ui/uui-card": "1.6.0-rc.3", + "@umbraco-ui/uui-card-block-type": "1.6.0-rc.3", + "@umbraco-ui/uui-card-content-node": "1.6.0-rc.3", + "@umbraco-ui/uui-card-media": "1.6.0-rc.3", + "@umbraco-ui/uui-card-user": "1.6.0-rc.3", + "@umbraco-ui/uui-caret": "1.6.0-rc.3", + "@umbraco-ui/uui-checkbox": "1.6.0-rc.3", + "@umbraco-ui/uui-color-area": "1.6.0-rc.3", + "@umbraco-ui/uui-color-picker": "1.6.0-rc.3", + "@umbraco-ui/uui-color-slider": "1.6.0-rc.3", + "@umbraco-ui/uui-color-swatch": "1.6.0-rc.3", + "@umbraco-ui/uui-color-swatches": "1.6.0-rc.3", + "@umbraco-ui/uui-combobox": "1.6.0-rc.3", + "@umbraco-ui/uui-combobox-list": "1.6.0-rc.3", + "@umbraco-ui/uui-css": "1.6.0-rc.3", + "@umbraco-ui/uui-dialog": "1.6.0-rc.3", + "@umbraco-ui/uui-dialog-layout": "1.6.0-rc.3", + "@umbraco-ui/uui-file-dropzone": "1.6.0-rc.3", + "@umbraco-ui/uui-file-preview": "1.6.0-rc.3", + "@umbraco-ui/uui-form": "1.6.0-rc.3", + "@umbraco-ui/uui-form-layout-item": "1.6.0-rc.3", + "@umbraco-ui/uui-form-validation-message": "1.6.0-rc.3", + "@umbraco-ui/uui-icon": "1.6.0-rc.3", + "@umbraco-ui/uui-icon-registry": "1.6.0-rc.3", + "@umbraco-ui/uui-icon-registry-essential": "1.6.0-rc.3", + "@umbraco-ui/uui-input": "1.6.0-rc.3", + "@umbraco-ui/uui-input-file": "1.6.0-rc.3", + "@umbraco-ui/uui-input-lock": "1.6.0-rc.3", + "@umbraco-ui/uui-input-password": "1.6.0-rc.3", + "@umbraco-ui/uui-keyboard-shortcut": "1.6.0-rc.3", + "@umbraco-ui/uui-label": "1.6.0-rc.3", + "@umbraco-ui/uui-loader": "1.6.0-rc.3", + "@umbraco-ui/uui-loader-bar": "1.6.0-rc.3", + "@umbraco-ui/uui-loader-circle": "1.6.0-rc.3", + "@umbraco-ui/uui-menu-item": "1.6.0-rc.3", + "@umbraco-ui/uui-modal": "1.6.0-rc.3", + "@umbraco-ui/uui-pagination": "1.6.0-rc.3", + "@umbraco-ui/uui-popover": "1.6.0-rc.3", + "@umbraco-ui/uui-popover-container": "1.6.0-rc.3", + "@umbraco-ui/uui-progress-bar": "1.6.0-rc.3", + "@umbraco-ui/uui-radio": "1.6.0-rc.3", + "@umbraco-ui/uui-range-slider": "1.6.0-rc.3", + "@umbraco-ui/uui-ref": "1.6.0-rc.3", + "@umbraco-ui/uui-ref-list": "1.6.0-rc.3", + "@umbraco-ui/uui-ref-node": "1.6.0-rc.3", + "@umbraco-ui/uui-ref-node-data-type": "1.6.0-rc.3", + "@umbraco-ui/uui-ref-node-document-type": "1.6.0-rc.3", + "@umbraco-ui/uui-ref-node-form": "1.6.0-rc.3", + "@umbraco-ui/uui-ref-node-member": "1.6.0-rc.3", + "@umbraco-ui/uui-ref-node-package": "1.6.0-rc.3", + "@umbraco-ui/uui-ref-node-user": "1.6.0-rc.3", + "@umbraco-ui/uui-scroll-container": "1.6.0-rc.3", + "@umbraco-ui/uui-select": "1.6.0-rc.3", + "@umbraco-ui/uui-slider": "1.6.0-rc.3", + "@umbraco-ui/uui-symbol-expand": "1.6.0-rc.3", + "@umbraco-ui/uui-symbol-file": "1.6.0-rc.3", + "@umbraco-ui/uui-symbol-file-dropzone": "1.6.0-rc.3", + "@umbraco-ui/uui-symbol-file-thumbnail": "1.6.0-rc.3", + "@umbraco-ui/uui-symbol-folder": "1.6.0-rc.3", + "@umbraco-ui/uui-symbol-lock": "1.6.0-rc.3", + "@umbraco-ui/uui-symbol-more": "1.6.0-rc.3", + "@umbraco-ui/uui-symbol-sort": "1.6.0-rc.3", + "@umbraco-ui/uui-table": "1.6.0-rc.3", + "@umbraco-ui/uui-tabs": "1.6.0-rc.3", + "@umbraco-ui/uui-tag": "1.6.0-rc.3", + "@umbraco-ui/uui-textarea": "1.6.0-rc.3", + "@umbraco-ui/uui-toast-notification": "1.6.0-rc.3", + "@umbraco-ui/uui-toast-notification-container": "1.6.0-rc.3", + "@umbraco-ui/uui-toast-notification-layout": "1.6.0-rc.3", + "@umbraco-ui/uui-toggle": "1.6.0-rc.3", + "@umbraco-ui/uui-visually-hidden": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-action-bar": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-action-bar/-/uui-action-bar-1.6.0-rc.1.tgz", - "integrity": "sha512-mJA/gRp21dSdFJiAVpZbWXYvO4LuPTOXvPXWxAwQ0S4cfr8KbxLQji2+tvDXCZU0VW+ysUAPI+izq9ovkTrtwg==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-action-bar/-/uui-action-bar-1.6.0-rc.3.tgz", + "integrity": "sha512-8tTgTQ7Qekifi098cRVmoLpx9IrWdVbs2Egv7toAkaEkGx4e195YVNVYc1nXhO/wbbMLe2rx2r765rsUXkAelw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-button-group": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-button-group": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-avatar": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar/-/uui-avatar-1.6.0-rc.1.tgz", - "integrity": "sha512-xH4WEfu5tmf3i2mrcidyQWyIMJ8e0nWSbVugDDL9ydMMdHW1d6HQjVm4LPBldQOY9s17dYRcHZ614GEc8XFExg==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar/-/uui-avatar-1.6.0-rc.3.tgz", + "integrity": "sha512-iCSwVNCGk/I+febTD4Snvf5/kARawGJLkGR6Uy7WylEAvOhjWYdYg45d9kAjwQdEssCdKFy6DJ66NpDRxieneA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-avatar-group": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar-group/-/uui-avatar-group-1.6.0-rc.1.tgz", - "integrity": "sha512-ZcZeadWyPI2IJmpD1zSlrAiPl3gFvIyrmTpmtSEb8KdlMlf+4vXIsrEGzGbIrrZAidPHZdKsPAxxjcf2gLQXNQ==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar-group/-/uui-avatar-group-1.6.0-rc.3.tgz", + "integrity": "sha512-gG/nWjArhQxAos4hifh+NxZtobOQ7yu2CcEVzqlU+zRFm9ECp9DbrxrRIbhinJYSlWsz+89SrxyTaGOyC/mgQQ==", "dependencies": { - "@umbraco-ui/uui-avatar": "1.6.0-rc.1", - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-avatar": "1.6.0-rc.3", + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-badge": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-badge/-/uui-badge-1.6.0-rc.1.tgz", - "integrity": "sha512-DAKp/H9WD8eXBc2q5FRCW90B9cjSOnwDFyMJGm2qzQmF+A5s5KpLo7UQoUlSvYqYrqWF43TLrYZk1Cclhv9dQQ==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-badge/-/uui-badge-1.6.0-rc.3.tgz", + "integrity": "sha512-3Zrx14sg6gNC8reYq8e+xHBMJBqlsU9jhC7eNnsfdMJ55le+62UtWMcd9NtlAdD6d6f8lChEkRaSHHRSvVztnA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-base": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-base/-/uui-base-1.6.0-rc.1.tgz", - "integrity": "sha512-63Ua5AUYKcs9507JhY7Zfnb354KVTfrVoUbuJ/31vYHn6dqmIaxUnu+0EroQe1l5uSarv/FgPxWVzbza6ygBoA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-base/-/uui-base-1.6.0-rc.3.tgz", + "integrity": "sha512-7oFba1uLM0Rlcdb9Vt5fR2WvT0w8e6kWTBGfqqmX+0qxWKhh7DEr0UnTHLUnEjxWCQnv5k+lYSRjsIy/LPnHCA==", "dependencies": { "lit": "^2.3.1" } }, "node_modules/@umbraco-ui/uui-boolean-input": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-boolean-input/-/uui-boolean-input-1.6.0-rc.1.tgz", - "integrity": "sha512-hxtwxJYCEPbKophrMjM82J/lCKNYlgVvfBLO+/lOMog7YMnbBYtUAQbnUnd+s3IuVTvm8nHLfgVWyRFNpuYmhA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-boolean-input/-/uui-boolean-input-1.6.0-rc.3.tgz", + "integrity": "sha512-K+qQ3rSlNd0J9ax4Hs0d03c+w1Hf2V+BjdRLzgqn4quUwo0zTW+F5wgBKI3fYTKweIOh6MpWasvN8CewWj3w6g==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-box": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-box/-/uui-box-1.6.0-rc.1.tgz", - "integrity": "sha512-Zz+43C/JCB1A4S2O+7cOJSxJdKlk683thN7jhWCKw6shB6lVd+uwYXbjWY2ubPCVjfliIncvecEGlbQhady5sw==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-box/-/uui-box-1.6.0-rc.3.tgz", + "integrity": "sha512-XGEiKar1hzLDzRpU3c1eX6GmoUdB//4TGE1V1mIgnzUQm6FZTHTQx0t3BeGhveU9UN0d2yh4sFmR97+B9ZhXng==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", + "@umbraco-ui/uui-base": "1.6.0-rc.3", "@umbraco-ui/uui-css": "1.4.0" } }, @@ -7984,183 +7978,195 @@ } }, "node_modules/@umbraco-ui/uui-breadcrumbs": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.6.0-rc.1.tgz", - "integrity": "sha512-rPtZj2mpHuTg5fH+1ldllBLD5t642bGmtmj0ki91RHjdbdx0r7LmAQFJRbQX9mBoQwaejukmT3m0vlDoP66O7g==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.6.0-rc.3.tgz", + "integrity": "sha512-ZA2+WwXPLErcvvlWrTXsKgWIrKBPZh57TIq2cFxVu46eGGobi8u7DLpvFETJFOVJWz3bLiFfPluf76vvkAfLPw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-button": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button/-/uui-button-1.6.0-rc.1.tgz", - "integrity": "sha512-nWS5EBsWKdJxiYZ9OhLi2vawOELvnENXdZ5DitOIv7E2LZLBXG0YbioapE6vhCIg6kbqN/AjCG7f+YlnETCh1Q==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button/-/uui-button-1.6.0-rc.3.tgz", + "integrity": "sha512-0VEaOoQGPZYqSQG5seRx9bS5iXWINUNIKB3C02D9LhhSANkWXfpShC2TLqT7SWIdYvgTd24EFB4mda+UNCitPA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-icon-registry-essential": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-icon-registry-essential": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-button-group": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-group/-/uui-button-group-1.6.0-rc.1.tgz", - "integrity": "sha512-gLOBSskkhW/ukjPmxGmMSmafgMmsWn7ajkcuRX/MWqhNIYDHjCtszEL+NvMZJA96YxvwDhRnDD8qYutsUcSbgA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-group/-/uui-button-group-1.6.0-rc.3.tgz", + "integrity": "sha512-rp//K2LdGrTVi0dfgwy4SCCMdZkUoJZ6/I/wnRCDRcR9L6rSJmR14PQVcV3OCt4yY4rxBdVIzP8FUff46qDryg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-button-inline-create": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-inline-create/-/uui-button-inline-create-1.6.0-rc.1.tgz", - "integrity": "sha512-shftZcVUZQhX3UGOgZHVqvrqmIFiGEqZaUlAJWyYqq2B4QI2nwVuC6YpsmmREe5b49+qL6nYGJcUTAV9zT+POw==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-inline-create/-/uui-button-inline-create-1.6.0-rc.3.tgz", + "integrity": "sha512-UJ2NA5AV1EDU/q2rT5kWWepln0xbUZfvAN3P492aB59cM+yfl8j6eWUZRak/+pf02BhCKdQn0nd+IQUqRYKCXA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-card": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card/-/uui-card-1.6.0-rc.1.tgz", - "integrity": "sha512-/n9X03GzEQu4HtuqdSfq4GfE18edB3fcl8KqzPRQsenmSmBwAb1QkNzsHqOZQFeM3YimdCZ2WVy3mSSPd8cg/A==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card/-/uui-card-1.6.0-rc.3.tgz", + "integrity": "sha512-U7Odx6mmS3gHa7eeWMPdwLUKy3nnqoAGK+ZREAKZvOcHOMklaHBRxcAXZfAuXD60saPJAGCeX4hPvQLbx5J2/g==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" + } + }, + "node_modules/@umbraco-ui/uui-card-block-type": { + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-block-type/-/uui-card-block-type-1.6.0-rc.3.tgz", + "integrity": "sha512-9BbzD0uHLw1uqVth7lcDxlPiEFFDi/Rw4o1h27FosrV0satvKr4G3FKXlVbJm8ECOdsvkYaUzHTcHJK5tgmURw==", + "dependencies": { + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-card": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-card-content-node": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-content-node/-/uui-card-content-node-1.6.0-rc.1.tgz", - "integrity": "sha512-TAtXV29TJnbWggiuC+uFe6Qy6bVkvx0WgZAwiYJRXxS+pcFJJXa8YaChR9nu2+lY/S9iiVNf2Ghm5EGgfSi7yg==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-content-node/-/uui-card-content-node-1.6.0-rc.3.tgz", + "integrity": "sha512-BEk+TsaFbohZCwjPEUlzqGrtGAAbM93j4yQPF2qH+5BrWHlSwCl5icwtDZjzSyM/X7GkZCOnLdEg/7Km+4GjoA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-card": "1.6.0-rc.1", - "@umbraco-ui/uui-icon": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-card": "1.6.0-rc.3", + "@umbraco-ui/uui-icon": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-card-media": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-media/-/uui-card-media-1.6.0-rc.1.tgz", - "integrity": "sha512-rbdggsfcU+3Yu7CfKHvwncdkXc3uQMRy51EKN2FhYjW+2so97RUW+i4+cMwyUk339HvLfyNXK+T1GETXWdQFbg==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-media/-/uui-card-media-1.6.0-rc.3.tgz", + "integrity": "sha512-rubexgXf/ocdGQ46yU3cFZVeNaTp6tuplDQwIAP8+KG4HMrdnsp/rP2udAKDey1/ecFtbWJT+Re1K/I4As1oxQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-card": "1.6.0-rc.1", - "@umbraco-ui/uui-symbol-file": "1.6.0-rc.1", - "@umbraco-ui/uui-symbol-folder": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-card": "1.6.0-rc.3", + "@umbraco-ui/uui-symbol-file": "1.6.0-rc.3", + "@umbraco-ui/uui-symbol-folder": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-card-user": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-user/-/uui-card-user-1.6.0-rc.1.tgz", - "integrity": "sha512-l/NX/IijS0Ltf6qxzj8duyrQxces9Q1tKkUOotb8OsS+1NzRtXkZEf2bSvrXqA9TYQ0gBA44UGQqq5nmn36Y4A==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-user/-/uui-card-user-1.6.0-rc.3.tgz", + "integrity": "sha512-a7xdnfTSUtVBDMhKdyiZULQi4gr15aGBCaAxN1ZNXOYDIxaOL3jrkq3VEskjKvgtUMSa4+jR/8wVePHJ55U0NQ==", "dependencies": { - "@umbraco-ui/uui-avatar": "1.6.0-rc.1", - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-card": "1.6.0-rc.1" + "@umbraco-ui/uui-avatar": "1.6.0-rc.3", + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-card": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-caret": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-caret/-/uui-caret-1.6.0-rc.1.tgz", - "integrity": "sha512-mcHavAz4QI4By+MZ0OxoX+1d9oXJO8o/C3QvhWMN4FkX6tKOl2rVClw9vC6aqewOVJZ03aihmqHKVmaL7ioZ3g==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-caret/-/uui-caret-1.6.0-rc.3.tgz", + "integrity": "sha512-O1fbSI3FK8BfP/L9FVjUpC9ZJrUPM00+FYL0YXXQr2hsfp+EbwDbY9cD5Kwngk3+INzM+4vlKb56gf+i/hITKw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-checkbox": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-checkbox/-/uui-checkbox-1.6.0-rc.1.tgz", - "integrity": "sha512-uQRbxF4VFBTH7FrIX40x+gdVYXBf/7iN1u99lLhDTsmQJ4Dmx6rMvG+m0yrONDP1SB1JfZKm68jia4Gj6EDCQw==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-checkbox/-/uui-checkbox-1.6.0-rc.3.tgz", + "integrity": "sha512-LsiW20ZU4QAwZRuT6fEjEQxfWjbt4M7ZBI4152OrueyLgcFX060qVgWItLszGNPlrVYAVIHYNf2jdYF6JEfudA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-boolean-input": "1.6.0-rc.1", - "@umbraco-ui/uui-icon-registry-essential": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-boolean-input": "1.6.0-rc.3", + "@umbraco-ui/uui-icon-registry-essential": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-color-area": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-area/-/uui-color-area-1.6.0-rc.1.tgz", - "integrity": "sha512-y73dKSA0S9IjCK3kvfErVMSdWghlOSN+UWHqXw2ODlWOdwxXX9oNC4vrMbHe8KSf2Zk/et40SAeDx/PGZw9IPQ==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-area/-/uui-color-area-1.6.0-rc.3.tgz", + "integrity": "sha512-rlol64MAtE0DvXUaC4hXncwH9H7iMIpHu4BJVUnVOWz4esEo+TnaKRPqXKZfnE/ZJR40JafwkHBaA1bkXtQqnw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", + "@umbraco-ui/uui-base": "1.6.0-rc.3", "colord": "^2.9.3" } }, "node_modules/@umbraco-ui/uui-color-picker": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-picker/-/uui-color-picker-1.6.0-rc.1.tgz", - "integrity": "sha512-hJ+ormWSREyLhSK7+f4oTRQLol06UgcEVJr+36PZrySRp8QpOGdYuupoaTNP9ft+9XQ5HLKpHBEq7DbUV5PM6g==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-picker/-/uui-color-picker-1.6.0-rc.3.tgz", + "integrity": "sha512-PFYWxzKUJPNCxI48rWzBs3KVJNATjuK9z1hjjSLCM8xUL79UoG2dnL6JZEgAqWQ28jIxcAMaCl2zQu/68NzR1Q==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-popover-container": "1.6.0-rc.3", "colord": "^2.9.3" } }, "node_modules/@umbraco-ui/uui-color-slider": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-slider/-/uui-color-slider-1.6.0-rc.1.tgz", - "integrity": "sha512-hj2IcFfuUqifyTQWbE+aBzLCsbL+7tFiFCq1E64CJ71XtW2AikeQEwyhITnBQF1mTfVhpBpPdPchMEUNM45x1Q==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-slider/-/uui-color-slider-1.6.0-rc.3.tgz", + "integrity": "sha512-njepSEiDyxOsl20wIGMXJCBSbuYqcvHoLhZhLhL8SmGiw0oC9OFS7dDi1Kbhu0lyrhafHaFg2RxO42VpqkyG0g==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-color-swatch": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatch/-/uui-color-swatch-1.6.0-rc.1.tgz", - "integrity": "sha512-l3be532opSGGytq2QhmFc4vqfGph39jEsn1vvhjz+RvCUzxw0YSOFgEfYrcqPsvHaF3hF3v6MzI2JmR+slYkPg==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatch/-/uui-color-swatch-1.6.0-rc.3.tgz", + "integrity": "sha512-ThfJ4ygFp3JM2gb7oIjttOvI1yGgkksVgZvVPBKnPwQwmQp1bR6exnxRCdDOUL0n4bfT6DM/mrpE5LeQMIlSfw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-icon-registry-essential": "1.6.0-rc.1", + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-icon-registry-essential": "1.6.0-rc.3", "colord": "^2.9.3" } }, "node_modules/@umbraco-ui/uui-color-swatches": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatches/-/uui-color-swatches-1.6.0-rc.1.tgz", - "integrity": "sha512-CMI4praN6XcGzgJDna3t5VPOV3bPWcgM4t3UEghWlRhfuQhnvi+vH4cBacvSTGDY+VIrbYGqvHkW2hcKdT8p/A==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatches/-/uui-color-swatches-1.6.0-rc.3.tgz", + "integrity": "sha512-+J6VBf+amU9c2EiMPqSVmWcpZ9aKh9mQHOecgRlfcGlhDgT+H57krbM3Lz7ZBPHl4AIDQaSBO+ouxBAW2Q4B/g==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-color-swatch": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-color-swatch": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-combobox": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox/-/uui-combobox-1.6.0-rc.1.tgz", - "integrity": "sha512-ZYBitGNVOxxzg5onTsS8iRXvv8cFXIhS/kmXKdhYwLLNkUPVrxrkwlInPVNdYanXFhjbtIv4K2Xcl+Yci/kUtQ==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox/-/uui-combobox-1.6.0-rc.3.tgz", + "integrity": "sha512-c3NUkUtr4IeZitZlmYkIbvkB4nPtiICAxgBkZTzfdjqLSjzB+LAFn0rIew9qq1k+2SI5ZwyD5vb7sYRKfP3oIA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-button": "1.6.0-rc.1", - "@umbraco-ui/uui-combobox-list": "1.6.0-rc.1", - "@umbraco-ui/uui-icon": "1.6.0-rc.1", - "@umbraco-ui/uui-scroll-container": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-button": "1.6.0-rc.3", + "@umbraco-ui/uui-combobox-list": "1.6.0-rc.3", + "@umbraco-ui/uui-icon": "1.6.0-rc.3", + "@umbraco-ui/uui-popover-container": "1.6.0-rc.3", + "@umbraco-ui/uui-scroll-container": "1.6.0-rc.3", + "@umbraco-ui/uui-symbol-expand": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-combobox-list": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox-list/-/uui-combobox-list-1.6.0-rc.1.tgz", - "integrity": "sha512-+YcNejjtzci4MGlGksCxlh4JsZuwUv80FqpIe60092UgKMemMqQF8QiJq9gTeXA7ZKGyzo3qfzsqUObOFj4WJQ==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox-list/-/uui-combobox-list-1.6.0-rc.3.tgz", + "integrity": "sha512-5aCold3zI2hoZ/CK2hzS+kuGUdpmoUz9jf/93D4yBbz8GTf2wDxsmslUuhDnzJ8pIg22+osYT01k4R8lRpchOA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-css": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.6.0-rc.1.tgz", - "integrity": "sha512-d1aKNNhTbZiQw550lXLR6VZyC6UWamSkIQxI3KTsUsl6T+kkVf+V4IyIp9+EZzDLjt1JfnWTcTTqaCnH/y/1Cw==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.6.0-rc.3.tgz", + "integrity": "sha512-9AxeLE+yHmDHagpB1sO++l5mHuj5iFi7dz+JwFG9UxXzII+wvCkpWSlgH55+fyh5eEGkyXqZWA50/ismUytw/A==", "dependencies": { "lit": "^2.2.2" } }, "node_modules/@umbraco-ui/uui-dialog": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog/-/uui-dialog-1.6.0-rc.1.tgz", - "integrity": "sha512-MXiFQP0Slu6x+OYV4PE4a0Sfy3qh6QhL35YXOKDUUV+Qpt9GMFqBJ9aqr+xq3Fnp539N6oIImlJl3OSyH8GCxA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog/-/uui-dialog-1.6.0-rc.3.tgz", + "integrity": "sha512-oPVdMZt4TxgnTdeMApQz4qMGLDbF65mYQH2qhro+SU7379ftGNO9euv2SmZGDDKT8/1iI0nS8AuD8m1TBwZ+PQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", + "@umbraco-ui/uui-base": "1.6.0-rc.3", "@umbraco-ui/uui-css": "1.4.0" } }, "node_modules/@umbraco-ui/uui-dialog-layout": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog-layout/-/uui-dialog-layout-1.6.0-rc.1.tgz", - "integrity": "sha512-Gp40myXwpzi9OR/zmLir+YAg4moSFbuWS+65aJWSTVti52fJ6YLpL/dg1kCwpb3AlxROnqrojjHC7ans3uPZLQ==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog-layout/-/uui-dialog-layout-1.6.0-rc.3.tgz", + "integrity": "sha512-7rnywVNdShFHAWPkylQIieD2s2Vy53u/ZINCK2HuG0XmMDVxRbG9q3Tpn09vqOxGmI+4/SBO0UkJoq+yPNe+bA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-dialog/node_modules/@umbraco-ui/uui-css": { @@ -8172,456 +8178,456 @@ } }, "node_modules/@umbraco-ui/uui-file-dropzone": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.6.0-rc.1.tgz", - "integrity": "sha512-YZ9GPAhcbMxvz6tY4PjTXneconQIbUCET34ylvEirEo4OyqAZjBDL69ZzSa3OYO3nKvmITlF8jEwiOO30OBdPA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.6.0-rc.3.tgz", + "integrity": "sha512-clBeuuCTQmx2Jh2gApLBSHAfhRkdx1VZxRqvMlkjggcxIEVYc7joIRApOrL1Ea0u/vg9ZP3v3Wos4P5OQ4BTcA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-symbol-file-dropzone": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-symbol-file-dropzone": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-file-preview": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-preview/-/uui-file-preview-1.6.0-rc.1.tgz", - "integrity": "sha512-/PLiXPpzYn4437mc4W8vnbJhHQB85HO+mQraoY3Mvc50RWyYnRHIj1IknHwNwTppN60wZi3GZDzqxBE88dBAZw==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-preview/-/uui-file-preview-1.6.0-rc.3.tgz", + "integrity": "sha512-sJv0qDdNFfc3koY38VO0NJYcSf5Ydoqq86I+4dzBZZYzXXsxkJlPdwgpLIwz/klJOqmwZLNZRl7IivqVRiIcMA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-symbol-file": "1.6.0-rc.1", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.6.0-rc.1", - "@umbraco-ui/uui-symbol-folder": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-symbol-file": "1.6.0-rc.3", + "@umbraco-ui/uui-symbol-file-thumbnail": "1.6.0-rc.3", + "@umbraco-ui/uui-symbol-folder": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-form": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form/-/uui-form-1.6.0-rc.1.tgz", - "integrity": "sha512-JjNrqgeygmBnqEIdaIgXcG8DySv6cyRQoJ+7lkgXcfwVG81PNB3TyoBal+cYZYQHfeuKRO3LFRmip3l9kO+kUA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form/-/uui-form-1.6.0-rc.3.tgz", + "integrity": "sha512-NGx/pN98Iu301wXDA8Qh6liOA0AMmDKtfvcVNkbB33pq05IAkPKYZx2M6IbyFyxPPnoTuZfibRzforoS3943PQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-form-layout-item": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-layout-item/-/uui-form-layout-item-1.6.0-rc.1.tgz", - "integrity": "sha512-XRtyytALp+lyfcDkosu5Xjt75sw37E2L1ivMsnuHMq+APoZW2Q/Ew0Xi0NoB1xMk1MFcmfjrCF1m4JOWtXQxGg==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-layout-item/-/uui-form-layout-item-1.6.0-rc.3.tgz", + "integrity": "sha512-x5jjkbGra1y5rALXO0LB6J359mj+6uvYqPgkyVzWwclPdTb4zmK/ysS3ZmzablGocrs3iw2g5oXWi3qS7s5FVA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-form-validation-message": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-form-validation-message": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-form-validation-message": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-validation-message/-/uui-form-validation-message-1.6.0-rc.1.tgz", - "integrity": "sha512-nGvl7U0sn8e6+AzwTWbaHCPTx80HvUwFvgTuOlKTO+zoQl1mr7jS0DIqtRbRvL7HcrrrLHSr+L4X30vz9ymk5A==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-validation-message/-/uui-form-validation-message-1.6.0-rc.3.tgz", + "integrity": "sha512-Dk5WTy5uUmxOj85d381YJYYFMJJ4CAIq2N7Gww02xZ+hY/I2fg6KJMkx1E49SPqXCMSX4zFZKktjhZ54s11Law==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-icon": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon/-/uui-icon-1.6.0-rc.1.tgz", - "integrity": "sha512-V4ih/Ip8tYX75q3ugNvjzRyN9SJptpJpGdLXxcTVpq8njKyNF+uUXa4rpqNtqwwTJ8dnFnwcsPRmwgw26yzyJA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon/-/uui-icon-1.6.0-rc.3.tgz", + "integrity": "sha512-AMTV58MIjELlNe/BQPsvvjxrt8IARL0yHr6J9RobiUQ/AzkFWKdbTMHzYvt+qzYHfTeV8Cvgj7lej82Adlo34Q==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-icon-registry": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry/-/uui-icon-registry-1.6.0-rc.1.tgz", - "integrity": "sha512-wDIjJzRSeL8yy8EjLMIroTEYq0u1z6ndhz0tduSZ+U+MbXOpOb03lVbhJLo1JJX4HlNXAo8QhUb9/GzpfzE/qQ==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry/-/uui-icon-registry-1.6.0-rc.3.tgz", + "integrity": "sha512-3HNv+Z2La1ijxvX03E8ICN/S1xvW3EQ4ln7ZFI3QVP5iCrcqXjbBGF3n+G0jjQpKkPqq0ZJOTltIba9wYLUPRw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-icon": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-icon": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-icon-registry-essential": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry-essential/-/uui-icon-registry-essential-1.6.0-rc.1.tgz", - "integrity": "sha512-MKtZzepaeAx5BSphdolm6y1ncTupjN21ZdRbF0YoWoSyDgzsSe4ozyuqvtU3OjhXQHgyfVijCqM3i0QXsJreag==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry-essential/-/uui-icon-registry-essential-1.6.0-rc.3.tgz", + "integrity": "sha512-N2ZKpFRhwa+qud83ca3SV5OeIQ6mF0DpwhVGmX1ZdxObFLPrjz3Mh0oi+PhWqPXAG5c+4GPwAxYSJD8sHVR/RQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-icon-registry": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-icon-registry": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-input": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.6.0-rc.1.tgz", - "integrity": "sha512-UgtYUDkHS8FY9o3garg2YOuoNUUsA6Dv93iKHIfcl8VmR6aRfCbPJuHvI37vq96a6BC4t14UnT2ObMGoS37KFw==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.6.0-rc.3.tgz", + "integrity": "sha512-4EWPpzNi4HTex9uE7Rc2ePhinDwHPj0U1qThLsr7orbvnlS+v3eHNXQ+g8HwOApgRwvqr5yk5D/cxydQ77G2vQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-input-file": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-file/-/uui-input-file-1.6.0-rc.1.tgz", - "integrity": "sha512-QuukKOo1EKiBM6jCCbi8IjnZ7zpjvfgBXAJbNldUSAOd2g7hSf6hZspL/wDwDcz5hvVyiO21ZIdznp66yzHTcA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-file/-/uui-input-file-1.6.0-rc.3.tgz", + "integrity": "sha512-YrFipURVGvEAGiIEX3zaaqDt5FGz5DLYyuydld5Mrbd0EJbxJDttosrtWor0XkmRStyOBycLxT8NK7FCuaCHBA==", "dependencies": { - "@umbraco-ui/uui-action-bar": "1.6.0-rc.1", - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-button": "1.6.0-rc.1", - "@umbraco-ui/uui-file-dropzone": "1.6.0-rc.1", - "@umbraco-ui/uui-icon": "1.6.0-rc.1", - "@umbraco-ui/uui-icon-registry-essential": "1.6.0-rc.1" + "@umbraco-ui/uui-action-bar": "1.6.0-rc.3", + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-button": "1.6.0-rc.3", + "@umbraco-ui/uui-file-dropzone": "1.6.0-rc.3", + "@umbraco-ui/uui-icon": "1.6.0-rc.3", + "@umbraco-ui/uui-icon-registry-essential": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-input-lock": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.6.0-rc.1.tgz", - "integrity": "sha512-KSaVHV+8GAXIU5kZGdOAeUKBgYOXxQCZ8SOgCAYKJw8dnkms0LudHns7oh6gEp9WlalZNMVRSTNWQAmTeFImnA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.6.0-rc.3.tgz", + "integrity": "sha512-5oIAOqwkJi6OXmh8laF/6+0zK76nXXSD/IiWMUauup7YUyu29Ocak8TUF+d5F8123aBjdcCvvzd7ExMXEpTAIQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-button": "1.6.0-rc.1", - "@umbraco-ui/uui-icon": "1.6.0-rc.1", - "@umbraco-ui/uui-input": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-button": "1.6.0-rc.3", + "@umbraco-ui/uui-icon": "1.6.0-rc.3", + "@umbraco-ui/uui-input": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-input-password": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.6.0-rc.1.tgz", - "integrity": "sha512-sDALIrmirSXwPOkjBur88utH62C17tCZfmmN88DYw9G+Z0ItV2rjBYcpjCKYoypCpHQH1oQMuGlP4r8mEGvHPA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.6.0-rc.3.tgz", + "integrity": "sha512-2YOBq26v/d4DXsEY4BXjpQhzCtt5+5Rwp1n5wK4IL33hTvR4XbPHu0mFFFMFSjimc2QaWCz5niF9ihpBkJlqrg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-icon-registry-essential": "1.6.0-rc.1", - "@umbraco-ui/uui-input": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-icon-registry-essential": "1.6.0-rc.3", + "@umbraco-ui/uui-input": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-keyboard-shortcut": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-keyboard-shortcut/-/uui-keyboard-shortcut-1.6.0-rc.1.tgz", - "integrity": "sha512-sTBC5XSHEikLFMHs6wUCvhcPThKuihanpIpJXccV1dncnDiLkfSJeQY0BuWEpdEakHjpuhjp8x6lWlOHjdxMeA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-keyboard-shortcut/-/uui-keyboard-shortcut-1.6.0-rc.3.tgz", + "integrity": "sha512-trIbq4rceeXgoAeqj0ScQZ8vZWCTgecF6sWWkA53ThXbLBTk/C1GerrzO8KFHGgO9hVmsBwHmEk39+yD9sHmnQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-label": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-label/-/uui-label-1.6.0-rc.1.tgz", - "integrity": "sha512-ndrG1ZUZJl5qmqXWnjl+qhd381R65T3ex+kAAGSfGt4i8mOgW5CoQtfgq7daIIwJRG1D+Olx6nhbW+wYAQN7OQ==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-label/-/uui-label-1.6.0-rc.3.tgz", + "integrity": "sha512-cudhsbX8wSnBWKoWZFpIbm56gHpRkXU4Q4egtxtjV2pLBnCN/GybqNn9wYqcgNc6lDKyvxXXSEFoOeA5ElQmQg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-loader": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader/-/uui-loader-1.6.0-rc.1.tgz", - "integrity": "sha512-S6r8N5r7T2i66ZkLi3YidFFBOmVU/xkvLfG7UUyr1PNnyb15yZObHR9Q5Y+Z7kQ69n1pR528djXuu5LbZ94Scg==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader/-/uui-loader-1.6.0-rc.3.tgz", + "integrity": "sha512-dRUBwZvybwUr/UdB5a7YqINICQxRrmToU7mlFutzUdzDSLMqJR6+nfML0iTncKwzPrk21NDbbxrvQkINN/g9ww==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-loader-bar": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-bar/-/uui-loader-bar-1.6.0-rc.1.tgz", - "integrity": "sha512-ByLGRA7Zug4t9I4Ze+YObSClcyqKyORNlREs3NCloiBud8hqsl/vh1YwpOt5Meu/6/698BerkqcIllvyhMwaVQ==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-bar/-/uui-loader-bar-1.6.0-rc.3.tgz", + "integrity": "sha512-vJPzJnX2UUQNdhHZQGy1w4jR06FRuQnx4hhvJAt3/k9KFM4PqqJHeuTfuc0U4+du9mjvuR4gqEHvLauVdlX2Iw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-loader-circle": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-circle/-/uui-loader-circle-1.6.0-rc.1.tgz", - "integrity": "sha512-er79uj7EQLxGdnO/MaFZ/6CsXgv90gVmCcU2pD/4WhhucCpflAEGNb7LHcAdl0EvD5i/95cnL74MNvVwvjOcqA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-circle/-/uui-loader-circle-1.6.0-rc.3.tgz", + "integrity": "sha512-FICgVN69gjSqK47RGJOA8oPwyD6BOF/Xm82P7OHxubWLG0T0SFJDQbNoD5p/44hsWxkQG0zRWt7uo+Uv4/14xA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-menu-item": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-menu-item/-/uui-menu-item-1.6.0-rc.1.tgz", - "integrity": "sha512-zQhrux7ZbF79koP/X1sNZMSUt464Lw6pByyNS6TxnCJYCPeJ9rBpjqiTv2iQS6cIhYxWbYiaKocqAXG7/FOZiA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-menu-item/-/uui-menu-item-1.6.0-rc.3.tgz", + "integrity": "sha512-krHWAaGIbSI8HmxpqpJGsSLL7GGvlLEqjdXoCXHVQ5S9F8FO3ylq14pYnZrxpHrE7bcwqzju9GjZCZiZWg4dyw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-loader-bar": "1.6.0-rc.1", - "@umbraco-ui/uui-symbol-expand": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-loader-bar": "1.6.0-rc.3", + "@umbraco-ui/uui-symbol-expand": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-modal": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-modal/-/uui-modal-1.6.0-rc.1.tgz", - "integrity": "sha512-M1fp8ifGdzwWof0L4UcxxktDeasMSHZisEgtfyE3xhslaGHUUzJa+HLa+WLtZbR4OKR7X2A0L3RwlbzsdkEZ+A==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-modal/-/uui-modal-1.6.0-rc.3.tgz", + "integrity": "sha512-HljQtu2JKHrwyuB79bS4WlfFh/egUttfHPplteI/LCSjQWncGOIy/ofXzst7HMGyfCGDHRxvOczGoYoqw0uMTw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-pagination": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-pagination/-/uui-pagination-1.6.0-rc.1.tgz", - "integrity": "sha512-jAuEx2ElGgzjTdwzmyLIP2IURXmecWOif1KM9vYkcWU3znfPD9Na3SsTNO8Ih/y7c5VKdBJ0BWXVrTSHvcgJ2g==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-pagination/-/uui-pagination-1.6.0-rc.3.tgz", + "integrity": "sha512-jSuEn5KCcsExlQ8sgG51lzGXruybuz/0gp4Y7pQxX7wwaRn43NxCQx4gLjZedleMDn2KLNV+DI+gnpx5jZMqiQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-button": "1.6.0-rc.1", - "@umbraco-ui/uui-button-group": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-button": "1.6.0-rc.3", + "@umbraco-ui/uui-button-group": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-popover": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover/-/uui-popover-1.6.0-rc.1.tgz", - "integrity": "sha512-PC9K9YqF5Hd6WAfKYQ5TdBOlquJfKGStpcC2BaUSdUP9Ol9jyfeHJjkmMt205q9ijbkd5f/KqdyVJ/WOezep2g==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover/-/uui-popover-1.6.0-rc.3.tgz", + "integrity": "sha512-Q162ZlzGTAMvsNBzG4m0tCMkKhHMvEnosLnk9as0B1Q7WeiZ0TWDoY/a5clMZkj1EoctNC2FGfoNpSCV0niP7g==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-popover-container": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover-container/-/uui-popover-container-1.6.0-rc.1.tgz", - "integrity": "sha512-qQ9gh8DdMACpGE/TymzjKvIbtHKt+2eL5Wf+UHDzI1D2j4Ne78Fj3bJcszEEqluKKEZ6B8vxXVsZkFw2vXox1w==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover-container/-/uui-popover-container-1.6.0-rc.3.tgz", + "integrity": "sha512-PV111jFIu65DcTVboA4T5GKl3vNnH9VHLYgru0uJv5Nl/MGtKYsHG+C/9lGTxM4IxFvBq84pNHhGHZgBYGid9g==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-progress-bar": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-progress-bar/-/uui-progress-bar-1.6.0-rc.1.tgz", - "integrity": "sha512-m1pLTZqE+I0gOtnUpMRA9mZnX2U5BcRPR+PttSzv9jD9X35TW9Guh0elTt/x1boxWYM68GrIfShlOcwKlEgX8g==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-progress-bar/-/uui-progress-bar-1.6.0-rc.3.tgz", + "integrity": "sha512-sJBo1QKn9OQK3Gc+tfMxgpmZSJn56scmEd137P5izCOyq5p8yBp2dIbT2P4VwnYxs4N3S5X55ZH1mzjNDWR5jw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-radio": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-radio/-/uui-radio-1.6.0-rc.1.tgz", - "integrity": "sha512-YjdTHZewWSya/eufqT7wSKeVD2VJT0XGRteFbJ4LQ4eGVlIarVm09m5R46QcSG/DBs/Jgz4DrUuO8k7FOdZfag==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-radio/-/uui-radio-1.6.0-rc.3.tgz", + "integrity": "sha512-gcb43tYoOMvk9utMel7aqpe1lrzXIc8VcDnLpG1YSObfby/XV6HKDEGHF7vBg0mCpOj4u+CXuwsigFuvUUbl8g==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-range-slider": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-range-slider/-/uui-range-slider-1.6.0-rc.1.tgz", - "integrity": "sha512-Z4z6pnDLA2KKJphtRntcnac7EU9C9nuHXMTqQ8FZeO69Ev2jCE/kj+AjK1p6sdIyVgabnLG9y3I+E3mMJexIWg==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-range-slider/-/uui-range-slider-1.6.0-rc.3.tgz", + "integrity": "sha512-RRKZPPBtT44qLRH7N3y0duHfD24Lzuv01J/MMfFNdlzwyJL5n3+hJL1NuEmp7W/G1dCgujmJ2DaZPTcY/M5Yww==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-ref": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref/-/uui-ref-1.6.0-rc.1.tgz", - "integrity": "sha512-tzKZaaCi2Iaj00uZyJFrU6g7SXUJMcE5DoFxcgP1ubG62SQpK9N/02LtiAUscOQTbqjcVKqoBqXXmV0stdVOag==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref/-/uui-ref-1.6.0-rc.3.tgz", + "integrity": "sha512-k2pnhlvOyxVJSvfsTqhfVvxLRbYsfQ2Ap5KvEoWKQMR1sNYYav0Fdl8bzJV8Okhlzl4O7iQhMiw4q2f6cmAMdg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-ref-list": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-list/-/uui-ref-list-1.6.0-rc.1.tgz", - "integrity": "sha512-sxexA1eTemsAoW33nBFh61UcptPoE19D7EC7QJg1a+btlv2Pj+WTzZ/PII5FuYXnwExt4fmta4YhEWNZinUfJg==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-list/-/uui-ref-list-1.6.0-rc.3.tgz", + "integrity": "sha512-WF87gkCC8Uj1xof7uLpO9P1kBJ6HJDAhDd7JM4CvQrAqagdS9Wedlx9tgQV9ca+9z5B0jhUwYJEO2QfWCdngig==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-ref-node": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node/-/uui-ref-node-1.6.0-rc.1.tgz", - "integrity": "sha512-p48bjD/dsZttruVmVGrcsGlYDyMK4amA8GdkbHG2nzGJIJxyK1j44i81t5wAmv4v+zADcQ1kYVzdoHnbKdS4Tg==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node/-/uui-ref-node-1.6.0-rc.3.tgz", + "integrity": "sha512-oII0lxJMtDpTvT+buUuCtjN62k7SsY4xClcUnqy/hvDY1d59GNnIgLN2pz5Kpn/k+jsTfHp+zGNpjquhhvRWlg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-icon": "1.6.0-rc.1", - "@umbraco-ui/uui-ref": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-icon": "1.6.0-rc.3", + "@umbraco-ui/uui-ref": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-ref-node-data-type": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-data-type/-/uui-ref-node-data-type-1.6.0-rc.1.tgz", - "integrity": "sha512-t/FzI/1LQGmBxtfi3fq8WcGnyBi6jIMNScuSeKTIaCdg3DsyrcQdrFZZpPy4l+KLfSMEYFRlr8H9FR/2x61upA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-data-type/-/uui-ref-node-data-type-1.6.0-rc.3.tgz", + "integrity": "sha512-OdzFdK10rkCaQS25ti7J7IBG+o7tGrtZoXj5I5nAqTf8UOFOTYKGjKzmmykOuAg7ViT7gWgi+OV5GqONhSTNzg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-ref-node": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-ref-node": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-ref-node-document-type": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-document-type/-/uui-ref-node-document-type-1.6.0-rc.1.tgz", - "integrity": "sha512-QK/W1AU2eZuz6+fOdmYu9oL7nFeZmTzN8GKqWIYFEdCCaMlJK1E5rw5cp9nmrT9bbuNvTrnZTwf6ZcgERYORWA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-document-type/-/uui-ref-node-document-type-1.6.0-rc.3.tgz", + "integrity": "sha512-93xgPScBCa07mTQC17v+kTX76BOgqcWS6eLW93eBQYQLGCRU6EWPt0rSPLg6Fb5gCVg3mdY5wHtsIvJapfthTg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-ref-node": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-ref-node": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-ref-node-form": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-form/-/uui-ref-node-form-1.6.0-rc.1.tgz", - "integrity": "sha512-DyZHtQ4KfOrY2fue330sr0hBa0maCRKyYschZvWyiMS3bL6zZhzEN+Eo9ue3oaI1p4DqJHS7E/PHBUKRtxMBkA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-form/-/uui-ref-node-form-1.6.0-rc.3.tgz", + "integrity": "sha512-lrjr+gOlEXavMbmw63TmcxbrxpdJUTVhhPETX3eVzc+kMLBsKi0wKlXKhY7AjaaqCDBCiz6M5IiSNaKg84GExw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-ref-node": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-ref-node": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-ref-node-member": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-member/-/uui-ref-node-member-1.6.0-rc.1.tgz", - "integrity": "sha512-9nrzXKN1MGkIr8tyXvH47QDkC7qtSXCicGQWS0lQUJqNkCU9XAc5iKAOmyxquczSi1AjVw3E6U26ddRtbtFSlg==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-member/-/uui-ref-node-member-1.6.0-rc.3.tgz", + "integrity": "sha512-dvXt1ldRcpY3NGiqe+u3J/+xQo85cW3cv9VEBxQIAt3ox5ndLsVhWdKCfRhbz+RWMj5IQ7szl/gEqm5QGj619g==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-ref-node": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-ref-node": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-ref-node-package": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-package/-/uui-ref-node-package-1.6.0-rc.1.tgz", - "integrity": "sha512-6b7vt1Uy8gYgcLri8/p8oQtdkuklgC8Mecv1Jw+73ark56kuoxIHj30vJMqvH+wW49Mh3TWvhbKCuP7iPMGLqg==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-package/-/uui-ref-node-package-1.6.0-rc.3.tgz", + "integrity": "sha512-92c0/zZrsoxXtW5MF+p9J+MjMQ7oZrYAayKFjEYCW91o8DECfFPM0lAXvbMJcCuDFMQJ5fcjlZz/ERA5s3exXQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-ref-node": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-ref-node": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-ref-node-user": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-user/-/uui-ref-node-user-1.6.0-rc.1.tgz", - "integrity": "sha512-EozYgozf633s01QWMloqfVvprNAQD0VN57u3lhe2wnDN/3lkqjJ95aP5c58C8J30zNAnsuHt7+KFNPB2VvI0GQ==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-user/-/uui-ref-node-user-1.6.0-rc.3.tgz", + "integrity": "sha512-AyaMMYvtI2g91TuAe8aAjVVFHI0h3hPU6X8dGT/90ogDppiUBuQ++aVsK2HpmmkX2M8l+IF8JpBuxnfBhbJScQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-ref-node": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-ref-node": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-scroll-container": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-scroll-container/-/uui-scroll-container-1.6.0-rc.1.tgz", - "integrity": "sha512-eCQvWfQ7MYjUVWrhC1+wYsLTAmHICYwVvysrNpmeTI0UbkAxsvET/R6lLOxuiNVyTdpl8pRUO3xgFr3apNjttQ==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-scroll-container/-/uui-scroll-container-1.6.0-rc.3.tgz", + "integrity": "sha512-R4T4ehbMpZEfDornwzyejk8i1UdeMfURe5PQn8EEhkAIX7u4roaTdb8cC7075WfC2qlkbRnrLHsFtPVF73yuyQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-select": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-select/-/uui-select-1.6.0-rc.1.tgz", - "integrity": "sha512-A9Dg8Ps855/dXnzUhCeu+uKWxKMN2tuLsjGLfql5ew/3EoSg6lmR2QRtyhbLxrZKpstkWmxkMHqFO4QqxZMqkA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-select/-/uui-select-1.6.0-rc.3.tgz", + "integrity": "sha512-BmwOcFUlpPrLN43C7/vTrMJhmzMFqzSgsUG5pqZfb0XS9egAZx4SondKcANubuLARIhTbRSCFuFkLgQTQ21kwA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-slider": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-slider/-/uui-slider-1.6.0-rc.1.tgz", - "integrity": "sha512-0P+Gk7ZMPN7lJzSx83Bi8FqhLfYZ1Bvbsu309na+jt0fKeADdP+rfvYftOrbbFQnul85nbZ5AXd1pjDaKLqCLQ==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-slider/-/uui-slider-1.6.0-rc.3.tgz", + "integrity": "sha512-E0MzOkw80/z4rQ0lc26kOTx+zFIz3TZz+5lQSjluS8TY+260CwhROBziGKkm9YAgH+9FIH4D8vArQtMoXJ5TYg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-symbol-expand": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-expand/-/uui-symbol-expand-1.6.0-rc.1.tgz", - "integrity": "sha512-G9TM09GgdZpvfMkkefIeJSIPYnEELr7qrf+Wd2dopFgd/CEpjxyaoXM+egTHG47kgAyJxTu9wMWgF2G1z5TySg==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-expand/-/uui-symbol-expand-1.6.0-rc.3.tgz", + "integrity": "sha512-Tqq0lmALnUJPgDo8HbFD5y9rUrcGQlPbURaqjJrhcz4WrpG/TAYwD0Dby7dBktIR0xzWse0kmz7Ib/SKKafMxA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-symbol-file": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file/-/uui-symbol-file-1.6.0-rc.1.tgz", - "integrity": "sha512-2mDih2ngrKAczU5zYWwtEL9htiLcWIwehPZGIhopYlJlSIWXnuSxngc6aD+LSV1pO+QkIVEng6lUE9H0uGrMeg==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file/-/uui-symbol-file-1.6.0-rc.3.tgz", + "integrity": "sha512-R9ruwkQD951/SdBewahdPe/7zoBoGq6PoDY0JXPsvOCYnAaElkYkkj8sipsOO1EJj202FHJhlpVttZGdliKlpA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-symbol-file-dropzone": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-dropzone/-/uui-symbol-file-dropzone-1.6.0-rc.1.tgz", - "integrity": "sha512-Zps4hhmru8EKojTWH2OdfsG1gpQUGHQZd3FEraoitMkcNNE/kP8DIxI/lOHts95t3a0a5i71eA8Is1GPAsSzxg==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-dropzone/-/uui-symbol-file-dropzone-1.6.0-rc.3.tgz", + "integrity": "sha512-HMXLzNowrwYC8iLBLsmhbUGIw2GFH/ko+0SH0B0lJyHIGiKgZa++WsTVVw7Egz2zUS6V3YbvvwbijoJoAM7vUA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-symbol-file-thumbnail": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-thumbnail/-/uui-symbol-file-thumbnail-1.6.0-rc.1.tgz", - "integrity": "sha512-VrG0PElM53Lqt8C88ejhLGcog/TZpfmEWiZT1J4jn0ihzZmqt29zKEHSQjt7i6fsyuzUDlBanl7GMZk2Gt5p0w==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-thumbnail/-/uui-symbol-file-thumbnail-1.6.0-rc.3.tgz", + "integrity": "sha512-zRsByLRBaZq3fUKnVG5ynzy24ppOpyJ/kHTdi7p5pvFtJJ8qOYXkxqLF4AdgUlhdaZwjP50hIWo4+TIOghSVZA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-symbol-folder": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-folder/-/uui-symbol-folder-1.6.0-rc.1.tgz", - "integrity": "sha512-xkdLRCCTPUo32wfngU8y6GE4afnzMggJZ4LShBEICs1WBXYBU4ZcXEQxXKqtLSESlCW0BqlVLPEf7HMgs4UMCA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-folder/-/uui-symbol-folder-1.6.0-rc.3.tgz", + "integrity": "sha512-PF80tL4D8+PcCofBljaT/FR1lxP0bOZ5Lhtp5f/7jJmjqssVs9kSYy9YKhuCtB0GqEqML8FEK21XAIUM7ZAh+w==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-symbol-lock": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-lock/-/uui-symbol-lock-1.6.0-rc.1.tgz", - "integrity": "sha512-rExFl8VTSEQ10WuGKVTADpljyeE3ghr8RaL57k1JtajesBAj1fKhW3I0eSNv8evZuF5u0tmPTHbyI66i9lzmGg==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-lock/-/uui-symbol-lock-1.6.0-rc.3.tgz", + "integrity": "sha512-X2Ebkuw//fjEd6ob2erd+L1hojpi9BvebzClEJVzJGR5nIHneZy3c/hwq2IPaeAJFQFyTIEKlGBrujvaFdxz+A==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-symbol-more": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-more/-/uui-symbol-more-1.6.0-rc.1.tgz", - "integrity": "sha512-tNs+KXNVObXoZQd9FWKkWx53o0gbIJX8dCfayH3rf72IK9rw+NGh2M6M3tfk1eWPhlKyro9i8Dd9eAbtQrCqEg==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-more/-/uui-symbol-more-1.6.0-rc.3.tgz", + "integrity": "sha512-UkW8aP/gM6WAZ+L5mHzzDvaJNmE7RR3a/pU9vc/IxmKCzAqExIpACNBTE5e9TmzWwND6SwwswtxX/s9PsAnWEg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-symbol-sort": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-sort/-/uui-symbol-sort-1.6.0-rc.1.tgz", - "integrity": "sha512-3y1tQND3tuQARiBOTj0t2hKelSXbHlhIe2yuTqIWFVsseXreTcxmviLTqjxCI6lXKBfhgPTakfpkyYuclcgunA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-sort/-/uui-symbol-sort-1.6.0-rc.3.tgz", + "integrity": "sha512-IKhGb4vgOSdhzHeRF76UWzPJ0g7jf/lKaMupKdTzs4UJbpICrsO6fiygzHLwl1XMNJtjXxOq8CYRGOxWxPkLjw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-table": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-table/-/uui-table-1.6.0-rc.1.tgz", - "integrity": "sha512-SAX9brwchTPW/wePnE8pEe6vALLmqqe94fe0pDrh7/CASTW3R4E+OuN60/9Vqe4jS+yURjj6ely8juCli0/pgA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-table/-/uui-table-1.6.0-rc.3.tgz", + "integrity": "sha512-ftB+4EyYtqtJ/SocbvyZgob3kWQvSi/3pk6X5zQwe4q8WSwR5UnF6zwt0AQIQsHxCCAgmXTBFl4RvCUtNksJ7w==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-tabs": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tabs/-/uui-tabs-1.6.0-rc.1.tgz", - "integrity": "sha512-7kKUhCW3zlfkSgGzrNhS6GzqCK/6bnTBFFBHhWyX8wyH3tRbVu4vaX11dhKb5DADM3u9E7gIxmBEqI34helwBQ==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tabs/-/uui-tabs-1.6.0-rc.3.tgz", + "integrity": "sha512-oNp8DjsUse285BicsSPSHqeKvPDJzcjjRXJr2U1ipwqYALSXldxaGBmhHe96NHhB0aJH2Ej1XT+fjU7lw8KJyQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-button": "1.6.0-rc.1", - "@umbraco-ui/uui-popover-container": "1.6.0-rc.1", - "@umbraco-ui/uui-symbol-more": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-button": "1.6.0-rc.3", + "@umbraco-ui/uui-popover-container": "1.6.0-rc.3", + "@umbraco-ui/uui-symbol-more": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-tag": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tag/-/uui-tag-1.6.0-rc.1.tgz", - "integrity": "sha512-xUJvgGuHO9HMxh2Woq+TiuUqoLRuMoUGydwJTRA3VriR+wEt40rul9v4EpJXsucG4nNeBjeOdssQAVr++sPLfg==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tag/-/uui-tag-1.6.0-rc.3.tgz", + "integrity": "sha512-dsa+zakx9A4jkbU+H71UEM0fe8nAS1wr3mTm/iIyUZMtpfrWiWL8aF4fbhNHdg3bm3yV61OHAhXMpezqlrs5vQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-textarea": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-textarea/-/uui-textarea-1.6.0-rc.1.tgz", - "integrity": "sha512-iB8/B20LqN3HIfAzIpdfiqgeJIK8wSMQwNSttP9YLkuoWUwNufYm5JJHfD3PPYXOVn+2y6/aLzevq3Ls3M2h1g==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-textarea/-/uui-textarea-1.6.0-rc.3.tgz", + "integrity": "sha512-AaWEW0C8dXaywap0PjQ+bgXqHXKdTDIjOxS+HjK9DnbvmuFkmYglUtsKNsNNR4ld9NBusvh7t+pupjcVdF9asw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-toast-notification": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification/-/uui-toast-notification-1.6.0-rc.1.tgz", - "integrity": "sha512-i4RjqyhQTJRtawn1hym3MXRMPgepIRYDXwIr4g+T5Ma3o9QRFpY2uPk4fqTd3R9/TEBuZPIfU7QQLcSj0/CYfA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification/-/uui-toast-notification-1.6.0-rc.3.tgz", + "integrity": "sha512-2HmYxlpRxIJYd84mvF5RF+GVhVO0muVWUivSUyaOL8j5eK+dFH6W8UPrLaxODDRCz5ueLH+s6Dh+EpXmHLO6+g==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-button": "1.6.0-rc.1", + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-button": "1.6.0-rc.3", "@umbraco-ui/uui-css": "1.4.0", - "@umbraco-ui/uui-icon": "1.6.0-rc.1", - "@umbraco-ui/uui-icon-registry-essential": "1.6.0-rc.1" + "@umbraco-ui/uui-icon": "1.6.0-rc.3", + "@umbraco-ui/uui-icon-registry-essential": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-toast-notification-container": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-container/-/uui-toast-notification-container-1.6.0-rc.1.tgz", - "integrity": "sha512-yCcMgdNpaaFBlD3D8WGL+S7yZZpVhUFJ3zgNNoVUrS+e9K8qI6zJs0BDZy73/m6INO6FDR1/AEziRryXBLsiaA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-container/-/uui-toast-notification-container-1.6.0-rc.3.tgz", + "integrity": "sha512-2T8AeIwItjWz4w5FjhMe4j9zjPsbBGWNy4zOSi/PuAU1W6CEMEfyDPx1N1QH+5ub+gnviaT4q649VXbaYBhzHA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-toast-notification": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-toast-notification": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-toast-notification-layout": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-layout/-/uui-toast-notification-layout-1.6.0-rc.1.tgz", - "integrity": "sha512-IwIqimEoBMoRRY8eGWRMcbKTHN0P/9kM2hN0S6MnNPSY7OSigjRUZL8RpBGcy1B3Q3dVeYOmP5gjFW7aO/XcGg==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-layout/-/uui-toast-notification-layout-1.6.0-rc.3.tgz", + "integrity": "sha512-IrSQ0UeM0zI39EShmW2ya+3ljv0KfXMzPrkDnqPoZcnNRFR/gu6mhOLOmdJx1z71byyvE7koi4Ygatw6e6aUtQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", + "@umbraco-ui/uui-base": "1.6.0-rc.3", "@umbraco-ui/uui-css": "1.4.0" } }, @@ -8642,20 +8648,20 @@ } }, "node_modules/@umbraco-ui/uui-toggle": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.6.0-rc.1.tgz", - "integrity": "sha512-x6gJY97jzY86Uj1GBJtufeAVVVoQMGmUlBDUx1LNDd5yiAHQCLJxISPMPpbW7f1m2/+wxNZRIDIG5sxZAP57/A==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.6.0-rc.3.tgz", + "integrity": "sha512-UN5IRUjrLITaQjCAnPDg1is7hJva3RU6Hie1bjYVH/qDc21Ew6Rr2T+5E1D+AJDJjbm6ZAhpbxzAJiUqjJMfvg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1", - "@umbraco-ui/uui-boolean-input": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-boolean-input": "1.6.0-rc.3" } }, "node_modules/@umbraco-ui/uui-visually-hidden": { - "version": "1.6.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-visually-hidden/-/uui-visually-hidden-1.6.0-rc.1.tgz", - "integrity": "sha512-LzKKYp7OXw2MG1HDvW/6KNww9WyeJ3uhs7uLt64Jv0N4cJHBzytHLF2M/xvoT656O2I9aVnmzblJmur6p/OHeA==", + "version": "1.6.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-visually-hidden/-/uui-visually-hidden-1.6.0-rc.3.tgz", + "integrity": "sha512-P9e+aa4qndDdo2KYHJJCzFoTT/vo9tnD86G1d2rTsUfkoUvOXDQDwNvxVXJSbzL6lj6yWh6McM9Xk3oBAStwUg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.1" + "@umbraco-ui/uui-base": "1.6.0-rc.3" } }, "node_modules/@ungap/structured-clone": { @@ -8873,34 +8879,6 @@ "node": ">=16.14" } }, - "node_modules/@web/dev-server-rollup/node_modules/rollup": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.6.0.tgz", - "integrity": "sha512-R8i5Her4oO1LiMQ3jKf7MUglYV/mhQ5g5OKeld5CnkmPdIGo79FDDQYqPhq/PCVuTQVuxsWgIbDy9F+zdHn80w==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.6.0", - "@rollup/rollup-android-arm64": "4.6.0", - "@rollup/rollup-darwin-arm64": "4.6.0", - "@rollup/rollup-darwin-x64": "4.6.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.6.0", - "@rollup/rollup-linux-arm64-gnu": "4.6.0", - "@rollup/rollup-linux-arm64-musl": "4.6.0", - "@rollup/rollup-linux-x64-gnu": "4.6.0", - "@rollup/rollup-linux-x64-musl": "4.6.0", - "@rollup/rollup-win32-arm64-msvc": "4.6.0", - "@rollup/rollup-win32-ia32-msvc": "4.6.0", - "@rollup/rollup-win32-x64-msvc": "4.6.0", - "fsevents": "~2.3.2" - } - }, "node_modules/@web/dev-server-rollup/node_modules/ws": { "version": "7.5.9", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", @@ -9801,9 +9779,9 @@ } }, "node_modules/@xmldom/xmldom": { - "version": "0.8.7", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.7.tgz", - "integrity": "sha512-sI1Ly2cODlWStkINzqGrZ8K6n+MTSbAeQnAipGyL+KZCXuHaRlj2gyyy8B/9MvsFFqN7XHryQnB2QwhzvJXovg==", + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", "dev": true, "engines": { "node": ">=10.0.0" @@ -10169,15 +10147,15 @@ "dev": true }, "node_modules/array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "is-string": "^1.0.7" }, "engines": { @@ -10206,16 +10184,16 @@ } }, "node_modules/array.prototype.findlastindex": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.2.tgz", - "integrity": "sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.1.3" + "get-intrinsic": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -10225,14 +10203,14 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -10243,14 +10221,14 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -10260,6 +10238,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/assert": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", @@ -10509,13 +10508,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", - "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", + "integrity": "sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==", "dev": true, "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.3", + "@babel/helper-define-polyfill-provider": "^0.4.4", "semver": "^6.3.1" }, "peerDependencies": { @@ -10523,12 +10522,12 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", - "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", + "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3", + "@babel/helper-define-polyfill-provider": "^0.4.4", "core-js-compat": "^3.33.1" }, "peerDependencies": { @@ -10536,12 +10535,12 @@ } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", - "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz", + "integrity": "sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3" + "@babel/helper-define-polyfill-provider": "^0.4.4" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -10730,9 +10729,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", "dev": true, "funding": [ { @@ -10749,9 +10748,9 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, "bin": { @@ -10844,13 +10843,14 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -10894,9 +10894,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001542", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001542.tgz", - "integrity": "sha512-UrtAXVcj1mvPBFQ4sKd38daP8dEcXXr5sQe6QNNinaPd0iA/cxg9/l3VrSdL73jgw5sKyuQ6jNgiKO12W3SsVA==", + "version": "1.0.30001570", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz", + "integrity": "sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==", "dev": true, "funding": [ { @@ -11564,12 +11564,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.33.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.3.tgz", - "integrity": "sha512-cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow==", + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.34.0.tgz", + "integrity": "sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==", "dev": true, "dependencies": { - "browserslist": "^4.22.1" + "browserslist": "^4.22.2" }, "funding": { "type": "opencollective", @@ -11658,15 +11658,6 @@ } } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/decode-named-character-reference": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", @@ -11761,6 +11752,20 @@ "node": ">=0.8" } }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -12103,15 +12108,15 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.537", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.537.tgz", - "integrity": "sha512-W1+g9qs9hviII0HAwOdehGYkr+zt7KKdmCcJcjH0mYg6oL8+ioT3Skjmt7BLoAQqXhjf40AXd+HlR4oAWMlXjA==", + "version": "1.4.614", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.614.tgz", + "integrity": "sha512-X4ze/9Sc3QWs6h92yerwqv7aB/uU8vCjZcrMjA8N9R1pjMFRe44dLsck5FzLilOYvcXuDn93B+bpGYyufc70gQ==", "dev": true }, "node_modules/element-internals-polyfill": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/element-internals-polyfill/-/element-internals-polyfill-1.3.7.tgz", - "integrity": "sha512-sM3tzpNW3nEE8l0m7EbRsWCF6tiqHipON7Vqu3LJtuU2IFNOnFTO0djAGcLVO/KvIUCqnOZrugg9jBTSlYjPMg==" + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/element-internals-polyfill/-/element-internals-polyfill-1.3.9.tgz", + "integrity": "sha512-ti2fHL8rXbz5/pu50Nu45EXvORWtx1g1xWUQuZORkszbvCxosPEeHDeGzfvaaooXJNXNblogMP4atl680r9WyQ==" }, "node_modules/emoji-regex": { "version": "10.2.1", @@ -12190,25 +12195,26 @@ "dev": true }, "node_modules/es-abstract": { - "version": "1.21.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", - "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "call-bind": "^1.0.5", "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has": "^1.0.3", "has-property-descriptors": "^1.0.0", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", + "hasown": "^2.0.0", "internal-slot": "^1.0.5", "is-array-buffer": "^3.0.2", "is-callable": "^1.2.7", @@ -12216,19 +12222,23 @@ "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", + "is-typed-array": "^1.1.12", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", + "object-inspect": "^1.13.1", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", "typed-array-length": "^1.0.4", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" + "which-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -12264,26 +12274,26 @@ "dev": true }, "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "node_modules/es-to-primitive": { @@ -12423,15 +12433,15 @@ } }, "node_modules/eslint": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", - "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.55.0", + "@eslint/js": "8.56.0", "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -12478,9 +12488,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", - "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -12490,14 +12500,14 @@ } }, "node_modules/eslint-import-resolver-node": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, "dependencies": { "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { @@ -12510,9 +12520,9 @@ } }, "node_modules/eslint-import-resolver-typescript": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.0.tgz", - "integrity": "sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg==", + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", + "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", "dev": true, "dependencies": { "debug": "^4.3.4", @@ -12561,29 +12571,28 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.0.tgz", - "integrity": "sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q==", + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", "dev": true, "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.findlastindex": "^1.2.2", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", + "eslint-import-resolver-node": "^0.3.9", "eslint-module-utils": "^2.8.0", - "has": "^1.0.3", - "is-core-module": "^2.12.1", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.fromentries": "^2.0.6", - "object.groupby": "^1.0.0", - "object.values": "^1.1.6", - "resolve": "^1.22.3", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", "semver": "^6.3.1", - "tsconfig-paths": "^3.14.2" + "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" @@ -12631,9 +12640,9 @@ } }, "node_modules/eslint-plugin-lit-a11y": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-lit-a11y/-/eslint-plugin-lit-a11y-4.1.0.tgz", - "integrity": "sha512-tJUYhKUZ1+NwOBzNHRX7ZETvGgMxWA+m9TsM23oN1qp4hQacTYBafeOhXHh6zyGnHaBIWzmCxW/G7doHeetkAw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-lit-a11y/-/eslint-plugin-lit-a11y-4.1.1.tgz", + "integrity": "sha512-PTUEwTMMtbZccrGQUPFfWI3Ope8oF8XEMLUckNbV0IvDTkEbXYlYlvNrkzI92gYKAVaVlNi2QZ/0n8Q3YiOBUg==", "dev": true, "dependencies": { "aria-query": "^5.1.3", @@ -12641,7 +12650,7 @@ "axobject-query": "^2.2.0", "dom5": "^3.0.1", "emoji-regex": "^10.2.1", - "eslint-plugin-lit": "^1.6.0", + "eslint-plugin-lit": "^1.10.1", "eslint-rule-extender": "0.0.1", "language-tags": "^1.0.5", "parse5": "^7.1.2", @@ -12665,9 +12674,9 @@ } }, "node_modules/eslint-plugin-local-rules": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-local-rules/-/eslint-plugin-local-rules-1.3.2.tgz", - "integrity": "sha512-X4ziX+cjlCYnZa+GB1ly3mmj44v2PeIld3tQVAxelY6AMrhHSjz6zsgsT6nt0+X5b7eZnvL/O7Q3pSSK2kF/+Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-local-rules/-/eslint-plugin-local-rules-2.0.1.tgz", + "integrity": "sha512-AJhGd+GcI5r2dbjiGPixM8jnBl0XFxqoVbqzwKbYz+nTk+Cj5dNE3+OlhC176bl5r25KsGsIthLi1VqIW5Ga+A==", "dev": true }, "node_modules/eslint-plugin-storybook": { @@ -13529,9 +13538,9 @@ "dev": true }, "node_modules/flow-parser": { - "version": "0.223.2", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.223.2.tgz", - "integrity": "sha512-K68f4BNDmz+fC2aPi/DnckpNQbJvlN10srj2dUDrmUpyVCg48MPOyPMIrxwYPBRO+DtwSTYMF4wXaK3lRrDTfQ==", + "version": "0.224.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.224.0.tgz", + "integrity": "sha512-S1P78o0VLB1FZvkoGSIpaRiiTUQ3xDhm9I4Z1qc3lglmkjehfR2sjM0vhwKS7UC1G12VT4Leb/GGV/KlactqjA==", "dev": true, "engines": { "node": ">=0.4.0" @@ -13716,21 +13725,24 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -13767,15 +13779,15 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -13849,9 +13861,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.6.0.tgz", - "integrity": "sha512-lgbo68hHTQnFddybKbbs/RDRJnJT5YyGy2kQzVwbq+g67X73i+5MVTval34QxGkOe9X5Ujf1UYpCaphLyltjEg==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", + "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", "dev": true, "dependencies": { "resolve-pkg-maps": "^1.0.0" @@ -14248,6 +14260,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/header-case": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", @@ -14259,9 +14283,9 @@ } }, "node_modules/headers-polyfill": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-3.1.2.tgz", - "integrity": "sha512-tWCK4biJ6hcLqTviLXVR9DTRfYGQMXEIUj3gwJ2rZ5wO/at3XtkI4g8mCvFdUF9l1KMBNCfmNAdnahm1cgavQA==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-3.2.5.tgz", + "integrity": "sha512-tUCGvt191vNSQgttSyJoibR+VO+I6+iCHIUdhzEMJKE+EAL8BwCN7fUOZlY4ofOelNHsK+gEjxB/B+9N3EWtdA==", "dev": true }, "node_modules/homedir-polyfill": { @@ -14781,12 +14805,12 @@ } }, "node_modules/is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -15110,16 +15134,12 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "which-typed-array": "^1.1.11" }, "engines": { "node": ">= 0.4" @@ -15600,15 +15620,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/joycon": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", - "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/js-levenshtein": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", @@ -15800,12 +15811,6 @@ "node": ">=6" } }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -16361,17 +16366,23 @@ "dev": true }, "node_modules/magic-string": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", - "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", "dev": true, "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" + "@jridgewell/sourcemap-codec": "^1.4.15" }, "engines": { "node": ">=12" } }, + "node_modules/magic-string/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -16452,14 +16463,14 @@ } }, "node_modules/marked": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-9.1.0.tgz", - "integrity": "sha512-VZjm0PM5DMv7WodqOUps3g6Q7dmxs9YGiFUZ7a2majzQTTCgX+6S6NAJHPvOhgFBzYz8s4QZKWWMfZKFmsfOgA==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-11.1.0.tgz", + "integrity": "sha512-fvKJWAPEafVj1dwGwcPI5mBB/0pvViL6NlCbNDG1HOIRwwAU/jeMoFxfbRLuirO1wRH7m4yPvBqD/O1wyWvayw==", "bin": { "marked": "bin/marked.js" }, "engines": { - "node": ">= 16" + "node": ">= 18" } }, "node_modules/marky": { @@ -17439,9 +17450,9 @@ "dev": true }, "node_modules/monaco-editor": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.44.0.tgz", - "integrity": "sha512-5SmjNStN6bSuSE5WPT2ZV+iYn1/yI9sd4Igtk23ChvqB7kDk9lZbB9F5frsuvpB+2njdIeGGFf2G4gbE6rCC9Q==" + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.45.0.tgz", + "integrity": "sha512-mjv1G1ZzfEE3k9HZN0dQ2olMdwIfaeAAjFiwNprLfYNRSz7ctv9XuCT7gPtBGrMUeV1/iZzYKj17Khu1hxoHOA==" }, "node_modules/mri": { "version": "1.2.0", @@ -17459,22 +17470,22 @@ "dev": true }, "node_modules/msw": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/msw/-/msw-1.2.3.tgz", - "integrity": "sha512-Fqy/TaLKR32x4IkMwudJHJysBzVM/v/lSoMPS9f3QaHLOmb3xHN9YurSUnRt+2eEvNXLjVPij1wMBQtLmTbKsg==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/msw/-/msw-1.3.2.tgz", + "integrity": "sha512-wKLhFPR+NitYTkQl5047pia0reNGgf0P6a1eTnA5aNlripmiz0sabMvvHcicE8kQ3/gZcI0YiPFWmYfowfm3lA==", "dev": true, "hasInstallScript": true, "dependencies": { "@mswjs/cookies": "^0.2.2", - "@mswjs/interceptors": "^0.17.5", + "@mswjs/interceptors": "^0.17.10", "@open-draft/until": "^1.0.3", "@types/cookie": "^0.4.1", "@types/js-levenshtein": "^1.1.1", - "chalk": "4.1.1", + "chalk": "^4.1.1", "chokidar": "^3.4.2", "cookie": "^0.4.2", - "graphql": "^15.0.0 || ^16.0.0", - "headers-polyfill": "^3.1.2", + "graphql": "^16.8.1", + "headers-polyfill": "3.2.5", "inquirer": "^8.2.0", "is-node-process": "^1.2.0", "js-levenshtein": "^1.1.6", @@ -17496,7 +17507,7 @@ "url": "https://opencollective.com/mswjs" }, "peerDependencies": { - "typescript": ">= 4.4.x <= 5.1.x" + "typescript": ">= 4.4.x <= 5.2.x" }, "peerDependenciesMeta": { "typescript": { @@ -18029,9 +18040,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "node_modules/normalize-package-data": { @@ -18077,9 +18088,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -18144,14 +18155,14 @@ } }, "node_modules/object.fromentries": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", - "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -18161,14 +18172,14 @@ } }, "node_modules/object.groupby": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.0.tgz", - "integrity": "sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", - "es-abstract": "^1.21.2", + "es-abstract": "^1.22.1", "get-intrinsic": "^1.2.1" } }, @@ -18198,14 +18209,14 @@ } }, "node_modules/object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -18408,9 +18419,9 @@ } }, "node_modules/outvariant": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.0.tgz", - "integrity": "sha512-AlWY719RF02ujitly7Kk/0QlV+pXGFDHrHf9O2OKqyqgBieaPOIeuSkL8sRK6j2WK+/ZAURq2kZsY0d8JapUiw==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.2.tgz", + "integrity": "sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ==", "dev": true }, "node_modules/p-limit": { @@ -18821,9 +18832,9 @@ } }, "node_modules/playwright-msw": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/playwright-msw/-/playwright-msw-3.0.0.tgz", - "integrity": "sha512-AsxozFPFI16d1oop4yuaSKIonAQm3BpCnXWGdooDmaGlGsMpB4IndU+v+9FDZ9HrKLBK5XK2h2fTKoZsTSzXUg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/playwright-msw/-/playwright-msw-3.0.1.tgz", + "integrity": "sha512-w2bVjt7kPIThOQF9OS/1vDDs0HsQfV9inxMVSUv74x/zhCcrgzVN47xpPk84okf3OcCRHHBJKq8sNeBfCDyhMg==", "dev": true, "dependencies": { "@mswjs/cookies": "^1.1.0", @@ -19693,14 +19704,14 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", - "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", - "functions-have-names": "^1.2.3" + "set-function-name": "^2.0.0" }, "engines": { "node": ">= 0.4" @@ -19823,12 +19834,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, "node_modules/requireindex": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", @@ -20003,92 +20008,63 @@ } }, "node_modules/rollup": { - "version": "3.27.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.27.2.tgz", - "integrity": "sha512-YGwmHf7h2oUHkVBT248x0yt6vZkYQ3/rvE5iQuVBh3WO8GcJ6BNeOkpoX1yMHIiBm18EMLjBPIoUDkhgnyxGOQ==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.0.tgz", + "integrity": "sha512-bUHW/9N21z64gw8s6tP4c88P382Bq/L5uZDowHlHx6s/QWpjJXivIAbEw6LZthgSvlEizZBfLC4OAvWe7aoF7A==", "dev": true, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=14.18.0", + "node": ">=18.0.0", "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.9.0", + "@rollup/rollup-android-arm64": "4.9.0", + "@rollup/rollup-darwin-arm64": "4.9.0", + "@rollup/rollup-darwin-x64": "4.9.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.9.0", + "@rollup/rollup-linux-arm64-gnu": "4.9.0", + "@rollup/rollup-linux-arm64-musl": "4.9.0", + "@rollup/rollup-linux-riscv64-gnu": "4.9.0", + "@rollup/rollup-linux-x64-gnu": "4.9.0", + "@rollup/rollup-linux-x64-musl": "4.9.0", + "@rollup/rollup-win32-arm64-msvc": "4.9.0", + "@rollup/rollup-win32-ia32-msvc": "4.9.0", + "@rollup/rollup-win32-x64-msvc": "4.9.0", "fsevents": "~2.3.2" } }, - "node_modules/rollup-plugin-dts": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-5.3.1.tgz", - "integrity": "sha512-gusMi+Z4gY/JaEQeXnB0RUdU82h1kF0WYzCWgVmV4p3hWXqelaKuCvcJawfeg+EKn2T1Ie+YWF2OiN1/L8bTVg==", - "dev": true, - "dependencies": { - "magic-string": "^0.30.2" - }, - "engines": { - "node": ">=v14.21.3" - }, - "funding": { - "url": "https://github.com/sponsors/Swatinem" - }, - "optionalDependencies": { - "@babel/code-frame": "^7.22.5" - }, - "peerDependencies": { - "rollup": "^3.0", - "typescript": "^4.1 || ^5.0" - } - }, - "node_modules/rollup-plugin-dts/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/rollup-plugin-dts/node_modules/magic-string": { - "version": "0.30.2", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.2.tgz", - "integrity": "sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/rollup-plugin-esbuild": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-5.0.0.tgz", - "integrity": "sha512-1cRIOHAPh8WQgdQQyyvFdeOdxuiyk+zB5zJ5+YOwrZP4cJ0MT3Fs48pQxrZeyZHcn+klFherytILVfE4aYrneg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-6.1.0.tgz", + "integrity": "sha512-HPpXU65V8bSpW8eSYPahtUJaJHmbxJGybuf/M8B3bz/6i11YaYHlNNJIQ38gSEV0FyohQOgVxJ2YMEEZtEmwvA==", "dev": true, "dependencies": { - "@rollup/pluginutils": "^5.0.1", + "@rollup/pluginutils": "^5.0.5", "debug": "^4.3.4", - "es-module-lexer": "^1.0.5", - "joycon": "^3.1.1", - "jsonc-parser": "^3.2.0" + "es-module-lexer": "^1.3.1", + "get-tsconfig": "^4.7.2" }, "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" + "node": ">=14.18.0" }, "peerDependencies": { - "esbuild": ">=0.10.1", - "rollup": "^1.20.0 || ^2.0.0 || ^3.0.0" + "esbuild": ">=0.18.0", + "rollup": "^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" } }, "node_modules/rollup-plugin-esbuild/node_modules/es-module-lexer": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", - "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", "dev": true }, "node_modules/rollup-plugin-import-css": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/rollup-plugin-import-css/-/rollup-plugin-import-css-3.3.4.tgz", - "integrity": "sha512-w5p1Dd1CavAht/P82zB3WX2RVy7O47MlJGSmgrWXTBPAkWHTbOBh/nUPz94IczCD0HLxpuT4AhF24cix7CpZWA==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/rollup-plugin-import-css/-/rollup-plugin-import-css-3.3.5.tgz", + "integrity": "sha512-wSfzveEzvUDlVevo70kmVD5Mk785UN55NG4C7VVnrmdE0qZ8apcVVFajyCPfFYSNxq5YkccOcrGUT2T/2HnEcQ==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.4" @@ -20097,7 +20073,7 @@ "node": ">=16" }, "peerDependencies": { - "rollup": "^2.x.x || ^3.x.x" + "rollup": "^2.x.x || ^3.x.x || ^4.x.x" } }, "node_modules/rollup-plugin-web-worker-loader": { @@ -20161,6 +20137,24 @@ "node": ">=6" } }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -20326,18 +20320,41 @@ "node": ">= 0.8.0" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, "node_modules/set-cookie-parser": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==", "dev": true }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -20700,12 +20717,12 @@ "dev": true }, "node_modules/storybook": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.6.3.tgz", - "integrity": "sha512-H3odxahMiR8vVW7ltlqcHhn3UVH5ta03weKlY7xvpv5DV+thZ+mEO2cDYfsufCSg0Ldb5LQ4qq3OyLVdpDBN8g==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.6.5.tgz", + "integrity": "sha512-uHPrL+g/0v6iIVtDA8J0uWd3jDZcdr51lCR/vPXTkrCY1uVaFjswzl8EMy5PR05I7jMpKUzkJWZtFbgbh9e1Bw==", "dev": true, "dependencies": { - "@storybook/cli": "7.6.3" + "@storybook/cli": "7.6.5" }, "bin": { "sb": "index.js", @@ -20798,14 +20815,14 @@ "dev": true }, "node_modules/string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -20815,28 +20832,28 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -21207,14 +21224,14 @@ "dev": true }, "node_modules/tinymce": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-6.7.3.tgz", - "integrity": "sha512-J7WmYIi/gt1RvZ6Ap2oQiUjzAoiS9pfV+d4GnKuZuPu8agmlAEAInNmMvMjfCNBzHv4JnZXY7qlHUAI0IuYQVA==" + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-6.8.2.tgz", + "integrity": "sha512-Lho79o2Y1Yn+XdlTEkHTEkEmzwYWTXz7IUsvPwxJF3VTtgHUIAAuBab29kik+f2KED3rZvQavr9D7sHVMJ9x4A==" }, "node_modules/tinymce-i18n": { - "version": "23.8.7", - "resolved": "https://registry.npmjs.org/tinymce-i18n/-/tinymce-i18n-23.8.7.tgz", - "integrity": "sha512-VIWuHdwzWFJzHxOLd5Ao7Fj/W2fKajQxI5dzJc2M2k6l0LCTtfnGQkK47ADlU7Yttqbd1QlcJt1yfi957/EAtw==" + "version": "23.12.4", + "resolved": "https://registry.npmjs.org/tinymce-i18n/-/tinymce-i18n-23.12.4.tgz", + "integrity": "sha512-EIbYrJBasx7T2iZxJ2jQT1xz0ET+PKi/Fzv6KPte0suu1MrCVBYw3Thsne1TCzPbcashajevmFX5z2wQlXqssQ==" }, "node_modules/title-case": { "version": "3.0.3", @@ -21427,9 +21444,9 @@ } }, "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", @@ -21522,6 +21539,57 @@ "node": ">= 0.6" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typed-array-length": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", @@ -22019,9 +22087,13 @@ } }, "node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "bin": { "uuid": "dist/bin/uuid" } @@ -22612,6 +22684,22 @@ "@esbuild/win32-x64": "0.18.14" } }, + "node_modules/vite/node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", @@ -22644,174 +22732,50 @@ } }, "node_modules/web-component-analyzer": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/web-component-analyzer/-/web-component-analyzer-2.0.0-next.5.tgz", - "integrity": "sha512-QaQwuwFaBuwc7RwX0KdR9bc57s9Jqj+PcekIt3c7WXRY4vGOr/rjyG8YWuT2R7KmGBh+KrCdY/KynMlWRCVR3w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/web-component-analyzer/-/web-component-analyzer-2.0.0.tgz", + "integrity": "sha512-UEvwfpD+XQw99sLKiH5B1T4QwpwNyWJxp59cnlRwFfhUW6JsQpw5jMeMwi7580sNou8YL3kYoS7BWLm+yJ/jVQ==", "dev": true, "dependencies": { "fast-glob": "^3.2.2", "ts-simple-type": "2.0.0-next.0", - "typescript": "~4.4.3", - "yargs": "^15.3.1" + "typescript": "~5.2.0", + "yargs": "^17.7.2" }, "bin": { "wca": "cli.js", "web-component-analyzer": "cli.js" } }, - "node_modules/web-component-analyzer/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/web-component-analyzer/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/web-component-analyzer/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/web-component-analyzer/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/web-component-analyzer/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/web-component-analyzer/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/web-component-analyzer/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/web-component-analyzer/node_modules/typescript": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", - "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, - "node_modules/web-component-analyzer/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/web-component-analyzer/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, "node_modules/web-component-analyzer/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">=8" - } - }, - "node_modules/web-component-analyzer/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" + "node": ">=12" } }, "node_modules/web-encoding": { @@ -22909,24 +22873,17 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true - }, "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "call-bind": "^1.0.4", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 65e478c1f7..1872e9963c 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -65,6 +65,7 @@ "./logviewer": "./dist-cms/packages/settings/logviewer/index.js", "./relation-type": "./dist-cms/packages/settings/relation-types/index.js", "./tags": "./dist-cms/packages/tags/index.js", + "./static-file": "./dist-cms/packages/static-file/index.js", "./partial-view": "./dist-cms/packages/templating/partial-views/index.js", "./stylesheet": "./dist-cms/packages/templating/stylesheets/index.js", "./template": "./dist-cms/packages/templating/templates/index.js", @@ -135,71 +136,70 @@ }, "dependencies": { "@openid/appauth": "^1.3.1", - "@types/dompurify": "^3.0.4", - "@types/uuid": "^9.0.2", - "@umbraco-ui/uui": "1.6.0-rc.1", - "@umbraco-ui/uui-css": "1.6.0-rc.1", + "@types/dompurify": "^3.0.5", + "@types/uuid": "^9.0.7", + "@umbraco-ui/uui": "1.6.0-rc.3", + "@umbraco-ui/uui-css": "1.6.0-rc.3", "dompurify": "^3.0.6", - "element-internals-polyfill": "^1.3.7", + "element-internals-polyfill": "^1.3.9", "lit": "^2.8.0", "lodash-es": "4.17.21", - "marked": "^9.1.0", - "monaco-editor": "^0.44.0", + "marked": "^11.1.0", + "monaco-editor": "^0.45.0", "rxjs": "^7.8.1", - "tinymce-i18n": "^23.8.7", - "tinymce": "^6.7.3", - "uuid": "^9.0.0" + "tinymce-i18n": "^23.12.4", + "tinymce": "^6.8.2", + "uuid": "^9.0.1" }, "devDependencies": { "@babel/core": "^7.22.17", "@mdx-js/react": "^2.3.0", "@open-wc/testing": "^3.2.0", "@playwright/test": "^1.40.1", - "@rollup/plugin-commonjs": "^25.0.4", - "@rollup/plugin-json": "^6.0.1", - "@rollup/plugin-node-resolve": "^15.2.1", - "@storybook/addon-a11y": "7.6.3", - "@storybook/addon-actions": "7.6.3", - "@storybook/addon-essentials": "7.6.3", - "@storybook/addon-links": "7.6.3", + "@rollup/plugin-commonjs": "^25.0.7", + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^15.2.3", + "@storybook/addon-a11y": "7.6.5", + "@storybook/addon-actions": "7.6.5", + "@storybook/addon-essentials": "7.6.5", + "@storybook/addon-links": "7.6.5", "@storybook/mdx2-csf": "^1.1.0", - "@storybook/web-components-vite": "7.6.3", - "@storybook/web-components": "7.6.3", + "@storybook/web-components-vite": "7.6.5", + "@storybook/web-components": "7.6.5", "@types/chai": "^4.3.5", "@types/lodash-es": "^4.17.8", "@types/mocha": "^10.0.1", - "@typescript-eslint/eslint-plugin": "^6.13.2", - "@typescript-eslint/parser": "^6.13.2", + "@typescript-eslint/eslint-plugin": "^6.14.0", + "@typescript-eslint/parser": "^6.14.0", "@web/dev-server-esbuild": "^0.4.1", "@web/dev-server-import-maps": "^0.1.1", "@web/dev-server-rollup": "^0.6.0", "@web/test-runner-playwright": "^0.11.0", "@web/test-runner": "^0.18.0", "babel-loader": "^9.1.3", - "eslint-config-prettier": "^9.0.0", - "eslint-import-resolver-typescript": "^3.6.0", - "eslint-plugin-import": "^2.28.0", - "eslint-plugin-lit-a11y": "^4.1.0", + "eslint-config-prettier": "^9.1.0", + "eslint-import-resolver-typescript": "^3.6.1", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-lit-a11y": "^4.1.1", "eslint-plugin-lit": "^1.10.1", - "eslint-plugin-local-rules": "^1.3.2", + "eslint-plugin-local-rules": "^2.0.1", "eslint-plugin-storybook": "^0.6.15", "eslint-plugin-wc": "^2.0.4", - "eslint": "^8.55.0", + "eslint": "^8.56.0", "lucide-static": "^0.290.0", - "msw": "^1.2.3", + "msw": "^1.3.2", "openapi-typescript-codegen": "^0.25.0", - "playwright-msw": "^3.0.0", + "playwright-msw": "^3.0.1", "plop": "^4.0.0", "prettier": "3.0.3", "react-dom": "^18.2.0", "react": "^18.2.0", "remark-gfm": "^3.0.1", - "rollup-plugin-dts": "^5.3.1", - "rollup-plugin-esbuild": "^5.0.0", - "rollup-plugin-import-css": "^3.3.4", + "rollup-plugin-esbuild": "^6.1.0", + "rollup-plugin-import-css": "^3.3.5", "rollup-plugin-web-worker-loader": "^1.6.1", - "rollup": "^3.27.2", - "storybook": "7.6.3", + "rollup": "^4.9.0", + "storybook": "7.6.5", "tiny-glob": "^0.2.9", "tsc-alias": "^1.8.8", "typescript-json-schema": "^0.62.0", @@ -207,7 +207,7 @@ "vite-plugin-static-copy": "^0.17.0", "vite-tsconfig-paths": "^4.2.0", "vite": "^4.4.12", - "web-component-analyzer": "^2.0.0-next.5" + "web-component-analyzer": "^2.0.0" }, "msw": { "workerDirectory": "public" diff --git a/src/Umbraco.Web.UI.Client/public/mockServiceWorker.js b/src/Umbraco.Web.UI.Client/public/mockServiceWorker.js index 36a9927457..51d85eeebf 100644 --- a/src/Umbraco.Web.UI.Client/public/mockServiceWorker.js +++ b/src/Umbraco.Web.UI.Client/public/mockServiceWorker.js @@ -2,7 +2,7 @@ /* tslint:disable */ /** - * Mock Service Worker (1.2.3). + * Mock Service Worker (1.3.2). * @see https://github.com/mswjs/msw * - Please do NOT modify this file. * - Please do NOT serve this file on production. diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.element.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.element.ts index db4bf1c993..cbd4e8fc7f 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.element.ts @@ -27,6 +27,7 @@ const CORE_PACKAGES = [ import('../../packages/tags/umbraco-package.js'), import('../../packages/log-viewer/umbraco-package.js'), import('../../packages/health-check/umbraco-package.js'), + import('../../packages/static-file/umbraco-package.js'), ]; @customElement('umb-backoffice') diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts index 961956c2ce..cfccd9a5f3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts @@ -240,6 +240,8 @@ export type { ScriptUpdateModel } from './models/ScriptUpdateModel'; export type { ScriptViewModelBaseModel } from './models/ScriptViewModelBaseModel'; export type { SearcherResponseModel } from './models/SearcherResponseModel'; export type { SearchResultResponseModel } from './models/SearchResultResponseModel'; +export type { ServerInformationItemResponseModel } from './models/ServerInformationItemResponseModel'; +export type { ServerInformationResponseModel } from './models/ServerInformationResponseModel'; export type { ServerStatusResponseModel } from './models/ServerStatusResponseModel'; export type { SetAvatarRequestModel } from './models/SetAvatarRequestModel'; export type { SetTourStatusRequestModel } from './models/SetTourStatusRequestModel'; @@ -306,8 +308,6 @@ export type { UpdateUserGroupRequestModel } from './models/UpdateUserGroupReques export type { UpdateUserGroupsOnUserRequestModel } from './models/UpdateUserGroupsOnUserRequestModel'; export type { UpdateUserRequestModel } from './models/UpdateUserRequestModel'; export type { UpgradeSettingsResponseModel } from './models/UpgradeSettingsResponseModel'; -export type { UserDataModel } from './models/UserDataModel'; -export type { UserDataResponseModel } from './models/UserDataResponseModel'; export type { UserGroupBaseModel } from './models/UserGroupBaseModel'; export type { UserGroupItemResponseModel } from './models/UserGroupItemResponseModel'; export type { UserGroupResponseModel } from './models/UserGroupResponseModel'; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeModelBaseModel.ts index e8c579e76f..7c3a1d770a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeModelBaseModel.ts @@ -7,8 +7,8 @@ import type { DataTypePropertyPresentationModel } from './DataTypePropertyPresen export type DataTypeModelBaseModel = { name: string; - propertyEditorAlias: string; - propertyEditorUiAlias?: string | null; + editorAlias: string; + editorUiAlias?: string | null; values: Array; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserDataModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerInformationItemResponseModel.ts similarity index 77% rename from src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserDataModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerInformationItemResponseModel.ts index 89dbb8a629..1e3278bd97 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserDataModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerInformationItemResponseModel.ts @@ -3,7 +3,7 @@ /* tslint:disable */ /* eslint-disable */ -export type UserDataModel = { +export type ServerInformationItemResponseModel = { name: string; data: string; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerInformationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerInformationResponseModel.ts new file mode 100644 index 0000000000..27ec2ff0a9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerInformationResponseModel.ts @@ -0,0 +1,11 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { ServerInformationItemResponseModel } from './ServerInformationItemResponseModel'; + +export type ServerInformationResponseModel = { + items: Array; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserDataResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserDataResponseModel.ts deleted file mode 100644 index f381dd73cd..0000000000 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserDataResponseModel.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* generated using openapi-typescript-codegen -- do no edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ - -import type { UserDataModel } from './UserDataModel'; - -export type UserDataResponseModel = { - userData: Array; -}; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupBaseModel.ts index a57eec19d8..571c24d641 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupBaseModel.ts @@ -10,7 +10,9 @@ export type UserGroupBaseModel = { languages: Array; hasAccessToAllLanguages: boolean; documentStartNodeId?: string | null; + documentRootAccess: boolean; mediaStartNodeId?: string | null; + mediaRootAccess: boolean; permissions: Array; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupResponseModel.ts index 749a727d62..04526f66a1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupResponseModel.ts @@ -7,5 +7,6 @@ import type { UserGroupBaseModel } from './UserGroupBaseModel'; export type UserGroupResponseModel = (UserGroupBaseModel & { id: string; + isSystemGroup: boolean; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/AuditLogResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/AuditLogResource.ts index b9b1a0e0b2..b83d457350 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/AuditLogResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/AuditLogResource.ts @@ -37,6 +37,9 @@ export class AuditLogResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -69,6 +72,9 @@ export class AuditLogResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -98,6 +104,9 @@ export class AuditLogResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/CultureResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/CultureResource.ts index 187a7eb868..9147291447 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/CultureResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/CultureResource.ts @@ -28,6 +28,9 @@ export class CultureResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts index 16a2f5e336..9bf3aa8360 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts @@ -37,6 +37,7 @@ export class DataTypeResource { responseHeader: 'Location', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -58,6 +59,7 @@ export class DataTypeResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -80,6 +82,7 @@ export class DataTypeResource { }, errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -106,6 +109,7 @@ export class DataTypeResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -132,6 +136,7 @@ export class DataTypeResource { mediaType: 'application/json', responseHeader: 'Location', errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -153,6 +158,7 @@ export class DataTypeResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -178,6 +184,7 @@ export class DataTypeResource { body: requestBody, mediaType: 'application/json', errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -199,6 +206,7 @@ export class DataTypeResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -221,6 +229,7 @@ export class DataTypeResource { responseHeader: 'Location', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -242,6 +251,7 @@ export class DataTypeResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -264,6 +274,7 @@ export class DataTypeResource { }, errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -290,6 +301,7 @@ export class DataTypeResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -310,6 +322,9 @@ export class DataTypeResource { query: { 'id': id, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -328,6 +343,9 @@ export class DataTypeResource { path: { 'alias': alias, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -355,6 +373,9 @@ export class DataTypeResource { 'take': take, 'foldersOnly': foldersOnly, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -379,6 +400,9 @@ export class DataTypeResource { 'take': take, 'foldersOnly': foldersOnly, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts index 005c4e1102..1d32c33e6d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts @@ -35,6 +35,9 @@ export class DictionaryResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -55,6 +58,7 @@ export class DictionaryResource { responseHeader: 'Location', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, 409: `Conflict`, }, @@ -77,6 +81,7 @@ export class DictionaryResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -99,6 +104,7 @@ export class DictionaryResource { }, errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -125,6 +131,7 @@ export class DictionaryResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -151,6 +158,7 @@ export class DictionaryResource { 'includeChildren': includeChildren, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -177,6 +185,7 @@ export class DictionaryResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -199,6 +208,7 @@ export class DictionaryResource { responseHeader: 'Location', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -219,6 +229,9 @@ export class DictionaryResource { query: { 'id': id, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -243,6 +256,9 @@ export class DictionaryResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -264,6 +280,9 @@ export class DictionaryResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentBlueprintResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentBlueprintResource.ts index 14002d9762..d9db2af0ed 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentBlueprintResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentBlueprintResource.ts @@ -26,6 +26,9 @@ export class DocumentBlueprintResource { query: { 'id': id, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -47,6 +50,9 @@ export class DocumentBlueprintResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts index c942b1813a..19d3171ea0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts @@ -43,6 +43,8 @@ export class DocumentResource { mediaType: 'application/json', responseHeader: 'Location', errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -64,6 +66,8 @@ export class DocumentResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -89,6 +93,8 @@ export class DocumentResource { body: requestBody, mediaType: 'application/json', errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -115,6 +121,8 @@ export class DocumentResource { mediaType: 'application/json', responseHeader: 'Location', errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -136,6 +144,7 @@ export class DocumentResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -160,6 +169,9 @@ export class DocumentResource { }, body: requestBody, mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -183,6 +195,8 @@ export class DocumentResource { body: requestBody, mediaType: 'application/json', errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -205,6 +219,8 @@ export class DocumentResource { }, errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -226,6 +242,8 @@ export class DocumentResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -251,6 +269,7 @@ export class DocumentResource { body: requestBody, mediaType: 'application/json', errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -277,6 +296,8 @@ export class DocumentResource { mediaType: 'application/json', responseHeader: 'Location', errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -298,6 +319,8 @@ export class DocumentResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -319,6 +342,8 @@ export class DocumentResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -344,6 +369,8 @@ export class DocumentResource { body: requestBody, mediaType: 'application/json', errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -370,6 +397,8 @@ export class DocumentResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -396,6 +425,8 @@ export class DocumentResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -422,6 +453,8 @@ export class DocumentResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -449,6 +482,7 @@ export class DocumentResource { 'take': take, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -475,6 +509,9 @@ export class DocumentResource { 'dataTypeId': dataTypeId, 'culture': culture, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -494,6 +531,8 @@ export class DocumentResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -521,7 +560,7 @@ export class DocumentResource { 'take': take, }, errors: { - 401: `Unauthorized`, + 401: `The resource is protected and requires an authentication token`, }, }); } @@ -545,7 +584,7 @@ export class DocumentResource { 'take': take, }, errors: { - 401: `Unauthorized`, + 401: `The resource is protected and requires an authentication token`, }, }); } @@ -577,6 +616,9 @@ export class DocumentResource { 'dataTypeId': dataTypeId, 'culture': culture, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -604,6 +646,9 @@ export class DocumentResource { 'dataTypeId': dataTypeId, 'culture': culture, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts index e935c6b91c..c0720a7845 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts @@ -34,6 +34,7 @@ export class DocumentTypeResource { responseHeader: 'Location', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -55,6 +56,7 @@ export class DocumentTypeResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -76,6 +78,7 @@ export class DocumentTypeResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -102,6 +105,7 @@ export class DocumentTypeResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -124,6 +128,7 @@ export class DocumentTypeResource { responseHeader: 'Location', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -145,6 +150,7 @@ export class DocumentTypeResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -167,6 +173,7 @@ export class DocumentTypeResource { }, errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -193,6 +200,7 @@ export class DocumentTypeResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -213,6 +221,9 @@ export class DocumentTypeResource { query: { 'id': id, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -240,6 +251,9 @@ export class DocumentTypeResource { 'take': take, 'foldersOnly': foldersOnly, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -264,6 +278,9 @@ export class DocumentTypeResource { 'take': take, 'foldersOnly': foldersOnly, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HealthCheckResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HealthCheckResource.ts index 5c1506af83..a7ba30030a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HealthCheckResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HealthCheckResource.ts @@ -32,6 +32,9 @@ export class HealthCheckResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -51,6 +54,7 @@ export class HealthCheckResource { 'name': name, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -72,6 +76,7 @@ export class HealthCheckResource { 'name': name, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -93,6 +98,7 @@ export class HealthCheckResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HelpResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HelpResource.ts index 14c54232c5..5a8f103da5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HelpResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HelpResource.ts @@ -39,6 +39,7 @@ export class HelpResource { }, errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/IndexerResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/IndexerResource.ts index 2b0e602b55..edd9f9661c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/IndexerResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/IndexerResource.ts @@ -30,6 +30,9 @@ export class IndexerResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -50,6 +53,7 @@ export class IndexerResource { }, errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, }, }); } @@ -71,6 +75,7 @@ export class IndexerResource { }, errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, 409: `Conflict`, }, diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LanguageResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LanguageResource.ts index 019e882783..50b9fcc55d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LanguageResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LanguageResource.ts @@ -32,6 +32,9 @@ export class LanguageResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -52,6 +55,7 @@ export class LanguageResource { responseHeader: 'Location', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -73,6 +77,7 @@ export class LanguageResource { 'isoCode': isoCode, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -95,6 +100,7 @@ export class LanguageResource { }, errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -121,6 +127,7 @@ export class LanguageResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -141,6 +148,9 @@ export class LanguageResource { query: { 'isoCode': isoCode, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LogViewerResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LogViewerResource.ts index 50b8e709a8..875f6ddd01 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LogViewerResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LogViewerResource.ts @@ -36,6 +36,9 @@ export class LogViewerResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -59,6 +62,7 @@ export class LogViewerResource { }, errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, }, }); } @@ -96,6 +100,9 @@ export class LogViewerResource { 'startDate': startDate, 'endDate': endDate, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -125,6 +132,7 @@ export class LogViewerResource { }, errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, }, }); } @@ -147,6 +155,9 @@ export class LogViewerResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -167,6 +178,7 @@ export class LogViewerResource { responseHeader: 'Location', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, }, }); } @@ -187,6 +199,7 @@ export class LogViewerResource { 'name': name, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -208,6 +221,7 @@ export class LogViewerResource { 'name': name, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -233,6 +247,7 @@ export class LogViewerResource { }, errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts index 2b30150feb..300cf01e33 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts @@ -34,6 +34,8 @@ export class MediaResource { mediaType: 'application/json', responseHeader: 'Location', errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -55,6 +57,8 @@ export class MediaResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -80,6 +84,8 @@ export class MediaResource { body: requestBody, mediaType: 'application/json', errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -105,6 +111,8 @@ export class MediaResource { body: requestBody, mediaType: 'application/json', errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -127,6 +135,8 @@ export class MediaResource { }, errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -150,6 +160,9 @@ export class MediaResource { 'id': id, 'dataTypeId': dataTypeId, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -169,6 +182,8 @@ export class MediaResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -196,7 +211,7 @@ export class MediaResource { 'take': take, }, errors: { - 401: `Unauthorized`, + 401: `The resource is protected and requires an authentication token`, }, }); } @@ -220,7 +235,7 @@ export class MediaResource { 'take': take, }, errors: { - 401: `Unauthorized`, + 401: `The resource is protected and requires an authentication token`, }, }); } @@ -249,6 +264,9 @@ export class MediaResource { 'take': take, 'dataTypeId': dataTypeId, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -270,6 +288,9 @@ export class MediaResource { 'id': id, 'dataTypeId': dataTypeId, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -294,6 +315,9 @@ export class MediaResource { 'take': take, 'dataTypeId': dataTypeId, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts index 380743ea07..3e8a455b1c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts @@ -34,6 +34,7 @@ export class MediaTypeResource { responseHeader: 'Location', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -55,6 +56,7 @@ export class MediaTypeResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -76,6 +78,7 @@ export class MediaTypeResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -102,6 +105,7 @@ export class MediaTypeResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -124,6 +128,7 @@ export class MediaTypeResource { responseHeader: 'Location', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -145,6 +150,7 @@ export class MediaTypeResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -167,6 +173,7 @@ export class MediaTypeResource { }, errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -193,6 +200,7 @@ export class MediaTypeResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -213,6 +221,9 @@ export class MediaTypeResource { query: { 'id': id, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -240,6 +251,9 @@ export class MediaTypeResource { 'take': take, 'foldersOnly': foldersOnly, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -264,6 +278,9 @@ export class MediaTypeResource { 'take': take, 'foldersOnly': foldersOnly, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberGroupResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberGroupResource.ts index 39dd7cdfad..adbb074e57 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberGroupResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberGroupResource.ts @@ -26,6 +26,9 @@ export class MemberGroupResource { query: { 'id': id, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -47,6 +50,9 @@ export class MemberGroupResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberResource.ts index b8081ac4b1..46ecade882 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberResource.ts @@ -25,6 +25,9 @@ export class MemberResource { query: { 'id': id, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberTypeResource.ts index dd990d83cd..6352da1962 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberTypeResource.ts @@ -26,6 +26,9 @@ export class MemberTypeResource { query: { 'id': id, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -47,6 +50,9 @@ export class MemberTypeResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ModelsBuilderResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ModelsBuilderResource.ts index 8706d2f014..303b232e2a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ModelsBuilderResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ModelsBuilderResource.ts @@ -20,6 +20,7 @@ export class ModelsBuilderResource { method: 'POST', url: '/umbraco/management/api/v1/models-builder/build', errors: { + 401: `The resource is protected and requires an authentication token`, 428: `Client Error`, }, }); @@ -33,6 +34,9 @@ export class ModelsBuilderResource { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/models-builder/dashboard', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -44,6 +48,9 @@ export class ModelsBuilderResource { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/models-builder/status', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ObjectTypesResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ObjectTypesResource.ts index e43eba3639..e22032ecde 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ObjectTypesResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ObjectTypesResource.ts @@ -28,6 +28,9 @@ export class ObjectTypesResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts index 5c7fd33ca3..997effe03a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts @@ -31,6 +31,7 @@ export class PackageResource { 'name': name, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, 409: `Conflict`, }, @@ -55,6 +56,9 @@ export class PackageResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -75,6 +79,7 @@ export class PackageResource { responseHeader: 'Location', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -96,6 +101,7 @@ export class PackageResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -117,6 +123,7 @@ export class PackageResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -142,6 +149,7 @@ export class PackageResource { body: requestBody, mediaType: 'application/json', errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -163,6 +171,7 @@ export class PackageResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -176,6 +185,9 @@ export class PackageResource { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/package/manifest', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -197,6 +209,9 @@ export class PackageResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PartialViewResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PartialViewResource.ts index b4f76e7d33..0f2b69cfca 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PartialViewResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PartialViewResource.ts @@ -32,6 +32,9 @@ export class PartialViewResource { query: { 'path': path, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -50,6 +53,9 @@ export class PartialViewResource { body: requestBody, mediaType: 'application/json', responseHeader: 'Location', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -68,6 +74,9 @@ export class PartialViewResource { query: { 'path': path, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -85,6 +94,9 @@ export class PartialViewResource { url: '/umbraco/management/api/v1/partial-view', body: requestBody, mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -103,6 +115,9 @@ export class PartialViewResource { query: { 'path': path, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -120,6 +135,9 @@ export class PartialViewResource { url: '/umbraco/management/api/v1/partial-view/folder', body: requestBody, mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -138,6 +156,9 @@ export class PartialViewResource { query: { 'path': path, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -156,6 +177,9 @@ export class PartialViewResource { query: { 'id': id, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -177,6 +201,9 @@ export class PartialViewResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -196,6 +223,7 @@ export class PartialViewResource { 'name': name, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -222,6 +250,9 @@ export class PartialViewResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -243,6 +274,9 @@ export class PartialViewResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ProfilingResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ProfilingResource.ts index 955fe38a4b..3c9e655507 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ProfilingResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ProfilingResource.ts @@ -19,6 +19,9 @@ export class ProfilingResource { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/profiling/status', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -36,6 +39,9 @@ export class ProfilingResource { url: '/umbraco/management/api/v1/profiling/status', body: requestBody, mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PropertyTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PropertyTypeResource.ts index 9a20d508c6..36cf7b48cc 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PropertyTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PropertyTypeResource.ts @@ -28,6 +28,7 @@ export class PropertyTypeResource { }, errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PublishedCacheResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PublishedCacheResource.ts index a1813db1be..6de8932a1a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PublishedCacheResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PublishedCacheResource.ts @@ -16,6 +16,9 @@ export class PublishedCacheResource { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/published-cache/collect', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -27,6 +30,9 @@ export class PublishedCacheResource { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/published-cache/rebuild', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -38,6 +44,9 @@ export class PublishedCacheResource { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/published-cache/reload', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -49,6 +58,9 @@ export class PublishedCacheResource { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/published-cache/status', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RedirectManagementResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RedirectManagementResource.ts index 021c050af2..935e6c6a62 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RedirectManagementResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RedirectManagementResource.ts @@ -35,6 +35,7 @@ export class RedirectManagementResource { }, errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, }, }); } @@ -62,6 +63,9 @@ export class RedirectManagementResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -80,6 +84,9 @@ export class RedirectManagementResource { path: { 'id': id, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -91,6 +98,9 @@ export class RedirectManagementResource { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/redirect-management/status', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -109,6 +119,9 @@ export class RedirectManagementResource { query: { 'status': status, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationResource.ts index f1faa56e25..76bbbb9de5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationResource.ts @@ -36,6 +36,9 @@ export class RelationResource { 'take': take, 'relationTypeAlias': relationTypeAlias, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -63,6 +66,7 @@ export class RelationResource { 'take': take, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationTypeResource.ts index 0f511af9e6..fd4f1cbc2a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationTypeResource.ts @@ -31,6 +31,7 @@ export class RelationTypeResource { responseHeader: 'Location', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, }, }); } @@ -51,6 +52,7 @@ export class RelationTypeResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -72,6 +74,7 @@ export class RelationTypeResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -98,6 +101,7 @@ export class RelationTypeResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -118,6 +122,9 @@ export class RelationTypeResource { query: { 'id': id, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -139,6 +146,9 @@ export class RelationTypeResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ScriptResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ScriptResource.ts index 2ac9a91bbb..636675a7d7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ScriptResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ScriptResource.ts @@ -30,6 +30,9 @@ export class ScriptResource { query: { 'path': path, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -48,6 +51,9 @@ export class ScriptResource { body: requestBody, mediaType: 'application/json', responseHeader: 'Location', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -66,6 +72,9 @@ export class ScriptResource { query: { 'path': path, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -83,6 +92,9 @@ export class ScriptResource { url: '/umbraco/management/api/v1/script', body: requestBody, mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -101,6 +113,9 @@ export class ScriptResource { query: { 'path': path, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -118,6 +133,9 @@ export class ScriptResource { url: '/umbraco/management/api/v1/script/folder', body: requestBody, mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -136,6 +154,9 @@ export class ScriptResource { query: { 'path': path, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -154,6 +175,9 @@ export class ScriptResource { query: { 'path': path, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -178,6 +202,9 @@ export class ScriptResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -199,6 +226,9 @@ export class ScriptResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SearcherResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SearcherResource.ts index f23977a387..ff805a23dd 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SearcherResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SearcherResource.ts @@ -29,6 +29,9 @@ export class SearcherResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -59,6 +62,7 @@ export class SearcherResource { 'take': take, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SecurityResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SecurityResource.ts index 36fc179833..e50f16374c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SecurityResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SecurityResource.ts @@ -48,6 +48,7 @@ export class SecurityResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -69,6 +70,7 @@ export class SecurityResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ServerResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ServerResource.ts index fc65255ecf..0ab367cadb 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ServerResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ServerResource.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ +import type { ServerInformationResponseModel } from '../models/ServerInformationResponseModel'; import type { ServerStatusResponseModel } from '../models/ServerStatusResponseModel'; import type { VersionResponseModel } from '../models/VersionResponseModel'; @@ -11,6 +12,20 @@ import { request as __request } from '../core/request'; export class ServerResource { + /** + * @returns any Success + * @throws ApiError + */ + public static getServerInformation(): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/server/information', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + /** * @returns any Success * @throws ApiError @@ -35,6 +50,7 @@ export class ServerResource { url: '/umbraco/management/api/v1/server/version', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StaticFileResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StaticFileResource.ts index 502eb73055..003abb98db 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StaticFileResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StaticFileResource.ts @@ -26,6 +26,9 @@ export class StaticFileResource { query: { 'path': path, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -50,6 +53,9 @@ export class StaticFileResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -71,6 +77,9 @@ export class StaticFileResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StylesheetResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StylesheetResource.ts index 1a96fabacc..a569f44fa2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StylesheetResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StylesheetResource.ts @@ -36,6 +36,9 @@ export class StylesheetResource { query: { 'path': path, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -54,6 +57,9 @@ export class StylesheetResource { body: requestBody, mediaType: 'application/json', responseHeader: 'Location', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -72,6 +78,9 @@ export class StylesheetResource { query: { 'path': path, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -89,6 +98,9 @@ export class StylesheetResource { url: '/umbraco/management/api/v1/stylesheet', body: requestBody, mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -110,6 +122,9 @@ export class StylesheetResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -128,6 +143,9 @@ export class StylesheetResource { query: { 'path': path, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -145,6 +163,9 @@ export class StylesheetResource { url: '/umbraco/management/api/v1/stylesheet/folder', body: requestBody, mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -163,6 +184,9 @@ export class StylesheetResource { query: { 'path': path, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -181,6 +205,9 @@ export class StylesheetResource { query: { 'path': path, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -198,6 +225,9 @@ export class StylesheetResource { url: '/umbraco/management/api/v1/stylesheet/rich-text/extract-rules', body: requestBody, mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -215,6 +245,9 @@ export class StylesheetResource { url: '/umbraco/management/api/v1/stylesheet/rich-text/interpolate-rules', body: requestBody, mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -233,6 +266,9 @@ export class StylesheetResource { query: { 'path': path, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -257,6 +293,9 @@ export class StylesheetResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -278,6 +317,9 @@ export class StylesheetResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TagResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TagResource.ts index 8c1a7e12e7..2d0c9675f7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TagResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TagResource.ts @@ -37,6 +37,9 @@ export class TagResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TelemetryResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TelemetryResource.ts index f404678368..89b241dcf0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TelemetryResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TelemetryResource.ts @@ -30,6 +30,9 @@ export class TelemetryResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -41,6 +44,9 @@ export class TelemetryResource { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/telemetry/level', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -60,6 +66,7 @@ export class TelemetryResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts index 2db042dca9..944b8232d4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts @@ -35,6 +35,7 @@ export class TemplateResource { responseHeader: 'Location', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -56,6 +57,7 @@ export class TemplateResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -78,6 +80,7 @@ export class TemplateResource { }, errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -104,6 +107,7 @@ export class TemplateResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -124,6 +128,9 @@ export class TemplateResource { query: { 'id': id, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -141,6 +148,9 @@ export class TemplateResource { url: '/umbraco/management/api/v1/template/query/execute', body: requestBody, mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -152,6 +162,9 @@ export class TemplateResource { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/template/query/settings', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -171,6 +184,7 @@ export class TemplateResource { 'masterTemplateId': masterTemplateId, }, errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -197,6 +211,9 @@ export class TemplateResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -218,6 +235,9 @@ export class TemplateResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts index 22979a1a5f..4e11a15af8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts @@ -30,6 +30,7 @@ export class TemporaryFileResource { responseHeader: 'Location', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, }, }); } @@ -51,6 +52,7 @@ export class TemporaryFileResource { }, errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -73,6 +75,7 @@ export class TemporaryFileResource { }, errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TourResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TourResource.ts index 900dd703ea..563a77950b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TourResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TourResource.ts @@ -19,6 +19,9 @@ export class TourResource { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tour', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -36,6 +39,9 @@ export class TourResource { url: '/umbraco/management/api/v1/tour', body: requestBody, mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TrackedReferenceResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TrackedReferenceResource.ts index acb65fe98f..040c7a1345 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TrackedReferenceResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TrackedReferenceResource.ts @@ -36,6 +36,9 @@ export class TrackedReferenceResource { 'take': take, 'filterMustBeIsDependency': filterMustBeIsDependency, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -65,6 +68,9 @@ export class TrackedReferenceResource { 'take': take, 'filterMustBeIsDependency': filterMustBeIsDependency, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -92,6 +98,9 @@ export class TrackedReferenceResource { 'take': take, 'filterMustBeIsDependency': filterMustBeIsDependency, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UpgradeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UpgradeResource.ts index 7af170164d..ba692f2b9d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UpgradeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UpgradeResource.ts @@ -19,6 +19,7 @@ export class UpgradeResource { method: 'POST', url: '/umbraco/management/api/v1/upgrade/authorize', errors: { + 401: `The resource is protected and requires an authentication token`, 428: `Client Error`, 500: `Server Error`, }, @@ -34,6 +35,7 @@ export class UpgradeResource { method: 'GET', url: '/umbraco/management/api/v1/upgrade/settings', errors: { + 401: `The resource is protected and requires an authentication token`, 428: `Client Error`, }, }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserGroupResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserGroupResource.ts index 098b40b497..5c619e1448 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserGroupResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserGroupResource.ts @@ -30,6 +30,8 @@ export class UserGroupResource { body: requestBody, mediaType: 'application/json', errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -52,6 +54,7 @@ export class UserGroupResource { responseHeader: 'Location', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, }, }); } @@ -74,6 +77,9 @@ export class UserGroupResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -93,6 +99,8 @@ export class UserGroupResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -114,6 +122,8 @@ export class UserGroupResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -139,6 +149,7 @@ export class UserGroupResource { body: requestBody, mediaType: 'application/json', errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -159,6 +170,9 @@ export class UserGroupResource { query: { 'id': id, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts index 5f027e3783..212388f45a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts @@ -19,7 +19,6 @@ import type { SetAvatarRequestModel } from '../models/SetAvatarRequestModel'; import type { UnlockUsersRequestModel } from '../models/UnlockUsersRequestModel'; import type { UpdateUserGroupsOnUserRequestModel } from '../models/UpdateUserGroupsOnUserRequestModel'; import type { UpdateUserRequestModel } from '../models/UpdateUserRequestModel'; -import type { UserDataResponseModel } from '../models/UserDataResponseModel'; import type { UserItemResponseModel } from '../models/UserItemResponseModel'; import type { UserOrderModel } from '../models/UserOrderModel'; import type { UserPermissionsResponseModel } from '../models/UserPermissionsResponseModel'; @@ -49,6 +48,7 @@ export class UserResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, }, }); } @@ -69,6 +69,8 @@ export class UserResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, }, }); } @@ -91,6 +93,9 @@ export class UserResource { 'skip': skip, 'take': take, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -110,6 +115,8 @@ export class UserResource { 'id': id, }, errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); @@ -130,6 +137,10 @@ export class UserResource { path: { 'id': id, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, + }, }); } @@ -152,6 +163,9 @@ export class UserResource { }, body: requestBody, mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -170,6 +184,10 @@ export class UserResource { path: { 'id': id, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, + }, }); } @@ -194,6 +212,8 @@ export class UserResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, }, }); } @@ -217,6 +237,9 @@ export class UserResource { }, body: requestBody, mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -228,6 +251,10 @@ export class UserResource { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/user/current', + errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, + }, }); } @@ -245,6 +272,10 @@ export class UserResource { url: '/umbraco/management/api/v1/user/current/avatar', body: requestBody, mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, + }, }); } @@ -262,17 +293,9 @@ export class UserResource { url: '/umbraco/management/api/v1/user/current/change-password', body: requestBody, mediaType: 'application/json', - }); - } - - /** - * @returns any Success - * @throws ApiError - */ - public static getUserCurrentData(): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/umbraco/management/api/v1/user/current/data', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -284,6 +307,9 @@ export class UserResource { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/user/current/logins', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -302,6 +328,9 @@ export class UserResource { query: { 'id': id, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -320,6 +349,9 @@ export class UserResource { query: { 'id': id, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -338,6 +370,9 @@ export class UserResource { query: { 'id': id, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -357,6 +392,8 @@ export class UserResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, }, }); } @@ -377,6 +414,8 @@ export class UserResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, }, }); } @@ -414,6 +453,9 @@ export class UserResource { 'userStates': userStates, 'filter': filter, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -432,6 +474,9 @@ export class UserResource { body: requestBody, mediaType: 'application/json', responseHeader: 'Location', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -450,6 +495,7 @@ export class UserResource { body: requestBody, mediaType: 'application/json', errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -471,6 +517,7 @@ export class UserResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, }, }); } @@ -490,6 +537,7 @@ export class UserResource { body: requestBody, mediaType: 'application/json', errors: { + 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -510,6 +558,9 @@ export class UserResource { query: { 'id': id, }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, }); } @@ -527,6 +578,10 @@ export class UserResource { url: '/umbraco/management/api/v1/user/set-user-groups', body: requestBody, mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, + }, }); } @@ -546,6 +601,8 @@ export class UserResource { mediaType: 'application/json', errors: { 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/external/lit/index.ts b/src/Umbraco.Web.UI.Client/src/external/lit/index.ts index 9daf642cef..270a60fa6a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/lit/index.ts +++ b/src/Umbraco.Web.UI.Client/src/external/lit/index.ts @@ -2,11 +2,10 @@ export * from 'lit'; export * from 'lit/decorators.js'; export * from 'lit/directives/class-map.js'; export * from 'lit/directives/if-defined.js'; -export * from 'lit/directives/style-map.js'; -export * from 'lit/directives/repeat.js'; -export * from 'lit/directives/unsafe-html.js'; +export * from 'lit/directives/map.js'; export * from 'lit/directives/ref.js'; +export * from 'lit/directives/repeat.js'; +export * from 'lit/directives/style-map.js'; +export * from 'lit/directives/unsafe-html.js'; export * from 'lit/directives/until.js'; - -export * from 'lit-html/directives/when.js'; -export * from 'lit-html/directives/map.js'; +export * from 'lit/directives/when.js'; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts index c72ac88069..cac7ae809b 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts @@ -27,6 +27,7 @@ import { handlers as redirectManagementHandlers } from './handlers/redirect-mana import { handlers as logViewerHandlers } from './handlers/log-viewer.handlers.js'; import { handlers as packageHandlers } from './handlers/package.handlers.js'; import { handlers as rteEmbedHandlers } from './handlers/rte-embed.handlers.js'; +import { handlers as staticFileHandlers } from './handlers/static-file.handlers.js'; import { handlers as stylesheetHandlers } from './handlers/stylesheet.handlers.js'; import { handlers as partialViewsHandlers } from './handlers/partial-views.handlers.js'; import { handlers as tagHandlers } from './handlers/tag-handlers.js'; @@ -35,38 +36,39 @@ import { handlers as scriptHandlers } from './handlers/scripts.handlers.js'; const handlers = [ serverHandlers.serverVersionHandler, - ...installHandlers, - ...upgradeHandlers, - ...userHandlers, - ...documentHandlers, - ...mediaHandlers, + ...configHandlers, + ...cultureHandlers, ...dataTypeHandlers, - ...relationTypeHandlers, + ...dictionaryHandlers, + ...documentHandlers, ...documentTypeHandlers, - ...telemetryHandlers, - ...publishedStatusHandlers, - ...userGroupsHandlers, + ...examineManagementHandlers, + ...healthCheckHandlers, + ...installHandlers, + ...languageHandlers, + ...logViewerHandlers, + ...mediaHandlers, ...mediaTypeHandlers, ...memberGroupHandlers, ...memberHandlers, ...memberTypeHandlers, - ...examineManagementHandlers, ...modelsBuilderHandlers, - ...healthCheckHandlers, - ...profilingHandlers, - ...dictionaryHandlers, - ...templateHandlers, - ...languageHandlers, - ...cultureHandlers, - ...redirectManagementHandlers, - ...logViewerHandlers, ...packageHandlers, - ...rteEmbedHandlers, - ...stylesheetHandlers, ...partialViewsHandlers, - ...tagHandlers, - ...configHandlers, + ...profilingHandlers, + ...publishedStatusHandlers, + ...redirectManagementHandlers, + ...relationTypeHandlers, + ...rteEmbedHandlers, ...scriptHandlers, + ...staticFileHandlers, + ...stylesheetHandlers, + ...tagHandlers, + ...telemetryHandlers, + ...templateHandlers, + ...upgradeHandlers, + ...userGroupsHandlers, + ...userHandlers, ]; switch (import.meta.env.VITE_UMBRACO_INSTALL_STATUS) { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type.data.ts index 8258f9522c..b91e455185 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type.data.ts @@ -34,8 +34,8 @@ export const data: Array = id: '0cc0eba1-9960-42c9-bf9b-60e150b429ae', parentId: null, name: 'Textstring', - propertyEditorAlias: 'Umbraco.TextBox', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.TextBox', + editorAlias: 'Umbraco.TextBox', + editorUiAlias: 'Umb.PropertyEditorUi.TextBox', values: [], }, { @@ -43,8 +43,8 @@ export const data: Array = name: 'Text', id: 'dt-textBox', parentId: null, - propertyEditorAlias: 'Umbraco.TextBox', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.TextBox', + editorAlias: 'Umbraco.TextBox', + editorUiAlias: 'Umb.PropertyEditorUi.TextBox', values: [ { alias: 'maxChars', @@ -57,8 +57,8 @@ export const data: Array = name: 'Text Area', id: 'dt-textArea', parentId: null, - propertyEditorAlias: 'Umbraco.TextArea', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.TextArea', + editorAlias: 'Umbraco.TextArea', + editorUiAlias: 'Umb.PropertyEditorUi.TextArea', values: [], }, { @@ -66,8 +66,8 @@ export const data: Array = name: 'My JS Property Editor', id: 'dt-custom', parentId: null, - propertyEditorAlias: 'Umbraco.Label', - propertyEditorUiAlias: 'My.PropertyEditorUI.Custom', + editorAlias: 'Umbraco.Label', + editorUiAlias: 'My.PropertyEditorUI.Custom', values: [], }, { @@ -75,8 +75,8 @@ export const data: Array = name: 'Color Picker', id: 'dt-colorPicker', parentId: null, - propertyEditorAlias: 'Umbraco.ColorPicker', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.ColorPicker', + editorAlias: 'Umbraco.ColorPicker', + editorUiAlias: 'Umb.PropertyEditorUi.ColorPicker', values: [ { alias: 'useLabel', @@ -130,8 +130,8 @@ export const data: Array = name: 'Content Picker', id: 'dt-contentPicker', parentId: null, - propertyEditorAlias: 'Umbraco.ContentPicker', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.DocumentPicker', + editorAlias: 'Umbraco.ContentPicker', + editorUiAlias: 'Umb.PropertyEditorUi.DocumentPicker', values: [ { alias: 'validationLimit', @@ -144,8 +144,8 @@ export const data: Array = name: 'Eye Dropper', id: 'dt-eyeDropper', parentId: null, - propertyEditorAlias: 'Umbraco.ColorPicker.EyeDropper', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.EyeDropper', + editorAlias: 'Umbraco.ColorPicker.EyeDropper', + editorUiAlias: 'Umb.PropertyEditorUi.EyeDropper', values: [ { //showPalette @@ -180,8 +180,8 @@ export const data: Array = name: 'Multi URL Picker', id: 'dt-multiUrlPicker', parentId: null, - propertyEditorAlias: 'Umbraco.MultiUrlPicker', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.MultiUrlPicker', + editorAlias: 'Umbraco.MultiUrlPicker', + editorUiAlias: 'Umb.PropertyEditorUi.MultiUrlPicker', values: [ { alias: 'overlaySize', @@ -210,8 +210,8 @@ export const data: Array = name: 'Multi Node Tree Picker', id: 'dt-multiNodeTreePicker', parentId: null, - propertyEditorAlias: 'Umbraco.MultiNodeTreePicker', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.TreePicker', + editorAlias: 'Umbraco.MultiNodeTreePicker', + editorUiAlias: 'Umb.PropertyEditorUi.TreePicker', values: [ { alias: 'startNode', @@ -247,8 +247,8 @@ export const data: Array = name: 'Date Picker', id: 'dt-datePicker', parentId: null, - propertyEditorAlias: 'Umbraco.DateTime', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.DatePicker', + editorAlias: 'Umbraco.DateTime', + editorUiAlias: 'Umb.PropertyEditorUi.DatePicker', values: [ { alias: 'format', @@ -269,7 +269,7 @@ export const data: Array = name: 'Date Picker With Time', id: 'dt-datePicker-time', parentId: null, - propertyEditorAlias: 'Umbraco.DateTime', + editorAlias: 'Umbraco.DateTime', values: [ { alias: 'format', @@ -286,8 +286,8 @@ export const data: Array = name: 'Time', id: 'dt-time', parentId: null, - propertyEditorAlias: 'Umbraco.DateTime', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.DatePicker', + editorAlias: 'Umbraco.DateTime', + editorUiAlias: 'Umb.PropertyEditorUi.DatePicker', values: [ { alias: 'format', @@ -304,8 +304,8 @@ export const data: Array = name: 'Email', id: 'dt-email', parentId: null, - propertyEditorAlias: 'Umbraco.EmailAddress', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.Email', + editorAlias: 'Umbraco.EmailAddress', + editorUiAlias: 'Umb.PropertyEditorUi.Email', values: [ { alias: 'inputMode', @@ -318,8 +318,8 @@ export const data: Array = name: 'Multiple Text String', id: 'dt-multipleTextString', parentId: null, - propertyEditorAlias: 'Umbraco.MultipleTextString', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.MultipleTextString', + editorAlias: 'Umbraco.MultipleTextString', + editorUiAlias: 'Umb.PropertyEditorUi.MultipleTextString', values: [ { alias: 'minNumber', @@ -336,8 +336,8 @@ export const data: Array = name: 'Dropdown', id: 'dt-dropdown', parentId: null, - propertyEditorAlias: 'Umbraco.DropDown.Flexible', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.Dropdown', + editorAlias: 'Umbraco.DropDown.Flexible', + editorUiAlias: 'Umb.PropertyEditorUi.Dropdown', values: [ { alias: 'multiple', @@ -358,8 +358,8 @@ export const data: Array = name: 'Slider', id: 'dt-slider', parentId: null, - propertyEditorAlias: 'Umbraco.Slider', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.Slider', + editorAlias: 'Umbraco.Slider', + editorUiAlias: 'Umb.PropertyEditorUi.Slider', values: [ { alias: 'enableRange', @@ -392,8 +392,8 @@ export const data: Array = name: 'Toggle', id: 'dt-toggle', parentId: null, - propertyEditorAlias: 'Umbraco.TrueFalse', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', + editorAlias: 'Umbraco.TrueFalse', + editorUiAlias: 'Umb.PropertyEditorUi.Toggle', values: [ { alias: 'default', @@ -418,8 +418,8 @@ export const data: Array = name: 'Tags', id: 'dt-tags', parentId: null, - propertyEditorAlias: 'Umbraco.Tags', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.Tags', + editorAlias: 'Umbraco.Tags', + editorUiAlias: 'Umb.PropertyEditorUi.Tags', values: [ { alias: 'group', @@ -436,8 +436,8 @@ export const data: Array = name: 'Markdown Editor', id: 'dt-markdownEditor', parentId: null, - propertyEditorAlias: 'Umbraco.MarkdownEditor', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.MarkdownEditor', + editorAlias: 'Umbraco.MarkdownEditor', + editorUiAlias: 'Umb.PropertyEditorUi.MarkdownEditor', values: [], }, { @@ -445,8 +445,8 @@ export const data: Array = name: 'Radio Button List', id: 'dt-radioButtonList', parentId: null, - propertyEditorAlias: 'Umbraco.RadioButtonList', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.RadioButtonList', + editorAlias: 'Umbraco.RadioButtonList', + editorUiAlias: 'Umb.PropertyEditorUi.RadioButtonList', values: [ { alias: 'items', @@ -463,8 +463,8 @@ export const data: Array = name: 'Checkbox List', id: 'dt-checkboxList', parentId: null, - propertyEditorAlias: 'Umbraco.CheckboxList', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.CheckboxList', + editorAlias: 'Umbraco.CheckboxList', + editorUiAlias: 'Umb.PropertyEditorUi.CheckboxList', values: [ { alias: 'items', @@ -481,8 +481,8 @@ export const data: Array = name: 'Block List', id: 'dt-blockList', parentId: null, - propertyEditorAlias: 'Umbraco.BlockList', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.BlockList', + editorAlias: 'Umbraco.BlockList', + editorUiAlias: 'Umb.PropertyEditorUi.BlockList', values: [], }, { @@ -490,8 +490,8 @@ export const data: Array = name: 'Media Picker', id: 'dt-mediaPicker', parentId: null, - propertyEditorAlias: 'Umbraco.MediaPicker3', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.MediaPicker', + editorAlias: 'Umbraco.MediaPicker3', + editorUiAlias: 'Umb.PropertyEditorUi.MediaPicker', values: [], }, { @@ -499,8 +499,8 @@ export const data: Array = name: 'Image Cropper', id: 'dt-imageCropper', parentId: null, - propertyEditorAlias: 'Umbraco.ImageCropper', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.ImageCropper', + editorAlias: 'Umbraco.ImageCropper', + editorUiAlias: 'Umb.PropertyEditorUi.ImageCropper', values: [ { alias: 'crops', @@ -529,8 +529,8 @@ export const data: Array = name: 'Upload Field', id: 'dt-uploadField', parentId: null, - propertyEditorAlias: 'Umbraco.UploadField', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.UploadField', + editorAlias: 'Umbraco.UploadField', + editorUiAlias: 'Umb.PropertyEditorUi.UploadField', values: [ { alias: 'fileExtensions', @@ -547,8 +547,8 @@ export const data: Array = name: 'Block Grid', id: 'dt-blockGrid', parentId: null, - propertyEditorAlias: 'Umbraco.BlockGrid', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.BlockGrid', + editorAlias: 'Umbraco.BlockGrid', + editorUiAlias: 'Umb.PropertyEditorUi.BlockGrid', values: [], }, { @@ -556,8 +556,8 @@ export const data: Array = name: 'Collection View', id: 'dt-collectionView', parentId: null, - propertyEditorAlias: 'Umbraco.ListView', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.CollectionView', + editorAlias: 'Umbraco.ListView', + editorUiAlias: 'Umb.PropertyEditorUi.CollectionView', values: [], }, { @@ -565,8 +565,8 @@ export const data: Array = name: 'Icon Picker', id: 'dt-iconPicker', parentId: null, - propertyEditorAlias: 'Umbraco.IconPicker', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.IconPicker', + editorAlias: 'Umbraco.IconPicker', + editorUiAlias: 'Umb.PropertyEditorUi.IconPicker', values: [], }, { @@ -574,8 +574,8 @@ export const data: Array = name: 'Rich Text Editor', id: 'dt-richTextEditor', parentId: null, - propertyEditorAlias: 'Umbraco.RichText', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.TinyMCE', + editorAlias: 'Umbraco.RichText', + editorUiAlias: 'Umb.PropertyEditorUi.TinyMCE', values: [ { alias: 'hideLabel', @@ -652,8 +652,8 @@ export const data: Array = name: 'Label', id: 'dt-label', parentId: null, - propertyEditorAlias: 'Umbraco.Label', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.Label', + editorAlias: 'Umbraco.Label', + editorUiAlias: 'Umb.PropertyEditorUi.Label', values: [], }, { @@ -661,8 +661,8 @@ export const data: Array = name: 'Integer', id: 'dt-integer', parentId: null, - propertyEditorAlias: 'Umbraco.Integer', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.Integer', + editorAlias: 'Umbraco.Integer', + editorUiAlias: 'Umb.PropertyEditorUi.Integer', values: [], }, { @@ -670,8 +670,8 @@ export const data: Array = name: 'Decimal', id: 'dt-decimal', parentId: null, - propertyEditorAlias: 'Umbraco.Decimal', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.Decimal', + editorAlias: 'Umbraco.Decimal', + editorUiAlias: 'Umb.PropertyEditorUi.Decimal', values: [ { alias: 'step', @@ -684,8 +684,8 @@ export const data: Array = name: 'User Picker', id: 'dt-userPicker', parentId: null, - propertyEditorAlias: 'Umbraco.UserPicker', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.UserPicker', + editorAlias: 'Umbraco.UserPicker', + editorUiAlias: 'Umb.PropertyEditorUi.UserPicker', values: [], }, { @@ -693,8 +693,8 @@ export const data: Array = name: 'Member Picker', id: 'dt-memberPicker', parentId: null, - propertyEditorAlias: 'Umbraco.MemberPicker', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.MemberPicker', + editorAlias: 'Umbraco.MemberPicker', + editorUiAlias: 'Umb.PropertyEditorUi.MemberPicker', values: [], }, { @@ -702,8 +702,8 @@ export const data: Array = name: 'Member Group Picker', id: 'dt-memberGroupPicker', parentId: null, - propertyEditorAlias: 'Umbraco.MemberGroupPicker', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.MemberGroupPicker', + editorAlias: 'Umbraco.MemberGroupPicker', + editorUiAlias: 'Umb.PropertyEditorUi.MemberGroupPicker', values: [], }, { @@ -711,8 +711,17 @@ export const data: Array = name: 'Data Type in folder', id: 'dt-data-type-in-folder', parentId: 'dt-folder2', - propertyEditorAlias: 'Umbraco.MemberGroupPicker', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.MemberGroupPicker', + editorAlias: 'Umbraco.MemberGroupPicker', + editorUiAlias: 'Umb.PropertyEditorUi.MemberGroupPicker', + values: [], + }, + { + type: 'data-type', + name: 'Static File Picker', + id: 'dt-staticFilePicker', + parentId: null, + editorAlias: 'Umbraco.Label', + editorUiAlias: 'Umb.PropertyEditorUi.StaticFilePicker', values: [], }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts index da568fa559..3343666da2 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts @@ -625,6 +625,26 @@ export const data: Array = [ labelOnTop: false, }, }, + { + id: '33', + containerId: 'all-properties-group-key', + alias: 'staticFilePicker', + name: 'Static File Picker', + description: '', + dataTypeId: 'dt-staticFilePicker', + variesByCulture: false, + variesBySegment: false, + sortOrder: 32, + validation: { + mandatory: true, + mandatoryMessage: null, + regEx: null, + regExMessage: null, + }, + appearance: { + labelOnTop: false, + }, + }, ], containers: [ { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/scripts.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/scripts.data.ts index 1b155901e0..e0b88086fd 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/scripts.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/scripts.data.ts @@ -1,5 +1,4 @@ import { UmbData } from './data.js'; -import { UmbEntityData } from './entity.data.js'; import { createFileItemResponseModelBaseModel, createFileSystemTreeItem, createTextFileItem } from './utils.js'; import { CreatePathFolderRequestModel, @@ -53,7 +52,7 @@ export const data: Array = [ } return result; } - + console.log(makeid(5));`, }, { @@ -80,7 +79,7 @@ export const data: Array = [ content: `var my_arr = [4, '', 0, 10, 7, '', false, 10]; my_arr = my_arr.filter(Boolean); - + console.log(my_arr);`, }, { @@ -93,7 +92,7 @@ export const data: Array = [ const date = new Date(date_str); const full_day_name = date.toLocaleDateString('default', { weekday: 'long' }); // -> to get full day name e.g. Tuesday - + const short_day_name = date.toLocaleDateString('default', { weekday: 'short' }); console.log(short_day_name); // -> TO get the short day name e.g. Tue`, @@ -110,10 +109,10 @@ export const data: Array = [ "department": "IT", "project": "Inventory Manager" }; - + // Remove a property delete employee["project"]; - + console.log(employee);`, }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/static-file.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/static-file.data.ts new file mode 100644 index 0000000000..1c14154a0e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/static-file.data.ts @@ -0,0 +1,61 @@ +import { UmbData } from './data.js'; +import { createFileItemResponseModelBaseModel, createFileSystemTreeItem } from './utils.js'; +import { + FileSystemTreeItemPresentationModel, + PagedFileSystemTreeItemPresentationModel, + ScriptItemResponseModel, + StaticFileItemResponseModel, +} from '@umbraco-cms/backoffice/backend-api'; + +type StaticFileItem = StaticFileItemResponseModel & FileSystemTreeItemPresentationModel & { icon?: string }; + +export const data: Array = [ + { + path: 'some-file.js', + name: 'some-file', + icon: 'icon-document', + type: 'static-file', + hasChildren: false, + isFolder: false, + }, + { + path: 'another-file.js', + name: 'another-file', + icon: 'icon-document', + type: 'static-file', + hasChildren: false, + isFolder: false, + }, +]; + +class UmbStaticFileData extends UmbData { + constructor() { + super(data); + } + + getTreeRoot(): PagedFileSystemTreeItemPresentationModel { + const items = this.data.filter((item) => item.path?.includes('/') === false); + const treeItems = items.map((item) => createFileSystemTreeItem(item)); + const total = items.length; + return { items: treeItems, total }; + } + + getTreeItemChildren(parentPath: string): PagedFileSystemTreeItemPresentationModel { + const items = this.data.filter((item) => item.path?.startsWith(parentPath)); + const treeItems = items.map((item) => createFileSystemTreeItem(item)); + const total = items.length; + return { items: treeItems, total }; + } + + getTreeItem(paths: Array): Array { + const items = this.data.filter((item) => paths.includes(item.path ?? '')); + return items.map((item) => createFileSystemTreeItem(item)); + } + + getItem(paths: Array): Array { + const items = this.data.filter((item) => paths.includes(item.path ?? '')); + return items.map((item) => createFileItemResponseModelBaseModel(item)); + } +} + +export const umbStaticFileData = new UmbStaticFileData(); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/user-group/user-group.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/user-group/user-group.data.ts index 4072198b12..135bc8ff95 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/user-group/user-group.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/user-group/user-group.data.ts @@ -19,6 +19,9 @@ export const data: Array = [ sections: [], languages: [], hasAccessToAllLanguages: true, + documentRootAccess: true, + mediaRootAccess: true, + isSystemGroup: true, }, { id: 'user-group-editors-id', @@ -29,6 +32,9 @@ export const data: Array = [ sections: [], languages: [], hasAccessToAllLanguages: true, + documentRootAccess: true, + mediaRootAccess: true, + isSystemGroup: true, }, { id: 'user-group-sensitive-data-id', @@ -39,6 +45,9 @@ export const data: Array = [ sections: [], languages: [], hasAccessToAllLanguages: true, + documentRootAccess: true, + mediaRootAccess: true, + isSystemGroup: true, }, { id: 'user-group-translators-id', @@ -49,6 +58,9 @@ export const data: Array = [ sections: [], languages: [], hasAccessToAllLanguages: true, + documentRootAccess: true, + mediaRootAccess: true, + isSystemGroup: true, }, { id: 'user-group-writers-id', @@ -59,5 +71,8 @@ export const data: Array = [ sections: [], languages: [], hasAccessToAllLanguages: true, + documentRootAccess: true, + mediaRootAccess: true, + isSystemGroup: false, }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts index 5f575b49c3..210fa01636 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts @@ -79,9 +79,9 @@ export const createFileSystemTreeItem = (item: any): FileSystemTreeItemPresentat return { name: item.name, type: item.type, - hasChildren: item.hasChildren, + hasChildren: item.hasChildren ?? false, path: item.path, - isFolder: item.isFolder, + isFolder: item.isFolder ?? false, }; }; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file.handlers.ts new file mode 100644 index 0000000000..bd989512e1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file.handlers.ts @@ -0,0 +1,39 @@ +const { rest } = window.MockServiceWorker; +import { umbStaticFileData } from '../data/static-file.data.js'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; + +const treeHandlers = [ + rest.get(umbracoPath('/tree/static-file/root'), (req, res, ctx) => { + const response = umbStaticFileData.getTreeRoot(); + return res(ctx.status(200), ctx.json(response)); + }), + rest.get(umbracoPath('/tree/static-file/children'), (req, res, ctx) => { + const path = req.url.searchParams.get('path'); + if (!path) return; + + const response = umbStaticFileData.getTreeItemChildren(path); + return res(ctx.status(200), ctx.json(response)); + }), +]; + +const __treeHandlers = [ + rest.get(umbracoPath('/tree/static-file/item'), (req, res, ctx) => { + const paths = req.url.searchParams.getAll('paths'); + if (!paths) return; + + const items = umbStaticFileData.getTreeItem(paths); + return res(ctx.status(200), ctx.json(items)); + }), +]; + +const itemHandlers = [ + rest.get(umbracoPath('/static-file/item'), (req, res, ctx) => { + const paths = req.url.searchParams.getAll('paths'); + if (!paths) return; + + const items = umbStaticFileData.getTreeItem(paths); + return res(ctx.status(200), ctx.json(items)); + }), +]; + +export const handlers = [...treeHandlers, ...itemHandlers]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts index b0b7abe0c5..22ebd381df 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts @@ -554,7 +554,7 @@ export class UmbInputMarkdownElement extends FormControlMixin(UmbLitElement) { } renderPreview(markdown: string) { - const markdownAsHtml = marked.parse(markdown); + const markdownAsHtml = marked.parse(markdown) as string; const sanitizedHtml = markdownAsHtml ? DOMPurify.sanitize(markdownAsHtml) : ''; return html` ${unsafeHTML(sanitizedHtml)} `; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string.element.ts index 6539ef3229..88a9c656f2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string.element.ts @@ -3,6 +3,7 @@ import { css, html, nothing, repeat, customElement, property, state } from '@umb import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbInputEvent, UmbChangeEvent, UmbDeleteEvent } from '@umbraco-cms/backoffice/event'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; export type MultipleTextStringValue = Array; @@ -10,11 +11,43 @@ export interface MultipleTextStringValueItem { value: string; } +const SORTER_CONFIG: UmbSorterConfig = { + compareElementToModel: (element: HTMLElement, model: MultipleTextStringValueItem) => { + return element.getAttribute('data-sort-entry-id') === model.value; + }, + querySelectModelToElement: (container: HTMLElement, modelEntry: MultipleTextStringValueItem) => { + return container.querySelector('data-sort-entry-id=[' + modelEntry.value + ']'); + }, + identifier: 'Umb.SorterIdentifier.ColorEditor', + itemSelector: 'umb-input-multiple-text-string-item', + containerSelector: '#sorter-wrapper', +}; + /** * @element umb-input-multiple-text-string */ @customElement('umb-input-multiple-text-string') export class UmbInputMultipleTextStringElement extends FormControlMixin(UmbLitElement) { + #prevalueSorter = new UmbSorterController(this, { + ...SORTER_CONFIG, + + performItemInsert: (args) => { + const frozenArray = [...this.items]; + const indexToMove = frozenArray.findIndex((x) => x.value === args.item.value); + + frozenArray.splice(indexToMove, 1); + frozenArray.splice(args.newIndex, 0, args.item); + this.items = frozenArray; + + this.dispatchEvent(new UmbChangeEvent()); + + return true; + }, + performItemRemove: (args) => { + return true; + }, + }); + /** * This is a minimum amount of selected items in this input. * @type {number} @@ -106,6 +139,7 @@ export class UmbInputMultipleTextStringElement extends FormControlMixin(UmbLitEl // TODO: when we have a way to overwrite the missing value validator we can remove this this.value = items?.length > 0 ? 'some value' : ''; this._items = items ?? []; + this.#prevalueSorter.setModel(this.items); } // TODO: Some inputs might not have a value that is either FormDataEntryValue or FormData. @@ -156,7 +190,8 @@ export class UmbInputMultipleTextStringElement extends FormControlMixin(UmbLitEl } render() { - return html` ${this.#renderItems()} ${this.#renderAddButton()} `; + return html`
${this.#renderItems()}
+ ${this.#renderAddButton()} `; } #renderItems() { @@ -168,6 +203,7 @@ export class UmbInputMultipleTextStringElement extends FormControlMixin(UmbLitEl html` this.#onInput(event, index)} @delete="${(event: UmbDeleteEvent) => this.#deleteItem(event, index)}" ?disabled=${this.disabled} @@ -197,6 +233,18 @@ export class UmbInputMultipleTextStringElement extends FormControlMixin(UmbLitEl #action { display: block; } + + .--umb-sorter-placeholder { + position: relative; + visibility: hidden; + } + .--umb-sorter-placeholder::after { + content: ''; + position: absolute; + inset: 0px; + border-radius: var(--uui-border-radius); + border: 1px dashed var(--uui-color-divider-emphasis); + } `, ]; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts index 0da9b9be76..d20f934b85 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts @@ -76,7 +76,7 @@ export class UmbDataTypePickerFlowModalElement extends UmbModalBaseElement< this._createDataTypeModal = new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL) .addAdditionalPath(':uiAlias') .onSetup((params) => { - return { data: { entityType: 'data-type', preset: { propertyEditorUiAlias: params.uiAlias } } }; + return { data: { entityType: 'data-type', preset: { editorUiAlias: params.uiAlias } } }; }) .onSubmit((value) => { this._select(value?.unique); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.server.data-source.ts index 628747212a..948cb77c1b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.server.data-source.ts @@ -63,13 +63,13 @@ export class UmbDataTypeServerDataSource implements UmbDetailDataSource, }; @@ -92,8 +92,8 @@ export class UmbDataTypeServerDataSource implements UmbDetailDataSource new UmbDataTypeWorkspaceEditorElement(); private _routes: UmbRoute[] = [ { path: 'create/:parentUnique', - component: () => this.#element, + component: this.#createElement, setup: (_component, info) => { const parentUnique = info.match.params.parentUnique === 'null' ? null : info.match.params.parentUnique; this.#workspaceContext.create(parentUnique); @@ -30,7 +29,7 @@ export class UmbDataTypeWorkspaceElement extends UmbLitElement { }, { path: 'edit/:unique', - component: () => this.#element, + component: this.#createElement, setup: (_component, info) => { const unique = info.match.params.unique; this.#workspaceContext.load(unique); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts index be3d5ed375..e5a3958809 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts @@ -126,6 +126,10 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement< this.updateValue({ alias: this._aliasLocked ? this._originalPropertyData.alias : alias }); } + #onDescriptionChange(event: UUIInputEvent) { + this.updateValue({ description: event.target.value.toString() }); + } + #onDataTypeIdChange(event: UUIInputEvent) { const dataTypeId = event.target.value.toString(); this.updateValue({ dataTypeId }); @@ -244,6 +248,7 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement< diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/section-picker/section-picker.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/section-picker/section-picker.test.ts index 71925784e1..2d34804b3a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/section-picker/section-picker.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/section-picker/section-picker.test.ts @@ -1,4 +1,4 @@ -import { expect, fixture, html } from '@open-wc/testing'; +//import { expect, fixture, html } from '@open-wc/testing'; //TODO: Test has been commented out while we figure out how to setup import maps for the test environment // import { UmbPickerLayoutSectionElement } from './picker-layout-section.element.js'; // import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; @@ -13,7 +13,9 @@ import { expect, fixture, html } from '@open-wc/testing'; // expect(element).to.be.instanceOf(UmbPickerLayoutSectionElement); // }); -// it('passes the a11y audit', async () => { -// await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); -// }); +// if ((window as any).__UMBRACO_TEST_RUN_A11Y_TEST) { +// it('passes the a11y audit', async () => { +// await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); +// }); +// } // }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/tree-picker/tree-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/tree-picker/tree-picker-modal.element.ts index afea971d3d..9cd0f507f9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/tree-picker/tree-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/tree-picker/tree-picker-modal.element.ts @@ -46,6 +46,7 @@ export class UmbTreePickerModalElement diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts index 85671dca66..b6302f9905 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts @@ -1,24 +1,32 @@ -export * from './modal-token.js'; -export * from './create-document-modal.token.js'; export * from './change-password-modal.token.js'; export * from './code-editor-modal.token.js'; export * from './confirm-modal.token.js'; export * from './create-dictionary-modal.token.js'; +export * from './create-document-modal.token.js'; export * from './create-user-modal.token.js'; export * from './create-user-success-modal.token.js'; export * from './current-user-modal.token.js'; +export * from './data-type-picker-flow-data-type-picker-modal.token.js'; +export * from './data-type-picker-flow-modal.token.js'; +export * from './data-type-picker-modal.token.js'; export * from './debug-modal.token.js'; +export * from './dictionary-item-picker-modal.token.js'; export * from './document-picker-modal.token.js'; export * from './document-type-picker-modal.token.js'; export * from './embedded-media-modal.token.js'; +export * from './entity-user-permission-settings-modal.token.js'; export * from './examine-fields-settings-modal.token.js'; export * from './export-dictionary-modal.token.js'; +export * from './folder-modal.token.js'; export * from './icon-picker-modal.token.js'; export * from './import-dictionary-modal.token.js'; export * from './language-picker-modal.token.js'; export * from './link-picker-modal.token.js'; export * from './media-tree-picker-modal.token.js'; export * from './media-type-picker-modal.token.js'; +export * from './modal-token.js'; +export * from './partial-view-picker-modal.token.js'; +export * from './permissions-modal.token.js'; export * from './property-editor-ui-picker-modal.token.js'; export * from './property-settings-modal.token.js'; export * from './search-modal.token.js'; @@ -27,12 +35,4 @@ export * from './template-modal.token.js'; export * from './template-picker-modal.token.js'; export * from './user-group-picker-modal.token.js'; export * from './user-picker-modal.token.js'; -export * from './folder-modal.token.js'; -export * from './partial-view-picker-modal.token.js'; -export * from './dictionary-item-picker-modal.token.js'; -export * from './data-type-picker-modal.token.js'; export * from './workspace-modal.token.js'; -export * from './data-type-picker-flow-modal.token.js'; -export * from './data-type-picker-flow-data-type-picker-modal.token.js'; -export * from './entity-user-permission-settings-modal.token.js'; -export * from './permissions-modal.token.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.CheckboxList.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.CheckboxList.ts index 5f3e5f6250..1999866902 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.CheckboxList.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.CheckboxList.ts @@ -3,7 +3,7 @@ import type { ManifestPropertyEditorSchema } from '@umbraco-cms/backoffice/exten export const manifest: ManifestPropertyEditorSchema = { type: 'propertyEditorSchema', name: 'Checkbox List', - alias: 'Umbraco.CheckBoxList', + alias: 'Umbraco.CheckboxList', meta: { defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.CheckboxList', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.context.ts index 2c89cfe9c5..4aff14c26d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.context.ts @@ -30,6 +30,8 @@ export class UmbTreeContextBase public repository?: UmbTreeRepository; public selectableFilter?: (item: TreeItemType) => boolean = () => true; + public filter?: (item: TreeItemType) => boolean = () => true; + public readonly selection = new UmbSelectionManager(this._host); #treeAlias?: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.element.ts index fc28079c8a..70e5ca72cb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.element.ts @@ -66,6 +66,14 @@ export class UmbTreeElement extends UmbLitElement { this.#treeContext.selectableFilter = newVal; } + @property() + get filter() { + return this.#treeContext.filter; + } + set filter(newVal) { + this.#treeContext.filter = newVal; + } + @state() private _items: UmbTreeItemModelBase[] = []; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace-editor.element.ts index f5beeac3db..c7e5f9a813 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace-editor.element.ts @@ -42,6 +42,7 @@ export class UmbDictionaryWorkspaceEditorElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.element.ts index be1cbe2647..a15eb00c35 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.element.ts @@ -9,13 +9,13 @@ import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/wor @customElement('umb-dictionary-workspace') export class UmbWorkspaceDictionaryElement extends UmbLitElement { #workspaceContext = new UmbDictionaryWorkspaceContext(this); - #element = new UmbDictionaryWorkspaceEditorElement(); + #createElement = () => new UmbDictionaryWorkspaceEditorElement(); @state() _routes: UmbRoute[] = [ { path: 'edit/:id', - component: () => this.#element, + component: this.#createElement, setup: (_component, info) => { const id = info.match.params.id; this.#workspaceContext.load(id); @@ -23,7 +23,7 @@ export class UmbWorkspaceDictionaryElement extends UmbLitElement { }, { path: 'create/:parentId', - component: () => this.#element, + component: this.#createElement, setup: async (_component, info) => { const parentId = info.match.params.parentId === 'null' ? null : info.match.params.parentId; await this.#workspaceContext.create(parentId); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/document-type-input/document-type-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/document-type-input/document-type-input.element.ts index 121f921f4a..5286fb0a32 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/document-type-input/document-type-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/document-type-input/document-type-input.element.ts @@ -1,5 +1,5 @@ import { UmbDocumentTypePickerContext } from './document-type-input.context.js'; -import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { DocumentTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -7,6 +7,15 @@ import { splitStringToArray } from '@umbraco-cms/backoffice/utils'; @customElement('umb-document-type-input') export class UmbDocumentTypeInputElement extends FormControlMixin(UmbLitElement) { + /** + * Selects the element types only + * @type {boolean} + * @attr + * @default false + */ + @property({ type: Boolean, attribute: 'element-types-only' }) + elementTypesOnly: boolean = false; + /** * This is a minimum amount of selected items in this input. * @type {number} @@ -102,19 +111,28 @@ export class UmbDocumentTypeInputElement extends FormControlMixin(UmbLitElement) return undefined; } + #openPicker() { + if (this.elementTypesOnly) { + this.#pickerContext.openPicker({ + hideTreeRoot: true, + pickableFilter: (x) => x.isElement!, + }); + } else { + this.#pickerContext.openPicker({ hideTreeRoot: true }); + } + } + render() { return html` ${this._items?.map((item) => this._renderItem(item))} - this.#pickerContext.openPicker()} label="open" - >Add + Add `; } private _renderItem(item: DocumentTypeItemResponseModel) { if (!item.id) return; return html` - + this.#pickerContext.requestRemoveItem(item.id!)} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.element.ts index a4fec66de5..45cf2526a7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.element.ts @@ -1,4 +1,5 @@ import { UmbDocumentTypeWorkspaceContext } from './document-type-workspace.context.js'; +import { UmbDocumentTypeWorkspaceEditorElement } from './document-type-workspace-editor.element.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbRoute } from '@umbraco-cms/backoffice/router'; @@ -8,12 +9,13 @@ import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/wor @customElement('umb-document-type-workspace') export class UmbDocumentTypeWorkspaceElement extends UmbLitElement { #workspaceContext = new UmbDocumentTypeWorkspaceContext(this); + #createElement = () => new UmbDocumentTypeWorkspaceEditorElement(); @state() _routes: UmbRoute[] = [ { path: 'create/:parentId', - component: import('./document-type-workspace-editor.element.js'), + component: this.#createElement, setup: (_component, info) => { const parentId = info.match.params.parentId === 'null' ? null : info.match.params.parentId; this.#workspaceContext.create(parentId); @@ -27,7 +29,7 @@ export class UmbDocumentTypeWorkspaceElement extends UmbLitElement { }, { path: 'edit/:id', - component: import('./document-type-workspace-editor.element.js'), + component: this.#createElement, setup: (_component, info) => { this.removeControllerByAlias('_observeIsNew'); const id = info.match.params.id; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts index f4d1b837b8..15bbf3ad32 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts @@ -305,6 +305,11 @@ export class UmbDocumentTypeWorkspacePropertyElement extends UmbLitElement { ${this.localize.term('contentTypeEditor_displaySettingsLabelOnTop')} ` : nothing} + ${this.property.validation.mandatory === true + ? html` + * ${this.localize.term('general_mandatory')} + ` + : nothing} ` : nothing; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts index bcda0f288e..2c5ee32c9e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts @@ -60,6 +60,7 @@ export class UmbDocumentTypeWorkspaceViewStructureElement extends UmbLitElement
- From: - { - (e.target as HTMLInputElement).showPicker(); - }} - - id="start-date" - type="date" - label="From" - .max=${this.#logViewerContext?.today ?? ''} - .value=${this._startDate}> - -
-
- To: - { - (e.target as HTMLInputElement).showPicker(); - }} - id="end-date" - type="date" - label="To" - .min=${this._startDate} - .max=${this.#logViewerContext?.today ?? ''} - .value=${this._endDate}> - -
- `; +
+ From: + { + (e.target as HTMLInputElement).showPicker(); + }} + id="start-date" + type="date" + label="From" + .max=${this.#logViewerContext?.today ?? ''} + .value=${this._startDate} /> +
+
+ To: + { + (e.target as HTMLInputElement).showPicker(); + }} + id="end-date" + type="date" + label="To" + .min=${this._startDate} + .max=${this.#logViewerContext?.today ?? ''} + .value=${this._endDate} /> +
+ `; } static styles = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer.context.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer.context.ts index 5824382518..3bb56112d7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer.context.ts @@ -134,17 +134,12 @@ export class UmbLogViewerWorkspaceContext extends UmbBaseController implements U } this.setLogLevelsFilter(validLogLevels); - const dateRange: Partial = {}; + const dateRange: LogViewerDateRange = this.getDateRange() as LogViewerDateRange; - if (searchQuery.startDate) { - dateRange.startDate = searchQuery.startDate; - } - - if (searchQuery.endDate) { - dateRange.endDate = searchQuery.endDate; - } - - this.setDateRange(dateRange); + this.setDateRange({ + startDate: searchQuery.startDate || dateRange.startDate, + endDate: searchQuery.endDate || dateRange.endDate, + }); this.setCurrentPage(searchQuery.page ? Number(searchQuery.page) : 1); @@ -169,6 +164,10 @@ export class UmbLogViewerWorkspaceContext extends UmbBaseController implements U this.getMessageTemplates(0, 10); } + getDateRange() { + return this.#dateRange.getValue(); + } + async getSavedSearches() { const { data } = await this.#repository.getSavedSearches({ skip: 0, take: 100 }); if (data) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-message-templates-overview.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-message-templates-overview.element.ts index 8064a1f091..d8d63e3f8c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-message-templates-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-message-templates-overview.element.ts @@ -37,7 +37,7 @@ export class UmbLogViewerMessageTemplatesOverviewElement extends UmbLitElement { + href=${`section/settings/workspace/logviewer/view/search/?lq=${searchListItem.query}`}> ${searchListItem.name} `; @@ -59,7 +59,7 @@ export class UmbLogViewerMessageTemplatesOverviewElement extends UmbLitElement { html` ${template.messageTemplate} ${template.count} diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/log-overview-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/log-overview-view.element.ts index f0f66462d7..9c5babed5a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/log-overview-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/log-overview-view.element.ts @@ -7,7 +7,7 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-log-viewer-overview-view') export class UmbLogViewerOverviewViewElement extends UmbLitElement { @state() - private _errorCount = 0; + private _errorCount?: number; @state() private _logLevelCount: LogLevelCountsReponseModel | null = null; @@ -30,7 +30,7 @@ export class UmbLogViewerOverviewViewElement extends UmbLitElement { if (!this.#logViewerContext) return; this.observe(this.#logViewerContext.logCount, (logLevelCount) => { - this._errorCount = logLevelCount?.error ?? 0; + this._errorCount = logLevelCount?.error; }); } @@ -52,11 +52,13 @@ export class UmbLogViewerOverviewViewElement extends UmbLitElement { -

${this._errorCount}

+

+ ${this._errorCount === undefined ? html`` : this._errorCount} +

+
diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-message.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-message.element.ts index 6eb6fb9b9b..de30d985da 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-message.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-message.element.ts @@ -170,7 +170,9 @@ export class UmbLogViewerMessageElement extends UmbLitElement { look="secondary" label="Find logs with ${property.name}" title="Find logs with ${property.name}" - href=${`section/settings/workspace/logviewer/search/?${this._findLogsWithProperty(property)}`}> + href=${`section/settings/workspace/logviewer/view/search/?${this._findLogsWithProperty( + property, + )}`}> ` : ''} diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-messages-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-messages-list.element.ts index 24514ffe97..2449327280 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-messages-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-messages-list.element.ts @@ -88,41 +88,46 @@ export class UmbLogViewerMessagesListElement extends UmbLitElement { .exception=${log.exception ?? ''} .messageTemplate=${log.messageTemplate ?? ''}>`, )}` - : html` + : html` + Sorry, we cannot find what you are looking for. - `}`; + + `}`; } render() { // TODO: the table should scroll instead of the whole main div - return html` - - - ${this._canShowLogs - ? html`` - : html``} - + ${this._canShowLogs + ? html`` + : html``} `; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts index bb154f5629..8d63fbb260 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts @@ -1,4 +1,4 @@ -import { UMB_MEDIA_TYPE_DETAIL_REPOSITORY_ALIAS } from '../../../repository/index.js'; +import { MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS } from '../../../repository/index.js'; import { UmbMediaTypeCreateOptionsModalData } from './index.js'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @@ -31,7 +31,8 @@ export class UmbDataTypeCreateOptionsModalElement extends UmbLitElement { event.stopPropagation(); const folderModalHandler = this.#modalContext?.open(UMB_FOLDER_MODAL, { data: { - repositoryAlias: UMB_MEDIA_TYPE_DETAIL_REPOSITORY_ALIAS, + repositoryAlias: MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS, + parentUnique: this.data?.parentKey, }, }); folderModalHandler?.onSubmit().then(() => this.modalContext?.submit()); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/index.ts new file mode 100644 index 0000000000..9f104e5a13 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/index.ts @@ -0,0 +1,2 @@ +export { UmbMediaTypeFolderRepository } from './media-type-folder.repository.js'; +export { UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS as MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS } from './manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/manifests.ts new file mode 100644 index 0000000000..3c5228286d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/manifests.ts @@ -0,0 +1,13 @@ +import { UmbMediaTypeFolderRepository } from './media-type-folder.repository.js'; +import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; + +export const UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS = 'Umb.Repository.MediaType.Folder'; + +const folderRepository: ManifestRepository = { + type: 'repository', + alias: UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS, + name: 'Media Type Folder Repository', + api: UmbMediaTypeFolderRepository, +}; + +export const manifests = [folderRepository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/media-type-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/media-type-folder.repository.ts new file mode 100644 index 0000000000..61c1dcb6a1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/media-type-folder.repository.ts @@ -0,0 +1,89 @@ +import { createFolderTreeItem } from '../utils.js'; +import { UMB_MEDIA_TYPE_TREE_STORE_CONTEXT, UmbMediaTypeTreeStore } from '../../tree/media-type-tree.store.js'; +import { UmbMediaTypeFolderServerDataSource } from './media-type-folder.server.data.js'; +import { + type UmbFolderRepository, + type UmbFolderDataSource, + UmbRepositoryBase, +} from '@umbraco-cms/backoffice/repository'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { CreateFolderRequestModel, FolderModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import { UMB_NOTIFICATION_CONTEXT_TOKEN, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +export class UmbMediaTypeFolderRepository extends UmbRepositoryBase implements UmbFolderRepository { + #init: Promise; + #folderSource: UmbFolderDataSource; + #treeStore?: UmbMediaTypeTreeStore; + #notificationContext?: UmbNotificationContext; + + constructor(host: UmbControllerHost) { + super(host); + this.#folderSource = new UmbMediaTypeFolderServerDataSource(this); + + this.#init = Promise.all([ + this.consumeContext(UMB_MEDIA_TYPE_TREE_STORE_CONTEXT, (instance) => { + this.#treeStore = instance; + }).asPromise(), + + this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.#notificationContext = instance; + }).asPromise(), + ]); + } + + async createFolderScaffold(parentId: string | null) { + if (parentId === undefined) throw new Error('Parent id is missing'); + await this.#init; + return this.#folderSource.createScaffold(parentId); + } + + // TODO: temp create type until backend is ready. Remove the id addition when new types are generated. + async createFolder(folderRequest: CreateFolderRequestModel) { + if (!folderRequest) throw new Error('folder request is missing'); + await this.#init; + + const { error } = await this.#folderSource.create(folderRequest); + + if (!error) { + // TODO: We need to push a new item to the tree store to update the tree. How do we want to create the tree items? + const folderTreeItem = createFolderTreeItem(folderRequest); + this.#treeStore!.append(folderTreeItem); + } + + return { error }; + } + + async deleteFolder(id: string) { + if (!id) throw new Error('Key is missing'); + await this.#init; + + const { error } = await this.#folderSource.delete(id); + + if (!error) { + this.#treeStore!.removeItem(id); + } + + return { error }; + } + + async updateFolder(id: string, folder: FolderModelBaseModel) { + if (!id) throw new Error('Key is missing'); + if (!folder) throw new Error('Folder data is missing'); + await this.#init; + + const { error } = await this.#folderSource.update(id, folder); + + if (!error) { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + this.#treeStore!.updateItem(id, { name: folder.name }); + } + + return { error }; + } + + async requestFolder(id: string) { + if (!id) throw new Error('Key is missing'); + await this.#init; + return await this.#folderSource.read(id); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/media-type-folder.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/media-type-folder.server.data.ts new file mode 100644 index 0000000000..ac9e91ec0c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/media-type-folder.server.data.ts @@ -0,0 +1,111 @@ +import { UmbId } from '@umbraco-cms/backoffice/id'; +import { UmbFolderDataSource } from '@umbraco-cms/backoffice/repository'; +import { + MediaTypeResource, + FolderResponseModel, + CreateFolderRequestModel, + FolderModelBaseModel, +} from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +/** + * A data source for a Data Type folder that fetches data from the server + * @export + * @class UmbMediaTypeFolderServerDataSource + * @implements {RepositoryDetailDataSource} + */ +export class UmbMediaTypeFolderServerDataSource implements UmbFolderDataSource { + #host: UmbControllerHost; + + /** + * Creates an instance of UmbMediaTypeFolderServerDataSource. + * @param {UmbControllerHost} host + * @memberof UmbMediaTypeFolderServerDataSource + */ + constructor(host: UmbControllerHost) { + this.#host = host; + } + + /** + * Creates a Data Type folder with the given id from the server + * @param {string} parentId + * @return {*} + * @memberof UmbMediaTypeFolderServerDataSource + */ + async createScaffold(parentId: string | null) { + const scaffold: FolderResponseModel = { + name: '', + id: UmbId.new(), + parentId, + }; + + return { data: scaffold }; + } + + /** + * Fetches a Data Type folder with the given id from the server + * @param {string} id + * @return {*} + * @memberof UmbMediaTypeFolderServerDataSource + */ + async read(id: string) { + if (!id) throw new Error('Key is missing'); + return tryExecuteAndNotify( + this.#host, + MediaTypeResource.getMediaTypeFolderById({ + id: id, + }), + ); + } + + /** + * Inserts a new Data Type folder on the server + * @param {folder} folder + * @return {*} + * @memberof UmbMediaTypeFolderServerDataSource + */ + async create(folder: CreateFolderRequestModel) { + if (!folder) throw new Error('Folder is missing'); + return tryExecuteAndNotify( + this.#host, + MediaTypeResource.postMediaTypeFolder({ + requestBody: folder, + }), + ); + } + + /** + * Updates a Data Type folder on the server + * @param {folder} folder + * @return {*} + * @memberof UmbMediaTypeFolderServerDataSource + */ + async update(id: string, folder: FolderModelBaseModel) { + if (!id) throw new Error('Key is missing'); + if (!id) throw new Error('Folder data is missing'); + return tryExecuteAndNotify( + this.#host, + MediaTypeResource.putMediaTypeFolderById({ + id: id, + requestBody: folder, + }), + ); + } + + /** + * Deletes a Data Type folder with the given id on the server + * @param {string} id + * @return {*} + * @memberof UmbMediaTypeServerDataSource + */ + async delete(id: string) { + if (!id) throw new Error('Key is missing'); + return tryExecuteAndNotify( + this.#host, + MediaTypeResource.deleteMediaTypeFolderById({ + id: id, + }), + ); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/index.ts index 1f37e6d2ac..bc07bbbbd8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/index.ts @@ -1,2 +1,3 @@ export * from './item/index.js'; export * from './detail/index.js'; +export * from './folder/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/manifests.ts index bb35952020..168cc81b04 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/manifests.ts @@ -1,4 +1,5 @@ import { manifests as detailManifests } from './detail/manifests.js'; import { manifests as itemManifests } from './item/manifests.js'; +import { manifests as folderManifests } from './folder/manifests.js'; -export const manifests = [...detailManifests, ...itemManifests]; +export const manifests = [...detailManifests, ...itemManifests, ...folderManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/utils.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/utils.ts new file mode 100644 index 0000000000..c7eb49bad9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/utils.ts @@ -0,0 +1,17 @@ +import { CreateFolderRequestModel } from '@umbraco-cms/backoffice/backend-api'; + +export const createFolderTreeItem = (item: CreateFolderRequestModel) => { + if (!item) throw new Error('item is null or undefined'); + if (!item.id) throw new Error('item.id is null or undefined'); + + //TODO: change to Unique + return { + id: item.id!, + parentId: item.parentId!, + name: item.name!, + entityType: 'media-type-folder', + isFolder: true, + isContainer: false, + hasChildren: false, + }; +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.element.ts index 6986325317..be4bc069b6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.element.ts @@ -9,13 +9,13 @@ import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/wor @customElement('umb-media-type-workspace') export class UmbMediaTypeWorkspaceElement extends UmbLitElement { #workspaceContext = new UmbMediaTypeWorkspaceContext(this); - #element = new UmbMediaTypeWorkspaceEditorElement(); + #createElement = () => new UmbMediaTypeWorkspaceEditorElement(); @state() _routes: UmbRoute[] = [ { path: 'create/:parentId', - component: import('./media-type-workspace-editor.element.js'), + component: this.#createElement, setup: (_component, info) => { const parentId = info.match.params.parentId === 'null' ? null : info.match.params.parentId; this.#workspaceContext.create(parentId); @@ -29,7 +29,7 @@ export class UmbMediaTypeWorkspaceElement extends UmbLitElement { }, { path: 'edit/:id', - component: () => this.#element, + component: this.#createElement, setup: (_component, info) => { const id = info.match.params.id; this.#workspaceContext.load(id); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts index 925fdce958..6c11fbfd0a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts @@ -305,6 +305,11 @@ export class UmbMediaTypeWorkspacePropertyElement extends UmbLitElement { ${this.localize.term('contentTypeEditor_displaySettingsLabelOnTop')} ` : nothing} + ${this.property.validation.mandatory === true + ? html` + * ${this.localize.term('general_mandatory')} + ` + : nothing} ` : nothing; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.element.ts index 10c2fc5ecc..a05a4e39fa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.element.ts @@ -1,4 +1,5 @@ import { type UmbMediaWorkspaceContext } from './media-workspace.context.js'; +import { UmbMediaWorkspaceEditorElement } from './media-workspace-editor.element.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; @@ -10,6 +11,7 @@ import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/wor @customElement('umb-media-workspace') export class UmbMediaWorkspaceElement extends UmbLitElement { #workspaceContext?: UmbMediaWorkspaceContext; + #createElement = () => new UmbMediaWorkspaceEditorElement(); @state() _routes: UmbRoute[] = []; @@ -28,7 +30,7 @@ export class UmbMediaWorkspaceElement extends UmbLitElement { this._routes = [ { path: 'create/:parentId', // /:mediaTypeKey - component: import('./media-workspace-editor.element.js'), + component: this.#createElement, setup: async (_component, info) => { // TODO: Remember the perspective of permissions here, we need to check if the user has access to create a document of this type under this parent? const parentId = info.match.params.parentId === 'null' ? null : info.match.params.parentId; @@ -44,7 +46,7 @@ export class UmbMediaWorkspaceElement extends UmbLitElement { }, { path: 'edit/:id', - component: import('./media-workspace-editor.element.js'), + component: this.#createElement, setup: (_component, info) => { const id = info.match.params.id; this.#workspaceContext!.load(id); diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.element.ts index ec112b5c54..84ff228bb3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.element.ts @@ -8,13 +8,13 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-member-group-workspace') export class UmbMemberGroupWorkspaceElement extends UmbLitElement { #workspaceContext = new UmbMemberGroupWorkspaceContext(this); - #element = new UmbMemberGroupWorkspaceEditorElement(); + #createElement = () => new UmbMemberGroupWorkspaceEditorElement(); @state() _routes: UmbRoute[] = [ { path: 'edit/:id', - component: () => this.#element, + component: this.#createElement, setup: (_component, info) => { const id = info.match.params.id; this.#workspaceContext.load(id); diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.element.ts index 095dc14a9a..97fc91b9e0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.element.ts @@ -9,13 +9,13 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; export class UmbMemberTypeWorkspaceElement extends UmbLitElement { public readonly workspaceAlias = 'Umb.Workspace.MemberType'; #workspaceContext = new UmbMemberTypeWorkspaceContext(this); - #element = new UmbMemberTypeWorkspaceEditorElement(); + #createElement = () => new UmbMemberTypeWorkspaceEditorElement(); @state() _routes: UmbRoute[] = [ { path: 'edit/:id', - component: () => this.#element, + component: this.#createElement, setup: (_component, info) => { const id = info.match.params.id; this.#workspaceContext.load(id); diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.element.ts index d6ea3d69db..4a18290680 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.element.ts @@ -8,13 +8,13 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-member-workspace') export class UmbMemberWorkspaceElement extends UmbLitElement { #workspaceContext = new UmbMemberWorkspaceContext(this); - #element = new UmbMemberWorkspaceEditorElement(); + #createElement = () => new UmbMemberWorkspaceEditorElement(); @state() _routes: UmbRoute[] = [ { path: 'edit/:id', - component: () => this.#element, + component: this.#createElement, setup: (_component, info) => { const id = info.match.params.id; this.#workspaceContext.load(id); diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace.element.ts index 184e3236bc..c11ba51260 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace.element.ts @@ -1,4 +1,5 @@ import { UmbLanguageWorkspaceContext } from './language-workspace.context.js'; +import { UmbLanguageWorkspaceEditorElement } from './language-workspace-editor.element.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; @@ -8,25 +9,13 @@ import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/wor @customElement('umb-language-workspace') export class UmbLanguageWorkspaceElement extends UmbLitElement { #languageWorkspaceContext = new UmbLanguageWorkspaceContext(this); - - /** - * Workspace editor element, lazy loaded but shared across several user flows. - */ - #editorElement?: HTMLElement; - - #getComponentElement = async () => { - if (this.#editorElement) { - return this.#editorElement; - } - this.#editorElement = new (await import('./language-workspace-editor.element.js')).default(); - return this.#editorElement; - }; + #createElement = () => new UmbLanguageWorkspaceEditorElement(); @state() _routes: UmbRoute[] = [ { path: 'edit/:isoCode', - component: this.#getComponentElement, + component: this.#createElement, setup: (_component, info) => { this.removeControllerByAlias('_observeIsNew'); this.#languageWorkspaceContext.load(info.match.params.isoCode); @@ -34,7 +23,7 @@ export class UmbLanguageWorkspaceElement extends UmbLitElement { }, { path: 'create', - component: this.#getComponentElement, + component: this.#createElement, setup: async () => { this.#languageWorkspaceContext.create(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.element.ts index 388ccd6dc4..7d5cb0c549 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.element.ts @@ -1,10 +1,10 @@ import { UmbRelationTypeWorkspaceContext } from './relation-type-workspace.context.js'; +import { UmbRelationTypeWorkspaceEditorElement } from './relation-type-workspace-editor.element.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbRouterSlotInitEvent, UmbRoute } from '@umbraco-cms/backoffice/router'; -import './relation-type-workspace-editor.element.js'; import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; /** @@ -14,17 +14,17 @@ import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/wor @customElement('umb-relation-type-workspace') export class UmbRelationTypeWorkspaceElement extends UmbLitElement { #workspaceContext = new UmbRelationTypeWorkspaceContext(this); + #createElement = () => new UmbRelationTypeWorkspaceEditorElement(); #routerPath? = ''; - #element = document.createElement('umb-relation-type-workspace-editor'); #key = ''; @state() _routes: UmbRoute[] = [ { path: 'create/:parentId', - component: () => this.#element, + component: this.#createElement, setup: (_component, info) => { const parentId = info.match.params.parentId; this.#workspaceContext.createScaffold(parentId); @@ -38,7 +38,7 @@ export class UmbRelationTypeWorkspaceElement extends UmbLitElement { }, { path: 'edit/:id', - component: () => this.#element, + component: this.#createElement, setup: (_component, info) => { const id = info.match.params.id; this.#workspaceContext.load(id); diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/components/index.ts new file mode 100644 index 0000000000..63173137e1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/components/index.ts @@ -0,0 +1 @@ +export * from './input-static-file/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/components/input-static-file/index.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/components/input-static-file/index.ts new file mode 100644 index 0000000000..866be0aa9c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/components/input-static-file/index.ts @@ -0,0 +1,2 @@ +export * from './input-static-file.context.js'; +export * from './input-static-file.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/components/input-static-file/input-static-file.context.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/components/input-static-file/input-static-file.context.ts new file mode 100644 index 0000000000..970b2285c3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/components/input-static-file/input-static-file.context.ts @@ -0,0 +1,11 @@ +import { UMB_STATIC_FILE_TREE_REPOSITORY_ALIAS } from '../../repository/index.js'; +import { UMB_STATIC_FILE_PICKER_MODAL } from '../../modals/index.js'; +import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { StaticFileItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; + +export class UmbStaticFilePickerContext extends UmbPickerInputContext { + constructor(host: UmbControllerHostElement) { + super(host, UMB_STATIC_FILE_TREE_REPOSITORY_ALIAS, UMB_STATIC_FILE_PICKER_MODAL); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/components/input-static-file/input-static-file.element.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/components/input-static-file/input-static-file.element.ts new file mode 100644 index 0000000000..7413dac1f9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/components/input-static-file/input-static-file.element.ts @@ -0,0 +1,151 @@ +import { UmbStaticFilePickerContext } from './input-static-file.context.js'; +import { css, html, customElement, property, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import type { StaticFileItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { splitStringToArray } from '@umbraco-cms/backoffice/utils'; + +@customElement('umb-input-static-file') +export class UmbInputStaticFileElement extends FormControlMixin(UmbLitElement) { + /** + * This is a minimum amount of selected files in this input. + * @type {number} + * @attr + * @default 0 + */ + @property({ type: Number }) + public get min(): number { + return this.#pickerContext.min; + } + public set min(value: number) { + this.#pickerContext.min = value; + } + + /** + * Min validation message. + * @type {boolean} + * @attr + * @default + */ + @property({ type: String, attribute: 'min-message' }) + minMessage = 'This field need more files'; + + /** + * This is a maximum amount of selected files in this input. + * @type {number} + * @attr + * @default Infinity + */ + @property({ type: Number }) + public get max(): number { + return this.#pickerContext.max; + } + public set max(value: number) { + this.#pickerContext.max = value; + } + + /** + * Max validation message. + * @type {boolean} + * @attr + * @default + */ + @property({ type: String, attribute: 'min-message' }) + maxMessage = 'This field exceeds the allowed amount of files'; + + public get selectedPaths(): Array { + return this.#pickerContext.getSelection(); + } + public set selectedPaths(paths: Array) { + this.#pickerContext.setSelection(paths); + } + + @property() + // get value is handled by super class. + public set value(pathsString: string) { + // Its with full purpose we don't call super.value, as thats being handled by the observation of the context selection. + this.selectedPaths = splitStringToArray(pathsString); + } + + @state() + private _items?: Array; + + #pickerContext = new UmbStaticFilePickerContext(this); + + constructor() { + super(); + + this.addValidator( + 'rangeUnderflow', + () => this.minMessage, + () => !!this.min && this.#pickerContext.getSelection().length < this.min, + ); + + this.addValidator( + 'rangeOverflow', + () => this.maxMessage, + () => !!this.max && this.#pickerContext.getSelection().length > this.max, + ); + + this.observe(this.#pickerContext.selection, (selection) => (super.value = selection.join(','))); + this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems)); + } + + protected getFormElement() { + return undefined; + } + + render() { + return html` + ${this._items + ? html` ${repeat( + this._items, + (item) => item.path, + (item) => this._renderItem(item), + )} + ` + : ''} + ${this.#renderAddButton()} + `; + } + + #renderAddButton() { + if (this.max > 0 && this.selectedPaths.length >= this.max) return; + return html` this.#pickerContext.openPicker()} + label=${this.localize.term('general_add')}>`; + } + + private _renderItem(item: StaticFileItemResponseModel) { + if (!item.path) return; + return html` + + + + this.#pickerContext.requestRemoveItem(item.path!)} label="Remove file ${item.name}" + >Remove + + + `; + } + + static styles = [ + css` + #add-button { + width: 100%; + } + `, + ]; +} + +export default UmbInputStaticFileElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-input-static-file': UmbInputStaticFileElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/components/input-static-file/input-static-file.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/components/input-static-file/input-static-file.stories.ts new file mode 100644 index 0000000000..97c87ef4ba --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/components/input-static-file/input-static-file.stories.ts @@ -0,0 +1,14 @@ +import { Meta, StoryObj } from '@storybook/web-components'; +import './input-static-file.element.js'; +import type { UmbInputStaticFileElement } from './input-static-file.element.js'; + +const meta: Meta = { + title: 'Components/Inputs/Static File', + component: 'umb-input-static-file', +}; + +export default meta; +type Story = StoryObj; +export const Overview: Story = { + args: {}, +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/components/input-static-file/input-static-file.test.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/components/input-static-file/input-static-file.test.ts new file mode 100644 index 0000000000..edd5aa531f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/components/input-static-file/input-static-file.test.ts @@ -0,0 +1,32 @@ +import { expect, fixture, html } from '@open-wc/testing'; +import { UmbInputStaticFileElement } from './input-static-file.element.js'; +import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; +describe('UmbInputStaticFileElement', () => { + let element: UmbInputStaticFileElement; + + beforeEach(async () => { + element = await fixture(html` `); + }); + + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbInputStaticFileElement); + }); + + if ((window as any).__UMBRACO_TEST_RUN_A11Y_TEST) { + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); + } + + describe('Public API', () => { + describe('properties', () => { + it('has a selectedPaths property', () => { + expect(element).to.have.property('selectedPaths').to.be.an.instanceOf(Array); + }); + + it('has a value property', () => { + expect(element).to.have.property('value'); + }); + }); + }); +}); diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/entity.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/entity.ts new file mode 100644 index 0000000000..7e7edeacfa --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/entity.ts @@ -0,0 +1,2 @@ +export const UMB_STATIC_FILE_ROOT_ENTITY_TYPE = 'static-file-root'; +export const UMB_STATIC_FILE_ENTITY_TYPE = 'static-file'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/index.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/index.ts new file mode 100644 index 0000000000..149f181b87 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/index.ts @@ -0,0 +1,3 @@ +export * from './components/index.js'; +export * from './repository/index.js'; +export * from './modals/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/manifests.ts new file mode 100644 index 0000000000..5c122cc776 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/manifests.ts @@ -0,0 +1,5 @@ +import { manifests as propertyEditorManifests } from './property-editors/manifests.js'; +import { manifests as repositoryManifests } from './repository/manifests.js'; +import { manifests as treeManifests } from './tree/manifests.js'; + +export const manifests = [...repositoryManifests, ...propertyEditorManifests, ...treeManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/modals/index.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/modals/index.ts new file mode 100644 index 0000000000..b7f25671d7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/modals/index.ts @@ -0,0 +1 @@ +export * from './static-file-picker-modal.token.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/modals/static-file-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/modals/static-file-picker-modal.token.ts new file mode 100644 index 0000000000..d671ae3cca --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/modals/static-file-picker-modal.token.ts @@ -0,0 +1,19 @@ +import { UMB_STATIC_FILE_TREE_ALIAS } from '@umbraco-cms/backoffice/static-file'; +import { StaticFileItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { UmbModalToken, UmbPickerModalValue, UmbTreePickerModalData } from '@umbraco-cms/backoffice/modal'; + +export type UmbStaticFilePickerModalData = UmbTreePickerModalData; +export type UmbStaticFilePickerModalValue = UmbPickerModalValue; + +export const UMB_STATIC_FILE_PICKER_MODAL = new UmbModalToken< + UmbStaticFilePickerModalData, + UmbStaticFilePickerModalValue +>('Umb.Modal.TreePicker', { + modal: { + type: 'sidebar', + size: 'small', + }, + data: { + treeAlias: UMB_STATIC_FILE_TREE_ALIAS, + }, +}); diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/property-editors/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/property-editors/manifests.ts new file mode 100644 index 0000000000..4093448ac6 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/property-editors/manifests.ts @@ -0,0 +1,3 @@ +import { manifest as staticFilePickerManifest } from './static-file-picker/manifests.js'; + +export const manifests = [staticFilePickerManifest]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/property-editors/static-file-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/property-editors/static-file-picker/manifests.ts new file mode 100644 index 0000000000..2872c7a6e3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/property-editors/static-file-picker/manifests.ts @@ -0,0 +1,13 @@ +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.StaticFilePicker', + name: 'Static File Picker Property Editor UI', + js: () => import('./property-editor-ui-static-file-picker.element.js'), + meta: { + label: 'Static File Picker', + icon: 'icon-document', + group: 'common', + }, +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/property-editors/static-file-picker/property-editor-ui-static-file-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/property-editors/static-file-picker/property-editor-ui-static-file-picker.element.ts new file mode 100644 index 0000000000..9da57b4691 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/property-editors/static-file-picker/property-editor-ui-static-file-picker.element.ts @@ -0,0 +1,58 @@ +import { UmbInputStaticFileElement } from '../../components/index.js'; +import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; +import '../../components/input-static-file/index.js'; + +@customElement('umb-property-editor-ui-static-file-picker') +export class UmbPropertyEditorUIStaticFilePickerElement extends UmbLitElement implements UmbPropertyEditorUiElement { + private _value: Array = []; + + @property({ type: Array }) + public get value(): Array { + return this._value; + } + public set value(value: Array) { + this._value = value || []; + } + + @property({ attribute: false }) + public set config(config: UmbPropertyEditorConfigCollection | undefined) { + const validationLimit = config?.find((x) => x.alias === 'validationLimit'); + + this._limitMin = (validationLimit?.value as any)?.min; + this._limitMax = (validationLimit?.value as any)?.max; + } + + @state() + private _limitMin?: number; + @state() + private _limitMax?: number; + + private _onChange(event: CustomEvent) { + this.value = (event.target as UmbInputStaticFileElement).selectedPaths; + this.dispatchEvent(new CustomEvent('property-value-change')); + } + + // TODO: Implement mandatory? + render() { + return html` + Add + `; + } +} + +export default UmbPropertyEditorUIStaticFilePickerElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-property-editor-ui-static-file-picker': UmbPropertyEditorUIStaticFilePickerElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/property-editors/static-file-picker/property-editor-ui-static-file-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/property-editors/static-file-picker/property-editor-ui-static-file-picker.stories.ts new file mode 100644 index 0000000000..c77875e502 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/property-editors/static-file-picker/property-editor-ui-static-file-picker.stories.ts @@ -0,0 +1,15 @@ +import { Meta, Story } from '@storybook/web-components'; +import type { UmbPropertyEditorUIStaticFilePickerElement } from './property-editor-ui-static-file-picker.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; + +import './property-editor-ui-static-file-picker.element.js'; + +export default { + title: 'Property Editor UIs/Static File Picker', + component: 'umb-property-editor-ui-static-file-picker', + id: 'umb-property-editor-ui-static-file-picker', +} as Meta; + +export const AAAOverview: Story = () => + html` `; +AAAOverview.storyName = 'Overview'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/index.ts new file mode 100644 index 0000000000..ef66c13c81 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/index.ts @@ -0,0 +1,6 @@ +export { UmbStaticFileTreeRepository } from './static-file-tree.repository.js'; +export { + UMB_STATIC_FILE_TREE_REPOSITORY_ALIAS, + UMB_STATIC_FILE_TREE_STORE_ALIAS, + UMB_STATIC_FILE_TREE_ALIAS, +} from './manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/manifests.ts new file mode 100644 index 0000000000..5465c1deec --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/manifests.ts @@ -0,0 +1,32 @@ +import { UmbStaticFileTreeRepository } from './static-file-tree.repository.js'; +import { UmbStaticFileTreeStore } from './static-file-tree.store.js'; +import type { ManifestRepository, ManifestTree, ManifestTreeStore } from '@umbraco-cms/backoffice/extension-registry'; + +export const UMB_STATIC_FILE_TREE_REPOSITORY_ALIAS = 'Umb.Repository.StaticFile.Tree'; +export const UMB_STATIC_FILE_TREE_STORE_ALIAS = 'Umb.Store.StaticFile.Tree'; +export const UMB_STATIC_FILE_TREE_ALIAS = 'Umb.Tree.StaticFile'; + +const treeRepository: ManifestRepository = { + type: 'repository', + alias: UMB_STATIC_FILE_TREE_REPOSITORY_ALIAS, + name: 'Static File Tree Repository', + api: UmbStaticFileTreeRepository, +}; + +const treeStore: ManifestTreeStore = { + type: 'treeStore', + alias: UMB_STATIC_FILE_TREE_STORE_ALIAS, + name: 'Static File Tree Store', + api: UmbStaticFileTreeStore, +}; + +const tree: ManifestTree = { + type: 'tree', + alias: UMB_STATIC_FILE_TREE_ALIAS, + name: 'Static File Tree', + meta: { + repositoryAlias: UMB_STATIC_FILE_TREE_REPOSITORY_ALIAS, + }, +}; + +export const manifests = [treeRepository, treeStore, tree]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/static-file-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/static-file-tree.repository.ts new file mode 100644 index 0000000000..0a1c246e50 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/static-file-tree.repository.ts @@ -0,0 +1,30 @@ +import { UMB_STATIC_FILE_ROOT_ENTITY_TYPE } from '../entity.js'; +import { UmbStaticFileTreeServerDataSource } from './static-file-tree.server.data-source.js'; +import { UmbStaticFileTreeItemModel, UmbStaticFileTreeRootModel } from './types.js'; +import { UMB_STATIC_FILE_TREE_STORE_CONTEXT } from './static-file-tree.store.js'; +import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; + +export class UmbStaticFileTreeRepository + extends UmbTreeRepositoryBase + implements UmbApi +{ + constructor(host: UmbControllerHost) { + super(host, UmbStaticFileTreeServerDataSource, UMB_STATIC_FILE_TREE_STORE_CONTEXT); + } + + async requestTreeRoot() { + const data = { + path: null, + entityType: UMB_STATIC_FILE_ROOT_ENTITY_TYPE, + name: 'StaticFiles', + icon: 'icon-folder', + hasChildren: true, + isContainer: false, + isFolder: true, + }; + + return { data }; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/static-file-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/static-file-tree.server.data-source.ts new file mode 100644 index 0000000000..46ef48166f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/static-file-tree.server.data-source.ts @@ -0,0 +1,54 @@ +import { UMB_STATIC_FILE_ENTITY_TYPE } from '../entity.js'; +import { UmbStaticFileTreeItemModel } from './types.js'; +import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; +import { StaticFileResource, type FileSystemTreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; + +/** + * A data source for the Static File tree that fetches data from the server + * @export + * @class UmbStaticFileTreeServerDataSource + * @implements {UmbTreeServerDataSourceBase} + */ +export class UmbStaticFileTreeServerDataSource extends UmbTreeServerDataSourceBase< + FileSystemTreeItemPresentationModel, + UmbStaticFileTreeItemModel +> { + /** + * Creates an instance of UmbStylesheetTreeServerDataSource. + * @param {UmbControllerHost} host + * @memberof UmbStylesheetTreeServerDataSource + */ + constructor(host: UmbControllerHost) { + super(host, { + getRootItems, + getChildrenOf, + mapper, + }); + } +} + +// eslint-disable-next-line local-rules/no-direct-api-import +const getRootItems = () => StaticFileResource.getTreeStaticFileRoot({}); + +const getChildrenOf = (parentUnique: string | null) => { + if (parentUnique === null) { + return getRootItems(); + } else { + // eslint-disable-next-line local-rules/no-direct-api-import + return StaticFileResource.getTreeStaticFileChildren({ + path: parentUnique, + }); + } +}; + +const mapper = (item: FileSystemTreeItemPresentationModel): UmbStaticFileTreeItemModel => { + return { + path: item.path, + name: item.name, + entityType: UMB_STATIC_FILE_ENTITY_TYPE, + isFolder: item.isFolder, + hasChildren: item.hasChildren, + isContainer: false, + }; +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/static-file-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/static-file-tree.store.ts new file mode 100644 index 0000000000..8289211f00 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/static-file-tree.store.ts @@ -0,0 +1,22 @@ +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UmbEntityTreeStore } from '@umbraco-cms/backoffice/tree'; + +/** + * @export + * @class UmbStaticFileTreeStore + * @extends {UmbStoreBase} + * @description - Tree Data Store for Static File Items + */ +export class UmbStaticFileTreeStore extends UmbEntityTreeStore { + /** + * Creates an instance of UmbStaticFileTreeStore. + * @param {UmbControllerHostElement} host + * @memberof UmbStaticFileTreeStore + */ + constructor(host: UmbControllerHostElement) { + super(host, UMB_STATIC_FILE_TREE_STORE_CONTEXT.toString()); + } +} + +export const UMB_STATIC_FILE_TREE_STORE_CONTEXT = new UmbContextToken('UmbStaticFileTreeStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/types.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/types.ts new file mode 100644 index 0000000000..186a906a23 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/types.ts @@ -0,0 +1,4 @@ +import type { UmbFileSystemTreeItemModel, UmbFileSystemTreeRootModel } from '@umbraco-cms/backoffice/tree'; + +export interface UmbStaticFileTreeItemModel extends UmbFileSystemTreeItemModel {} +export interface UmbStaticFileTreeRootModel extends UmbFileSystemTreeRootModel {} diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/manifests.ts new file mode 100644 index 0000000000..b9fa294c18 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/manifests.ts @@ -0,0 +1,14 @@ +import { UMB_STATIC_FILE_ENTITY_TYPE, UMB_STATIC_FILE_ROOT_ENTITY_TYPE } from '../entity.js'; +import type { ManifestTreeItem } from '@umbraco-cms/backoffice/extension-registry'; + +const treeItem: ManifestTreeItem = { + type: 'treeItem', + kind: 'fileSystem', + alias: 'Umb.TreeItem.StaticFile', + name: 'Static File Tree Item', + meta: { + entityTypes: [UMB_STATIC_FILE_ENTITY_TYPE, UMB_STATIC_FILE_ROOT_ENTITY_TYPE], + }, +}; + +export const manifests = [treeItem]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/umbraco-package.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/umbraco-package.ts new file mode 100644 index 0000000000..b0d4e476e9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/umbraco-package.ts @@ -0,0 +1,9 @@ +export const name = 'Umbraco.Core.StaticFileManagement'; +export const extensions = [ + { + name: 'Static File Management Bundle', + alias: 'Umb.Bundle.StaticFileManagement', + type: 'bundle', + js: () => import('./manifests.js'), + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts index 338cbfa693..b978d4e876 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts @@ -1,10 +1,10 @@ import { UmbPartialViewWorkspaceContext } from './partial-view-workspace.context.js'; +import { UmbPartialViewWorkspaceEditElement } from './partial-view-workspace-edit.element.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbRoute, IRoutingInfo, PageComponent } from '@umbraco-cms/backoffice/router'; -import './partial-view-workspace-edit.element.js'; import '../../components/insert-menu/templating-insert-menu.element.js'; import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; @@ -13,13 +13,13 @@ import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/wor export class UmbPartialViewWorkspaceElement extends UmbLitElement { #partialViewWorkspaceContext = new UmbPartialViewWorkspaceContext(this); - #element = document.createElement('umb-partial-view-workspace-edit'); + #createElement = () => new UmbPartialViewWorkspaceEditElement(); @state() _routes: UmbRoute[] = [ { path: 'create/:parentKey/:snippetName', - component: () => this.#element, + component: this.#createElement, setup: async (component: PageComponent, info: IRoutingInfo) => { const parentKey = info.match.params.parentKey; const decodePath = decodeURIComponent(parentKey); @@ -35,7 +35,7 @@ export class UmbPartialViewWorkspaceElement extends UmbLitElement { }, { path: 'edit/:key', - component: () => this.#element, + component: this.#createElement, setup: (component: PageComponent, info: IRoutingInfo) => { const key = info.match.params.key; const decodePath = decodeURIComponent(key).replace('-cshtml', '.cshtml'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts index c2d4e7a2b8..66f24fbf93 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts @@ -1,4 +1,5 @@ import { UmbScriptWorkspaceContext } from './script-workspace.context.js'; +import { UmbScriptWorkspaceEditElement } from './script-workspace-edit.element.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -8,11 +9,13 @@ import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/wor @customElement('umb-script-workspace') export class UmbScriptWorkspaceElement extends UmbLitElement { #workspaceContext = new UmbScriptWorkspaceContext(this); + #createElement = () => new UmbScriptWorkspaceEditElement(); + @state() _routes: UmbRoute[] = [ { path: 'create/:parentKey', - component: import('./script-workspace-edit.element.js'), + component: this.#createElement, setup: async (_component: PageComponent, info: IRoutingInfo) => { const parentKey = info.match.params.parentKey; const decodePath = decodeURIComponent(parentKey); @@ -27,7 +30,7 @@ export class UmbScriptWorkspaceElement extends UmbLitElement { }, { path: 'edit/:key', - component: import('./script-workspace-edit.element.js'), + component: this.#createElement, setup: (component: PageComponent, info: IRoutingInfo) => { const key = info.match.params.key; const decodePath = decodeURIComponent(key).replace('-js', '.js'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts index e596b0b69d..fbf4dd3ce4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts @@ -7,7 +7,7 @@ import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; * A data source for the Stylesheet tree that fetches data from the server * @export * @class UmbStylesheetTreeServerDataSource - * @implements {UmbTreeDataSource} + * @implements {UmbTreeServerDataSourceBase} */ export class UmbStylesheetTreeServerDataSource extends UmbTreeServerDataSourceBase< FileSystemTreeItemPresentationModel, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.element.ts index 1506091374..f325ae84d5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.element.ts @@ -1,4 +1,5 @@ import { UmbStylesheetWorkspaceContext } from './stylesheet-workspace.context.js'; +import { UmbStylesheetWorkspaceEditorElement } from './stylesheet-workspace-editor.element.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; @@ -9,12 +10,13 @@ import { decodeFilePath } from '@umbraco-cms/backoffice/utils'; @customElement('umb-stylesheet-workspace') export class UmbStylesheetWorkspaceElement extends UmbLitElement { #workspaceContext = new UmbStylesheetWorkspaceContext(this); + #createElement = () => new UmbStylesheetWorkspaceEditorElement(); @state() _routes: UmbRoute[] = [ { path: 'create/:path', - component: import('./stylesheet-workspace-editor.element.js'), + component: this.#createElement, setup: async (_component, info) => { const path = info.match.params.path === 'null' ? null : info.match.params.path; const serverPath = path === null ? null : decodeFilePath(path); @@ -30,7 +32,7 @@ export class UmbStylesheetWorkspaceElement extends UmbLitElement { }, { path: 'edit/:path', - component: import('./stylesheet-workspace-editor.element.js'), + component: this.#createElement, setup: (_component, info) => { this.removeControllerByAlias('_observeIsNew'); const path = info.match.params.path; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder-filter.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder-filter.element.ts index 659b618ac3..cc3739744d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder-filter.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder-filter.element.ts @@ -1,5 +1,14 @@ +import { localizeOperators, localizePropertyType } from './utils.js'; import { type UUIComboboxListElement } from '@umbraco-cms/backoffice/external/uui'; -import { PropertyValueMap, css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { + PropertyValueMap, + css, + html, + customElement, + property, + state, + ifDefined, +} from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { OperatorModel, @@ -73,20 +82,23 @@ export class UmbQueryBuilderFilterElement extends UmbLitElement { } private _renderOperatorsDropdown() { - return html` + if (!this.settings?.operators) return; + const operators = localizeOperators(this.settings?.operators, this.currentPropertyType); + + return html` ${this.filter?.operator ?? ''} - ${this.settings?.operators + ${operators ?.filter((operator) => this.currentPropertyType ? operator.applicableTypes?.includes(this.currentPropertyType) : true, ) .map( (operator) => - html`${operator.operator}`, - )} + html` + ${operator.operator} + `, + )} + `; } @@ -104,26 +116,35 @@ export class UmbQueryBuilderFilterElement extends UmbLitElement { } render() { + const properties = localizePropertyType(this.settings?.properties); return html` ${this.unremovable ? this.localize.term('template_where') : this.localize.term('template_and')} ${this.filter?.propertyAlias ?? ''} - ${this.settings?.properties?.map( + ${properties?.map( (property) => - html`${property.alias}`, + html` + ${property.alias} + `, )} ${this.filter?.propertyAlias ? this._renderOperatorsDropdown() : ''} ${this.filter?.operator ? this._renderConstraintValueInput() : ''} - + - + diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts index 5ca702e0c9..68b7d77bcf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts @@ -1,7 +1,8 @@ import { UmbTemplateRepository } from '../../repository/template.repository.js'; +import { localizePropertyType, localizeSort } from './utils.js'; import type { UmbQueryBuilderFilterElement } from './query-builder-filter.element.js'; import { UUIComboboxListElement } from '@umbraco-cms/backoffice/external/uui'; -import { css, html, customElement, state, query, queryAll } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, state, query, queryAll, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalBaseElement, UMB_DOCUMENT_PICKER_MODAL, @@ -198,27 +199,33 @@ export default class UmbChooseInsertTypeModalElement extends UmbModalBaseElement }; render() { + const properties = localizePropertyType(this._queryBuilderSettings?.properties); + const sort = localizeSort(this._queryRequest.sort); return html` - +
- I want + I want - ${this._queryRequest?.contentTypeAlias ?? 'all content'} + + ${this._queryRequest?.contentTypeAlias ?? this.localize.term('template_allContent')} + all content ${this._queryBuilderSettings?.contentTypeAliases?.map( (alias) => - html`content of type "${alias}"`, + html` + + content of type "${alias}" + + `, )} - from - ${this._selectedRootContentName} + from + + ${this._selectedRootContentName}
@@ -231,38 +238,48 @@ export default class UmbChooseInsertTypeModalElement extends UmbModalBaseElement @remove-filter=${this.#removeFilter}>
- ordered by + order by ${this._queryRequest.sort?.propertyAlias ?? ''} - ${this._queryBuilderSettings?.properties?.map( + ${properties?.map( (property) => - html`${property.alias}`, + html` + ${property.alias} + `, )} - + + - ${this._queryRequest.sort?.propertyAlias - ? html`${this._queryRequest.sort.direction ?? this._defaultSortDirection}` + ${sort?.propertyAlias + ? html` + + ${sort.direction ?? this._defaultSortDirection} + + ` : ''}
- ${this._templateQuery?.resultCount ?? 0} items returned, in ${this._templateQuery?.executionTime ?? 0} - ms + + ${this._templateQuery?.resultCount ?? 0} + items returned, in + ${this._templateQuery?.executionTime ?? 0} ms +
${this._templateQuery?.queryExpression ?? ''}
- Close - Submit + +
`; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/utils.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/utils.ts new file mode 100644 index 0000000000..1ccd3bdbca --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/utils.ts @@ -0,0 +1,115 @@ +import { + OperatorModel, + TemplateQueryExecuteSortModel, + TemplateQueryOperatorModel, + TemplateQueryPropertyPresentationModel, + TemplateQueryPropertyTypeModel, + UserOrderModel, +} from '@umbraco-cms/backoffice/backend-api'; + +type TemplateOperatorModel = TemplateQueryOperatorModel & { localizeKey?: string }; +type TemplatePropertyModel = TemplateQueryPropertyPresentationModel & { localizeKey?: string }; +type TemplateSortModel = TemplateQueryExecuteSortModel & { localizeKey?: string }; + +export function localizeOperators( + operators: Array, + currentPropertyType: TemplateQueryPropertyTypeModel | null, +): Array { + switch (currentPropertyType) { + case TemplateQueryPropertyTypeModel.STRING: + return isString(operators); + case TemplateQueryPropertyTypeModel.INTEGER: + return isInteger(operators); + case TemplateQueryPropertyTypeModel.DATE_TIME: + return isDateTime(operators); + default: + return operators; + } +} + +export function localizePropertyType(propertyTypes?: Array) { + if (!propertyTypes) return; + return propertyTypes.map((propertyType): TemplatePropertyModel => { + switch (propertyType.alias) { + case UserOrderModel.NAME: + return { ...propertyType, localizeKey: 'template_name' }; + case UserOrderModel.ID: + return { ...propertyType, localizeKey: 'template_id' }; + case UserOrderModel.CREATE_DATE: + return { ...propertyType, localizeKey: 'template_createdDate' }; + case UserOrderModel.UPDATE_DATE: + return { ...propertyType, localizeKey: 'template_lastUpdatedDate' }; + default: + return propertyType; + } + }); +} + +export function localizeSort(sort?: TemplateQueryExecuteSortModel | null): TemplateSortModel | undefined { + if (!sort?.direction) return undefined; + switch (sort.direction) { + case 'ascending': + return { ...sort, localizeKey: 'template_ascending' }; + case 'descending': + return { ...sort, localizeKey: 'template_descending' }; + default: + return sort; + } +} + +// Following code is for localization of operators (checks on property type); + +function isString(operators: Array): Array { + return operators.map((operator): TemplateOperatorModel => { + switch (operator.operator) { + case OperatorModel.EQUALS: + return { ...operator, localizeKey: 'template_is' }; + case OperatorModel.NOT_EQUALS: + return { ...operator, localizeKey: 'template_isNot' }; + case OperatorModel.CONTAINS: + return { ...operator, localizeKey: 'template_contains' }; + case OperatorModel.NOT_CONTAINS: + return { ...operator, localizeKey: 'template_doesNotContain' }; + default: + return operator; + } + }); +} + +function isInteger(operators: Array): Array { + return operators.map((operator): TemplateOperatorModel => { + switch (operator.operator) { + case OperatorModel.EQUALS: + return { ...operator, localizeKey: 'template_equals' }; + case OperatorModel.NOT_EQUALS: + return { ...operator, localizeKey: 'template_doesNotEqual' }; + case OperatorModel.GREATER_THAN: + return { ...operator, localizeKey: 'template_greaterThan' }; + case OperatorModel.GREATER_THAN_EQUAL_TO: + return { ...operator, localizeKey: 'template_greaterThanEqual' }; + case OperatorModel.LESS_THAN: + return { ...operator, localizeKey: 'template_lessThan' }; + case OperatorModel.LESS_THAN_EQUAL_TO: + return { ...operator, localizeKey: 'template_lessThanEqual' }; + default: + return operator; + } + }); +} + +function isDateTime(operators: Array): Array { + return operators.map((operator): TemplateOperatorModel => { + switch (operator.operator) { + case OperatorModel.GREATER_THAN: + return { ...operator, localizeKey: 'template_before' }; + case OperatorModel.GREATER_THAN_EQUAL_TO: + return { ...operator, localizeKey: 'template_beforeIncDate' }; + case OperatorModel.LESS_THAN: + return { ...operator, localizeKey: 'template_after' }; + case OperatorModel.LESS_THAN_EQUAL_TO: + return { ...operator, localizeKey: 'template_afterIncDate' }; + default: + return operator; + } + }); +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts index 22f4d43501..44c06c7245 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts @@ -78,7 +78,7 @@ export class UmbTemplateWorkspaceEditorElement extends UmbLitElement { this.inputQuery$.pipe(debounceTime(250)).subscribe((nameInputValue) => { this.#templateWorkspaceContext?.setName(nameInputValue); - if (this.#isNew && !this._alias) this.#templateWorkspaceContext?.setAlias(camelCase(nameInputValue)); + if (this.#isNew) this.#templateWorkspaceContext?.setAlias(camelCase(nameInputValue)); }); }); } @@ -90,6 +90,7 @@ export class UmbTemplateWorkspaceEditorElement extends UmbLitElement { } #onAliasInput(event: Event) { + event.stopPropagation(); const target = event.target as UUIInputElement; const value = target.value as string; this.#templateWorkspaceContext?.setAlias(value); @@ -188,7 +189,7 @@ export class UmbTemplateWorkspaceEditorElement extends UmbLitElement { .value=${this._name} @input=${this.#onNameInput} label="template name"> - + diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts index becb6cf16a..25f6b50ac5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts @@ -145,6 +145,7 @@ ${currentContent}`; } else { this.#treeRepository.requestRootTreeItems(); } + this.setIsNew(false); return; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.element.ts index ca9068383a..87e071ccf2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.element.ts @@ -1,23 +1,22 @@ import { UmbTemplateWorkspaceContext } from './template-workspace.context.js'; +import { UmbTemplateWorkspaceEditorElement } from './template-workspace-editor.element.js'; import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { IRoutingInfo, PageComponent, UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import '../../components/insert-menu/templating-insert-menu.element.js'; -import './template-workspace-editor.element.js'; import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; @customElement('umb-template-workspace') export class UmbTemplateWorkspaceElement extends UmbLitElement { #templateWorkspaceContext = new UmbTemplateWorkspaceContext(this); - - #element = document.createElement('umb-template-workspace-editor'); + #createElement = () => new UmbTemplateWorkspaceEditorElement(); @state() _routes: UmbRoute[] = [ { path: 'create/:parentId', - component: () => this.#element, + component: this.#createElement, setup: (component: PageComponent, info: IRoutingInfo) => { const parentId = info.match.params.parentId === 'null' ? null : info.match.params.parentId; this.#templateWorkspaceContext.create(parentId); @@ -31,7 +30,7 @@ export class UmbTemplateWorkspaceElement extends UmbLitElement { }, { path: 'edit/:key', - component: () => this.#element, + component: this.#createElement, setup: (component: PageComponent, info: IRoutingInfo): void => { const key = info.match.params.key; this.#templateWorkspaceContext.load(key); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/sources/user-group.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/sources/user-group.server.data-source.ts index a2ed979950..648c52a99d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/sources/user-group.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/sources/user-group.server.data-source.ts @@ -28,7 +28,7 @@ export class UmbUserGroupServerDataSource implements UmbUserGroupDetailDataSourc } //TODO should parentId be optional in the generic interface? - async createScaffold(parentId: string | null) { + async createScaffold(_parentId: string | null) { const data: CreateUserGroupRequestModel = { name: '', icon: '', @@ -36,6 +36,8 @@ export class UmbUserGroupServerDataSource implements UmbUserGroupDetailDataSourc languages: [], hasAccessToAllLanguages: false, permissions: [], + documentRootAccess: false, + mediaRootAccess: false, }; return { data }; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.element.ts index 861d9e3ebf..7dff688c29 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.element.ts @@ -9,13 +9,13 @@ import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/wor @customElement('umb-user-group-workspace') export class UmbUserGroupWorkspaceElement extends UmbLitElement { #workspaceContext = new UmbUserGroupWorkspaceContext(this); - #element = new UmbUserGroupWorkspaceEditorElement(); + #createElement = () => new UmbUserGroupWorkspaceEditorElement(); @state() _routes: UmbRoute[] = [ { path: 'create', - component: () => this.#element, + component: this.#createElement, setup: (component, info) => { this.#workspaceContext.create(); @@ -28,7 +28,7 @@ export class UmbUserGroupWorkspaceElement extends UmbLitElement { }, { path: 'edit/:id', - component: () => this.#element, + component: this.#createElement, setup: (component, info) => { const id = info.match.params.id; this.#workspaceContext.load(id); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/user-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/user-workspace.element.ts index 2adf8b2730..fe014b36cd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/user-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/user-workspace.element.ts @@ -8,13 +8,13 @@ import type { UmbRoute } from '@umbraco-cms/backoffice/router'; @customElement('umb-user-workspace') export class UmbUserWorkspaceElement extends UmbLitElement { #workspaceContext = new UmbUserWorkspaceContext(this); - #element = new UmbUserWorkspaceEditorElement(); + #createElement = () => new UmbUserWorkspaceEditorElement(); @state() _routes: UmbRoute[] = [ { path: ':id', - component: () => this.#element, + component: this.#createElement, setup: (component, info) => { const id = info.match.params.id; this.#workspaceContext.load(id); diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/generate-umbraco-alias.function.ts b/src/Umbraco.Web.UI.Client/src/shared/utils/generate-umbraco-alias.function.ts index 597f562c24..1e4f70877a 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/utils/generate-umbraco-alias.function.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/utils/generate-umbraco-alias.function.ts @@ -1,5 +1,11 @@ +import { camelCase } from '@umbraco-cms/backoffice/external/lodash'; + export function generateAlias(text: string) { //replace all spaces characters with a dash and remove all non-alphanumeric characters, except underscore. Allow a maximum of 1 dashes or underscores in a row. + //Do we really want that and not the original way of doing things (camelCase)? + + return camelCase(text); + return text .replace(/\s+/g, '-') .replace(/[^a-zA-Z0-9_-]+/g, '') diff --git a/src/Umbraco.Web.UI.Client/tsconfig.json b/src/Umbraco.Web.UI.Client/tsconfig.json index 47eb047d1d..a466918dea 100644 --- a/src/Umbraco.Web.UI.Client/tsconfig.json +++ b/src/Umbraco.Web.UI.Client/tsconfig.json @@ -89,6 +89,7 @@ "@umbraco-cms/backoffice/logviewer": ["src/packages/log-viewer/index.ts"], "@umbraco-cms/backoffice/relation-type": ["./src/packages/settings/relation-types/index.ts"], "@umbraco-cms/backoffice/tags": ["./src/packages/tags/index.ts"], + "@umbraco-cms/backoffice/static-file": ["./src/packages/static-file/index.ts"], "@umbraco-cms/backoffice/dictionary": ["./src/packages/dictionary/dictionary/index.ts"], "@umbraco-cms/backoffice/block": ["./src/packages/block/index.ts"], diff --git a/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs b/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs index 5172bd17ed..93d269c896 100644 --- a/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs +++ b/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs @@ -109,6 +109,7 @@ export default { '@umbraco-cms/backoffice/logviewer': './src/packages/settings/logviewer/index.ts', '@umbraco-cms/backoffice/relation-type': './src/packages/settings/relation-types/index.ts', '@umbraco-cms/backoffice/tags': './src/packages/tags/index.ts', + '@umbraco-cms/backoffice/static-file': './src/packages/static-file/index.ts', '@umbraco-cms/backoffice/partial-view': './src/packages/templating/partial-views/index.ts', '@umbraco-cms/backoffice/stylesheet': './src/packages/templating/stylesheets/index.ts', '@umbraco-cms/backoffice/template': './src/packages/templating/templates/index.ts',