diff --git a/src/Umbraco.Web.UI.Client/.eslintrc.json b/src/Umbraco.Web.UI.Client/.eslintrc.json index a21fd9bbcd..c4bb8ffab0 100644 --- a/src/Umbraco.Web.UI.Client/.eslintrc.json +++ b/src/Umbraco.Web.UI.Client/.eslintrc.json @@ -1,7 +1,7 @@ { "ignorePatterns": ["vite.*.ts"], "root": true, - "plugins": ["eslint-plugin-local-rules"], + "plugins": ["import", "eslint-plugin-local-rules"], "parserOptions": { "ecmaVersion": "latest" }, diff --git a/src/Umbraco.Web.UI.Client/.github/workflows/npm-publish-github-packages.yml b/src/Umbraco.Web.UI.Client/.github/workflows/disabled/npm-publish-github-packages.yml similarity index 100% rename from src/Umbraco.Web.UI.Client/.github/workflows/npm-publish-github-packages.yml rename to src/Umbraco.Web.UI.Client/.github/workflows/disabled/npm-publish-github-packages.yml diff --git a/src/Umbraco.Web.UI.Client/.storybook/preview.js b/src/Umbraco.Web.UI.Client/.storybook/preview.js index 82e43b8b4a..ee1a767e21 100644 --- a/src/Umbraco.Web.UI.Client/.storybook/preview.js +++ b/src/Umbraco.Web.UI.Client/.storybook/preview.js @@ -10,11 +10,11 @@ import { setCustomElements } from '@storybook/web-components'; import { startMockServiceWorker } from '../src/mocks'; import { UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext } from '../src/packages/core/modal'; -import { UmbDataTypeTreeStore } from '../src/packages/core/data-type/tree/data-type-tree.store'; +import { UmbDataTypeTreeStore } from '../src/packages/data-type/tree/data-type-tree.store'; import { UmbDocumentDetailStore } from '../src/packages/documents/documents/repository/detail/document-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 { UmbIconRegistry } from '../src/packages/core/icon-registry/icon.registry'; import { UmbLitElement } from '../src/packages/core/lit-element'; import { umbLocalizationRegistry } from '../src/packages/core/localization'; import customElementManifests from '../dist-cms/custom-elements.json'; @@ -77,12 +77,7 @@ const documentTreeStoreProvider = (story) => html` `; // Provide the MSW addon decorator globally -export const decorators = [ - storybookProvider, - documentStoreProvider, - documentTreeStoreProvider, - dataTypeStoreProvider, -]; +export const decorators = [storybookProvider, documentStoreProvider, documentTreeStoreProvider, dataTypeStoreProvider]; export const parameters = { options: { diff --git a/src/Umbraco.Web.UI.Client/.vscode/settings.json b/src/Umbraco.Web.UI.Client/.vscode/settings.json index 661106f3d9..9aec9745fe 100644 --- a/src/Umbraco.Web.UI.Client/.vscode/settings.json +++ b/src/Umbraco.Web.UI.Client/.vscode/settings.json @@ -7,12 +7,14 @@ "ctrls", "devs", "Elementable", + "iframes", "invariantable", "lucide", "Niels", "pickable", "popovertarget", "Registrator", + "stylesheet", "svgs", "templating", "tinymce", diff --git a/src/Umbraco.Web.UI.Client/LICENSE b/src/Umbraco.Web.UI.Client/LICENSE index f88d3c2e3c..aaba059d33 100644 --- a/src/Umbraco.Web.UI.Client/LICENSE +++ b/src/Umbraco.Web.UI.Client/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2023 Umbraco HQ +Copyright (c) 2024 Umbraco HQ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -19,3 +19,18 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +--- + +Third-party licenses + +--- + +Lucide License +ISC License + +Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2022 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2022. + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/src/Umbraco.Web.UI.Client/devops/plop/plop.js b/src/Umbraco.Web.UI.Client/devops/plop/plop.js deleted file mode 100644 index 9c451a8cb9..0000000000 --- a/src/Umbraco.Web.UI.Client/devops/plop/plop.js +++ /dev/null @@ -1,63 +0,0 @@ -import { kebabCase, camelCase, startCase } from 'lodash-es'; -const pascalCase = (str) => startCase(str).replace(/ /g, ''); - -const tagNamePrefix = 'umb-'; -const classNamePrefix = 'Umb'; - -const extensions = [ - { - type: 'propertyEditorUi', - path: '../../src/backoffice/shared/property-editors/uis', - templatePath: './templates/property-editor-ui', - }, -]; - -export default function (plop) { - plop.setHelper('className', (type, name) => classNamePrefix + pascalCase(type) + pascalCase(name) + 'Element'); - plop.setHelper('displayName', (name) => startCase(camelCase(name))); - plop.setHelper('extensionPath', (type, name) => extensions.find((e) => e.type === type).path + '/' + name); - plop.setHelper('extensionTemplatePath', (type) => extensions.find((e) => e.type === type).templatePath); - plop.setHelper('extensionFilename', (type, name) => kebabCase(type) + '-' + kebabCase(name)); - plop.setHelper('extensionTagName', (type, name) => tagNamePrefix + kebabCase(type) + '-' + kebabCase(name)); - - plop.setGenerator('component', { - description: 'application controller logic', - prompts: [ - { - type: 'list', - name: 'extensionType', - message: 'Select extension type', - choices: extensions.map((e) => e.type), - }, - { - type: 'input', - name: 'name', - message: 'Enter extension name (i.e. color-picker)', - validate: (answer) => { - if (answer.length < 1) { - return 'Please enter a name for the extension'; - } else return true; - }, - // Convert the input into kebab case if not provided as such and strip prefix - filter: (response) => kebabCase(response.replace(/^umb-/, '')), - }, - ], - actions: [ - { - type: 'add', - path: '{{ extensionPath extensionType name }}/{{extensionFilename extensionType name }}.element.ts', - templateFile: '{{extensionTemplatePath extensionType}}/element.ts.hbs', - }, - { - type: 'add', - path: '{{ extensionPath extensionType name }}/{{ extensionFilename extensionType name }}.test.ts', - templateFile: '{{extensionTemplatePath extensionType}}/test.ts.hbs', - }, - { - type: 'add', - path: '{{ extensionPath extensionType name }}/{{ extensionFilename extensionType name }}.stories.ts', - templateFile: '{{extensionTemplatePath extensionType}}/stories.ts.hbs', - }, - ], - }); -} diff --git a/src/Umbraco.Web.UI.Client/devops/plop/templates/property-editor-ui/element.ts.hbs b/src/Umbraco.Web.UI.Client/devops/plop/templates/property-editor-ui/element.ts.hbs deleted file mode 100644 index e578918f13..0000000000 --- a/src/Umbraco.Web.UI.Client/devops/plop/templates/property-editor-ui/element.ts.hbs +++ /dev/null @@ -1,31 +0,0 @@ -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; -import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbLitElement } from '@umbraco-cms/element'; - -/** - * @element {{ extensionTagName extensionType name }} - */ -@customElement('{{ extensionTagName extensionType name }}') -export class {{className extensionType name }} extends UmbLitElement implements UmbPropertyEditorUiElement { - static styles = [UmbTextStyles]; - - @property() - value = ''; - - @property({ type: Array, attribute: false }) - public config?: UmbPropertyEditorConfigCollection; - - render() { - return html`
{{ extensionTagName extensionType name }}
`; - } -} - -export default {{className extensionType name}}; - -declare global { - interface HTMLElementTagNameMap { - '{{extensionTagName extensionType name }}': {{className extensionType name}}; - } -} diff --git a/src/Umbraco.Web.UI.Client/devops/plop/templates/property-editor-ui/stories.ts.hbs b/src/Umbraco.Web.UI.Client/devops/plop/templates/property-editor-ui/stories.ts.hbs deleted file mode 100644 index 69c46995b8..0000000000 --- a/src/Umbraco.Web.UI.Client/devops/plop/templates/property-editor-ui/stories.ts.hbs +++ /dev/null @@ -1,15 +0,0 @@ -import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; - -import type { {{className extensionType name}} } from './{{ extensionFilename extensionType name }}.element'; -import './{{ extensionFilename extensionType name }}.element'; - -export default { - title: 'Property Editor UIs/{{ displayName name }}', - component: '{{ extensionTagName extensionType name }}', - id: '{{extensionTagName extensionType name }}', -} as Meta; - -export const AAAOverview: Story<{{className extensionType name}}> = () => - html`<{{ extensionTagName extensionType name }}>`; -AAAOverview.storyName = 'Overview'; diff --git a/src/Umbraco.Web.UI.Client/devops/plop/templates/property-editor-ui/test.ts.hbs b/src/Umbraco.Web.UI.Client/devops/plop/templates/property-editor-ui/test.ts.hbs deleted file mode 100644 index 5aaa301e1d..0000000000 --- a/src/Umbraco.Web.UI.Client/devops/plop/templates/property-editor-ui/test.ts.hbs +++ /dev/null @@ -1,21 +0,0 @@ -import { expect, fixture, html } from '@open-wc/testing'; -import { {{ className extensionType name }} } from './{{ extensionFilename extensionType name }}.element'; -import { defaultA11yConfig } from '@umbraco-cms/test-utils'; - -describe('{{className extensionType name}}', () => { - let element: {{className extensionType name}}; - - beforeEach(async () => { - element = await fixture( - html` <{{ extensionTagName extensionType name }}> ` - ); - }); - - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf({{ className extensionType name }}); - }); - - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); -}); diff --git a/src/Umbraco.Web.UI.Client/devops/tsconfig/index.js b/src/Umbraco.Web.UI.Client/devops/tsconfig/index.js index a02205ac65..e05b6550ab 100644 --- a/src/Umbraco.Web.UI.Client/devops/tsconfig/index.js +++ b/src/Umbraco.Web.UI.Client/devops/tsconfig/index.js @@ -1,5 +1,5 @@ import { writeFileSync } from 'fs'; -import { format } from 'prettier'; +import { format, resolveConfig } from 'prettier'; import { createImportMap } from '../importmap/index.js'; const tsconfigPath = 'tsconfig.json'; @@ -55,8 +55,8 @@ for (const [key, value] of Object.entries(importmap.imports)) { tsConfigBase.compilerOptions.paths = paths; const content = tsconfigComment + JSON.stringify(tsConfigBase, null, ' '); -const formattedContent = await format(content, { - parser: 'json', -}); + +const config = await resolveConfig('./.prettierrc.json'); +const formattedContent = await format(content, { ...config, parser: 'json' }); writeFileSync(tsconfigPath, formattedContent); diff --git a/src/Umbraco.Web.UI.Client/e2e/installer.spec.ts b/src/Umbraco.Web.UI.Client/e2e/installer.spec.ts index 9ecfc9d40f..623967b104 100644 --- a/src/Umbraco.Web.UI.Client/e2e/installer.spec.ts +++ b/src/Umbraco.Web.UI.Client/e2e/installer.spec.ts @@ -2,9 +2,9 @@ const { rest } = window.MockServiceWorker; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; import { - ProblemDetails, + type ProblemDetails, RuntimeLevelModel, - ServerStatusResponseModel, + type ServerStatusResponseModel, } from '@umbraco-cms/backoffice/external/backend-api'; import { expect, test } from './test.js'; diff --git a/src/Umbraco.Web.UI.Client/e2e/upgrader.spec.ts b/src/Umbraco.Web.UI.Client/e2e/upgrader.spec.ts index 85def2dff4..0a2b28ccb5 100644 --- a/src/Umbraco.Web.UI.Client/e2e/upgrader.spec.ts +++ b/src/Umbraco.Web.UI.Client/e2e/upgrader.spec.ts @@ -1,9 +1,9 @@ const { rest } = window.MockServiceWorker; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; import { - ProblemDetails, + type ProblemDetails, RuntimeLevelModel, - ServerStatusResponseModel, + type ServerStatusResponseModel, } from '@umbraco-cms/backoffice/external/backend-api'; import { expect, test } from './test.js'; diff --git a/src/Umbraco.Web.UI.Client/examples/dashboard-with-property-dataset/index.ts b/src/Umbraco.Web.UI.Client/examples/dashboard-with-property-dataset/index.ts index 4c50c3a641..884ebd462f 100644 --- a/src/Umbraco.Web.UI.Client/examples/dashboard-with-property-dataset/index.ts +++ b/src/Umbraco.Web.UI.Client/examples/dashboard-with-property-dataset/index.ts @@ -1,6 +1,6 @@ -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestDashboard } from '@umbraco-cms/backoffice/extension-registry'; -export const manifests: Array = [ +export const manifests: Array = [ { type: 'dashboard', name: 'Example Dataset Dashboard', diff --git a/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/index.ts b/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/index.ts index 0771859fe9..92c66a2adc 100644 --- a/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/index.ts +++ b/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/index.ts @@ -1,6 +1,6 @@ -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestDashboard } from '@umbraco-cms/backoffice/extension-registry'; -export const manifests: Array = [ +export const manifests: Array = [ { type: 'dashboard', name: 'Example Sorter Dashboard', diff --git a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/index.ts b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/index.ts index 0771859fe9..92c66a2adc 100644 --- a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/index.ts +++ b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/index.ts @@ -1,6 +1,6 @@ -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestDashboard } from '@umbraco-cms/backoffice/extension-registry'; -export const manifests: Array = [ +export const manifests: Array = [ { type: 'dashboard', name: 'Example Sorter Dashboard', diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index da145f2e51..9bd49f2fec 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -17,7 +17,6 @@ "dompurify": "^3.0.8", "element-internals-polyfill": "^1.3.10", "lit": "^3.1.2", - "lodash-es": "4.17.21", "marked": "^12.0.0", "monaco-editor": "^0.46.0", "rxjs": "^7.8.1", @@ -42,7 +41,6 @@ "@storybook/web-components": "^7.6.15", "@storybook/web-components-vite": "^7.6.15", "@types/chai": "^4.3.5", - "@types/lodash-es": "^4.17.8", "@types/mocha": "^10.0.1", "@typescript-eslint/eslint-plugin": "^6.14.0", "@typescript-eslint/parser": "^6.14.0", @@ -66,7 +64,6 @@ "msw": "^1.3.2", "openapi-typescript-codegen": "^0.25.0", "playwright-msw": "^3.0.1", - "plop": "^4.0.0", "prettier": "3.0.3", "react": "^18.2.0", "react-dom": "^18.2.0", @@ -3142,18 +3139,6 @@ "@lit-labs/ssr-dom-shim": "^1.2.0" } }, - "node_modules/@ljharb/through": { - "version": "2.3.12", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.12.tgz", - "integrity": "sha512-ajo/heTlG3QgC8EGP6APIejksVAYt4ayz4tqoP3MolFELzcH1x1fzwEYRJTPO0IELutZ5HQ0c26/GqAYy79u3g==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/@mdn/browser-compat-data": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz", @@ -6094,12 +6079,6 @@ "integrity": "sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==", "dev": true }, - "node_modules/@types/fined": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@types/fined/-/fined-1.1.5.tgz", - "integrity": "sha512-2N93vadEGDFhASTIRbizbl4bNqpMOId5zZfj6hHqYZfEzEfO9onnU4Im8xvzo8uudySDveDHBOOSlTWf38ErfQ==", - "dev": true - }, "node_modules/@types/graceful-fs": { "version": "4.1.9", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", @@ -6121,16 +6100,6 @@ "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", "dev": true }, - "node_modules/@types/inquirer": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-9.0.7.tgz", - "integrity": "sha512-Q0zyBupO6NxGRZut/JdmqYKOnN95Eg5V8Csg3PGKkP+FnvsUZx1jAyK7fztIszxxMuoBA6E3KXWvdZVXIpx60g==", - "dev": true, - "dependencies": { - "@types/through": "*", - "rxjs": "^7.2.0" - } - }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", @@ -6212,31 +6181,12 @@ "@types/koa": "*" } }, - "node_modules/@types/liftoff": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-4.0.3.tgz", - "integrity": "sha512-UgbL2kR5pLrWICvr8+fuSg0u43LY250q7ZMkC+XKC3E+rs/YBDEnQIzsnhU5dYsLlwMi3R75UvCL87pObP1sxw==", - "dev": true, - "dependencies": { - "@types/fined": "*", - "@types/node": "*" - } - }, "node_modules/@types/lodash": { "version": "4.14.202", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz", "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==", "dev": true }, - "node_modules/@types/lodash-es": { - "version": "4.17.12", - "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz", - "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", - "dev": true, - "dependencies": { - "@types/lodash": "*" - } - }, "node_modules/@types/mdast": { "version": "3.0.15", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", @@ -6420,15 +6370,6 @@ "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz", "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==" }, - "node_modules/@types/through": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.33.tgz", - "integrity": "sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/trusted-types": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", @@ -8447,22 +8388,6 @@ "node": ">= 14" } }, - "node_modules/aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", - "dev": true, - "dependencies": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -8673,15 +8598,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -8707,15 +8623,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -9466,16 +9373,6 @@ "node": ">=6" } }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dev": true, - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, "node_modules/camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", @@ -9508,17 +9405,6 @@ } ] }, - "node_modules/capital-case": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", - "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", - "dev": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, "node_modules/ccount": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", @@ -9619,26 +9505,6 @@ "node": ">=8" } }, - "node_modules/change-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", - "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", - "dev": true, - "dependencies": { - "camel-case": "^4.1.2", - "capital-case": "^1.0.4", - "constant-case": "^3.0.4", - "dot-case": "^3.0.4", - "header-case": "^2.0.4", - "no-case": "^3.0.4", - "param-case": "^3.0.4", - "pascal-case": "^3.1.2", - "path-case": "^3.0.4", - "sentence-case": "^3.0.4", - "snake-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, "node_modules/character-entities": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", @@ -9757,33 +9623,6 @@ "consola": "^3.2.3" } }, - "node_modules/clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clean-stack/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -10143,17 +9982,6 @@ "node": "^14.18.0 || >=16.10.0" } }, - "node_modules/constant-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", - "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", - "dev": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case": "^2.0.2" - } - }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -10456,71 +10284,6 @@ "node": ">= 14" } }, - "node_modules/del": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/del/-/del-7.1.0.tgz", - "integrity": "sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg==", - "dev": true, - "dependencies": { - "globby": "^13.1.2", - "graceful-fs": "^4.2.10", - "is-glob": "^4.0.3", - "is-path-cwd": "^3.0.0", - "is-path-inside": "^4.0.0", - "p-map": "^5.5.0", - "rimraf": "^3.0.2", - "slash": "^4.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/del/node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", - "dev": true, - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/del/node_modules/is-path-inside": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", - "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/del/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -10572,15 +10335,6 @@ "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/detect-indent": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", @@ -10692,16 +10446,6 @@ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.8.tgz", "integrity": "sha512-b7uwreMYL2eZhrSCRC4ahLTeZcPZxSmYfmcQGXGkXiZSNW1X85v+SDM5KsWcpivIiUBH47Ji7NtyUdpLeF5JZQ==" }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dev": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, "node_modules/dotenv": { "version": "16.4.4", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.4.tgz", @@ -11870,18 +11614,6 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", - "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/express": { "version": "4.18.2", "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", @@ -12328,46 +12060,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/findup-sync": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", - "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", - "dev": true, - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.3", - "micromatch": "^4.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/fined": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-2.0.0.tgz", - "integrity": "sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^5.0.0", - "object.defaults": "^1.1.0", - "object.pick": "^1.3.0", - "parse-filepath": "^1.0.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/flagged-respawn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-2.0.0.tgz", - "integrity": "sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==", - "dev": true, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/flat-cache": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", @@ -12425,27 +12117,6 @@ "is-callable": "^1.1.3" } }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", - "dev": true, - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/foreground-child": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", @@ -12629,18 +12300,6 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-east-asian-width": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", - "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/get-intrinsic": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", @@ -12851,48 +12510,6 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, - "node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -13110,34 +12727,12 @@ "node": ">= 0.4" } }, - "node_modules/header-case": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", - "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", - "dev": true, - "dependencies": { - "capital-case": "^1.0.4", - "tslib": "^2.0.3" - } - }, "node_modules/headers-polyfill": { "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": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "dependencies": { - "parse-passwd": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -13323,18 +12918,6 @@ "node": ">=0.8.19" } }, - "node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/inflation": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.1.0.tgz", @@ -13360,12 +12943,6 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, "node_modules/inquirer": { "version": "8.2.6", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", @@ -13458,15 +13035,6 @@ "node": ">= 0.4" } }, - "node_modules/interpret": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -13491,19 +13059,6 @@ "node": ">= 0.10" } }, - "node_modules/is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "dependencies": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-absolute-url": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", @@ -13816,18 +13371,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-path-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz", - "integrity": "sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -13849,15 +13392,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-potential-custom-element-name": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", @@ -13889,18 +13423,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, - "dependencies": { - "is-unc-path": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", @@ -13970,18 +13492,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, - "dependencies": { - "unc-path-regex": "^0.1.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -14015,15 +13525,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -14910,25 +14411,6 @@ "node": ">= 0.8.0" } }, - "node_modules/liftoff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-4.0.0.tgz", - "integrity": "sha512-rMGwYF8q7g2XhG2ulBmmJgWv25qBsqRbDn5gH0+wnuyeFt7QBJlHJmtg5qEdn4pN6WVAUMgXnIxytMFRX9c1aA==", - "dev": true, - "dependencies": { - "extend": "^3.0.2", - "findup-sync": "^5.0.0", - "fined": "^2.0.0", - "flagged-respawn": "^2.0.0", - "is-plain-object": "^5.0.0", - "object.map": "^1.0.1", - "rechoir": "^0.8.0", - "resolve": "^1.20.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/lighthouse-logger": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", @@ -15009,11 +14491,6 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" - }, "node_modules/lodash.assignwith": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz", @@ -15032,12 +14509,6 @@ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -15152,15 +14623,6 @@ "loose-envify": "cli.js" } }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "dependencies": { - "tslib": "^2.0.3" - } - }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -15209,18 +14671,6 @@ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, - "node_modules/make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", @@ -15230,15 +14680,6 @@ "tmpl": "1.0.5" } }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/map-or-similar": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz", @@ -16463,16 +15904,6 @@ "node": ">= 0.4.0" } }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, "node_modules/node-dir": { "version": "0.1.17", "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", @@ -16561,141 +15992,6 @@ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true }, - "node_modules/node-plop": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.32.0.tgz", - "integrity": "sha512-lKFSRSRuDHhwDKMUobdsvaWCbbDRbV3jMUSMiajQSQux1aNUevAZVxUHc2JERI//W8ABPRbi3ebYuSuIzkNIpQ==", - "dev": true, - "dependencies": { - "@types/inquirer": "^9.0.3", - "change-case": "^4.1.2", - "del": "^7.1.0", - "globby": "^13.2.2", - "handlebars": "^4.7.8", - "inquirer": "^9.2.10", - "isbinaryfile": "^5.0.0", - "lodash.get": "^4.4.2", - "lower-case": "^2.0.2", - "mkdirp": "^3.0.1", - "resolve": "^1.22.4", - "title-case": "^3.0.3", - "upper-case": "^2.0.2" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/node-plop/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/node-plop/node_modules/cli-width": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", - "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/node-plop/node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", - "dev": true, - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/node-plop/node_modules/inquirer": { - "version": "9.2.14", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.14.tgz", - "integrity": "sha512-4ByIMt677Iz5AvjyKrDpzaepIyMewNvDcvwpVVRZNmy9dLakVoVgdCHZXbK1SlVJra1db0JZ6XkJyHsanpdrdQ==", - "dev": true, - "dependencies": { - "@ljharb/through": "^2.3.12", - "ansi-escapes": "^4.3.2", - "chalk": "^5.3.0", - "cli-cursor": "^3.1.0", - "cli-width": "^4.1.0", - "external-editor": "^3.1.0", - "figures": "^3.2.0", - "lodash": "^4.17.21", - "mute-stream": "1.0.0", - "ora": "^5.4.1", - "run-async": "^3.0.0", - "rxjs": "^7.8.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/node-plop/node_modules/mkdirp": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", - "dev": true, - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/node-plop/node_modules/mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/node-plop/node_modules/run-async": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", - "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/node-plop/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", @@ -16948,21 +16244,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", - "dev": true, - "dependencies": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object.fromentries": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", @@ -16993,31 +16274,6 @@ "es-errors": "^1.0.0" } }, - "node_modules/object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", - "dev": true, - "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object.values": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", @@ -17270,21 +16526,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-map": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", - "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", - "dev": true, - "dependencies": { - "aggregate-error": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -17339,16 +16580,6 @@ "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", "dev": true }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dev": true, - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -17361,20 +16592,6 @@ "node": ">=6" } }, - "node_modules/parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", - "dev": true, - "dependencies": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -17393,15 +16610,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", @@ -17426,26 +16634,6 @@ "node": ">= 0.8" } }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dev": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", - "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", - "dev": true, - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, "node_modules/path-equal": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/path-equal/-/path-equal-1.2.5.tgz", @@ -17485,27 +16673,6 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "node_modules/path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", - "dev": true, - "dependencies": { - "path-root-regex": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-scurry": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", @@ -17705,190 +16872,6 @@ "node": ">=12" } }, - "node_modules/plop": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/plop/-/plop-4.0.1.tgz", - "integrity": "sha512-5n8QU93kvL/ObOzBcPAB1siVFtAH1TZM6TntJ3JK5kXT0jIgnQV+j+uaOWWFJlg1cNkzLYm8klgASF65K36q9w==", - "dev": true, - "dependencies": { - "@types/liftoff": "^4.0.3", - "chalk": "^5.3.0", - "interpret": "^3.1.1", - "liftoff": "^4.0.0", - "minimist": "^1.2.8", - "node-plop": "^0.32.0", - "ora": "^8.0.0", - "v8flags": "^4.0.1" - }, - "bin": { - "plop": "bin/plop.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/plop/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/plop/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/plop/node_modules/cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", - "dev": true, - "dependencies": { - "restore-cursor": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/plop/node_modules/is-interactive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/plop/node_modules/is-unicode-supported": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz", - "integrity": "sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/plop/node_modules/log-symbols": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", - "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", - "dev": true, - "dependencies": { - "chalk": "^5.3.0", - "is-unicode-supported": "^1.3.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/plop/node_modules/log-symbols/node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/plop/node_modules/ora": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-8.0.1.tgz", - "integrity": "sha512-ANIvzobt1rls2BDny5fWZ3ZVKyD6nscLvfFRpQgfWsythlcsVUC9kL0zq6j2Z5z9wwp1kd7wpsD/T9qNPVLCaQ==", - "dev": true, - "dependencies": { - "chalk": "^5.3.0", - "cli-cursor": "^4.0.0", - "cli-spinners": "^2.9.2", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^2.0.0", - "log-symbols": "^6.0.0", - "stdin-discarder": "^0.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/plop/node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/plop/node_modules/string-width": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", - "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", - "dev": true, - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/plop/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/polished": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/polished/-/polished-4.3.1.tgz", @@ -18539,18 +17522,6 @@ "node": ">=0.10.0" } }, - "node_modules/rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", - "dev": true, - "dependencies": { - "resolve": "^1.20.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -18741,19 +17712,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -19203,17 +18161,6 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "node_modules/sentence-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", - "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", - "dev": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, "node_modules/serve-static": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", @@ -19381,16 +18328,6 @@ "npm": ">= 3.0.0" } }, - "node_modules/snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "dev": true, - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, "node_modules/socks": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", @@ -19513,18 +18450,6 @@ "node": ">= 0.8" } }, - "node_modules/stdin-discarder": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", - "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/store2": { "version": "2.14.2", "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz", @@ -20198,15 +19123,6 @@ "resolved": "https://registry.npmjs.org/tinymce-i18n/-/tinymce-i18n-24.1.29.tgz", "integrity": "sha512-njcQUZ4UXl+IiZMpeXoIr6UEUkKCqHNQFjDgmwjxUbr3uMNff6k71hdBWGcIzIPOTvJoPSBr6wQPkWqjoMRkEg==" }, - "node_modules/title-case": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", - "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", - "dev": true, - "dependencies": { - "tslib": "^2.0.3" - } - }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -20744,15 +19660,6 @@ "through": "^2.3.8" } }, - "node_modules/unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", @@ -20978,24 +19885,6 @@ "browserslist": ">= 4.21.0" } }, - "node_modules/upper-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", - "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", - "dev": true, - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/upper-case-first": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", - "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", - "dev": true, - "dependencies": { - "tslib": "^2.0.3" - } - }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -21148,15 +20037,6 @@ "node": ">=10.12.0" } }, - "node_modules/v8flags": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.1.tgz", - "integrity": "sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==", - "dev": true, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index d69947fb60..e8e232ac2d 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -13,75 +13,80 @@ "./extension-api": "./dist-cms/libs/extension-api/index.js", "./localization-api": "./dist-cms/libs/localization-api/index.js", "./observable-api": "./dist-cms/libs/observable-api/index.js", - "./auth": "./dist-cms/shared/auth/index.js", - "./event": "./dist-cms/packages/core/event/index.js", - "./lit-element": "./dist-cms/packages/core/lit-element/index.js", - "./icon": "./dist-cms/shared/icon-registry/index.js", - "./models": "./dist-cms/shared/models/index.js", - "./resources": "./dist-cms/shared/resources/index.js", - "./router": "./dist-cms/shared/router/index.js", - "./style": "./dist-cms/shared/style/index.js", - "./utils": "./dist-cms/shared/utils/index.js", "./action": "./dist-cms/packages/core/action/index.js", + "./audit-log": "./dist-cms/packages/audit-log/index.js", + "./auth": "./dist-cms/packages/core/auth/index.js", + "./block-grid": "./dist-cms/packages/block/block-grid/index.js", + "./block-list": "./dist-cms/packages/block/block-list/index.js", + "./block-rte": "./dist-cms/packages/block/block-rte/index.js", + "./block-type": "./dist-cms/packages/block/block-type/index.js", + "./block": "./dist-cms/packages/block/block/index.js", + "./code-editor": "./dist-cms/packages/templating/code-editor/index.js", "./collection": "./dist-cms/packages/core/collection/index.js", "./components": "./dist-cms/packages/core/components/index.js", "./content-type": "./dist-cms/packages/core/content-type/index.js", "./culture": "./dist-cms/packages/core/culture/index.js", - "./data-type": "./dist-cms/packages/core/data-type/index.js", + "./current-user": "./dist-cms/packages/user/current-user/index.js", + "./data-type": "./dist-cms/packages/data-type/index.js", "./debug": "./dist-cms/packages/core/debug/index.js", - "./entity-action": "./dist-cms/packages/core/entity-action/index.js", - "./entity-bulk-action": "./dist-cms/packages/core/entity-bulk-action/index.js", - "./extension-registry": "./dist-cms/packages/core/extension-registry/index.js", - "./server-file-system": "./dist-cms/packages/core/server-file-system/index.js", - "./id": "./dist-cms/packages/core/id/index.js", - "./localization": "./dist-cms/packages/core/localization/index.js", - "./menu": "./dist-cms/packages/core/menu/index.js", - "./modal": "./dist-cms/packages/core/modal/index.js", - "./notification": "./dist-cms/packages/core/notification/index.js", - "./picker-input": "./dist-cms/packages/core/picker-input/index.js", - "./property": "./dist-cms/packages/core/property/index.js", - "./property-action": "./dist-cms/packages/core/property-action/index.js", - "./property-editor": "./dist-cms/packages/core/property-editor/index.js", - "./section": "./dist-cms/packages/core/section/index.js", - "./sorter": "./dist-cms/packages/core/sorter/index.js", - "./store": "./dist-cms/packages/core/store/index.js", - "./themes": "./dist-cms/packages/core/themes/index.js", - "./tree": "./dist-cms/packages/core/tree/index.js", - "./variant": "./dist-cms/packages/core/variant/index.js", - "./workspace": "./dist-cms/packages/core/workspace/index.js", - "./repository": "./dist-cms/packages/core/repository/index.js", - "./temporary-file": "./dist-cms/packages/core/temporary-file/index.js", - "./block": "./dist-cms/packages/block/index.js", - "./audit-log": "./dist-cms/packages/audit-log/index.js", "./dictionary": "./dist-cms/packages/dictionary/index.js", - "./document": "./dist-cms/packages/documents/documents/index.js", "./document-blueprint": "./dist-cms/packages/documents/document-blueprints/index.js", "./document-type": "./dist-cms/packages/documents/document-types/index.js", - "./media": "./dist-cms/packages/media/media/index.js", + "./document": "./dist-cms/packages/documents/documents/index.js", + "./dynamic-root": "./dist-cms/packages/dynamic-root/index.js", + "./entity-action": "./dist-cms/packages/core/entity-action/index.js", + "./entity-bulk-action": "./dist-cms/packages/core/entity-bulk-action/index.js", + "./event": "./dist-cms/packages/core/event/index.js", + "./extension-registry": "./dist-cms/packages/core/extension-registry/index.js", + "./icon": "./dist-cms/packages/core/icon-registry/index.js", + "./id": "./dist-cms/packages/core/id/index.js", + "./language": "./dist-cms/packages/language/index.js", + "./lit-element": "./dist-cms/packages/core/lit-element/index.js", + "./localization": "./dist-cms/packages/core/localization/index.js", + "./log-viewer": "./dist-cms/packages/log-viewer/index.js", "./media-type": "./dist-cms/packages/media/media-types/index.js", - "./member": "./dist-cms/packages/members/member/index.js", + "./media": "./dist-cms/packages/media/media/index.js", "./member-group": "./dist-cms/packages/members/member-group/index.js", "./member-type": "./dist-cms/packages/members/member-type/index.js", + "./member": "./dist-cms/packages/members/member/index.js", + "./menu": "./dist-cms/packages/core/menu/index.js", + "./modal": "./dist-cms/packages/core/modal/index.js", + "./models": "./dist-cms/packages/core/models/index.js", + "./notification": "./dist-cms/packages/core/notification/index.js", + "./object-type": "./dist-cms/packages/object-type/index.js", "./package": "./dist-cms/packages/packages/package/index.js", - "./language": "./dist-cms/packages/language/index.js", - "./dynamic-root": "./dist-cms/packages/dynamic-root/index.js", - "./log-viewer": "./dist-cms/packages/log-viewer/index.js", + "./partial-view": "./dist-cms/packages/templating/partial-views/index.js", + "./picker-input": "./dist-cms/packages/core/picker-input/index.js", + "./property-action": "./dist-cms/packages/core/property-action/index.js", + "./property-editor": "./dist-cms/packages/core/property-editor/index.js", + "./property": "./dist-cms/packages/core/property/index.js", "./relation-type": "./dist-cms/packages/relations/relation-types/index.js", "./relations": "./dist-cms/packages/relations/relations/index.js", - "./tags": "./dist-cms/packages/tags/index.js", + "./repository": "./dist-cms/packages/core/repository/index.js", + "./resources": "./dist-cms/packages/core/resources/index.js", + "./router": "./dist-cms/packages/core/router/index.js", + "./section": "./dist-cms/packages/core/section/index.js", + "./server-file-system": "./dist-cms/packages/core/server-file-system/index.js", + "./sorter": "./dist-cms/packages/core/sorter/index.js", "./static-file": "./dist-cms/packages/static-file/index.js", - "./partial-view": "./dist-cms/packages/templating/partial-views/index.js", + "./store": "./dist-cms/packages/core/store/index.js", + "./style": "./dist-cms/packages/core/style/index.js", "./stylesheet": "./dist-cms/packages/templating/stylesheets/index.js", + "./tags": "./dist-cms/packages/tags/index.js", "./template": "./dist-cms/packages/templating/templates/index.js", + "./temporary-file": "./dist-cms/packages/core/temporary-file/index.js", + "./themes": "./dist-cms/packages/core/themes/index.js", + "./tiny-mce": "./dist-cms/packages/tiny-mce/index.js", + "./tree": "./dist-cms/packages/core/tree/index.js", "./user-group": "./dist-cms/packages/user/user-group/index.js", - "./current-user": "./dist-cms/packages/user/current-user/index.js", - "./user": "./dist-cms/packages/user/user/index.js", "./user-permission": "./dist-cms/packages/user/user-permission/index.js", - "./code-editor": "./dist-cms/packages/templating/code-editor/index.js", + "./user": "./dist-cms/packages/user/user/index.js", + "./utils": "./dist-cms/packages/core/utils/index.js", + "./variant": "./dist-cms/packages/core/variant/index.js", + "./workspace": "./dist-cms/packages/core/workspace/index.js", "./external/backend-api": "./dist-cms/external/backend-api/index.js", "./external/dompurify": "./dist-cms/external/dompurify/index.js", "./external/lit": "./dist-cms/external/lit/index.js", - "./external/lodash": "./dist-cms/external/lodash/index.js", "./external/marked": "./dist-cms/external/marked/index.js", "./external/monaco-editor": "./dist-cms/external/monaco-editor/index.js", "./external/openid": "./dist-cms/external/openid/index.js", @@ -130,7 +135,6 @@ "lint:errors": "npm run lint -- --quiet", "lint:fix": "npm run lint -- --fix", "lint": "eslint src", - "new-extension": "plop --plopfile ./devops/plop/plop.js", "prepack": "tsc-alias -f -p src/tsconfig.build.json && npm run generate:jsonschema:dist && npm run wc-analyze && npm run wc-analyze:vscode && node ./devops/publish/cleanse-pkg.js", "preview": "vite preview --open", "storybook:build": "npm run wc-analyze && storybook build", @@ -159,7 +163,6 @@ "dompurify": "^3.0.8", "element-internals-polyfill": "^1.3.10", "lit": "^3.1.2", - "lodash-es": "4.17.21", "marked": "^12.0.0", "monaco-editor": "^0.46.0", "rxjs": "^7.8.1", @@ -184,7 +187,6 @@ "@storybook/web-components": "^7.6.15", "@storybook/web-components-vite": "^7.6.15", "@types/chai": "^4.3.5", - "@types/lodash-es": "^4.17.8", "@types/mocha": "^10.0.1", "@typescript-eslint/eslint-plugin": "^6.14.0", "@typescript-eslint/parser": "^6.14.0", @@ -208,7 +210,6 @@ "msw": "^1.3.2", "openapi-typescript-codegen": "^0.25.0", "playwright-msw": "^3.0.1", - "plop": "^4.0.0", "prettier": "3.0.3", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/src/Umbraco.Web.UI.Client/router-slot-2.3.0.tgz b/src/Umbraco.Web.UI.Client/router-slot-2.3.0.tgz deleted file mode 100644 index af84cfe3d3..0000000000 Binary files a/src/Umbraco.Web.UI.Client/router-slot-2.3.0.tgz and /dev/null differ 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 ba15e436e5..567d7e254c 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 @@ -15,6 +15,7 @@ const CORE_PACKAGES = [ import('../../packages/audit-log/umbraco-package.js'), import('../../packages/block/umbraco-package.js'), import('../../packages/core/umbraco-package.js'), + import('../../packages/data-type/umbraco-package.js'), import('../../packages/dictionary/umbraco-package.js'), import('../../packages/documents/umbraco-package.js'), import('../../packages/dynamic-root/umbraco-package.js'), @@ -24,6 +25,7 @@ const CORE_PACKAGES = [ import('../../packages/media/umbraco-package.js'), import('../../packages/members/umbraco-package.js'), import('../../packages/models-builder/umbraco-package.js'), + //import('../../packages/object-type/umbraco-package.js'),// This had nothing to register. import('../../packages/packages/umbraco-package.js'), import('../../packages/relations/umbraco-package.js'), import('../../packages/search/umbraco-package.js'), @@ -31,6 +33,7 @@ const CORE_PACKAGES = [ import('../../packages/static-file/umbraco-package.js'), import('../../packages/tags/umbraco-package.js'), import('../../packages/templating/umbraco-package.js'), + import('../../packages/tiny-mce/umbraco-package.js'), import('../../packages/umbraco-news/umbraco-package.js'), import('../../packages/user/umbraco-package.js'), ]; diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/installer.element.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/installer.element.ts index 5b856607a3..c9b282d2c9 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/installer.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/installer.element.ts @@ -1,6 +1,5 @@ import { UmbInstallerContext, UMB_INSTALLER_CONTEXT } from './installer.context.js'; -import type { CSSResultGroup } from '@umbraco-cms/backoffice/external/lit'; -import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import './consent/installer-consent.element.js'; @@ -57,8 +56,6 @@ export class UmbInstallerElement extends UmbLitElement { render() { return html`${this._renderSection()} `; } - - static styles: CSSResultGroup = [css``]; } export default UmbInstallerElement; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForDocumentTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForDocumentTypeResponseModel.ts index f5b3816589..b89c790244 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForDocumentTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForDocumentTypeResponseModel.ts @@ -5,6 +5,7 @@ import type { DocumentTypePropertyTypeContainerResponseModel } from './DocumentTypePropertyTypeContainerResponseModel'; import type { DocumentTypePropertyTypeResponseModel } from './DocumentTypePropertyTypeResponseModel'; +import type { ReferenceByIdModel } from './ReferenceByIdModel'; export type ContentTypeForDocumentTypeResponseModel = { alias: string; @@ -14,6 +15,7 @@ export type ContentTypeForDocumentTypeResponseModel = { allowedAsRoot: boolean; variesByCulture: boolean; variesBySegment: boolean; + collection?: ReferenceByIdModel | null; isElement: boolean; properties: Array; containers: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMediaTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMediaTypeResponseModel.ts index 457df240bc..16d6ad3480 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMediaTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMediaTypeResponseModel.ts @@ -5,6 +5,7 @@ import type { MediaTypePropertyTypeContainerResponseModel } from './MediaTypePropertyTypeContainerResponseModel'; import type { MediaTypePropertyTypeResponseModel } from './MediaTypePropertyTypeResponseModel'; +import type { ReferenceByIdModel } from './ReferenceByIdModel'; export type ContentTypeForMediaTypeResponseModel = { alias: string; @@ -14,6 +15,7 @@ export type ContentTypeForMediaTypeResponseModel = { allowedAsRoot: boolean; variesByCulture: boolean; variesBySegment: boolean; + collection?: ReferenceByIdModel | null; isElement: boolean; properties: Array; containers: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMemberTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMemberTypeResponseModel.ts index c8223ec647..cb0ad99ab8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMemberTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMemberTypeResponseModel.ts @@ -5,6 +5,7 @@ import type { MemberTypePropertyTypeContainerResponseModel } from './MemberTypePropertyTypeContainerResponseModel'; import type { MemberTypePropertyTypeResponseModel } from './MemberTypePropertyTypeResponseModel'; +import type { ReferenceByIdModel } from './ReferenceByIdModel'; export type ContentTypeForMemberTypeResponseModel = { alias: string; @@ -14,6 +15,7 @@ export type ContentTypeForMemberTypeResponseModel = { allowedAsRoot: boolean; variesByCulture: boolean; variesBySegment: boolean; + collection?: ReferenceByIdModel | null; isElement: boolean; properties: Array; containers: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeReferenceResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeReferenceResponseModelBaseModel.ts index a6e3ce7d8b..af8e13c191 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeReferenceResponseModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeReferenceResponseModelBaseModel.ts @@ -3,9 +3,11 @@ /* tslint:disable */ /* eslint-disable */ +import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type ContentTypeReferenceResponseModelBaseModel = { id: string; icon: string; - hasListView: boolean; + collection?: ReferenceByIdModel | null; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForDocumentTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForDocumentTypeRequestModel.ts index fa26c2f097..91540e1f32 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForDocumentTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForDocumentTypeRequestModel.ts @@ -15,6 +15,7 @@ export type CreateContentTypeForDocumentTypeRequestModel = { allowedAsRoot: boolean; variesByCulture: boolean; variesBySegment: boolean; + collection?: ReferenceByIdModel | null; isElement: boolean; properties: Array; containers: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMediaTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMediaTypeRequestModel.ts index 16d446f260..3fe3830e3a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMediaTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMediaTypeRequestModel.ts @@ -15,6 +15,7 @@ export type CreateContentTypeForMediaTypeRequestModel = { allowedAsRoot: boolean; variesByCulture: boolean; variesBySegment: boolean; + collection?: ReferenceByIdModel | null; isElement: boolean; properties: Array; containers: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMemberTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMemberTypeRequestModel.ts index 2d652a28b9..103e02ebf5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMemberTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMemberTypeRequestModel.ts @@ -5,6 +5,7 @@ import type { CreateMemberTypePropertyTypeContainerRequestModel } from './CreateMemberTypePropertyTypeContainerRequestModel'; import type { CreateMemberTypePropertyTypeRequestModel } from './CreateMemberTypePropertyTypeRequestModel'; +import type { ReferenceByIdModel } from './ReferenceByIdModel'; export type CreateContentTypeForMemberTypeRequestModel = { alias: string; @@ -14,6 +15,7 @@ export type CreateContentTypeForMemberTypeRequestModel = { allowedAsRoot: boolean; variesByCulture: boolean; variesBySegment: boolean; + collection?: ReferenceByIdModel | null; isElement: boolean; properties: Array; containers: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForDocumentTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForDocumentTypeRequestModel.ts index 752409e225..55e6966d8c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForDocumentTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForDocumentTypeRequestModel.ts @@ -3,6 +3,7 @@ /* tslint:disable */ /* eslint-disable */ +import type { ReferenceByIdModel } from './ReferenceByIdModel'; import type { UpdateDocumentTypePropertyTypeContainerRequestModel } from './UpdateDocumentTypePropertyTypeContainerRequestModel'; import type { UpdateDocumentTypePropertyTypeRequestModel } from './UpdateDocumentTypePropertyTypeRequestModel'; @@ -14,6 +15,7 @@ export type UpdateContentTypeForDocumentTypeRequestModel = { allowedAsRoot: boolean; variesByCulture: boolean; variesBySegment: boolean; + collection?: ReferenceByIdModel | null; isElement: boolean; properties: Array; containers: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMediaTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMediaTypeRequestModel.ts index 40e766fdcc..6edc724854 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMediaTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMediaTypeRequestModel.ts @@ -3,6 +3,7 @@ /* tslint:disable */ /* eslint-disable */ +import type { ReferenceByIdModel } from './ReferenceByIdModel'; import type { UpdateMediaTypePropertyTypeContainerRequestModel } from './UpdateMediaTypePropertyTypeContainerRequestModel'; import type { UpdateMediaTypePropertyTypeRequestModel } from './UpdateMediaTypePropertyTypeRequestModel'; @@ -14,6 +15,7 @@ export type UpdateContentTypeForMediaTypeRequestModel = { allowedAsRoot: boolean; variesByCulture: boolean; variesBySegment: boolean; + collection?: ReferenceByIdModel | null; isElement: boolean; properties: Array; containers: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMemberTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMemberTypeRequestModel.ts index 4aadb2a232..6e32bbb080 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMemberTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMemberTypeRequestModel.ts @@ -3,6 +3,7 @@ /* tslint:disable */ /* eslint-disable */ +import type { ReferenceByIdModel } from './ReferenceByIdModel'; import type { UpdateMemberTypePropertyTypeContainerRequestModel } from './UpdateMemberTypePropertyTypeContainerRequestModel'; import type { UpdateMemberTypePropertyTypeRequestModel } from './UpdateMemberTypePropertyTypeRequestModel'; @@ -14,6 +15,7 @@ export type UpdateContentTypeForMemberTypeRequestModel = { allowedAsRoot: boolean; variesByCulture: boolean; variesBySegment: boolean; + collection?: ReferenceByIdModel | null; isElement: boolean; properties: Array; containers: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/lodash/index.ts b/src/Umbraco.Web.UI.Client/src/external/lodash/index.ts deleted file mode 100644 index a293c363df..0000000000 --- a/src/Umbraco.Web.UI.Client/src/external/lodash/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { debounce, clamp, camelCase, groupBy } from 'lodash-es'; diff --git a/src/Umbraco.Web.UI.Client/src/external/router-slot/router-slot.ts b/src/Umbraco.Web.UI.Client/src/external/router-slot/router-slot.ts index 6e2425cd9a..4f83ee9415 100644 --- a/src/Umbraco.Web.UI.Client/src/external/router-slot/router-slot.ts +++ b/src/Umbraco.Web.UI.Client/src/external/router-slot/router-slot.ts @@ -207,7 +207,7 @@ export class RouterSlot extends HTMLElement implements IRouter // Register that the path has changed so the correct route can be loaded. if (navigate) { - this.render().then(); + this.render(); } } @@ -259,6 +259,8 @@ export class RouterSlot extends HTMLElement implements IRouter */ protected clearChildren() { while (this.firstChild != null) { + // If our route-component has a destroy method, then call it. + (this.firstChild as any).destroy?.(); this.firstChild.parentNode!.removeChild(this.firstChild); } } diff --git a/src/Umbraco.Web.UI.Client/src/libs/class-api/class.mixin.ts b/src/Umbraco.Web.UI.Client/src/libs/class-api/class.mixin.ts index 42039c3db4..465d7e3460 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/class-api/class.mixin.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/class-api/class.mixin.ts @@ -95,15 +95,19 @@ export const UmbClassMixin = (superClass: T) => { this._host.addController(this); } - getHostElement() { + getHostElement(): Element { return this._host.getHostElement(); } - get controllerAlias() { + get controllerAlias(): UmbControllerAlias { return this._controllerAlias; } - observe(source: Observable, callback: (_value: T) => void, controllerAlias?: UmbControllerAlias) { + observe( + source: Observable, + callback: (_value: T) => void, + controllerAlias?: UmbControllerAlias, + ): UmbObserverController { return new UmbObserverController(this, source, callback, controllerAlias); } @@ -111,18 +115,21 @@ export const UmbClassMixin = (superClass: T) => { BaseType = unknown, ResultType extends BaseType = BaseType, InstanceType extends ResultType = ResultType, - >(contextAlias: string | UmbContextToken, instance: InstanceType) { + >( + contextAlias: string | UmbContextToken, + instance: InstanceType, + ): UmbContextProviderController { return new UmbContextProviderController(this, contextAlias, instance); } consumeContext( contextAlias: string | UmbContextToken, callback: UmbContextCallback, - ) { + ): UmbContextConsumerController { return new UmbContextConsumerController(this, contextAlias, callback); } - public destroy() { + public destroy(): void { if (this._host) { this._host.removeController(this); this._host = undefined as never; diff --git a/src/Umbraco.Web.UI.Client/src/libs/class-api/context-base.class.ts b/src/Umbraco.Web.UI.Client/src/libs/class-api/context-base.class.ts index d299c3a9af..cb4440e022 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/class-api/context-base.class.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/class-api/context-base.class.ts @@ -1,5 +1,6 @@ import type { UmbContextToken } from '../context-api/index.js'; import type { UmbControllerHost } from '../controller-api/index.js'; +import type { UmbContext } from './context.interface.js'; import { UmbBaseController } from './controller-base.class.js'; /** @@ -7,10 +8,12 @@ import { UmbBaseController } from './controller-base.class.js'; * */ export abstract class UmbContextBase< - ContextType, - // eslint-disable-next-line @typescript-eslint/no-explicit-any - GivenContextToken extends UmbContextToken = UmbContextToken, -> extends UmbBaseController { + ContextType, + GivenContextToken extends UmbContextToken = UmbContextToken, + > + extends UmbBaseController + implements UmbContext +{ constructor(host: UmbControllerHost, contextToken: GivenContextToken | string) { super(host, contextToken.toString()); this.provideContext(contextToken, this as unknown as ContextType); diff --git a/src/Umbraco.Web.UI.Client/src/libs/class-api/context.interface.ts b/src/Umbraco.Web.UI.Client/src/libs/class-api/context.interface.ts new file mode 100644 index 0000000000..23181093ad --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/libs/class-api/context.interface.ts @@ -0,0 +1,3 @@ +import type { UmbController } from '../controller-api/controller.interface.js'; + +export interface UmbContext extends UmbController {} diff --git a/src/Umbraco.Web.UI.Client/src/libs/class-api/index.ts b/src/Umbraco.Web.UI.Client/src/libs/class-api/index.ts index 72155e8b3b..dd4339f71f 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/class-api/index.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/class-api/index.ts @@ -1,4 +1,5 @@ export * from './class.interface.js'; export * from './class.mixin.js'; +export * from './context.interface.js'; export * from './context-base.class.js'; export * from './controller-base.class.js'; diff --git a/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.controller.ts index c7d2d7df28..fcafe8efb8 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.controller.ts @@ -24,7 +24,7 @@ export class UmbContextConsumerController { return ( this.#promise ?? (this.#promise = new Promise((resolve) => { @@ -112,7 +112,7 @@ export class UmbContextConsumer { + #handleNewProvider = (event: Event): void => { // Does seem a bit unnecessary, we could just assume the type via type casting... if (!isUmbContextProvideEventType(event)) return; @@ -163,7 +163,7 @@ export class UmbContextConsumer { + #handleContextRequest = ((event: UmbContextRequestEvent): void => { if (event.contextAlias !== this.#contextAlias) return; if (event.stopAtContextMatch) { @@ -71,7 +71,7 @@ export class UmbContextProvider { + private _handleDebugContextRequest = (event: any): void => { // If the event doesn't have an instances property, create it. if (!event.instances) { event.instances = new Map(); diff --git a/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host-provider.element.ts b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host-provider.element.ts index 75264a36bd..b6269d07d3 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host-provider.element.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host-provider.element.ts @@ -1,6 +1,8 @@ -import type { UmbControllerHostElement} from './controller-host-element.mixin.js'; +import type { UmbControllerHostElement } from './controller-host-element.mixin.js'; import { UmbControllerHostElementMixin } from './controller-host-element.mixin.js'; +import { customElement } from '@umbraco-cms/backoffice/external/lit'; +@customElement('umb-controller-host-provider') export class UmbControllerHostProviderElement extends UmbControllerHostElementMixin(HTMLElement) implements UmbControllerHostElement @@ -26,8 +28,6 @@ export class UmbControllerHostProviderElement } } -customElements.define('umb-controller-host-provider', UmbControllerHostProviderElement); - declare global { interface HTMLElementTagNameMap { 'umb-controller-host-provider': UmbControllerHostProviderElement; diff --git a/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host.mixin.ts b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host.mixin.ts index edd76a7eb8..5b5888121a 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host.mixin.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host.mixin.ts @@ -99,32 +99,34 @@ export const UmbControllerHostMixin = (superClass: T } } - hostConnected() { + hostConnected(): void { this.#attached = true; // Note: this might not be optimal, as if hostDisconnected remove one of the controllers, then the next controller will be skipped. this.#controllers.forEach((ctrl: UmbController) => ctrl.hostConnected()); } - hostDisconnected() { + hostDisconnected(): void { this.#attached = false; // Note: this might not be optimal, as if hostDisconnected remove one of the controllers, then the next controller will be skipped. this.#controllers.forEach((ctrl: UmbController) => ctrl.hostDisconnected()); } - destroy() { + destroy(): void { let ctrl: UmbController | undefined; - //let prev = null; + let prev = null; // Note: A very important way of doing this loop, as foreach will skip over the next item if the current item is removed. while ((ctrl = this.#controllers[0])) { ctrl.destroy(); - /* - //This code can help debug if there is some controller that does not destroy properly: (When a controller is destroyed it should remove it self) + + // Help developer realize that they made a mistake in code: if (ctrl === prev) { - console.log('WUPS, we have a controller that does not destroy it self'); - debugger; + throw new Error( + `Controller with controller alias: '${ctrl.controllerAlias?.toString()}' and class name: '${ + (ctrl as any).constructor.name + }', does not remove it self when destroyed. This can cause memory leaks. Please fix this issue.`, + ); } prev = ctrl; - */ } this.#controllers.length = 0; } diff --git a/src/Umbraco.Web.UI.Client/src/libs/element-api/element.mixin.ts b/src/Umbraco.Web.UI.Client/src/libs/element-api/element.mixin.ts index a34ea3a2c7..dbf72e6a23 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/element-api/element.mixin.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/element-api/element.mixin.ts @@ -50,7 +50,7 @@ export const UmbElementMixin = (superClass: T) * @return {UmbObserverController} Reference to a Observer Controller instance * @memberof UmbElementMixin */ - observe(source: Observable, callback: ObserverCallback, unique?: string) { + observe(source: Observable, callback: ObserverCallback, unique?: string): UmbObserverController { return new UmbObserverController(this, source, callback, unique); } diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts index 8d34b480c6..bd0846aebf 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts @@ -1,4 +1,4 @@ -import type { ManifestTypeMap, SpecificManifestTypeOrManifestBase } from '../types/map.types.js'; +import type { SpecificManifestTypeOrManifestBase } from '../types/map.types.js'; import { map } from '@umbraco-cms/backoffice/external/rxjs'; import type { ManifestBase, @@ -22,7 +22,7 @@ export type PermittedControllerType = */ export abstract class UmbBaseExtensionsInitializer< ManifestTypes extends ManifestBase, - ManifestTypeName extends keyof ManifestTypeMap | string, + ManifestTypeName extends string, ManifestType extends ManifestBase = SpecificManifestTypeOrManifestBase, ControllerType extends UmbBaseExtensionInitializer = UmbBaseExtensionInitializer, MyPermittedControllerType extends ControllerType = PermittedControllerType, @@ -45,7 +45,7 @@ export abstract class UmbBaseExtensionsInitializer< constructor( host: UmbControllerHost, - extensionRegistry: UmbExtensionRegistry, + extensionRegistry: UmbExtensionRegistry, type: ManifestTypeName | Array, filter: undefined | null | ((manifest: ManifestType) => boolean), onChange?: (permittedManifests: Array) => void, diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-api-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-api-initializer.controller.ts index 94fe20de65..09f91f7509 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-api-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-api-initializer.controller.ts @@ -1,4 +1,4 @@ -import type { ManifestTypeMap, SpecificManifestTypeOrManifestBase } from '../types/map.types.js'; +import type { SpecificManifestTypeOrManifestBase } from '../types/map.types.js'; import { type PermittedControllerType, UmbBaseExtensionsInitializer, @@ -21,7 +21,7 @@ TODO: Correct this, start using builder pattern: */ export class UmbExtensionsApiInitializer< ManifestTypes extends ManifestApi, - ManifestTypeName extends keyof ManifestTypeMap | string = string, + ManifestTypeName extends string = string, ManifestType extends ManifestBase = SpecificManifestTypeOrManifestBase, ManifestTypeAsApi extends ManifestApi = ManifestType extends ManifestApi ? ManifestType : never, ControllerType extends UmbExtensionApiInitializer = UmbExtensionApiInitializer, diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-element-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-element-initializer.controller.ts index ed5b6d3466..4be1d76664 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-element-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-element-initializer.controller.ts @@ -1,6 +1,6 @@ import type { ManifestBase } from '../types/index.js'; import type { UmbExtensionRegistry } from '../registry/extension.registry.js'; -import type { ManifestTypeMap, SpecificManifestTypeOrManifestBase } from '../types/map.types.js'; +import type { SpecificManifestTypeOrManifestBase } from '../types/map.types.js'; import { UmbExtensionElementInitializer } from './extension-element-initializer.controller.js'; import { type PermittedControllerType, @@ -11,8 +11,8 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; /** */ export class UmbExtensionsElementInitializer< - ManifestTypes extends ManifestBase, - ManifestTypeName extends keyof ManifestTypeMap | string = ManifestTypes['type'], + ManifestTypes extends ManifestBase = ManifestBase, + ManifestTypeName extends string = string, ManifestType extends ManifestBase = SpecificManifestTypeOrManifestBase, ControllerType extends UmbExtensionElementInitializer = UmbExtensionElementInitializer, MyPermittedControllerType extends ControllerType = PermittedControllerType, diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-manifest-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-manifest-initializer.controller.ts index c84b547002..c8c2e1ae31 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-manifest-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-manifest-initializer.controller.ts @@ -1,4 +1,4 @@ -import type { ManifestTypeMap, SpecificManifestTypeOrManifestBase } from '../types/map.types.js'; +import type { SpecificManifestTypeOrManifestBase } from '../types/map.types.js'; import { UmbExtensionManifestInitializer } from './extension-manifest-initializer.controller.js'; import { type PermittedControllerType, @@ -11,7 +11,7 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; */ export class UmbExtensionsManifestInitializer< ManifestTypes extends ManifestBase, - ManifestTypeName extends keyof ManifestTypeMap | string, + ManifestTypeName extends string, ManifestType extends ManifestBase = SpecificManifestTypeOrManifestBase, ControllerType extends UmbExtensionManifestInitializer = UmbExtensionManifestInitializer, MyPermittedControllerType extends ControllerType = PermittedControllerType, diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts index 795a2e704c..4bbda726be 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts @@ -1,5 +1,5 @@ import type { ManifestBase, ManifestKind } from '../types/index.js'; -import type { ManifestTypeMap, SpecificManifestTypeOrManifestBase } from '../types/map.types.js'; +import type { SpecificManifestTypeOrManifestBase } from '../types/map.types.js'; import { UmbBasicState } from '@umbraco-cms/backoffice/observable-api'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import { map, distinctUntilChanged, combineLatest, of, switchMap } from '@umbraco-cms/backoffice/external/rxjs'; @@ -67,7 +67,7 @@ function extensionAndKindMatchSingleMemoization< return previousValue === currentValue; } -const sortExtensions = (a: ManifestBase, b: ManifestBase) => (b.weight || 0) - (a.weight || 0); +const sortExtensions = (a: ManifestBase, b: ManifestBase): number => (b.weight || 0) - (a.weight || 0); export class UmbExtensionRegistry< IncomingManifestTypes extends ManifestBase, @@ -81,7 +81,7 @@ export class UmbExtensionRegistry< private _kinds = new UmbBasicState>>([]); public readonly kinds = this._kinds.asObservable(); - defineKind(kind: ManifestKind) { + defineKind(kind: ManifestKind): void { const extensionsValues = this._extensions.getValue(); const extension = extensionsValues.find( (extension) => extension.alias === (kind as ManifestKind).alias, @@ -174,7 +174,7 @@ export class UmbExtensionRegistry< return true; } - #kindsOfType | string>(type: Key) { + #kindsOfType(type: Key): Observable[]> { return this.kinds.pipe( map((kinds) => kinds.filter((kind) => kind.matchType === type)), distinctUntilChanged(extensionArrayMemoization), @@ -182,15 +182,15 @@ export class UmbExtensionRegistry< } #extensionsOfType< - Key extends keyof ManifestTypeMap | string, + Key extends string, T extends ManifestBase = SpecificManifestTypeOrManifestBase, - >(type: Key) { + >(type: Key): Observable> { return this.extensions.pipe( map((exts) => exts.filter((ext) => ext.type === type) as unknown as T[]), distinctUntilChanged(extensionArrayMemoization), ); } - #kindsOfTypes(types: string[]) { + #kindsOfTypes(types: string[]): Observable[]> { return this.kinds.pipe( map((kinds) => kinds.filter((kind) => types.indexOf(kind.matchType) !== -1)), distinctUntilChanged(extensionArrayMemoization), @@ -252,7 +252,7 @@ export class UmbExtensionRegistry< * @param alias {string} - The alias of the extensions to get. * @returns {Observable} - An observable of the extension that matches the alias. */ - byAlias(alias: string) { + byAlias(alias: string): Observable { return this.extensions.pipe( map((exts) => exts.find((ext) => ext.alias === alias)), distinctUntilChanged(extensionSingleMemoization), @@ -277,10 +277,10 @@ export class UmbExtensionRegistry< * @param alias {string} - The alias of the extensions to get. * @returns {Observable} - An observable of the extensions that matches the type and alias. */ - byTypeAndAlias< - Key extends keyof ManifestTypeMap | string, - T extends ManifestBase = SpecificManifestTypeOrManifestBase, - >(type: Key, alias: string) { + byTypeAndAlias>( + type: Key, + alias: string, + ): Observable { return combineLatest([ this.extensions.pipe( map((exts) => exts.find((ext) => ext.type === type && ext.alias === alias)), @@ -297,10 +297,10 @@ export class UmbExtensionRegistry< */ getByTypeAndAlias = this.byTypeAndAlias.bind(this); - byTypeAndAliases< - Key extends keyof ManifestTypeMap | string, - T extends ManifestBase = SpecificManifestTypeOrManifestBase, - >(type: Key, aliases: Array) { + byTypeAndAliases>( + type: Key, + aliases: Array, + ): Observable> { return combineLatest([ this.extensions.pipe( map((exts) => exts.filter((ext) => ext.type === type && aliases.indexOf(ext.alias) !== -1) as unknown as T[]), @@ -325,10 +325,10 @@ export class UmbExtensionRegistry< * @param filter {(ext: T): void} - The filter method to use to filter the extensions * @returns {Observable>} - An observable of the extensions that matches the type and filter method */ - byTypeAndFilter< - Key extends keyof ManifestTypeMap | string, - T extends ManifestBase = SpecificManifestTypeOrManifestBase, - >(type: Key, filter: (ext: T) => boolean) { + byTypeAndFilter>( + type: Key, + filter: (ext: T) => boolean, + ): Observable> { return combineLatest([ this.extensions.pipe( map((exts) => exts.filter((ext) => ext.type === type && filter(ext as unknown as T)) as unknown as T[]), @@ -346,10 +346,9 @@ export class UmbExtensionRegistry< * @param type {string} - The type of the extensions to get. * @returns {Observable} - An observable of the extensions that matches the type. */ - byType< - Key extends keyof ManifestTypeMap | string, - T extends ManifestBase = SpecificManifestTypeOrManifestBase, - >(type: Key) { + byType>( + type: Key, + ): Observable> { return combineLatest([this.#extensionsOfType(type), this.#kindsOfType(type)]).pipe( map(this.#mergeExtensionsWithKinds), distinctUntilChanged(extensionAndKindMatchArrayMemoization), diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/map.types.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/map.types.ts index f02c6efe93..255621e28f 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/map.types.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/map.types.ts @@ -1,6 +1,6 @@ import type { ManifestBase } from './manifest-base.interface.js'; -export type ManifestTypeMap = { +type ManifestTypeMapGenerator = { [Manifest in ManifestTypes as Manifest['type']]: Manifest; } & { [key: string]: ManifestBase; @@ -8,5 +8,6 @@ export type ManifestTypeMap = { export type SpecificManifestTypeOrManifestBase< ManifestTypes extends ManifestBase, - T extends keyof ManifestTypeMap | string, -> = T extends keyof ManifestTypeMap ? ManifestTypeMap[T] : ManifestBase; + T extends string, + ManifestTypeMapType = ManifestTypeMapGenerator, +> = T extends keyof ManifestTypeMapType ? ManifestTypeMapType[T] : ManifestBase; diff --git a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.ts index 5b22a70ada..8804fdf918 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.ts @@ -65,6 +65,7 @@ export class UmbLocalizationController extends UmbObserver implement #host: UmbControllerHost; #alias?: UmbControllerAlias; - public get controllerAlias() { + public get controllerAlias(): UmbControllerAlias { return this.#alias; } diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts index 2421543b17..2b4f4af2b3 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts @@ -674,6 +674,8 @@ export const data: Array = [ { label: 'Mocked Block Type for Block Grid', contentElementTypeKey: '4f68ba66-6fb2-4778-83b8-6ab4ca3a7c5c', + allowAtRoot: true, + allowInAreas: true, rowMinSpan: 1, rowMaxSpan: 2, columnSpanOptions: [ @@ -701,7 +703,13 @@ export const data: Array = [ rowSpan: 1, minAllowed: 1, maxAllowed: 2, - specifiedAllowance: [], + specifiedAllowance: [ + { + elementTypeKey: '4f68ba66-6fb2-4778-83b8-6ab4ca3a7c5c', + minAllowed: 1, + maxAllowed: 2, + }, + ], }, { key: 'area2_key', @@ -720,7 +728,7 @@ export const data: Array = [ iconColor: '#FFFDD0', backgroundColor: '#633f32', editorSize: 'medium', - icon: 'icon-coffee', + allowInAreas: true, }, { @@ -728,37 +736,36 @@ export const data: Array = [ contentElementTypeKey: 'headline-umbraco-demo-block-id', backgroundColor: 'gold', editorSize: 'medium', - icon: 'icon-edit', groupKey: 'demo-block-group-id', + allowInAreas: true, }, { label: 'Image', contentElementTypeKey: 'image-umbraco-demo-block-id', editorSize: 'medium', - icon: 'icon-picture', - groupKey: 'demo-block-group-id', + allowInAreas: true, }, { label: 'Rich Text', contentElementTypeKey: 'rich-text-umbraco-demo-block-id', editorSize: 'medium', - icon: 'icon-diploma', groupKey: 'demo-block-group-id', + allowInAreas: true, }, { label: 'Two Column Layout', contentElementTypeKey: 'two-column-layout-umbraco-demo-block-id', editorSize: 'medium', - icon: 'icon-book-alt', groupKey: 'demo-block-group-id', + allowAtRoot: false, }, { label: 'Test broken group key', contentElementTypeKey: 'test-block-id', editorSize: 'medium', - icon: 'icon-war', groupKey: 'group-id-that-does-not-exist', + allowAtRoot: true, }, ], }, 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 b6ee696086..c108e83cfd 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 @@ -754,8 +754,8 @@ export const data: Array = [ keepAllVersionsNewerThanDays: null, keepLatestVersionPerDayForDays: null, }, + collection: { id: 'dt-collectionView' }, }, - { allowedTemplates: [], defaultTemplate: null, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts index a04baedb89..a1ef7a9e34 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts @@ -118,6 +118,7 @@ const documentTypeDetailMapper = (item: UmbMockDocumentTypeModel): DocumentTypeR compositions: item.compositions, allowedTemplates: item.allowedTemplates, cleanup: item.cleanup, + collection: item.collection, }; }; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.data.ts index 7c408ab642..46ee3ea935 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.data.ts @@ -23,7 +23,6 @@ export const data: Array = [ documentType: { id: 'all-property-editors-document-type-id', icon: 'icon-document', - hasListView: false, }, hasChildren: false, noAccess: false, @@ -502,7 +501,6 @@ export const data: Array = [ documentType: { id: '29643452-cff9-47f2-98cd-7de4b6807681', icon: 'icon-document', - hasListView: false, }, hasChildren: false, noAccess: false, @@ -626,7 +624,6 @@ export const data: Array = [ documentType: { id: '29643452-cff9-47f2-98cd-7de4b6807681', icon: 'icon-document', - hasListView: false, }, hasChildren: false, noAccess: false, @@ -707,7 +704,7 @@ export const data: Array = [ documentType: { id: 'simple-document-type-id', icon: 'icon-document', - hasListView: true, + collection: { id: 'dt-collectionView'}, }, hasChildren: false, noAccess: false, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts index 106a1a8f92..76e2dfaafd 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts @@ -47,7 +47,6 @@ const treeItemMapper = (model: UmbMockDocumentModel): Omit { return { documentType: { - hasListView: model.documentType.hasListView, + collection: model.documentType.collection, icon: model.documentType.icon, id: model.documentType.id, }, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.data.ts index 74f5b0fcca..8535971a82 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.data.ts @@ -67,7 +67,7 @@ export const data: Array = [ sortOrder: 0, }, ], - allowedAsRoot: false, + allowedAsRoot: true, variesByCulture: false, variesBySegment: false, isElement: false, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.db.ts index dc4b98d1f9..e6c08f434a 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.db.ts @@ -7,11 +7,14 @@ import type { UmbMockMediaTypeModel } from './media-type.data.js'; import { data } from './media-type.data.js'; import { UmbId } from '@umbraco-cms/backoffice/id'; import type { + AllowedMediaTypeModel, CreateFolderRequestModel, CreateMediaTypeRequestModel, MediaTypeItemResponseModel, MediaTypeResponseModel, + MediaTypeSortModel, MediaTypeTreeItemResponseModel, + PagedAllowedMediaTypeModel, } from '@umbraco-cms/backoffice/external/backend-api'; class UmbMediaTypeMockDB extends UmbEntityMockDbBase { @@ -27,6 +30,21 @@ class UmbMediaTypeMockDB extends UmbEntityMockDbBase { constructor(data: Array) { super(data); } + + getAllowedChildren(id: string): PagedAllowedMediaTypeModel { + const mediaType = this.detail.read(id); + const allowedMediaTypes = mediaType.allowedMediaTypes.map((sortModel: MediaTypeSortModel) => + this.detail.read(sortModel.mediaType.id), + ); + const mappedItems = allowedMediaTypes.map((item: UmbMockMediaTypeModel) => allowedMediaTypeMapper(item)); + return { items: mappedItems, total: mappedItems.length }; + } + + getAllowedAtRoot(): PagedAllowedMediaTypeModel { + const mockItems = this.data.filter((item) => item.allowedAsRoot); + const mappedItems = mockItems.map((item) => allowedMediaTypeMapper(item)); + return { items: mappedItems, total: mappedItems.length }; + } } const createMockMediaTypeFolderMapper = (request: CreateFolderRequestModel): UmbMockMediaTypeModel => { @@ -108,4 +126,13 @@ const mediaTypeItemMapper = (item: UmbMockMediaTypeModel): MediaTypeItemResponse }; }; +const allowedMediaTypeMapper = (item: UmbMockMediaTypeModel): AllowedMediaTypeModel => { + return { + id: item.id, + name: item.name, + description: item.description, + icon: item.icon, + }; +}; + export const umbMediaTypeMockDb = new UmbMediaTypeMockDB(data); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.data.ts index c904b680f0..02173732f6 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.data.ts @@ -18,7 +18,6 @@ export const data: Array = [ mediaType: { id: 'media-type-1-id', icon: 'icon-bug', - hasListView: false, }, values: [ { @@ -47,7 +46,6 @@ export const data: Array = [ mediaType: { id: 'media-type-1-id', icon: 'icon-bug', - hasListView: false, }, values: [ { @@ -76,7 +74,6 @@ export const data: Array = [ mediaType: { id: 'media-type-1-id', icon: 'icon-bug', - hasListView: false, }, values: [], variants: [ @@ -100,7 +97,6 @@ export const data: Array = [ mediaType: { id: 'media-type-1-id', icon: 'icon-bug', - hasListView: false, }, values: [], variants: [ @@ -124,7 +120,6 @@ export const data: Array = [ mediaType: { id: 'media-type-1-id', icon: 'icon-bug', - hasListView: false, }, values: [ { @@ -153,7 +148,6 @@ export const data: Array = [ mediaType: { id: 'media-type-1-id', icon: 'icon-bug', - hasListView: false, }, values: [ { @@ -161,14 +155,16 @@ export const data: Array = [ value: 'Every day, a rabbit in a military costume greets me at the front door', }, ], - variants: [{ - publishDate: '2023-02-06T15:31:51.354764', - culture: 'en-us', - segment: null, - name: 'John Doe', - createDate: '2023-02-06T15:31:46.876902', - updateDate: '2023-02-06T15:31:51.354764', - },], + variants: [ + { + publishDate: '2023-02-06T15:31:51.354764', + culture: 'en-us', + segment: null, + name: 'John Doe', + createDate: '2023-02-06T15:31:46.876902', + updateDate: '2023-02-06T15:31:51.354764', + }, + ], urls: [], }, { @@ -180,7 +176,6 @@ export const data: Array = [ mediaType: { id: 'media-type-1-id', icon: 'icon-bug', - hasListView: false, }, values: [ { @@ -209,7 +204,6 @@ export const data: Array = [ mediaType: { id: 'media-type-1-id', icon: 'icon-bug', - hasListView: false, }, values: [ { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.db.ts index 6a550904ce..a87acd02d9 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.db.ts @@ -34,7 +34,7 @@ const treeItemMapper = (model: UmbMockMediaModel): Omit { const itemMapper = (model: UmbMockMediaModel): MediaItemResponseModel => { return { mediaType: { - hasListView: model.mediaType.hasListView, + collection: model.mediaType.collection, icon: model.mediaType.icon, id: model.mediaType.id, }, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/member/member.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/member/member.data.ts index 36f8dd3244..89194a6adf 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/member/member.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/member/member.data.ts @@ -14,7 +14,7 @@ export const data: Array = [ lastLockoutDate: null, lastLoginDate: null, lastPasswordChangeDate: null, - memberType: { id: 'member-type-1-id', icon: '', hasListView: false }, + memberType: { id: 'member-type-1-id', icon: '' }, username: 'member1', values: [], variants: [ @@ -38,7 +38,7 @@ export const data: Array = [ lastLockoutDate: null, lastLoginDate: null, lastPasswordChangeDate: null, - memberType: { id: 'member-type-1-id', icon: '', hasListView: false }, + memberType: { id: 'member-type-1-id', icon: '' }, username: 'member2', values: [], variants: [ @@ -62,7 +62,7 @@ export const data: Array = [ lastLockoutDate: null, lastLoginDate: null, lastPasswordChangeDate: null, - memberType: { id: 'member-type-1-id', icon: '', hasListView: false }, + memberType: { id: 'member-type-1-id', icon: '' }, username: 'member3', values: [], variants: [ diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/member/member.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/member/member.db.ts index e03bc668f1..59b36d0ead 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/member/member.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/member/member.db.ts @@ -42,7 +42,6 @@ const createDetailMockMapper = (request: CreateMemberRequestModel): UmbMockMembe memberType: { id: memberType.id, icon: memberType.icon, - hasListView: memberType.hasListView, }, username: request.username, values: request.values, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/index.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/index.ts index 4f09cd2e16..35a0b233f7 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/index.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/index.ts @@ -1,6 +1,7 @@ import { treeHandlers } from './tree.handlers.js'; -import { itemHandlers } from './item.handlers.js'; import { detailHandlers } from './detail.handlers.js'; +import { itemHandlers } from './item.handlers.js'; import { folderHandlers } from './folder.handlers.js'; +import { structureHandlers } from './structure.handlers.js'; -export const handlers = [...treeHandlers, ...itemHandlers, ...folderHandlers, ...detailHandlers]; +export const handlers = [...treeHandlers, ...itemHandlers, ...folderHandlers, ...structureHandlers, ...detailHandlers]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/structure.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/structure.handlers.ts new file mode 100644 index 0000000000..6506d1c59a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/structure.handlers.ts @@ -0,0 +1,18 @@ +const { rest } = window.MockServiceWorker; +import { umbMediaTypeMockDb } from '../../data/media-type/media-type.db.js'; +import { UMB_SLUG } from './slug.js'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; + +export const structureHandlers = [ + rest.get(umbracoPath(`${UMB_SLUG}/:id/allowed-children`), (req, res, ctx) => { + const id = req.params.id as string; + if (!id) return res(ctx.status(400)); + const response = umbMediaTypeMockDb.getAllowedChildren(id); + return res(ctx.status(200), ctx.json(response)); + }), + + rest.get(umbracoPath(`${UMB_SLUG}/allowed-at-root`), (req, res, ctx) => { + const response = umbMediaTypeMockDb.getAllowedAtRoot(); + return res(ctx.status(200), ctx.json(response)); + }), +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/block-grid-area-config-entry.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/block-grid-area-config-entry.context.ts index e527e436e6..c138fb6300 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/block-grid-area-config-entry.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/block-grid-area-config-entry.context.ts @@ -4,7 +4,7 @@ import { } from '../../context/block-grid-scale-manager/block-grid-scale-manager.controller.js'; import { UMB_BLOCK_GRID_AREA_TYPE_ENTRIES_CONTEXT } from '../../property-editors/block-grid-areas-config/block-grid-area-type-entries.context-token.js'; import { UMB_BLOCK_GRID_AREA_CONFIG_ENTRY_CONTEXT } from './block-grid-area-config-entry.context-token.js'; -import type { UmbBlockGridTypeAreaType } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockGridTypeAreaType } from '@umbraco-cms/backoffice/block-grid'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-areas-container/block-grid-areas-container.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-areas-container/block-grid-areas-container.element.ts index 02e7a9786b..4e6ba3e312 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-areas-container/block-grid-areas-container.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-areas-container/block-grid-areas-container.element.ts @@ -1,6 +1,6 @@ import { UMB_BLOCK_GRID_MANAGER_CONTEXT } from '../../context/block-grid-manager.context.js'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { UMB_BLOCK_GRID_ENTRY_CONTEXT, type UmbBlockGridTypeAreaType } from '@umbraco-cms/backoffice/block'; +import { UMB_BLOCK_GRID_ENTRY_CONTEXT, type UmbBlockGridTypeAreaType } from '@umbraco-cms/backoffice/block-grid'; import { css, customElement, html, repeat, state } from '@umbraco-cms/backoffice/external/lit'; import '../block-grid-entries/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.ts index 3ca2bff84e..62dfa9aff5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.ts @@ -1,7 +1,12 @@ +import { + getAccumulatedValueOfIndex, + getInterpolatedIndexOfPositionInWeightMap, + isWithinRect, +} from '@umbraco-cms/backoffice/utils'; import { UmbBlockGridEntriesContext } from '../../context/block-grid-entries.context.js'; import type { UmbBlockGridEntryElement } from '../block-grid-entry/index.js'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import type { UmbBlockGridLayoutModel } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockGridLayoutModel } from '@umbraco-cms/backoffice/block-grid'; import { html, customElement, state, repeat, css, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import '../block-grid-entry/index.js'; @@ -11,51 +16,17 @@ import { type resolveVerticalDirectionArgs, } from '@umbraco-cms/backoffice/sorter'; -// Utils: -// TODO: Move these methods into their own files: - -function getInterpolatedIndexOfPositionInWeightMap(target: number, weights: Array) { - const map = [0]; - weights.reduce((a, b, i) => { - return (map[i + 1] = a + b); - }, 0); - const foundValue = map.reduce((a, b) => { - const aDiff = Math.abs(a - target); - const bDiff = Math.abs(b - target); - - if (aDiff === bDiff) { - return a < b ? a : b; - } else { - return bDiff < aDiff ? b : a; - } - }); - const foundIndex = map.indexOf(foundValue); - const targetDiff = target - foundValue; - let interpolatedIndex = foundIndex; - if (targetDiff < 0 && foundIndex === 0) { - // Don't adjust. - } else if (targetDiff > 0 && foundIndex === map.length - 1) { - // Don't adjust. - } else { - const foundInterpolationWeight = weights[targetDiff >= 0 ? foundIndex : foundIndex - 1]; - interpolatedIndex += foundInterpolationWeight === 0 ? interpolatedIndex : targetDiff / foundInterpolationWeight; - } - return interpolatedIndex; -} - -function getAccumulatedValueOfIndex(index: number, weights: Array) { - const len = Math.min(index, weights.length); - let i = 0, - calc = 0; - while (i < len) { - calc += weights[i++]; - } - return calc; -} - +/** + * Notice this utility method is not really shareable with others as it also takes areas into account. [NL] + */ function resolveVerticalDirectionAsGrid( args: resolveVerticalDirectionArgs, ) { + // If this has areas, we do not want to move, unless we are at the edge + if (args.relatedModel.areas.length > 0 && isWithinRect(args.pointerX, args.pointerY, args.relatedRect, -10)) { + return null; + } + /** We need some data about the grid to figure out if there is room to be placed next to the found element */ const approvedContainerComputedStyles = getComputedStyle(args.containerElement); const gridColumnGap = Number(approvedContainerComputedStyles.columnGap.split('px')[0]) || 0; @@ -140,9 +111,24 @@ export class UmbBlockGridEntriesElement extends UmbLitElement { // #sorter = new UmbSorterController(this, { ...SORTER_CONFIG, + onStart: () => { + this.#context.onDragStart(); + }, + onEnd: () => { + this.#context.onDragEnd(); + }, onChange: ({ model }) => { this.#context.setLayouts(model); }, + onRequestMove: ({ item }) => { + return this.#context.allowDrop(item.contentUdi); + }, + onDisallowed: () => { + this.setAttribute('disallow-drop', ''); + }, + onAllowed: () => { + this.removeAttribute('disallow-drop'); + }, }); #context = new UmbBlockGridEntriesContext(this); @@ -200,7 +186,7 @@ export class UmbBlockGridEntriesElement extends UmbLitElement { render() { return html` ${this._styleElement} -
+
${repeat( this._layoutEntries, (x) => x.contentUdi, @@ -241,9 +227,29 @@ export class UmbBlockGridEntriesElement extends UmbLitElement { UmbTextStyles, css` :host { + position: relative; display: grid; gap: 1px; } + :host([disallow-drop])::before { + content: ''; + position: absolute; + z-index: 1; + inset: 0; + border: 2px solid var(--uui-color-danger); + border-radius: calc(var(--uui-border-radius) * 2); + pointer-events: none; + } + :host([disallow-drop])::after { + content: ''; + position: absolute; + z-index: 1; + inset: 0; + border-radius: calc(var(--uui-border-radius) * 2); + background-color: var(--uui-color-danger); + opacity: 0.2; + pointer-events: none; + } > div { display: flex; flex-direction: column; @@ -252,8 +258,17 @@ export class UmbBlockGridEntriesElement extends UmbLitElement { uui-button-group { padding-top: 1px; - display: grid; grid-template-columns: 1fr auto; + + --umb-block-grid--is-dragging--variable: var(--umb-block-grid--is-dragging) none; + display: var(--umb-block-grid--is-dragging--variable, grid); + } + + .umb-block-grid__layout-container[data-area-length='0'] { + --umb-block-grid--is-dragging--variable: var(--umb-block-grid--is-dragging) 1; + min-height: calc(var(--umb-block-grid--is-dragging--variable, 0) * var(--uui-size-11)); + border: calc(var(--umb-block-grid--is-dragging--variable, 0) * 1px) dashed var(--uui-color-border); + border-radius: var(--uui-border-radius); } `, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.ts index c40a88325e..c109befd22 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.ts @@ -4,7 +4,8 @@ import { html, css, customElement, property, state } from '@umbraco-cms/backoffi import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import '../block-grid-block-view/index.js'; import '../block-scale-handler/index.js'; -import type { UmbBlockGridLayoutModel, UmbBlockViewPropsType } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockViewPropsType } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockGridLayoutModel } from '@umbraco-cms/backoffice/block-grid'; /** * @element umb-block-grid-entry @@ -25,7 +26,7 @@ export class UmbBlockGridEntryElement extends UmbLitElement implements UmbProper return this._contentUdi; } public set contentUdi(value: string | undefined) { - if (!value) return; + if (!value || value === this._contentUdi) return; this._contentUdi = value; this._blockViewProps.contentUdi = value; this.setAttribute('data-element-udi', value); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-entries.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-entries.context.ts index 69f6b5443d..039d16f8e9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-entries.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-entries.context.ts @@ -1,7 +1,7 @@ import type { UmbBlockDataType } from '../../block/index.js'; import { UMB_BLOCK_CATALOGUE_MODAL, UmbBlockEntriesContext } from '../../block/index.js'; import { UMB_BLOCK_GRID_ENTRY_CONTEXT, type UmbBlockGridWorkspaceData } from '../index.js'; -import type { UmbBlockGridLayoutModel, UmbBlockGridTypeModel } from '../types.js'; +import type { UmbBlockGridLayoutModel, UmbBlockGridTypeAreaType, UmbBlockGridTypeModel } from '../types.js'; import { UMB_BLOCK_GRID_MANAGER_CONTEXT } from './block-grid-manager.context.js'; import type { UmbBlockGridScalableContainerContext } from './block-grid-scale-manager/block-grid-scale-manager.controller.js'; import { UmbNumberState } from '@umbraco-cms/backoffice/observable-api'; @@ -25,6 +25,8 @@ export class UmbBlockGridEntriesContext #layoutColumns = new UmbNumberState(undefined); readonly layoutColumns = this.#layoutColumns.asObservable(); + #areaType?: UmbBlockGridTypeAreaType; + //#parentUnique?: string; #areaKey?: string | null; @@ -71,8 +73,8 @@ export class UmbBlockGridEntriesContext const index = routingInfo.index ? parseInt(routingInfo.index) : -1; return { data: { - blocks: [], - blockGroups: [], + blocks: this.#retrieveAllowedElementTypes(), + blockGroups: this._manager?.getBlockGroups() ?? [], openClipboard: routingInfo.view === 'clipboard', blockOriginData: { index: index }, }, @@ -180,6 +182,7 @@ export class UmbBlockGridEntriesContext this.observe( this.#parentEntry.areaType(this.#areaKey), (areaType) => { + this.#areaType = areaType; const hostEl = this.getHostElement() as HTMLElement | undefined; if (!hostEl) return; hostEl.setAttribute('data-area-alias', areaType?.alias ?? ''); @@ -229,4 +232,69 @@ export class UmbBlockGridEntriesContext // TODO: Loop through children and delete them as well? await super.delete(contentUdi); } + + /** + * @internal + * @returns an Array of ElementTypeKeys that are allowed in the current area. Or undefined if not ready jet. + */ + #retrieveAllowedElementTypes() { + if (!this._manager) return []; + + if (this.#areaKey) { + // Area entries: + if (!this.#areaType) return []; + + if (this.#areaType.specifiedAllowance && this.#areaType.specifiedAllowance.length > 0) { + return this.#areaType.specifiedAllowance + .flatMap((permission) => { + if (permission.groupKey) { + return ( + this._manager + ?.getBlockTypes() + .filter( + (blockType) => blockType.groupKey === permission.groupKey && blockType.allowInAreas === true, + ) ?? [] + ); + } else if (permission.elementTypeKey) { + return ( + this._manager?.getBlockTypes().filter((x) => x.contentElementTypeKey === permission.elementTypeKey) ?? + [] + ); + } + return []; + }) + .filter((v, i, a) => a.find((x) => x.contentElementTypeKey === v.contentElementTypeKey) === undefined); + } + + return this._manager.getBlockTypes().filter((x) => x.allowInAreas); + } + // If no AreaKey, then we are representing the items of the root: + + // Root entries: + return this._manager.getBlockTypes().filter((x) => x.allowAtRoot); + } + + /** + * Check if given contentUdi is allowed in the current area. + * @param contentUdi {string} - The contentUdi of the content to check. + * @returns {boolean} - True if the content is allowed in the current area, otherwise false. + */ + allowDrop(contentUdi: string) { + const content = this._manager?.getContentOf(contentUdi); + if (!content) return false; + + return ( + this.#retrieveAllowedElementTypes() + .map((x) => x.contentElementTypeKey) + .indexOf(content.contentTypeKey) !== -1 + ); + } + + onDragStart() { + this._manager?.onDragStart(); + } + + onDragEnd() { + this._manager?.onDragEnd(); + } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-entry.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-entry.context.ts index 1668e9e7bf..225e2932ce 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-entry.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-entry.context.ts @@ -1,14 +1,12 @@ +import { closestColumnSpanOption } from '../utils/index.js'; import { UMB_BLOCK_GRID_MANAGER_CONTEXT } from './block-grid-manager.context.js'; import { UMB_BLOCK_GRID_ENTRIES_CONTEXT } from './block-grid-entries.context-token.js'; import { type UmbBlockGridScalableContext, UmbBlockGridScaleManager, } from './block-grid-scale-manager/block-grid-scale-manager.controller.js'; -import { - UmbBlockEntryContext, - type UmbBlockGridTypeModel, - type UmbBlockGridLayoutModel, -} from '@umbraco-cms/backoffice/block'; +import { UmbBlockEntryContext } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockGridTypeModel, UmbBlockGridLayoutModel } from '@umbraco-cms/backoffice/block-grid'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState, @@ -18,28 +16,6 @@ import { } from '@umbraco-cms/backoffice/observable-api'; import { combineLatest } from '@umbraco-cms/backoffice/external/rxjs'; -function closestColumnSpanOption(target: number, map: Array, max: number) { - if (map.length > 0) { - const result = map.reduce((a, b) => { - if (a > max) { - return b; - } - const aDiff = Math.abs(a - target); - const bDiff = Math.abs(b - target); - - if (aDiff === bDiff) { - return a < b ? a : b; - } else { - return bDiff < aDiff ? b : a; - } - }); - if (result) { - return result; - } - } - return; -} - export class UmbBlockGridEntryContext extends UmbBlockEntryContext< typeof UMB_BLOCK_GRID_MANAGER_CONTEXT, @@ -184,7 +160,6 @@ export class UmbBlockGridEntryContext const hasRelevantColumnSpanOptions = relevantColumnSpanOptions.length > 1; const hasRowSpanOptions = minMaxRowSpan[0] !== minMaxRowSpan[1]; const canScale = hasRelevantColumnSpanOptions || hasRowSpanOptions; - console.log('canScale calc:', canScale); this.#canScale.setValue(canScale); }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-manager.context.ts index 8b2e113b98..f5f102904c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-manager.context.ts @@ -1,10 +1,9 @@ import type { UmbBlockGridLayoutModel, UmbBlockGridTypeModel } from '../types.js'; -import { UmbBlockManagerContext } from '../../block/context/block-manager.context.js'; import type { UmbBlockGridWorkspaceData } from '../index.js'; -import type { UmbBlockTypeGroup } from '../../block-type/types.js'; -import type { UmbBlockDataType } from '../../block/types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { type UmbBlockDataType, UmbBlockManagerContext } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockTypeGroup } from '@umbraco-cms/backoffice/block-type'; export const UMB_BLOCK_GRID_DEFAULT_LAYOUT_STYLESHEET = '/umbraco/backoffice/css/umbraco-blockgridlayout.css'; @@ -53,6 +52,14 @@ export class UmbBlockGridManagerContext< return true; } + + onDragStart() { + (this.getHostElement() as HTMLElement).style.setProperty('--umb-block-grid--is-dragging', ' '); + } + + onDragEnd() { + (this.getHostElement() as HTMLElement).style.removeProperty('--umb-block-grid--is-dragging'); + } } // TODO: Make discriminator method for this: diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-scale-manager/block-grid-scale-manager.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-scale-manager/block-grid-scale-manager.controller.ts index 663058e4c9..456076f1f6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-scale-manager/block-grid-scale-manager.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-scale-manager/block-grid-scale-manager.controller.ts @@ -1,70 +1,8 @@ +import { getAccumulatedValueOfIndex, getInterpolatedIndexOfPositionInWeightMap } from '@umbraco-cms/backoffice/utils'; +import { closestColumnSpanOption } from '../../utils/index.js'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -// Utils: -// TODO: Move these methods into their own files: - -function getInterpolatedIndexOfPositionInWeightMap(target: number, weights: Array) { - const map = [0]; - weights.reduce((a, b, i) => { - return (map[i + 1] = a + b); - }, 0); - const foundValue = map.reduce((a, b) => { - const aDiff = Math.abs(a - target); - const bDiff = Math.abs(b - target); - - if (aDiff === bDiff) { - return a < b ? a : b; - } else { - return bDiff < aDiff ? b : a; - } - }); - const foundIndex = map.indexOf(foundValue); - const targetDiff = target - foundValue; - let interpolatedIndex = foundIndex; - if (targetDiff < 0 && foundIndex === 0) { - // Don't adjust. - } else if (targetDiff > 0 && foundIndex === map.length - 1) { - // Don't adjust. - } else { - const foundInterpolationWeight = weights[targetDiff >= 0 ? foundIndex : foundIndex - 1]; - interpolatedIndex += foundInterpolationWeight === 0 ? interpolatedIndex : targetDiff / foundInterpolationWeight; - } - return interpolatedIndex; -} - -function getAccumulatedValueOfIndex(index: number, weights: Array) { - const len = Math.min(index, weights.length); - let i = 0, - calc = 0; - while (i < len) { - calc += weights[i++]; - } - return calc; -} - -function closestColumnSpanOption(target: number, map: Array, max: number) { - if (map.length > 0) { - const result = map.reduce((a, b) => { - if (a > max) { - return b; - } - const aDiff = Math.abs(a - target); - const bDiff = Math.abs(b - target); - - if (aDiff === bDiff) { - return a < b ? a : b; - } else { - return bDiff < aDiff ? b : a; - } - }); - if (result) { - return result; - } - } - return; -} - // This might be more generic than Block Grid, but this is where it belongs currently: export interface UmbBlockGridScalableContext extends UmbControllerHost { setColumnSpan: (columnSpan: number) => void; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-area-type-permission/block-grid-area-type-permission.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-area-type-permission/block-grid-area-type-permission.element.ts index 7164f39214..c0a803ed71 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-area-type-permission/block-grid-area-type-permission.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-area-type-permission/block-grid-area-type-permission.element.ts @@ -1,10 +1,12 @@ -import type { UmbBlockGridTypeAreaTypePermission } from '../../index.js'; +import type { UmbBlockGridTypeAreaTypePermission, UmbBlockGridTypeGroupType } from '../../index.js'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { html, customElement, property, css, state, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, property, css, state, repeat, nothing } from '@umbraco-cms/backoffice/external/lit'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbPropertyValueChangeEvent } from '@umbraco-cms/backoffice/property-editor'; import { UMB_DATA_TYPE_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/data-type'; +import type { UmbBlockTypeWithGroupKey } from '@umbraco-cms/backoffice/block-type'; +import type { UUIComboboxElement, UUIComboboxEvent, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; @customElement('umb-property-editor-ui-block-grid-area-type-permission') export class UmbPropertyEditorUIBlockGridAreaTypePermissionElement @@ -21,21 +23,27 @@ export class UmbPropertyEditorUIBlockGridAreaTypePermissionElement @state() private _value: Array = []; + @state() + private _blockTypes: Array = []; + + @state() + private _blockGroups: Array = []; + constructor() { super(); this.consumeContext(UMB_DATA_TYPE_WORKSPACE_CONTEXT, async (context) => { this.observe( - await context.propertyValueByAlias('blocks'), + await context.propertyValueByAlias>('blocks'), (blockTypes) => { - console.log('blockTypes', blockTypes); + this._blockTypes = blockTypes ?? []; }, 'observeBlockType', ); this.observe( - await context.propertyValueByAlias('blockGroups'), + await context.propertyValueByAlias>('blockGroups'), (blockGroups) => { - console.log('blockGroups', blockGroups); + this._blockGroups = blockGroups ?? []; }, 'observeBlockGroups', ); @@ -47,23 +55,165 @@ export class UmbPropertyEditorUIBlockGridAreaTypePermissionElement this.dispatchEvent(new UmbPropertyValueChangeEvent()); } - // TODO: Needs localizations: + #setPermissionKey(e: UUIComboboxEvent, index: number) { + const value = [...this.value]; + const optionElement = e.composedPath()[0] as UUIComboboxElement; + const optionKey = optionElement.value as string; + + // If optionKey exists (new option picked), we just assume its a elementType if the key is not from blockGroups. + // If optionKey is empty (the option removed was removed), set both to undefined. + const setting: UmbBlockGridTypeAreaTypePermission = optionKey + ? this._blockGroups.find((group) => group.key === optionKey) + ? { elementTypeKey: undefined, groupKey: optionKey } + : { elementTypeKey: optionKey, groupKey: undefined } + : { elementTypeKey: undefined, groupKey: undefined }; + + this.value = value.map((permission, i) => (i === index ? { ...permission, ...setting } : permission)); + this.dispatchEvent(new UmbPropertyValueChangeEvent()); + } + + #setPermissionMinimumRange(e: UUIInputEvent, index: number) { + const value = [...this.value]; + const input = e.target.value as string; + + this.value = value.map((permission, i) => + i === index ? { ...permission, minAllowed: parseInt(input) ?? 0 } : permission, + ); + this.dispatchEvent(new UmbPropertyValueChangeEvent()); + } + #setPermissionMaximumRange(e: UUIInputEvent, index: number) { + const value = [...this.value]; + const input = e.target.value as string; + + this.value = value.map((permission, i) => + i === index ? { ...permission, maxAllowed: parseInt(input) ?? undefined } : permission, + ); + this.dispatchEvent(new UmbPropertyValueChangeEvent()); + } + + #remove(index: number) { + this.value = [...this.value].filter((_, i) => i !== index); + this.dispatchEvent(new UmbPropertyValueChangeEvent()); + } + render() { - return html`
+ return html`
${repeat( - this.value, - (area) => area, - (area) => html`Missing component for a value entry`, + this._value, + (permission) => permission, + (permission, index) => { + const showCategoryHeader = this._blockGroups.length && this._blockTypes.length; + + return html`
+ this.#setPermissionKey(e, index)} + .value=${permission.elementTypeKey ?? permission.groupKey ?? ''}> + + ${showCategoryHeader ? html`${this.localize.term('general_groups')}` : nothing} + ${this.#renderBlockGroups(permission)} + ${showCategoryHeader ? html`${this.localize.term('general_elements')}` : nothing} + ${this.#renderBlockTypes(permission)} + + + + this.#setPermissionMinimumRange(e, index)}> + - + this.#setPermissionMaximumRange(e, index)}> + this.#remove(index)}> + + + +
`; + }, )}
`; + label=${this.localize.term('general_add')} + @click=${this.#addNewPermission}> + ${!this._value.length + ? html` + + By default, all block types are allowed in an Area, Use this option to allow only selected types. + + ` + : nothing} `; } - static styles = [UmbTextStyles, css``]; + #renderBlockGroups(area: UmbBlockGridTypeAreaTypePermission) { + return repeat( + this._blockGroups, + (group) => group.key, + (group) => + html` + ${group.name} + `, + ); + } + + #renderBlockTypes(area: UmbBlockGridTypeAreaTypePermission) { + return repeat( + this._blockTypes, + (block) => block.contentElementTypeKey, + (block) => + html` + ${block.label} + `, + ); + } + + static styles = [ + UmbTextStyles, + css` + #permissions { + display: flex; + flex-direction: column; + gap: var(--uui-size-space-3); + margin-bottom: var(--uui-size-space-3); + } + + #add-button { + width: 100%; + } + + .permission-setting { + flex: 1; + display: flex; + gap: var(--uui-size-space-6); + } + + .permission-setting > uui-combobox { + flex: 1; + } + + .permission-setting > span { + display: flex; + gap: var(--uui-size-space-1); + align-items: center; + } + + uui-combobox strong { + padding: 0 var(--uui-size-space-1); + } + `, + ]; } export default UmbPropertyEditorUIBlockGridAreaTypePermissionElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-areas-config/property-editor-ui-block-grid-areas-config.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-areas-config/property-editor-ui-block-grid-areas-config.element.ts index 55edaf9fd0..551ee938fb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-areas-config/property-editor-ui-block-grid-areas-config.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-areas-config/property-editor-ui-block-grid-areas-config.element.ts @@ -3,9 +3,8 @@ import { UMB_BLOCK_GRID_DEFAULT_LAYOUT_STYLESHEET } from '../../context/block-gr import { UMB_BLOCK_GRID_AREA_TYPE_WORKSPACE_MODAL } from '../../components/block-grid-area-config-entry/index.js'; import { UmbBlockGridAreaTypeEntriesContext } from './block-grid-area-type-entries.context.js'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { html, customElement, property, css, state, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property'; import { UmbPropertyValueChangeEvent, @@ -143,8 +142,6 @@ export class UmbPropertyEditorUIBlockGridAreasConfigElement ` : ''; } - - static styles = [UmbTextStyles, css``]; } export default UmbPropertyEditorUIBlockGridAreasConfigElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts index bfe8ed82a6..ae7ab63921 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts @@ -8,7 +8,8 @@ import { UmbPropertyValueChangeEvent, type UmbPropertyEditorConfigCollection, } from '@umbraco-cms/backoffice/property-editor'; -import type { UmbBlockGridTypeModel, UmbBlockGridValueModel, UmbBlockTypeGroup } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockTypeGroup } from '@umbraco-cms/backoffice/block-type'; +import type { UmbBlockGridTypeModel, UmbBlockGridValueModel } from '@umbraco-cms/backoffice/block-grid'; import type { NumberRangeValueType } from '@umbraco-cms/backoffice/models'; import '../../components/block-grid-entries/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.element.ts index 055ca023e3..c4d9db8862 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.element.ts @@ -4,7 +4,7 @@ import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbId } from '@umbraco-cms/backoffice/id'; -import type { UmbBlockGridTypeGroupType } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockGridTypeGroupType } from '@umbraco-cms/backoffice/block-grid'; @customElement('umb-property-editor-ui-block-grid-group-configuration') export class UmbPropertyEditorUIBlockGridGroupConfigurationElement diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts index 04a95ec941..359b4998b2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts @@ -1,21 +1,31 @@ import type { UmbBlockTypeWithGroupKey, UmbInputBlockTypeElement } from '../../../block-type/index.js'; import '../../../block-type/components/input-block-type/index.js'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; -import { html, customElement, property, state, repeat, nothing, css } from '@umbraco-cms/backoffice/external/lit'; +import { + html, + customElement, + property, + state, + repeat, + nothing, + css, + ifDefined, +} from '@umbraco-cms/backoffice/external/lit'; import { UmbPropertyValueChangeEvent, type UmbPropertyEditorConfigCollection, } from '@umbraco-cms/backoffice/property-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { - UMB_BLOCK_GRID_TYPE, - type UmbBlockGridTypeGroupType, - type UmbBlockGridGroupTypeConfiguration, -} from '@umbraco-cms/backoffice/block'; +import { UMB_BLOCK_GRID_TYPE, type UmbBlockGridTypeGroupType } from '@umbraco-cms/backoffice/block-grid'; import type { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { UMB_PROPERTY_DATASET_CONTEXT, type UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; +import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; + +interface MappedGroupWithBlockTypes extends UmbBlockGridTypeGroupType { + blocks: Array; +} /** * @element umb-property-editor-ui-block-grid-type-configuration @@ -25,6 +35,23 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement extends UmbLitElement implements UmbPropertyEditorUiElement { + #sorter = new UmbSorterController(this, { + getUniqueOfElement: (element) => element.getAttribute('data-umb-group-key'), + getUniqueOfModel: (modelEntry) => modelEntry.key!, + itemSelector: '.group', + draggableSelector: '.group-handle', + containerSelector: '#groups', + onChange: ({ model }) => { + this._groupsWithBlockTypes = model; + }, + onEnd: () => { + this.#datasetContext?.setPropertyValue( + 'blockGroups', + this._groupsWithBlockTypes.map((group) => ({ key: group.key, name: group.name })), + ); + }, + }); + #datasetContext?: UmbPropertyDatasetContext; #blockTypeWorkspaceModalRegistration?: UmbModalRouteRegistrationController< typeof UMB_WORKSPACE_MODAL.DATA, @@ -47,7 +74,10 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement private _blockGroups: Array = []; @state() - private _mappedValuesAndGroups: Array = []; + private _groupsWithBlockTypes: Array = []; + + @state() + private _notGroupedBlockTypes: Array = []; @state() private _workspacePath?: string; @@ -77,20 +107,24 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement this._blockGroups = (value as Array) ?? []; this.#mapValuesToBlockGroups(); }); - this.observe(await this.#datasetContext.propertyValueByAlias('blocks'), () => { + this.observe(await this.#datasetContext.propertyValueByAlias('blocks'), (value) => { + this.value = (value as Array) ?? []; this.#mapValuesToBlockGroups(); }); } #mapValuesToBlockGroups() { - // What if a block is in a group that does not exist in the block groups? Should it be removed? (Right now they will never be rendered) - const valuesWithNoGroup = this._value.filter((value) => !value.groupKey); + // Map blocks that are not in any group, or in a group that does not exist + this._notGroupedBlockTypes = this._value.filter( + (block) => !block.groupKey || !this._blockGroups.find((group) => group.key === block.groupKey), + ); - const valuesWithGroup = this._blockGroups.map((group) => { + // Map blocks to the group they belong to + this._groupsWithBlockTypes = this._blockGroups.map((group) => { return { name: group.name, key: group.key, blocks: this._value.filter((value) => value.groupKey === group.key) }; }); - this._mappedValuesAndGroups = [{ blocks: valuesWithNoGroup }, ...valuesWithGroup]; + this.#sorter.setModel(this._groupsWithBlockTypes); } #onChange(e: CustomEvent, groupKey?: string) { @@ -100,21 +134,22 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement this.dispatchEvent(new UmbPropertyValueChangeEvent()); } - #onCreate(e: CustomEvent, groupKey: string | null) { + #onCreate(e: CustomEvent, groupKey?: string) { const selectedElementType = e.detail.contentElementTypeKey; if (selectedElementType) { - this.#blockTypeWorkspaceModalRegistration?.open({}, 'create/' + selectedElementType + '/' + groupKey); + this.#blockTypeWorkspaceModalRegistration?.open({}, 'create/' + selectedElementType + '/' + (groupKey ?? null)); } } + // TODO: Implement confirm dialog #deleteGroup(groupKey: string) { this.#datasetContext?.setPropertyValue( 'blockGroups', this._blockGroups.filter((group) => group.key !== groupKey), ); - // Should blocks that belonged to the removed group be deleted as well? - this.value = this._value.filter((block) => block.groupKey !== groupKey); + // If a group is deleted, Move the blocks to no group: + this.value = this._value.map((block) => (block.groupKey === groupKey ? { ...block, groupKey: undefined } : block)); } #changeGroupName(e: UUIInputEvent, groupKey: string) { @@ -126,45 +161,69 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement } render() { - return html`${repeat( - this._mappedValuesAndGroups, - (group) => group.key, - (group) => - html`${group.key ? this.#renderGroupInput(group.key, group.name) : nothing} - + ${this._notGroupedBlockTypes + ? html` this.#onCreate(e, group.key ?? null)} - @change=${(e: CustomEvent) => this.#onChange(e, group.key)}>`, - )}`; + @create=${(e: CustomEvent) => this.#onCreate(e, undefined)} + @change=${(e: CustomEvent) => this.#onChange(e, undefined)}>` + : ''} + ${repeat( + this._groupsWithBlockTypes, + (group) => group.key, + (group) => + html`
+ ${group.key ? this.#renderGroupInput(group.key, group.name) : nothing} + this.#onCreate(e, group.key)} + @change=${(e: CustomEvent) => this.#onChange(e, group.key)}> +
`, + )} +
`; } #renderGroupInput(groupKey: string, groupName?: string) { - return html` this.#changeGroupName(e, groupKey)}> - this.#deleteGroup(groupKey)}> - - - `; + return html`
+ this.#changeGroupName(e, groupKey)}> + this.#deleteGroup(groupKey)}> + + + +
`; } static styles = [ UmbTextStyles, css` - uui-input { - margin-top: var(--uui-size-6); - margin-bottom: var(--uui-size-4); - } - uui-input:not(:hover, :focus) { border: 1px solid transparent; } uui-input:not(:hover, :focus) uui-button { opacity: 0; } + + .group-handle { + padding: var(--uui-size-1); + margin-top: var(--uui-size-6); + margin-bottom: var(--uui-size-4); + cursor: grab; + } + + .group-handle:hover { + background-color: var(--uui-color-divider); + border-radius: var(--uui-border-radius); + } + + .group:has([drag-placeholder]) { + opacity: 0.2; + } `, ]; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts index 52cb98af76..c4163bdd97 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts @@ -1,10 +1,10 @@ -import type { UmbBlockTypeBaseModel, UmbBlockTypeWithGroupKey } from '../block-type/index.js'; -import type { UmbBlockLayoutBaseModel, UmbBlockValueType } from '../index.js'; +import type { UmbBlockLayoutBaseModel, UmbBlockValueType } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockTypeWithGroupKey } from '@umbraco-cms/backoffice/block-type'; export const UMB_BLOCK_GRID_TYPE = 'block-grid-type'; // Configuration models: -export interface UmbBlockGridTypeModel extends UmbBlockTypeBaseModel { +export interface UmbBlockGridTypeModel extends UmbBlockTypeWithGroupKey { columnSpanOptions: Array; allowAtRoot: boolean; allowInAreas: boolean; @@ -41,10 +41,6 @@ export interface UmbBlockGridTypeGroupType { key: string; } -export interface UmbBlockGridGroupTypeConfiguration extends Partial { - blocks: Array; -} - // Content models: export interface UmbBlockGridValueModel extends UmbBlockValueType {} diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/utils/index.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/utils/index.ts new file mode 100644 index 0000000000..f46dced98d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/utils/index.ts @@ -0,0 +1,21 @@ +export function closestColumnSpanOption(target: number, map: Array, max: number) { + if (map.length > 0) { + const result = map.reduce((a, b) => { + if (a > max) { + return b; + } + const aDiff = Math.abs(a - target); + const bDiff = Math.abs(b - target); + + if (aDiff === bDiff) { + return a < b ? a : b; + } else { + return bDiff < aDiff ? b : a; + } + }); + if (result) { + return result; + } + } + return; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-workspace.modal-token.ts index 6cbd004c75..9703681179 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-workspace.modal-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-workspace.modal-token.ts @@ -1,4 +1,4 @@ -import type { UmbBlockWorkspaceData } from '../../index.js'; +import type { UmbBlockWorkspaceData } from '@umbraco-cms/backoffice/block'; import type { UmbWorkspaceData, UmbWorkspaceValue } from '@umbraco-cms/backoffice/modal'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-entry/block-list-entry.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-entry/block-list-entry.element.ts index ad6f5ace56..bca25ac505 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-entry/block-list-entry.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-entry/block-list-entry.element.ts @@ -1,10 +1,11 @@ -import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UmbBlockListEntryContext } from '../../context/block-list-entry.context.js'; +import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { html, css, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import '../ref-list-block/index.js'; import '../inline-list-block/index.js'; -import type { UmbBlockListLayoutModel, UmbBlockViewPropsType } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockViewPropsType } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockListLayoutModel } from '@umbraco-cms/backoffice/block-list'; /** * @element umb-block-list-entry diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/context/block-list-entries.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/context/block-list-entries.context.ts index b414bd249c..6cc117c7bf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/context/block-list-entries.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/context/block-list-entries.context.ts @@ -26,7 +26,7 @@ export class UmbBlockListEntriesContext extends UmbBlockEntriesContext< const index = routingInfo.index ? parseInt(routingInfo.index) : -1; return { data: { - blocks: [], + blocks: this._manager?.getBlockTypes() ?? [], blockGroups: [], openClipboard: routingInfo.view === 'clipboard', blockOriginData: { index: index }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/context/block-list-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/context/block-list-manager.context.ts index 9b68ec912b..cf7b2a3130 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/context/block-list-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/context/block-list-manager.context.ts @@ -1,9 +1,9 @@ import type { UmbBlockListLayoutModel, UmbBlockListTypeModel } from '../types.js'; -import { UmbBlockManagerContext } from '../../block/context/block-manager.context.js'; import type { UmbBlockListWorkspaceData } from '../index.js'; import type { UmbBlockDataType } from '../../block/types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbBlockManagerContext } from '@umbraco-cms/backoffice/block'; /** * A implementation of the Block Manager specifically for the Block List Editor. diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts index da6ee918ff..c6f17862c9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts @@ -1,15 +1,16 @@ -import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UmbBlockListManagerContext } from '../../context/block-list-manager.context.js'; import '../../components/block-list-entry/index.js'; import type { UmbBlockListEntryElement } from '../../components/block-list-entry/index.js'; import type { UmbBlockListLayoutModel, UmbBlockListValueModel } from '../../types.js'; import { UmbBlockListEntriesContext } from '../../context/block-list-entries.context.js'; import { UMB_BLOCK_LIST_PROPERTY_EDITOR_ALIAS } from './manifests.js'; +import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { html, customElement, property, state, repeat, css } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; -import type { UmbBlockLayoutBaseModel, UmbBlockTypeBaseModel } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockLayoutBaseModel } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockTypeBaseModel } from '@umbraco-cms/backoffice/block-type'; import type { NumberRangeValueType } from '@umbraco-cms/backoffice/models'; import type { UmbModalRouteBuilder } from '@umbraco-cms/backoffice/modal'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; @@ -90,7 +91,7 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement const useInlineEditingAsDefault = config.getValueByAlias('useInlineEditingAsDefault'); this.#managerContext.setInlineEditingMode(useInlineEditingAsDefault); // TODO: - //config.useSingleBlockMode, not done jey + //config.useSingleBlockMode, not done jet this.style.maxWidth = config.getValueByAlias('maxPropertyWidth') ?? ''; this.#managerContext.setEditorConfiguration(config); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts index da6248d0a4..39525dbc90 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts @@ -4,7 +4,6 @@ import { UMB_BLOCK_LIST_TYPE } from '../../types.js'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; @@ -61,8 +60,6 @@ export class UmbPropertyEditorUIBlockListBlockConfigurationElement this.value = (e.target as UmbInputBlockTypeElement).value; }}>`; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUIBlockListBlockConfigurationElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/types.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/types.ts index de8121d884..dc5894a548 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/types.ts @@ -1,5 +1,5 @@ import type { UmbBlockTypeBaseModel } from '../block-type/index.js'; -import type { UmbBlockLayoutBaseModel, UmbBlockValueType } from '../index.js'; +import type { UmbBlockLayoutBaseModel, UmbBlockValueType } from '@umbraco-cms/backoffice/block'; export const UMB_BLOCK_LIST_TYPE = 'block-list-type'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/block-list-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/block-list-workspace.modal-token.ts index f6d83891b9..091954dbe9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/block-list-workspace.modal-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/block-list-workspace.modal-token.ts @@ -1,4 +1,4 @@ -import type { UmbBlockWorkspaceData } from '../../index.js'; +import type { UmbBlockWorkspaceData } from '@umbraco-cms/backoffice/block'; import type { UmbWorkspaceData, UmbWorkspaceValue } from '@umbraco-cms/backoffice/modal'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/block-rte-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/block-rte-workspace.modal-token.ts index 5bf97f06a0..cdeb480d58 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/block-rte-workspace.modal-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/block-rte-workspace.modal-token.ts @@ -1,4 +1,4 @@ -import type { UmbBlockWorkspaceData } from '../../index.js'; +import type { UmbBlockWorkspaceData } from '@umbraco-cms/backoffice/block'; import type { UmbWorkspaceData, UmbWorkspaceValue } from '@umbraco-cms/backoffice/modal'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/block-type-card/block-type-card.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/block-type-card/block-type-card.element.ts index 38a6e14d17..d1f317c37d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/block-type-card/block-type-card.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/block-type-card/block-type-card.element.ts @@ -2,9 +2,7 @@ import { DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS, type UmbDocumentTypeItemModel, } from '@umbraco-cms/backoffice/document-type'; -import { UmbDeleteEvent } from '@umbraco-cms/backoffice/event'; -import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import { html, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbRepositoryItemsManager } from '@umbraco-cms/backoffice/repository'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -18,27 +16,38 @@ export class UmbBlockTypeCardElement extends UmbLitElement { ); @property({ type: String, attribute: false }) - workspacePath?: string; + href?: string; @property({ type: String, attribute: false }) - public get key(): string | undefined { - return this._key; + name?: string; + + @property({ type: String, attribute: false }) + iconColor?: string; + + @property({ type: String, attribute: false }) + backgroundColor?: string; + + // TODO: support custom icon/image file + + @property({ type: String, attribute: false }) + public get contentElementTypeKey(): string | undefined { + return this._elementTypeKey; } - public set key(value: string | undefined) { - this._key = value; + public set contentElementTypeKey(value: string | undefined) { + this._elementTypeKey = value; if (value) { this.#itemManager.setUniques([value]); } else { this.#itemManager.setUniques([]); } } - private _key?: string | undefined; + private _elementTypeKey?: string | undefined; @state() - _name?: string; + _fallbackName?: string; @state() - _icon?: string | null; + _fallbackIcon?: string | null; constructor() { super(); @@ -46,37 +55,21 @@ export class UmbBlockTypeCardElement extends UmbLitElement { this.observe(this.#itemManager.items, (items) => { const item = items[0]; if (item) { - this._icon = item.icon; - this._name = item.name; + this._fallbackIcon = item.icon; + this._fallbackName = item.name; } }); } - #onRequestDelete() { - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, async (modalManager) => { - const modalContext = modalManager.open(UMB_CONFIRM_MODAL, { - data: { - color: 'danger', - headline: `Remove ${this._name}?`, - content: 'Are you sure you want to remove this block type?', - confirmLabel: 'Remove', - }, - }); - - await modalContext?.onSubmit(); - this.dispatchEvent(new UmbDeleteEvent()); - }); - } - + // TODO: Support image files instead of icons. render() { return html` - - - - - - - + + + `; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts index 9cf0faa8d4..8caac68e41 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts @@ -1,5 +1,9 @@ import type { UmbBlockTypeBaseModel } from '../../types.js'; -import { UMB_DOCUMENT_TYPE_PICKER_MODAL, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import { + UMB_CONFIRM_MODAL, + UMB_DOCUMENT_TYPE_PICKER_MODAL, + UMB_MODAL_MANAGER_CONTEXT, +} from '@umbraco-cms/backoffice/modal'; import '../block-type-card/index.js'; import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -74,18 +78,41 @@ export class UmbInputBlockTypeElement< return undefined; } + #onRequestDelete(item: BlockType) { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, async (modalManager) => { + const modalContext = modalManager.open(UMB_CONFIRM_MODAL, { + data: { + color: 'danger', + headline: `Remove [TODO: Get name]?`, + content: 'Are you sure you want to remove this block type?', + confirmLabel: 'Remove', + }, + }); + + await modalContext?.onSubmit(); + this.deleteItem(item.contentElementTypeKey); + }); + } + render() { return html`
${repeat(this.value, (block) => block.contentElementTypeKey, this.#renderItem)} ${this.#renderButton()}
`; } - #renderItem = (item: BlockType) => { + #renderItem = (block: BlockType) => { return html` this.deleteItem(item.contentElementTypeKey)}> + .name=${block.label} + .iconColor=${block.iconColor} + .backgroundColor=${block.backgroundColor} + .href="${this.workspacePath}/edit/${block.contentElementTypeKey}" + .contentElementTypeKey=${block.contentElementTypeKey}> + + + + + `; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/types.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/types.ts index 6ed47bbbff..9357b666f1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/types.ts @@ -9,12 +9,11 @@ export interface UmbBlockTypeBaseModel { iconColor?: string; backgroundColor?: string; editorSize?: UUIModalSidebarSize; - icon?: string; // remove later forceHideContentEditorInOverlay: boolean; } export interface UmbBlockTypeGroup { - name?: string | null; + name?: string; key: string; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.element.ts index 960d26442f..c4b924cafd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.element.ts @@ -1,6 +1,5 @@ import type { UmbBlockTypeWorkspaceContext } from './block-type-workspace.context.js'; import { UmbBlockTypeWorkspaceEditorElement } from './block-type-workspace-editor.element.js'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -71,8 +70,6 @@ export class UmbBlockTypeWorkspaceElement extends UmbLitElement { render() { return html``; } - - static styles = [UmbTextStyles]; } export default UmbBlockTypeWorkspaceElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-entry-show-content-edit.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-entry-show-content-edit.condition.ts index 723d9134b7..50ca6a1a71 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-entry-show-content-edit.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-entry-show-content-edit.condition.ts @@ -1,7 +1,6 @@ -import { UMB_BLOCK_ENTRY_CONTEXT } from '@umbraco-cms/backoffice/block'; +import { UMB_BLOCK_ENTRY_CONTEXT } from '../context/block-entry.context-token.js'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import type { - ManifestCondition, UmbConditionConfigBase, UmbConditionControllerArguments, UmbExtensionCondition, @@ -30,12 +29,7 @@ export class UmbBlockEntryShowContentEditCondition extends UmbBaseController imp } } +export default UmbBlockEntryShowContentEditCondition; + export type BlockEntryShowContentEditConditionConfig = UmbConditionConfigBase<'Umb.Condition.BlockEntryShowContentEdit'>; - -export const manifest: ManifestCondition = { - type: 'condition', - name: 'Block Show Content Edit Condition', - alias: 'Umb.Condition.BlockEntryShowContentEdit', - api: UmbBlockEntryShowContentEditCondition, -}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-workspace-has-settings.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-workspace-has-settings.condition.ts index 434cc1b455..2680b2e27d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-workspace-has-settings.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-workspace-has-settings.condition.ts @@ -1,7 +1,6 @@ -import { UMB_BLOCK_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/block'; +import { UMB_BLOCK_WORKSPACE_CONTEXT } from '../workspace/block-workspace.context-token.js'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import type { - ManifestCondition, UmbConditionConfigBase, UmbConditionControllerArguments, UmbExtensionCondition, @@ -30,12 +29,7 @@ export class UmbBlockWorkspaceHasSettingsCondition extends UmbBaseController imp } } +export default UmbBlockWorkspaceHasSettingsCondition; + export type BlockWorkspaceHasSettingsConditionConfig = UmbConditionConfigBase<'Umb.Condition.BlockWorkspaceHasSettings'>; - -export const manifest: ManifestCondition = { - type: 'condition', - name: 'Block Has Settings Condition', - alias: 'Umb.Condition.BlockWorkspaceHasSettings', - api: UmbBlockWorkspaceHasSettingsCondition, -}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/manifests.ts index 1e0e75b554..3431f4b51d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/manifests.ts @@ -1,4 +1,16 @@ -import { manifest as blockEntryShowContentConditionManifest } from './block-entry-show-content-edit.condition.js'; -import { manifest as blockWorkspaceHasSettingsConditionManifest } from './block-workspace-has-settings.condition.js'; +import type { ManifestCondition } from '@umbraco-cms/backoffice/extension-api'; -export const manifests = [blockEntryShowContentConditionManifest, blockWorkspaceHasSettingsConditionManifest]; +export const manifests: Array = [ + { + type: 'condition', + name: 'Block Has Settings Condition', + alias: 'Umb.Condition.BlockWorkspaceHasSettings', + api: () => import('./block-workspace-has-settings.condition.js'), + }, + { + type: 'condition', + name: 'Block Show Content Edit Condition', + alias: 'Umb.Condition.BlockEntryShowContentEdit', + api: () => import('./block-entry-show-content-edit.condition.js'), + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entries.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entries.context-token.ts index 24a368beef..5e8190151a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entries.context-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entries.context-token.ts @@ -1,7 +1,7 @@ -import type { UmbBlockTypeBaseModel } from '../../block-type/types.js'; import type { UmbBlockLayoutBaseModel } from '../types.js'; import type { UmbBlockEntriesContext } from './block-entries.context.js'; import type { UMB_BLOCK_MANAGER_CONTEXT } from './block-manager.context-token.js'; +import type { UmbBlockTypeBaseModel } from '@umbraco-cms/backoffice/block-type'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export const UMB_BLOCK_ENTRIES_CONTEXT = new UmbContextToken< diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entries.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entries.context.ts index 310b99af4e..6ff493d5a0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entries.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entries.context.ts @@ -1,8 +1,8 @@ -import type { UmbBlockTypeBaseModel } from '../../block-type/types.js'; import type { UmbBlockDataType, UmbBlockLayoutBaseModel } from '../types.js'; import { UMB_BLOCK_WORKSPACE_MODAL } from '../workspace/block-workspace.modal-token.js'; import type { UmbBlockDataObjectModel, UmbBlockManagerContext } from './block-manager.context.js'; import { UMB_BLOCK_ENTRIES_CONTEXT } from './block-entries.context-token.js'; +import type { UmbBlockTypeBaseModel } from '@umbraco-cms/backoffice/block-type'; import type { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entry.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entry.context-token.ts index eb32877475..adb50d369e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entry.context-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entry.context-token.ts @@ -1,9 +1,9 @@ -import type { UmbBlockTypeBaseModel } from '../../block-type/types.js'; import type { UmbBlockLayoutBaseModel } from '../types.js'; import type { UMB_BLOCK_ENTRIES_CONTEXT } from './block-entries.context-token.js'; import type { UmbBlockEntriesContext } from './block-entries.context.js'; import type { UmbBlockEntryContext } from './block-entry.context.js'; import type { UMB_BLOCK_MANAGER_CONTEXT } from './block-manager.context-token.js'; +import type { UmbBlockTypeBaseModel } from '@umbraco-cms/backoffice/block-type'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export const UMB_BLOCK_ENTRY_CONTEXT = new UmbContextToken< diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entry.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entry.context.ts index 739f75bc44..d5be2fe1f0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entry.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entry.context.ts @@ -1,7 +1,7 @@ -import type { UmbBlockTypeBaseModel } from '../../block-type/types.js'; import type { UmbBlockLayoutBaseModel, UmbBlockDataType } from '../types.js'; import type { UmbBlockManagerContext } from '../index.js'; import type { UmbBlockEntriesContext } from './block-entries.context.js'; +import type { UmbBlockTypeBaseModel } from '@umbraco-cms/backoffice/block-type'; import type { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-manager.context.ts index 95686bee6a..17c5023ab9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-manager.context.ts @@ -1,17 +1,21 @@ import type { UmbBlockLayoutBaseModel, UmbBlockDataType } from '../types.js'; +import type { UmbBlockWorkspaceData } from '../workspace/index.js'; +import { UMB_BLOCK_MANAGER_CONTEXT } from './block-manager.context-token.js'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState, UmbClassState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; import { UmbDocumentTypeDetailRepository } from '@umbraco-cms/backoffice/document-type'; -import { buildUdi, getKeyFromUdi } from '@umbraco-cms/backoffice/utils'; -import type { UmbBlockTypeBaseModel, UmbBlockWorkspaceData } from '@umbraco-cms/backoffice/block'; -import { UMB_BLOCK_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockTypeBaseModel } from '@umbraco-cms/backoffice/block-type'; import type { UmbContentTypeModel } from '@umbraco-cms/backoffice/content-type'; import { UmbId } from '@umbraco-cms/backoffice/id'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UMB_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/property'; import type { UmbVariantId } from '@umbraco-cms/backoffice/variant'; +function buildUdi(entityType: string, guid: string) { + return `umb://${entityType}/${guid.replace(/-/g, '')}`; +} + export type UmbBlockDataObjectModel = { layout: LayoutEntryType; content: UmbBlockDataType; @@ -141,6 +145,13 @@ export abstract class UmbBlockManagerContext< return this.#settings.asObservablePart((source) => source.find((x) => x.udi === udi)); } + getBlockTypeOf(contentTypeKey: string) { + return this.#blockTypes.value.find((x) => x.contentElementTypeKey === contentTypeKey); + } + getContentOf(contentUdi: string) { + return this.#contents.value.find((x) => x.udi === contentUdi); + } + /*setOneLayout(layoutData: BlockLayoutType) { return this._layouts.appendOne(layoutData); }*/ diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/index.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/index.ts index 2f13512f99..68700b4f90 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/index.ts @@ -3,4 +3,4 @@ export * from './block-entry.context.js'; export * from './block-entries.context-token.js'; export * from './block-entries.context.js'; export * from './block-manager.context-token.js'; -export type * from './block-manager.context.js'; +export * from './block-manager.context.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts index 1beec67023..0d45a39709 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts @@ -1,11 +1,7 @@ import { UMB_BLOCK_WORKSPACE_MODAL } from '../../workspace/index.js'; -import type { - UmbBlockCatalogueModalData, - UmbBlockCatalogueModalValue, - UmbBlockTypeGroup, - UmbBlockTypeWithGroupKey, -} from '@umbraco-cms/backoffice/block'; -import { css, html, customElement, state, repeat, ifDefined, nothing } from '@umbraco-cms/backoffice/external/lit'; +import type { UmbBlockCatalogueModalData, UmbBlockCatalogueModalValue } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockTypeGroup, UmbBlockTypeWithGroupKey } from '@umbraco-cms/backoffice/block-type'; +import { css, html, customElement, state, repeat, nothing } from '@umbraco-cms/backoffice/external/lit'; import { UMB_MODAL_CONTEXT, UmbModalBaseElement, @@ -58,7 +54,7 @@ export class UmbBlockCatalogueModalElement extends UmbModalBaseElement< const noGroupBlocks = blocks.filter((block) => !blockGroups.find((group) => group.key === block.groupKey)); const grouped = blockGroups.map((group) => ({ - name: group.name ?? '', + name: group.name, blocks: blocks.filter((block) => block.groupKey === group.key), })); @@ -87,26 +83,28 @@ export class UmbBlockCatalogueModalElement extends UmbModalBaseElement< #renderCreateEmpty() { return html` - ${this._groupedBlocks.map( - (group) => html` - ${group.name ? html`

${group.name}

` : nothing} -
- ${repeat( - group.blocks, - (block) => block.contentElementTypeKey, - (block) => html` - - - - `, - )} -
- `, - )} + ${this._groupedBlocks + ? this._groupedBlocks.map( + (group) => html` + ${group.name && group.name !== '' ? html`

${group.name}

` : nothing} +
+ ${repeat( + group.blocks, + (block) => block.contentElementTypeKey, + (block) => html` + + + `, + )} +
+ `, + ) + : ''} `; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.token.ts index 7a68521e47..0558d7d8ff 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.token.ts @@ -1,4 +1,5 @@ -import type { UmbBlockTypeBaseModel, UmbBlockTypeGroup, UmbBlockWorkspaceData } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockWorkspaceData } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockTypeBaseModel, UmbBlockTypeGroup } from '@umbraco-cms/backoffice/block-type'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbBlockCatalogueModalData { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts index 6b6f663ff6..d8395f3cd5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts @@ -324,6 +324,7 @@ export class UmbBlockWorkspaceContext< }; public destroy(): void { + super.destroy(); this.#layout.destroy(); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts index 8f37ec7784..e01c33cbb3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts @@ -1,6 +1,5 @@ import type { UmbBlockWorkspaceContext } from './block-workspace.context.js'; import { UmbBlockWorkspaceEditorElement } from './block-workspace-editor.element.js'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -72,8 +71,6 @@ export class UmbBlockWorkspaceElement extends UmbLitElement { render() { return html``; } - - static styles = [UmbTextStyles]; } export default UmbBlockWorkspaceElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/index.ts b/src/Umbraco.Web.UI.Client/src/packages/block/index.ts deleted file mode 100644 index 36612a5435..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/block/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './block/index.js'; -export * from './block-grid/index.js'; -export * from './block-list/index.js'; -export * from './block-rte/index.js'; -export * from './block-type/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/auth-flow.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth-flow.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/auth/auth-flow.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/auth/auth-flow.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth.context.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/auth/auth.context.token.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth.context.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/auth/auth.context.ts index 314024084f..d46cf740e5 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth.context.ts @@ -1,7 +1,7 @@ -import { OpenAPI } from '@umbraco-cms/backoffice/external/backend-api'; import { UmbAuthFlow } from './auth-flow.js'; import { UMB_AUTH_CONTEXT } from './auth.context.token.js'; import type { UmbOpenApiConfiguration } from './models/openApiConfiguration.js'; +import { OpenAPI } from '@umbraco-cms/backoffice/external/backend-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/auth/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/auth/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/models/openApiConfiguration.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/models/openApiConfiguration.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/auth/models/openApiConfiguration.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/auth/models/openApiConfiguration.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-alias.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-alias.condition.ts index f3befb71f0..5dbf7488e8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-alias.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-alias.condition.ts @@ -1,11 +1,7 @@ import { UMB_DEFAULT_COLLECTION_CONTEXT } from './default/collection-default.context.js'; +import type { CollectionAliasConditionConfig } from './collection-alias.manifest.js'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import type { - ManifestCondition, - UmbConditionConfigBase, - UmbConditionControllerArguments, - UmbExtensionCondition, -} from '@umbraco-cms/backoffice/extension-api'; +import type { UmbConditionControllerArguments, UmbExtensionCondition } from '@umbraco-cms/backoffice/extension-api'; export class UmbCollectionAliasCondition extends UmbBaseController implements UmbExtensionCondition { config: CollectionAliasConditionConfig; @@ -23,20 +19,4 @@ export class UmbCollectionAliasCondition extends UmbBaseController implements Um } } -export type CollectionAliasConditionConfig = UmbConditionConfigBase & { - /** - * The collection that this extension should be available in - * - * @example - * "Umb.Collection.User" - */ - match: string; -}; - -export const UMB_COLLECTION_ALIAS_CONDITION = 'Umb.Condition.CollectionAlias'; -export const manifest: ManifestCondition = { - type: 'condition', - name: 'Collection Alias Condition', - alias: UMB_COLLECTION_ALIAS_CONDITION, - api: UmbCollectionAliasCondition, -}; +export default UmbCollectionAliasCondition; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-alias.manifest.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-alias.manifest.ts new file mode 100644 index 0000000000..3d918b9311 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-alias.manifest.ts @@ -0,0 +1,19 @@ +import type { ManifestCondition, UmbConditionConfigBase } from '@umbraco-cms/backoffice/extension-api'; + +export type CollectionAliasConditionConfig = UmbConditionConfigBase & { + /** + * The collection that this extension should be available in + * + * @example + * "Umb.Collection.User" + */ + match: string; +}; + +export const UMB_COLLECTION_ALIAS_CONDITION = 'Umb.Condition.CollectionAlias'; +export const manifest: ManifestCondition = { + type: 'condition', + name: 'Collection Alias Condition', + alias: UMB_COLLECTION_ALIAS_CONDITION, + api: () => import('./collection-alias.condition.js'), +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-bulk-action-permission.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-bulk-action-permission.condition.ts index bf97493218..c22b4c5ef8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-bulk-action-permission.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-bulk-action-permission.condition.ts @@ -1,12 +1,7 @@ -import type { UmbCollectionBulkActionPermissions } from './types.js'; import { UMB_DEFAULT_COLLECTION_CONTEXT } from './default/collection-default.context.js'; +import type { CollectionBulkActionPermissionConditionConfig } from './collection-bulk-action-permission.manifest.js'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import type { - ManifestCondition, - UmbConditionConfigBase, - UmbConditionControllerArguments, - UmbExtensionCondition, -} from '@umbraco-cms/backoffice/extension-api'; +import type { UmbConditionControllerArguments, UmbExtensionCondition } from '@umbraco-cms/backoffice/extension-api'; export class UmbCollectionBulkActionPermissionCondition extends UmbBaseController implements UmbExtensionCondition { config: CollectionBulkActionPermissionConditionConfig; @@ -26,17 +21,4 @@ export class UmbCollectionBulkActionPermissionCondition extends UmbBaseControlle } } -export type CollectionBulkActionPermissionConditionConfig = UmbConditionConfigBase< - typeof UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION -> & { - match: (permissions: UmbCollectionBulkActionPermissions) => boolean; -}; - -export const UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION = 'Umb.Condition.CollectionBulkActionPermission'; - -export const manifest: ManifestCondition = { - type: 'condition', - name: 'Collection Bulk Action Permission Condition', - alias: UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION, - api: UmbCollectionBulkActionPermissionCondition, -}; +export default UmbCollectionBulkActionPermissionCondition; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-bulk-action-permission.manifest.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-bulk-action-permission.manifest.ts new file mode 100644 index 0000000000..17fb2ba24c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-bulk-action-permission.manifest.ts @@ -0,0 +1,17 @@ +import type { UmbCollectionBulkActionPermissions } from './types.js'; +import type { ManifestCondition, UmbConditionConfigBase } from '@umbraco-cms/backoffice/extension-api'; + +export type CollectionBulkActionPermissionConditionConfig = UmbConditionConfigBase< + typeof UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION +> & { + match: (permissions: UmbCollectionBulkActionPermissions) => boolean; +}; + +export const UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION = 'Umb.Condition.CollectionBulkActionPermission'; + +export const manifest: ManifestCondition = { + type: 'condition', + name: 'Collection Bulk Action Permission Condition', + alias: UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION, + api: () => import('./collection-bulk-action-permission.condition.js'), +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-action-bundle.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-action-bundle.element.ts index b9e64f5325..4f90d68f5f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-action-bundle.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-action-bundle.element.ts @@ -1,7 +1,6 @@ import type { UmbDefaultCollectionContext } from '../default/collection-default.context.js'; import { UMB_DEFAULT_COLLECTION_CONTEXT } from '../default/collection-default.context.js'; import { html, customElement, state, nothing } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @customElement('umb-collection-action-bundle') @@ -26,8 +25,6 @@ export class UmbCollectionActionBundleElement extends UmbLitElement { ${this._collectionAlias ? html`` : nothing} `; } - - static styles = [UmbTextStyles]; } declare global { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/default/collection-default.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/default/collection-default.context.ts index b5e7d859ae..4a678c6b25 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/default/collection-default.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/default/collection-default.context.ts @@ -9,8 +9,7 @@ import { UmbSelectionManager, UmbPaginationManager } from '@umbraco-cms/backoffi import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import type { ManifestCollection, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; -import type { UmbCollectionFilterModel } from '@umbraco-cms/backoffice/collection'; -import type { UmbCollectionRepository } from '@umbraco-cms/backoffice/repository'; +import type { UmbCollectionFilterModel, UmbCollectionRepository } from '@umbraco-cms/backoffice/collection'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export class UmbDefaultCollectionContext< diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/index.ts index 724bcad260..265dfa9afc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/index.ts @@ -9,7 +9,8 @@ export * from './components/index.js'; export * from './default/collection-default.context.js'; export * from './collection-filter-model.interface.js'; -export { UMB_COLLECTION_ALIAS_CONDITION } from './collection-alias.condition.js'; -export { UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION } from './collection-bulk-action-permission.condition.js'; +export { UMB_COLLECTION_ALIAS_CONDITION } from './collection-alias.manifest.js'; +export { UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION } from './collection-bulk-action-permission.manifest.js'; export { UmbCollectionActionElement, UmbCollectionActionBase } from './action/index.js'; +export type { UmbCollectionDataSource, UmbCollectionRepository } from './repository/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/manifests.ts index 4be1e24da4..271a079a57 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/manifests.ts @@ -1,4 +1,4 @@ -import { manifest as collectionAliasCondition } from './collection-alias.condition.js'; -import { manifest as collectionBulkActionPermissionCondition } from './collection-bulk-action-permission.condition.js'; +import { manifest as collectionAliasCondition } from './collection-alias.manifest.js'; +import { manifest as collectionBulkActionPermissionCondition } from './collection-bulk-action-permission.manifest.js'; export const manifests = [collectionAliasCondition, collectionBulkActionPermissionCondition]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/collection-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/repository/collection-data-source.interface.ts similarity index 58% rename from src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/collection-data-source.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/collection/repository/collection-data-source.interface.ts index 3277b5c3ae..3f256fce86 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/collection-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/repository/collection-data-source.interface.ts @@ -1,5 +1,5 @@ -import type { DataSourceResponse } from '../index.js'; -import type { UmbPagedModel } from './types.js'; +import type { DataSourceResponse } from '../../repository/index.js'; +import type { UmbPagedModel } from '../../repository/types.js'; export interface UmbCollectionDataSource { getCollection(filter: FilterType): Promise>>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/collection-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/repository/collection-repository.interface.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/repository/collection-repository.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/collection/repository/collection-repository.interface.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/repository/index.ts new file mode 100644 index 0000000000..0bb7639017 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/repository/index.ts @@ -0,0 +1,2 @@ +export type { UmbCollectionDataSource } from './collection-data-source.interface.js'; +export type { UmbCollectionRepository } from './collection-repository.interface.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/empty-state.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/empty-state.element.ts deleted file mode 100644 index 2f302e0456..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/empty-state.element.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, html, LitElement, customElement, property } from '@umbraco-cms/backoffice/external/lit'; - -@customElement('umb-empty-state') -export class UmbEmptyStateElement extends LitElement { - /** - * Set the text size - */ - @property({ type: String }) - size: 'small' | 'large' = 'large'; - - /** - * Set the element position - * 'center' => element is absolutely centered - * undefined => element has auto margin, to center in parent - */ - @property({ type: String }) - position: 'center' | undefined; - - render() { - return html``; - } - - static styles = [ - UmbTextStyles, - css` - :host { - display: block; - text-align: center; - padding: var(--uui-size-space-4); - } - - :host([position='center']) { - position: absolute; - top: 50%; - left: 50%; - max-width: 400px; - width: 80%; - transform: translate(-50%, -50%); - } - - :host(:not([position='center'])) { - margin: auto; - } - - :host(:not([size='small'])) { - font-size: var(--uui-size-6); - } - - :host([size='small']) { - font-size: var(--uui-size-5); - } - - slot { - margin: auto; - } - `, - ]; -} - -declare global { - interface HTMLElementTagNameMap { - 'umb-empty-state': UmbEmptyStateElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/empty-state.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/empty-state.stories.ts deleted file mode 100644 index 0d055828ed..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/empty-state.stories.ts +++ /dev/null @@ -1,28 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/web-components'; -import { html } from '@umbraco-cms/backoffice/external/lit'; -import './empty-state.element.js'; -import type { UmbEmptyStateElement } from './empty-state.element.js'; - -const meta: Meta = { - title: 'Components/Empty State', - component: 'umb-empty-state', - render: (args) => - html` There are no items to be found`, -}; - -export default meta; -type Story = StoryObj; - -export const Overview: Story = { - args: { - size: 'large', - }, -}; - -export const Small: Story = { - args: { - size: 'small', - }, -}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/index.ts deleted file mode 100644 index f8e68ab179..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './empty-state.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts index 571998186a..07be562273 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts @@ -1,5 +1,4 @@ -import { css, html, nothing, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { html, nothing, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { map } from '@umbraco-cms/backoffice/external/rxjs'; import type { UmbSectionSidebarContext } from '@umbraco-cms/backoffice/section'; import { UMB_SECTION_SIDEBAR_CONTEXT } from '@umbraco-cms/backoffice/section'; @@ -72,8 +71,6 @@ export class UmbEntityActionsBundleElement extends UmbLitElement { : nothing} `; } - - static styles = [UmbTextStyles, css``]; } declare global { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.element.ts index c8bbd7d875..498ab5c74e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.element.ts @@ -1,5 +1,5 @@ +import { umbExtensionsRegistry } from '../../extension-registry/index.js'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { type ManifestTypes, umbExtensionsRegistry } from '../../extension-registry/index.js'; import type { TemplateResult } from '@umbraco-cms/backoffice/external/lit'; import { css, repeat, customElement, property, state, html } from '@umbraco-cms/backoffice/external/lit'; import { @@ -21,7 +21,7 @@ import { @customElement('umb-extension-slot') export class UmbExtensionSlotElement extends UmbLitElement { #attached = false; - #extensionsController?: UmbExtensionsElementInitializer; + #extensionsController?: UmbExtensionsElementInitializer; @state() private _permittedExts: Array = []; @@ -80,7 +80,7 @@ export class UmbExtensionSlotElement extends UmbLitElement { * */ @property({ type: Object, attribute: false }) - get props() { + get props(): Record | undefined { return this.#props; } set props(newVal: Record | undefined) { @@ -104,7 +104,7 @@ export class UmbExtensionSlotElement extends UmbLitElement { this.#attached = true; } - private _observeExtensions() { + private _observeExtensions(): void { this.#extensionsController?.destroy(); if (this.#type) { this.#extensionsController = new UmbExtensionsElementInitializer( diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts index 50727337dc..dc4b249b61 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts @@ -5,13 +5,11 @@ export * from './backoffice-notification-container/backoffice-notification-conta export * from './body-layout/body-layout.element.js'; export * from './code-block/index.js'; export * from './dropdown/index.js'; -export * from './empty-state/index.js'; export * from './entity-actions-bundle/index.js'; export * from './extension-slot/index.js'; export * from './footer-layout/index.js'; export * from './header-app/index.js'; export * from './history/index.js'; -export * from '../property-editor/uis/checkbox-list/input-checkbox-list/index.js'; export * from './input-color/index.js'; export * from './input-date/index.js'; export * from './input-dropdown/index.js'; @@ -23,11 +21,9 @@ export * from './input-radio-button-list/index.js'; export * from './input-section/index.js'; export * from './input-slider/index.js'; export * from './input-tree-picker-source/index.js'; -export * from './input-tiny-mce/index.js'; export * from './input-toggle/index.js'; export * from './input-upload-field/index.js'; export * from './multiple-color-picker-input/index.js'; export * from './multiple-text-string-input/index.js'; export * from './popover-layout/index.js'; export * from './table/index.js'; -export * from './tooltip-menu/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.element.ts index 99271bcdcc..aa2979d7f7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.element.ts @@ -209,7 +209,6 @@ export class UmbInputUploadFieldElement extends FormControlMixin(UmbLitElement) } #renderFiles() { - console.log('files', this._files); return repeat( this._files, (path) => path, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/index.ts deleted file mode 100644 index 2468243a90..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './tooltip-menu.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/tooltip-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/tooltip-menu.element.ts deleted file mode 100644 index 0568fe51d7..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/tooltip-menu.element.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, html, LitElement, nothing, repeat, customElement, property } from '@umbraco-cms/backoffice/external/lit'; - -export interface TooltipMenuItem { - label: string; - icon?: string; - action: () => void; -} - -@customElement('umb-tooltip-menu') -export class UmbTooltipMenuElement extends LitElement { - @property({ type: Boolean, reflect: true, attribute: 'icon-only' }) - public iconOnly = false; - - @property() - public items: Array = []; - - private _handleItemClick(item: TooltipMenuItem) { - item.action(); - } - - private _handleItemKeyDown(event: KeyboardEvent, item: TooltipMenuItem) { - if (event.key === 'Enter') { - item.action(); - } - } - - private _renderItem(item: TooltipMenuItem) { - if (this.iconOnly && item.icon) { - return html`
this._handleItemClick(item)} - @keydown=${(e: KeyboardEvent) => this._handleItemKeyDown(e, item)} - class="item icon"> - -
`; - } - - return html`
this._handleItemClick(item)} - @keydown=${(e: KeyboardEvent) => this._handleItemKeyDown(e, item)} - class="item ${this.iconOnly ? 'icon' : 'label'}"> - ${item.icon ? html`` : nothing} - ${!this.iconOnly ? html`${item.label}` : nothing} -
`; - } - - render() { - return repeat( - this.items, - (item) => item.label, - (item) => this._renderItem(item), - ); - } - - static styles = [ - UmbTextStyles, - css` - :host { - display: flex; - flex-direction: column; - width: max-content; - background-color: var(--uui-color-surface); - box-shadow: var(--uui-shadow-depth-3); - border-radius: var(--uui-border-radius); - overflow: clip; - } - .item { - color: var(--uui-color-interactive); - align-items: center; - display: flex; - gap: var(--uui-size-space-2); - cursor: pointer; - } - .item:hover { - color: var(--uui-color-interactive-emphasis); - background-color: var(--uui-color-surface-emphasis); - } - .item.label { - padding: var(--uui-size-space-2) var(--uui-size-space-4); - } - .item.icon { - padding: var(--uui-size-space-4); - aspect-ratio: 1/1; - justify-content: center; - } - `, - ]; -} - -declare global { - interface HTMLElementTagNameMap { - 'umb-tooltip-menu': UmbTooltipMenuElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/tooltip-menu.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/tooltip-menu.stories.ts deleted file mode 100644 index 2fdbdbbd47..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/tooltip-menu.stories.ts +++ /dev/null @@ -1,38 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/web-components'; -import './tooltip-menu.element.js'; -import type { UmbTooltipMenuElement, TooltipMenuItem } from './tooltip-menu.element.js'; - -const meta: Meta = { - title: 'Components/Tooltip Menu', - component: 'umb-tooltip-menu', -}; - -export default meta; -type Story = StoryObj; - -const items: Array = [ - { - label: 'Item 1', - icon: 'icon-document', - action: () => alert('Item 1 clicked'), - }, - { - label: 'Item 2', - icon: 'icon-home', - action: () => alert('Item 2 clicked'), - }, -]; - -export const Overview: Story = { - args: { - items: items, - iconOnly: false, - }, -}; - -export const WithIconsOnly: Story = { - args: { - items: items, - iconOnly: true, - }, -}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts index 07f332394a..07ba0a22f7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts @@ -501,7 +501,6 @@ export class UmbContentTypePropertyStructureManager; allowedContentTypes: Array; compositions: Array; + collection: { unique: string } | null; } export interface UmbPropertyTypeScaffoldModel extends Omit { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/manifests.ts index 79a239484b..7b38c042bb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/manifests.ts @@ -1,11 +1,11 @@ import { UMB_EXTENSION_COLLECTION_REPOSITORY_ALIAS } from './repository/index.js'; import { manifests as collectionRepositoryManifests } from './repository/manifests.js'; import { manifests as collectionViewManifests } from './views/manifests.js'; -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestCollection } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_EXTENSION_COLLECTION_ALIAS = 'Umb.Collection.Extension'; -const collectionManifest: ManifestTypes = { +const collectionManifest: ManifestCollection = { type: 'collection', kind: 'default', alias: UMB_EXTENSION_COLLECTION_ALIAS, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/repository/extension-collection.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/repository/extension-collection.repository.ts index e86fcb0c5c..20c8a40094 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/repository/extension-collection.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/repository/extension-collection.repository.ts @@ -1,7 +1,8 @@ import { umbExtensionsRegistry } from '../../registry.js'; import type { ManifestTypes } from '../../models/index.js'; -import { UmbRepositoryBase, type UmbCollectionRepository } from '@umbraco-cms/backoffice/repository'; +import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbCollectionRepository } from '@umbraco-cms/backoffice/collection'; export interface UmbExtensionCollectionFilter { query?: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/views/extension-table-action-column-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/views/extension-table-action-column-layout.element.ts index 1d50bcaa65..1ae41e0fb1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/views/extension-table-action-column-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/views/extension-table-action-column-layout.element.ts @@ -1,5 +1,5 @@ -import { umbExtensionsRegistry, type ManifestTypes } from '../../index.js'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { umbExtensionsRegistry } from '../../index.js'; +import type { ManifestBase } from '@umbraco-cms/backoffice/extension-api'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; @@ -8,7 +8,7 @@ import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backo @customElement('umb-extension-table-action-column-layout') export class UmbExtensionTableActionColumnLayoutElement extends UmbLitElement { @property({ attribute: false }) - value!: ManifestTypes; + value!: ManifestBase; #modalContext?: UmbModalManagerContext; @@ -40,8 +40,6 @@ export class UmbExtensionTableActionColumnLayoutElement extends UmbLitElement { `; } - - static styles = [UmbTextStyles]; } declare global { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/types.ts index 5a6a39d540..8b4e8db7fa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/types.ts @@ -1,5 +1,5 @@ -import type { CollectionAliasConditionConfig } from '../../collection/collection-alias.condition.js'; -import type { CollectionBulkActionPermissionConditionConfig } from '../../collection/collection-bulk-action-permission.condition.js'; +import type { CollectionAliasConditionConfig } from '../../collection/collection-alias.manifest.js'; +import type { CollectionBulkActionPermissionConditionConfig } from '../../collection/collection-bulk-action-permission.manifest.js'; import type { SectionAliasConditionConfig } from './section-alias.condition.js'; import type { SwitchConditionConfig } from './switch.condition.js'; import type { UserPermissionConditionConfig } from '@umbraco-cms/backoffice/user-permission'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/tinymce-plugin.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/tinymce-plugin.model.ts index 6e8688f920..61a686ca0c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/tinymce-plugin.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/tinymce-plugin.model.ts @@ -1,4 +1,4 @@ -import type { UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; +import type { UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/tiny-mce'; import type { ManifestApi } from '@umbraco-cms/backoffice/extension-api'; export interface MetaTinyMcePlugin { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/registry.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/registry.ts index 7299aebe2f..09294be440 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/registry.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/registry.ts @@ -1,5 +1,5 @@ import type { ManifestTypes } from './models/index.js'; -import type { ManifestKind} from '@umbraco-cms/backoffice/extension-api'; +import type { ManifestKind } from '@umbraco-cms/backoffice/extension-api'; import { UmbExtensionRegistry } from '@umbraco-cms/backoffice/extension-api'; export type UmbBackofficeManifestKind = ManifestKind; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/LICENSE b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/LICENSE new file mode 100644 index 0000000000..4300c4cd5e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/LICENSE @@ -0,0 +1,8 @@ +Lucide License +ISC License + +Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2022 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2022. + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icon-dictionary.json b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icon-dictionary.json rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icon.registry.ts b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon.registry.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icon.registry.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon.registry.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icon.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon.stories.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icon.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon.stories.ts index a9720878ef..bcb3013f5b 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icon.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon.stories.ts @@ -1,5 +1,5 @@ import type { Meta, Story } from '@storybook/web-components'; -import icons from '../../../src/shared/icon-registry/icons/icons.json'; +import icons from './icons/icons.json'; import { html, repeat } from '@umbraco-cms/backoffice/external/lit'; export default { diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-activity.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-activity.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-activity.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-activity.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-add.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-add.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-add.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-add.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-addressbook.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-addressbook.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-addressbook.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-addressbook.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-alarm-clock.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-alarm-clock.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-alarm-clock.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-alarm-clock.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-alert-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-alert-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-alert-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-alert-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-alert.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-alert.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-alert.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-alert.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-anchor.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-anchor.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-anchor.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-anchor.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-app.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-app.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-app.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-app.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-application-error.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-application-error.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-application-error.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-application-error.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-application-window-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-application-window-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-application-window-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-application-window-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-application-window.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-application-window.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-application-window.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-application-window.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-arrivals.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-arrivals.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-arrivals.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-arrivals.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-arrow-down.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-arrow-down.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-arrow-down.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-arrow-down.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-arrow-left.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-arrow-left.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-arrow-left.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-arrow-left.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-arrow-right.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-arrow-right.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-arrow-right.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-arrow-right.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-arrow-up.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-arrow-up.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-arrow-up.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-arrow-up.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-art-easel.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-art-easel.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-art-easel.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-art-easel.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-article.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-article.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-article.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-article.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-attachment.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-attachment.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-attachment.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-attachment.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-auction-hammer.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-auction-hammer.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-auction-hammer.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-auction-hammer.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-autofill.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-autofill.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-autofill.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-autofill.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-award.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-award.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-award.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-award.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-axis-rotation-2.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-axis-rotation-2.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-axis-rotation-2.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-axis-rotation-2.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-axis-rotation-3.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-axis-rotation-3.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-axis-rotation-3.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-axis-rotation-3.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-axis-rotation.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-axis-rotation.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-axis-rotation.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-axis-rotation.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-baby-stroller.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-baby-stroller.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-baby-stroller.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-baby-stroller.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-backspace.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-backspace.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-backspace.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-backspace.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-badge-add.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-badge-add.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-badge-add.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-badge-add.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-badge-count.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-badge-count.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-badge-count.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-badge-count.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-badge-remove.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-badge-remove.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-badge-remove.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-badge-remove.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-badge-restricted.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-badge-restricted.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-badge-restricted.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-badge-restricted.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ball.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-ball.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ball.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-ball.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-band-aid.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-band-aid.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-band-aid.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-band-aid.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bar-chart.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bar-chart.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bar-chart.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bar-chart.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-barcode.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-barcode.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-barcode.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-barcode.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bars.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bars.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bars.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bars.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-battery-full.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-battery-full.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-battery-full.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-battery-full.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-battery-low.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-battery-low.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-battery-low.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-battery-low.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-beer-glass.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-beer-glass.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-beer-glass.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-beer-glass.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bell-off.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bell-off.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bell-off.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bell-off.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bell.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bell.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bell.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bell.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bill-dollar.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bill-dollar.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bill-dollar.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bill-dollar.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bill-euro.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bill-euro.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bill-euro.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bill-euro.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bill-pound.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bill-pound.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bill-pound.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bill-pound.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bill-yen.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bill-yen.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bill-yen.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bill-yen.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bill.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bill.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bill.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bill.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-billboard.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-billboard.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-billboard.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-billboard.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bills-dollar.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bills-dollar.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bills-dollar.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bills-dollar.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bills-euro.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bills-euro.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bills-euro.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bills-euro.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bills-pound.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bills-pound.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bills-pound.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bills-pound.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bills-yen.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bills-yen.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bills-yen.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bills-yen.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bills.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bills.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bills.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bills.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-binarycode.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-binarycode.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-binarycode.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-binarycode.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-binoculars.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-binoculars.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-binoculars.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-binoculars.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bird.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bird.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bird.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bird.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-birthday-cake.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-birthday-cake.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-birthday-cake.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-birthday-cake.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-block.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-block.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-block.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-block.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-blueprint.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-blueprint.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-blueprint.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-blueprint.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bluetooth.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bluetooth.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bluetooth.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bluetooth.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-boat-shipping.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-boat-shipping.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-boat-shipping.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-boat-shipping.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bomb.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bomb.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bomb.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bomb.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bones.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bones.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bones.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bones.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-book-alt-2.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-book-alt-2.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-book-alt-2.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-book-alt-2.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-book-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-book-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-book-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-book-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-book.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-book.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-book.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-book.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bookmark.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bookmark.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bookmark.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bookmark.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-books.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-books.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-books.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-books.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-box-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-box-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-box-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-box-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-box-open.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-box-open.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-box-open.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-box-open.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-box.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-box.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-box.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-box.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-brackets.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-brackets.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-brackets.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-brackets.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-brick.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-brick.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-brick.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-brick.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-briefcase.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-briefcase.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-briefcase.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-briefcase.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-browser-window.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-browser-window.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-browser-window.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-browser-window.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-brush-alt-2.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-brush-alt-2.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-brush-alt-2.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-brush-alt-2.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-brush-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-brush-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-brush-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-brush-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-brush.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-brush.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-brush.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-brush.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bug.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bug.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bug.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bug.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bulleted-list.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bulleted-list.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bulleted-list.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bulleted-list.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-burn.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-burn.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-burn.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-burn.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bus.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bus.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bus.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-bus.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-calculator.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-calculator.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-calculator.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-calculator.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-calendar-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-calendar-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-calendar-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-calendar-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-calendar.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-calendar.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-calendar.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-calendar.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-camcorder.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-camcorder.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-camcorder.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-camcorder.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-camera-roll.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-camera-roll.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-camera-roll.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-camera-roll.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-candy.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-candy.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-candy.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-candy.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-caps-lock.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-caps-lock.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-caps-lock.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-caps-lock.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-car.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-car.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-car.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-car.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cash-register.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-cash-register.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cash-register.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-cash-register.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-categories.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-categories.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-categories.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-categories.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-certificate.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-certificate.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-certificate.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-certificate.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chart-curve.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-chart-curve.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chart-curve.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-chart-curve.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chart.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-chart.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chart.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-chart.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chat-active.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-chat-active.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chat-active.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-chat-active.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chat.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-chat.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chat.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-chat.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-check.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-check.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-check.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-check.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-checkbox-dotted-active.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-checkbox-dotted-active.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-checkbox-dotted-active.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-checkbox-dotted-active.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-checkbox-dotted.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-checkbox-dotted.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-checkbox-dotted.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-checkbox-dotted.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-checkbox-empty.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-checkbox-empty.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-checkbox-empty.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-checkbox-empty.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-checkbox.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-checkbox.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-checkbox.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-checkbox.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chess.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-chess.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chess.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-chess.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chip-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-chip-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chip-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-chip-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chip.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-chip.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chip.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-chip.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cinema.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-cinema.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cinema.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-cinema.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-circle-dotted-active.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-circle-dotted-active.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-circle-dotted-active.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-circle-dotted-active.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-circle-dotted.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-circle-dotted.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-circle-dotted.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-circle-dotted.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-circuits.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-circuits.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-circuits.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-circuits.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-circus.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-circus.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-circus.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-circus.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-client.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-client.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-client.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-client.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-clothes-hanger.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-clothes-hanger.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-clothes-hanger.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-clothes-hanger.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cloud-drive.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-cloud-drive.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cloud-drive.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-cloud-drive.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cloud-upload.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-cloud-upload.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cloud-upload.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-cloud-upload.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cloud.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-cloud.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cloud.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-cloud.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cloudy.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-cloudy.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cloudy.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-cloudy.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-clubs.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-clubs.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-clubs.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-clubs.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cocktail.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-cocktail.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cocktail.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-cocktail.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-code.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-code.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-code.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-code.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coffee.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coffee.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coffee.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coffee.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coin-dollar.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coin-dollar.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coin-dollar.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coin-dollar.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coin-euro.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coin-euro.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coin-euro.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coin-euro.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coin-pound.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coin-pound.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coin-pound.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coin-pound.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coin-yen.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coin-yen.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coin-yen.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coin-yen.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coin.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coin.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coin.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coin.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coins-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coins-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-dollar-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coins-dollar-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-dollar-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coins-dollar-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-dollar.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coins-dollar.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-dollar.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coins-dollar.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-euro-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coins-euro-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-euro-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coins-euro-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-euro.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coins-euro.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-euro.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coins-euro.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-pound-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coins-pound-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-pound-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coins-pound-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-pound.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coins-pound.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-pound.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coins-pound.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-yen-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coins-yen-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-yen-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coins-yen-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-yen.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coins-yen.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-yen.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coins-yen.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coins.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coins.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-color-bucket.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-color-bucket.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-color-bucket.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-color-bucket.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-colorpicker.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-colorpicker.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-colorpicker.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-colorpicker.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-columns.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-columns.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-columns.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-columns.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-comb.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-comb.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-comb.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-comb.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-combination-lock-open.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-combination-lock-open.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-combination-lock-open.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-combination-lock-open.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-combination-lock.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-combination-lock.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-combination-lock.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-combination-lock.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-command.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-command.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-command.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-command.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-company.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-company.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-company.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-company.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-compress.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-compress.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-compress.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-compress.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-connection.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-connection.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-connection.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-connection.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-console.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-console.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-console.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-console.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-contrast.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-contrast.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-contrast.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-contrast.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-conversation-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-conversation-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-conversation-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-conversation-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-conversation.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-conversation.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-conversation.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-conversation.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coverflow.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coverflow.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coverflow.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-coverflow.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-credit-card-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-credit-card-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-credit-card-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-credit-card-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-credit-card.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-credit-card.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-credit-card.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-credit-card.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-crop.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-crop.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-crop.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-crop.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-crosshair.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-crosshair.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-crosshair.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-crosshair.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-crown-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-crown-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-crown-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-crown-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-crown.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-crown.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-crown.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-crown.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cupcake.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-cupcake.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cupcake.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-cupcake.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-curve.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-curve.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-curve.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-curve.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cut.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-cut.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cut.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-cut.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-dashboard.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-dashboard.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-dashboard.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-dashboard.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-database.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-database.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-database.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-database.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-defrag.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-defrag.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-defrag.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-defrag.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-delete-key.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-delete-key.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-delete-key.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-delete-key.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-delete.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-delete.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-delete.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-delete.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-departure.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-departure.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-departure.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-departure.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-desk.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-desk.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-desk.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-desk.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-desktop.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-desktop.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-desktop.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-desktop.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diagnostics.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-diagnostics.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diagnostics.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-diagnostics.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diagonal-arrow-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-diagonal-arrow-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diagonal-arrow-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-diagonal-arrow-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diagonal-arrow.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-diagonal-arrow.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diagonal-arrow.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-diagonal-arrow.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diamond.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-diamond.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diamond.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-diamond.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diamonds.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-diamonds.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diamonds.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-diamonds.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-dice.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-dice.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-dice.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-dice.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diploma-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-diploma-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diploma-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-diploma-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diploma.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-diploma.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diploma.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-diploma.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-directions-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-directions-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-directions-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-directions-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-directions.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-directions.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-directions.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-directions.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-disc.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-disc.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-disc.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-disc.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-disk-image.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-disk-image.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-disk-image.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-disk-image.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-display.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-display.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-display.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-display.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-dna.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-dna.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-dna.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-dna.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-dock-connector.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-dock-connector.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-dock-connector.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-dock-connector.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-document-dashed-line.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-document-dashed-line.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-document-dashed-line.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-document-dashed-line.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-document.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-document.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-document.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-document.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-documents.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-documents.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-documents.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-documents.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-dollar-bag.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-dollar-bag.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-dollar-bag.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-dollar-bag.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-donate.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-donate.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-donate.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-donate.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-door-open-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-door-open-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-door-open-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-door-open-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-door-open.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-door-open.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-door-open.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-door-open.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-download-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-download-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-download-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-download-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-download.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-download.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-download.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-download.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-drop.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-drop.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-drop.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-drop.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-eco.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-eco.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-eco.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-eco.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-economy.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-economy.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-economy.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-economy.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-edit.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-edit.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-edit.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-edit.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-eject.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-eject.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-eject.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-eject.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-employee.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-employee.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-employee.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-employee.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-energy-saving-bulb.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-energy-saving-bulb.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-energy-saving-bulb.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-energy-saving-bulb.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-enter.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-enter.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-enter.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-enter.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-equalizer.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-equalizer.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-equalizer.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-equalizer.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-escape.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-escape.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-escape.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-escape.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ethernet.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-ethernet.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ethernet.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-ethernet.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-euro-bag.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-euro-bag.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-euro-bag.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-euro-bag.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-exit-fullscreen.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-exit-fullscreen.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-exit-fullscreen.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-exit-fullscreen.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-eye.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-eye.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-eye.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-eye.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-facebook-like.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-facebook-like.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-facebook-like.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-facebook-like.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-factory.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-factory.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-factory.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-factory.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-favorite.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-favorite.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-favorite.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-favorite.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-female-symbol.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-female-symbol.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-female-symbol.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-female-symbol.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-file-cabinet.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-file-cabinet.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-file-cabinet.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-file-cabinet.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-files.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-files.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-files.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-files.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-filter-arrows.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-filter-arrows.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-filter-arrows.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-filter-arrows.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-filter.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-filter.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-filter.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-filter.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-fingerprint.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-fingerprint.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-fingerprint.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-fingerprint.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-fire.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-fire.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-fire.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-fire.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-firewall.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-firewall.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-firewall.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-firewall.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-firewire.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-firewire.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-firewire.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-firewire.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-flag-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-flag-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-flag-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-flag-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-flag.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-flag.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-flag.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-flag.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-flash.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-flash.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-flash.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-flash.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-flashlight.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-flashlight.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-flashlight.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-flashlight.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-flowerpot.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-flowerpot.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-flowerpot.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-flowerpot.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-folder-open.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-folder-open.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-folder-open.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-folder-open.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-folder-outline.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-folder-outline.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-folder-outline.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-folder-outline.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-folder.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-folder.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-folder.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-folder.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-folders.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-folders.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-folders.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-folders.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-font.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-font.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-font.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-font.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-food.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-food.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-food.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-food.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-footprints.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-footprints.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-footprints.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-footprints.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-forking.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-forking.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-forking.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-forking.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-frame-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-frame-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-frame-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-frame-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-frame.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-frame.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-frame.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-frame.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-fullscreen-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-fullscreen-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-fullscreen-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-fullscreen-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-fullscreen.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-fullscreen.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-fullscreen.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-fullscreen.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-game.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-game.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-game.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-game.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-geometry.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-geometry.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-geometry.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-geometry.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-gift.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-gift.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-gift.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-gift.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-glasses.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-glasses.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-glasses.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-glasses.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-globe-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-globe-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-asia.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-globe-asia.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-asia.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-globe-asia.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-europe-africa.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-globe-europe-africa.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-europe-africa.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-globe-europe-africa.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-inverted-america.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-globe-inverted-america.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-inverted-america.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-globe-inverted-america.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-inverted-asia.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-globe-inverted-asia.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-inverted-asia.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-globe-inverted-asia.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-inverted-europe-africa.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-globe-inverted-europe-africa.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-inverted-europe-africa.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-globe-inverted-europe-africa.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-globe.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-globe.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-gps.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-gps.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-gps.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-gps.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-graduate.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-graduate.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-graduate.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-graduate.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-grid.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-grid.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-grid.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-grid.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hammer.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-hammer.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hammer.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-hammer.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hand-active-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-hand-active-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hand-active-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-hand-active-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hand-active.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-hand-active.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hand-active.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-hand-active.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hand-pointer-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-hand-pointer-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hand-pointer-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-hand-pointer-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hand-pointer.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-hand-pointer.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hand-pointer.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-hand-pointer.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-handprint.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-handprint.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-handprint.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-handprint.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-handshake.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-handshake.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-handshake.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-handshake.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-handtool-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-handtool-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-handtool-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-handtool-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-handtool.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-handtool.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-handtool.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-handtool.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hard-drive-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-hard-drive-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hard-drive-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-hard-drive-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hard-drive.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-hard-drive.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hard-drive.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-hard-drive.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hat.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-hat.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hat.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-hat.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hd.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-hd.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hd.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-hd.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-headphones.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-headphones.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-headphones.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-headphones.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-headset.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-headset.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-headset.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-headset.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hearts.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-hearts.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hearts.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-hearts.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-height.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-height.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-height.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-height.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-help-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-help-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-help-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-help-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-help.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-help.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-help.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-help.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-home.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-home.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-home.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-home.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hourglass.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-hourglass.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hourglass.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-hourglass.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-imac.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-imac.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-imac.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-imac.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-inactive-line.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-inactive-line.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-inactive-line.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-inactive-line.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-inbox-full.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-inbox-full.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-inbox-full.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-inbox-full.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-inbox.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-inbox.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-inbox.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-inbox.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-indent.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-indent.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-indent.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-indent.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-infinity.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-infinity.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-infinity.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-infinity.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-info.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-info.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-info.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-info.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-invoice.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-invoice.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-invoice.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-invoice.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ipad.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-ipad.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ipad.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-ipad.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-iphone.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-iphone.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-iphone.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-iphone.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-item-arrangement.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-item-arrangement.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-item-arrangement.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-item-arrangement.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-junk.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-junk.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-junk.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-junk.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-key.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-key.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-key.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-key.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-keyboard.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-keyboard.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-keyboard.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-keyboard.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-keychain.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-keychain.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-keychain.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-keychain.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-keyhole.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-keyhole.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-keyhole.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-keyhole.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lab.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-lab.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lab.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-lab.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-laptop.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-laptop.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-laptop.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-laptop.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-layers-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-layers-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-layers-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-layers-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-layers.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-layers.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-layers.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-layers.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-layout.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-layout.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-layout.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-layout.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-left-double-arrow.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-left-double-arrow.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-left-double-arrow.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-left-double-arrow.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-legal.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-legal.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-legal.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-legal.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lense.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-lense.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lense.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-lense.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-library.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-library.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-library.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-library.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-light-down.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-light-down.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-light-down.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-light-down.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-light-up.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-light-up.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-light-up.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-light-up.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lightbulb-active.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-lightbulb-active.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lightbulb-active.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-lightbulb-active.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lightbulb.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-lightbulb.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lightbulb.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-lightbulb.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lightning.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-lightning.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lightning.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-lightning.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-link.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-link.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-link.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-link.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-linux-tux.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-linux-tux.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-linux-tux.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-linux-tux.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-list.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-list.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-list.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-list.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-load.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-load.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-load.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-load.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-loading.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-loading.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-loading.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-loading.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-locate.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-locate.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-locate.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-locate.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-location-near-me.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-location-near-me.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-location-near-me.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-location-near-me.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-location-nearby.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-location-nearby.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-location-nearby.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-location-nearby.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lock.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-lock.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lock.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-lock.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-log-out.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-log-out.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-log-out.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-log-out.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-logout.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-logout.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-logout.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-logout.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-loupe.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-loupe.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-loupe.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-loupe.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-magnet.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-magnet.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-magnet.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-magnet.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mailbox.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-mailbox.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mailbox.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-mailbox.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-male-and-female.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-male-and-female.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-male-and-female.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-male-and-female.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-male-symbol.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-male-symbol.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-male-symbol.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-male-symbol.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-map-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-map-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-map-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-map-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-map-location.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-map-location.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-map-location.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-map-location.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-map-marker.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-map-marker.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-map-marker.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-map-marker.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-map.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-map.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-map.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-map.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-medal.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-medal.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-medal.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-medal.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-medical-emergency.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-medical-emergency.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-medical-emergency.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-medical-emergency.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-medicine.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-medicine.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-medicine.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-medicine.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-meeting.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-meeting.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-meeting.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-meeting.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-megaphone.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-megaphone.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-megaphone.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-megaphone.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-merge.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-merge.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-merge.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-merge.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-message-open.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-message-open.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-message-open.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-message-open.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-message-unopened.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-message-unopened.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-message-unopened.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-message-unopened.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-message.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-message.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-message.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-message.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-microscope.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-microscope.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-microscope.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-microscope.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mindmap.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-mindmap.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mindmap.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-mindmap.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mobile.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-mobile.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mobile.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-mobile.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-molecular-network.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-molecular-network.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-molecular-network.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-molecular-network.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-molecular.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-molecular.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-molecular.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-molecular.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mountain.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-mountain.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mountain.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-mountain.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mouse-cursor.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-mouse-cursor.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mouse-cursor.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-mouse-cursor.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mouse.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-mouse.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mouse.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-mouse.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-movie-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-movie-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-movie-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-movie-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-movie.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-movie.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-movie.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-movie.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-multiple-credit-cards.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-multiple-credit-cards.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-multiple-credit-cards.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-multiple-credit-cards.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-multiple-windows.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-multiple-windows.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-multiple-windows.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-multiple-windows.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-music.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-music.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-music.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-music.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-name-badge.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-name-badge.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-name-badge.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-name-badge.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-bottom.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation-bottom.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-bottom.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation-bottom.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-down.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation-down.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-down.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation-down.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-first.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation-first.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-first.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation-first.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-horizontal.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation-horizontal.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-horizontal.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation-horizontal.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-last.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation-last.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-last.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation-last.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-left.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation-left.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-left.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation-left.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-right.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation-right.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-right.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation-right.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-road.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation-road.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-road.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation-road.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-top.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation-top.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-top.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation-top.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-up.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation-up.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-up.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation-up.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-vertical.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation-vertical.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-vertical.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation-vertical.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigation.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigational-arrow.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigational-arrow.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigational-arrow.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-navigational-arrow.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-network-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-network-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-network-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-network-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-newspaper-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-newspaper-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-newspaper-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-newspaper-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-newspaper.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-newspaper.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-newspaper.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-newspaper.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-next-media.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-next-media.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-next-media.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-next-media.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-next.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-next.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-next.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-next.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-nodes.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-nodes.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-nodes.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-nodes.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-notepad-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-notepad-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-notepad-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-notepad-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-notepad.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-notepad.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-notepad.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-notepad.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-old-key.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-old-key.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-old-key.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-old-key.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-old-phone.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-old-phone.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-old-phone.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-old-phone.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-operator.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-operator.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-operator.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-operator.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ordered-list.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-ordered-list.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ordered-list.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-ordered-list.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-os-x.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-os-x.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-os-x.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-os-x.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-out.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-out.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-out.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-out.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-outbox.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-outbox.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-outbox.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-outbox.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-outdent.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-outdent.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-outdent.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-outdent.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-page-add.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-page-add.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-page-add.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-page-add.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-page-down.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-page-down.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-page-down.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-page-down.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-page-remove.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-page-remove.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-page-remove.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-page-remove.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-page-restricted.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-page-restricted.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-page-restricted.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-page-restricted.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-page-up.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-page-up.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-page-up.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-page-up.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-paint-roller.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-paint-roller.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-paint-roller.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-paint-roller.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-palette.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-palette.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-palette.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-palette.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-panel-show.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-panel-show.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-panel-show.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-panel-show.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pannel-close.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pannel-close.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pannel-close.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pannel-close.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pants.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pants.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pants.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pants.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-paper-bag.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-paper-bag.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-paper-bag.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-paper-bag.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-paper-plane-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-paper-plane-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-paper-plane-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-paper-plane-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-paper-plane.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-paper-plane.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-paper-plane.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-paper-plane.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-parachute-drop.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-parachute-drop.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-parachute-drop.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-parachute-drop.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-parental-control.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-parental-control.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-parental-control.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-parental-control.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-partly-cloudy.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-partly-cloudy.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-partly-cloudy.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-partly-cloudy.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-paste-in.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-paste-in.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-paste-in.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-paste-in.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-path.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-path.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-path.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-path.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pause.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pause.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pause.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pause.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pc.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pc.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pc.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pc.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-people-alt-2.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-people-alt-2.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-people-alt-2.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-people-alt-2.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-people-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-people-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-people-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-people-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-people-female.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-people-female.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-people-female.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-people-female.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-people.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-people.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-people.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-people.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-phone-ring.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-phone-ring.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-phone-ring.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-phone-ring.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-phone.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-phone.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-phone.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-phone.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-photo-album.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-photo-album.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-photo-album.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-photo-album.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-picture.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-picture.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-picture.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-picture.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pictures-alt-2.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pictures-alt-2.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pictures-alt-2.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pictures-alt-2.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pictures-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pictures-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pictures-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pictures-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pictures.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pictures.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pictures.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pictures.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pie-chart.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pie-chart.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pie-chart.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pie-chart.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-piggy-bank.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-piggy-bank.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-piggy-bank.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-piggy-bank.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pin-location.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pin-location.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pin-location.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pin-location.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-piracy.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-piracy.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-piracy.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-piracy.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-plane.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-plane.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-plane.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-plane.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-planet.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-planet.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-planet.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-planet.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-play.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-play.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-play.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-play.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-playing-cards.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-playing-cards.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-playing-cards.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-playing-cards.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-playlist.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-playlist.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-playlist.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-playlist.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-plugin.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-plugin.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-plugin.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-plugin.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-podcast.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-podcast.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-podcast.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-podcast.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-poker-chip.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-poker-chip.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-poker-chip.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-poker-chip.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-poll.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-poll.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-poll.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-poll.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-post-it.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-post-it.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-post-it.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-post-it.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pound-bag.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pound-bag.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pound-bag.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pound-bag.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-power-outlet.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-power-outlet.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-power-outlet.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-power-outlet.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-power.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-power.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-power.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-power.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-presentation.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-presentation.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-presentation.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-presentation.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-previous-media.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-previous-media.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-previous-media.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-previous-media.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-previous.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-previous.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-previous.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-previous.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-price-dollar.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-price-dollar.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-price-dollar.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-price-dollar.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-price-euro.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-price-euro.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-price-euro.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-price-euro.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-price-pound.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-price-pound.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-price-pound.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-price-pound.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-price-yen.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-price-yen.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-price-yen.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-price-yen.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-print.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-print.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-print.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-print.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-printer-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-printer-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-printer-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-printer-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-projector.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-projector.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-projector.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-projector.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pulse.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pulse.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pulse.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pulse.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pushpin.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pushpin.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pushpin.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-pushpin.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-qr-code.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-qr-code.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-qr-code.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-qr-code.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-quote.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-quote.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-quote.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-quote.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-radio-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-radio-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-radio-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-radio-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-radio-receiver.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-radio-receiver.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-radio-receiver.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-radio-receiver.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-radio.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-radio.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-radio.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-radio.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-rain.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-rain.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-rain.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-rain.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-rate.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-rate.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-rate.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-rate.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-re-post.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-re-post.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-re-post.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-re-post.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-readonly.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-readonly.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-readonly.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-readonly.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-receipt-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-receipt-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-receipt-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-receipt-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-receipt-dollar.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-receipt-dollar.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-receipt-dollar.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-receipt-dollar.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-receipt-euro.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-receipt-euro.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-receipt-euro.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-receipt-euro.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-receipt-pound.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-receipt-pound.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-receipt-pound.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-receipt-pound.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-receipt-yen.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-receipt-yen.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-receipt-yen.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-receipt-yen.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-reception.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-reception.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-reception.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-reception.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-record.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-record.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-record.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-record.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-redo.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-redo.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-redo.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-redo.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-refresh.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-refresh.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-refresh.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-refresh.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-remote.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-remote.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-remote.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-remote.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-remove.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-remove.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-remove.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-remove.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-repeat-one.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-repeat-one.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-repeat-one.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-repeat-one.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-repeat.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-repeat.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-repeat.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-repeat.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-reply-arrow.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-reply-arrow.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-reply-arrow.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-reply-arrow.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-resize.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-resize.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-resize.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-resize.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-return-to-top.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-return-to-top.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-return-to-top.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-return-to-top.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-right-double-arrow.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-right-double-arrow.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-right-double-arrow.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-right-double-arrow.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-road.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-road.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-road.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-road.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-roadsign.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-roadsign.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-roadsign.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-roadsign.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-rocket.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-rocket.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-rocket.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-rocket.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-rss.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-rss.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-rss.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-rss.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ruler-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-ruler-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ruler-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-ruler-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ruler.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-ruler.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ruler.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-ruler.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-safe.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-safe.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-safe.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-safe.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-safedial.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-safedial.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-safedial.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-safedial.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sandbox-toys.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sandbox-toys.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sandbox-toys.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sandbox-toys.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-satellite-dish.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-satellite-dish.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-satellite-dish.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-satellite-dish.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-save.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-save.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-save.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-save.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-scan.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-scan.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-scan.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-scan.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-school.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-school.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-school.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-school.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-screensharing.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-screensharing.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-screensharing.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-screensharing.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-script-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-script-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-script-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-script-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-script.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-script.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-script.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-script.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-scull.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-scull.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-scull.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-scull.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-search.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-search.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-search.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-search.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-security-camera.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-security-camera.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-security-camera.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-security-camera.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sensor.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sensor.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sensor.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sensor.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-server-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-server-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-server-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-server-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-server.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-server.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-server.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-server.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-settings-alt-2.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-settings-alt-2.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-settings-alt-2.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-settings-alt-2.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-settings-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-settings-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-settings-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-settings-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-settings.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-settings.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-settings.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-settings.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-share-alt-2.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-share-alt-2.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-share-alt-2.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-share-alt-2.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-share-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-share-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-share-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-share-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-share.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-share.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-share.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-share.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sharing-iphone.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sharing-iphone.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sharing-iphone.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sharing-iphone.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shield.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-shield.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shield.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-shield.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shift.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-shift.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shift.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-shift.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shipping-box.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-shipping-box.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shipping-box.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-shipping-box.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shipping.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-shipping.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shipping.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-shipping.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shoe.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-shoe.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shoe.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-shoe.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shopping-basket-alt-2.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-shopping-basket-alt-2.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shopping-basket-alt-2.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-shopping-basket-alt-2.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shopping-basket-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-shopping-basket-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shopping-basket-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-shopping-basket-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shopping-basket.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-shopping-basket.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shopping-basket.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-shopping-basket.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shorts.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-shorts.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shorts.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-shorts.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shuffle.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-shuffle.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shuffle.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-shuffle.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sience.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sience.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sience.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sience.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-simcard.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-simcard.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-simcard.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-simcard.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-single-note.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-single-note.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-single-note.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-single-note.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sitemap.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sitemap.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sitemap.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sitemap.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sleep.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sleep.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sleep.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sleep.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-slideshow.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-slideshow.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-slideshow.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-slideshow.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-smiley-inverted.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-smiley-inverted.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-smiley-inverted.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-smiley-inverted.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-smiley.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-smiley.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-smiley.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-smiley.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-snow.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-snow.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-snow.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-snow.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sound-low.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sound-low.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sound-low.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sound-low.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sound-medium.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sound-medium.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sound-medium.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sound-medium.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sound-off.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sound-off.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sound-off.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sound-off.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sound-waves.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sound-waves.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sound-waves.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sound-waves.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sound.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sound.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sound.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sound.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-spades.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-spades.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-spades.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-spades.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-speaker.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-speaker.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-speaker.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-speaker.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-speed-gauge.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-speed-gauge.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-speed-gauge.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-speed-gauge.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-split-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-split-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-split-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-split-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-split.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-split.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-split.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-split.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sprout.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sprout.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sprout.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sprout.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-squiggly-line.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-squiggly-line.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-squiggly-line.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-squiggly-line.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ssd.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-ssd.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ssd.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-ssd.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stacked-disks.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-stacked-disks.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stacked-disks.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-stacked-disks.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stamp.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-stamp.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stamp.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-stamp.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-star.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-star.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-star.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-star.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stop-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-stop-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stop-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-stop-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stop-hand.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-stop-hand.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stop-hand.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-stop-hand.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stop.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-stop.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stop.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-stop.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-store.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-store.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-store.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-store.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stream.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-stream.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stream.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-stream.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sunny.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sunny.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sunny.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sunny.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sweatshirt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sweatshirt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sweatshirt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sweatshirt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sync.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sync.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sync.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-sync.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-t-shirt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-t-shirt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-t-shirt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-t-shirt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tab-key.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-tab-key.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tab-key.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-tab-key.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tab.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-tab.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tab.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-tab.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tactics.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-tactics.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tactics.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-tactics.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tag.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-tag.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tag.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-tag.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tags.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-tags.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tags.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-tags.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-takeaway-cup.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-takeaway-cup.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-takeaway-cup.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-takeaway-cup.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-target.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-target.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-target.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-target.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-temperatrure-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-temperatrure-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-temperatrure-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-temperatrure-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-temperature.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-temperature.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-temperature.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-temperature.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-terminal.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-terminal.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-terminal.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-terminal.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-theater.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-theater.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-theater.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-theater.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-theif.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-theif.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-theif.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-theif.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thought-bubble.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-thought-bubble.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thought-bubble.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-thought-bubble.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thumb-down.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-thumb-down.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thumb-down.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-thumb-down.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thumb-up.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-thumb-up.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thumb-up.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-thumb-up.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thumbnail-list.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-thumbnail-list.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thumbnail-list.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-thumbnail-list.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thumbnails-small.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-thumbnails-small.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thumbnails-small.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-thumbnails-small.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thumbnails.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-thumbnails.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thumbnails.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-thumbnails.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ticket.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-ticket.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ticket.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-ticket.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-time.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-time.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-time.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-time.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-timer.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-timer.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-timer.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-timer.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tools.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-tools.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tools.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-tools.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-top.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-top.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-top.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-top.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-traffic-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-traffic-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-traffic-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-traffic-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-trafic.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-trafic.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-trafic.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-trafic.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-train.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-train.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-train.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-train.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-trash-alt-2.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-trash-alt-2.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-trash-alt-2.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-trash-alt-2.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-trash-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-trash-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-trash-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-trash-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-trash.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-trash.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-trash.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-trash.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tree.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-tree.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tree.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-tree.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-trophy.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-trophy.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-trophy.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-trophy.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-truck.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-truck.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-truck.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-truck.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tv-old.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-tv-old.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tv-old.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-tv-old.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tv.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-tv.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tv.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-tv.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-content.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umb-content.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-content.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umb-content.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-contour.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umb-contour.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-contour.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umb-contour.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-deploy.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umb-deploy.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-deploy.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umb-deploy.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-developer.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umb-developer.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-developer.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umb-developer.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-media.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umb-media.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-media.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umb-media.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-members.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umb-members.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-members.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umb-members.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-settings.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umb-settings.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-settings.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umb-settings.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-users.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umb-users.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-users.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umb-users.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umbraco.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umbraco.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umbraco.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umbraco.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umbrella.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umbrella.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umbrella.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umbrella.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-undo.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-undo.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-undo.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-undo.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-universal.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-universal.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-universal.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-universal.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-unlocked.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-unlocked.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-unlocked.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-unlocked.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-untitled.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-untitled.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-untitled.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-untitled.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-usb-connector.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-usb-connector.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-usb-connector.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-usb-connector.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-usb.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-usb.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-usb.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-usb.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-user-female.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-user-female.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-user-female.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-user-female.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-user-females-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-user-females-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-user-females-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-user-females-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-user-females.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-user-females.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-user-females.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-user-females.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-user-glasses.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-user-glasses.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-user-glasses.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-user-glasses.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-user.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-user.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-user.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-user.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-users-alt.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-users-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-users-alt.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-users-alt.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-users.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-users.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-users.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-users.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-utilities.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-utilities.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-utilities.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-utilities.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-vcard.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-vcard.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-vcard.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-vcard.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-video.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-video.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-video.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-video.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-voice.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-voice.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-voice.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-voice.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wall-plug.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-wall-plug.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wall-plug.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-wall-plug.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wallet.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-wallet.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wallet.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-wallet.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wand.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-wand.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wand.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-wand.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-war.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-war.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-war.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-war.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-webhook.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-webhook.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-webhook.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-webhook.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-weight.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-weight.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-weight.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-weight.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-width.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-width.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-width.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-width.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wifi.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-wifi.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wifi.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-wifi.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-window-popin.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-window-popin.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-window-popin.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-window-popin.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-window-sizes.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-window-sizes.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-window-sizes.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-window-sizes.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-windows.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-windows.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-windows.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-windows.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wine-glass.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-wine-glass.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wine-glass.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-wine-glass.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wrench.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-wrench.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wrench.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-wrench.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wrong.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-wrong.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wrong.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-wrong.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-yen-bag.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-yen-bag.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-yen-bag.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-yen-bag.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-zip.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-zip.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-zip.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-zip.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-zom-out.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-zom-out.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-zom-out.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-zom-out.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-zoom-in.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-zoom-in.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-zoom-in.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-zoom-in.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-zoom-out.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-zoom-out.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-zoom-out.js rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-zoom-out.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icons.json b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icons.json similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icons.json rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icons.json diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-activity.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-activity.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-activity.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-activity.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-add.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-add.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-add.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-add.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-addressbook.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-addressbook.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-addressbook.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-addressbook.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-alarm-clock.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-alarm-clock.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-alarm-clock.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-alarm-clock.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-alert-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-alert-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-alert-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-alert-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-alert.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-alert.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-alert.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-alert.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-anchor.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-anchor.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-anchor.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-anchor.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-app.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-app.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-app.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-app.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-application-error.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-application-error.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-application-error.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-application-error.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-application-window-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-application-window-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-application-window-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-application-window-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-application-window.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-application-window.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-application-window.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-application-window.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-arrivals.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-arrivals.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-arrivals.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-arrivals.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-arrow-down.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-arrow-down.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-arrow-down.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-arrow-down.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-arrow-left.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-arrow-left.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-arrow-left.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-arrow-left.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-arrow-right.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-arrow-right.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-arrow-right.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-arrow-right.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-arrow-up.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-arrow-up.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-arrow-up.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-arrow-up.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-art-easel.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-art-easel.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-art-easel.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-art-easel.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-article.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-article.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-article.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-article.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-attachment.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-attachment.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-attachment.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-attachment.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-auction-hammer.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-auction-hammer.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-auction-hammer.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-auction-hammer.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-autofill.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-autofill.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-autofill.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-autofill.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-award.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-award.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-award.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-award.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-axis-rotation-2.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-axis-rotation-2.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-axis-rotation-2.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-axis-rotation-2.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-axis-rotation-3.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-axis-rotation-3.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-axis-rotation-3.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-axis-rotation-3.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-axis-rotation.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-axis-rotation.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-axis-rotation.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-axis-rotation.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-baby-stroller.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-baby-stroller.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-baby-stroller.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-baby-stroller.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-backspace.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-backspace.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-backspace.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-backspace.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-badge-add.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-badge-add.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-badge-add.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-badge-add.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-badge-count.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-badge-count.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-badge-count.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-badge-count.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-badge-remove.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-badge-remove.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-badge-remove.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-badge-remove.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-badge-restricted.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-badge-restricted.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-badge-restricted.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-badge-restricted.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-ball.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ball.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-ball.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ball.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-band-aid.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-band-aid.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-band-aid.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-band-aid.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bar-chart.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bar-chart.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bar-chart.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bar-chart.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-barcode.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-barcode.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-barcode.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-barcode.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bars.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bars.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bars.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bars.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-battery-full.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-battery-full.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-battery-full.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-battery-full.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-battery-low.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-battery-low.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-battery-low.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-battery-low.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-beer-glass.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-beer-glass.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-beer-glass.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-beer-glass.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bell-off.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bell-off.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bell-off.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bell-off.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bell.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bell.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bell.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bell.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bill-dollar.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bill-dollar.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bill-dollar.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bill-dollar.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bill-euro.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bill-euro.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bill-euro.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bill-euro.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bill-pound.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bill-pound.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bill-pound.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bill-pound.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bill-yen.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bill-yen.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bill-yen.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bill-yen.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bill.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bill.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bill.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bill.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-billboard.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-billboard.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-billboard.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-billboard.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bills-dollar.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bills-dollar.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bills-dollar.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bills-dollar.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bills-euro.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bills-euro.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bills-euro.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bills-euro.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bills-pound.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bills-pound.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bills-pound.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bills-pound.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bills-yen.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bills-yen.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bills-yen.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bills-yen.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bills.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bills.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bills.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bills.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-binarycode.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-binarycode.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-binarycode.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-binarycode.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-binoculars.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-binoculars.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-binoculars.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-binoculars.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bird.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bird.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bird.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bird.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-birthday-cake.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-birthday-cake.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-birthday-cake.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-birthday-cake.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-block.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-block.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-block.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-block.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-blueprint.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-blueprint.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-blueprint.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-blueprint.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bluetooth.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bluetooth.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bluetooth.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bluetooth.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-boat-shipping.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-boat-shipping.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-boat-shipping.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-boat-shipping.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bomb.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bomb.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bomb.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bomb.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bones.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bones.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bones.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bones.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-book-alt-2.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-book-alt-2.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-book-alt-2.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-book-alt-2.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-book-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-book-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-book-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-book-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-book.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-book.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-book.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-book.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bookmark.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bookmark.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bookmark.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bookmark.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-books.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-books.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-books.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-books.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-box-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-box-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-box-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-box-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-box-open.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-box-open.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-box-open.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-box-open.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-box.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-box.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-box.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-box.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-brackets.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-brackets.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-brackets.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-brackets.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-brick.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-brick.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-brick.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-brick.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-briefcase.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-briefcase.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-briefcase.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-briefcase.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-browser-window.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-browser-window.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-browser-window.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-browser-window.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-brush-alt-2.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-brush-alt-2.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-brush-alt-2.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-brush-alt-2.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-brush-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-brush-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-brush-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-brush-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-brush.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-brush.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-brush.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-brush.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bug.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bug.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bug.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bug.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bulleted-list.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bulleted-list.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bulleted-list.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bulleted-list.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-burn.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-burn.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-burn.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-burn.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bus.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bus.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-bus.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bus.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-calculator.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-calculator.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-calculator.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-calculator.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-calendar-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-calendar-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-calendar-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-calendar-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-calendar.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-calendar.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-calendar.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-calendar.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-camcorder.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-camcorder.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-camcorder.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-camcorder.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-camera-roll.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-camera-roll.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-camera-roll.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-camera-roll.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-candy.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-candy.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-candy.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-candy.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-caps-lock.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-caps-lock.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-caps-lock.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-caps-lock.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-car.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-car.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-car.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-car.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-cash-register.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cash-register.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-cash-register.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cash-register.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-categories.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-categories.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-categories.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-categories.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-certificate.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-certificate.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-certificate.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-certificate.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-chart-curve.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chart-curve.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-chart-curve.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chart-curve.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-chart.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chart.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-chart.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chart.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-chat-active.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chat-active.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-chat-active.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chat-active.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-chat.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chat.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-chat.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chat.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-check.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-check.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-check.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-check.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-checkbox-dotted-active.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-checkbox-dotted-active.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-checkbox-dotted-active.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-checkbox-dotted-active.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-checkbox-dotted.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-checkbox-dotted.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-checkbox-dotted.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-checkbox-dotted.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-checkbox-empty.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-checkbox-empty.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-checkbox-empty.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-checkbox-empty.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-checkbox.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-checkbox.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-checkbox.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-checkbox.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-chess.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chess.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-chess.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chess.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-chip-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chip-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-chip-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chip-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-chip.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chip.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-chip.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chip.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-cinema.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cinema.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-cinema.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cinema.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-circle-dotted-active.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-circle-dotted-active.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-circle-dotted-active.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-circle-dotted-active.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-circle-dotted.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-circle-dotted.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-circle-dotted.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-circle-dotted.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-circuits.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-circuits.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-circuits.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-circuits.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-circus.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-circus.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-circus.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-circus.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-client.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-client.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-client.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-client.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-clothes-hanger.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-clothes-hanger.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-clothes-hanger.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-clothes-hanger.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-cloud-drive.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cloud-drive.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-cloud-drive.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cloud-drive.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-cloud-upload.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cloud-upload.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-cloud-upload.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cloud-upload.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-cloud.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cloud.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-cloud.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cloud.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-cloudy.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cloudy.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-cloudy.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cloudy.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-clubs.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-clubs.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-clubs.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-clubs.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-cocktail.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cocktail.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-cocktail.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cocktail.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-code.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-code.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-code.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-code.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coffee.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coffee.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coffee.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coffee.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coin-dollar.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coin-dollar.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coin-dollar.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coin-dollar.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coin-euro.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coin-euro.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coin-euro.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coin-euro.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coin-pound.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coin-pound.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coin-pound.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coin-pound.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coin-yen.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coin-yen.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coin-yen.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coin-yen.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coin.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coin.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coin.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coin.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coins-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coins-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coins-dollar-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-dollar-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coins-dollar-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-dollar-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coins-dollar.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-dollar.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coins-dollar.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-dollar.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coins-euro-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-euro-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coins-euro-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-euro-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coins-euro.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-euro.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coins-euro.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-euro.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coins-pound-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-pound-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coins-pound-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-pound-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coins-pound.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-pound.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coins-pound.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-pound.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coins-yen-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-yen-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coins-yen-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-yen-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coins-yen.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-yen.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coins-yen.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-yen.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coins.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coins.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-color-bucket.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-color-bucket.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-color-bucket.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-color-bucket.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-colorpicker.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-colorpicker.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-colorpicker.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-colorpicker.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-columns.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-columns.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-columns.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-columns.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-comb.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-comb.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-comb.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-comb.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-combination-lock-open.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-combination-lock-open.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-combination-lock-open.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-combination-lock-open.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-combination-lock.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-combination-lock.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-combination-lock.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-combination-lock.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-command.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-command.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-command.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-command.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-company.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-company.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-company.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-company.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-compress.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-compress.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-compress.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-compress.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-connection.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-connection.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-connection.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-connection.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-console.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-console.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-console.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-console.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-contrast.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-contrast.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-contrast.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-contrast.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-conversation-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-conversation-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-conversation-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-conversation-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-conversation.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-conversation.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-conversation.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-conversation.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coverflow.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coverflow.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-coverflow.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coverflow.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-credit-card-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-credit-card-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-credit-card-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-credit-card-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-credit-card.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-credit-card.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-credit-card.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-credit-card.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-crop.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-crop.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-crop.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-crop.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-crosshair.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-crosshair.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-crosshair.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-crosshair.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-crown-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-crown-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-crown-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-crown-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-crown.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-crown.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-crown.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-crown.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-cupcake.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cupcake.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-cupcake.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cupcake.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-curve.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-curve.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-curve.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-curve.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-cut.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cut.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-cut.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cut.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-dashboard.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-dashboard.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-dashboard.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-dashboard.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-defrag.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-defrag.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-defrag.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-defrag.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-delete-key.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-delete-key.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-delete-key.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-delete-key.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-delete.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-delete.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-delete.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-delete.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-departure.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-departure.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-departure.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-departure.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-desk.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-desk.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-desk.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-desk.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-desktop.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-desktop.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-desktop.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-desktop.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-diagnostics.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diagnostics.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-diagnostics.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diagnostics.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-diagonal-arrow-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diagonal-arrow-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-diagonal-arrow-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diagonal-arrow-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-diagonal-arrow.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diagonal-arrow.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-diagonal-arrow.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diagonal-arrow.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-diamond.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diamond.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-diamond.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diamond.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-diamonds.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diamonds.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-diamonds.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diamonds.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-dice.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-dice.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-dice.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-dice.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-diploma-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diploma-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-diploma-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diploma-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-diploma.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diploma.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-diploma.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diploma.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-directions-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-directions-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-directions-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-directions-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-directions.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-directions.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-directions.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-directions.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-disc.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-disc.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-disc.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-disc.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-disk-image.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-disk-image.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-disk-image.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-disk-image.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-display.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-display.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-display.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-display.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-dna.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-dna.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-dna.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-dna.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-dock-connector.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-dock-connector.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-dock-connector.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-dock-connector.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-document-dashed-line.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-document-dashed-line.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-document-dashed-line.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-document-dashed-line.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-document.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-document.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-document.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-document.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-documents.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-documents.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-documents.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-documents.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-dollar-bag.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-dollar-bag.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-dollar-bag.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-dollar-bag.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-donate.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-donate.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-donate.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-donate.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-door-open-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-door-open-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-door-open-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-door-open-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-door-open.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-door-open.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-door-open.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-door-open.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-download-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-download-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-download-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-download-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-download.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-download.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-download.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-download.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-drop.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-drop.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-drop.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-drop.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-eco.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-eco.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-eco.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-eco.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-economy.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-economy.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-economy.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-economy.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-edit.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-edit.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-edit.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-edit.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-eject.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-eject.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-eject.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-eject.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-employee.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-employee.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-employee.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-employee.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-energy-saving-bulb.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-energy-saving-bulb.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-energy-saving-bulb.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-energy-saving-bulb.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-enter.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-enter.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-enter.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-enter.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-equalizer.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-equalizer.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-equalizer.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-equalizer.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-escape.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-escape.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-escape.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-escape.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-ethernet.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ethernet.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-ethernet.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ethernet.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-euro-bag.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-euro-bag.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-euro-bag.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-euro-bag.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-exit-fullscreen.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-exit-fullscreen.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-exit-fullscreen.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-exit-fullscreen.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-eye.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-eye.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-eye.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-eye.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-facebook-like.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-facebook-like.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-facebook-like.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-facebook-like.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-factory.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-factory.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-factory.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-factory.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-favorite.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-favorite.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-favorite.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-favorite.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-female-symbol.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-female-symbol.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-female-symbol.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-female-symbol.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-file-cabinet.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-file-cabinet.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-file-cabinet.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-file-cabinet.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-files.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-files.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-files.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-files.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-filter-arrows.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-filter-arrows.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-filter-arrows.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-filter-arrows.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-filter.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-filter.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-filter.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-filter.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-fingerprint.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-fingerprint.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-fingerprint.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-fingerprint.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-fire.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-fire.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-fire.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-fire.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-firewall.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-firewall.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-firewall.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-firewall.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-firewire.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-firewire.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-firewire.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-firewire.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-flag-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-flag-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-flag-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-flag-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-flag.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-flag.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-flag.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-flag.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-flash.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-flash.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-flash.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-flash.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-flashlight.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-flashlight.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-flashlight.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-flashlight.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-flowerpot.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-flowerpot.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-flowerpot.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-flowerpot.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-folder-open.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-folder-open.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-folder-open.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-folder-open.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-folder-outline.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-folder-outline.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-folder-outline.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-folder-outline.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-folder.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-folder.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-folder.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-folder.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-folders.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-folders.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-folders.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-folders.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-font.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-font.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-font.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-font.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-food.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-food.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-food.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-food.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-footprints.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-footprints.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-footprints.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-footprints.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-forking.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-forking.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-forking.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-forking.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-frame-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-frame-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-frame-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-frame-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-frame.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-frame.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-frame.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-frame.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-fullscreen-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-fullscreen-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-fullscreen-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-fullscreen-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-fullscreen.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-fullscreen.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-fullscreen.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-fullscreen.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-game.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-game.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-game.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-game.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-geometry.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-geometry.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-geometry.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-geometry.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-gift.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-gift.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-gift.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-gift.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-glasses.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-glasses.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-glasses.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-glasses.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-globe-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-globe-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-globe-asia.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-asia.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-globe-asia.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-asia.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-globe-europe-africa.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-europe-africa.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-globe-europe-africa.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-europe-africa.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-globe-inverted-america.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-inverted-america.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-globe-inverted-america.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-inverted-america.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-globe-inverted-asia.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-inverted-asia.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-globe-inverted-asia.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-inverted-asia.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-globe-inverted-europe-africa.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-inverted-europe-africa.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-globe-inverted-europe-africa.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-inverted-europe-africa.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-globe.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-globe.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-gps.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-gps.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-gps.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-gps.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-graduate.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-graduate.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-graduate.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-graduate.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-grid.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-grid.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-grid.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-grid.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-hammer.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hammer.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-hammer.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hammer.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-hand-active-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hand-active-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-hand-active-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hand-active-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-hand-active.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hand-active.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-hand-active.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hand-active.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-hand-pointer-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hand-pointer-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-hand-pointer-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hand-pointer-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-hand-pointer.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hand-pointer.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-hand-pointer.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hand-pointer.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-handprint.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-handprint.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-handprint.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-handprint.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-handshake.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-handshake.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-handshake.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-handshake.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-handtool-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-handtool-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-handtool-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-handtool-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-handtool.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-handtool.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-handtool.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-handtool.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-hard-drive-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hard-drive-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-hard-drive-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hard-drive-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-hard-drive.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hard-drive.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-hard-drive.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hard-drive.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-hat.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hat.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-hat.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hat.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-hd.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hd.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-hd.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hd.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-headphones.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-headphones.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-headphones.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-headphones.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-headset.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-headset.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-headset.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-headset.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-hearts.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hearts.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-hearts.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hearts.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-height.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-height.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-height.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-height.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-help-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-help-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-help-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-help-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-help.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-help.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-help.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-help.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-home.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-home.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-home.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-home.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-hourglass.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hourglass.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-hourglass.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hourglass.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-imac.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-imac.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-imac.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-imac.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-inactive-line.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-inactive-line.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-inactive-line.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-inactive-line.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-inbox-full.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-inbox-full.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-inbox-full.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-inbox-full.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-inbox.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-inbox.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-inbox.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-inbox.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-indent.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-indent.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-indent.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-indent.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-infinity.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-infinity.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-infinity.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-infinity.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-info.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-info.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-info.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-info.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-invoice.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-invoice.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-invoice.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-invoice.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-ipad.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ipad.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-ipad.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ipad.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-iphone.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-iphone.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-iphone.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-iphone.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-item-arrangement.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-item-arrangement.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-item-arrangement.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-item-arrangement.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-junk.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-junk.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-junk.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-junk.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-key.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-key.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-key.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-key.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-keyboard.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-keyboard.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-keyboard.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-keyboard.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-keychain.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-keychain.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-keychain.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-keychain.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-keyhole.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-keyhole.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-keyhole.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-keyhole.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-lab.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lab.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-lab.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lab.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-laptop.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-laptop.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-laptop.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-laptop.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-layers-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-layers-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-layers-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-layers-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-layers.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-layers.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-layers.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-layers.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-layout.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-layout.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-layout.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-layout.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-left-double-arrow.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-left-double-arrow.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-left-double-arrow.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-left-double-arrow.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-legal.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-legal.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-legal.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-legal.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-lense.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lense.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-lense.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lense.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-library.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-library.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-library.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-library.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-light-down.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-light-down.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-light-down.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-light-down.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-light-up.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-light-up.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-light-up.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-light-up.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-lightbulb-active.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lightbulb-active.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-lightbulb-active.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lightbulb-active.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-lightbulb.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lightbulb.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-lightbulb.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lightbulb.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-lightning.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lightning.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-lightning.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lightning.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-link.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-link.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-link.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-link.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-linux-tux.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-linux-tux.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-linux-tux.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-linux-tux.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-list.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-list.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-list.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-list.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-load.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-load.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-load.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-load.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-loading.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-loading.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-loading.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-loading.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-locate.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-locate.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-locate.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-locate.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-location-near-me.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-location-near-me.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-location-near-me.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-location-near-me.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-location-nearby.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-location-nearby.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-location-nearby.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-location-nearby.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-lock.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lock.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-lock.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lock.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-log-out.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-log-out.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-log-out.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-log-out.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-logout.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-logout.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-logout.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-logout.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-loupe.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-loupe.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-loupe.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-loupe.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-magnet.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-magnet.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-magnet.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-magnet.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-mailbox.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mailbox.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-mailbox.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mailbox.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-male-and-female.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-male-and-female.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-male-and-female.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-male-and-female.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-male-symbol.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-male-symbol.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-male-symbol.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-male-symbol.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-map-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-map-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-map-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-map-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-map-location.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-map-location.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-map-location.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-map-location.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-map-marker.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-map-marker.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-map-marker.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-map-marker.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-map.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-map.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-map.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-map.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-medal.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-medal.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-medal.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-medal.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-medical-emergency.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-medical-emergency.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-medical-emergency.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-medical-emergency.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-medicine.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-medicine.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-medicine.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-medicine.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-meeting.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-meeting.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-meeting.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-meeting.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-megaphone.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-megaphone.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-megaphone.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-megaphone.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-merge.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-merge.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-merge.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-merge.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-message-open.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-message-open.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-message-open.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-message-open.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-message-unopened.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-message-unopened.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-message-unopened.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-message-unopened.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-message.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-message.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-message.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-message.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-microscope.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-microscope.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-microscope.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-microscope.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-mindmap.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mindmap.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-mindmap.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mindmap.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-mobile.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mobile.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-mobile.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mobile.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-molecular-network.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-molecular-network.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-molecular-network.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-molecular-network.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-molecular.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-molecular.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-molecular.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-molecular.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-mountain.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mountain.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-mountain.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mountain.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-mouse-cursor.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mouse-cursor.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-mouse-cursor.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mouse-cursor.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-mouse.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mouse.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-mouse.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mouse.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-movie-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-movie-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-movie-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-movie-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-movie.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-movie.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-movie.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-movie.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-multiple-credit-cards.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-multiple-credit-cards.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-multiple-credit-cards.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-multiple-credit-cards.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-multiple-windows.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-multiple-windows.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-multiple-windows.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-multiple-windows.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-music.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-music.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-music.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-music.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-name-badge.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-name-badge.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-name-badge.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-name-badge.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation-bottom.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-bottom.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation-bottom.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-bottom.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation-down.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-down.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation-down.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-down.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation-first.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-first.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation-first.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-first.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation-horizontal.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-horizontal.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation-horizontal.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-horizontal.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation-last.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-last.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation-last.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-last.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation-left.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-left.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation-left.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-left.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation-right.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-right.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation-right.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-right.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation-road.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-road.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation-road.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-road.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation-top.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-top.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation-top.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-top.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation-up.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-up.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation-up.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-up.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation-vertical.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-vertical.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation-vertical.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-vertical.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigation.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigational-arrow.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigational-arrow.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-navigational-arrow.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigational-arrow.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-network-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-network-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-network-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-network-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-newspaper-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-newspaper-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-newspaper-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-newspaper-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-newspaper.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-newspaper.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-newspaper.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-newspaper.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-next-media.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-next-media.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-next-media.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-next-media.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-next.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-next.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-next.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-next.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-nodes.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-nodes.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-nodes.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-nodes.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-notepad-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-notepad-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-notepad-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-notepad-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-notepad.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-notepad.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-notepad.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-notepad.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-old-key.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-old-key.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-old-key.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-old-key.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-old-phone.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-old-phone.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-old-phone.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-old-phone.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-operator.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-operator.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-operator.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-operator.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-ordered-list.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ordered-list.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-ordered-list.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ordered-list.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-os-x.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-os-x.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-os-x.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-os-x.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-out.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-out.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-out.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-out.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-outbox.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-outbox.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-outbox.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-outbox.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-outdent.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-outdent.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-outdent.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-outdent.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-page-add.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-page-add.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-page-add.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-page-add.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-page-down.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-page-down.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-page-down.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-page-down.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-page-remove.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-page-remove.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-page-remove.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-page-remove.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-page-restricted.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-page-restricted.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-page-restricted.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-page-restricted.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-page-up.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-page-up.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-page-up.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-page-up.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-paint-roller.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-paint-roller.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-paint-roller.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-paint-roller.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-palette.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-palette.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-palette.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-palette.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-panel-show.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-panel-show.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-panel-show.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-panel-show.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pannel-close.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pannel-close.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pannel-close.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pannel-close.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pants.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pants.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pants.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pants.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-paper-bag.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-paper-bag.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-paper-bag.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-paper-bag.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-paper-plane-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-paper-plane-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-paper-plane-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-paper-plane-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-paper-plane.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-paper-plane.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-paper-plane.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-paper-plane.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-parachute-drop.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-parachute-drop.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-parachute-drop.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-parachute-drop.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-parental-control.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-parental-control.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-parental-control.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-parental-control.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-partly-cloudy.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-partly-cloudy.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-partly-cloudy.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-partly-cloudy.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-paste-in.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-paste-in.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-paste-in.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-paste-in.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-path.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-path.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-path.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-path.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pause.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pause.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pause.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pause.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pc.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pc.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pc.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pc.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-people-alt-2.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-people-alt-2.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-people-alt-2.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-people-alt-2.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-people-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-people-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-people-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-people-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-people-female.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-people-female.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-people-female.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-people-female.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-people.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-people.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-people.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-people.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-phone-ring.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-phone-ring.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-phone-ring.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-phone-ring.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-phone.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-phone.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-phone.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-phone.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-photo-album.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-photo-album.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-photo-album.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-photo-album.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-picture.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-picture.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-picture.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-picture.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pictures-alt-2.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pictures-alt-2.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pictures-alt-2.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pictures-alt-2.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pictures-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pictures-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pictures-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pictures-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pictures.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pictures.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pictures.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pictures.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pie-chart.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pie-chart.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pie-chart.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pie-chart.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-piggy-bank.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-piggy-bank.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-piggy-bank.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-piggy-bank.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pin-location.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pin-location.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pin-location.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pin-location.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-piracy.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-piracy.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-piracy.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-piracy.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-plane.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-plane.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-plane.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-plane.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-planet.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-planet.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-planet.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-planet.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-play.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-play.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-play.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-play.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-playing-cards.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-playing-cards.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-playing-cards.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-playing-cards.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-playlist.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-playlist.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-playlist.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-playlist.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-plugin.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-plugin.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-plugin.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-plugin.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-podcast.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-podcast.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-podcast.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-podcast.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-poker-chip.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-poker-chip.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-poker-chip.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-poker-chip.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-poll.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-poll.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-poll.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-poll.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-post-it.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-post-it.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-post-it.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-post-it.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pound-bag.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pound-bag.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pound-bag.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pound-bag.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-power-outlet.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-power-outlet.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-power-outlet.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-power-outlet.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-power.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-power.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-power.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-power.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-presentation.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-presentation.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-presentation.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-presentation.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-previous-media.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-previous-media.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-previous-media.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-previous-media.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-previous.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-previous.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-previous.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-previous.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-price-dollar.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-price-dollar.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-price-dollar.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-price-dollar.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-price-euro.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-price-euro.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-price-euro.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-price-euro.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-price-pound.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-price-pound.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-price-pound.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-price-pound.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-price-yen.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-price-yen.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-price-yen.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-price-yen.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-print.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-print.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-print.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-print.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-printer-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-printer-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-printer-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-printer-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-projector.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-projector.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-projector.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-projector.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pulse.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pulse.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pulse.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pulse.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pushpin.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pushpin.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-pushpin.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pushpin.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-qr-code.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-qr-code.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-qr-code.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-qr-code.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-quote.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-quote.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-quote.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-quote.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-radio-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-radio-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-radio-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-radio-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-radio-receiver.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-radio-receiver.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-radio-receiver.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-radio-receiver.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-radio.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-radio.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-radio.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-radio.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-rain.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-rain.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-rain.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-rain.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-rate.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-rate.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-rate.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-rate.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-re-post.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-re-post.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-re-post.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-re-post.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-readonly.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-readonly.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-readonly.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-readonly.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-receipt-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-receipt-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-receipt-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-receipt-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-receipt-dollar.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-receipt-dollar.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-receipt-dollar.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-receipt-dollar.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-receipt-euro.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-receipt-euro.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-receipt-euro.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-receipt-euro.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-receipt-pound.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-receipt-pound.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-receipt-pound.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-receipt-pound.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-receipt-yen.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-receipt-yen.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-receipt-yen.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-receipt-yen.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-reception.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-reception.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-reception.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-reception.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-record.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-record.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-record.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-record.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-redo.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-redo.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-redo.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-redo.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-refresh.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-refresh.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-refresh.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-refresh.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-remote.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-remote.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-remote.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-remote.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-remove.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-remove.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-remove.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-remove.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-repeat-one.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-repeat-one.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-repeat-one.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-repeat-one.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-repeat.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-repeat.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-repeat.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-repeat.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-reply-arrow.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-reply-arrow.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-reply-arrow.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-reply-arrow.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-resize.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-resize.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-resize.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-resize.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-return-to-top.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-return-to-top.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-return-to-top.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-return-to-top.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-right-double-arrow.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-right-double-arrow.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-right-double-arrow.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-right-double-arrow.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-road.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-road.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-road.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-road.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-roadsign.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-roadsign.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-roadsign.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-roadsign.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-rocket.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-rocket.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-rocket.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-rocket.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-rss.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-rss.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-rss.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-rss.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-ruler-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ruler-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-ruler-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ruler-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-ruler.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ruler.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-ruler.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ruler.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-safe.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-safe.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-safe.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-safe.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-safedial.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-safedial.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-safedial.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-safedial.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sandbox-toys.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sandbox-toys.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sandbox-toys.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sandbox-toys.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-satellite-dish.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-satellite-dish.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-satellite-dish.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-satellite-dish.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-save.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-save.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-save.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-save.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-scan.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-scan.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-scan.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-scan.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-school.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-school.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-school.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-school.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-screensharing.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-screensharing.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-screensharing.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-screensharing.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-script-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-script-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-script-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-script-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-script.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-script.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-script.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-script.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-scull.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-scull.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-scull.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-scull.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-search.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-search.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-search.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-search.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-security-camera.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-security-camera.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-security-camera.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-security-camera.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sensor.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sensor.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sensor.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sensor.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-server-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-server-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-server-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-server-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-server.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-server.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-server.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-server.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-settings-alt-2.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-settings-alt-2.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-settings-alt-2.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-settings-alt-2.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-settings-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-settings-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-settings-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-settings-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-settings.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-settings.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-settings.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-settings.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-share-alt-2.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-share-alt-2.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-share-alt-2.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-share-alt-2.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-share-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-share-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-share-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-share-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-share.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-share.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-share.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-share.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sharing-iphone.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sharing-iphone.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sharing-iphone.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sharing-iphone.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-shield.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shield.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-shield.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shield.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-shift.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shift.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-shift.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shift.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-shipping-box.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shipping-box.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-shipping-box.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shipping-box.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-shipping.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shipping.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-shipping.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shipping.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-shoe.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shoe.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-shoe.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shoe.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-shopping-basket-alt-2.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shopping-basket-alt-2.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-shopping-basket-alt-2.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shopping-basket-alt-2.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-shopping-basket-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shopping-basket-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-shopping-basket-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shopping-basket-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-shopping-basket.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shopping-basket.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-shopping-basket.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shopping-basket.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-shorts.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shorts.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-shorts.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shorts.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-shuffle.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shuffle.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-shuffle.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shuffle.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sience.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sience.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sience.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sience.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-simcard.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-simcard.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-simcard.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-simcard.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-single-note.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-single-note.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-single-note.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-single-note.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sitemap.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sitemap.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sitemap.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sitemap.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sleep.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sleep.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sleep.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sleep.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-slideshow.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-slideshow.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-slideshow.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-slideshow.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-smiley-inverted.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-smiley-inverted.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-smiley-inverted.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-smiley-inverted.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-smiley.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-smiley.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-smiley.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-smiley.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-snow.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-snow.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-snow.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-snow.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sound-low.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sound-low.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sound-low.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sound-low.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sound-medium.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sound-medium.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sound-medium.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sound-medium.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sound-off.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sound-off.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sound-off.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sound-off.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sound-waves.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sound-waves.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sound-waves.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sound-waves.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sound.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sound.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sound.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sound.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-spades.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-spades.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-spades.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-spades.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-speaker.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-speaker.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-speaker.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-speaker.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-speed-gauge.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-speed-gauge.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-speed-gauge.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-speed-gauge.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-split-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-split-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-split-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-split-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-split.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-split.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-split.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-split.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sprout.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sprout.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sprout.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sprout.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-squiggly-line.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-squiggly-line.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-squiggly-line.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-squiggly-line.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-ssd.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ssd.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-ssd.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ssd.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-stacked-disks.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stacked-disks.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-stacked-disks.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stacked-disks.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-stamp.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stamp.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-stamp.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stamp.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-stop-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stop-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-stop-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stop-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-stop-hand.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stop-hand.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-stop-hand.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stop-hand.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-stop.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stop.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-stop.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stop.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-store.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-store.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-store.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-store.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-stream.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stream.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-stream.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stream.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sunny.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sunny.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sunny.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sunny.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sweatshirt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sweatshirt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sweatshirt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sweatshirt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sync.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sync.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-sync.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sync.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-t-shirt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-t-shirt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-t-shirt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-t-shirt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-tab-key.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tab-key.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-tab-key.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tab-key.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-tab.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tab.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-tab.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tab.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-tactics.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tactics.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-tactics.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tactics.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-tag.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tag.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-tag.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tag.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-tags.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tags.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-tags.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tags.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-takeaway-cup.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-takeaway-cup.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-takeaway-cup.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-takeaway-cup.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-target.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-target.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-target.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-target.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-temperatrure-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-temperatrure-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-temperatrure-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-temperatrure-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-temperature.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-temperature.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-temperature.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-temperature.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-terminal.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-terminal.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-terminal.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-terminal.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-theater.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-theater.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-theater.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-theater.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-theif.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-theif.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-theif.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-theif.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-thought-bubble.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thought-bubble.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-thought-bubble.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thought-bubble.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-thumb-down.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thumb-down.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-thumb-down.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thumb-down.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-thumb-up.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thumb-up.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-thumb-up.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thumb-up.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-thumbnail-list.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thumbnail-list.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-thumbnail-list.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thumbnail-list.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-thumbnails-small.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thumbnails-small.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-thumbnails-small.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thumbnails-small.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-thumbnails.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thumbnails.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-thumbnails.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thumbnails.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-ticket.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ticket.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-ticket.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ticket.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-time.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-time.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-time.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-time.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-timer.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-timer.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-timer.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-timer.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-tools.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tools.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-tools.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tools.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-top.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-top.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-top.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-top.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-traffic-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-traffic-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-traffic-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-traffic-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-trafic.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-trafic.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-trafic.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-trafic.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-train.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-train.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-train.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-train.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-trash-alt-2.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-trash-alt-2.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-trash-alt-2.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-trash-alt-2.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-trash-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-trash-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-trash-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-trash-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-trash.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-trash.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-trash.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-trash.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-tree.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tree.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-tree.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tree.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-trophy.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-trophy.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-trophy.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-trophy.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-truck.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-truck.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-truck.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-truck.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-tv-old.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tv-old.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-tv-old.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tv-old.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-tv.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tv.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-tv.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tv.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-umb-content.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-content.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-umb-content.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-content.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-umb-contour.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-contour.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-umb-contour.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-contour.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-umb-deploy.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-deploy.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-umb-deploy.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-deploy.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-umb-developer.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-developer.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-umb-developer.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-developer.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-umb-media.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-media.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-umb-media.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-media.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-umb-members.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-members.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-umb-members.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-members.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-umb-settings.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-settings.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-umb-settings.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-settings.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-umb-users.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-users.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-umb-users.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-users.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-umbraco.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umbraco.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-umbraco.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umbraco.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-umbrella.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umbrella.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-umbrella.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umbrella.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-undo.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-undo.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-undo.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-undo.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-universal.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-universal.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-universal.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-universal.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-unlocked.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-unlocked.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-unlocked.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-unlocked.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-untitled.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-untitled.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-untitled.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-untitled.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-usb-connector.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-usb-connector.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-usb-connector.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-usb-connector.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-usb.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-usb.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-usb.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-usb.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-user-female.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-user-female.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-user-female.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-user-female.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-user-females-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-user-females-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-user-females-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-user-females-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-user-females.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-user-females.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-user-females.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-user-females.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-user-glasses.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-user-glasses.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-user-glasses.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-user-glasses.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-user.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-user.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-user.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-user.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-users-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-users-alt.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-users-alt.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-users-alt.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-users.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-users.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-users.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-users.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-utilities.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-utilities.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-utilities.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-utilities.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-vcard.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-vcard.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-vcard.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-vcard.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-video.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-video.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-video.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-video.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-voice.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-voice.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-voice.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-voice.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-wall-plug.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wall-plug.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-wall-plug.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wall-plug.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-wallet.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wallet.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-wallet.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wallet.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-wand.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wand.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-wand.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wand.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-war.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-war.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-war.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-war.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-webhook.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-webhook.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-webhook.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-webhook.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-weight.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-weight.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-weight.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-weight.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-width.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-width.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-width.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-width.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-wifi.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wifi.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-wifi.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wifi.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-window-popin.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-window-popin.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-window-popin.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-window-popin.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-window-sizes.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-window-sizes.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-window-sizes.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-window-sizes.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-windows.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-windows.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-windows.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-windows.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-wine-glass.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wine-glass.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-wine-glass.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wine-glass.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-wrench.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wrench.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-wrench.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wrench.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-wrong.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wrong.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-wrong.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wrong.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-yen-bag.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-yen-bag.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-yen-bag.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-yen-bag.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-zip.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-zip.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-zip.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-zip.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-zom-out.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-zom-out.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-zom-out.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-zom-out.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-zoom-in.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-zoom-in.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/icon-registry/svgs/icon-zoom-in.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-zoom-in.svg diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/index.ts index 58bc8ce5a7..1896412056 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/index.ts @@ -22,14 +22,12 @@ export * from './picker-input/index.js'; export * from './property-action/index.js'; export * from './property-editor/index.js'; export * from './section/index.js'; -export * from './sorter/index.js'; export * from './store/index.js'; export * from './tree/index.js'; export * from './variant/index.js'; export * from './workspace/index.js'; export * from './culture/index.js'; export * from './temporary-file/index.js'; -export * from './object-type/index.js'; export const onInit: UmbEntryPointOnInit = (host, extensionRegistry) => { new UmbExtensionsApiInitializer(host, extensionRegistry, 'globalContext', [host]); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/localization/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/localization/manifests.ts index 819a8d24c9..0a4ccf43c0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/localization/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/localization/manifests.ts @@ -1,4 +1,3 @@ -import type { ManifestTypes } from '../extension-registry/index.js'; import type { ManifestLocalization } from '../extension-registry/models/localization.model.js'; const localizationManifests: Array = [ @@ -24,4 +23,4 @@ const localizationManifests: Array = [ }, ]; -export const manifests: Array = [...localizationManifests]; +export const manifests = [...localizationManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/manifests.ts index 844a5ea2ea..a72acdc198 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/manifests.ts @@ -1,6 +1,5 @@ import { manifests as collectionManifests } from './collection/manifests.js'; import { manifests as cultureManifests } from './culture/manifests.js'; -import { manifests as dataTypeManifests } from './data-type/manifests.js'; import { manifests as debugManifests } from './debug/manifests.js'; import { manifests as entityActionManifests } from './entity-action/manifests.js'; import { manifests as extensionManifests } from './extension-registry/manifests.js'; @@ -10,7 +9,6 @@ import { manifests as propertyActionManifests } from './property-action/manifest import { manifests as propertyEditorManifests } from './property-editor/manifests.js'; import { manifests as settingsManifests } from './settings/manifests.js'; import { manifests as themeManifests } from './themes/manifests.js'; -import { manifests as tinyMcePluginManifests } from './property-editor/uis/tiny-mce/plugins/manifests.js'; import { manifests as treeManifests } from './tree/manifests.js'; import { manifests as workspaceManifests } from './workspace/manifests.js'; @@ -19,7 +17,6 @@ import type { ManifestTypes, UmbBackofficeManifestKind } from './extension-regis export const manifests: Array = [ ...collectionManifests, ...cultureManifests, - ...dataTypeManifests, ...debugManifests, ...entityActionManifests, ...extensionManifests, @@ -29,7 +26,6 @@ export const manifests: Array = [ ...propertyEditorManifests, ...settingsManifests, ...themeManifests, - ...tinyMcePluginManifests, ...treeManifests, ...workspaceManifests, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item-layout/menu-item-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item-layout/menu-item-layout.element.ts index bb0e2a40f8..b76044d24a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item-layout/menu-item-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item-layout/menu-item-layout.element.ts @@ -1,72 +1,55 @@ -import { html, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import type { UmbSectionContext } from '@umbraco-cms/backoffice/section'; -import { UMB_SECTION_CONTEXT } from '@umbraco-cms/backoffice/section'; +import { html, customElement, property, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; +/** + * @element umb-menu-item-layout + * @description + * A menu item layout to render he backoffice menu item look. + * This supports nested menu items, and if a `entityType` is provided, it will render the entity actions for it. + */ @customElement('umb-menu-item-layout') export class UmbMenuItemLayoutElement extends UmbLitElement { @property({ type: String, attribute: 'entity-type' }) public entityType?: string; + /** + * The icon name for the icon to show in this menu item. + */ @property({ type: String, attribute: 'icon-name' }) public iconName = ''; + /** + * The label for this menu item. + */ @property({ type: String }) public label = ''; + /** + * Declare if this item has children, this will show the expand symbol. + */ @property({ type: Boolean, attribute: 'has-children' }) public hasChildren = false; - @state() - private _href?: string; - - #sectionContext?: UmbSectionContext; - - constructor() { - super(); - - this.consumeContext(UMB_SECTION_CONTEXT, (sectionContext) => { - this.#sectionContext = sectionContext; - this._observeSection(); - }); - } - - private _observeSection() { - if (!this.#sectionContext) return; - - this.observe(this.#sectionContext?.pathname, (pathname) => { - if (!pathname) return; - this._href = this._constructPath(pathname); - }); - } - - // TODO: how do we handle this? - // TODO: use router context - private _constructPath(sectionPathname: string) { - return `section/${sectionPathname}/workspace/${this.entityType}`; - } + /** + * Define a href for this menu item. + */ + @property({ type: String }) + public href?: string; render() { - return html`${this.#renderIcon()}${this.#renderActions()}`; + return html` + + ${this.entityType + ? html` + ` + : ''} + + `; } - - #renderIcon() { - return html` `; - } - - #renderActions() { - return html` - `; - } - - static styles = [UmbTextStyles]; } declare global { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item/menu-item-default.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item/menu-item-default.element.ts index 7a9fcd1c74..a44ab263cb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item/menu-item-default.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item/menu-item-default.element.ts @@ -1,21 +1,52 @@ -import { html, ifDefined, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { ManifestMenuItem, UmbMenuItemElement } from '@umbraco-cms/backoffice/extension-registry'; +import { UMB_SECTION_CONTEXT } from '@umbraco-cms/backoffice/section'; @customElement('umb-menu-item-default') export class UmbMenuItemDefaultElement extends UmbLitElement implements UmbMenuItemElement { + // + #pathname?: string; + @property({ type: Object, attribute: false }) - manifest!: ManifestMenuItem; + private _manifest!: ManifestMenuItem; + public get manifest(): ManifestMenuItem { + return this._manifest; + } + public set manifest(value: ManifestMenuItem) { + this._manifest = value; + this.#constructHref(); + } + + @state() + private _href?: string; + + constructor() { + super(); + + this.consumeContext(UMB_SECTION_CONTEXT, (sectionContext) => { + this.observe( + sectionContext?.pathname, + (pathname) => { + this.#pathname = pathname; + this.#constructHref(); + }, + 'observePathname', + ); + }); + } + + #constructHref() { + if (!this.#pathname || !this.manifest) return; + this._href = `section/${this.#pathname}/workspace/${this.manifest.meta.entityType}`; + } render() { return html``; + .label=${this.manifest.meta.label ?? this.manifest.name} + .iconName=${this.manifest.meta.icon ?? ''} + .href=${this._href}>`; } - - static styles = [UmbTextStyles]; } declare global { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.element.ts index 5449caf2c5..4baea4fcdb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.element.ts @@ -1,4 +1,3 @@ -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import type { ManifestMenu, ManifestMenuItem } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -21,8 +20,6 @@ export class UmbMenuElement extends UmbLitElement { .filter=${(items: ManifestMenuItem) => items.meta.menus.includes(this.manifest!.alias)} default-element="umb-menu-item-default">`; } - - static styles = [UmbTextStyles]; } export default UmbMenuElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.element.ts index c26464fd11..a994540316 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.element.ts @@ -24,7 +24,7 @@ export class UmbConfirmModalElement extends UmbLitElement { ${this.data?.content} - Cancel + `; } - - static styles = [UmbTextStyles, css``]; } export default UmbSectionPickerModalElement; 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 badaa63ece..33cc1bd999 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 @@ -1,5 +1,4 @@ import { html, customElement, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbTreePickerModalData, UmbPickerModalValue } from '@umbraco-cms/backoffice/modal'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbSelectionChangeEvent } from '@umbraco-cms/backoffice/event'; @@ -60,8 +59,6 @@ export class UmbTreePickerModalElement `; } - - static styles = [UmbTextStyles]; } export default UmbTreePickerModalElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-route-registration.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-route-registration.controller.ts index b148cae4c6..622839d5b4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-route-registration.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-route-registration.controller.ts @@ -170,6 +170,10 @@ export class UmbModalRouteRegistrationController`; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUICheckboxListElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.element.ts index 98b45396c6..1ad960ea74 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.element.ts @@ -3,7 +3,6 @@ import { html, customElement, property, state } from '@umbraco-cms/backoffice/ex import type { UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UmbPropertyValueChangeEvent } from '@umbraco-cms/backoffice/property-editor'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; /** @@ -42,8 +41,6 @@ export class UmbPropertyEditorUICollectionViewOrderByElement render() { return html``; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUICollectionViewOrderByElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/date-picker/property-editor-ui-date-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/date-picker/property-editor-ui-date-picker.element.ts index 35cb9962fa..560353a64e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/date-picker/property-editor-ui-date-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/date-picker/property-editor-ui-date-picker.element.ts @@ -1,7 +1,6 @@ import type { UmbPropertyEditorConfigCollection } from '../../index.js'; import { UmbPropertyValueChangeEvent } from '../../index.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbInputDateElement } from '@umbraco-cms/backoffice/components'; @@ -94,8 +93,6 @@ export class UmbPropertyEditorUIDatePickerElement extends UmbLitElement implemen .offsetTime=${this._offsetTime || false} label="Pick a date or time">`; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUIDatePickerElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/dropdown/property-editor-ui-dropdown.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/dropdown/property-editor-ui-dropdown.element.ts index d434ece0eb..e310cb10d5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/dropdown/property-editor-ui-dropdown.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/dropdown/property-editor-ui-dropdown.element.ts @@ -1,5 +1,4 @@ import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import type { UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; @@ -60,8 +59,6 @@ export class UmbPropertyEditorUIDropdownElement extends UmbLitElement implements ?multiple=${this._multiple} .options="${this._list}">`; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUIDropdownElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/property-editor-ui-icon-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/property-editor-ui-icon-picker.element.ts index aab161a0b6..42033ff8ee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/property-editor-ui-icon-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/property-editor-ui-icon-picker.element.ts @@ -1,5 +1,4 @@ import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UMB_MODAL_MANAGER_CONTEXT, UMB_ICON_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; @@ -79,8 +78,6 @@ export class UmbPropertyEditorUIIconPickerElement extends UmbLitElement implemen `; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUIIconPickerElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/manifests.ts index b6fc6c9caf..caeaf5e4c8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/manifests.ts @@ -24,7 +24,6 @@ import { manifest as valueType } from './value-type/manifests.js'; import { manifests as collectionView } from './collection-view/manifests.js'; import { manifests as numbers } from './number/manifests.js'; import { manifests as textBoxes } from './text-box/manifests.js'; -import { manifests as tinyMCE } from './tiny-mce/manifests.js'; import { manifests as treePicker } from './tree-picker/manifests.js'; import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; @@ -55,6 +54,5 @@ export const manifests: Array = [ ...collectionView, ...numbers, ...textBoxes, - ...tinyMCE, ...treePicker, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-group-picker/property-editor-ui-member-group-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-group-picker/property-editor-ui-member-group-picker.element.ts index b9c2b8de3c..f5fbc15d87 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-group-picker/property-editor-ui-member-group-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-group-picker/property-editor-ui-member-group-picker.element.ts @@ -1,5 +1,4 @@ import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; @@ -18,8 +17,6 @@ export class UmbPropertyEditorUIMemberGroupPickerElement extends UmbLitElement i render() { return html`
umb-property-editor-ui-member-group-picker
`; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUIMemberGroupPickerElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-picker/property-editor-ui-member-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-picker/property-editor-ui-member-picker.element.ts index 087825bca2..1de57e69dd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-picker/property-editor-ui-member-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-picker/property-editor-ui-member-picker.element.ts @@ -1,5 +1,4 @@ import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; @@ -18,8 +17,6 @@ export class UmbPropertyEditorUIMemberPickerElement extends UmbLitElement implem render() { return html`
umb-property-editor-ui-member-picker
`; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUIMemberPickerElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts index 0df83516d5..571085eea1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts @@ -1,6 +1,5 @@ import { UMB_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/property'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UUIModalSidebarSize } from '@umbraco-cms/backoffice/external/uui'; import type { UmbInputMultiUrlElement } from '@umbraco-cms/backoffice/components'; import type { UmbLinkPickerLink } from '@umbraco-cms/backoffice/modal'; @@ -76,8 +75,6 @@ export class UmbPropertyEditorUIMultiUrlPickerElement extends UmbLitElement impl .min=${this._minNumber} .urls="${this.value ?? []}">`; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUIMultiUrlPickerElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number-range/property-editor-ui-number-range.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number-range/property-editor-ui-number-range.element.ts index 8f02126d89..f06d003f42 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number-range/property-editor-ui-number-range.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number-range/property-editor-ui-number-range.element.ts @@ -1,6 +1,5 @@ import type { UmbInputNumberRangeElement } from '../../../components/input-number-range/input-number-range.element.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; @@ -46,8 +45,6 @@ export class UmbPropertyEditorUINumberRangeElement extends UmbLitElement impleme .maxValue=${this._maxValue} @change=${this._onChange}>`; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUINumberRangeElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/overlay-size/property-editor-ui-overlay-size.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/overlay-size/property-editor-ui-overlay-size.element.ts index 561be7bef0..e807ef8bbe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/overlay-size/property-editor-ui-overlay-size.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/overlay-size/property-editor-ui-overlay-size.element.ts @@ -1,5 +1,4 @@ import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; @@ -40,8 +39,6 @@ export class UmbPropertyEditorUIOverlaySizeElement extends UmbLitElement impleme render() { return html``; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUIOverlaySizeElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts index 39e5065813..250387e4c4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts @@ -1,7 +1,6 @@ import type { UmbInputRadioButtonListElement } from '../../../components/input-radio-button-list/input-radio-button-list.element.js'; import '../../../components/input-radio-button-list/input-radio-button-list.element.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -57,8 +56,6 @@ export class UmbPropertyEditorUIRadioButtonListElement extends UmbLitElement imp .selectedKey="${this.#value}" .list="${this._list}">`; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUIRadioButtonListElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/slider/property-editor-ui-slider.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/slider/property-editor-ui-slider.element.ts index 75d6edbaf6..79d3b7d6eb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/slider/property-editor-ui-slider.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/slider/property-editor-ui-slider.element.ts @@ -1,6 +1,5 @@ import type { UmbInputSliderElement } from '../../../components/input-slider/input-slider.element.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; @@ -70,8 +69,6 @@ export class UmbPropertyEditorUISliderElement extends UmbLitElement implements U ?enable-range=${this._enableRange} @change="${this._onChange}">`; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUISliderElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/toggle/property-editor-ui-toggle.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/toggle/property-editor-ui-toggle.element.ts index fcb6e9802b..d01fab5274 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/toggle/property-editor-ui-toggle.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/toggle/property-editor-ui-toggle.element.ts @@ -1,6 +1,5 @@ import type { UmbInputToggleElement } from '../../../components/input-toggle/input-toggle.element.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -43,8 +42,6 @@ export class UmbPropertyEditorUIToggleElement extends UmbLitElement implements U ?showLabels="${this._showLabels}" @change="${this._onChange}">`; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUIToggleElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/property-editor-ui-tree-picker-source-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/property-editor-ui-tree-picker-source-picker.element.ts index 97fffa0393..d8b1002fda 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/property-editor-ui-tree-picker-source-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/property-editor-ui-tree-picker-source-picker.element.ts @@ -5,7 +5,6 @@ import { type UmbPropertyEditorConfigCollection, UmbPropertyValueChangeEvent, } from '@umbraco-cms/backoffice/property-editor'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; /** @@ -41,8 +40,6 @@ export class UmbPropertyEditorUITreePickerSourcePickerElement .nodeId=${this.value?.id} .dynamicRoot=${this.value?.dynamicRoot}>`; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUITreePickerSourcePickerElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts index 00512ba033..dd1ee00dee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts @@ -4,7 +4,6 @@ import type { UmbInputMediaTypeElement } from '@umbraco-cms/backoffice/media-typ import type { UmbTreePickerSource } from '@umbraco-cms/backoffice/components'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { customElement, html, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property'; import { UmbPropertyValueChangeEvent } from '@umbraco-cms/backoffice/property-editor'; @@ -128,8 +127,6 @@ export class UmbPropertyEditorUITreePickerSourceTypePickerElement @change=${this.#onChange} .selectedIds=${this.#selectedIds}>`; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUITreePickerSourceTypePickerElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts index b60214047d..e7247ff136 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts @@ -1,6 +1,5 @@ import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbPropertyValueChangeEvent } from '@umbraco-cms/backoffice/property-editor'; import { UmbDynamicRootRepository } from '@umbraco-cms/backoffice/dynamic-root'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; @@ -107,7 +106,6 @@ export class UmbPropertyEditorUITreePickerElement extends UmbLitElement implemen ?ignoreUserStartNodes=${this.ignoreUserStartNodes} @change=${this.#onChange}>`; } - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUITreePickerElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/upload-field/property-editor-ui-upload-field.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/upload-field/property-editor-ui-upload-field.element.ts index db6cde5584..2dcca0456c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/upload-field/property-editor-ui-upload-field.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/upload-field/property-editor-ui-upload-field.element.ts @@ -1,6 +1,5 @@ import type { UmbInputUploadFieldElement } from '../../../components/input-upload-field/input-upload-field.element.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; @@ -42,8 +41,6 @@ export class UmbPropertyEditorUIUploadFieldElement extends UmbLitElement impleme .fileExtensions="${this._fileExtensions}" .keys=${(this.value as string)?.split(',') ?? []}>`; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUIUploadFieldElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/user-picker/property-editor-ui-user-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/user-picker/property-editor-ui-user-picker.element.ts index 00f213ad42..1aaa695503 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/user-picker/property-editor-ui-user-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/user-picker/property-editor-ui-user-picker.element.ts @@ -1,5 +1,4 @@ import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; @@ -19,8 +18,6 @@ export class UmbPropertyEditorUIUserPickerElement extends UmbLitElement implemen render() { return html` `; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUIUserPickerElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/value-type/property-editor-ui-value-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/value-type/property-editor-ui-value-type.element.ts index 07cbb2288c..02cd33ec60 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/value-type/property-editor-ui-value-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/value-type/property-editor-ui-value-type.element.ts @@ -1,5 +1,4 @@ import { html, customElement, property, state, query } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UUISelectElement, UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -56,8 +55,6 @@ export class UmbPropertyEditorUIValueTypeElement extends UmbLitElement implement .options="${this._options}" @change="${this.#onChange}">`; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUIValueTypeElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/property-dataset-context.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/property-dataset-context.interface.ts index a27696958e..ad103dd2ea 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/property-dataset-context.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/property-dataset-context.interface.ts @@ -1,4 +1,5 @@ import type { UmbVariantId } from '../../variant/variant-id.class.js'; +import type { UmbContext } from '@umbraco-cms/backoffice/class-api'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; /** @@ -15,7 +16,7 @@ import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; * Others might have saved publishing status. * Also setting the name is an additional feature. */ -export interface UmbPropertyDatasetContext { +export interface UmbPropertyDatasetContext extends UmbContext { getEntityType(): string; getUnique(): string | undefined; getVariantId: () => UmbVariantId; @@ -26,8 +27,6 @@ export interface UmbPropertyDatasetContext { // Should it be possible to get the properties as a list of property aliases? //readonly properties: Observable>; - destroy(): void; - // Property methods: propertyVariantId?: (propertyAlias: string) => Promise>; propertyValueByAlias(propertyAlias: string): Promise>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts index e39b92fe95..194c1c44e8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts @@ -76,7 +76,7 @@ export class UmbPropertyContext extends UmbBaseController { private _observePropertyVariant?: UmbObserverController; private _observePropertyValue?: UmbObserverController; - private async _observeProperty() { + private async _observeProperty(): Promise { const alias = this.#alias.getValue(); if (!this.#datasetContext || !alias) return; @@ -107,20 +107,20 @@ export class UmbPropertyContext extends UmbBaseController { ); } - public setAlias(alias: string | undefined) { + public setAlias(alias: string | undefined): void { this.#alias.setValue(alias); } - public setLabel(label: string | undefined) { + public setLabel(label: string | undefined): void { this.#label.setValue(label); } - public setDescription(description: string | undefined) { + public setDescription(description: string | undefined): void { this.#description.setValue(description); } /** * Set the value of this property. * @param value {ValueType} the whole value to be set */ - public setValue(value: ValueType | undefined) { + public setValue(value: ValueType | undefined): void { const alias = this.#alias.getValue(); if (!this.#datasetContext || !alias) return; this.#datasetContext?.setPropertyValue(alias, value); @@ -130,24 +130,25 @@ export class UmbPropertyContext extends UmbBaseController { * Notice this is not reactive, you should us the `value` observable for that. * @returns {ValueType} */ - public getValue() { + public getValue(): ValueType | undefined { return this.#value.getValue(); } - public setConfig(config: Array | undefined) { + public setConfig(config: Array | undefined): void { this.#configValues.setValue(config ?? []); } - public setVariantId(variantId: UmbVariantId | undefined) { + public setVariantId(variantId: UmbVariantId | undefined): void { this.#variantId.setValue(variantId); } - public getVariantId() { + public getVariantId(): UmbVariantId | undefined { return this.#variantId.getValue(); } - public resetValue() { + public resetValue(): void { this.setValue(undefined); // TODO: We should get the default value from Property Editor maybe even later the DocumentType, as that would hold the default value for the property. } public destroy(): void { + super.destroy(); this.#alias.destroy(); this.#label.destroy(); this.#description.destroy(); @@ -155,6 +156,7 @@ export class UmbPropertyContext extends UmbBaseController { this.#value.destroy(); this.#configCollection.destroy(); this._providerController.destroy(); // This would also be handled by the controller host, but if someone wanted to replace/remove this context without the host being destroyed. Then we have clean up out selfs here. + this.#datasetContext = undefined; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.element.ts index 6566007310..1219343b35 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.element.ts @@ -121,7 +121,7 @@ export class UmbPropertyElement extends UmbLitElement { }); } - private _onPropertyEditorChange = (e: CustomEvent) => { + private _onPropertyEditorChange = (e: CustomEvent): void => { const target = e.composedPath()[0] as any; //this.value = target.value; // Sets value in context. @@ -129,7 +129,7 @@ export class UmbPropertyElement extends UmbLitElement { e.stopPropagation(); }; - private _observePropertyEditorUI() { + private _observePropertyEditorUI(): void { this.observe( umbExtensionsRegistry.byTypeAndAlias('propertyEditorUi', this._propertyEditorUiAlias), (manifest) => { @@ -139,7 +139,7 @@ export class UmbPropertyElement extends UmbLitElement { ); } - private async _gotEditorUI(manifest?: ManifestPropertyEditorUi | null) { + private async _gotEditorUI(manifest?: ManifestPropertyEditorUi | null): Promise { this.#propertyContext.setEditor(undefined); if (!manifest) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/copy-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/copy/copy-data-source.interface.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/copy-data-source.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/repository/copy/copy-data-source.interface.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/copy-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/copy/copy-repository.interface.ts similarity index 60% rename from src/Umbraco.Web.UI.Client/src/packages/core/repository/copy-repository.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/repository/copy/copy-repository.interface.ts index ce814944ce..7dd2abe75b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/copy-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/copy/copy-repository.interface.ts @@ -1,4 +1,4 @@ -import type { DataSourceResponse } from './data-source/index.js'; +import type { DataSourceResponse } from '../data-source-response.interface.js'; export interface UmbCopyRepository { copy(unique: string, targetUnique: string): Promise>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/copy/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/copy/index.ts new file mode 100644 index 0000000000..e5630ce0f5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/copy/index.ts @@ -0,0 +1,2 @@ +export type { UmbCopyDataSource } from './copy-data-source.interface.js'; +export type { UmbCopyRepository } from './copy-repository.interface.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/data-source-response.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source-response.interface.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/data-source-response.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source-response.interface.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/data-source.interface.ts deleted file mode 100644 index b1309ffb4c..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/data-source.interface.ts +++ /dev/null @@ -1,19 +0,0 @@ -import type { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; - -export interface UmbDataSource< - CreateRequestType, - CreateResponseType, - UpdateRequestType, - ResponseType, - CreateScaffoldPresetType = Partial, - ScaffoldResponseType = Partial, -> { - createScaffold( - parentId: string | null, - preset?: Partial | CreateScaffoldPresetType, - ): Promise>; - create(data: CreateRequestType): Promise>; - read(unique: string): Promise>; - update(unique: string, data: UpdateRequestType): Promise>; - delete(unique: string): Promise; -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-paged-response-data.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-paged-response-data.function.ts deleted file mode 100644 index e3f7bfcc61..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-paged-response-data.function.ts +++ /dev/null @@ -1,41 +0,0 @@ -import type { DataSourceResponse, UmbPagedModel } from '../index.js'; -import type { Diff } from '@umbraco-cms/backoffice/utils'; - -/** - * This function extends the data set of a paged DataSourceResponse. - * Provide the desired type as a generic type parameter. - * This will require the appendData argument to fill in the missing properties of the items. - * @param response {DataSourceResponse>} - * @param appendData {object} Additional properties to append to the data set. - * @returns {DataSourceResponse>} - * - * @example - * - * type originalResponseType = { foo: string }; - * type extendedResponseType = { foo: string, bar: string }; - * - * const extendedResponse = extendDataSourcePagedResponseData(originalResponse, { bar: 'some additional data' }); - * - * extendedResponse.data.items[0].bar is now equal to 'some additional data' - */ -export function extendDataSourcePagedResponseData< - ExtendedDataType extends IncomingDataType, - IncomingDataType extends object = object, - MissingPropsType extends object = Diff, - // Maybe this Omit<..., "$ype"> can be removed, but for now it kept showing up as a difference, though its not a difference on the two types. - ToType = IncomingDataType & ExtendedDataType, ->( - response: DataSourceResponse>, - appendData: MissingPropsType, -): DataSourceResponse> { - if (response.data === undefined) return response as unknown as DataSourceResponse>; - return { - ...response, - data: { - ...response.data, - items: response.data.items.map((x) => { - return { ...x, ...appendData } as unknown as ToType; - }), - }, - }; -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-paged-response-data.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-paged-response-data.test.ts deleted file mode 100644 index 533f637da3..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-paged-response-data.test.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { expect } from '@open-wc/testing'; -import type { UmbPagedModel } from './types.js'; -import type { DataSourceResponse } from './data-source-response.interface.js'; -import { extendDataSourcePagedResponseData } from './extend-data-source-paged-response-data.function.js'; - -describe('extendDataSourcePagedResponseData', () => { - it('is a function', () => { - expect(extendDataSourcePagedResponseData).that.is.a('function'); - }); - - describe('Extending data set', () => { - it('has an controllerAlias property', () => { - const response: DataSourceResponse> = { - data: { - items: [ - { - original: 'prop', - }, - { - original: 'prop', - }, - ], - total: 2, - }, - }; - - const extendedResponse = extendDataSourcePagedResponseData(response, { foo: 'bar' }); - - expect(extendedResponse.data).that.is.a('object'); - expect(extendedResponse.data?.items[1]) - .to.have.property('original') - .to.be.equal('prop'); - expect(extendedResponse.data?.items[1]) - .to.have.property('foo') - .to.be.equal('bar'); - }); - }); -}); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-response-data.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-response-data.function.ts deleted file mode 100644 index 632d70129c..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-response-data.function.ts +++ /dev/null @@ -1,29 +0,0 @@ -import type { DataSourceResponse } from '../index.js'; -import type { Diff } from '@umbraco-cms/backoffice/utils'; - -/** - * This function extends the data set of a DataSourceResponse. - * Provide the desired type as a generic type parameter. - * This will require the appendData argument to fill in the missing properties of the data. - * @param response {DataSourceResponse} - * @param appendData {object} Additional properties to append to the data. - * @returns {DataSourceResponse} - * - * @example - * - * type originalResponseType = { foo: string }; - * type extendedResponseType = { foo: string, bar: string }; - * - * const extendedResponse = extendDataSourceResponseData(originalResponse, { bar: 'some additional data' }); - * - * extendedResponse.data.bar is now equal to 'some additional data' - */ -export function extendDataSourceResponseData< - ExtendedDataType extends IncomingDataType, - IncomingDataType extends object = object, - MissingPropsType extends object = Diff, - ToType = IncomingDataType & ExtendedDataType, ->(response: DataSourceResponse, appendData: MissingPropsType): DataSourceResponse { - if (response.data === undefined) return response as unknown as DataSourceResponse; - return { ...response, data: { ...response.data, ...appendData } as unknown as ToType }; -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-response-data.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-response-data.test.ts deleted file mode 100644 index c3ebe86b01..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-response-data.test.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { expect } from '@open-wc/testing'; -import { extendDataSourceResponseData } from './extend-data-source-response-data.function.js'; -import type { DataSourceResponse } from './data-source-response.interface.js'; - -describe('extendDataSourceResponseData', () => { - it('is a function', () => { - expect(extendDataSourceResponseData).that.is.a('function'); - }); - - describe('Extending data set', () => { - it('has extended data of DataSourceResponse', () => { - const response: DataSourceResponse = { - data: { - original: 'prop', - }, - }; - - const extendedResponse = extendDataSourceResponseData(response, { foo: 'bar' }); - - expect(extendedResponse.data).to.have.property('original').to.be.equal('prop'); - expect(extendedResponse.data).to.have.property('foo').to.be.equal('bar'); - }); - }); -}); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/index.ts deleted file mode 100644 index 4980a9bbe6..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * from './collection-data-source.interface.js'; -export * from './copy-data-source.interface.js'; -export * from './data-source-response.interface.js'; -export * from './data-source.interface.js'; -export * from './extend-data-source-paged-response-data.function.js'; -export * from './extend-data-source-response-data.function.js'; -export * from './move-data-source.interface.js'; -export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-data-source.interface.ts index 799f508af6..dd0f37a173 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-data-source.interface.ts @@ -1,4 +1,4 @@ -import type { DataSourceResponse } from '../data-source/index.js'; +import type { DataSourceResponse } from '../data-source-response.interface.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export interface UmbDetailDataSourceConstructor { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository.interface.ts index 7e93071c85..1bf5213cdf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository.interface.ts @@ -1,4 +1,4 @@ -import type { DataSourceResponse, UmbDataSourceErrorResponse } from '../data-source/index.js'; +import type { DataSourceResponse, UmbDataSourceErrorResponse } from '../data-source-response.interface.js'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; export interface UmbDetailRepository { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/index.ts index 79f90f5f1a..72321c033e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/index.ts @@ -1,2 +1,3 @@ export type { UmbDetailDataSource, UmbDetailDataSourceConstructor } from './detail-data-source.interface.js'; export { UmbDetailRepositoryBase } from './detail-repository-base.js'; +export type { UmbDetailRepository } from './detail-repository.interface.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/index.ts index fe44883534..584a609b30 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/index.ts @@ -1,10 +1,10 @@ -export * from './data-source/index.js'; -export * from './detail/detail-repository.interface.js'; -export * from './collection-repository.interface.js'; -export * from './move-repository.interface.js'; -export * from './copy-repository.interface.js'; export * from './repository-items.manager.js'; export * from './repository-base.js'; export * from './item/index.js'; export * from './detail/index.js'; + +export type { DataSourceResponse, UmbDataSourceErrorResponse } from './data-source-response.interface.js'; +export type { UmbMoveDataSource, UmbMoveRepository } from './move/index.js'; +export type { UmbCopyDataSource, UmbCopyRepository } from './copy/index.js'; +export type { UmbPagedModel } from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/move/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/move/index.ts new file mode 100644 index 0000000000..cefe904535 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/move/index.ts @@ -0,0 +1,2 @@ +export type { UmbMoveDataSource } from './move-data-source.interface.js'; +export type { UmbMoveRepository } from './move-repository.interface.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/move-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/move/move-data-source.interface.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/move-data-source.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/repository/move/move-data-source.interface.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/move-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/move/move-repository.interface.ts similarity index 58% rename from src/Umbraco.Web.UI.Client/src/packages/core/repository/move-repository.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/repository/move/move-repository.interface.ts index 487a7e4446..df80f262a8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/move-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/move/move-repository.interface.ts @@ -1,4 +1,4 @@ -import type { UmbDataSourceErrorResponse } from './data-source/index.js'; +import type { UmbDataSourceErrorResponse } from '../data-source-response.interface.js'; export interface UmbMoveRepository { move(unique: string, targetUnique: string): Promise; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-items.manager.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-items.manager.ts index 662cce93c1..6bf631221a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-items.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-items.manager.ts @@ -64,19 +64,19 @@ export class UmbRepositoryItemsManager exte }); } - getUniques() { + getUniques(): Array { return this.#uniques.value; } - setUniques(uniques: string[]) { + setUniques(uniques: string[]): void { this.#uniques.setValue(uniques); } - getItems() { + getItems(): Array { return this.#items.value; } - async #requestItems() { + async #requestItems(): Promise { await this.#init; if (!this.repository) throw new Error('Repository is not initialized'); @@ -95,7 +95,7 @@ export class UmbRepositoryItemsManager exte } } - #sortByUniques(data: Array) { + #sortByUniques(data: Array): Array { const uniques = this.getUniques(); return [...data].sort((a, b) => { const aIndex = uniques.indexOf(this.#getUnique(a) ?? ''); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/types.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/types.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/repository/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/resources/apiTypeValidators.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/resources/apiTypeValidators.function.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/resources/apiTypeValidators.function.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/resources/apiTypeValidators.function.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/resources/extractUmbColorVariable.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/resources/extractUmbColorVariable.function.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/resources/extractUmbColorVariable.function.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/resources/extractUmbColorVariable.function.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/resources/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/resources/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/resources/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/resources/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/resources/resource.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/resources/resource.controller.ts similarity index 99% rename from src/Umbraco.Web.UI.Client/src/shared/resources/resource.controller.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/resources/resource.controller.ts index 16b3a99a80..9d261f5165 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/resources/resource.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/resources/resource.controller.ts @@ -121,13 +121,13 @@ export class UmbResourceController extends UmbBaseController { * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortController */ - cancel() { + cancel(): void { if (isCancelablePromise(this.#promise)) { this.#promise.cancel(); } } - destroy() { + destroy(): void { super.destroy(); this.cancel(); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/resources/tryExecute.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/resources/tryExecute.function.ts new file mode 100644 index 0000000000..e1c94994dc --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/resources/tryExecute.function.ts @@ -0,0 +1,6 @@ +import { UmbResourceController } from './resource.controller.js'; +import type { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; + +export function tryExecute(promise: Promise): Promise> { + return UmbResourceController.tryExecute(promise); +} diff --git a/src/Umbraco.Web.UI.Client/src/shared/resources/tryExecuteAndNotify.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/resources/tryExecuteAndNotify.function.ts similarity index 81% rename from src/Umbraco.Web.UI.Client/src/shared/resources/tryExecuteAndNotify.function.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/resources/tryExecuteAndNotify.function.ts index 47cfeea27a..028e63652d 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/resources/tryExecuteAndNotify.function.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/resources/tryExecuteAndNotify.function.ts @@ -2,11 +2,12 @@ import { UmbResourceController } from './resource.controller.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { UmbNotificationOptions } from '@umbraco-cms/backoffice/notification'; +import type { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; export function tryExecuteAndNotify( host: UmbControllerHost, resource: Promise, options?: UmbNotificationOptions, -) { +): Promise> { return new UmbResourceController(host, resource).tryExecuteAndNotify(options); } diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/encode-folder-name.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/encode-folder-name.function.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/router/encode-folder-name.function.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/encode-folder-name.function.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/generate-route-path-builder.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/generate-route-path-builder.function.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/router/generate-route-path-builder.function.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/generate-route-path-builder.function.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/index.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/src/shared/router/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/index.ts index 02f1d354e6..c4b9ff29db 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/router/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/index.ts @@ -1,9 +1,8 @@ export * from '@umbraco-cms/backoffice/external/router-slot'; -export * from './router-slot.element.js'; -export * from './router-slot-change.event.js'; -export * from './router-slot-init.event.js'; -export * from './variant-router-slot.element.js'; +export * from './encode-folder-name.function.js'; +export * from './generate-route-path-builder.function.js'; export * from './route.context.js'; export * from './route.interface.js'; -export * from './generate-route-path-builder.function.js'; -export * from './encode-folder-name.function.js'; +export * from './router-slot-change.event.js'; +export * from './router-slot-init.event.js'; +export * from './router-slot.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/route.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/route.context.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/router/route.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/route.context.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/route.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/route.interface.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/router/route.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/route.interface.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/router-slot-change.event.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot-change.event.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/router/router-slot-change.event.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot-change.event.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/router-slot-init.event.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot-init.event.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/router/router-slot-init.event.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot-init.event.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/router-slot.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/router/router-slot.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts index 8401ccfa5d..ea693c4a95 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts @@ -1,12 +1,10 @@ -import type { UmbController, UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { isWithinRect } from '@umbraco-cms/backoffice/utils'; +import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; const autoScrollSensitivity = 50; const autoScrollSpeed = 16; -function isWithinRect(x: number, y: number, rect: DOMRect, modifier = 0) { - return x > rect.left - modifier && x < rect.right + modifier && y > rect.top - modifier && y < rect.bottom + modifier; -} - function getParentScrollElement(el: Element, includeSelf: boolean) { if (!el || !el.getBoundingClientRect) return null; @@ -66,35 +64,90 @@ export type resolveVerticalDirectionArgs = { element: ElementType; elementRect: DOMRect; relatedElement: ElementType; + relatedModel: T; relatedRect: DOMRect; placeholderIsInThisRow: boolean; horizontalPlaceAfter: boolean; + pointerX: number; + pointerY: number; }; type INTERNAL_UmbSorterConfig = { getUniqueOfElement: (element: ElementType) => string | null | symbol | number; getUniqueOfModel: (modeEntry: T) => string | null | symbol | number; + /** + * Optionally define a unique identifier for each sorter experience, all Sorters that uses the same identifier to connect with other sorters. + */ identifier: string | symbol; + /** + * A query selector for the item element. + */ itemSelector: string; disabledItemSelector?: string; + /** + * A selector for the container element, if not defined the host element will be used as container. + */ containerSelector: string; + /** + * A selector for elements to ignore, elements that should not be draggable when within an draggable item, This defaults to links, images & iframes. + */ ignorerSelector: string; + /** + * An class to set on the placeholder element. + */ placeholderClass?: string; + /** + * An attribute to set on the placeholder element. + */ placeholderAttr?: string; + /** + * The selector to find the draggable element within the item. + */ draggableSelector?: string; - boundarySelector?: string; + //boundarySelector?: string; dataTransferResolver?: (dataTransfer: DataTransfer | null, currentItem: T) => void; onStart?: (argument: { item: T; element: ElementType }) => void; + /** + * This callback is executed every time where is a change to this model, this could be a move, insert or remove. + * But notice its not called if a more specific callback is provided, such would be the performItemMove, performItemInsert or performItemRemove or performItemRemove. + */ onChange?: (argument: { item: T; model: Array }) => void; - onContainerChange?: (argument: { item: T; element: ElementType }) => void; + /** + * This callback is executed when an item is moved from another container to this container. + */ + onContainerChange?: (argument: { item: T; model: Array; from: UmbSorterController }) => void; onEnd?: (argument: { item: T; element: ElementType }) => void; itemHasNestedContainersResolver?: (element: HTMLElement) => boolean; - onDisallowed?: () => void; - onAllowed?: () => void; - onRequestDrop?: (argument: { item: T }) => boolean | void; - resolveVerticalDirection?: (argument: resolveVerticalDirectionArgs) => void; + /** + * Callback when a item move is disallowed. + * This should make a visual indication for the user to understand that the move is not allowed. + */ + onDisallowed?: (argument: { item: T; element: ElementType }) => void; + /** + * Callback when a item move is allowed. + * This should remove any visual indication of the disallowing, reverting the work of the onDisallowed callback. + */ + onAllowed?: (argument: { item: T; element: ElementType }) => void; + /** + * Callback when user tries to move an item from another Sorter to this Sorter, return true or false to allow or disallow the move. + */ + onRequestMove?: (argument: { item: T }) => boolean; + /** + * This callback is executed when an item is hovered within this container. + * The callback should return true if the item should be placed after based on a vertical logic. Other wise false for horizontal. True is default. + */ + resolveVerticalDirection?: (argument: resolveVerticalDirectionArgs) => boolean | null; + /** + * This callback is executed when an item is moved within this container. + */ performItemMove?: (argument: { item: T; newIndex: number; oldIndex: number }) => Promise | boolean; + /** + * This callback is executed when an item should be inserted into this container. + */ performItemInsert?: (argument: { item: T; newIndex: number }) => Promise | boolean; + /** + * This callback is executed when an item should be removed from this container. + */ performItemRemove?: (argument: { item: T }) => Promise | boolean; }; @@ -111,8 +164,11 @@ export type UmbSorterConfig = * @implements {UmbControllerInterface} * @description This controller can make user able to sort items. */ -export class UmbSorterController implements UmbController { +export class UmbSorterController extends UmbBaseController { // + // The sorter who last indicated that it was okay or not okay to drop here: + static lastIndicationSorter?: UmbSorterController; + // A sorter that is requested to become the next sorter: static originalSorter?: UmbSorterController; static originalIndex?: number; @@ -144,17 +200,12 @@ export class UmbSorterController | null = null; - - public get controllerAlias() { - // We only support one Sorter Controller pr. Controller Host. - return 'umbSorterController'; - } public get identifier() { return this.#config.identifier; } constructor(host: UmbControllerHostElement, config: UmbSorterConfig) { + super(host); this.#host = host; // Set defaults: @@ -280,11 +331,14 @@ export class UmbSorterController ' + this.#config.disabledItemSelector)) { + if (!this.#config.disabledItemSelector || !element.matches(this.#config.disabledItemSelector)) { // Idea: to make sure on does not get initialized twice: if ((element as HTMLElement).draggable === true) return; - (element as HTMLElement).draggable = true; - element.addEventListener('dragstart', this.#handleDragStart); - element.addEventListener('dragend', this.#handleDragEnd); + const draggableElement = this.#config.draggableSelector + ? (element.querySelector(this.#config.draggableSelector) as HTMLElement | undefined) ?? element + : element; + (draggableElement as HTMLElement).draggable = true; + draggableElement.addEventListener('dragstart', this.#handleDragStart); + draggableElement.addEventListener('dragend', this.#handleDragEnd); } // If we have a currentItem and the element matches, we should set the currentElement to this element. @@ -303,10 +357,12 @@ export class UmbSorterController { const centerX = sameRow.dragRect.left + sameRow.dragRect.width * 0.5; const distance = Math.abs(this.#dragX - centerX); if (distance < lastDistance) { - foundEl = sameRow.el; + foundEl = sameRow.el as HTMLElement; foundElDragRect = sameRow.dragRect; lastDistance = distance; placeAfter = this.#dragX > centerX; @@ -543,12 +599,17 @@ export class UmbSorterController foundElDragRect.top + foundElDragRect.height * 0.5; } @@ -744,6 +813,11 @@ export class UmbSorterController, + }); this.#config.onChange?.({ model: newModel, item }); } @@ -756,30 +830,26 @@ export class UmbSorterController; - if (controller.notifyRequestDrop({ item: item }) === true) { - controller.notifyAllowed(); + if (this.notifyRequestDrop({ item: item }) === true) { + this.notifyAllowed(); return true; } - controller.notifyDisallowed(); // This block is not accepted to we will indicate that its not allowed. + this.notifyDisallowed(); // This block is not accepted to we will indicate that its not allowed. return false; - */ - return true; } removeAllowIndication() { // Remove old indication: - if (this.#lastIndicationContainerCtrl !== null) { - this.#lastIndicationContainerCtrl.notifyAllowed(); + if (UmbSorterController.lastIndicationSorter) { + UmbSorterController.lastIndicationSorter.notifyAllowed(); } - this.#lastIndicationContainerCtrl = null; + UmbSorterController.lastIndicationSorter = undefined; } // TODO: Move auto scroll into its own class? @@ -844,28 +914,36 @@ export class UmbSorterController = [ +export const themes: Array = [ { type: 'globalContext', alias: 'Umb.GlobalContext.Theme', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-data-source.interface.ts index 9da5cf5611..9b5763942b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-data-source.interface.ts @@ -1,7 +1,4 @@ -import type { - DataSourceResponse, - UmbDataSourceErrorResponse, -} from '../../repository/data-source/data-source-response.interface.js'; +import type { DataSourceResponse, UmbDataSourceErrorResponse } from '@umbraco-cms/backoffice/repository'; import type { UmbCreateFolderModel, UmbFolderModel, UmbUpdateFolderModel } from './types.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository.interface.ts index 5abefb09f5..3da288efc6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository.interface.ts @@ -1,5 +1,5 @@ -import type { DataSourceResponse, UmbDataSourceErrorResponse } from '../../repository/data-source/index.js'; import type { UmbCreateFolderModel, UmbFolderModel, UmbUpdateFolderModel } from './types.js'; +import type { DataSourceResponse, UmbDataSourceErrorResponse } from '@umbraco-cms/backoffice/repository'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export interface UmbFolderRepository extends UmbApi { createScaffold(parentUnique: string | null): Promise>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children.action.ts index 6d9f0e45e1..edaf6ef177 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children.action.ts @@ -1,4 +1,4 @@ -import type { UmbCopyDataTypeRepository } from '../../data-type/repository/copy/data-type-copy.repository.js'; +import type { UmbCopyDataTypeRepository } from '@umbraco-cms/backoffice/data-type'; import { UmbReloadTreeItemChildrenRequestEntityActionEvent } from './reload-tree-item-children-request.event.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts index 40093427d5..0616bdef99 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts @@ -1,8 +1,7 @@ import type { UmbTreeItemContext } from '../tree-item-default/index.js'; import type { UmbTreeItemModelBase } from '../types.js'; import { UMB_TREE_ITEM_CONTEXT } from './tree-item-base.context.js'; -import { css, html, nothing, customElement, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { html, nothing, customElement, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @customElement('umb-tree-item-base') @@ -165,8 +164,6 @@ export class UmbTreeItemBaseElement extends UmbLitElement { : ''} `; } - - static styles = [UmbTextStyles, css``]; } declare global { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/unique-tree-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/unique-tree-item.element.ts index 33ca00d827..eabd7b456c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/unique-tree-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/unique-tree-item.element.ts @@ -1,7 +1,6 @@ import type { UmbUniqueTreeItemModel } from '../types.js'; import { UmbUniqueTreeItemContext } from './unique-tree-item.context.js'; -import { css, html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbBackofficeManifestKind, UmbTreeItemElement } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @@ -37,8 +36,6 @@ export class UmbUniqueTreeItemElement extends UmbLitElement implements UmbTreeIt if (!this.item) return nothing; return html``; } - - static styles = [UmbTextStyles, css``]; } declare global { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/umbraco-package.ts b/src/Umbraco.Web.UI.Client/src/packages/core/umbraco-package.ts index a98ee33bec..9ad7203422 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/umbraco-package.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/umbraco-package.ts @@ -1,8 +1,8 @@ -import type { ManifestTypes } from './extension-registry/index.js'; +import type { ManifestEntryPoint } from '@umbraco-cms/backoffice/extension-api'; export const name = 'Umbraco.Core'; export const version = '0.0.1'; -export const extensions: Array = [ +export const extensions: Array = [ { name: 'Core Entry Point', alias: 'Umb.EntryPoint.Core', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/utils/debounce/debounce.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/debounce/debounce.function.ts new file mode 100644 index 0000000000..fd9639134d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/utils/debounce/debounce.function.ts @@ -0,0 +1,9 @@ +// TODO: add types +export const debounce = (fn: any, ms = 0) => { + let timeoutId: ReturnType; + + return function (this: any, ...args: any[]) { + clearTimeout(timeoutId); + timeoutId = setTimeout(() => fn.apply(this, args), ms); + }; +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/utils/get-processed-image-url.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/get-processed-image-url.function.ts new file mode 100644 index 0000000000..7744eae0a3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/utils/get-processed-image-url.function.ts @@ -0,0 +1,16 @@ +// TODO: This does not feel like a utility, but should instead become a repository/data-source/resource something in that direction [NL] + +/** + * Returns the URL of the processed image + */ +export async function getProcessedImageUrl(imagePath: string, options: any) { + if (!options) { + return imagePath; + } + + // TODO => use backend cli when available + const result = await fetch('/umbraco/management/api/v1/images/GetProcessedImageUrl'); + const url = (await result.json()) as string; + + return url; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/utils/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/index.ts new file mode 100644 index 0000000000..9b26d456b7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/utils/index.ts @@ -0,0 +1,15 @@ +export * from './get-processed-image-url.function.js'; +export * from './math/math.js'; +export * from './pagination-manager/pagination.manager.js'; +export * from './path/ensure-path-ends-with-slash.function.js'; +export * from './path/path-decode.function.js'; +export * from './path/path-encode.function.js'; +export * from './path/path-folder-name.function.js'; +export * from './path/umbraco-path.function.js'; +export * from './selection-manager/selection.manager.js'; +export * from './string/generate-umbraco-alias.function.js'; +export * from './string/increment-string.function.js'; +export * from './string/split-string-to-array.js'; +export * from './type/diff.type.js'; +export * from './string/to-camel-case/to-camel-case.function.js'; +export * from './debounce/debounce.function.js'; diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/math.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/math/math.ts similarity index 74% rename from src/Umbraco.Web.UI.Client/src/shared/utils/math.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/utils/math/math.ts index daa6d6b9e1..275f6db11b 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/utils/math.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/utils/math/math.ts @@ -157,3 +157,66 @@ export function calculateExtrapolatedValue(initialValue: number, increaseFactor: return initialValue / (1 - increaseFactor); } + +/** + * Find the index for a target value on an array of individual values. + * @param {number} target - The target value to interpolate to. + * @param {Array} weights - An array of values to interpolate between. + * @returns + */ +export function getInterpolatedIndexOfPositionInWeightMap(target: number, weights: Array): number { + const map = [0]; + weights.reduce((a, b, i) => { + return (map[i + 1] = a + b); + }, 0); + const foundValue = map.reduce((a, b) => { + const aDiff = Math.abs(a - target); + const bDiff = Math.abs(b - target); + + if (aDiff === bDiff) { + return a < b ? a : b; + } else { + return bDiff < aDiff ? b : a; + } + }); + const foundIndex = map.indexOf(foundValue); + const targetDiff = target - foundValue; + let interpolatedIndex = foundIndex; + if (targetDiff < 0 && foundIndex === 0) { + // Don't adjust. + } else if (targetDiff > 0 && foundIndex === map.length - 1) { + // Don't adjust. + } else { + const foundInterpolationWeight = weights[targetDiff >= 0 ? foundIndex : foundIndex - 1]; + interpolatedIndex += foundInterpolationWeight === 0 ? interpolatedIndex : targetDiff / foundInterpolationWeight; + } + return interpolatedIndex; +} + +/** + * Combine the values of an array up to a certain index. + * @param {number} index - The index to accumulate to, everything after this index will not be accumulated. + * @param {Array} weights - An array of values to accumulate. + * @returns + */ +export function getAccumulatedValueOfIndex(index: number, weights: Array): number { + const len = Math.min(index, weights.length); + let i = 0, + calc = 0; + while (i < len) { + calc += weights[i++]; + } + return calc; +} + +/** + * + * @param {number} x - The x coordinate. + * @param {number} y - The y coordinate. + * @param {DOMRect} rect - The rectangle to check. + * @param {number} expand - The amount to expand or contract the rectangle. + * @returns + */ +export function isWithinRect(x: number, y: number, rect: DOMRect, expand = 0) { + return x > rect.left - expand && x < rect.right + expand && y > rect.top - expand && y < rect.bottom + expand; +} diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/pagination-manager/pagination.manager.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/pagination-manager/pagination.manager.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/utils/pagination-manager/pagination.manager.test.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/utils/pagination-manager/pagination.manager.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/pagination-manager/pagination.manager.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/pagination-manager/pagination.manager.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/utils/pagination-manager/pagination.manager.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/utils/pagination-manager/pagination.manager.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/ensure-path-ends-with-slash.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/path/ensure-path-ends-with-slash.function.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/utils/ensure-path-ends-with-slash.function.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/utils/path/ensure-path-ends-with-slash.function.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/path-decode.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/path/path-decode.function.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/utils/path-decode.function.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/utils/path/path-decode.function.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/path-encode.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/path/path-encode.function.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/utils/path-encode.function.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/utils/path/path-encode.function.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/utils/path/path-folder-name.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/path/path-folder-name.function.ts new file mode 100644 index 0000000000..3644903404 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/utils/path/path-folder-name.function.ts @@ -0,0 +1,3 @@ +import { generateAlias } from '../string/generate-umbraco-alias.function.js'; + +export const pathFolderName = generateAlias; diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/umbraco-path.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/path/umbraco-path.function.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/utils/umbraco-path.function.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/utils/path/umbraco-path.function.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/selection-manager/selection.manager.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/selection-manager/selection.manager.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/utils/selection-manager/selection.manager.test.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/utils/selection-manager/selection.manager.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/selection-manager/selection.manager.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/selection-manager/selection.manager.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/utils/selection-manager/selection.manager.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/utils/selection-manager/selection.manager.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/generate-umbraco-alias.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/string/generate-umbraco-alias.function.ts similarity index 81% rename from src/Umbraco.Web.UI.Client/src/shared/utils/generate-umbraco-alias.function.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/utils/string/generate-umbraco-alias.function.ts index 1e4f70877a..c3c5155104 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/utils/generate-umbraco-alias.function.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/utils/string/generate-umbraco-alias.function.ts @@ -1,10 +1,10 @@ -import { camelCase } from '@umbraco-cms/backoffice/external/lodash'; +import { toCamelCase } from './to-camel-case/to-camel-case.function.js'; 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 toCamelCase(text); return text .replace(/\s+/g, '-') diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/increment-string.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/string/increment-string.function.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/utils/increment-string.function.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/utils/string/increment-string.function.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/split-string-to-array.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/string/split-string-to-array.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/utils/split-string-to-array.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/utils/string/split-string-to-array.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/utils/string/to-camel-case/to-camel-case.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/string/to-camel-case/to-camel-case.function.ts new file mode 100644 index 0000000000..ed09da840c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/utils/string/to-camel-case/to-camel-case.function.ts @@ -0,0 +1,7 @@ +export const toCamelCase = (str: string) => { + const s = str + .match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g) + ?.map((x: string) => x.slice(0, 1).toUpperCase() + x.slice(1).toLowerCase()) + .join(''); + return (s && s.slice(0, 1).toLowerCase() + s.slice(1)) || ''; +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/utils/string/to-camel-case/to-camel-case.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/string/to-camel-case/to-camel-case.test.ts new file mode 100644 index 0000000000..8ad067169f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/utils/string/to-camel-case/to-camel-case.test.ts @@ -0,0 +1,72 @@ +import { expect } from '@open-wc/testing'; +import { toCamelCase } from './to-camel-case.function.js'; + +describe('to-camel-case', () => { + /* All tests have been run against the the lodash camelCase function, + to ensure that the toCamelCase function behaves the same way as the lodash camelCase function. */ + it('converts string to camelCase', () => { + expect(toCamelCase('to-camel-case')).to.equal('toCamelCase'); + expect(toCamelCase('b2b_registration_request')).to.equal('b2BRegistrationRequest'); + expect(toCamelCase('b2b_registration_b2b_request')).to.equal('b2BRegistrationB2BRequest'); + expect(toCamelCase('foo')).to.equal('foo'); + expect(toCamelCase('IDs')).to.equal('iDs'); + expect(toCamelCase('FooIDs')).to.equal('fooIDs'); + expect(toCamelCase('foo-bar')).to.equal('fooBar'); + expect(toCamelCase('foo-bar-baz')).to.equal('fooBarBaz'); + expect(toCamelCase('foo--bar')).to.equal('fooBar'); + expect(toCamelCase('--foo-bar')).to.equal('fooBar'); + expect(toCamelCase('FOO-BAR')).to.equal('fooBar'); + expect(toCamelCase('-foo-bar-')).to.equal('fooBar'); + expect(toCamelCase('--foo--bar--')).to.equal('fooBar'); + expect(toCamelCase('foo.bar')).to.equal('fooBar'); + expect(toCamelCase('foo..bar')).to.equal('fooBar'); + expect(toCamelCase('..foo..bar..')).to.equal('fooBar'); + expect(toCamelCase('foo_bar')).to.equal('fooBar'); + expect(toCamelCase('__foo__bar__')).to.equal('fooBar'); + expect(toCamelCase('foo bar')).to.equal('fooBar'); + expect(toCamelCase(' foo bar ')).to.equal('fooBar'); + expect(toCamelCase('fooBar')).to.equal('fooBar'); + expect(toCamelCase('fooBar-baz')).to.equal('fooBarBaz'); + expect(toCamelCase('fooBarBaz-bazzy')).to.equal('fooBarBazBazzy'); + expect(toCamelCase('FBBazzy')).to.equal('fbBazzy'); + expect(toCamelCase('F')).to.equal('f'); + expect(toCamelCase('Foo')).to.equal('foo'); + expect(toCamelCase('FOO')).to.equal('foo'); + expect(toCamelCase('FooBar')).to.equal('fooBar'); + expect(toCamelCase('Foo')).to.equal('foo'); + expect(toCamelCase('FOO')).to.equal('foo'); + expect(toCamelCase('XMLHttpRequest')).to.equal('xmlHttpRequest'); + expect(toCamelCase('AjaxXMLHttpRequest')).to.equal('ajaxXmlHttpRequest'); + expect(toCamelCase('Ajax-XMLHttpRequest')).to.equal('ajaxXmlHttpRequest'); + expect(toCamelCase('mGridCol6')).to.equal('mGridCol6'); + expect(toCamelCase('Hello1World')).to.equal('hello1World'); + expect(toCamelCase('Hello11World')).to.equal('hello11World'); + expect(toCamelCase('hello1world')).to.equal('hello1World'); + expect(toCamelCase('Hello1World11foo')).to.equal('hello1World11Foo'); + expect(toCamelCase('Hello1')).to.equal('hello1'); + expect(toCamelCase('hello1')).to.equal('hello1'); + expect(toCamelCase('1Hello')).to.equal('1Hello'); + expect(toCamelCase('1hello')).to.equal('1Hello'); + expect(toCamelCase('1hello')).to.equal('1Hello'); + expect(toCamelCase('h2w')).to.equal('h2W'); + }); + + it('ignores special characters', () => { + expect(toCamelCase('-')).to.equal(''); + expect(toCamelCase(' - ')).to.equal(''); + expect(toCamelCase('--')).to.equal(''); + expect(toCamelCase('')).to.equal(''); + expect(toCamelCase(' ')).to.equal(''); + expect(toCamelCase('_')).to.equal(''); + expect(toCamelCase('.')).to.equal(''); + expect(toCamelCase('..')).to.equal(''); + expect(toCamelCase(' ')).to.equal(''); + expect(toCamelCase('__')).to.equal(''); + expect(toCamelCase('--__--_--_')).to.equal(''); + expect(toCamelCase('A::a')).to.equal('aA'); + expect(toCamelCase('foo bar?')).to.equal('fooBar'); + expect(toCamelCase('foo bar!')).to.equal('fooBar'); + expect(toCamelCase('foo bar$')).to.equal('fooBar'); + expect(toCamelCase('foo bar#')).to.equal('fooBar'); + }); +}); diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/diff.type.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/type/diff.type.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/utils/diff.type.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/utils/type/diff.type.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/utils.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/utils.test.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/src/shared/utils/utils.test.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/utils/utils.test.ts index b481c3d0da..ba1c7c10a0 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/utils/utils.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/utils/utils.test.ts @@ -1,5 +1,5 @@ import { expect } from '@open-wc/testing'; -import { splitStringToArray } from './split-string-to-array.js'; +import { splitStringToArray } from './string/split-string-to-array.js'; describe('splitStringToArray', () => { it('splits and cleans a comma-separated string', () => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/workspace-action.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/workspace-action.element.ts index a90f666548..cc3719ddf4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/workspace-action.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/workspace-action.element.ts @@ -1,7 +1,6 @@ import type { UmbWorkspaceAction } from './index.js'; import { UmbActionExecutedEvent } from '@umbraco-cms/backoffice/event'; -import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import type { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { ManifestWorkspaceAction } from '@umbraco-cms/backoffice/extension-registry'; @@ -59,8 +58,6 @@ export class UmbWorkspaceActionElement extends UmbLitElement { .state=${this._buttonState}> `; } - - static styles = [UmbTextStyles, css``]; } export default UmbWorkspaceActionElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts index 55f23b95cd..e489e80b7a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts @@ -6,7 +6,6 @@ import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registr import { UmbExtensionsManifestInitializer, createExtensionElement } from '@umbraco-cms/backoffice/extension-api'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { componentHasManifestProperty } from '@umbraco-cms/backoffice/utils'; /** * @element umb-workspace-editor @@ -63,8 +62,8 @@ export class UmbWorkspaceEditorElement extends UmbLitElement { path: `view/${manifest.meta.pathname}`, component: () => createExtensionElement(manifest), setup: (component) => { - if (component && componentHasManifestProperty(component)) { - component.manifest = manifest; + if (component) { + (component as any).manifest = manifest; } }, } as UmbRoute; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace.element.ts index 2fe8960ce6..bd14d3a535 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace.element.ts @@ -1,5 +1,4 @@ -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry'; @@ -14,8 +13,6 @@ export class UmbWorkspaceElement extends UmbLitElement { type="workspace" .filter=${(manifest: ManifestWorkspace) => manifest.meta.entityType === this.entityType}>`; } - - static styles = [UmbTextStyles, css``]; } export default UmbWorkspaceElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/data-type-flow-input/data-type-flow-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/components/data-type-flow-input/data-type-flow-input.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/data-type-flow-input/data-type-flow-input.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/components/data-type-flow-input/data-type-flow-input.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/data-type-input/data-type-input.context.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/components/data-type-input/data-type-input.context.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/data-type-input/data-type-input.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/components/data-type-input/data-type-input.context.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/data-type-input/data-type-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/components/data-type-input/data-type-input.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/data-type-input/data-type-input.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/components/data-type-input/data-type-input.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/components/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/components/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/property-editor-config/index.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/components/property-editor-config/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/property-editor-config/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/components/property-editor-config/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/property-editor-config/property-editor-config.element.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/components/property-editor-config/property-editor-config.element.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/property-editor-config/property-editor-config.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/components/property-editor-config/property-editor-config.element.ts index f5448334f3..93a55a4c38 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/property-editor-config/property-editor-config.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/components/property-editor-config/property-editor-config.element.ts @@ -1,8 +1,8 @@ +import { UMB_DATA_TYPE_WORKSPACE_CONTEXT } from '../../workspace/data-type-workspace.context-token.js'; import { html, customElement, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { PropertyEditorConfigProperty } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { UMB_DATA_TYPE_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/data-type'; /** * @element umb-property-editor-config diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/property-editor-config/property-editor-config.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/components/property-editor-config/property-editor-config.stories.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/property-editor-config/property-editor-config.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/components/property-editor-config/property-editor-config.stories.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/ref-data-type/ref-data-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/components/ref-data-type/ref-data-type.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/ref-data-type/ref-data-type.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/components/ref-data-type/ref-data-type.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/ref-data-type/ref-data-type.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/components/ref-data-type/ref-data-type.stories.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/ref-data-type/ref-data-type.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/components/ref-data-type/ref-data-type.stories.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/copy/copy.action.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/copy/copy.action.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/copy/copy.action.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/copy/copy.action.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/copy/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/copy/manifests.ts similarity index 80% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/copy/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/copy/manifests.ts index d13f6c9c49..a66085c568 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/copy/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/copy/manifests.ts @@ -1,9 +1,9 @@ import { UMB_DATA_TYPE_ENTITY_TYPE } from '../../entity.js'; import { UMB_COPY_DATA_TYPE_REPOSITORY_ALIAS } from '../../repository/copy/manifests.js'; import { UmbCopyDataTypeEntityAction } from './copy.action.js'; -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; -const entityActions: Array = [ +const entityActions: Array = [ { type: 'entityAction', alias: 'Umb.EntityAction.DataType.Copy', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/create.action.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/create.action.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/create.action.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts index a515569529..ba84b5bd0c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts @@ -1,7 +1,6 @@ import { UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS } from '../../../tree/index.js'; import type { UmbDataTypeCreateOptionsModalData } from './index.js'; import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { type UmbModalManagerContext, UmbModalBaseElement, @@ -53,8 +52,6 @@ export class UmbDataTypeCreateOptionsModalElement extends UmbModalBaseElement `; } - - static styles = [UmbTextStyles]; } export default UmbDataTypeCreateOptionsModalElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/index.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/modal/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/modal/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/move/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/move/manifests.ts similarity index 80% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/move/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/move/manifests.ts index 09b87f07b4..6c1865993d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/move/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/move/manifests.ts @@ -1,9 +1,9 @@ import { UMB_DATA_TYPE_ENTITY_TYPE } from '../../entity.js'; import { UMB_MOVE_DATA_TYPE_REPOSITORY_ALIAS } from '../../repository/move/manifests.js'; import { UmbMoveDataTypeEntityAction } from './move.action.js'; -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; -const entityActions: Array = [ +const entityActions: Array = [ { type: 'entityAction', alias: 'Umb.EntityAction.DataType.Move', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/move/move.action.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/move/move.action.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/move/move.action.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/move/move.action.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/entity.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/index.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/menu-item/manifests.ts similarity index 67% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/menu-item/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/menu-item/manifests.ts index 232e6e99d3..2f4a0dcc07 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/menu-item/manifests.ts @@ -1,6 +1,6 @@ -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestMenuItemTreeKind } from '@umbraco-cms/backoffice/extension-registry'; -const menuItem: ManifestTypes = { +const menuItem: ManifestMenuItemTreeKind = { type: 'menuItem', kind: 'tree', alias: 'Umb.MenuItem.DataTypes', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.ts 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/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts similarity index 99% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts index c75eb16f3d..55acd43813 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/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts @@ -1,5 +1,6 @@ import { UmbDataTypeTreeRepository } from '../../tree/data-type-tree.repository.js'; import type { UmbDataTypeTreeItemModel } from '../../tree/types.js'; +import { UMB_DATATYPE_WORKSPACE_MODAL } from '../../workspace/data-type-workspace.modal-token.js'; import { css, html, repeat, customElement, state, when, nothing } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; @@ -15,7 +16,6 @@ import { } from '@umbraco-cms/backoffice/modal'; import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; -import { UMB_DATATYPE_WORKSPACE_MODAL } from '@umbraco-cms/backoffice/data-type'; interface GroupedItems { [key: string]: Array; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/modals/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/modals/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts index 894a40e515..5ba6e7a053 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts @@ -4,7 +4,7 @@ import { html } from '@umbraco-cms/backoffice/external/lit'; import type { UmbPropertyEditorUIPickerModalValue } from '@umbraco-cms/backoffice/modal'; import './property-editor-ui-picker-modal.element.js'; -import '../../../components/body-layout/body-layout.element.js'; +import '../../../core/components/body-layout/body-layout.element.js'; export default { title: 'API/Modals/Layouts/Property Editor UI Picker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/data-type-copy.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/copy/data-type-copy.repository.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/data-type-copy.repository.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/repository/copy/data-type-copy.repository.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/data-type-copy.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/copy/data-type-copy.server.data-source.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/data-type-copy.server.data-source.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/repository/copy/data-type-copy.server.data-source.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/index.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/copy/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/repository/copy/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/copy/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/repository/copy/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/detail/data-type-detail.repository.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.repository.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/repository/detail/data-type-detail.repository.ts 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/data-type/repository/detail/data-type-detail.server.data-source.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.server.data-source.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/repository/detail/data-type-detail.server.data-source.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/detail/data-type-detail.store.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.store.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/repository/detail/data-type-detail.store.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/index.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/detail/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/repository/detail/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/detail/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/repository/detail/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/repository/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/item/data-type-item.repository.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.repository.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/repository/item/data-type-item.repository.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/item/data-type-item.server.data-source.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.server.data-source.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/repository/item/data-type-item.server.data-source.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/item/data-type-item.store.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.store.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/repository/item/data-type-item.store.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/index.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/item/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/repository/item/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/item/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/repository/item/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/types.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/item/types.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/types.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/repository/item/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/repository/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/move/data-type-move.repository.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.repository.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/repository/move/data-type-move.repository.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/move/data-type-move.server.data-source.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.server.data-source.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/repository/move/data-type-move.server.data-source.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/index.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/move/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/repository/move/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/move/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/repository/move/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.repository.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.repository.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.repository.ts index 83645d8609..b0a3b12a27 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.repository.ts @@ -1,4 +1,4 @@ -import { UmbTreeRepositoryBase } from '../../tree/tree-repository-base.js'; +import { UmbTreeRepositoryBase } from '../../core/tree/tree-repository-base.js'; import { UMB_DATA_TYPE_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbDataTypeTreeServerDataSource } from './data-type-tree.server.data-source.js'; import { UMB_DATA_TYPE_TREE_STORE_CONTEXT } from './data-type-tree.store.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.server.data-source.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.server.data-source.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.server.data-source.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.store.ts similarity index 91% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.store.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.store.ts index 1984a64eed..b3647216a1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.store.ts @@ -1,5 +1,5 @@ -import { UmbStoreConnector } from '../../store/store-connector.js'; -import { UmbUniqueTreeStore } from '../../tree/unique-tree-store.js'; +import { UmbStoreConnector } from '../../core/store/store-connector.js'; +import { UmbUniqueTreeStore } from '../../core/tree/unique-tree-store.js'; import { UMB_DATA_TYPE_DETAIL_STORE_CONTEXT } from '../repository/detail/data-type-detail.store.js'; import type { UmbDataTypeDetailModel } from '../types.js'; import type { UmbDataTypeTreeItemModel } from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/folder/data-type-folder.repository.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.repository.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/tree/folder/data-type-folder.repository.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/folder/data-type-folder.server.data-source.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.server.data-source.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/tree/folder/data-type-folder.server.data-source.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/index.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/folder/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/tree/folder/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/folder/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/tree/folder/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/types.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/folder/types.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/types.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/tree/folder/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/index.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/tree/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/tree/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item-children/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/reload-tree-item-children/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item-children/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/tree/reload-tree-item-children/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/types.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/types.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/tree/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/types.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/types.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/types.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/umbraco-package.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/umbraco-package.ts new file mode 100644 index 0000000000..cee815f5cd --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/umbraco-package.ts @@ -0,0 +1,9 @@ +export const name = 'Umbraco.Core.DataTypes'; +export const extensions = [ + { + name: 'Data Type Bundle', + alias: 'Umb.Bundle.DataType', + type: 'bundle', + js: () => import('./manifests.js'), + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace-editor.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace-editor.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace-editor.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.context-token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.context-token.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.context-token.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.context.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.context.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.element.ts similarity index 94% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.element.ts index b675d2e39f..535b72d31a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.element.ts @@ -1,6 +1,5 @@ import { UmbDataTypeWorkspaceEditorElement } from './data-type-workspace-editor.element.js'; import { UmbDataTypeWorkspaceContext } from './data-type-workspace.context.js'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -40,8 +39,6 @@ export class UmbDataTypeWorkspaceElement extends UmbLitElement { render() { return html``; } - - static styles = [UmbTextStyles]; } export default UmbDataTypeWorkspaceElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.modal-token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.modal-token.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.modal-token.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.stories.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.stories.ts index b844aa0604..07fa260983 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.stories.ts @@ -1,7 +1,7 @@ import './data-type-workspace.element.js'; import type { Meta, Story } from '@storybook/web-components'; -import { data } from '../../../../mocks/data/data-type/data-type.data.js'; +import { data } from '../../../mocks/data/data-type/data-type.data.js'; import type { UmbDataTypeWorkspaceElement } from './data-type-workspace.element.js'; import { html, ifDefined } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/index.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/details/data-type-details-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/views/details/data-type-details-workspace-view.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/details/data-type-details-workspace-view.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/views/details/data-type-details-workspace-view.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/details/data-type-details-workspace-view.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/views/details/data-type-details-workspace-view.stories.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/details/data-type-details-workspace-view.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/views/details/data-type-details-workspace-view.stories.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/info/workspace-view-data-type-info.element.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/views/info/workspace-view-data-type-info.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/info/workspace-view-data-type-info.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/views/info/workspace-view-data-type-info.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/info/workspace-view-data-type-info.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/views/info/workspace-view-data-type-info.stories.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/info/workspace-view-data-type-info.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/views/info/workspace-view-data-type-info.stories.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/action/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/action/manifests.ts index a8c908ce3d..0a48feecbe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/action/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/action/manifests.ts @@ -1,7 +1,7 @@ import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection'; -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestCollectionAction } from '@umbraco-cms/backoffice/extension-registry'; -export const createManifest: ManifestTypes = { +export const createManifest: ManifestCollectionAction = { type: 'collectionAction', kind: 'button', name: 'Create Dictionary Collection Action', diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/manifests.ts index 479c297722..ff6af698de 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/manifests.ts @@ -2,11 +2,11 @@ import { UMB_DICTIONARY_COLLECTION_REPOSITORY_ALIAS } from './repository/index.j import { manifests as collectionRepositoryManifests } from './repository/manifests.js'; import { manifests as collectionViewManifests } from './views/manifests.js'; import { manifests as collectionActionManifests } from './action/manifests.js'; -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestCollection } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_DICTIONARY_COLLECTION_ALIAS = 'Umb.Collection.Dictionary'; -const collectionManifest: ManifestTypes = { +const collectionManifest: ManifestCollection = { type: 'collection', kind: 'default', alias: UMB_DICTIONARY_COLLECTION_ALIAS, diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/repository/dictionary-collection.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/repository/dictionary-collection.repository.ts index 3f02a0ee2e..0ee0ed768e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/repository/dictionary-collection.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/repository/dictionary-collection.repository.ts @@ -1,7 +1,7 @@ import type { UmbDictionaryCollectionFilterModel } from '../types.js'; import { UmbDictionaryCollectionServerDataSource } from './dictionary-collection.server.data-source.js'; import type { UmbDictionaryCollectionDataSource } from './types.js'; -import type { UmbCollectionRepository } from '@umbraco-cms/backoffice/repository'; +import type { UmbCollectionRepository } from '@umbraco-cms/backoffice/collection'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export class UmbDictionaryCollectionRepository implements UmbCollectionRepository { diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/repository/dictionary-collection.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/repository/dictionary-collection.server.data-source.ts index 61aeaedeab..f1c9e01e53 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/repository/dictionary-collection.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/repository/dictionary-collection.server.data-source.ts @@ -1,6 +1,6 @@ import type { UmbDictionaryCollectionFilterModel, UmbDictionaryCollectionModel } from '../types.js'; import { UMB_DICTIONARY_ENTITY_TYPE } from '../../entity.js'; -import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/collection'; import { DictionaryResource } from '@umbraco-cms/backoffice/external/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/repository/types.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/repository/types.ts index 1827cc0f29..8b4fc32709 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/repository/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/repository/types.ts @@ -1,5 +1,5 @@ import type { UmbDictionaryCollectionFilterModel, UmbDictionaryCollectionModel } from '../types.js'; -import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/collection'; export type UmbDictionaryCollectionDataSource = UmbCollectionDataSource< UmbDictionaryCollectionModel, diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dashboard/dictionary-overview-dashboard.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dashboard/dictionary-overview-dashboard.element.ts index 6eec2340d2..480e62399a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dashboard/dictionary-overview-dashboard.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dashboard/dictionary-overview-dashboard.element.ts @@ -1,5 +1,4 @@ import { UMB_DICTIONARY_COLLECTION_ALIAS } from '../collection/index.js'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbTableConfig } from '@umbraco-cms/backoffice/components'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -14,8 +13,6 @@ export class UmbDictionaryCollectionDashboardElement extends UmbLitElement { render() { return html` `; } - - static styles = [UmbTextStyles]; } export default UmbDictionaryCollectionDashboardElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/create/create-dictionary-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/create/create-dictionary-modal.element.ts index 86fbcf5be2..2c81e8bad1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/create/create-dictionary-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/create/create-dictionary-modal.element.ts @@ -1,11 +1,7 @@ import { html, customElement, query, when } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import type { - UmbCreateDictionaryModalData, - UmbCreateDictionaryModalValue} from '@umbraco-cms/backoffice/modal'; -import { - UmbModalBaseElement, -} from '@umbraco-cms/backoffice/modal'; +import type { UmbCreateDictionaryModalData, UmbCreateDictionaryModalValue } from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; @customElement('umb-create-dictionary-modal') export class UmbCreateDictionaryModalElement extends UmbModalBaseElement< diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/create/create.action.ts index a38546b9a7..ee39199b82 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/create/create.action.ts @@ -1,11 +1,8 @@ import type { UmbDictionaryDetailRepository } from '../../repository/index.js'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export default class UmbCreateDictionaryEntityAction extends UmbEntityActionBase { - static styles = [UmbTextStyles]; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { super(host, repositoryAlias, unique, entityType); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/export/export.action.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/export/export.action.ts index c0f21cefb6..6c77d6b76c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/export/export.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/export/export.action.ts @@ -1,14 +1,11 @@ import type { UmbDictionaryExportRepository } from '../../repository/index.js'; import { UMB_EXPORT_DICTIONARY_MODAL } from './export-dictionary-modal.token.js'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export default class UmbExportDictionaryEntityAction extends UmbEntityActionBase { - static styles = [UmbTextStyles]; - #modalContext?: UmbModalManagerContext; constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/import/import.action.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/import/import.action.ts index a51f6a2c1c..e493639608 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/import/import.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/import/import.action.ts @@ -1,14 +1,11 @@ import type { UmbDictionaryImportRepository } from '../../repository/index.js'; import { UMB_IMPORT_DICTIONARY_MODAL } from './import-dictionary-modal.token.js'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export default class UmbImportDictionaryEntityAction extends UmbEntityActionBase { - static styles = [UmbTextStyles]; - #modalContext?: UmbModalManagerContext; constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/menu/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/menu/manifests.ts index 4fdcb21565..bd909ef43c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/menu/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/menu/manifests.ts @@ -1,10 +1,10 @@ import { UMB_DICTIONARY_ENTITY_TYPE } from '../entity.js'; import { UMB_DICTIONARY_TREE_ALIAS } from '../tree/index.js'; -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestMenu, ManifestMenuItemTreeKind } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_DICTIONARY_MENU_ALIAS = 'Umb.Menu.Dictionary'; -const menu: ManifestTypes = { +const menu: ManifestMenu = { type: 'menu', alias: UMB_DICTIONARY_MENU_ALIAS, name: 'Dictionary Menu', @@ -13,7 +13,7 @@ const menu: ManifestTypes = { }, }; -const menuItem: ManifestTypes = { +const menuItem: ManifestMenuItemTreeKind = { type: 'menuItem', kind: 'tree', alias: 'Umb.MenuItem.Dictionary', diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/section/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/section/manifests.ts index 81b48d90f4..2189235fb3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/section/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/section/manifests.ts @@ -1,6 +1,6 @@ import { UMB_DICTIONARY_ROOT_ENTITY_TYPE } from '../entity.js'; import { UMB_DICTIONARY_MENU_ALIAS } from '../menu/manifests.js'; -import type { ManifestSection, ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestSection, ManifestSectionSidebarApp } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_DICTIONARY_SECTION_ALIAS = 'Umb.Section.Dictionary'; @@ -15,7 +15,7 @@ const section: ManifestSection = { }, }; -const menuSectionSidebarApp: ManifestTypes = { +const menuSectionSidebarApp: ManifestSectionSidebarApp = { type: 'sectionSidebarApp', kind: 'menuWithEntityActions', alias: 'Umb.SidebarMenu.Dictionary', diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.element.ts index 3ca39441ff..e08fd6bfc3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.element.ts @@ -1,6 +1,5 @@ import { UmbDictionaryWorkspaceContext } from './dictionary-workspace.context.js'; import { UmbDictionaryWorkspaceEditorElement } from './dictionary-workspace-editor.element.js'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -40,8 +39,6 @@ export class UmbWorkspaceDictionaryElement extends UmbLitElement { render() { return html` `; } - - static styles = [UmbTextStyles]; } export default UmbWorkspaceDictionaryElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts index ddd31553cd..328e1faf6e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts @@ -1,7 +1,6 @@ import { UMB_DOCUMENT_TYPE_FOLDER_REPOSITORY_ALIAS } from '../../../tree/index.js'; import type { UmbDocumentTypeCreateOptionsModalData } from './index.js'; import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbCreateFolderEntityAction } from '@umbraco-cms/backoffice/tree'; @@ -60,8 +59,6 @@ export class UmbDataTypeCreateOptionsModalElement extends UmbModalBaseElement `; } - - static styles = [UmbTextStyles]; } export default UmbDataTypeCreateOptionsModalElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/menu-item/manifests.ts index c4a7939e7e..c048b1075f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/menu-item/manifests.ts @@ -1,7 +1,7 @@ import { UMB_DOCUMENT_TYPE_TREE_ALIAS } from '../tree/manifests.js'; -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestMenuItemTreeKind } from '@umbraco-cms/backoffice/extension-registry'; -const menuItem: ManifestTypes = { +const menuItem: ManifestMenuItemTreeKind = { type: 'menuItem', kind: 'tree', alias: 'Umb.MenuItem.DocumentTypes', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/property-editors/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/property-editors/manifests.ts index 586f3fc6ef..c35f018e84 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/property-editors/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/property-editors/manifests.ts @@ -1,4 +1,4 @@ import { manifest as documentTypePickerUI } from './document-type-picker/manifests.js'; -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifests: Array = [documentTypePickerUI]; +export const manifests: Array = [documentTypePickerUI]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts index 1fbd784718..5ad807ec15 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts @@ -59,6 +59,7 @@ export class UmbDocumentTypeDetailServerDataSource implements UmbDetailDataSourc keepAllVersionsNewerThanDays: null, keepLatestVersionPerDayForDays: null, }, + collection: null, }; return { data }; @@ -126,6 +127,7 @@ export class UmbDocumentTypeDetailServerDataSource implements UmbDetailDataSourc allowedTemplates: data.allowedTemplates, defaultTemplate: data.defaultTemplate ? { id: data.defaultTemplate.id } : null, cleanup: data.cleanup, + collection: data.collection ? { unique: data.collection?.id } : null, }; return { data: DocumentType }; 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 0b3e9b63ce..b31fa0e01d 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,6 +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 type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -41,8 +40,6 @@ export class UmbDocumentTypeWorkspaceElement extends UmbLitElement { render() { return html` `; } - - static styles = [UmbTextStyles]; } export default UmbDocumentTypeWorkspaceElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/breadcrumb/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/breadcrumb/manifests.ts index eae3ef3f5b..c9ce7a117b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/breadcrumb/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/breadcrumb/manifests.ts @@ -1,6 +1,6 @@ -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestWorkspaceFooterApp } from '@umbraco-cms/backoffice/extension-registry'; -export const manifests: Array = [ +export const manifests: Array = [ { type: 'workspaceFooterApp', alias: 'Umb.WorkspaceFooterApp.Document.Breadcrumb', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/manifests.ts index 6495faec15..09f88649d4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/manifests.ts @@ -4,9 +4,9 @@ import { manifests as collectionRepositoryManifests } from './repository/manifes import { manifests as collectionViewManifests } from './views/manifests.js'; import { UmbDocumentCollectionContext } from './document-collection.context.js'; import { UMB_DOCUMENT_COLLECTION_ALIAS } from './index.js'; -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestCollection } from '@umbraco-cms/backoffice/extension-registry'; -const collectionManifest: ManifestTypes = { +const collectionManifest: ManifestCollection = { type: 'collection', alias: UMB_DOCUMENT_COLLECTION_ALIAS, name: 'Document Collection', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/repository/document-collection.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/repository/document-collection.repository.ts index ebd5b771b2..47042ffd2d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/repository/document-collection.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/repository/document-collection.repository.ts @@ -1,6 +1,6 @@ import type { UmbDocumentCollectionFilterModel } from '../types.js'; import { UmbDocumentCollectionServerDataSource } from './document-collection.server.data-source.js'; -import type { UmbCollectionRepository } from '@umbraco-cms/backoffice/repository'; +import type { UmbCollectionRepository } from '@umbraco-cms/backoffice/collection'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export class UmbDocumentCollectionRepository implements UmbCollectionRepository { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/repository/document-collection.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/repository/document-collection.server.data-source.ts index febaef4250..d2709afa67 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/repository/document-collection.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/repository/document-collection.server.data-source.ts @@ -2,7 +2,7 @@ import type { UmbDocumentCollectionFilterModel, UmbDocumentCollectionItemModel } import { DirectionModel, DocumentResource } from '@umbraco-cms/backoffice/external/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; import type { DocumentCollectionResponseModel } from '@umbraco-cms/backoffice/external/backend-api'; -import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/collection'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export class UmbDocumentCollectionServerDataSource implements UmbCollectionDataSource { @@ -36,7 +36,6 @@ export class UmbDocumentCollectionServerDataSource implements UmbCollectionDataS if (data) { const items = data.items.map((item: DocumentCollectionResponseModel) => { - // TODO: [LK] Temp solution, review how to get the name from the corresponding variant. const variant = item.variants[0]; @@ -49,7 +48,9 @@ export class UmbDocumentCollectionServerDataSource implements UmbCollectionDataS state: variant.state, updateDate: new Date(variant.updateDate), updater: item.updater, - values: item.values.map((item) => { return { alias: item.alias, value: item.value }; }), + values: item.values.map((item) => { + return { alias: item.alias, value: item.value }; + }), }; return model; }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/grid/document-grid-collection-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/grid/document-grid-collection-view.element.ts index b4bd4e4d44..d53b20bb48 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/grid/document-grid-collection-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/grid/document-grid-collection-view.element.ts @@ -18,6 +18,9 @@ export class UmbDocumentGridCollectionViewElement extends UmbLitElement { @state() private _selection: Array = []; + @state() + private _skip: number = 0; + @state() private _userDefinedProperties?: Array; @@ -50,6 +53,14 @@ export class UmbDocumentGridCollectionViewElement extends UmbLitElement { (selection) => (this._selection = selection), 'umbCollectionSelectionObserver', ); + + this.observe( + this.#collectionContext.pagination.skip, + (skip) => { + this._skip = skip; + }, + 'umbCollectionSkipObserver', + ); } // TODO: How should we handle url stuff? [?] @@ -84,13 +95,14 @@ export class UmbDocumentGridCollectionViewElement extends UmbLitElement { ${repeat( this._items, (item) => item.unique, - (item) => this.#renderCard(item), + (item, index) => this.#renderCard(index, item), )} `; } - #renderCard(item: UmbDocumentCollectionItemModel) { + #renderCard(index: number, item: UmbDocumentCollectionItemModel) { + const sortOrder = this._skip + index; return html` this.#onSelect(item)} @deselected=${() => this.#onDeselect(item)}> - ${this.#renderState(item)} ${this.#renderProperties(item)} + ${this.#renderState(item)} ${this.#renderProperties(sortOrder, item)} `; } @@ -132,14 +144,14 @@ export class UmbDocumentGridCollectionViewElement extends UmbLitElement { } } - #renderProperties(item: UmbDocumentCollectionItemModel) { + #renderProperties(sortOrder: number, item: UmbDocumentCollectionItemModel) { if (!this._userDefinedProperties) return; return html`
    ${repeat( this._userDefinedProperties, (column) => column.alias, - (column) => html`
  • ${column.header}: ${getPropertyValueByAlias(item, column.alias)}
  • `, + (column) => html`
  • ${column.header}: ${getPropertyValueByAlias(sortOrder, item, column.alias)}
  • `, )}
`; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/index.ts index cfb5b835ad..cd713ce848 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/index.ts @@ -2,7 +2,7 @@ import type { UmbDocumentCollectionItemModel } from '../types.js'; export { UMB_DOCUMENT_GRID_COLLECTION_VIEW_ALIAS, UMB_DOCUMENT_TABLE_COLLECTION_VIEW_ALIAS } from './manifests.js'; -export function getPropertyValueByAlias(item: UmbDocumentCollectionItemModel, alias: string) { +export function getPropertyValueByAlias(sortOrder: number, item: UmbDocumentCollectionItemModel, alias: string) { switch (alias) { case 'createDate': return item.createDate.toLocaleString(); @@ -14,6 +14,8 @@ export function getPropertyValueByAlias(item: UmbDocumentCollectionItemModel, al return item.creator; case 'published': return item.state !== 'Draft' ? 'True' : 'False'; + case 'sortOrder': + return sortOrder; case 'updateDate': return item.updateDate.toLocaleString(); case 'updater': diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/document-table-collection-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/document-table-collection-view.element.ts index 64048fe5f0..70a08a5ae7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/document-table-collection-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/document-table-collection-view.element.ts @@ -59,6 +59,9 @@ export class UmbDocumentTableCollectionViewElement extends UmbLitElement { @state() private _selection: Array = []; + @state() + private _skip: number = 0; + #collectionContext?: UmbDefaultCollectionContext; constructor() { @@ -97,6 +100,14 @@ export class UmbDocumentTableCollectionViewElement extends UmbLitElement { }, 'umbCollectionSelectionObserver', ); + + this.observe( + this.#collectionContext.pagination.skip, + (skip) => { + this._skip = skip; + }, + 'umbCollectionSkipObserver', + ); } #createTableHeadings() { @@ -115,14 +126,16 @@ export class UmbDocumentTableCollectionViewElement extends UmbLitElement { } #createTableItems(items: Array) { - this._tableItems = items.map((item) => { + this._tableItems = items.map((item, rowIndex) => { if (!item.unique) throw new Error('Item id is missing.'); + const sortOrder = this._skip + rowIndex; + const data = this._tableColumns?.map((column) => { return { columnAlias: column.alias, - value: column.elementName ? item : getPropertyValueByAlias(item, column.alias), + value: column.elementName ? item : getPropertyValueByAlias(sortOrder, item, column.alias), }; }) ?? []; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/document-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/document-create-options-modal.element.ts index 0f0024d480..0ae92129fb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/document-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/document-create-options-modal.element.ts @@ -78,7 +78,7 @@ export class UmbDocumentCreateOptionsModalElement extends UmbModalBaseElement< `, )} - Cancel + `; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/index.ts index 1d256b3ae7..f8e2d03e2d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/index.ts @@ -11,7 +11,7 @@ export * from './entity-actions/index.js'; export * from './conditions/index.js'; export * from './modals/index.js'; -export { UMB_DOCUMENT_TREE_ALIAS, UmbDocumentTreeRepository } from './tree/index.js'; +export * from './tree/index.js'; export { UMB_CONTENT_MENU_ALIAS } from './menu.manifests.js'; export { UMB_DOCUMENT_COLLECTION_ALIAS } from './collection/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu-item/manifests.ts index 141a25c337..b71965c753 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu-item/manifests.ts @@ -1,8 +1,8 @@ import { UMB_CONTENT_MENU_ALIAS } from '../menu.manifests.js'; import { UMB_DOCUMENT_TREE_ALIAS } from '../tree/index.js'; -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestMenuItemTreeKind } from '@umbraco-cms/backoffice/extension-registry'; -const menuItem: ManifestTypes = { +const menuItem: ManifestMenuItemTreeKind = { type: 'menuItem', kind: 'tree', alias: 'Umb.MenuItem.Document', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/manifests.ts index e4a64ccb34..c7f1d01021 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/manifests.ts @@ -1,4 +1,4 @@ import { manifest as documentPickerUI } from './document-picker/manifests.js'; -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifests: Array = [documentPickerUI]; +export const manifests: Array = [documentPickerUI]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/menu-item/manifests.ts index 086b5801c9..23c912975b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/menu-item/manifests.ts @@ -1,7 +1,7 @@ import { UMB_CONTENT_MENU_ALIAS } from '../../menu.manifests.js'; -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestMenuItemTreeKind } from '@umbraco-cms/backoffice/extension-registry'; -const menuItem: ManifestTypes = { +const menuItem: ManifestMenuItemTreeKind = { type: 'menuItem', kind: 'tree', alias: 'Umb.MenuItem.DocumentRecycleBin', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts index 041ba660a5..38ece37f81 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts @@ -43,7 +43,6 @@ export class UmbDocumentServerDataSource implements UmbDetailDataSource { documentType: { unique: item.documentType.id, icon: item.documentType.icon, - hasCollection: item.documentType.hasListView, + collection: item.documentType.collection ?? undefined, }, variants: item.variants.map((variant) => { return { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/types.ts index 7de3100c2a..b2a092a50d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/types.ts @@ -1,4 +1,5 @@ import type { DocumentVariantStateModel } from '@umbraco-cms/backoffice/external/backend-api'; +import type { UmbReferenceById } from '@umbraco-cms/backoffice/models'; export interface UmbDocumentItemModel { name: string; // TODO: this is not correct. We need to get it from the variants. This is a temp solution. @@ -8,7 +9,7 @@ export interface UmbDocumentItemModel { documentType: { unique: string; icon: string; - hasCollection: boolean; + collection?: UmbReferenceById; }; variants: Array; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tracked-reference/repository/document-tracked-reference.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tracked-reference/repository/document-tracked-reference.repository.ts index 295fecbe26..9f155faae0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tracked-reference/repository/document-tracked-reference.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tracked-reference/repository/document-tracked-reference.repository.ts @@ -35,3 +35,5 @@ export class UmbDocumentTrackedReferenceRepository extends UmbBaseController { return this.#trackedReferenceSource.getTrackedReferenceItem(uniques, skip, take, filterMustBeIsDependency); } } + +export default UmbDocumentTrackedReferenceRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tracked-reference/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tracked-reference/repository/manifests.ts index 972222f3b2..21b59fd7f1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tracked-reference/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tracked-reference/repository/manifests.ts @@ -1,4 +1,3 @@ -import { UmbDocumentTrackedReferenceRepository } from './document-tracked-reference.repository.js'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_DOCUMENT_TRACKED_REFERENCE_REPOSITORY_ALIAS = 'Umb.Repository.Document.TrackedReference'; @@ -7,7 +6,7 @@ const repository: ManifestRepository = { type: 'repository', alias: UMB_DOCUMENT_TRACKED_REFERENCE_REPOSITORY_ALIAS, name: 'Document Tracked Reference Repository', - api: UmbDocumentTrackedReferenceRepository, + api: () => import('./document-tracked-reference.repository.js'), }; export const manifests = [repository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.repository.ts index 2f151145e4..8e1e117978 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.repository.ts @@ -26,3 +26,5 @@ export class UmbDocumentTreeRepository return { data }; } } + +export default UmbDocumentTreeRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts index aaddb70854..c4d7aeaaef 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts @@ -55,7 +55,7 @@ const mapper = (item: DocumentTreeItemResponseModel): UmbDocumentTreeItemModel = documentType: { unique: item.documentType.id, icon: item.documentType.icon, - hasCollection: item.documentType.hasListView, + collection: item.documentType.collection ?? undefined, }, variants: item.variants.map((variant) => { return { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.store.ts index f68d14f062..66f4795daf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.store.ts @@ -19,4 +19,6 @@ export class UmbDocumentTreeStore extends UmbUniqueTreeStore { } } +export default UmbDocumentTreeStore; + export const UMB_DOCUMENT_TREE_STORE_CONTEXT = new UmbContextToken('UmbDocumentTreeStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/index.ts index 2025f319d9..f7c05fd8ce 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/index.ts @@ -5,5 +5,5 @@ export { UMB_DOCUMENT_TREE_ALIAS, } from './manifests.js'; export { UMB_DOCUMENT_TREE_STORE_CONTEXT } from './document-tree.store.js'; -export { type UmbDocumentTreeStore } from './document-tree.store.js'; +export type { UmbDocumentTreeStore } from './document-tree.store.js'; export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/manifests.ts index 7470671496..0253a05463 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/manifests.ts @@ -1,6 +1,4 @@ import { UMB_DOCUMENT_ENTITY_TYPE, UMB_DOCUMENT_ROOT_ENTITY_TYPE } from '../entity.js'; -import { UmbDocumentTreeRepository } from './document-tree.repository.js'; -import { UmbDocumentTreeStore } from './document-tree.store.js'; import { manifests as reloadTreeItemChildrenManifests } from './reload-tree-item-children/manifests.js'; import type { ManifestRepository, @@ -17,14 +15,14 @@ const treeRepository: ManifestRepository = { type: 'repository', alias: UMB_DOCUMENT_TREE_REPOSITORY_ALIAS, name: 'Document Tree Repository', - api: UmbDocumentTreeRepository, + api: () => import('./document-tree.repository.js'), }; const treeStore: ManifestTreeStore = { type: 'treeStore', alias: UMB_DOCUMENT_TREE_STORE_ALIAS, name: 'Document Tree Store', - api: UmbDocumentTreeStore, + api: () => import('./document-tree.store.js'), }; const tree: ManifestTree = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts index 7a069b19be..74124c8d86 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts @@ -1,6 +1,7 @@ import type { UmbDocumentEntityType, UmbDocumentRootEntityType } from '../entity.js'; import type { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; import type { DocumentVariantStateModel } from '@umbraco-cms/backoffice/external/backend-api'; +import type { UmbReferenceById } from '@umbraco-cms/backoffice/models'; export interface UmbDocumentTreeItemModel extends UmbUniqueTreeItemModel { entityType: UmbDocumentEntityType; @@ -10,7 +11,7 @@ export interface UmbDocumentTreeItemModel extends UmbUniqueTreeItemModel { documentType: { unique: string; icon: string; - hasCollection: boolean; + collection?: UmbReferenceById; }; variants: Array; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts index 41a3c03d44..1ca0862574 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts @@ -1,12 +1,13 @@ import type { UmbDocumentEntityType } from './entity.js'; import type { UmbVariantModel } from '@umbraco-cms/backoffice/variant'; +import type { UmbReferenceById } from '@umbraco-cms/backoffice/models'; import { DocumentVariantStateModel as UmbDocumentVariantState } from '@umbraco-cms/backoffice/external/backend-api'; export { UmbDocumentVariantState }; export interface UmbDocumentDetailModel { documentType: { unique: string; - hasCollection: boolean; + collection?: UmbReferenceById; }; entityType: UmbDocumentEntityType; isTrashed: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/repository/document-permission.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/repository/document-permission.repository.ts index 4dbc0054fc..cef88807a6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/repository/document-permission.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/repository/document-permission.repository.ts @@ -15,3 +15,5 @@ export class UmbDocumentPermissionRepository extends UmbBaseController { return this.#permissionSource.requestPermissions(id); } } + +export default UmbDocumentPermissionRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/repository/manifests.ts index 73e3c36b08..2a79116a28 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/repository/manifests.ts @@ -1,4 +1,3 @@ -import { UmbDocumentPermissionRepository } from './document-permission.repository.js'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_DOCUMENT_PERMISSION_REPOSITORY_ALIAS = 'Umb.Repository.Document.Permission'; @@ -7,7 +6,7 @@ const repository: ManifestRepository = { type: 'repository', alias: UMB_DOCUMENT_PERMISSION_REPOSITORY_ALIAS, name: 'Document Permission Repository', - api: UmbDocumentPermissionRepository, + api: () => import('./document-permission.repository.js'), }; export const manifests = [repository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts index 6821469506..fbb69e8984 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts @@ -39,7 +39,7 @@ export class UmbDocumentWorkspaceContext readonly unique = this.#currentData.asObservablePart((data) => data?.unique); readonly contentTypeUnique = this.#currentData.asObservablePart((data) => data?.documentType.unique); - readonly contentTypeHasCollection = this.#currentData.asObservablePart((data) => data?.documentType.hasCollection); + readonly contentTypeHasCollection = this.#currentData.asObservablePart((data) => !!data?.documentType.collection); readonly variants = this.#currentData.asObservablePart((data) => data?.variants || []); readonly urls = this.#currentData.asObservablePart((data) => data?.urls || []); @@ -79,7 +79,6 @@ export class UmbDocumentWorkspaceContext this.#getDataPromise = this.repository.createScaffold(parentUnique, { documentType: { unique: documentTypeUnique, - hasCollection: false, }, }); const { data } = await this.#getDataPromise; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts index 133c6eaeee..ef5236c35a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts @@ -2,7 +2,6 @@ import type { UmbDocumentWorkspaceContext } from './document-workspace.context.j import { UmbDocumentWorkspaceEditorElement } from './document-workspace-editor.element.js'; import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbExtensionsApiInitializer, createExtensionApi } from '@umbraco-cms/backoffice/extension-api'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; @@ -63,8 +62,6 @@ export class UmbDocumentWorkspaceElement extends UmbLitElement { render() { return html``; } - - static styles = [UmbTextStyles]; } export default UmbDocumentWorkspaceElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/section.manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/section.manifests.ts index fc16d200fa..9f2c28a7e9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/section.manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/section.manifests.ts @@ -1,12 +1,12 @@ import { UMB_DOCUMENT_ROOT_ENTITY_TYPE, UMB_CONTENT_MENU_ALIAS } from './documents/index.js'; import type { + ManifestSection, ManifestSectionSidebarAppMenuWithEntityActionsKind, - ManifestTypes, } from '@umbraco-cms/backoffice/extension-registry'; const sectionAlias = 'Umb.Section.Content'; -const section: ManifestTypes = { +const section: ManifestSection = { type: 'section', alias: sectionAlias, name: 'Content Section', diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts index f56b60de79..5f536cd031 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts @@ -1,6 +1,5 @@ import type { UmbDashboardHealthCheckGroupElement } from './views/health-check-group.element.js'; import { UmbHealthCheckDashboardContext, UMB_HEALTHCHECK_DASHBOARD_CONTEXT } from './health-check-dashboard.context.js'; -import { UmbHealthCheckContext } from './health-check.context.js'; import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { HealthCheckGroupResponseModel } from '@umbraco-cms/backoffice/external/backend-api'; import { HealthCheckResource } from '@umbraco-cms/backoffice/external/backend-api'; @@ -59,7 +58,7 @@ export class UmbDashboardHealthCheckElement extends UmbLitElement { weight: 500, meta: { label: group.name || '', - api: UmbHealthCheckContext, + api: () => import('./health-check.context.js'), }, }; }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check.context.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check.context.ts index b96e96d610..ed0672d484 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check.context.ts @@ -45,4 +45,6 @@ export class UmbHealthCheckContext { } } +export default UmbHealthCheckContext; + export const UMB_HEALTHCHECK_CONTEXT = new UmbContextToken('UmbHealthCheckContext'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/app-language-select/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/language/app-language-select/manifests.ts index 0e5b2fa915..e3ba41fad9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/app-language-select/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/app-language-select/manifests.ts @@ -1,6 +1,6 @@ -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestSectionSidebarApp } from '@umbraco-cms/backoffice/extension-registry'; -const entityActions: Array = [ +const entityActions: Array = [ { type: 'sectionSidebarApp', alias: 'Umb.SectionSidebarItem.LanguageSelect', diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/collection/action/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/language/collection/action/manifests.ts index dabc0f6fa8..c4c98eca4d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/collection/action/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/collection/action/manifests.ts @@ -1,7 +1,7 @@ import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection'; -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestCollectionAction } from '@umbraco-cms/backoffice/extension-registry'; -export const createManifest: ManifestTypes = { +export const createManifest: ManifestCollectionAction = { type: 'collectionAction', kind: 'button', name: 'Create Language Collection Action', diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/collection/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/language/collection/manifests.ts index cd20d8851e..d65bcb3b0e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/collection/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/collection/manifests.ts @@ -2,11 +2,11 @@ import { UMB_LANGUAGE_COLLECTION_REPOSITORY_ALIAS } from './repository/index.js' import { manifests as collectionRepositoryManifests } from './repository/manifests.js'; import { manifests as collectionViewManifests } from './views/manifests.js'; import { manifests as collectionActionManifests } from './action/manifests.js'; -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestCollection } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_LANGUAGE_COLLECTION_ALIAS = 'Umb.Collection.Language'; -const collectionManifest: ManifestTypes = { +const collectionManifest: ManifestCollection = { type: 'collection', kind: 'default', alias: UMB_LANGUAGE_COLLECTION_ALIAS, diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/collection/repository/language-collection.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/language/collection/repository/language-collection.repository.ts index f4078e4ccd..8f2a018756 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/collection/repository/language-collection.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/collection/repository/language-collection.repository.ts @@ -1,7 +1,7 @@ import type { UmbLanguageCollectionFilterModel } from '../types.js'; import { UmbLanguageCollectionServerDataSource } from './language-collection.server.data-source.js'; import type { UmbLanguageCollectionDataSource } from './types.js'; -import type { UmbCollectionRepository } from '@umbraco-cms/backoffice/repository'; +import type { UmbCollectionRepository } from '@umbraco-cms/backoffice/collection'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export class UmbLanguageCollectionRepository implements UmbCollectionRepository { diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/collection/repository/language-collection.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/language/collection/repository/language-collection.server.data-source.ts index 2a7910bfa7..d336aae76e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/collection/repository/language-collection.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/collection/repository/language-collection.server.data-source.ts @@ -1,7 +1,7 @@ import type { UmbLanguageCollectionFilterModel } from '../types.js'; import type { UmbLanguageDetailModel } from '../../types.js'; import { UMB_LANGUAGE_ENTITY_TYPE } from '../../entity.js'; -import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/collection'; import { LanguageResource } from '@umbraco-cms/backoffice/external/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/collection/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/language/collection/repository/manifests.ts index 9da9fcbbb7..f6192d7e3e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/collection/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/collection/repository/manifests.ts @@ -1,4 +1,3 @@ -import { UmbLanguageCollectionRepository } from './language-collection.repository.js'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_LANGUAGE_COLLECTION_REPOSITORY_ALIAS = 'Umb.Repository.LanguageCollection'; @@ -7,7 +6,7 @@ const repository: ManifestRepository = { type: 'repository', alias: UMB_LANGUAGE_COLLECTION_REPOSITORY_ALIAS, name: 'Language Collection Repository', - api: UmbLanguageCollectionRepository, + api: () => import('./language-collection.repository.js'), }; export const manifests = [repository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/collection/repository/types.ts b/src/Umbraco.Web.UI.Client/src/packages/language/collection/repository/types.ts index ebc992f8ef..8c5a676ecc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/collection/repository/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/collection/repository/types.ts @@ -1,6 +1,6 @@ import type { UmbLanguageDetailModel } from '../../types.js'; import type { UmbLanguageCollectionFilterModel } from '../types.js'; -import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/collection'; export type UmbLanguageCollectionDataSource = UmbCollectionDataSource< UmbLanguageDetailModel, diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/collection/views/table/column-layouts/boolean/language-table-boolean-column-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/language/collection/views/table/column-layouts/boolean/language-table-boolean-column-layout.element.ts index 2cd3889768..3dc43bbbb6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/collection/views/table/column-layouts/boolean/language-table-boolean-column-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/collection/views/table/column-layouts/boolean/language-table-boolean-column-layout.element.ts @@ -1,4 +1,3 @@ -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -10,8 +9,6 @@ export class UmbLanguageTableBooleanColumnLayoutElement extends UmbLitElement { render() { return this.value ? html`` : nothing; } - - static styles = [UmbTextStyles]; } declare global { diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/collection/views/table/column-layouts/entity-actions/language-table-entity-actions-column-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/language/collection/views/table/column-layouts/entity-actions/language-table-entity-actions-column-layout.element.ts index a0ba5f31d8..e9250a09ad 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/collection/views/table/column-layouts/entity-actions/language-table-entity-actions-column-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/collection/views/table/column-layouts/entity-actions/language-table-entity-actions-column-layout.element.ts @@ -1,5 +1,4 @@ import type { UmbLanguageDetailModel } from '../../../../../types.js'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { html, nothing, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -30,8 +29,6 @@ export class UmbLanguageTableEntityActionsColumnLayoutElement extends UmbLitElem `; } - - static styles = [UmbTextStyles]; } declare global { diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/modals/language-picker/language-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/language/modals/language-picker/language-picker-modal.element.ts index b069dc1b89..f5a050a8cd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/modals/language-picker/language-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/modals/language-picker/language-picker-modal.element.ts @@ -1,8 +1,7 @@ import { UmbLanguageCollectionRepository } from '../../collection/index.js'; import type { UmbLanguageItemModel } from '../../repository/index.js'; import type { UmbLanguagePickerModalValue, UmbLanguagePickerModalData } from './language-picker-modal.token.js'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbSelectionManager } from '@umbraco-cms/backoffice/utils'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; @@ -70,8 +69,6 @@ export class UmbLanguagePickerModalElement extends UmbModalBaseElement< `; } - - static styles = [UmbTextStyles, css``]; } export default UmbLanguagePickerModalElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/repository/detail/language-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/language/repository/detail/language-detail.repository.ts index 5baf9cf724..712354fff5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/repository/detail/language-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/repository/detail/language-detail.repository.ts @@ -9,3 +9,5 @@ export class UmbLanguageDetailRepository extends UmbDetailRepositoryBase('UmbLanguageDetailStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/repository/detail/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/language/repository/detail/manifests.ts index 03a260271c..d2fe0d16d4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/repository/detail/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/repository/detail/manifests.ts @@ -1,5 +1,3 @@ -import { UmbLanguageDetailRepository } from './language-detail.repository.js'; -import { UmbLanguageDetailStore } from './language-detail.store.js'; import type { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_LANGUAGE_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.Language.Detail'; @@ -8,7 +6,7 @@ const repository: ManifestRepository = { type: 'repository', alias: UMB_LANGUAGE_DETAIL_REPOSITORY_ALIAS, name: 'Language Detail Repository', - api: UmbLanguageDetailRepository, + api: () => import('./language-detail.repository.js'), }; export const UMB_LANGUAGE_DETAIL_STORE_ALIAS = 'Umb.Store.Language.Detail'; @@ -17,7 +15,7 @@ const store: ManifestStore = { type: 'store', alias: UMB_LANGUAGE_DETAIL_STORE_ALIAS, name: 'Language Detail Store', - api: UmbLanguageDetailStore, + api: () => import('./language-detail.store.js'), }; export const manifests = [repository, store]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/repository/item/language-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/language/repository/item/language-item.repository.ts index 0519ca1b8d..7f73858991 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/repository/item/language-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/repository/item/language-item.repository.ts @@ -9,3 +9,4 @@ export class UmbLanguageItemRepository extends UmbItemRepositoryBase } } +export default UmbLanguageItemStore; + export const UMB_LANGUAGE_ITEM_STORE_CONTEXT = new UmbContextToken('UmbLanguageItemStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/repository/item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/language/repository/item/manifests.ts index 94c03e39a5..6c50c8e918 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/repository/item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/repository/item/manifests.ts @@ -1,5 +1,3 @@ -import { UmbLanguageItemStore } from './language-item.store.js'; -import { UmbLanguageItemRepository } from './language-item.repository.js'; import type { ManifestRepository, ManifestItemStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_LANGUAGE_ITEM_REPOSITORY_ALIAS = 'Umb.Repository.LanguageItem'; @@ -9,14 +7,14 @@ const itemRepository: ManifestRepository = { type: 'repository', alias: UMB_LANGUAGE_ITEM_REPOSITORY_ALIAS, name: 'Language Item Repository', - api: UmbLanguageItemRepository, + api: () => import('./language-item.repository.js'), }; const itemStore: ManifestItemStore = { type: 'itemStore', alias: UMB_LANGUAGE_STORE_ALIAS, name: 'Language Item Store', - api: UmbLanguageItemStore, + api: () => import('./language-item.store.js'), }; export const manifests = [itemRepository, itemStore]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/language-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/language-workspace.element.ts index 82bbcb19a9..604b0cec11 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/language-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/language-workspace.element.ts @@ -1,7 +1,6 @@ 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 { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; @@ -39,8 +38,6 @@ export class UmbLanguageWorkspaceElement extends UmbLitElement { render() { return html``; } - - static styles = [UmbTextStyles, css``]; } export default UmbLanguageWorkspaceElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/donut-chart/donut-chart.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/donut-chart/donut-chart.element.ts index 37f09bbcc0..fb33814575 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/donut-chart/donut-chart.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/donut-chart/donut-chart.element.ts @@ -11,7 +11,7 @@ import { queryAssignedElements, state, } from '@umbraco-cms/backoffice/external/lit'; -import { clamp } from '@umbraco-cms/backoffice/external/lodash'; +import { clamp } from '@umbraco-cms/backoffice/utils'; export interface Circle { color: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-log-level-filter-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-log-level-filter-menu.element.ts index ee1aee72a9..e53d27314d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-log-level-filter-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-log-level-filter-menu.element.ts @@ -2,7 +2,7 @@ import type { UmbLogViewerWorkspaceContext } from '../../../logviewer.context.js import { UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; import type { UUICheckboxElement } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, queryAll, state } from '@umbraco-cms/backoffice/external/lit'; -import { debounce } from '@umbraco-cms/backoffice/external/lodash'; +import { debounce } from '@umbraco-cms/backoffice/utils'; import { LogLevelModel } from '@umbraco-cms/backoffice/external/backend-api'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { path, query, toQueryString } from '@umbraco-cms/backoffice/router'; 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 3a33e0b771..ec98da6550 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 @@ -90,11 +90,11 @@ export class UmbLogViewerMessagesListElement extends UmbLitElement { .exception=${log.exception ?? ''} .messageTemplate=${log.messageTemplate ?? ''}>`, )}` - : html` + : html` Sorry, we cannot find what you are looking for. - `}`; + `}`; } render() { @@ -115,9 +115,7 @@ export class UmbLogViewerMessagesListElement extends UmbLitElement {
${this._isLoading - ? html` - Loading log messages... - ` + ? html` Loading log messages... ` : html`${this.#renderLogs()}`}
@@ -172,11 +170,12 @@ export class UmbLogViewerMessagesListElement extends UmbLitElement { justify-content: center; align-items: center; gap: var(--uui-size-space-3); + margin: var(--uui-size-space-5) 0; } #pagination { display: block; - margin: var(--uui-size-space-5, 18px) 0; + margin: var(--uui-size-space-5) 0; } `, ]; 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 ea4506aa46..3011704ef9 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,7 +1,6 @@ import { UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS } from '../../../tree/index.js'; import type { UmbMediaTypeCreateOptionsModalData } from './index.js'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { type UmbModalManagerContext, type UmbModalContext, @@ -68,8 +67,6 @@ export class UmbDataTypeCreateOptionsModalElement extends UmbLitElement { `; } - - static styles = [UmbTextStyles]; } export default UmbDataTypeCreateOptionsModalElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/manifests.ts index c3f41f2781..4ad1df2b13 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/manifests.ts @@ -1,5 +1,3 @@ -import { UmbMediaTypeDetailRepository } from './media-type-detail.repository.js'; -import { UmbMediaTypeDetailStore } from './media-type-detail.store.js'; import type { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_MEDIA_TYPE_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.MediaType.Detail'; @@ -9,14 +7,14 @@ const detailRepository: ManifestRepository = { type: 'repository', alias: UMB_MEDIA_TYPE_DETAIL_REPOSITORY_ALIAS, name: 'Media Types Repository', - api: UmbMediaTypeDetailRepository, + api: () => import('./media-type-detail.repository.js'), }; const detailStore: ManifestStore = { type: 'store', alias: UMB_MEDIA_TYPE_DETAIL_STORE_ALIAS, name: 'Media Type Store', - api: UmbMediaTypeDetailStore, + api: () => import('./media-type-detail.store.js'), }; export const manifests = [detailRepository, detailStore]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.repository.ts index e34caf2e5a..670b4ce889 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.repository.ts @@ -8,3 +8,5 @@ export class UmbMediaTypeDetailRepository extends UmbDetailRepositoryBase( 'UmbMediaTypeDetailStore', ); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/manifests.ts index 3061bd7ff8..9104a6ea9b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/manifests.ts @@ -1,5 +1,3 @@ -import { UmbMediaTypeItemRepository } from './media-type-item.repository.js'; -import { UmbMediaTypeItemStore } from './media-type-item.store.js'; import type { ManifestItemStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_MEDIA_TYPE_ITEM_REPOSITORY_ALIAS = 'Umb.Repository.MediaType.Item'; @@ -9,14 +7,14 @@ const itemRepository: ManifestRepository = { type: 'repository', alias: UMB_MEDIA_TYPE_ITEM_REPOSITORY_ALIAS, name: 'Media Type Item Repository', - api: UmbMediaTypeItemRepository, + api: () => import('./media-type-item.repository.js'), }; const itemStore: ManifestItemStore = { type: 'itemStore', alias: UMB_MEDIA_TYPE_ITEM_STORE_ALIAS, name: 'Media Type Item Store', - api: UmbMediaTypeItemStore, + api: () => import('./media-type-item.store.js'), }; export const manifests = [itemRepository, itemStore]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.repository.ts index 44ce2b78a4..f921c7f110 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.repository.ts @@ -9,3 +9,5 @@ export class UmbMediaTypeItemRepository extends UmbItemRepositoryBase('UmbMediaTypeItemStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/structure/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/structure/manifests.ts index 4477e2d654..226045a255 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/structure/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/structure/manifests.ts @@ -1,4 +1,3 @@ -import { UmbMediaTypeStructureRepository } from './media-type-structure.repository.js'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_MEDIA_TYPE_STRUCTURE_REPOSITORY_ALIAS = 'Umb.Repository.MediaType.Structure'; @@ -7,7 +6,7 @@ const structureRepository: ManifestRepository = { type: 'repository', alias: UMB_MEDIA_TYPE_STRUCTURE_REPOSITORY_ALIAS, name: 'Media Type Structure Repository', - api: UmbMediaTypeStructureRepository, + api: () => import('./media-type-structure.repository.js'), }; export const manifests = [structureRepository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/structure/media-type-structure.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/structure/media-type-structure.repository.ts index 2c27fc6ad9..0db7b421b7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/structure/media-type-structure.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/structure/media-type-structure.repository.ts @@ -8,3 +8,5 @@ export class UmbMediaTypeStructureRepository extends UmbContentTypeStructureRepo super(host, UmbMediaTypeStructureServerDataSource); } } + +export default UmbMediaTypeStructureRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/manifests.ts index 67d4bc409e..0375259772 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/manifests.ts @@ -1,5 +1,4 @@ import { UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; -import { UmbMediaTypeFolderRepository } from './media-type-folder.repository.js'; import { UmbDeleteFolderEntityAction, UmbFolderUpdateEntityAction } from '@umbraco-cms/backoffice/tree'; import type { ManifestEntityAction, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; @@ -9,7 +8,7 @@ const folderRepository: ManifestRepository = { type: 'repository', alias: UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS, name: 'Media Type Folder Repository', - api: UmbMediaTypeFolderRepository, + api: () => import('./media-type-folder.repository.js'), }; const entityActions: Array = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/media-type-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/media-type-folder.repository.ts index aec994216d..15fe2aa1b6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/media-type-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/media-type-folder.repository.ts @@ -12,6 +12,8 @@ export class UmbMediaTypeFolderRepository extends UmbFolderRepositoryBase { const folderTreeItem: UmbMediaTypeFolderTreeItemModel = { unique: folder.unique, diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts index 448ac15eba..b68b726998 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts @@ -3,8 +3,6 @@ import { UMB_MEDIA_TYPE_ROOT_ENTITY_TYPE, UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE, } from '../entity.js'; -import { UmbMediaTypeTreeRepository } from './media-type-tree.repository.js'; -import { UmbMediaTypeTreeStore } from './media-type-tree.store.js'; import { manifests as folderManifests } from './folder/manifests.js'; import { manifests as reloadTreeItemChildrenManifest } from './reload-tree-item-children/manifests.js'; import type { @@ -22,14 +20,14 @@ const treeRepository: ManifestRepository = { type: 'repository', alias: UMB_MEDIA_TYPE_TREE_REPOSITORY_ALIAS, name: 'Media Type Tree Repository', - api: UmbMediaTypeTreeRepository, + api: () => import('./media-type-tree.repository.js'), }; const treeStore: ManifestTreeStore = { type: 'treeStore', alias: UMB_MEDIA_TYPE_TREE_STORE_ALIAS, name: 'Media Type Tree Store', - api: UmbMediaTypeTreeStore, + api: () => import('./media-type-tree.store.js'), }; const tree: ManifestTree = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts index 6c485145c6..ae20ab7e9c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts @@ -26,3 +26,5 @@ export class UmbMediaTypeTreeRepository return { data }; } } + +export default UmbMediaTypeTreeRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.store.ts index 9f0f153261..30d2debb0a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.store.ts @@ -53,4 +53,6 @@ export class UmbMediaTypeTreeStore extends UmbUniqueTreeStore { }; } +export default UmbMediaTypeTreeStore; + export const UMB_MEDIA_TYPE_TREE_STORE_CONTEXT = new UmbContextToken('UmbMediaTypeTreeStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts index 1f163c5483..9df236e8cc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts @@ -1,12 +1,12 @@ import { UmbMediaTypeDetailRepository } from '../repository/detail/media-type-detail.repository.js'; import type { UmbMediaTypeDetailModel } from '../types.js'; +import { UMB_MEDIA_TYPE_ENTITY_TYPE } from '../entity.js'; import type { UmbSaveableWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; import { UmbEditableWorkspaceContextBase } from '@umbraco-cms/backoffice/workspace'; import { UmbContentTypePropertyStructureManager } from '@umbraco-cms/backoffice/content-type'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; -import { UMB_MEDIA_TYPE_ENTITY_TYPE } from '../entity.js'; type EntityType = UmbMediaTypeDetailModel; export class UmbMediaTypeWorkspaceContext 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 fb110123a1..d4afcc32cd 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 @@ -1,6 +1,5 @@ import { UmbMediaTypeWorkspaceContext } from './media-type-workspace.context.js'; import { UmbMediaTypeWorkspaceEditorElement } from './media-type-workspace-editor.element.js'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; @@ -40,8 +39,6 @@ export class UmbMediaTypeWorkspaceElement extends UmbLitElement { render() { return html``; } - - static styles = [UmbTextStyles]; } export default UmbMediaTypeWorkspaceElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/action/create-media-collection-action.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/action/create-media-collection-action.element.ts new file mode 100644 index 0000000000..b222ad2854 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/action/create-media-collection-action.element.ts @@ -0,0 +1,142 @@ +import { html, customElement, property, state, map } from '@umbraco-cms/backoffice/external/lit'; +import { UmbMediaTypeStructureRepository } from '@umbraco-cms/backoffice/media-type'; +import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; +import { UMB_DEFAULT_COLLECTION_CONTEXT } from '@umbraco-cms/backoffice/collection'; +import { UMB_MEDIA_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/media'; +import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; +import type { ManifestCollectionAction } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbAllowedMediaTypeModel } from '@umbraco-cms/backoffice/media-type'; + +@customElement('umb-create-media-collection-action') +export class UmbCreateMediaCollectionActionElement extends UmbLitElement { + @state() + private _allowedMediaTypes: Array = []; + + @state() + private _createMediaPath = ''; + + @state() + private _mediaUnique?: string; + + @state() + private _mediaTypeUnique?: string; + + @state() + private _popoverOpen = false; + + @state() + private _useInfiniteEditor = false; + + @property({ attribute: false }) + manifest?: ManifestCollectionAction; + + #mediaTypeStructureRepository = new UmbMediaTypeStructureRepository(this); + + constructor() { + super(); + + new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL) + .addAdditionalPath('media') + .onSetup(() => { + return { data: { entityType: 'media', preset: {} } }; + }) + .observeRouteBuilder((routeBuilder) => { + this._createMediaPath = routeBuilder({}); + }); + + this.consumeContext(UMB_MEDIA_WORKSPACE_CONTEXT, (workspaceContext) => { + this.observe(workspaceContext.unique, (unique) => { + this._mediaUnique = unique; + }); + this.observe(workspaceContext.contentTypeUnique, (mediaTypeUnique) => { + this._mediaTypeUnique = mediaTypeUnique; + }); + }); + + this.consumeContext(UMB_DEFAULT_COLLECTION_CONTEXT, (collectionContext) => { + this.observe(collectionContext.filter, (filter) => { + this._useInfiniteEditor = filter.useInfiniteEditor == true; + }); + }); + } + + async firstUpdated() { + this.#retrieveAllowedMediaTypesOf(this._mediaTypeUnique ?? ''); + } + + async #retrieveAllowedMediaTypesOf(unique: string | null) { + const { data } = await this.#mediaTypeStructureRepository.requestAllowedChildrenOf(unique); + if (data && data.items) { + this._allowedMediaTypes = data.items; + } + } + + // TODO: This ignorer is just neede for JSON SCHEMA TO WORK, As its not updated with latest TS jet. + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + #onPopoverToggle(event: ToggleEvent) { + this._popoverOpen = event.newState === 'open'; + } + + #getCreateUrl(item: UmbAllowedMediaTypeModel) { + // TODO: [LK] I need help with this. I don't know what the infinity editor URL should be. + return this._useInfiniteEditor + ? `${this._createMediaPath}create/${this._mediaUnique ?? 'null'}/${item.unique}` + : `section/media/workspace/media/create/${this._mediaUnique ?? 'null'}/${item.unique}`; + } + + render() { + return this._allowedMediaTypes.length !== 1 ? this.#renderDropdown() : this.#renderCreateButton(); + } + + #renderCreateButton() { + if (this._allowedMediaTypes.length !== 1) return; + + const item = this._allowedMediaTypes[0]; + const label = (this.manifest?.meta.label ?? this.localize.term('general_create')) + ' ' + item.name; + + return html``; + } + + #renderDropdown() { + if (!this._allowedMediaTypes.length) return; + + const label = this.manifest?.meta.label ?? this.localize.term('general_create'); + + return html` + + ${label} + + + + + + ${map( + this._allowedMediaTypes, + (item) => html` + + + + `, + )} + + + + `; + } +} + +export default UmbCreateMediaCollectionActionElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-create-media-collection-action': UmbCreateMediaCollectionActionElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/action/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/action/manifests.ts new file mode 100644 index 0000000000..81a0b068bd --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/action/manifests.ts @@ -0,0 +1,22 @@ +import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection'; +import type { ManifestCollectionAction } from '@umbraco-cms/backoffice/extension-registry'; + +export const createManifest: ManifestCollectionAction = { + type: 'collectionAction', + kind: 'button', + name: 'Create Media Collection Action', + alias: 'Umb.CollectionAction.Media.Create', + element: () => import('./create-media-collection-action.element.js'), + weight: 100, + meta: { + label: 'Create', + }, + conditions: [ + { + alias: UMB_COLLECTION_ALIAS_CONDITION, + match: 'Umb.Collection.Media', + }, + ], +}; + +export const manifests = [createManifest]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/manifests.ts index 39f01f8cfa..f6b1026932 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/manifests.ts @@ -1,4 +1,5 @@ import { UMB_MEDIA_COLLECTION_REPOSITORY_ALIAS } from './repository/index.js'; +import { manifests as collectionActionManifests } from './action/manifests.js'; import { manifests as collectionRepositoryManifests } from './repository/manifests.js'; import { manifests as collectionViewManifests } from './views/manifests.js'; import { UmbMediaCollectionContext } from './media-collection.context.js'; @@ -18,6 +19,7 @@ const collectionManifest: ManifestTypes = { export const manifests = [ collectionManifest, + ...collectionActionManifests, ...collectionRepositoryManifests, ...collectionViewManifests, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/media-collection-toolbar.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/media-collection-toolbar.element.ts new file mode 100644 index 0000000000..6e791e0c55 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/media-collection-toolbar.element.ts @@ -0,0 +1,61 @@ +import type { UmbMediaCollectionContext } from './media-collection.context.js'; +import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; +import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; +import { UMB_DEFAULT_COLLECTION_CONTEXT } from '@umbraco-cms/backoffice/collection'; + +@customElement('umb-media-collection-toolbar') +export class UmbMediaCollectionToolbarElement extends UmbLitElement { + #collectionContext?: UmbMediaCollectionContext; + + #inputTimer?: NodeJS.Timeout; + #inputTimerAmount = 500; + + constructor() { + super(); + + this.consumeContext(UMB_DEFAULT_COLLECTION_CONTEXT, (instance) => { + this.#collectionContext = instance as UmbMediaCollectionContext; + }); + } + + #updateSearch(event: InputEvent) { + const target = event.target as HTMLInputElement; + const filter = target.value || ''; + clearTimeout(this.#inputTimer); + this.#inputTimer = setTimeout(() => this.#collectionContext?.setFilter({ filter }), this.#inputTimerAmount); + } + + render() { + return html` + + + + `; + } + + static styles = [ + css` + :host { + height: 100%; + width: 100%; + display: flex; + justify-content: space-between; + white-space: nowrap; + gap: var(--uui-size-space-5); + align-items: center; + } + + #input-search { + width: 100%; + } + `, + ]; +} + +export default UmbMediaCollectionToolbarElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-media-collection-toolbar': UmbMediaCollectionToolbarElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/media-collection.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/media-collection.element.ts index 4c3277af0f..79ca338c7a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/media-collection.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/media-collection.element.ts @@ -1,6 +1,8 @@ import { css, customElement, html } from '@umbraco-cms/backoffice/external/lit'; import { UmbCollectionDefaultElement } from '@umbraco-cms/backoffice/collection'; +import './media-collection-toolbar.element.js'; + @customElement('umb-media-collection') export class UmbMediaCollectionElement extends UmbCollectionDefaultElement { constructor() { @@ -37,7 +39,7 @@ export class UmbMediaCollectionElement extends UmbCollectionDefaultElement { protected renderToolbar() { return html` - + import('./media-collection.repository.js'), }; export const manifests = [collectionRepositoryManifest]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/repository/media-collection.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/repository/media-collection.repository.ts index 5e50325d21..5b1df5cf8b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/repository/media-collection.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/repository/media-collection.repository.ts @@ -1,6 +1,6 @@ import type { UmbMediaCollectionFilterModel } from '../types.js'; import { UmbMediaCollectionServerDataSource } from './media-collection.server.data-source.js'; -import type { UmbCollectionRepository } from '@umbraco-cms/backoffice/repository'; +import type { UmbCollectionRepository } from '@umbraco-cms/backoffice/collection'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export class UmbMediaCollectionRepository implements UmbCollectionRepository { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/repository/media-collection.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/repository/media-collection.server.data-source.ts index 18c29e0801..3f8b3fc203 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/repository/media-collection.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection/repository/media-collection.server.data-source.ts @@ -2,7 +2,7 @@ import type { UmbMediaCollectionFilterModel, UmbMediaCollectionItemModel } from import { DirectionModel, MediaResource } from '@umbraco-cms/backoffice/external/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; import type { MediaCollectionResponseModel } from '@umbraco-cms/backoffice/external/backend-api'; -import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/collection'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export class UmbMediaCollectionServerDataSource implements UmbCollectionDataSource { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/input-image-cropper.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/input-image-cropper.element.ts index 7b6952c1c2..f4bc06e0a8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/input-image-cropper.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/input-image-cropper.element.ts @@ -1,5 +1,5 @@ import type { UmbImageCropperPropertyEditorValue } from './types.js'; -import { css, html, customElement, property, query, state } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, property, query, state } from '@umbraco-cms/backoffice/external/lit'; import './image-cropper.element.js'; import './image-cropper-focus-setter.element.js'; import './image-cropper-preview.element.js'; @@ -104,8 +104,6 @@ export class UmbInputImageCropperElement extends UmbLitElement { `; } - - static styles = css``; } declare global { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/create/media-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/create/media-create-options-modal.element.ts index d19b54bd45..34e61f3a35 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/create/media-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/create/media-create-options-modal.element.ts @@ -4,7 +4,6 @@ import type { UmbMediaCreateOptionsModalValue, } from './media-create-options-modal.token.js'; import { html, nothing, customElement, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbMediaTypeStructureRepository, type UmbAllowedMediaTypeModel } from '@umbraco-cms/backoffice/media-type'; @@ -85,8 +84,6 @@ export class UmbMediaCreateOptionsModalElement extends UmbModalBaseElement< `; } - - static styles = [UmbTextStyles]; } export default UmbMediaCreateOptionsModalElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/index.ts index f2f41d5d5a..33e13a490f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/index.ts @@ -1,11 +1,12 @@ import './components/index.js'; -export * from './repository/index.js'; -export * from './workspace/index.js'; -export * from './tracked-reference/index.js'; -export * from './user-permissions/index.js'; export * from './components/index.js'; export * from './entity.js'; +export * from './repository/index.js'; +export * from './tracked-reference/index.js'; +export * from './user-permissions/index.js'; +export * from './utils/index.js'; +export * from './workspace/index.js'; export { UMB_MEDIA_TREE_ALIAS } from './tree/index.js'; export { UMB_MEDIA_COLLECTION_ALIAS } from './collection/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/property-editor-ui-image-cropper.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/property-editor-ui-image-cropper.element.ts index 41fee2ee61..90b5cbb01e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/property-editor-ui-image-cropper.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/property-editor-ui-image-cropper.element.ts @@ -1,6 +1,5 @@ import type { UmbImageCropperPropertyEditorValue } from '../../components/index.js'; import { html, customElement, property, nothing } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import '../../components/input-image-cropper/input-image-cropper.element.js'; @@ -56,8 +55,6 @@ export class UmbPropertyEditorUIImageCropperElement extends UmbLitElement implem return html``; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUIImageCropperElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/manifests.ts index 7095dfc4ce..82c5899135 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/manifests.ts @@ -1,5 +1,3 @@ -import { UmbMediaDetailRepository } from './media-detail.repository.js'; -import { UmbMediaDetailStore } from './media-detail.store.js'; import type { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_MEDIA_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.Media.Detail'; @@ -8,7 +6,7 @@ const repository: ManifestRepository = { type: 'repository', alias: UMB_MEDIA_DETAIL_REPOSITORY_ALIAS, name: 'Media Detail Repository', - api: UmbMediaDetailRepository, + api: () => import('./media-detail.repository.js'), }; export const UMB_MEDIA_DETAIL_STORE_ALIAS = 'Umb.Store.Media.Detail'; @@ -17,7 +15,7 @@ const store: ManifestStore = { type: 'store', alias: UMB_MEDIA_DETAIL_STORE_ALIAS, name: 'Media Detail Store', - api: UmbMediaDetailStore, + api: () => import('./media-detail.store.js'), }; export const manifests = [repository, store]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/media-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/media-detail.repository.ts index f2a15cbe0d..832ca99a3c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/media-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/media-detail.repository.ts @@ -9,3 +9,5 @@ export class UmbMediaDetailRepository extends UmbDetailRepositoryBase } } +export default UmbMediaDetailStore; + export const UMB_MEDIA_DETAIL_STORE_CONTEXT = new UmbContextToken('UmbMediaDetailStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/manifests.ts index 9f7c647064..8ab7f42483 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/manifests.ts @@ -1,5 +1,3 @@ -import { UmbMediaItemStore } from './media-item.store.js'; -import { UmbMediaItemRepository } from './media-item.repository.js'; import type { ManifestRepository, ManifestItemStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_MEDIA_ITEM_REPOSITORY_ALIAS = 'Umb.Repository.MediaItem'; @@ -9,14 +7,14 @@ const itemRepository: ManifestRepository = { type: 'repository', alias: UMB_MEDIA_ITEM_REPOSITORY_ALIAS, name: 'Media Item Repository', - api: UmbMediaItemRepository, + api: () => import('./media-item.repository.js'), }; const itemStore: ManifestItemStore = { type: 'itemStore', alias: UMB_MEDIA_STORE_ALIAS, name: 'Media Item Store', - api: UmbMediaItemStore, + api: () => import('./media-item.store.js'), }; export const manifests = [itemRepository, itemStore]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.repository.ts index c52c11502f..be841f4023 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.repository.ts @@ -9,3 +9,5 @@ export class UmbMediaItemRepository extends UmbItemRepositoryBase { mediaType: { unique: item.mediaType.id, icon: item.mediaType.icon, - hasListView: item.mediaType.hasListView, + collection: item.mediaType.collection ?? undefined, }, variants: item.variants.map((variant) => { return { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.store.ts index 9d99038df8..a9276972f1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.store.ts @@ -21,4 +21,6 @@ export class UmbMediaItemStore extends UmbItemStoreBase { } } +export default UmbMediaItemStore; + export const UMB_MEDIA_ITEM_STORE_CONTEXT = new UmbContextToken('UmbMediaItemStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/types.ts index 5fdb7f35ba..a0ee7c5d4a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/types.ts @@ -1,10 +1,12 @@ +import type { UmbReferenceById } from '@umbraco-cms/backoffice/models'; + export interface UmbMediaItemModel { unique: string; isTrashed: boolean; mediaType: { unique: string; icon: string; - hasListView: boolean; + collection?: UmbReferenceById; }; variants: Array; name: string; // TODO: get correct variant name diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tracked-reference/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tracked-reference/repository/manifests.ts index 5dc13e045f..808e2429e1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tracked-reference/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tracked-reference/repository/manifests.ts @@ -1,4 +1,3 @@ -import { UmbMediaTrackedReferenceRepository } from './media-tracked-reference.repository.js'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_MEDIA_TRACKED_REFERENCE_REPOSITORY_ALIAS = 'Umb.Repository.Media.TrackedReference'; @@ -7,7 +6,7 @@ const repository: ManifestRepository = { type: 'repository', alias: UMB_MEDIA_TRACKED_REFERENCE_REPOSITORY_ALIAS, name: 'Media Tracked Reference Repository', - api: UmbMediaTrackedReferenceRepository, + api: () => import('./media-tracked-reference.repository.js'), }; export const manifests = [repository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tracked-reference/repository/media-tracked-reference.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tracked-reference/repository/media-tracked-reference.repository.ts index 268877b1a7..d8e4c84154 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tracked-reference/repository/media-tracked-reference.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tracked-reference/repository/media-tracked-reference.repository.ts @@ -35,3 +35,5 @@ export class UmbMediaTrackedReferenceRepository extends UmbBaseController { return this.#trackedReferenceSource.getTrackedReferenceItem(uniques, skip, take, filterMustBeIsDependency); } } + +export default UmbMediaTrackedReferenceRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/manifests.ts index ab1a2aabee..ec00860ebd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/manifests.ts @@ -1,6 +1,4 @@ import { UMB_MEDIA_ENTITY_TYPE, UMB_MEDIA_ROOT_ENTITY_TYPE } from '../entity.js'; -import { UmbMediaTreeRepository } from './media-tree.repository.js'; -import { UmbMediaTreeStore } from './media-tree.store.js'; import { manifests as reloadTreeItemChildrenManifests } from './reload-tree-item-children/manifests.js'; import type { ManifestRepository, @@ -17,14 +15,14 @@ const treeRepository: ManifestRepository = { type: 'repository', alias: UMB_MEDIA_TREE_REPOSITORY_ALIAS, name: 'Media Tree Repository', - api: UmbMediaTreeRepository, + api: () => import('./media-tree.repository.js'), }; const treeStore: ManifestTreeStore = { type: 'treeStore', alias: UMB_MEDIA_TREE_STORE_ALIAS, name: 'Media Tree Store', - api: UmbMediaTreeStore, + api: () => import('./media-tree.store.js'), }; const tree: ManifestTree = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.repository.ts index 2d52d72430..c9b9893e53 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.repository.ts @@ -26,3 +26,5 @@ export class UmbMediaTreeRepository return { data }; } } + +export default UmbMediaTreeRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts index e992c0628d..3929bbd4dd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts @@ -54,7 +54,7 @@ const mapper = (item: MediaTreeItemResponseModel): UmbMediaTreeItemModel => { mediaType: { unique: item.mediaType.id, icon: item.mediaType.icon, - hasListView: item.mediaType.hasListView, + collection: item.mediaType.collection ?? undefined, }, name: item.variants[0]?.name, // TODO: this is not correct. We need to get it from the variants. This is a temp solution. variants: item.variants.map((variant) => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.store.ts index 3cbf2c4a10..9bcf05593c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.store.ts @@ -42,7 +42,7 @@ export class UmbMediaTreeStore extends UmbUniqueTreeStore { hasChildren: false, variants: item.variants, isTrashed: item.isTrashed, - mediaType: { unique: item.mediaType.unique, icon: '', hasListView: false }, + mediaType: { unique: item.mediaType.unique, icon: '' }, noAccess: false, }; @@ -57,4 +57,6 @@ export class UmbMediaTreeStore extends UmbUniqueTreeStore { }; } +export default UmbMediaTreeStore; + export const UMB_MEDIA_TREE_STORE_CONTEXT = new UmbContextToken('UmbMediaTreeStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts index f6f34503ee..8a186e2b2e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts @@ -1,4 +1,5 @@ import type { UmbMediaEntityType, UmbMediaRootEntityType } from '../entity.js'; +import type { UmbReferenceById } from '@umbraco-cms/backoffice/models'; import type { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; export interface UmbMediaTreeItemModel extends UmbUniqueTreeItemModel { @@ -8,7 +9,7 @@ export interface UmbMediaTreeItemModel extends UmbUniqueTreeItemModel { mediaType: { unique: string; icon: string; - hasListView: boolean; + collection?: UmbReferenceById; }; variants: Array; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/utils/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/utils/index.ts new file mode 100644 index 0000000000..49550cabaa --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/utils/index.ts @@ -0,0 +1,124 @@ +// TODO => this is NOT a full reimplementation of the existing media helper service, currently +// contains only functions referenced by the TinyMCE editor +// TODO: This should not be done in this way, we need to split this into seperate defined helper methods. This is also very specific to TinyMCE, so should be named that way. + +import { getProcessedImageUrl } from '@umbraco-cms/backoffice/utils'; +import type { Editor } from '@umbraco-cms/backoffice/external/tinymce'; + +/** + * Sizes an image in the editor + */ +export async function sizeImageInEditor(editor: Editor, imageDomElement: HTMLElement, imgUrl?: string) { + const size = editor.dom.getSize(imageDomElement); + const maxImageSize = editor.options.get('maxImageSize'); + + if (maxImageSize && maxImageSize > 0) { + const newSize = scaleToMaxSize(maxImageSize, size.w, size.h); + + editor.dom.setAttribs(imageDomElement, { width: Math.round(newSize.width), height: Math.round(newSize.height) }); + + // Images inserted via Media Picker will have a URL we can use for ImageResizer QueryStrings + // Images pasted/dragged in are not persisted to media until saved & thus will need to be added + if (imgUrl) { + const resizedImgUrl = await getProcessedImageUrl(imgUrl, { + width: newSize.width, + height: newSize.height, + }); + + editor.dom.setAttrib(imageDomElement, 'data-mce-src', resizedImgUrl); + } + + editor.execCommand('mceAutoResize', false); + } +} + +/** + * Scales an image to the max size + */ +export function scaleToMaxSize(maxSize: number, width: number, height: number) { + const retval = { width, height }; + + const maxWidth = maxSize; // Max width for the image + const maxHeight = maxSize; // Max height for the image + let ratio = 0; // Used for aspect ratio + + // Check if the current width is larger than the max + if (width > maxWidth) { + ratio = maxWidth / width; // get ratio for scaling image + + retval.width = maxWidth; + retval.height = height * ratio; + + height = height * ratio; // Reset height to match scaled image + width = width * ratio; // Reset width to match scaled image + } + + // Check if current height is larger than max + if (height > maxHeight) { + ratio = maxHeight / height; // get ratio for scaling image + + retval.height = maxHeight; + retval.width = width * ratio; + width = width * ratio; // Reset width to match scaled image + } + + return retval; +} + +/** + * Uploads blob images to the server + */ +export async function uploadBlobImages(editor: Editor, newContent?: string) { + const content = newContent ?? editor.getContent(); + + // Upload BLOB images (dragged/pasted ones) + // find src attribute where value starts with `blob:` + // search is case-insensitive and allows single or double quotes + if (content.search(/src=["']blob:.*?["']/gi) !== -1) { + const data = await editor.uploadImages(); + // Once all images have been uploaded + data.forEach((item) => { + // Skip items that failed upload + if (item.status === false) { + return; + } + + // Select img element + const img = item.element; + + // Get img src + const imgSrc = img.getAttribute('src'); + const tmpLocation = sessionStorage.getItem(`tinymce__${imgSrc}`); + + // Select the img & add new attr which we can search for + // When its being persisted in RTE property editor + // To create a media item & delete this tmp one etc + editor.dom.setAttrib(img, 'data-tmpimg', tmpLocation); + + // Resize the image to the max size configured + // NOTE: no imagesrc passed into func as the src is blob://... + // We will append ImageResizing Querystrings on perist to DB with node save + sizeImageInEditor(editor, img); + }); + + // Get all img where src starts with blob: AND does NOT have a data=tmpimg attribute + // This is most likely seen as a duplicate image that has already been uploaded + // editor.uploadImages() does not give us any indiciation that the image been uploaded already + const blobImageWithNoTmpImgAttribute = editor.dom.select('img[src^="blob:"]:not([data-tmpimg])'); + + //For each of these selected items + blobImageWithNoTmpImgAttribute.forEach((imageElement) => { + const blobSrcUri = editor.dom.getAttrib(imageElement, 'src'); + + // Find the same image uploaded (Should be in SessionStorage) + // May already exist in the editor as duplicate image + // OR added to the RTE, deleted & re-added again + // So lets fetch the tempurl out of sessionStorage for that blob URI item + const tmpLocation = sessionStorage.getItem(`tinymce__${blobSrcUri}`); + if (tmpLocation) { + sizeImageInEditor(editor, imageElement); + editor.dom.setAttrib(imageElement, 'data-tmpimg', tmpLocation); + } + }); + } +} 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 bccb04effa..c42ea138ec 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,6 +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 { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -63,8 +62,6 @@ export class UmbMediaWorkspaceElement extends UmbLitElement { render() { return html``; } - - static styles = [UmbTextStyles]; } export default UmbMediaWorkspaceElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/section.manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/section.manifests.ts index 958db2141f..acc9e2cd6a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/section.manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/section.manifests.ts @@ -1,5 +1,5 @@ import { UMB_MEDIA_ROOT_ENTITY_TYPE, UMB_MEDIA_MENU_ALIAS } from './media/index.js'; -import type { ManifestSection, ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestSection, ManifestSectionSidebarApp } from '@umbraco-cms/backoffice/extension-registry'; const sectionAlias = 'Umb.Section.Media'; @@ -15,7 +15,7 @@ const section: ManifestSection = { conditions: [], }; -const menuSectionSidebarApp: ManifestTypes = { +const menuSectionSidebarApp: ManifestSectionSidebarApp = { type: 'sectionSidebarApp', kind: 'menuWithEntityActions', alias: 'Umb.SectionSidebarMenu.Media', diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/collection/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/collection/repository/manifests.ts index 3857fb1eaa..d5db06bf05 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/collection/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/collection/repository/manifests.ts @@ -1,4 +1,3 @@ -import { UmbMemberGroupCollectionRepository } from './member-group-collection.repository.js'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_MEMBER_GROUP_COLLECTION_REPOSITORY_ALIAS = 'Umb.Repository.MemberGroup.Collection'; @@ -7,7 +6,7 @@ const repository: ManifestRepository = { type: 'repository', alias: UMB_MEMBER_GROUP_COLLECTION_REPOSITORY_ALIAS, name: 'Member Group Collection Repository', - api: UmbMemberGroupCollectionRepository, + api: () => import('./member-group-collection.repository.js'), }; export const manifests = [repository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/collection/repository/member-group-collection.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/collection/repository/member-group-collection.repository.ts index e98edce3b7..436484d116 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/collection/repository/member-group-collection.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/collection/repository/member-group-collection.repository.ts @@ -1,7 +1,7 @@ import type { UmbMemberGroupCollectionFilterModel } from '../types.js'; import { UmbMemberGroupCollectionServerDataSource } from './member-group-collection.server.data-source.js'; import type { UmbMemberGroupCollectionDataSource } from './types.js'; -import type { UmbCollectionRepository } from '@umbraco-cms/backoffice/repository'; +import type { UmbCollectionRepository } from '@umbraco-cms/backoffice/collection'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export class UmbMemberGroupCollectionRepository implements UmbCollectionRepository { diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/collection/repository/member-group-collection.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/collection/repository/member-group-collection.server.data-source.ts index 79c5e9d2fe..cd9cefd13e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/collection/repository/member-group-collection.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/collection/repository/member-group-collection.server.data-source.ts @@ -1,7 +1,7 @@ import type { UmbMemberGroupCollectionFilterModel, UmbMemberGroupCollectionModel } from '../types.js'; import type { UmbMemberGroupDetailModel } from '../../types.js'; import { UMB_MEMBER_GROUP_ENTITY_TYPE } from '../../entity.js'; -import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/collection'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/collection/repository/types.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/collection/repository/types.ts index 547df8ec0f..e2f3fbfcb1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/collection/repository/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/collection/repository/types.ts @@ -1,5 +1,5 @@ import type { UmbMemberGroupCollectionFilterModel, UmbMemberGroupCollectionModel } from '../types.js'; -import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/collection'; export type UmbMemberGroupCollectionDataSource = UmbCollectionDataSource< UmbMemberGroupCollectionModel, diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/repository/detail/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/repository/detail/manifests.ts index 34ebee2f62..10dc0d3582 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/repository/detail/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/repository/detail/manifests.ts @@ -1,5 +1,3 @@ -import { UmbMemberGroupDetailRepository } from './member-group-detail.repository.js'; -import { UmbMemberGroupDetailStore } from './member-group-detail.store.js'; import type { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_MEMBER_GROUP_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.MemberGroup.Detail'; @@ -8,7 +6,7 @@ const repository: ManifestRepository = { type: 'repository', alias: UMB_MEMBER_GROUP_DETAIL_REPOSITORY_ALIAS, name: 'Member Group Detail Repository', - api: UmbMemberGroupDetailRepository, + api: () => import('./member-group-detail.repository.js'), }; export const UMB_MEMBER_GROUP_DETAIL_STORE_ALIAS = 'Umb.Store.MemberGroup.Detail'; @@ -17,7 +15,7 @@ const store: ManifestStore = { type: 'store', alias: UMB_MEMBER_GROUP_DETAIL_STORE_ALIAS, name: 'Member Group Detail Store', - api: UmbMemberGroupDetailStore, + api: () => import('./member-group-detail.store.js'), }; export const manifests = [repository, store]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/repository/detail/member-group-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/repository/detail/member-group-detail.repository.ts index 1d1f7a002f..174ffd9722 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/repository/detail/member-group-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/repository/detail/member-group-detail.repository.ts @@ -15,3 +15,5 @@ export class UmbMemberGroupDetailRepository extends UmbDetailRepositoryBase( 'UmbMemberGroupDetailStore', ); diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/repository/item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/repository/item/manifests.ts index 8e5fb94c0d..10af2015c4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/repository/item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/repository/item/manifests.ts @@ -1,5 +1,3 @@ -import { UmbMemberGroupItemStore } from './member-group-item.store.js'; -import { UmbMemberGroupItemRepository } from './member-group-item.repository.js'; import type { ManifestRepository, ManifestItemStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_MEMBER_GROUP_ITEM_REPOSITORY_ALIAS = 'Umb.Repository.MemberGroupItem'; @@ -9,14 +7,14 @@ const itemRepository: ManifestRepository = { type: 'repository', alias: UMB_MEMBER_GROUP_ITEM_REPOSITORY_ALIAS, name: 'Member Group Item Repository', - api: UmbMemberGroupItemRepository, + api: () => import('./member-group-item.repository.js'), }; const itemStore: ManifestItemStore = { type: 'itemStore', alias: UMB_MEMBER_GROUP_STORE_ALIAS, name: 'Member Group Item Store', - api: UmbMemberGroupItemStore, + api: () => import('./member-group-item.store.js'), }; export const manifests = [itemRepository, itemStore]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/repository/item/member-group-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/repository/item/member-group-item.repository.ts index a11f343e3e..dcdce8c1ba 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/repository/item/member-group-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/repository/item/member-group-item.repository.ts @@ -9,3 +9,5 @@ export class UmbMemberGroupItemRepository extends UmbItemRepositoryBase( 'UmbMemberGroupItemStore', ); diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/workspace/member-group-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/workspace/member-group-workspace.element.ts index 6e692777dd..65ea7f55b7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/workspace/member-group-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/workspace/member-group-workspace.element.ts @@ -1,6 +1,5 @@ import { UmbMemberGroupWorkspaceContext } from './member-group-workspace.context.js'; import { UmbMemberGroupWorkspaceEditorElement } from './member-group-workspace-editor.element.js'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -39,8 +38,6 @@ export class UmbMemberGroupWorkspaceElement extends UmbLitElement { render() { return html``; } - - static styles = [UmbTextStyles]; } export default UmbMemberGroupWorkspaceElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/repository/detail/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/repository/detail/manifests.ts index 5457a28bbb..6e1f2b4f8f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/repository/detail/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/repository/detail/manifests.ts @@ -1,5 +1,3 @@ -import { UmbMemberTypeDetailRepository } from './member-type-detail.repository.js'; -import { UmbMemberTypeDetailStore } from './member-type-detail.store.js'; import type { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_MEMBER_TYPE_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.MemberType.Detail'; @@ -8,7 +6,7 @@ const repository: ManifestRepository = { type: 'repository', alias: UMB_MEMBER_TYPE_DETAIL_REPOSITORY_ALIAS, name: 'Member Type Detail Repository', - api: UmbMemberTypeDetailRepository, + api: () => import('./member-type-detail.repository.js'), }; export const UMB_MEMBER_TYPE_DETAIL_STORE_ALIAS = 'Umb.Store.MemberType.Detail'; @@ -17,7 +15,7 @@ const store: ManifestStore = { type: 'store', alias: UMB_MEMBER_TYPE_DETAIL_STORE_ALIAS, name: 'Member Type Detail Store', - api: UmbMemberTypeDetailStore, + api: () => import('./member-type-detail.store.js'), }; export const manifests = [repository, store]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/repository/detail/member-type-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/repository/detail/member-type-detail.repository.ts index afaa1294ae..396ba9c9f7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/repository/detail/member-type-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/repository/detail/member-type-detail.repository.ts @@ -20,3 +20,5 @@ export class UmbMemberTypeDetailRepository extends UmbDetailRepositoryBase( 'UmbMemberTypeDetailStore', ); diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/repository/item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/repository/item/manifests.ts index ecdd688c56..5e888f718c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/repository/item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/repository/item/manifests.ts @@ -1,5 +1,3 @@ -import { UmbMemberTypeItemStore } from './member-type-item.store.js'; -import { UmbMemberTypeItemRepository } from './member-type-item.repository.js'; import type { ManifestRepository, ManifestItemStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_MEMBER_TYPE_ITEM_REPOSITORY_ALIAS = 'Umb.Repository.MemberTypeItem'; @@ -9,14 +7,14 @@ const itemRepository: ManifestRepository = { type: 'repository', alias: UMB_MEMBER_TYPE_ITEM_REPOSITORY_ALIAS, name: 'Member Type Item Repository', - api: UmbMemberTypeItemRepository, + api: () => import('./member-type-item.repository.js'), }; const itemStore: ManifestItemStore = { type: 'itemStore', alias: UMB_MEMBER_TYPE_STORE_ALIAS, name: 'Member Type Item Store', - api: UmbMemberTypeItemStore, + api: () => import('./member-type-item.store.js'), }; export const manifests = [itemRepository, itemStore]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/repository/item/member-type-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/repository/item/member-type-item.repository.ts index 6aa21f1493..2ad7fdc391 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/repository/item/member-type-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/repository/item/member-type-item.repository.ts @@ -9,3 +9,5 @@ export class UmbMemberTypeItemRepository extends UmbItemRepositoryBase('UmbMemberTypeItemStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/manifests.ts index 48e0de9668..eaea29ea76 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/manifests.ts @@ -17,14 +17,14 @@ const treeRepository: ManifestRepository = { type: 'repository', alias: UMB_MEMBER_TYPE_TREE_REPOSITORY_ALIAS, name: 'Member Type Tree Repository', - api: UmbMemberTypeTreeRepository, + api: () => import('./member-type-tree.repository.js'), }; const treeStore: ManifestTreeStore = { type: 'treeStore', alias: UMB_MEMBER_TYPE_TREE_STORE_ALIAS, name: 'Member Type Tree Store', - api: UmbMemberTypeTreeStore, + api: () => import('./member-type-tree.store.js'), }; const tree: ManifestTree = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/member-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/member-type-tree.repository.ts index 9defe6ff24..80d19d5ef5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/member-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/member-type-tree.repository.ts @@ -26,3 +26,5 @@ export class UmbMemberTypeTreeRepository return { data }; } } + +export default UmbMemberTypeTreeRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/member-type-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/member-type-tree.store.ts index 3b8b6cf5b7..25b67b5ff0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/member-type-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/member-type-tree.store.ts @@ -53,4 +53,6 @@ export class UmbMemberTypeTreeStore extends UmbUniqueTreeStore { }; } +export default UmbMemberTypeTreeStore; + export const UMB_MEMBER_TYPE_TREE_STORE_CONTEXT = new UmbContextToken('UmbMemberTypeTreeStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/collection/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/collection/repository/manifests.ts index 3fe6744ee3..46afba79f1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/collection/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/collection/repository/manifests.ts @@ -1,4 +1,3 @@ -import { UmbMemberCollectionRepository } from './member-collection.repository.js'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_MEMBER_COLLECTION_REPOSITORY_ALIAS = 'Umb.Repository.Member.Collection'; @@ -7,7 +6,7 @@ const repository: ManifestRepository = { type: 'repository', alias: UMB_MEMBER_COLLECTION_REPOSITORY_ALIAS, name: 'Member Collection Repository', - api: UmbMemberCollectionRepository, + api: () => import('./member-collection.repository.js'), }; export const manifests = [repository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/collection/repository/member-collection.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/collection/repository/member-collection.repository.ts index 3c87047cb2..3cf5f4de08 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/collection/repository/member-collection.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/collection/repository/member-collection.repository.ts @@ -1,7 +1,7 @@ import type { UmbMemberCollectionFilterModel } from '../types.js'; import { UmbMemberCollectionServerDataSource } from './member-collection.server.data-source.js'; import type { UmbMemberCollectionDataSource } from './types.js'; -import type { UmbCollectionRepository } from '@umbraco-cms/backoffice/repository'; +import type { UmbCollectionRepository } from '@umbraco-cms/backoffice/collection'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export class UmbMemberCollectionRepository implements UmbCollectionRepository { diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/collection/repository/member-collection.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/collection/repository/member-collection.server.data-source.ts index 6b5399cbcb..5c07640b3f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/collection/repository/member-collection.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/collection/repository/member-collection.server.data-source.ts @@ -1,7 +1,7 @@ import type { UmbMemberCollectionFilterModel, UmbMemberCollectionModel } from '../types.js'; import type { UmbMemberDetailModel } from '../../types.js'; import { UMB_MEMBER_ENTITY_TYPE } from '../../entity.js'; -import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/collection'; import { MemberResource } from '@umbraco-cms/backoffice/external/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/collection/repository/types.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/collection/repository/types.ts index 3d35f9a39a..e1b249ab1a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/collection/repository/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/collection/repository/types.ts @@ -1,6 +1,6 @@ import type { UmbMemberDetailModel } from '../../types.js'; import type { UmbMemberCollectionFilterModel } from '../types.js'; -import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/collection'; export type UmbMemberCollectionDataSource = UmbCollectionDataSource< UmbMemberDetailModel, diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/detail/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/detail/manifests.ts index dc2708241d..d53b76c45f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/detail/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/detail/manifests.ts @@ -1,5 +1,3 @@ -import { UmbMemberDetailRepository } from './member-detail.repository.js'; -import { UmbMemberDetailStore } from './member-detail.store.js'; import type { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_MEMBER_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.Member.Detail'; @@ -8,7 +6,7 @@ const repository: ManifestRepository = { type: 'repository', alias: UMB_MEMBER_DETAIL_REPOSITORY_ALIAS, name: 'Member Detail Repository', - api: UmbMemberDetailRepository, + api: () => import('./member-detail.repository.js'), }; export const UMB_MEMBER_DETAIL_STORE_ALIAS = 'Umb.Store.Member.Detail'; @@ -17,7 +15,7 @@ const store: ManifestStore = { type: 'store', alias: UMB_MEMBER_DETAIL_STORE_ALIAS, name: 'Member Detail Store', - api: UmbMemberDetailStore, + api: () => import('./member-detail.store.js'), }; export const manifests = [repository, store]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/detail/member-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/detail/member-detail.repository.ts index 1a93377110..6dd3c6bb36 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/detail/member-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/detail/member-detail.repository.ts @@ -20,3 +20,5 @@ export class UmbMemberDetailRepository extends UmbDetailRepositoryBase('UmbMemberDetailStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/item/manifests.ts index 68e70ec596..bc2eb24e9b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/item/manifests.ts @@ -1,5 +1,3 @@ -import { UmbMemberItemStore } from './member-item.store.js'; -import { UmbMemberItemRepository } from './member-item.repository.js'; import type { ManifestRepository, ManifestItemStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_MEMBER_ITEM_REPOSITORY_ALIAS = 'Umb.Repository.MemberItem'; @@ -9,14 +7,14 @@ const itemRepository: ManifestRepository = { type: 'repository', alias: UMB_MEMBER_ITEM_REPOSITORY_ALIAS, name: 'Member Item Repository', - api: UmbMemberItemRepository, + api: () => import('./member-item.repository.js'), }; const itemStore: ManifestItemStore = { type: 'itemStore', alias: UMB_MEMBER_STORE_ALIAS, name: 'Member Item Store', - api: UmbMemberItemStore, + api: () => import('./member-item.store.js'), }; export const manifests = [itemRepository, itemStore]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/item/member-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/item/member-item.repository.ts index 3fab970b99..7358a5fcba 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/item/member-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/item/member-item.repository.ts @@ -9,3 +9,5 @@ export class UmbMemberItemRepository extends UmbItemRepositoryBase { memberType: { unique: item.memberType.id, icon: item.memberType.icon, - hasListView: item.memberType.hasListView, + collection: item.memberType.collection ?? undefined, }, variants: item.variants.map((variant) => { return { diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/item/member-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/item/member-item.store.ts index 930b573de9..b058a804c3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/item/member-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/item/member-item.store.ts @@ -21,4 +21,6 @@ export class UmbMemberItemStore extends UmbItemStoreBase { } } +export default UmbMemberItemStore; + export const UMB_MEMBER_ITEM_STORE_CONTEXT = new UmbContextToken('UmbMemberItemStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/item/types.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/item/types.ts index 99290b6a08..ae7a69b0fc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/item/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/item/types.ts @@ -1,9 +1,11 @@ +import type { UmbReferenceById } from '@umbraco-cms/backoffice/models'; + export interface UmbMemberItemModel { unique: string; memberType: { unique: string; icon: string; - hasListView: boolean; + collection?: UmbReferenceById; }; variants: Array; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace.context.ts index e9c78d4540..b07049639a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace.context.ts @@ -77,7 +77,7 @@ export class UmbMemberWorkspaceContext } public destroy(): void { - console.log('destroy'); + super.destroy(); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace.element.ts index 246deba2ab..6c343b4146 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace.element.ts @@ -1,6 +1,5 @@ import { UmbMemberWorkspaceContext } from './member-workspace.context.js'; import { UmbMemberWorkspaceEditorElement } from './member-workspace-editor.element.js'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -40,8 +39,6 @@ export class UmbMemberWorkspaceElement extends UmbLitElement { render() { return html``; } - - static styles = [UmbTextStyles]; } export default UmbMemberWorkspaceElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/object-type/index.ts b/src/Umbraco.Web.UI.Client/src/packages/object-type/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/object-type/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/object-type/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/object-type/input-object-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/object-type/input-object-type.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/object-type/input-object-type.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/object-type/input-object-type.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/object-type/object-type.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/object-type/object-type.repository.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/object-type/object-type.repository.ts rename to src/Umbraco.Web.UI.Client/src/packages/object-type/object-type.repository.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/manifests.ts index e795448f7a..0f2b49d1bc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/manifests.ts @@ -1,5 +1,3 @@ -import { UmbPackageRepository } from './package.repository.js'; -import { UmbPackageStore } from './package.store.js'; import type { ManifestStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_PACKAGE_REPOSITORY_ALIAS = 'Umb.Repository.Package'; @@ -8,7 +6,7 @@ const repository: ManifestRepository = { type: 'repository', alias: UMB_PACKAGE_REPOSITORY_ALIAS, name: 'Package Repository', - api: UmbPackageRepository, + api: () => import('./package.repository.js'), }; export const UMB_PACKAGE_STORE_ALIAS = 'Umb.Store.Package'; @@ -17,7 +15,7 @@ const store: ManifestStore = { type: 'store', alias: UMB_PACKAGE_STORE_ALIAS, name: 'Package Store', - api: UmbPackageStore, + api: () => import('./package.store.js'), }; export const manifests = [store, repository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/package.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/package.repository.ts index 3c4f166346..a7c81ededd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/package.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/package.repository.ts @@ -118,3 +118,5 @@ export class UmbPackageRepository extends UmbBaseController implements UmbApi { return this.#packageStore!.migrations; } } + +export default UmbPackageRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/package.store.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/package.store.ts index 317ff7c1c9..ca12cf97e0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/package.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/package.store.ts @@ -63,3 +63,5 @@ export class UmbPackageStore extends UmbStoreBase { this.#migrations.append(migrations); } } + +export default UmbPackageStore; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/manifests.ts index 022eacf9c1..cb50bce721 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/manifests.ts @@ -1,5 +1,3 @@ -import { UmbRelationTypeRepository } from './relation-type.repository.js'; -import { UmbRelationTypeStore } from './relation-type.store.js'; import type { ManifestStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_RELATION_TYPE_REPOSITORY_ALIAS = 'Umb.Repository.RelationType'; @@ -8,7 +6,7 @@ const repository: ManifestRepository = { type: 'repository', alias: UMB_RELATION_TYPE_REPOSITORY_ALIAS, name: 'Relation Type Repository', - api: UmbRelationTypeRepository, + api: () => import('./relation-type.repository.js'), }; export const UMB_RELATION_TYPE_STORE_ALIAS = 'Umb.Store.RelationType'; @@ -17,7 +15,7 @@ const store: ManifestStore = { type: 'store', alias: UMB_RELATION_TYPE_STORE_ALIAS, name: 'Relation Type Store', - api: UmbRelationTypeStore, + api: () => import('./relation-type.store.js'), }; export const manifests = [repository, store]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.repository.ts index df1e01da6e..18a57d0fd0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.repository.ts @@ -163,3 +163,5 @@ export class UmbRelationTypeRepository extends UmbBaseController implements UmbA return { error }; } } + +export default UmbRelationTypeRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.store.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.store.ts index be06aa7656..e6f0b3dcf0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.store.ts @@ -53,3 +53,5 @@ export class UmbRelationTypeStore extends UmbStoreBase { this._data.remove(uniques); } } + +export default UmbRelationTypeStore; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/sources/relation-type.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/sources/relation-type.server.data.ts index e46c2384b3..decdbf2cf3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/sources/relation-type.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/sources/relation-type.server.data.ts @@ -1,4 +1,3 @@ -import type { UmbDataSource } from '@umbraco-cms/backoffice/repository'; import type { RelationTypeResponseModel, CreateRelationTypeRequestModel, @@ -15,10 +14,7 @@ import { UmbId } from '@umbraco-cms/backoffice/id'; * @class UmbRelationTypeServerDataSource * @implements {RepositoryDetailDataSource} */ -export class UmbRelationTypeServerDataSource - implements - UmbDataSource -{ +export class UmbRelationTypeServerDataSource { #host: UmbControllerHost; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/manifests.ts index ac87f9dc3e..56c3e6eb4f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/manifests.ts @@ -1,6 +1,4 @@ import { UMB_RELATION_TYPE_ENTITY_TYPE, UMB_RELATION_TYPE_ROOT_ENTITY_TYPE } from '../entity.js'; -import { UmbRelationTypeTreeRepository } from './relation-type-tree.repository.js'; -import { UmbRelationTypeTreeStore } from './relation-type-tree.store.js'; import { manifests as reloadTreeItemChildrenManifest } from './reload-tree-item-children/manifests.js'; import type { ManifestRepository, @@ -17,14 +15,14 @@ const treeRepository: ManifestRepository = { type: 'repository', alias: UMB_RELATION_TYPE_TREE_REPOSITORY_ALIAS, name: 'Relation Type Tree Repository', - api: UmbRelationTypeTreeRepository, + api: () => import('./relation-type-tree.repository.js'), }; const treeStore: ManifestTreeStore = { type: 'treeStore', alias: UMB_RELATION_TYPE_TREE_STORE_ALIAS, name: 'Relation Type Tree Store', - api: UmbRelationTypeTreeStore, + api: () => import('./relation-type-tree.store.js'), }; const tree: ManifestTree = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.repository.ts index 7068595cf2..73a740484e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.repository.ts @@ -27,3 +27,5 @@ export class UmbRelationTypeTreeRepository return { data }; } } + +export default UmbRelationTypeTreeRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.store.ts index afd88e9e5c..fada294fcc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.store.ts @@ -19,6 +19,8 @@ export class UmbRelationTypeTreeStore extends UmbUniqueTreeStore { } } +export default UmbRelationTypeTreeStore; + export const UMB_RELATION_TYPE_TREE_STORE_CONTEXT = new UmbContextToken( 'UmbRelationTypeTreeStore', ); diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type-workspace.element.ts index 8bcc432fe8..6892471715 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type-workspace.element.ts @@ -1,7 +1,6 @@ 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 { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbRouterSlotInitEvent, UmbRoute } from '@umbraco-cms/backoffice/router'; @@ -53,8 +52,6 @@ export class UmbRelationTypeWorkspaceElement extends UmbLitElement { this.#routerPath = event.target.absoluteRouterPath; }}>`; } - - static styles = [UmbTextStyles, css``]; } export default UmbRelationTypeWorkspaceElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/views/relation-type/relation-type-workspace-view-relation-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/views/relation-type/relation-type-workspace-view-relation-type.element.ts index ccb41338f7..9281acc4e0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/views/relation-type/relation-type-workspace-view-relation-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/views/relation-type/relation-type-workspace-view-relation-type.element.ts @@ -10,6 +10,7 @@ import { css, html, customElement, state, ifDefined } from '@umbraco-cms/backoff import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { RelationTypeResponseModel } from '@umbraco-cms/backoffice/external/backend-api'; import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import '@umbraco-cms/backoffice/object-type'; @customElement('umb-relation-type-workspace-view-relation-type') export class UmbRelationTypeWorkspaceViewRelationTypeElement extends UmbLitElement implements UmbWorkspaceViewElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/repository/manifests.ts index 4e22ef6f76..f8cd40d0ab 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/repository/manifests.ts @@ -1,4 +1,3 @@ -import { UmbRelationRepository } from './relation.repository.js'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_RELATION_REPOSITORY_ALIAS = 'Umb.Repository.Relation'; @@ -7,7 +6,7 @@ const repository: ManifestRepository = { type: 'repository', alias: UMB_RELATION_REPOSITORY_ALIAS, name: 'Relation Repository', - api: UmbRelationRepository, + api: () => import('./relation.repository.js'), }; export const manifests = [repository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/repository/relation.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/repository/relation.repository.ts index a77c3581d4..f67547563c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/repository/relation.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/repository/relation.repository.ts @@ -1,7 +1,7 @@ import { UmbRelationServerDataSource } from './sources/relation.server.data.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import type { UmbNotificationContext} from '@umbraco-cms/backoffice/notification'; +import type { UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; @@ -52,3 +52,5 @@ export class UmbRelationRepository extends UmbBaseController implements UmbApi { return { data, error }; } } + +export default UmbRelationRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/item/manifests.ts index 7dea5135f5..1d44cf8455 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/item/manifests.ts @@ -1,5 +1,3 @@ -import { UmbStaticFileItemStore } from './static-file-item.store.js'; -import { UmbStaticFileItemRepository } from './static-file-item.repository.js'; import type { ManifestRepository, ManifestItemStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_STATIC_FILE_ITEM_REPOSITORY_ALIAS = 'Umb.Repository.StaticFileItem'; @@ -9,14 +7,14 @@ const itemRepository: ManifestRepository = { type: 'repository', alias: UMB_STATIC_FILE_ITEM_REPOSITORY_ALIAS, name: 'Static File Item Repository', - api: UmbStaticFileItemRepository, + api: () => import('./static-file-item.repository.js'), }; const itemStore: ManifestItemStore = { type: 'itemStore', alias: UMB_STATIC_FILE_STORE_ALIAS, name: 'Static File Item Store', - api: UmbStaticFileItemStore, + api: () => import('./static-file-item.store.js'), }; export const manifests = [itemRepository, itemStore]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/item/static-file-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/item/static-file-item.repository.ts index 723b3793ff..e9f4adac4f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/item/static-file-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/item/static-file-item.repository.ts @@ -9,3 +9,5 @@ export class UmbStaticFileItemRepository extends UmbItemRepositoryBase('UmbStaticFileItemStore'); 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 index 8089358f13..fdbb8c36ad 100644 --- 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 @@ -3,8 +3,6 @@ import { UMB_STATIC_FILE_FOLDER_ENTITY_TYPE, UMB_STATIC_FILE_ROOT_ENTITY_TYPE, } from '../entity.js'; -import { UmbStaticFileTreeRepository } from '../tree/static-file-tree.repository.js'; -import { UmbStaticFileTreeStore } from '../tree/static-file-tree.store.js'; import type { ManifestRepository, ManifestTree, @@ -21,14 +19,14 @@ const treeRepository: ManifestRepository = { type: 'repository', alias: UMB_STATIC_FILE_TREE_REPOSITORY_ALIAS, name: 'Static File Tree Repository', - api: UmbStaticFileTreeRepository, + api: () => import('./static-file-tree.repository.js'), }; const treeStore: ManifestTreeStore = { type: 'treeStore', alias: UMB_STATIC_FILE_TREE_STORE_ALIAS, name: 'Static File Tree Store', - api: UmbStaticFileTreeStore, + api: () => import('./static-file-tree.store.js'), }; const tree: ManifestTree = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.repository.ts index f08a2287f5..7afccab991 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.repository.ts @@ -26,3 +26,5 @@ export class UmbStaticFileTreeRepository return { data }; } } + +export default UmbStaticFileTreeRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.store.ts index 3f1a2604f9..aca2e74f51 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.store.ts @@ -19,4 +19,6 @@ export class UmbStaticFileTreeStore extends UmbUniqueTreeStore { } } +export default UmbStaticFileTreeStore; + export const UMB_STATIC_FILE_TREE_STORE_CONTEXT = new UmbContextToken('UmbStaticFileTreeStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.element.ts index c1afea732c..a8461eb394 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.element.ts @@ -1,7 +1,6 @@ import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; /** @@ -18,8 +17,6 @@ export class UmbPropertyEditorUITagsStorageTypeElement extends UmbLitElement imp render() { return html`
umb-property-editor-ui-tags-storage-type
`; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUITagsStorageTypeElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.element.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.element.ts index e71867fcae..c5953eaf73 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.element.ts @@ -1,7 +1,6 @@ import type { UmbTagsInputElement } from '../../components/tags-input/tags-input.element.js'; import { UMB_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/property'; import { html, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -57,8 +56,6 @@ export class UmbPropertyEditorUITagsElement extends UmbLitElement implements Umb .items=${this.value} @change=${this._onChange}>`; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUITagsElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/repository/manifests.ts index bd34c773a3..2d328c9173 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/repository/manifests.ts @@ -1,5 +1,3 @@ -import { UmbTagRepository } from './tag.repository.js'; -import { UmbTagStore } from './tag.store.js'; import type { ManifestStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_TAG_REPOSITORY_ALIAS = 'Umb.Repository.Tags'; @@ -8,7 +6,7 @@ const repository: ManifestRepository = { type: 'repository', alias: UMB_TAG_REPOSITORY_ALIAS, name: 'Tags Repository', - api: UmbTagRepository, + api: () => import('./tag.repository.js'), }; export const UMB_TAG_STORE_ALIAS = 'Umb.Store.Tags'; @@ -17,7 +15,7 @@ const store: ManifestStore = { type: 'store', alias: UMB_TAG_STORE_ALIAS, name: 'Tags Store', - api: UmbTagStore, + api: () => import('./tag.store.js'), }; export const manifests = [repository, store]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.repository.ts index 328553a7e0..388797b20a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.repository.ts @@ -1,5 +1,5 @@ import { UmbTagServerDataSource } from './sources/tag.server.data.js'; -import type { UmbTagStore} from './tag.store.js'; +import type { UmbTagStore } from './tag.store.js'; import { UMB_TAG_STORE_CONTEXT } from './tag.store.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; @@ -60,3 +60,5 @@ export class UmbTagRepository extends UmbBaseController implements UmbApi { return this.requestTags(tagGroupName, culture, { skip, take, query }); } } + +export default UmbTagRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.store.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.store.ts index 10fd3c5607..dd2f4b2c85 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.store.ts @@ -73,3 +73,5 @@ export class UmbTagStore extends UmbStoreBase { this._data.remove(uniques); } } + +export default UmbTagStore; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts index 918ee394ba..c487f349bf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts @@ -2,8 +2,7 @@ import { UMB_PARTIAL_VIEW_FOLDER_REPOSITORY_ALIAS } from '../../../tree/folder/i import { UMB_PARTIAL_VIEW_FROM_SNIPPET_MODAL } from '../snippet-modal/create-from-snippet-modal.token.js'; import type { UmbPartialViewCreateOptionsModalData } from './index.js'; import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UMB_MODAL_MANAGER_CONTEXT, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbCreateFolderEntityAction } from '@umbraco-cms/backoffice/tree'; @@ -93,8 +92,6 @@ export class UmbPartialViewCreateOptionsModalElement extends UmbModalBaseElement `; } - - static styles = [UmbTextStyles]; } export default UmbPartialViewCreateOptionsModalElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts index 2e89a5335b..285a5e67d0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts @@ -1,6 +1,5 @@ import type { UmbCreatePartialViewFromSnippetModalData } from './create-from-snippet-modal.token.js'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; import { PartialViewResource } from '@umbraco-cms/backoffice/external/backend-api'; @@ -53,8 +52,6 @@ export class UmbPartialViewCreateFromSnippetModalElement extends UmbModalBaseEle `; } - - static styles = [UmbTextStyles, css``]; } export default UmbPartialViewCreateFromSnippetModalElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/manifests.ts index bfb7122455..d7677095e0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/manifests.ts @@ -1,5 +1,4 @@ import { UMB_PARTIAL_VIEW_ENTITY_TYPE } from '../../entity.js'; -import { UmbRenamePartialViewRepository } from './rename-partial-view.repository.js'; import { UmbRenameEntityAction } from '@umbraco-cms/backoffice/entity-action'; import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; @@ -11,7 +10,7 @@ export const manifests: Array = [ type: 'repository', alias: UMB_RENAME_PARTIAL_VIEW_REPOSITORY_ALIAS, name: 'Rename PartialView Repository', - api: UmbRenamePartialViewRepository, + api: () => import('./rename-partial-view.repository.js'), }, { type: 'entityAction', diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.repository.ts index 667bb9b4ae..96ad1f8200 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.repository.ts @@ -9,3 +9,5 @@ export class UmbRenamePartialViewRepository extends UmbRenameRepositoryBase import('./partial-view-detail.repository.js'), }; const store: ManifestStore = { type: 'store', alias: UMB_PARTIAL_VIEW_DETAIL_STORE_ALIAS, name: 'Partial View Detail Store', - api: UmbPartialViewDetailStore, + api: () => import('./partial-view-detail.store.js'), }; export const manifests = [repository, store]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.repository.ts index da36abf8c5..686f6be2b9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.repository.ts @@ -9,3 +9,5 @@ export class UmbPartialViewDetailRepository extends UmbDetailRepositoryBase( 'UmbPartialViewDetailStore', ); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/manifests.ts index c208c9aa10..31f220b973 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/manifests.ts @@ -3,8 +3,6 @@ import { UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE, UMB_PARTIAL_VIEW_ROOT_ENTITY_TYPE, } from '../entity.js'; -import { UmbPartialViewTreeRepository } from './partial-view-tree.repository.js'; -import { UmbPartialViewTreeStore } from './partial-view-tree.store.js'; import { manifests as folderManifests } from './folder/manifests.js'; import { manifests as reloadTreeItemChildrenManifest } from './reload-tree-item-children/manifests.js'; import type { @@ -22,14 +20,14 @@ const treeRepository: ManifestRepository = { type: 'repository', alias: UMB_PARTIAL_VIEW_TREE_REPOSITORY_ALIAS, name: 'Partial View Tree Repository', - api: UmbPartialViewTreeRepository, + api: () => import('./partial-view-tree.repository.js'), }; const treeStore: ManifestTreeStore = { type: 'treeStore', alias: UMB_PARTIAL_VIEW_TREE_STORE_ALIAS, name: 'Partial View Tree Store', - api: UmbPartialViewTreeStore, + api: () => import('./partial-view-tree.store.js'), }; const tree: ManifestTree = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.repository.ts index b29bc29b00..d24813369e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.repository.ts @@ -26,3 +26,5 @@ export class UmbPartialViewTreeRepository return { data }; } } + +export default UmbPartialViewTreeRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.ts index a68709a2c1..f02a69b55f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.ts @@ -54,6 +54,8 @@ export class UmbPartialViewTreeStore extends UmbUniqueTreeStore { }; } +export default UmbPartialViewTreeStore; + export const UMB_PARTIAL_VIEW_TREE_STORE_CONTEXT = new UmbContextToken( 'UmbPartialViewTreeStore', ); 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 5bc297a30c..cab1da5fba 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,7 +1,6 @@ import { UmbPartialViewWorkspaceContext } from './partial-view-workspace.context.js'; import { UmbPartialViewWorkspaceEditorElement } from './partial-view-workspace-editor.element.js'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbRoute, IRoutingInfo, PageComponent } from '@umbraco-cms/backoffice/router'; import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; @@ -56,8 +55,6 @@ export class UmbPartialViewWorkspaceElement extends UmbLitElement { render() { return html``; } - - static styles = [UmbTextStyles, css``]; } export default UmbPartialViewWorkspaceElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts index c3f4ca704f..bc99185023 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts @@ -1,8 +1,7 @@ import { UMB_SCRIPT_FOLDER_REPOSITORY_ALIAS } from '../../../tree/folder/index.js'; import type { UmbScriptCreateOptionsModalData } from './index.js'; import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UMB_MODAL_MANAGER_CONTEXT, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbCreateFolderEntityAction } from '@umbraco-cms/backoffice/tree'; @@ -68,12 +67,10 @@ export class UmbScriptCreateOptionsModalElement extends UmbModalBaseElement - Cancel + `; } - - static styles = [UmbTextStyles]; } export default UmbScriptCreateOptionsModalElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/manifests.ts index 50d3b97461..a36625d288 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/manifests.ts @@ -1,5 +1,4 @@ import { UMB_SCRIPT_ENTITY_TYPE } from '../../entity.js'; -import { UmbRenameScriptRepository } from './rename-script.repository.js'; import { UmbRenameEntityAction } from '@umbraco-cms/backoffice/entity-action'; import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; @@ -11,7 +10,7 @@ export const manifests: Array = [ type: 'repository', alias: UMB_RENAME_SCRIPT_REPOSITORY_ALIAS, name: 'Rename Script Repository', - api: UmbRenameScriptRepository, + api: () => import('./rename-script.repository.js'), }, { type: 'entityAction', diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.repository.ts index 3575cf951a..e95a45228a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.repository.ts @@ -9,3 +9,5 @@ export class UmbRenameScriptRepository extends UmbRenameRepositoryBase import('./script-detail.repository.js'), }; const store: ManifestStore = { type: 'store', alias: UMB_SCRIPT_DETAIL_STORE_ALIAS, name: 'Script Detail Store', - api: UmbScriptDetailStore, + api: () => import('./script-detail.store.js'), }; export const manifests = [repository, store]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.repository.ts index d4b5b7cb9b..0366a2990a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.repository.ts @@ -9,3 +9,5 @@ export class UmbScriptDetailRepository extends UmbDetailRepositoryBase('UmbScriptDetailStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/manifests.ts index 1288d808b2..3229be8dc1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/manifests.ts @@ -1,5 +1,4 @@ import { UMB_SCRIPT_FOLDER_ENTITY_TYPE } from '../../entity.js'; -import { UmbScriptFolderRepository } from './script-folder.repository.js'; import { UmbDeleteFolderEntityAction } from '@umbraco-cms/backoffice/tree'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; @@ -9,7 +8,7 @@ const folderRepository: ManifestRepository = { type: 'repository', alias: UMB_SCRIPT_FOLDER_REPOSITORY_ALIAS, name: 'Script Folder Repository', - api: UmbScriptFolderRepository, + api: () => import('./script-folder.repository.js'), }; export const UMB_DELETE_SCRIPT_FOLDER_ENTITY_ACTION_ALIAS = 'Umb.EntityAction.Script.Folder.Delete'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.repository.ts index 526116aeb0..bfe4f2e619 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.repository.ts @@ -12,6 +12,8 @@ export class UmbScriptFolderRepository extends UmbFolderRepositoryBase { return { unique: folder.unique, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/manifests.ts index f40ed7b3f7..f6f6c03a56 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/manifests.ts @@ -1,6 +1,4 @@ import { UMB_SCRIPT_ENTITY_TYPE, UMB_SCRIPT_FOLDER_ENTITY_TYPE, UMB_SCRIPT_ROOT_ENTITY_TYPE } from '../entity.js'; -import { UmbScriptTreeRepository } from './script-tree.repository.js'; -import { UmbScriptTreeStore } from './script-tree.store.js'; import { manifests as folderManifests } from './folder/manifests.js'; import { manifests as reloadTreeItemChildrenManifest } from './reload-tree-item-children/manifests.js'; import type { @@ -18,14 +16,14 @@ const treeRepository: ManifestRepository = { type: 'repository', alias: UMB_SCRIPT_TREE_REPOSITORY_ALIAS, name: 'Script Tree Repository', - api: UmbScriptTreeRepository, + api: () => import('./script-tree.repository.js'), }; const treeStore: ManifestTreeStore = { type: 'treeStore', alias: UMB_SCRIPT_TREE_STORE_ALIAS, name: 'Script Tree Store', - api: UmbScriptTreeStore, + api: () => import('./script-tree.store.js'), }; const tree: ManifestTree = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts index 2ba5f051fb..7e12203803 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts @@ -23,3 +23,5 @@ export class UmbScriptTreeRepository extends UmbTreeRepositoryBase('UmbScriptTreeStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts index d60c15ef7a..65e1e09b39 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts @@ -92,6 +92,7 @@ export class UmbScriptWorkspaceContext extends UmbEditableWorkspaceContextBase`; } - - static styles = [UmbTextStyles, css``]; } export default UmbScriptWorkspaceElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-ref/stylesheet-rule-ref.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-ref/stylesheet-rule-ref.element.ts index 829530fd5b..a46a610659 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-ref/stylesheet-rule-ref.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-ref/stylesheet-rule-ref.element.ts @@ -1,5 +1,5 @@ import { UUIRefNodeElement } from '@umbraco-cms/backoffice/external/uui'; -import { customElement, css } from '@umbraco-cms/backoffice/external/lit'; +import { customElement } from '@umbraco-cms/backoffice/external/lit'; /** * @element umb-stylesheet-rule-ref @@ -11,7 +11,7 @@ export class UmbStylesheetRuleRefElement extends UUIRefNodeElement { protected fallbackIcon = ''; - static styles = [...UUIRefNodeElement.styles, css``]; + static styles = [...UUIRefNodeElement.styles]; } declare global { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts index cf67c40870..d457bae5f9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts @@ -1,7 +1,6 @@ import { UMB_STYLESHEET_FOLDER_REPOSITORY_ALIAS } from '../../../tree/folder/index.js'; import type { UmbStylesheetCreateOptionsModalData } from './index.js'; import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbCreateFolderEntityAction } from '@umbraco-cms/backoffice/tree'; @@ -70,12 +69,10 @@ export class UmbStylesheetCreateOptionsModalElement extends UmbModalBaseElement< - Cancel + `; } - - static styles = [UmbTextStyles]; } export default UmbStylesheetCreateOptionsModalElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/manifests.ts index 3c9afff80d..299cdb9d68 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/manifests.ts @@ -1,5 +1,4 @@ import { UMB_STYLESHEET_ENTITY_TYPE } from '../../entity.js'; -import { UmbRenameStylesheetRepository } from './rename-stylesheet.repository.js'; import { UmbRenameEntityAction } from '@umbraco-cms/backoffice/entity-action'; import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; @@ -11,7 +10,7 @@ export const manifests: Array = [ type: 'repository', alias: UMB_RENAME_STYLESHEET_REPOSITORY_ALIAS, name: 'Rename Stylesheet Repository', - api: UmbRenameStylesheetRepository, + api: () => import('./rename-stylesheet.repository.js'), }, { type: 'entityAction', diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.repository.ts index 47ae8c6cc1..e27e309c82 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.repository.ts @@ -9,3 +9,5 @@ export class UmbRenameStylesheetRepository extends UmbRenameRepositoryBase import('./stylesheet-item.repository.js'), }; const itemStore: ManifestItemStore = { type: 'itemStore', alias: 'Umb.ItemStore.Stylesheet', name: 'Stylesheet Item Store', - api: UmbStylesheetItemStore, + api: () => import('./stylesheet-item.store.js'), }; export const manifests = [repository, itemStore]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.repository.ts index 381998f77b..73aa50c015 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.repository.ts @@ -9,3 +9,5 @@ export class UmbStylesheetItemRepository extends UmbItemRepositoryBase('UmbStylesheetItemStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts index dfd685dc14..d6647376ec 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts @@ -1,6 +1,4 @@ -import { UmbStylesheetDetailRepository } from './stylesheet-detail.repository.js'; import { manifests as itemManifests } from './item/manifests.js'; -import { UmbStylesheetDetailStore } from './stylesheet-detail.store.js'; import type { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_STYLESHEET_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.Stylesheet.Detail'; @@ -10,14 +8,14 @@ const repository: ManifestRepository = { type: 'repository', alias: UMB_STYLESHEET_DETAIL_REPOSITORY_ALIAS, name: 'Stylesheet Detail Repository', - api: UmbStylesheetDetailRepository, + api: () => import('./stylesheet-detail.repository.js'), }; const store: ManifestStore = { type: 'store', alias: UMB_STYLESHEET_DETAIL_STORE_ALIAS, name: 'Stylesheet Detail Store', - api: UmbStylesheetDetailStore, + api: () => import('./stylesheet-detail.store.js'), }; export const manifests = [repository, store, ...itemManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts index 0d163581e1..5cfe1c64bb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts @@ -9,3 +9,5 @@ export class UmbStylesheetDetailRepository extends UmbDetailRepositoryBase( 'UmbStylesheetDetailStore', ); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/manifests.ts index 7f97dac1c7..474d9e6b2e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/manifests.ts @@ -1,5 +1,4 @@ import { UMB_STYLESHEET_FOLDER_ENTITY_TYPE } from '../../entity.js'; -import { UmbStylesheetFolderRepository } from './stylesheet-folder.repository.js'; import { UmbDeleteFolderEntityAction } from '@umbraco-cms/backoffice/tree'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; @@ -9,7 +8,7 @@ const folderRepository: ManifestRepository = { type: 'repository', alias: UMB_STYLESHEET_FOLDER_REPOSITORY_ALIAS, name: 'Stylesheet Folder Repository', - api: UmbStylesheetFolderRepository, + api: () => import('./stylesheet-folder.repository.js'), }; export const UMB_DELETE_STYLESHEET_FOLDER_ENTITY_ACTION_ALIAS = 'Umb.EntityAction.Stylesheet.Folder.Delete'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.repository.ts index ddf98d132f..c8c9de8b20 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.repository.ts @@ -17,6 +17,8 @@ export class UmbStylesheetFolderRepository extends UmbFolderRepositoryBase { return { unique: folder.unique, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/manifests.ts index 43703c840f..ff7bb43b12 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/manifests.ts @@ -5,8 +5,6 @@ import { } from '../entity.js'; import { manifests as folderManifests } from './folder/manifests.js'; import { manifests as reloadTreeItemChildrenManifest } from './reload-tree-item-children/manifests.js'; -import { UmbStylesheetTreeRepository } from './stylesheet-tree.repository.js'; -import { UmbStylesheetTreeStore } from './stylesheet-tree.store.js'; import type { ManifestRepository, ManifestTree, @@ -22,14 +20,14 @@ const treeRepository: ManifestRepository = { type: 'repository', alias: UMB_STYLESHEET_TREE_REPOSITORY_ALIAS, name: 'Stylesheet Tree Repository', - api: UmbStylesheetTreeRepository, + api: () => import('./stylesheet-tree.repository.js'), }; const treeStore: ManifestTreeStore = { type: 'treeStore', alias: UMB_STYLESHEET_TREE_STORE_ALIAS, name: 'Stylesheet Tree Store', - api: UmbStylesheetTreeStore, + api: () => import('./stylesheet-tree.store.js'), }; const tree: ManifestTree = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.repository.ts index 233a0a6a33..db32e1cd83 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.repository.ts @@ -25,3 +25,5 @@ export class UmbStylesheetTreeRepository extends UmbTreeRepositoryBase< return { data }; } } + +export default UmbStylesheetTreeRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.store.ts index d47c564abb..1021e163c4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.store.ts @@ -54,4 +54,6 @@ export class UmbStylesheetTreeStore extends UmbUniqueTreeStore { }; } +export default UmbStylesheetTreeStore; + export const UMB_STYLESHEET_TREE_STORE_CONTEXT = new UmbContextToken('UmbStylesheetTreeStore'); 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 198b11c148..db895bcda6 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,7 +1,6 @@ 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 { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { IRoutingInfo, PageComponent, UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; @@ -40,8 +39,6 @@ export class UmbStylesheetWorkspaceElement extends UmbLitElement { render() { return html``; } - - static styles = [UmbTextStyles, css``]; } export default UmbStylesheetWorkspaceElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/detail/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/detail/manifests.ts index c2d44e9954..1a71f3967a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/detail/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/detail/manifests.ts @@ -1,5 +1,3 @@ -import { UmbTemplateDetailRepository } from './template-detail.repository.js'; -import { UmbTemplateDetailStore } from './template-detail.store.js'; import type { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_TEMPLATE_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.Template.Detail'; @@ -8,7 +6,7 @@ const repository: ManifestRepository = { type: 'repository', alias: UMB_TEMPLATE_DETAIL_REPOSITORY_ALIAS, name: 'Template Detail Repository', - api: UmbTemplateDetailRepository, + api: () => import('./template-detail.repository.js'), }; export const UMB_TEMPLATE_DETAIL_STORE_ALIAS = 'Umb.Store.Template.Detail'; @@ -17,7 +15,7 @@ const store: ManifestStore = { type: 'store', alias: UMB_TEMPLATE_DETAIL_STORE_ALIAS, name: 'Template Detail Store', - api: UmbTemplateDetailStore, + api: () => import('./template-detail.store.js'), }; export const manifests = [repository, store]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/detail/template-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/detail/template-detail.repository.ts index 618dfb24f4..547be72f0c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/detail/template-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/detail/template-detail.repository.ts @@ -9,3 +9,5 @@ export class UmbTemplateDetailRepository extends UmbDetailRepositoryBase('UmbTemplateDetailStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/item/manifests.ts index ffbc15dfcc..e8c305d796 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/item/manifests.ts @@ -1,5 +1,3 @@ -import { UmbTemplateItemStore } from './template-item.store.js'; -import { UmbTemplateItemRepository } from './template-item.repository.js'; import type { ManifestRepository, ManifestItemStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_TEMPLATE_ITEM_REPOSITORY_ALIAS = 'Umb.Repository.TemplateItem'; @@ -9,14 +7,14 @@ const itemRepository: ManifestRepository = { type: 'repository', alias: UMB_TEMPLATE_ITEM_REPOSITORY_ALIAS, name: 'Template Item Repository', - api: UmbTemplateItemRepository, + api: () => import('./template-item.repository.js'), }; const itemStore: ManifestItemStore = { type: 'itemStore', alias: UMB_TEMPLATE_STORE_ALIAS, name: 'Template Item Store', - api: UmbTemplateItemStore, + api: () => import('./template-item.store.js'), }; export const manifests = [itemRepository, itemStore]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/item/template-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/item/template-item.repository.ts index c86a1cf85a..88f329f8a0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/item/template-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/item/template-item.repository.ts @@ -9,3 +9,5 @@ export class UmbTemplateItemRepository extends UmbItemRepositoryBase } } +export default UmbTemplateItemStore; + export const UMB_TEMPLATE_ITEM_STORE_CONTEXT = new UmbContextToken('UmbTemplateItemStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/query/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/query/manifests.ts index 104c5d1cd1..58d6cda082 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/query/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/query/manifests.ts @@ -1,4 +1,3 @@ -import { UmbTemplateQueryRepository } from './template-query.repository.js'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_TEMPLATE_QUERY_REPOSITORY_ALIAS = 'Umb.Repository.TemplateQuery'; @@ -7,7 +6,7 @@ const queryRepository: ManifestRepository = { type: 'repository', alias: UMB_TEMPLATE_QUERY_REPOSITORY_ALIAS, name: 'Template Query Repository', - api: UmbTemplateQueryRepository, + api: () => import('./template-query.repository.js'), }; export const manifests = [queryRepository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/query/template-query.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/query/template-query.repository.ts index d1c50ebe80..9824745e41 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/query/template-query.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/query/template-query.repository.ts @@ -19,3 +19,5 @@ export class UmbTemplateQueryRepository extends UmbRepositoryBase { return this.#querySource.executeTemplateQuery(args); } } + +export default UmbTemplateQueryRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/manifests.ts index 80939b7dd6..7f582a0222 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/manifests.ts @@ -1,6 +1,4 @@ import { UMB_TEMPLATE_ENTITY_TYPE, UMB_TEMPLATE_ROOT_ENTITY_TYPE } from '../entity.js'; -import { UmbTemplateTreeRepository } from './template-tree.repository.js'; -import { UmbTemplateTreeStore } from './template-tree.store.js'; import { manifests as reloadTreeItemChildrenManifest } from './reload-tree-item-children/manifests.js'; import type { ManifestRepository, @@ -17,14 +15,14 @@ const treeRepository: ManifestRepository = { type: 'repository', alias: UMB_TEMPLATE_TREE_REPOSITORY_ALIAS, name: 'Template Tree Repository', - api: UmbTemplateTreeRepository, + api: () => import('./template-tree.repository.js'), }; const treeStore: ManifestTreeStore = { type: 'treeStore', alias: UMB_TEMPLATE_TREE_STORE_ALIAS, name: 'Template Tree Store', - api: UmbTemplateTreeStore, + api: () => import('./template-tree.store.js'), }; const tree: ManifestTree = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.repository.ts index a726147c6b..096aeee850 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.repository.ts @@ -26,3 +26,5 @@ export class UmbTemplateTreeRepository return { data }; } } + +export default UmbTemplateTreeRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.store.ts index 1e27c06d6a..f9573a15fb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.store.ts @@ -53,4 +53,6 @@ export class UmbTemplateTreeStore extends UmbUniqueTreeStore { }; } +export default UmbTemplateTreeStore; + export const UMB_TEMPLATE_TREE_STORE_CONTEXT = new UmbContextToken('UmbTemplateTreeStore'); 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 5e88ed098d..03bef8955c 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 @@ -4,7 +4,7 @@ import { UMB_TEMPLATE_QUERY_BUILDER_MODAL } from '../modals/query-builder/index. import { getQuerySnippet } from '../../utils/index.js'; import { UMB_TEMPLATE_WORKSPACE_CONTEXT } from './template-workspace.context.js'; import type { UmbCodeEditorElement } from '@umbraco-cms/backoffice/code-editor'; -import { camelCase } from '@umbraco-cms/backoffice/external/lodash'; +import { toCamelCase } from '@umbraco-cms/backoffice/utils'; import type { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, query, state, nothing, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; @@ -75,7 +75,7 @@ export class UmbTemplateWorkspaceEditorElement extends UmbLitElement { this.inputQuery$.pipe(debounceTime(250)).subscribe((nameInputValue) => { this.#templateWorkspaceContext?.setName(nameInputValue); - if (this.#isNew) this.#templateWorkspaceContext?.setAlias(camelCase(nameInputValue)); + if (this.#isNew) this.#templateWorkspaceContext?.setAlias(toCamelCase(nameInputValue)); }); }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/index.ts new file mode 100644 index 0000000000..b1439b57ca --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/index.ts @@ -0,0 +1 @@ +export * from './input-tiny-mce/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/index.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.defaults.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.defaults.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.defaults.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.defaults.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.element.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.element.ts index a7594ac3a4..084dee512b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.element.ts @@ -1,22 +1,50 @@ -import { defaultFallbackConfig } from './input-tiny-mce.defaults.js'; import { pastePreProcessHandler } from './input-tiny-mce.handlers.js'; +import { defaultFallbackConfig } from './input-tiny-mce.defaults.js'; import { availableLanguages } from './input-tiny-mce.languages.js'; import { uriAttributeSanitizer } from './input-tiny-mce.sanitizer.js'; +import type { TinyMcePluginArguments, UmbTinyMcePluginBase } from './tiny-mce-plugin.js'; +import { getProcessedImageUrl } from '@umbraco-cms/backoffice/utils'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; -import type { Editor, RawEditorOptions } from '@umbraco-cms/backoffice/external/tinymce'; -import type { TinyMcePluginArguments, UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; +import type { EditorEvent, Editor, RawEditorOptions } from '@umbraco-cms/backoffice/external/tinymce'; import { loadManifestApi } from '@umbraco-cms/backoffice/extension-api'; import { type ManifestTinyMcePlugin, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit'; import { css, customElement, html, property, query, state } from '@umbraco-cms/backoffice/external/lit'; import { firstValueFrom } from '@umbraco-cms/backoffice/external/rxjs'; -import { UmbMediaHelper } from '@umbraco-cms/backoffice/utils'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UMB_APP_CONTEXT } from '@umbraco-cms/backoffice/app'; import { UmbStylesheetDetailRepository, UmbStylesheetRuleManager } from '@umbraco-cms/backoffice/stylesheet'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; +/** + * Handles the resize event + */ +// TODO: This does somehow not belong as a utility method as it is very specific to this implementation. [NL] +async function onResize( + e: EditorEvent<{ + target: HTMLElement; + width: number; + height: number; + origin: string; + }>, +) { + const srcAttr = e.target.getAttribute('src'); + + if (!srcAttr) { + return; + } + + const path = srcAttr.split('?')[0]; + const resizedPath = await getProcessedImageUrl(path, { + width: e.width, + height: e.height, + mode: 'max', + }); + + e.target.setAttribute('data-mce-src', resizedPath); +} + @customElement('umb-input-tiny-mce') export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { @property({ attribute: false }) @@ -27,7 +55,6 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { // eslint-disable-next-line @typescript-eslint/consistent-type-imports #renderEditor?: typeof import('@umbraco-cms/backoffice/external/tinymce').renderEditor; - #mediaHelper = new UmbMediaHelper(); #plugins: Array UmbTinyMcePluginBase> = []; #editorRef?: Editor | null = null; #stylesheetRepository: UmbStylesheetDetailRepository; @@ -303,7 +330,7 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { }); editor.on('ObjectResized', (e) => { - this.#mediaHelper.onResize(e); + onResize(e); this.#onChange(editor.getContent()); }); @@ -338,7 +365,7 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { } /** - * Nothing rendered by default - TinyMCE initialisation creates + * Nothing rendered by default - TinyMCE initialization creates * a target div and binds the RTE to that element */ render() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.handlers.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.handlers.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.handlers.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.handlers.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.languages.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.languages.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.languages.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.languages.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.sanitizer.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.sanitizer.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.sanitizer.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.sanitizer.ts index 05bb1ab046..67db804042 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.sanitizer.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.sanitizer.ts @@ -1,4 +1,4 @@ -import type { AstNode, Editor } from '@umbraco-cms/backoffice/external/tinymce'; +import type { Editor } from '@umbraco-cms/backoffice/external/tinymce'; /** Setup sanitization for preventing injecting arbitrary JavaScript execution in attributes: * https://github.com/advisories/GHSA-w7jx-j77m-wp65 @@ -44,6 +44,8 @@ export const uriAttributeSanitizer = (editor: Editor) => { }; })(); + // TODO: sanitizeTinyMce is not defined in the global scope, so this will not work. Instead we need to get this setting from somewhere else: + /* if (window.Umbraco?.Sys.ServerVariables.umbracoSettings.sanitizeTinyMce) { uriAttributesToSanitize.forEach((attribute) => { editor.serializer.addAttributeFilter(attribute, (nodes: AstNode[]) => { @@ -57,4 +59,5 @@ export const uriAttributeSanitizer = (editor: Editor) => { }); }); } + */ }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/tiny-mce-plugin.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/tiny-mce-plugin.ts similarity index 89% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/tiny-mce-plugin.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/tiny-mce-plugin.ts index ca0d3ff4d0..10001238dc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/tiny-mce-plugin.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/tiny-mce-plugin.ts @@ -1,4 +1,4 @@ -import type { UmbInputTinyMceElement } from '@umbraco-cms/backoffice/components'; +import type { UmbInputTinyMceElement } from './input-tiny-mce.element.js'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; import type { Editor } from '@umbraco-cms/backoffice/external/tinymce'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/index.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/index.ts new file mode 100644 index 0000000000..8a8c2711ca --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/index.ts @@ -0,0 +1 @@ +export * from './components/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/manifests.ts new file mode 100644 index 0000000000..79e9894cd5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/manifests.ts @@ -0,0 +1,4 @@ +import { manifests as propertyEditors } from './property-editors/manifests.js'; +import { manifests as plugins } from './plugins/manifests.js'; + +export const manifests = [...propertyEditors, ...plugins]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/plugins/manifests.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/plugins/manifests.ts index c714dcbde2..56a1167d33 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/plugins/manifests.ts @@ -1,6 +1,6 @@ import type { ManifestTinyMcePlugin } from '@umbraco-cms/backoffice/extension-registry'; -const pluginManifests: Array = [ +export const manifests: Array = [ { type: 'tinyMcePlugin', alias: 'Umb.TinyMcePlugin.CodeEditor', @@ -67,5 +67,3 @@ const pluginManifests: Array = [ }, }, ]; - -export const manifests = [...pluginManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-code-editor.plugin.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/plugins/tiny-mce-code-editor.plugin.ts similarity index 79% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-code-editor.plugin.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/plugins/tiny-mce-code-editor.plugin.ts index fcf76e711a..2e3624d741 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-code-editor.plugin.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/plugins/tiny-mce-code-editor.plugin.ts @@ -1,13 +1,10 @@ -import type { TinyMcePluginArguments} from '@umbraco-cms/backoffice/components'; -import { UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; +import { type TinyMcePluginArguments, UmbTinyMcePluginBase } from '../components/input-tiny-mce/tiny-mce-plugin.js'; import type { UmbCodeEditorModalData, UmbCodeEditorModalValue, - UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; -import { - UMB_CODE_EDITOR_MODAL, - UMB_MODAL_MANAGER_CONTEXT, + UmbModalManagerContext, } from '@umbraco-cms/backoffice/modal'; +import { UMB_CODE_EDITOR_MODAL, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export default class UmbTinyMceCodeEditorPlugin extends UmbTinyMcePluginBase { #modalContext?: UmbModalManagerContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-embeddedmedia.plugin.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/plugins/tiny-mce-embeddedmedia.plugin.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-embeddedmedia.plugin.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/plugins/tiny-mce-embeddedmedia.plugin.ts index 60cc31a084..8ebe9588e2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-embeddedmedia.plugin.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/plugins/tiny-mce-embeddedmedia.plugin.ts @@ -1,13 +1,10 @@ -import type { TinyMcePluginArguments} from '@umbraco-cms/backoffice/components'; -import { UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; +import { type TinyMcePluginArguments, UmbTinyMcePluginBase } from '../components/input-tiny-mce/tiny-mce-plugin.js'; import type { UmbEmbeddedMediaModalData, UmbEmbeddedMediaModalValue, - UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; -import { - UMB_EMBEDDED_MEDIA_MODAL, - UMB_MODAL_MANAGER_CONTEXT, + UmbModalManagerContext, } from '@umbraco-cms/backoffice/modal'; +import { UMB_EMBEDDED_MEDIA_MODAL, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export default class UmbTinyMceEmbeddedMediaPlugin extends UmbTinyMcePluginBase { #modalContext?: UmbModalManagerContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-linkpicker.plugin.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/plugins/tiny-mce-linkpicker.plugin.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-linkpicker.plugin.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/plugins/tiny-mce-linkpicker.plugin.ts index b814176385..df05ce8762 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-linkpicker.plugin.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/plugins/tiny-mce-linkpicker.plugin.ts @@ -1,13 +1,6 @@ -import type { TinyMcePluginArguments} from '@umbraco-cms/backoffice/components'; -import { UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; -import type { - UmbLinkPickerModalValue, - UmbLinkPickerLink, - UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; -import { - UMB_LINK_PICKER_MODAL, - UMB_MODAL_MANAGER_CONTEXT, -} from '@umbraco-cms/backoffice/modal'; +import { type TinyMcePluginArguments, UmbTinyMcePluginBase } from '../components/input-tiny-mce/tiny-mce-plugin.js'; +import type { UmbLinkPickerModalValue, UmbLinkPickerLink, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import { UMB_LINK_PICKER_MODAL, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; type AnchorElementAttributes = { href?: string | null; @@ -193,7 +186,11 @@ export default class UmbTinyMceLinkPickerPlugin extends UmbTinyMcePluginBase { } } - if (!this.#linkPickerData?.link.url && !this.#linkPickerData?.link.queryString && !this.#linkPickerData?.link.unique) { + if ( + !this.#linkPickerData?.link.url && + !this.#linkPickerData?.link.queryString && + !this.#linkPickerData?.link.unique + ) { this.editor.execCommand('unlink'); return; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-mediapicker.plugin.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/plugins/tiny-mce-mediapicker.plugin.ts similarity index 94% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-mediapicker.plugin.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/plugins/tiny-mce-mediapicker.plugin.ts index 4a49b2c150..7efd1e61a6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-mediapicker.plugin.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/plugins/tiny-mce-mediapicker.plugin.ts @@ -1,12 +1,11 @@ -import type { TinyMcePluginArguments } from '@umbraco-cms/backoffice/components'; -import { UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; -import { UmbMediaHelper } from '@umbraco-cms/backoffice/utils'; +import { type TinyMcePluginArguments, UmbTinyMcePluginBase } from '../components/input-tiny-mce/tiny-mce-plugin.js'; import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UMB_MEDIA_TREE_PICKER_MODAL, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import type { UMB_CURRENT_USER_CONTEXT, UmbCurrentUserModel } from '@umbraco-cms/backoffice/current-user'; import type { RawEditorOptions } from '@umbraco-cms/backoffice/external/tinymce'; import { UmbTemporaryFileRepository } from '@umbraco-cms/backoffice/temporary-file'; import { UmbId } from '@umbraco-cms/backoffice/id'; +import { sizeImageInEditor, uploadBlobImages } from '@umbraco-cms/backoffice/media'; interface MediaPickerTargetData { altText?: string; @@ -26,7 +25,6 @@ interface MediaPickerResultData { } export default class UmbTinyMceMediaPickerPlugin extends UmbTinyMcePluginBase { - #mediaHelper: UmbMediaHelper; #currentUser?: UmbCurrentUserModel; #modalContext?: UmbModalManagerContext; #currentUserContext?: typeof UMB_CURRENT_USER_CONTEXT.TYPE; @@ -35,7 +33,6 @@ export default class UmbTinyMceMediaPickerPlugin extends UmbTinyMcePluginBase { constructor(args: TinyMcePluginArguments) { super(args); - this.#mediaHelper = new UmbMediaHelper(); this.#temporaryFileRepository = new UmbTemporaryFileRepository(args.host); this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (modalContext) => { @@ -79,7 +76,7 @@ export default class UmbTinyMceMediaPickerPlugin extends UmbTinyMcePluginBase { const content = e.content; // Handle images that are pasted in - this.#mediaHelper.uploadBlobImages(this.editor, content); + uploadBlobImages(this.editor, content); }); } } @@ -203,7 +200,7 @@ export default class UmbTinyMceMediaPickerPlugin extends UmbTinyMcePluginBase { // When image is loaded we are ready to call sizeImageInEditor. const onImageLoaded = () => { - this.#mediaHelper?.sizeImageInEditor(this.editor, imgElm, img.url); + sizeImageInEditor(this.editor, imgElm, img.url); this.editor.dispatch('Change'); }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/block-configuration/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/block-configuration/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/block-configuration/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/block-configuration/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/block-configuration/property-editor-ui-block-rte-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/block-configuration/property-editor-ui-block-rte-type-configuration.element.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/block-configuration/property-editor-ui-block-rte-type-configuration.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/block-configuration/property-editor-ui-block-rte-type-configuration.element.ts index b4a69e3303..8014b2e4fc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/block-configuration/property-editor-ui-block-rte-type-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/block-configuration/property-editor-ui-block-rte-type-configuration.element.ts @@ -1,9 +1,8 @@ -import type { UmbBlockTypeBaseModel } from '@umbraco-cms/backoffice/block'; -import { UmbInputBlockTypeElement } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockTypeBaseModel } from '@umbraco-cms/backoffice/block-type'; +import { UmbInputBlockTypeElement } from '@umbraco-cms/backoffice/block-type'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; /** @@ -30,8 +29,6 @@ export class UmbPropertyEditorUIBlockRteBlockConfigurationElement }}>` : ''; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUIBlockRteBlockConfigurationElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/block-configuration/property-editor-ui-block-rte-type-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/block-configuration/property-editor-ui-block-rte-type-configuration.stories.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/block-configuration/property-editor-ui-block-rte-type-configuration.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/block-configuration/property-editor-ui-block-rte-type-configuration.stories.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/block-configuration/property-editor-ui-block-rte-type-configuration.test.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/block-configuration/property-editor-ui-block-rte-type-configuration.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/block-configuration/property-editor-ui-block-rte-type-configuration.test.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/block-configuration/property-editor-ui-block-rte-type-configuration.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.stories.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.stories.ts index 2032898d18..70b2d39ad3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.stories.ts @@ -1,6 +1,6 @@ import type { Meta } from '@storybook/web-components'; import './property-editor-ui-tiny-mce-dimensions-configuration.element.js'; -import { umbDataTypeMockDb } from '../../../../../../../mocks/data/data-type/data-type.db.js'; +import { umbDataTypeMockDb } from '../../../../mocks/data/data-type/data-type.db.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; import type { UmbDataTypeDetailModel } from '@umbraco-cms/backoffice/data-type'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.test.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.test.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/manifests.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/manifests.ts index 957ae27b60..ed50bb5c09 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/manifests.ts @@ -1,7 +1,9 @@ import { manifest as blockRteTypeManifest } from './block-configuration/manifests.js'; +import { manifest as tinyMceManifest } from './tiny-mce/manifests.js'; import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -const configurationManifests: Array = [ +export const manifests: Array = [ + tinyMceManifest, blockRteTypeManifest, { type: 'propertyEditorUi', @@ -52,5 +54,3 @@ const configurationManifests: Array = [ }, }, ]; - -export const manifests = [...configurationManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.element.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.element.ts index 685646e255..cc4ce9bf4e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.element.ts @@ -1,4 +1,3 @@ -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { customElement, html, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; @@ -17,8 +16,6 @@ export class UmbPropertyEditorUITinyMceMaxImageSizeConfigurationElement render() { return html``; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUITinyMceMaxImageSizeConfigurationElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.stories.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.stories.ts index eebfff1da4..23cbc75d65 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.stories.ts @@ -1,5 +1,5 @@ import type { Meta } from '@storybook/web-components'; -import { umbDataTypeMockDb } from '../../../../../../../mocks/data/data-type/data-type.db.js'; +import { umbDataTypeMockDb } from '../../../../mocks/data/data-type/data-type.db.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; import './property-editor-ui-tiny-mce-maximagesize-configuration.element.js'; import type { UmbDataTypeDetailModel } from '@umbraco-cms/backoffice/data-type'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.test.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.test.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts index 8a27607ba5..75ecb4bc8b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts @@ -1,6 +1,5 @@ import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, customElement, html, property } from '@umbraco-cms/backoffice/external/lit'; +import { customElement, html, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UmbPropertyValueChangeEvent } from '@umbraco-cms/backoffice/property-editor'; @@ -40,8 +39,6 @@ export class UmbPropertyEditorUITinyMceStylesheetsConfigurationElement render() { return html``; } - - static styles = [UmbTextStyles, css``]; } export default UmbPropertyEditorUITinyMceStylesheetsConfigurationElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.stories.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.stories.ts index 34d650027f..92241f0526 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.stories.ts @@ -1,5 +1,5 @@ import type { Meta } from '@storybook/web-components'; -import { umbDataTypeMockDb } from '../../../../../../../mocks/data/data-type/data-type.db.js'; +import { umbDataTypeMockDb } from '../../../../mocks/data/data-type/data-type.db.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; import './property-editor-ui-tiny-mce-stylesheets-configuration.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.test.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.test.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/tiny-mce/manifests.ts similarity index 97% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/tiny-mce/manifests.ts index e88d626e9e..338f11af6a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/tiny-mce/manifests.ts @@ -1,7 +1,6 @@ -import { manifests as configuration } from './config/manifests.js'; import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -const manifest: ManifestPropertyEditorUi = { +export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.TinyMCE', name: 'Rich Text Editor Property Editor UI', @@ -242,5 +241,3 @@ const manifest: ManifestPropertyEditorUi = { }, }, }; - -export const manifests = [manifest, ...configuration]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/property-editor-ui-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/tiny-mce/property-editor-ui-tiny-mce.element.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/property-editor-ui-tiny-mce.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/tiny-mce/property-editor-ui-tiny-mce.element.ts index 904f9bf974..63c807083d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/property-editor-ui-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/tiny-mce/property-editor-ui-tiny-mce.element.ts @@ -1,4 +1,3 @@ -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -41,8 +40,6 @@ export class UmbPropertyEditorUITinyMceElement extends UmbLitElement implements .configuration=${this.#configuration} .value=${this.value?.markup ?? ''}>`; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUITinyMceElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/property-editor-ui-tiny-mce.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/tiny-mce/property-editor-ui-tiny-mce.stories.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/property-editor-ui-tiny-mce.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/tiny-mce/property-editor-ui-tiny-mce.stories.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/property-editor-ui-tiny-mce.test.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/tiny-mce/property-editor-ui-tiny-mce.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/property-editor-ui-tiny-mce.test.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/tiny-mce/property-editor-ui-tiny-mce.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.stories.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.stories.ts index 91481a5fde..bf579f4c2e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.stories.ts @@ -1,5 +1,5 @@ import type { Meta } from '@storybook/web-components'; -import { umbDataTypeMockDb } from '../../../../../../../mocks/data/data-type/data-type.db.js'; +import { umbDataTypeMockDb } from '../../../../mocks/data/data-type/data-type.db.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; import './property-editor-ui-tiny-mce-toolbar-configuration.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.test.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.test.ts rename to src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/umbraco-package.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/umbraco-package.ts new file mode 100644 index 0000000000..ba0cf8d5f2 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/umbraco-package.ts @@ -0,0 +1,9 @@ +export const name = 'Umbraco.Core.UmbracoNews'; +export const extensions = [ + { + name: 'Umbraco News Bundle', + alias: 'Umb.Bundle.TinyMce', + type: 'bundle', + js: () => import('./manifests.js'), + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user.context.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user.context.ts index b84106b75e..eab539d16a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user.context.ts @@ -63,4 +63,6 @@ export class UmbCurrentUserContext extends UmbBaseController { } } +export default UmbCurrentUserContext; + export const UMB_CURRENT_USER_CONTEXT = new UmbContextToken('UmbCurrentUserContext'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/manifests.ts index 9b279495bb..399fc1a8b7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/manifests.ts @@ -1,4 +1,3 @@ -import { UmbCurrentUserContext } from './current-user.context.js'; import { manifests as modalManifests } from './modals/manifests.js'; import { manifests as userProfileAppsManifests } from './user-profile-apps/manifests.js'; import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; @@ -14,7 +13,7 @@ export const headerApps: Array = [ type: 'globalContext', alias: 'Umb.GlobalContext.CurrentUser', name: 'Current User', - api: UmbCurrentUserContext, + api: () => import('./current-user.context.js'), }, { type: 'headerApp', diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/repository/manifests.ts index ca6754a084..ae80661dbd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/repository/manifests.ts @@ -1,4 +1,3 @@ -import { UmbCurrentUserRepository } from './current-user.repository.js'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_CURRENT_USER_REPOSITORY_ALIAS = 'Umb.Repository.CurrentUser'; @@ -7,7 +6,7 @@ const avatarRepository: ManifestRepository = { type: 'repository', alias: UMB_CURRENT_USER_REPOSITORY_ALIAS, name: 'Current User Repository', - api: UmbCurrentUserRepository, + api: () => import('./current-user.repository.js'), }; export const manifests = [avatarRepository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-external-login-providers.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-external-login-providers.element.ts index 1412866a8a..20c8a3885c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-external-login-providers.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-external-login-providers.element.ts @@ -1,4 +1,4 @@ -import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -13,7 +13,7 @@ export class UmbUserProfileAppExternalLoginProvidersElement extends UmbLitElemen `; } - static styles = [UmbTextStyles, css``]; + static styles = [UmbTextStyles]; } export default UmbUserProfileAppExternalLoginProvidersElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-profile.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-profile.element.ts index d314ef0f26..b9f053d507 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-profile.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-profile.element.ts @@ -1,5 +1,4 @@ -import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UMB_CHANGE_PASSWORD_MODAL, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; @@ -69,8 +68,6 @@ export class UmbUserProfileAppProfileElement extends UmbLitElement { `; } - - static styles = [UmbTextStyles, css``]; } export default UmbUserProfileAppProfileElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/manifests.ts index a158d4b754..a2d7dfe0e0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/manifests.ts @@ -1,4 +1,3 @@ -import { UmbUserGroupCollectionRepository } from './user-group-collection.repository.js'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_USER_GROUP_COLLECTION_REPOSITORY_ALIAS = 'Umb.Repository.UserGroupCollection'; @@ -7,7 +6,7 @@ const repository: ManifestRepository = { type: 'repository', alias: UMB_USER_GROUP_COLLECTION_REPOSITORY_ALIAS, name: 'User Group Collection Repository', - api: UmbUserGroupCollectionRepository, + api: () => import('./user-group-collection.repository.js'), }; export const manifests = [repository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.repository.ts index 154cad42b8..4139988aa9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.repository.ts @@ -3,7 +3,7 @@ import type { UmbUserGroupDetailStore } from '../../repository/index.js'; import { UMB_USER_GROUP_DETAIL_STORE_CONTEXT } from '../../repository/index.js'; import type { UmbUserGroupCollectionFilterModel } from '../types.js'; import { UmbUserGroupCollectionServerDataSource } from './user-group-collection.server.data-source.js'; -import type { UmbCollectionDataSource, UmbCollectionRepository } from '@umbraco-cms/backoffice/repository'; +import type { UmbCollectionDataSource, UmbCollectionRepository } from '@umbraco-cms/backoffice/collection'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; @@ -34,3 +34,5 @@ export class UmbUserGroupCollectionRepository extends UmbBaseController implemen return { data, error, asObservable: () => this.#detailStore!.all() }; } } + +export default UmbUserGroupCollectionRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.server.data-source.ts index fef062fbe2..bc4dedf5f7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.server.data-source.ts @@ -1,8 +1,8 @@ -import { UserGroupResource } from '@umbraco-cms/backoffice/external/backend-api'; import type { UmbUserGroupCollectionFilterModel } from '../types.js'; import type { UmbUserGroupDetailModel } from '../../types.js'; import { UMB_USER_GROUP_ENTITY_TYPE } from '../../entity.js'; -import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/repository'; +import { UserGroupResource } from '@umbraco-cms/backoffice/external/backend-api'; +import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/collection'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/entity-actions/manifests.ts index 28ac6504b8..1d6092bde5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/entity-actions/manifests.ts @@ -1,9 +1,9 @@ import { UMB_USER_GROUP_DETAIL_REPOSITORY_ALIAS } from '../repository/index.js'; import { UMB_USER_GROUP_ENTITY_TYPE } from '../index.js'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; -const entityActions: Array = [ +const entityActions: Array = [ { type: 'entityAction', alias: 'Umb.EntityAction.UserGroup.Delete', diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/modals/user-group-picker/user-group-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/modals/user-group-picker/user-group-picker-modal.element.ts index 7497404516..c0210a3ee2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/modals/user-group-picker/user-group-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/modals/user-group-picker/user-group-picker-modal.element.ts @@ -1,6 +1,5 @@ import { UmbUserGroupCollectionRepository } from '../../collection/repository/index.js'; import type { UmbUserGroupDetailModel } from '../../types.js'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { html, customElement, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbSelectionManager } from '@umbraco-cms/backoffice/utils'; import type { UMB_USER_GROUP_PICKER_MODAL } from '@umbraco-cms/backoffice/user-group'; @@ -84,8 +83,6 @@ export class UmbUserGroupPickerModalElement extends UmbModalBaseElement< `; } - - static styles = [UmbTextStyles]; } export default UmbUserGroupPickerModalElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/detail/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/detail/manifests.ts index e0964b1600..36de9495e1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/detail/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/detail/manifests.ts @@ -1,5 +1,3 @@ -import { UmbUserGroupDetailRepository } from './user-group-detail.repository.js'; -import { UmbUserGroupDetailStore } from './user-group-detail.store.js'; import type { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_USER_GROUP_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.UserGroup.Detail'; @@ -8,7 +6,7 @@ const repository: ManifestRepository = { type: 'repository', alias: UMB_USER_GROUP_DETAIL_REPOSITORY_ALIAS, name: 'User Group Detail Repository', - api: UmbUserGroupDetailRepository, + api: () => import('./user-group-detail.repository.js'), }; export const UMB_USER_GROUP_DETAIL_STORE_ALIAS = 'Umb.Store.UserGroup.Detail'; @@ -17,7 +15,7 @@ const store: ManifestStore = { type: 'store', alias: UMB_USER_GROUP_DETAIL_STORE_ALIAS, name: 'User Group Detail Store', - api: UmbUserGroupDetailStore, + api: () => import('./user-group-detail.store.js'), }; export const manifests = [repository, store]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/detail/user-group-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/detail/user-group-detail.repository.ts index 7f404eaf42..8ae18f3ef3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/detail/user-group-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/detail/user-group-detail.repository.ts @@ -9,3 +9,4 @@ export class UmbUserGroupDetailRepository extends UmbDetailRepositoryBase( 'UmbUserGroupDetailStore', ); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/item/manifests.ts index 9213a10993..26c3ac0ad1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/item/manifests.ts @@ -1,5 +1,3 @@ -import { UmbUserGroupItemStore } from './user-group-item.store.js'; -import { UmbUserGroupItemRepository } from './user-group-item.repository.js'; import type { ManifestRepository, ManifestItemStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_USER_GROUP_ITEM_REPOSITORY_ALIAS = 'Umb.Repository.UserGroupItem'; @@ -9,14 +7,14 @@ const itemRepository: ManifestRepository = { type: 'repository', alias: UMB_USER_GROUP_ITEM_REPOSITORY_ALIAS, name: 'User Group Item Repository', - api: UmbUserGroupItemRepository, + api: () => import('./user-group-item.repository.js'), }; const itemStore: ManifestItemStore = { type: 'itemStore', alias: UMB_USER_GROUP_STORE_ALIAS, name: 'User Group Item Store', - api: UmbUserGroupItemStore, + api: () => import('./user-group-item.store.js'), }; export const manifests = [itemRepository, itemStore]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/item/user-group-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/item/user-group-item.repository.ts index 7584f3b54f..0fe0583ae8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/item/user-group-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/item/user-group-item.repository.ts @@ -9,3 +9,5 @@ export class UmbUserGroupItemRepository extends UmbItemRepositoryBase('UmbUserGroupItemStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/actions/workspace-action-user-group-save.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/actions/workspace-action-user-group-save.element.ts index bd7eec6fe7..6ae4593c60 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/actions/workspace-action-user-group-save.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/actions/workspace-action-user-group-save.element.ts @@ -1,6 +1,5 @@ import { UMB_USER_WORKSPACE_CONTEXT } from '../../../user/workspace/user-workspace.context.js'; -import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @customElement('umb-workspace-action-user-group-save') @@ -40,8 +39,6 @@ export class UmbWorkspaceActionUserGroupSaveElement extends UmbLitElement { label="save" .state="${this._saveButtonState}">`; } - - static styles = [UmbTextStyles, css``]; } export default UmbWorkspaceActionUserGroupSaveElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/components/user-group-granular-permission-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/components/user-group-granular-permission-list.element.ts index 83170394d6..7a60ee742a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/components/user-group-granular-permission-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/components/user-group-granular-permission-list.element.ts @@ -1,8 +1,7 @@ import { UMB_USER_GROUP_WORKSPACE_CONTEXT } from '../user-group-workspace.context.js'; import type { UmbUserGroupDetailModel } from '../../types.js'; -import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @customElement('umb-user-group-granular-permission-list') export class UmbUserGroupGranularPermissionListElement extends UmbLitElement { @@ -23,8 +22,6 @@ export class UmbUserGroupGranularPermissionListElement extends UmbLitElement { render() { return html``; } - - static styles = [UmbTextStyles, css``]; } export default UmbUserGroupGranularPermissionListElement; 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 9a31739030..7c177995ee 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 @@ -1,6 +1,5 @@ import { UmbUserGroupWorkspaceContext } from './user-group-workspace.context.js'; import { UmbUserGroupWorkspaceEditorElement } from './user-group-workspace-editor.element.js'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; @@ -39,8 +38,6 @@ export class UmbUserGroupWorkspaceElement extends UmbLitElement { render() { return html` `; } - - static styles = [UmbTextStyles]; } export default UmbUserGroupWorkspaceElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/components/entity-user-permission-settings-list/entity-user-permission-settings-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/components/entity-user-permission-settings-list/entity-user-permission-settings-list.element.ts index 3736f28c5f..cea2f4d471 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/components/entity-user-permission-settings-list/entity-user-permission-settings-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/components/entity-user-permission-settings-list/entity-user-permission-settings-list.element.ts @@ -2,7 +2,7 @@ import type { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import { UmbSelectionChangeEvent } from '@umbraco-cms/backoffice/event'; import type { ManifestUserPermission } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; -import { css, html, customElement, property, state, nothing, ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, property, state, nothing, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import type { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; import type { UmbUserPermissionSettingElement } from '@umbraco-cms/backoffice/user'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -99,8 +99,6 @@ export class UmbEntityUserPermissionSettingsListElement extends UmbLitElement { super.disconnectedCallback(); this.#manifestObserver?.destroy(); } - - static styles = [css``]; } export default UmbEntityUserPermissionSettingsListElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/manifests.ts index b0eb080a20..5acf18ab0f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/manifests.ts @@ -2,7 +2,6 @@ import { UMB_USER_COLLECTION_REPOSITORY_ALIAS } from './repository/index.js'; import { manifests as collectionRepositoryManifests } from './repository/manifests.js'; import { manifests as collectionViewManifests } from './views/manifests.js'; import { manifests as collectionActionManifests } from './action/manifests.js'; -import { UmbUserCollectionContext } from './user-collection.context.js'; import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_USER_COLLECTION_ALIAS = 'Umb.Collection.User'; @@ -10,7 +9,7 @@ const collectionManifest: ManifestTypes = { type: 'collection', alias: UMB_USER_COLLECTION_ALIAS, name: 'User Collection', - api: UmbUserCollectionContext, + api: () => import('./user-collection.context.js'), element: () => import('./user-collection.element.js'), meta: { repositoryAlias: UMB_USER_COLLECTION_REPOSITORY_ALIAS, diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/manifests.ts index 122f7e3dee..4ee4d4728f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/manifests.ts @@ -1,4 +1,3 @@ -import { UmbUserCollectionRepository } from './user-collection.repository.js'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_USER_COLLECTION_REPOSITORY_ALIAS = 'Umb.Repository.UserCollection'; @@ -7,7 +6,7 @@ const repository: ManifestRepository = { type: 'repository', alias: UMB_USER_COLLECTION_REPOSITORY_ALIAS, name: 'User Collection Repository', - api: UmbUserCollectionRepository, + api: () => import('./user-collection.repository.js'), }; export const manifests = [repository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/types.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/types.ts index 8f7093e737..74b0522535 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/types.ts @@ -1,6 +1,6 @@ import type { UmbUserDetailModel } from '../../types.js'; import type { UmbUserCollectionFilterModel } from '../types.js'; -import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/collection'; export interface UmbUserCollectionDataSource extends UmbCollectionDataSource {} diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/user-collection.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/user-collection.repository.ts index a7d802cdb1..b5c454fe32 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/user-collection.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/user-collection.repository.ts @@ -2,7 +2,7 @@ import { UmbUserRepositoryBase } from '../../repository/user-repository-base.js' import type { UmbUserCollectionFilterModel } from '../types.js'; import { UmbUserCollectionServerDataSource } from './user-collection.server.data-source.js'; import type { UmbUserCollectionDataSource } from './types.js'; -import type { UmbCollectionRepository } from '@umbraco-cms/backoffice/repository'; +import type { UmbCollectionRepository } from '@umbraco-cms/backoffice/collection'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export class UmbUserCollectionRepository extends UmbUserRepositoryBase implements UmbCollectionRepository { @@ -25,3 +25,5 @@ export class UmbUserCollectionRepository extends UmbUserRepositoryBase implement return { data, error, asObservable: () => this.detailStore!.all() }; } } + +export default UmbUserCollectionRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/user-collection.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/user-collection.server.data-source.ts index 170ebce01c..3775ebad50 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/user-collection.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/user-collection.server.data-source.ts @@ -1,7 +1,7 @@ import type { UmbUserDetailModel } from '../../types.js'; import { UMB_USER_ENTITY_TYPE } from '../../entity.js'; import type { UmbUserCollectionFilterModel } from '../types.js'; -import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/collection'; import type { UserResponseModel } from '@umbraco-cms/backoffice/external/backend-api'; import { UserResource } from '@umbraco-cms/backoffice/external/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/user-collection.context.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/user-collection.context.ts index 3372dfba49..df289dd9b1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/user-collection.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/user-collection.context.ts @@ -40,3 +40,5 @@ export class UmbUserCollectionContext extends UmbDefaultCollectionContext< this.setFilter({ userGroupIds: selection }); } } + +export default UmbUserCollectionContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/user-collection.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/user-collection.element.ts index e407eb25b9..04c2c92d61 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/user-collection.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/user-collection.element.ts @@ -1,5 +1,4 @@ import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbCollectionDefaultElement } from '@umbraco-cms/backoffice/collection'; import './user-collection-header.element.js'; @@ -9,8 +8,6 @@ export class UmbUserCollectionElement extends UmbCollectionDefaultElement { protected renderToolbar() { return html` `; } - - static styles = [UmbTextStyles]; } export default UmbUserCollectionElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts index f8ec3c7077..7069f9f77c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts @@ -1,6 +1,5 @@ -import { css, html, customElement, property, repeat, state } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, property, repeat, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbDocumentItemModel } from '@umbraco-cms/backoffice/document'; import { UmbDocumentItemRepository } from '@umbraco-cms/backoffice/document'; @@ -42,8 +41,6 @@ export class UmbUserDocumentStartNodeElement extends UmbLitElement { }, ); } - - static styles = [UmbTextStyles, css``]; } export default UmbUserDocumentStartNodeElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts index 5d213e9186..5a6912e24c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts @@ -1,6 +1,5 @@ -import { css, html, customElement, property, repeat, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, property, repeat, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbMediaItemModel } from '@umbraco-cms/backoffice/media'; import { UmbMediaItemRepository } from '@umbraco-cms/backoffice/media'; @@ -42,8 +41,6 @@ export class UmbUserMediaStartNodeElement extends UmbLitElement { }, ); } - - static styles = [UmbTextStyles, css``]; } export default UmbUserMediaStartNodeElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/modal/resend-invite/resend-invite-to-user-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/modal/resend-invite/resend-invite-to-user-modal.element.ts index 5ebb970fed..e27068f070 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/modal/resend-invite/resend-invite-to-user-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/modal/resend-invite/resend-invite-to-user-modal.element.ts @@ -3,8 +3,7 @@ import type { UmbResendInviteToUserModalData, UmbResendInviteToUserModalValue, } from './resend-invite-to-user-modal.token.js'; -import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; @customElement('umb-resend-invite-to-user-modal') @@ -63,8 +62,6 @@ export class UmbResendInviteToUserModalElement extends UmbModalBaseElement< `; } - - static styles = [UmbTextStyles, css``]; } export default UmbResendInviteToUserModalElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/invite-user.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/invite-user.repository.ts index f2b74ab5c2..c284052330 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/invite-user.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/invite-user.repository.ts @@ -55,3 +55,5 @@ export class UmbInviteUserRepository extends UmbUserRepositoryBase { return { error }; } } + +export default UmbInviteUserRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/manifests.ts index 5032efa8e0..4bb27f2275 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/manifests.ts @@ -1,4 +1,3 @@ -import { UmbInviteUserRepository } from './invite-user.repository.js'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_INVITE_USER_REPOSITORY_ALIAS = 'Umb.Repository.User.Invite'; @@ -6,7 +5,7 @@ const inviteRepository: ManifestRepository = { type: 'repository', alias: UMB_INVITE_USER_REPOSITORY_ALIAS, name: 'Invite User Repository', - api: UmbInviteUserRepository, + api: () => import('./invite-user.repository.js'), }; export const manifests = [inviteRepository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/avatar/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/avatar/manifests.ts index 4e80387578..b45877cafe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/avatar/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/avatar/manifests.ts @@ -1,4 +1,3 @@ -import { UmbUserAvatarRepository } from './user-avatar.repository.js'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_USER_AVATAR_REPOSITORY_ALIAS = 'Umb.Repository.User.Avatar'; @@ -7,7 +6,7 @@ const avatarRepository: ManifestRepository = { type: 'repository', alias: UMB_USER_AVATAR_REPOSITORY_ALIAS, name: 'User Avatar Repository', - api: UmbUserAvatarRepository, + api: () => import('./user-avatar.repository.js'), }; export const manifests = [avatarRepository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/change-password/change-user-password.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/change-password/change-user-password.repository.ts index 6bcdaf481e..6c6792d6e4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/change-password/change-user-password.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/change-password/change-user-password.repository.ts @@ -27,3 +27,5 @@ export class UmbChangeUserPasswordRepository extends UmbUserRepositoryBase { return { data, error }; } } + +export default UmbChangeUserPasswordRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/change-password/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/change-password/manifests.ts index 471f51daf1..15c3f919b7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/change-password/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/change-password/manifests.ts @@ -1,4 +1,3 @@ -import { UmbChangeUserPasswordRepository } from './change-user-password.repository.js'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_CHANGE_USER_PASSWORD_REPOSITORY_ALIAS = 'Umb.Repository.User.ChangePassword'; @@ -7,7 +6,7 @@ const changePasswordRepository: ManifestRepository = { type: 'repository', alias: UMB_CHANGE_USER_PASSWORD_REPOSITORY_ALIAS, name: 'Change User Password Repository', - api: UmbChangeUserPasswordRepository, + api: () => import('./change-user-password.repository.js'), }; export const manifests = [changePasswordRepository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/detail/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/detail/manifests.ts index f2887d015e..ffb1eb630f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/detail/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/detail/manifests.ts @@ -1,5 +1,3 @@ -import { UmbUserDetailRepository } from './user-detail.repository.js'; -import { UmbUserDetailStore } from './user-detail.store.js'; import type { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_USER_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.User.Detail'; @@ -8,7 +6,7 @@ const repository: ManifestRepository = { type: 'repository', alias: UMB_USER_DETAIL_REPOSITORY_ALIAS, name: 'User Detail Repository', - api: UmbUserDetailRepository, + api: () => import('./user-detail.repository.js'), }; export const UMB_USER_DETAIL_STORE_ALIAS = 'Umb.Store.User.Detail'; @@ -17,7 +15,7 @@ const store: ManifestStore = { type: 'store', alias: UMB_USER_DETAIL_STORE_ALIAS, name: 'User Detail Store', - api: UmbUserDetailStore, + api: () => import('./user-detail.store.js'), }; export const manifests = [repository, store]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/detail/user-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/detail/user-detail.repository.ts index 44a307275c..0c34cdc39c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/detail/user-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/detail/user-detail.repository.ts @@ -9,3 +9,5 @@ export class UmbUserDetailRepository extends UmbDetailRepositoryBase { } } +export default UmbUserDetailStore; + export const UMB_USER_DETAIL_STORE_CONTEXT = new UmbContextToken('UmbUserDetailStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/disable/disable-user.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/disable/disable-user.repository.ts index 365159f9cb..d7c94c6beb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/disable/disable-user.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/disable/disable-user.repository.ts @@ -29,3 +29,5 @@ export class UmbDisableUserRepository extends UmbUserRepositoryBase { return { data, error }; } } + +export default UmbDisableUserRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/disable/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/disable/manifests.ts index e83bc71782..395a84d06f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/disable/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/disable/manifests.ts @@ -1,4 +1,3 @@ -import { UmbDisableUserRepository } from './disable-user.repository.js'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_DISABLE_USER_REPOSITORY_ALIAS = 'Umb.Repository.User.Disable'; @@ -6,7 +5,7 @@ const disableRepository: ManifestRepository = { type: 'repository', alias: UMB_DISABLE_USER_REPOSITORY_ALIAS, name: 'Disable User Repository', - api: UmbDisableUserRepository, + api: () => import('./disable-user.repository.js'), }; export const manifests = [disableRepository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/enable/enable-user.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/enable/enable-user.repository.ts index bf658b3ca4..2728c4807d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/enable/enable-user.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/enable/enable-user.repository.ts @@ -29,3 +29,5 @@ export class UmbEnableUserRepository extends UmbUserRepositoryBase { return { data, error }; } } + +export default UmbEnableUserRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/enable/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/enable/manifests.ts index 0a7e36d5fb..838d5bb87a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/enable/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/enable/manifests.ts @@ -1,4 +1,3 @@ -import { UmbEnableUserRepository } from './enable-user.repository.js'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_ENABLE_USER_REPOSITORY_ALIAS = 'Umb.Repository.User.Enable'; @@ -6,7 +5,7 @@ const enableRepository: ManifestRepository = { type: 'repository', alias: UMB_ENABLE_USER_REPOSITORY_ALIAS, name: 'Disable User Repository', - api: UmbEnableUserRepository, + api: () => import('./enable-user.repository.js'), }; export const manifests = [enableRepository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/manifests.ts index 38e3aa6158..347ec7d6d1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/manifests.ts @@ -1,5 +1,3 @@ -import { UmbUserItemStore } from './user-item.store.js'; -import { UmbUserItemRepository } from './user-item.repository.js'; import type { ManifestItemStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_USER_ITEM_REPOSITORY_ALIAS = 'Umb.Repository.User.Item'; @@ -9,14 +7,14 @@ const itemRepository: ManifestRepository = { type: 'repository', alias: UMB_USER_ITEM_REPOSITORY_ALIAS, name: 'User Item Repository', - api: UmbUserItemRepository, + api: () => import('./user-item.repository.js'), }; const itemStore: ManifestItemStore = { type: 'itemStore', alias: UMB_USER_ITEM_STORE_ALIAS, name: 'User Item Store', - api: UmbUserItemStore, + api: () => import('./user-item.store.js'), }; export const manifests = [itemRepository, itemStore]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.repository.ts index dfc603a51b..653660f641 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.repository.ts @@ -9,3 +9,5 @@ export class UmbUserItemRepository extends UmbItemRepositoryBase { } } +export default UmbUserItemStore; + export const UMB_USER_ITEM_STORE_CONTEXT = new UmbContextToken('UmbUserItemStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/manifests.ts index d53086fcf1..c2d302b57b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/manifests.ts @@ -1,4 +1,3 @@ -import { UmbUnlockUserRepository } from './unlock-user.repository.js'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_UNLOCK_USER_REPOSITORY_ALIAS = 'Umb.Repository.User.Unlock'; @@ -7,7 +6,7 @@ const unlockRepository: ManifestRepository = { type: 'repository', alias: UMB_UNLOCK_USER_REPOSITORY_ALIAS, name: 'Unlock User Repository', - api: UmbUnlockUserRepository, + api: () => import('./unlock-user.repository.js'), }; export const manifests = [unlockRepository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/unlock-user.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/unlock-user.repository.ts index 441e408fbf..030660eda5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/unlock-user.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/unlock-user.repository.ts @@ -29,3 +29,5 @@ export class UmbUnlockUserRepository extends UmbUserRepositoryBase { return { data, error }; } } + +export default UmbUnlockUserRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/unlock-user.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/unlock-user.server.data-source.ts index d490ca9d58..d6cc3c5d93 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/unlock-user.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/unlock-user.server.data-source.ts @@ -1,5 +1,5 @@ -import { UserResource } from '@umbraco-cms/backoffice/external/backend-api'; import type { UmbUnlockUserDataSource } from './types.js'; +import { UserResource } from '@umbraco-cms/backoffice/external/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/actions/user-workspace-action-save.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/actions/user-workspace-action-save.element.ts index 462d66cf41..4cc49d2e88 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/actions/user-workspace-action-save.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/actions/user-workspace-action-save.element.ts @@ -1,6 +1,5 @@ import { UMB_USER_WORKSPACE_CONTEXT } from '../user-workspace.context.js'; -import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @customElement('umb-user-workspace-action-save') @@ -40,8 +39,6 @@ export class UmbUserWorkspaceActionSaveElement extends UmbLitElement { label="save" .state="${this._saveButtonState}">`; } - - static styles = [UmbTextStyles, css``]; } export default UmbUserWorkspaceActionSaveElement; 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 a9bd705e27..1c5c07d81a 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 @@ -1,7 +1,6 @@ import { UmbUserWorkspaceContext } from './user-workspace.context.js'; import { UmbUserWorkspaceEditorElement } from './user-workspace-editor.element.js'; import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; @@ -25,8 +24,6 @@ export class UmbUserWorkspaceElement extends UmbLitElement { render() { return html` `; } - - static styles = [UmbTextStyles]; } export default UmbUserWorkspaceElement; diff --git a/src/Umbraco.Web.UI.Client/src/shared/resources/tryExecute.function.ts b/src/Umbraco.Web.UI.Client/src/shared/resources/tryExecute.function.ts deleted file mode 100644 index cb0882fb46..0000000000 --- a/src/Umbraco.Web.UI.Client/src/shared/resources/tryExecute.function.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { UmbResourceController } from './resource.controller.js'; - -export function tryExecute(promise: Promise) { - return UmbResourceController.tryExecute(promise); -} diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/variant-router-slot.element.ts b/src/Umbraco.Web.UI.Client/src/shared/router/variant-router-slot.element.ts deleted file mode 100644 index 7d06057627..0000000000 --- a/src/Umbraco.Web.UI.Client/src/shared/router/variant-router-slot.element.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { UmbRouterSlotElement } from './router-slot.element.js'; -import type { UmbRoute } from './route.interface.js'; -import { customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbVariantId } from '@umbraco-cms/backoffice/variant'; - -function variantIdsToString(variantIds: UmbVariantId[]): string { - return variantIds.map((id) => id.toString()).join('_&_'); -} - -/** - * @element umb-variant-router-slot-element - * @description - Component for wrapping Router Slot element, providing - * @extends UmbRouterSlotElement - * @fires {UmbRouterSlotInitEvent} init - fires when the router is connected - * @fires {UmbRouterSlotChangeEvent} change - fires when a path of this router is changed - */ -@customElement('umb-variant-router-slot') -export class UmbVariantRouterSlotElement extends UmbRouterSlotElement { - #variantIds: UmbVariantId[] = []; - - #getPathPrefix() { - return variantIdsToString(this.#variantIds); - } - - #currentPathPrefix = ''; - private _routes?: UmbRoute[]; - public get routes(): UmbRoute[] | undefined { - return this._routes; - } - public set routes(value: UmbRoute[] | undefined) { - this._routes = value; - if (this.#variantIds.length > 0) { - this._updateRoutes(); - } - } - - private _updateRoutes() { - const newPrefix = this.#getPathPrefix(); - if (newPrefix !== this.#currentPathPrefix) { - this.#currentPathPrefix = newPrefix; - const prepend = newPrefix === '' ? '' : newPrefix + '/'; - const mappedRoutes = this._routes?.map((route) => { - return { - ...route, - path: prepend + route.path, - }; - }); - super.routes = mappedRoutes; - this._updateRouterPath(); - } - } - - @property() - public get variantId(): UmbVariantId[] { - return this.#variantIds; - } - public set variantId(value: UmbVariantId[] | UmbVariantId) { - if (Array.isArray(value)) { - this.#variantIds = [...(value as UmbVariantId[])]; - } else if (value) { - this.#variantIds = [value]; - } else { - this.#variantIds = []; - } - if (this._routes) { - this._updateRoutes(); - } - } - - protected _constructAbsoluteRouterPath() { - return super._constructAbsoluteRouterPath() + (this.#currentPathPrefix !== '' ? '/' + this.#currentPathPrefix : ''); - } -} - -declare global { - interface HTMLElementTagNameMap { - 'umb-variant-router-slot': UmbVariantRouterSlotElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/component-has-manifest-property.function.ts b/src/Umbraco.Web.UI.Client/src/shared/utils/component-has-manifest-property.function.ts deleted file mode 100644 index 0316d08536..0000000000 --- a/src/Umbraco.Web.UI.Client/src/shared/utils/component-has-manifest-property.function.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { ManifestBase } from '@umbraco-cms/backoffice/extension-api'; - -export function componentHasManifestProperty( - component: HTMLElement, -): component is HTMLElement & { manifest: ManifestBase } { - return component ? 'manifest' in component : false; -} diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/index.ts b/src/Umbraco.Web.UI.Client/src/shared/utils/index.ts deleted file mode 100644 index fae5270f48..0000000000 --- a/src/Umbraco.Web.UI.Client/src/shared/utils/index.ts +++ /dev/null @@ -1,21 +0,0 @@ -export * from './component-has-manifest-property.function.js'; -export * from './diff.type.js'; -export * from './ensure-path-ends-with-slash.function.js'; -export * from './generate-umbraco-alias.function.js'; -export * from './increment-string.function.js'; -export * from './media-helper.service.js'; -export * from './pagination-manager/pagination.manager.js'; -export * from './path-decode.function.js'; -export * from './path-encode.function.js'; -export * from './path-folder-name.function.js'; -export * from './selection-manager/selection.manager.js'; -export * from './udi.js'; -export * from './umbraco-path.function.js'; -export * from './math.js'; -export * from './split-string-to-array.js'; - -declare global { - interface Window { - Umbraco: any; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/media-helper.service.ts b/src/Umbraco.Web.UI.Client/src/shared/utils/media-helper.service.ts deleted file mode 100644 index b90178f579..0000000000 --- a/src/Umbraco.Web.UI.Client/src/shared/utils/media-helper.service.ts +++ /dev/null @@ -1,167 +0,0 @@ -// TODO => this is NOT a full reimplementation of the existing media helper service, currently -// contains only functions referenced by the TinyMCE editor -// TODO: This should not be done in this way, we need to split this into seperate defined helper methods. This is also very specific to TinyMCE, so should be named that way. - -import type { Editor, EditorEvent } from '@umbraco-cms/backoffice/external/tinymce'; - -export class UmbMediaHelper { - /** - * Sizes an image in the editor - */ - async sizeImageInEditor(editor: Editor, imageDomElement: HTMLElement, imgUrl?: string) { - const size = editor.dom.getSize(imageDomElement); - const maxImageSize = editor.options.get('maxImageSize'); - - if (maxImageSize && maxImageSize > 0) { - const newSize = this.scaleToMaxSize(maxImageSize, size.w, size.h); - - editor.dom.setAttribs(imageDomElement, { width: Math.round(newSize.width), height: Math.round(newSize.height) }); - - // Images inserted via Media Picker will have a URL we can use for ImageResizer QueryStrings - // Images pasted/dragged in are not persisted to media until saved & thus will need to be added - if (imgUrl) { - const resizedImgUrl = await this.getProcessedImageUrl(imgUrl, { - width: newSize.width, - height: newSize.height, - }); - - editor.dom.setAttrib(imageDomElement, 'data-mce-src', resizedImgUrl); - } - - editor.execCommand('mceAutoResize', false); - } - } - - /** - * Scales an image to the max size - */ - scaleToMaxSize(maxSize: number, width: number, height: number) { - const retval = { width, height }; - - const maxWidth = maxSize; // Max width for the image - const maxHeight = maxSize; // Max height for the image - let ratio = 0; // Used for aspect ratio - - // Check if the current width is larger than the max - if (width > maxWidth) { - ratio = maxWidth / width; // get ratio for scaling image - - retval.width = maxWidth; - retval.height = height * ratio; - - height = height * ratio; // Reset height to match scaled image - width = width * ratio; // Reset width to match scaled image - } - - // Check if current height is larger than max - if (height > maxHeight) { - ratio = maxHeight / height; // get ratio for scaling image - - retval.height = maxHeight; - retval.width = width * ratio; - width = width * ratio; // Reset width to match scaled image - } - - return retval; - } - - /** - * Returns the URL of the processed image - */ - async getProcessedImageUrl(imagePath: string, options: any) { - if (!options) { - return imagePath; - } - - // TODO => use backend cli when available - const result = await fetch('/umbraco/management/api/v1/images/GetProcessedImageUrl'); - const url = (await result.json()) as string; - - return url; - } - - /** - * Uploads blob images to the server - */ - async uploadBlobImages(editor: Editor, newContent?: string) { - const content = newContent ?? editor.getContent(); - - // Upload BLOB images (dragged/pasted ones) - // find src attribute where value starts with `blob:` - // search is case-insensitive and allows single or double quotes - if (content.search(/src=["']blob:.*?["']/gi) !== -1) { - const data = await editor.uploadImages(); - // Once all images have been uploaded - data.forEach((item) => { - // Skip items that failed upload - if (item.status === false) { - return; - } - - // Select img element - const img = item.element; - - // Get img src - const imgSrc = img.getAttribute('src'); - const tmpLocation = sessionStorage.getItem(`tinymce__${imgSrc}`); - - // Select the img & add new attr which we can search for - // When its being persisted in RTE property editor - // To create a media item & delete this tmp one etc - editor.dom.setAttrib(img, 'data-tmpimg', tmpLocation); - - // Resize the image to the max size configured - // NOTE: no imagesrc passed into func as the src is blob://... - // We will append ImageResizing Querystrings on perist to DB with node save - this.sizeImageInEditor(editor, img); - }); - - // Get all img where src starts with blob: AND does NOT have a data=tmpimg attribute - // This is most likely seen as a duplicate image that has already been uploaded - // editor.uploadImages() does not give us any indiciation that the image been uploaded already - const blobImageWithNoTmpImgAttribute = editor.dom.select('img[src^="blob:"]:not([data-tmpimg])'); - - //For each of these selected items - blobImageWithNoTmpImgAttribute.forEach((imageElement) => { - const blobSrcUri = editor.dom.getAttrib(imageElement, 'src'); - - // Find the same image uploaded (Should be in SessionStorage) - // May already exist in the editor as duplicate image - // OR added to the RTE, deleted & re-added again - // So lets fetch the tempurl out of sessionStorage for that blob URI item - const tmpLocation = sessionStorage.getItem(`tinymce__${blobSrcUri}`); - if (tmpLocation) { - this.sizeImageInEditor(editor, imageElement); - editor.dom.setAttrib(imageElement, 'data-tmpimg', tmpLocation); - } - }); - } - } - - /** - * Handles the resize event - */ - async onResize( - e: EditorEvent<{ - target: HTMLElement; - width: number; - height: number; - origin: string; - }>, - ) { - const srcAttr = e.target.getAttribute('src'); - - if (!srcAttr) { - return; - } - - const path = srcAttr.split('?')[0]; - const resizedPath = await this.getProcessedImageUrl(path, { - width: e.width, - height: e.height, - mode: 'max', - }); - - e.target.setAttribute('data-mce-src', resizedPath); - } -} diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/path-folder-name.function.ts b/src/Umbraco.Web.UI.Client/src/shared/utils/path-folder-name.function.ts deleted file mode 100644 index b5fc256a9a..0000000000 --- a/src/Umbraco.Web.UI.Client/src/shared/utils/path-folder-name.function.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateAlias } from './generate-umbraco-alias.function.js'; - -export const pathFolderName = generateAlias; diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/udi.ts b/src/Umbraco.Web.UI.Client/src/shared/utils/udi.ts deleted file mode 100644 index a943c6b452..0000000000 --- a/src/Umbraco.Web.UI.Client/src/shared/utils/udi.ts +++ /dev/null @@ -1,23 +0,0 @@ -export function buildUdi(entityType: string, guid: string) { - return `umb://${entityType}/${guid.replace(/-/g, '')}`; -} - -export function getKeyFromUdi(udi: string) { - if (typeof udi !== 'string') { - throw 'udi is not a string'; - } - if (!udi.startsWith('umb://')) { - throw 'udi does not start with umb://'; - } - const withoutScheme = udi.substring('umb://'.length); - const withoutHost = withoutScheme.substring(withoutScheme.indexOf('/') + 1).trim(); - - if (withoutHost.length !== 32) { - throw 'udi is not 32 chars'; - } - - return `${withoutHost.substring(0, 8)}-${withoutHost.substring(8, 12)}-${withoutHost.substring( - 12, - 16, - )}-${withoutHost.substring(16, 20)}-${withoutHost.substring(20)}`; -} diff --git a/src/Umbraco.Web.UI.Client/tsconfig.json b/src/Umbraco.Web.UI.Client/tsconfig.json index 24441d9e5f..d685b5fa3d 100644 --- a/src/Umbraco.Web.UI.Client/tsconfig.json +++ b/src/Umbraco.Web.UI.Client/tsconfig.json @@ -1,240 +1,131 @@ // Don't edit this file directly. It is generated by /devops/tsconfig/index.js { - "compilerOptions": { - "module": "esnext", - "target": "ES2020", - "lib": ["es2020", "dom", "dom.iterable"], - "outDir": "./types", - "allowSyntheticDefaultImports": true, - "experimentalDecorators": true, - "forceConsistentCasingInFileNames": true, - "useDefineForClassFields": false, - "baseUrl": ".", - "incremental": true, - "skipLibCheck": true, - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "strict": true, - "noFallthroughCasesInSwitch": true, - "noImplicitReturns": true, - "paths": { - "@umbraco-cms/internal/test-utils": ["./utils/test-utils.ts"], - "@umbraco-cms/backoffice/app": ["./src/apps/app/index.ts"], - "@umbraco-cms/backoffice/class-api": ["./src/libs/class-api/index.ts"], - "@umbraco-cms/backoffice/context-api": [ - "./src/libs/context-api/index.ts" - ], - "@umbraco-cms/backoffice/controller-api": [ - "./src/libs/controller-api/index.ts" - ], - "@umbraco-cms/backoffice/element-api": [ - "./src/libs/element-api/index.ts" - ], - "@umbraco-cms/backoffice/extension-api": [ - "./src/libs/extension-api/index.ts" - ], - "@umbraco-cms/backoffice/localization-api": [ - "./src/libs/localization-api/index.ts" - ], - "@umbraco-cms/backoffice/observable-api": [ - "./src/libs/observable-api/index.ts" - ], - "@umbraco-cms/backoffice/auth": ["./src/shared/auth/index.ts"], - "@umbraco-cms/backoffice/event": ["./src/packages/core/event/index.ts"], - "@umbraco-cms/backoffice/lit-element": [ - "./src/packages/core/lit-element/index.ts" - ], - "@umbraco-cms/backoffice/icon": ["./src/shared/icon-registry/index.ts"], - "@umbraco-cms/backoffice/models": ["./src/shared/models/index.ts"], - "@umbraco-cms/backoffice/resources": ["./src/shared/resources/index.ts"], - "@umbraco-cms/backoffice/router": ["./src/shared/router/index.ts"], - "@umbraco-cms/backoffice/style": ["./src/shared/style/index.ts"], - "@umbraco-cms/backoffice/utils": ["./src/shared/utils/index.ts"], - "@umbraco-cms/backoffice/action": ["./src/packages/core/action/index.ts"], - "@umbraco-cms/backoffice/collection": [ - "./src/packages/core/collection/index.ts" - ], - "@umbraco-cms/backoffice/components": [ - "./src/packages/core/components/index.ts" - ], - "@umbraco-cms/backoffice/content-type": [ - "./src/packages/core/content-type/index.ts" - ], - "@umbraco-cms/backoffice/culture": [ - "./src/packages/core/culture/index.ts" - ], - "@umbraco-cms/backoffice/data-type": [ - "./src/packages/core/data-type/index.ts" - ], - "@umbraco-cms/backoffice/debug": ["./src/packages/core/debug/index.ts"], - "@umbraco-cms/backoffice/entity-action": [ - "./src/packages/core/entity-action/index.ts" - ], - "@umbraco-cms/backoffice/entity-bulk-action": [ - "./src/packages/core/entity-bulk-action/index.ts" - ], - "@umbraco-cms/backoffice/extension-registry": [ - "./src/packages/core/extension-registry/index.ts" - ], - "@umbraco-cms/backoffice/server-file-system": [ - "./src/packages/core/server-file-system/index.ts" - ], - "@umbraco-cms/backoffice/id": ["./src/packages/core/id/index.ts"], - "@umbraco-cms/backoffice/localization": [ - "./src/packages/core/localization/index.ts" - ], - "@umbraco-cms/backoffice/menu": ["./src/packages/core/menu/index.ts"], - "@umbraco-cms/backoffice/modal": ["./src/packages/core/modal/index.ts"], - "@umbraco-cms/backoffice/notification": [ - "./src/packages/core/notification/index.ts" - ], - "@umbraco-cms/backoffice/picker-input": [ - "./src/packages/core/picker-input/index.ts" - ], - "@umbraco-cms/backoffice/property": [ - "./src/packages/core/property/index.ts" - ], - "@umbraco-cms/backoffice/property-action": [ - "./src/packages/core/property-action/index.ts" - ], - "@umbraco-cms/backoffice/property-editor": [ - "./src/packages/core/property-editor/index.ts" - ], - "@umbraco-cms/backoffice/section": [ - "./src/packages/core/section/index.ts" - ], - "@umbraco-cms/backoffice/sorter": ["./src/packages/core/sorter/index.ts"], - "@umbraco-cms/backoffice/store": ["./src/packages/core/store/index.ts"], - "@umbraco-cms/backoffice/themes": ["./src/packages/core/themes/index.ts"], - "@umbraco-cms/backoffice/tree": ["./src/packages/core/tree/index.ts"], - "@umbraco-cms/backoffice/variant": [ - "./src/packages/core/variant/index.ts" - ], - "@umbraco-cms/backoffice/workspace": [ - "./src/packages/core/workspace/index.ts" - ], - "@umbraco-cms/backoffice/repository": [ - "./src/packages/core/repository/index.ts" - ], - "@umbraco-cms/backoffice/temporary-file": [ - "./src/packages/core/temporary-file/index.ts" - ], - "@umbraco-cms/backoffice/block": ["./src/packages/block/index.ts"], - "@umbraco-cms/backoffice/audit-log": [ - "./src/packages/audit-log/index.ts" - ], - "@umbraco-cms/backoffice/dictionary": [ - "./src/packages/dictionary/index.ts" - ], - "@umbraco-cms/backoffice/document": [ - "./src/packages/documents/documents/index.ts" - ], - "@umbraco-cms/backoffice/document-blueprint": [ - "./src/packages/documents/document-blueprints/index.ts" - ], - "@umbraco-cms/backoffice/document-type": [ - "./src/packages/documents/document-types/index.ts" - ], - "@umbraco-cms/backoffice/media": ["./src/packages/media/media/index.ts"], - "@umbraco-cms/backoffice/media-type": [ - "./src/packages/media/media-types/index.ts" - ], - "@umbraco-cms/backoffice/member": [ - "./src/packages/members/member/index.ts" - ], - "@umbraco-cms/backoffice/member-group": [ - "./src/packages/members/member-group/index.ts" - ], - "@umbraco-cms/backoffice/member-type": [ - "./src/packages/members/member-type/index.ts" - ], - "@umbraco-cms/backoffice/package": [ - "./src/packages/packages/package/index.ts" - ], - "@umbraco-cms/backoffice/language": ["./src/packages/language/index.ts"], - "@umbraco-cms/backoffice/dynamic-root": [ - "./src/packages/dynamic-root/index.ts" - ], - "@umbraco-cms/backoffice/log-viewer": [ - "./src/packages/log-viewer/index.ts" - ], - "@umbraco-cms/backoffice/relation-type": [ - "./src/packages/relations/relation-types/index.ts" - ], - "@umbraco-cms/backoffice/relations": [ - "./src/packages/relations/relations/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" - ], - "@umbraco-cms/backoffice/user-group": [ - "./src/packages/user/user-group/index.ts" - ], - "@umbraco-cms/backoffice/current-user": [ - "./src/packages/user/current-user/index.ts" - ], - "@umbraco-cms/backoffice/user": ["./src/packages/user/user/index.ts"], - "@umbraco-cms/backoffice/user-permission": [ - "./src/packages/user/user-permission/index.ts" - ], - "@umbraco-cms/backoffice/code-editor": [ - "./src/packages/templating/code-editor/index.ts" - ], - "@umbraco-cms/backoffice/external/backend-api": [ - "./src/external/backend-api/index.ts" - ], - "@umbraco-cms/backoffice/external/dompurify": [ - "./src/external/dompurify/index.ts" - ], - "@umbraco-cms/backoffice/external/lit": ["./src/external/lit/index.ts"], - "@umbraco-cms/backoffice/external/lodash": [ - "./src/external/lodash/index.ts" - ], - "@umbraco-cms/backoffice/external/marked": [ - "./src/external/marked/index.ts" - ], - "@umbraco-cms/backoffice/external/monaco-editor": [ - "./src/external/monaco-editor/index.ts" - ], - "@umbraco-cms/backoffice/external/openid": [ - "./src/external/openid/index.ts" - ], - "@umbraco-cms/backoffice/external/router-slot": [ - "./src/external/router-slot/index.ts" - ], - "@umbraco-cms/backoffice/external/rxjs": ["./src/external/rxjs/index.ts"], - "@umbraco-cms/backoffice/external/tinymce": [ - "./src/external/tinymce/index.ts" - ], - "@umbraco-cms/backoffice/external/uui": ["./src/external/uui/index.ts"], - "@umbraco-cms/backoffice/external/uuid": ["./src/external/uuid/index.ts"] - } - }, - "include": [ - "src/**/*.ts", - "apps/**/*.ts", - "e2e/**/*.ts", - "index.ts", - "storybook/stories/**/*.ts", - "examples/**/*.ts" - ], - "references": [ - { - "path": "./tsconfig.node.json" - } - ] + "compilerOptions": { + "module": "esnext", + "target": "ES2020", + "lib": ["es2020", "dom", "dom.iterable"], + "outDir": "./types", + "allowSyntheticDefaultImports": true, + "experimentalDecorators": true, + "forceConsistentCasingInFileNames": true, + "useDefineForClassFields": false, + "baseUrl": ".", + "incremental": true, + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "strict": true, + "noFallthroughCasesInSwitch": true, + "noImplicitReturns": true, + "paths": { + "@umbraco-cms/internal/test-utils": ["./utils/test-utils.ts"], + "@umbraco-cms/backoffice/app": ["./src/apps/app/index.ts"], + "@umbraco-cms/backoffice/class-api": ["./src/libs/class-api/index.ts"], + "@umbraco-cms/backoffice/context-api": ["./src/libs/context-api/index.ts"], + "@umbraco-cms/backoffice/controller-api": ["./src/libs/controller-api/index.ts"], + "@umbraco-cms/backoffice/element-api": ["./src/libs/element-api/index.ts"], + "@umbraco-cms/backoffice/extension-api": ["./src/libs/extension-api/index.ts"], + "@umbraco-cms/backoffice/localization-api": ["./src/libs/localization-api/index.ts"], + "@umbraco-cms/backoffice/observable-api": ["./src/libs/observable-api/index.ts"], + "@umbraco-cms/backoffice/action": ["./src/packages/core/action/index.ts"], + "@umbraco-cms/backoffice/audit-log": ["./src/packages/audit-log/index.ts"], + "@umbraco-cms/backoffice/auth": ["./src/packages/core/auth/index.ts"], + "@umbraco-cms/backoffice/block-grid": ["./src/packages/block/block-grid/index.ts"], + "@umbraco-cms/backoffice/block-list": ["./src/packages/block/block-list/index.ts"], + "@umbraco-cms/backoffice/block-rte": ["./src/packages/block/block-rte/index.ts"], + "@umbraco-cms/backoffice/block-type": ["./src/packages/block/block-type/index.ts"], + "@umbraco-cms/backoffice/block": ["./src/packages/block/block/index.ts"], + "@umbraco-cms/backoffice/code-editor": ["./src/packages/templating/code-editor/index.ts"], + "@umbraco-cms/backoffice/collection": ["./src/packages/core/collection/index.ts"], + "@umbraco-cms/backoffice/components": ["./src/packages/core/components/index.ts"], + "@umbraco-cms/backoffice/content-type": ["./src/packages/core/content-type/index.ts"], + "@umbraco-cms/backoffice/culture": ["./src/packages/core/culture/index.ts"], + "@umbraco-cms/backoffice/current-user": ["./src/packages/user/current-user/index.ts"], + "@umbraco-cms/backoffice/data-type": ["./src/packages/data-type/index.ts"], + "@umbraco-cms/backoffice/debug": ["./src/packages/core/debug/index.ts"], + "@umbraco-cms/backoffice/dictionary": ["./src/packages/dictionary/index.ts"], + "@umbraco-cms/backoffice/document-blueprint": ["./src/packages/documents/document-blueprints/index.ts"], + "@umbraco-cms/backoffice/document-type": ["./src/packages/documents/document-types/index.ts"], + "@umbraco-cms/backoffice/document": ["./src/packages/documents/documents/index.ts"], + "@umbraco-cms/backoffice/dynamic-root": ["./src/packages/dynamic-root/index.ts"], + "@umbraco-cms/backoffice/entity-action": ["./src/packages/core/entity-action/index.ts"], + "@umbraco-cms/backoffice/entity-bulk-action": ["./src/packages/core/entity-bulk-action/index.ts"], + "@umbraco-cms/backoffice/event": ["./src/packages/core/event/index.ts"], + "@umbraco-cms/backoffice/extension-registry": ["./src/packages/core/extension-registry/index.ts"], + "@umbraco-cms/backoffice/icon": ["./src/packages/core/icon-registry/index.ts"], + "@umbraco-cms/backoffice/id": ["./src/packages/core/id/index.ts"], + "@umbraco-cms/backoffice/language": ["./src/packages/language/index.ts"], + "@umbraco-cms/backoffice/lit-element": ["./src/packages/core/lit-element/index.ts"], + "@umbraco-cms/backoffice/localization": ["./src/packages/core/localization/index.ts"], + "@umbraco-cms/backoffice/log-viewer": ["./src/packages/log-viewer/index.ts"], + "@umbraco-cms/backoffice/media-type": ["./src/packages/media/media-types/index.ts"], + "@umbraco-cms/backoffice/media": ["./src/packages/media/media/index.ts"], + "@umbraco-cms/backoffice/member-group": ["./src/packages/members/member-group/index.ts"], + "@umbraco-cms/backoffice/member-type": ["./src/packages/members/member-type/index.ts"], + "@umbraco-cms/backoffice/member": ["./src/packages/members/member/index.ts"], + "@umbraco-cms/backoffice/menu": ["./src/packages/core/menu/index.ts"], + "@umbraco-cms/backoffice/modal": ["./src/packages/core/modal/index.ts"], + "@umbraco-cms/backoffice/models": ["./src/packages/core/models/index.ts"], + "@umbraco-cms/backoffice/notification": ["./src/packages/core/notification/index.ts"], + "@umbraco-cms/backoffice/object-type": ["./src/packages/object-type/index.ts"], + "@umbraco-cms/backoffice/package": ["./src/packages/packages/package/index.ts"], + "@umbraco-cms/backoffice/partial-view": ["./src/packages/templating/partial-views/index.ts"], + "@umbraco-cms/backoffice/picker-input": ["./src/packages/core/picker-input/index.ts"], + "@umbraco-cms/backoffice/property-action": ["./src/packages/core/property-action/index.ts"], + "@umbraco-cms/backoffice/property-editor": ["./src/packages/core/property-editor/index.ts"], + "@umbraco-cms/backoffice/property": ["./src/packages/core/property/index.ts"], + "@umbraco-cms/backoffice/relation-type": ["./src/packages/relations/relation-types/index.ts"], + "@umbraco-cms/backoffice/relations": ["./src/packages/relations/relations/index.ts"], + "@umbraco-cms/backoffice/repository": ["./src/packages/core/repository/index.ts"], + "@umbraco-cms/backoffice/resources": ["./src/packages/core/resources/index.ts"], + "@umbraco-cms/backoffice/router": ["./src/packages/core/router/index.ts"], + "@umbraco-cms/backoffice/section": ["./src/packages/core/section/index.ts"], + "@umbraco-cms/backoffice/server-file-system": ["./src/packages/core/server-file-system/index.ts"], + "@umbraco-cms/backoffice/sorter": ["./src/packages/core/sorter/index.ts"], + "@umbraco-cms/backoffice/static-file": ["./src/packages/static-file/index.ts"], + "@umbraco-cms/backoffice/store": ["./src/packages/core/store/index.ts"], + "@umbraco-cms/backoffice/style": ["./src/packages/core/style/index.ts"], + "@umbraco-cms/backoffice/stylesheet": ["./src/packages/templating/stylesheets/index.ts"], + "@umbraco-cms/backoffice/tags": ["./src/packages/tags/index.ts"], + "@umbraco-cms/backoffice/template": ["./src/packages/templating/templates/index.ts"], + "@umbraco-cms/backoffice/temporary-file": ["./src/packages/core/temporary-file/index.ts"], + "@umbraco-cms/backoffice/themes": ["./src/packages/core/themes/index.ts"], + "@umbraco-cms/backoffice/tiny-mce": ["./src/packages/tiny-mce/index.ts"], + "@umbraco-cms/backoffice/tree": ["./src/packages/core/tree/index.ts"], + "@umbraco-cms/backoffice/user-group": ["./src/packages/user/user-group/index.ts"], + "@umbraco-cms/backoffice/user-permission": ["./src/packages/user/user-permission/index.ts"], + "@umbraco-cms/backoffice/user": ["./src/packages/user/user/index.ts"], + "@umbraco-cms/backoffice/utils": ["./src/packages/core/utils/index.ts"], + "@umbraco-cms/backoffice/variant": ["./src/packages/core/variant/index.ts"], + "@umbraco-cms/backoffice/workspace": ["./src/packages/core/workspace/index.ts"], + "@umbraco-cms/backoffice/external/backend-api": ["./src/external/backend-api/index.ts"], + "@umbraco-cms/backoffice/external/dompurify": ["./src/external/dompurify/index.ts"], + "@umbraco-cms/backoffice/external/lit": ["./src/external/lit/index.ts"], + "@umbraco-cms/backoffice/external/marked": ["./src/external/marked/index.ts"], + "@umbraco-cms/backoffice/external/monaco-editor": ["./src/external/monaco-editor/index.ts"], + "@umbraco-cms/backoffice/external/openid": ["./src/external/openid/index.ts"], + "@umbraco-cms/backoffice/external/router-slot": ["./src/external/router-slot/index.ts"], + "@umbraco-cms/backoffice/external/rxjs": ["./src/external/rxjs/index.ts"], + "@umbraco-cms/backoffice/external/tinymce": ["./src/external/tinymce/index.ts"], + "@umbraco-cms/backoffice/external/uui": ["./src/external/uui/index.ts"], + "@umbraco-cms/backoffice/external/uuid": ["./src/external/uuid/index.ts"] + } + }, + "include": [ + "src/**/*.ts", + "apps/**/*.ts", + "e2e/**/*.ts", + "index.ts", + "storybook/stories/**/*.ts", + "examples/**/*.ts" + ], + "references": [ + { + "path": "./tsconfig.node.json" + } + ] }