-
${this._version}
-
- ${this._serverUpgradeCheck
- ? html`
`
- : ''}
+
${this._version ?? nothing}
Umbraco.com
@@ -103,21 +72,6 @@ export class UmbBackofficeHeaderLogoElement extends UmbLitElement {
.catch(() => {});
}
- async #openNewVersion() {
- if (!this._serverUpgradeCheck) return;
- const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT);
- if (!modalManager) return;
- modalManager
- .open(this, UMB_NEWVERSION_MODAL, {
- data: {
- comment: this._serverUpgradeCheck.comment,
- downloadUrl: this._serverUpgradeCheck.url,
- },
- })
- .onSubmit()
- .catch(() => {});
- }
-
static override styles = [
UmbTextStyles,
css`
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/da.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/da.ts
index d3cab9bf9dc9..5adc202c0202 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/da.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/da.ts
@@ -995,7 +995,6 @@ export default {
lastUpdated: 'Sidst opdateret',
skipToMenu: 'Spring til menu',
skipToContent: 'Spring til indhold',
- newVersionAvailable: 'Ny version tilgængelig',
duration: (duration: string, date: Date | string, now: Date | string) => {
if (new Date(date).getTime() < new Date(now).getTime()) return `for ${duration} siden`;
return `om ${duration}`;
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/de.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/de.ts
index d8ee0250545d..104974b31993 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/de.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/de.ts
@@ -900,7 +900,6 @@ export default {
header: 'Kopf',
systemField: 'System Feld',
lastUpdated: 'Zuletzt geändert',
- newVersionAvailable: 'Neue Version verfügbar',
},
colors: {
black: 'Schwarz',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts
index fa65c6995991..854f94ead166 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts
@@ -113,26 +113,26 @@ export default {
},
assignDomain: {
permissionDenied: 'Permission denied.',
- addNew: 'Add new domain',
- addCurrent: 'Add current domain',
+ addNew: 'Add new hostname',
+ addCurrent: 'Add current hostname',
remove: 'remove',
invalidNode: 'Invalid node.',
- invalidDomain: 'One or more domains have an invalid format.',
- duplicateDomain: 'Domain has already been assigned.',
- language: 'Language',
- domain: 'Domain',
- domainCreated: "New domain '%0%' has been created",
- domainDeleted: "Domain '%0%' is deleted",
- domainExists: "Domain '%0%' has already been assigned",
- domainUpdated: "Domain '%0%' has been updated",
- orEdit: 'Edit Current Domains',
+ invalidDomain: 'One or more hostnames have an invalid format.',
+ duplicateDomain: 'Hostname has already been assigned.',
+ language: 'Culture',
+ domain: 'Hostname',
+ domainCreated: "New hostname '%0%' has been created",
+ domainDeleted: "Hostname '%0%' is deleted",
+ domainExists: "Hostname '%0%' has already been assigned",
+ domainUpdated: "Hostname '%0%' has been updated",
+ orEdit: 'Edit Current Hostnames',
domainHelpWithVariants:
- 'Valid domain names are: "example.com", "www.example.com", "example.com:8080", or "https://www.example.com/". Furthermore also one-level paths in domains are supported, e.g. "example.com/en" or "/en".',
+ 'Valid hostnames are: "example.com", "www.example.com", "example.com:8080", or "https://www.example.com/". Furthermore also one-level paths in hostnames are supported, e.g. "example.com/en" or "/en".',
inherit: 'Inherit',
setLanguage: 'Culture',
setLanguageHelp:
- 'Set the culture for nodes below the current node,
or inherit culture from parent nodes. Will also apply
to the current node, unless a domain below applies too.',
- setDomains: 'Domains',
+ 'Set the culture for nodes below the current node, or inherit culture from parent nodes. Will also apply to the current node, unless a hostname below applies too.',
+ setDomains: 'Hostnames',
},
buttons: {
clearSelection: 'Clear selection',
@@ -191,7 +191,7 @@ export default {
save: 'Media saved',
},
auditTrails: {
- assigndomain: 'Domain assigned: %0%',
+ assigndomain: 'Hostname assigned: %0%',
atViewingFor: 'Viewing for',
delete: 'Content deleted',
unpublish: 'Content unpublished',
@@ -209,7 +209,7 @@ export default {
custom: '%0%',
contentversionpreventcleanup: 'Clean up disabled for version: %0%',
contentversionenablecleanup: 'Clean up enabled for version: %0%',
- smallAssignDomain: 'Assign Domain',
+ smallAssignDomain: 'Assign Hostname',
smallCopy: 'Copy',
smallPublish: 'Publish',
smallPublishVariant: 'Publish',
@@ -1012,7 +1012,6 @@ export default {
media: 'Media',
revert: 'Revert',
validate: 'Validate',
- newVersionAvailable: 'New version available',
duration: (duration: string, date: Date | string, now: Date | string) => {
if (new Date(date).getTime() < new Date(now).getTime()) return `${duration} ago`;
return `in ${duration}`;
@@ -1562,9 +1561,9 @@ export default {
dictionaryItemExportedError: 'An error occurred while exporting the dictionary item(s)',
dictionaryItemImported: 'The following dictionary item(s) has been imported!',
publishWithNoDomains:
- 'Domains are not configured for multilingual site, please contact an administrator, see log for more information',
+ 'Hostnames are not configured for multilingual site, please contact an administrator, see log for more information',
publishWithMissingDomain:
- 'There is no domain configured for %0%, please contact an administrator, see log for more information',
+ 'There is no hostname configured for %0%, please contact an administrator, see log for more information',
copySuccessMessage: 'Your system information has successfully been copied to the clipboard',
cannotCopyInformation: 'Could not copy your system information to the clipboard',
webhookSaved: 'Webhook saved',
@@ -2786,7 +2785,7 @@ export default {
minimalLevelDescription: 'We will only send an anonymised site ID to let us know that the site exists.',
basicLevelDescription: 'We will send an anonymised site ID, Umbraco version, and packages installed',
detailedLevelDescription:
- 'We will send:
- Anonymised site ID, Umbraco version, and packages installed.
- Number of: Root nodes, Content nodes, Media, Document Types, Templates, Languages, Domains, User Group, Users, Members, Backoffice external login providers, and Property Editors in use.
- System information: Webserver, server OS, server framework, server OS language, and database provider.
- Configuration settings: ModelsBuilder mode, if custom Umbraco path exists, ASP environment, whether the delivery API is enabled, and allows public access, and if you are in debug mode.
We might change what we send on the Detailed level in the future. If so, it will be listed above.
By choosing "Detailed" you agree to current and future anonymised information being collected.',
+ 'We will send:
- Anonymised site ID, Umbraco version, and packages installed.
- Number of: Root nodes, Content nodes, Media, Document Types, Templates, Languages, Hostnames, User Group, Users, Members, Backoffice external login providers, and Property Editors in use.
- System information: Webserver, server OS, server framework, server OS language, and database provider.
- Configuration settings: ModelsBuilder mode, if custom Umbraco path exists, ASP environment, whether the delivery API is enabled, and allows public access, and if you are in debug mode.
We might change what we send on the Detailed level in the future. If so, it will be listed above.
By choosing "Detailed" you agree to current and future anonymised information being collected.',
},
routing: {
routeNotFoundTitle: 'Not found',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/nb.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/nb.ts
index 674193916400..01ba21cab6fe 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/nb.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/nb.ts
@@ -524,7 +524,6 @@ export default {
move: 'Flytt',
name: 'Navn',
new: 'Ny',
- newVersionAvailable: 'Ny versjon tilgjengelig',
next: 'Neste',
no: 'Nei',
noItemsInList: 'Ingen elementer er lagt til',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/pt.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/pt.ts
index f2e00148a0a8..3350d3127ab5 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/pt.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/pt.ts
@@ -990,7 +990,6 @@ export default {
media: 'Multimédia',
revert: 'Reverter',
validate: 'Validar',
- newVersionAvailable: 'Nova versão disponível',
duration: (duration: string, date: Date | string, now: Date | string) => {
if (new Date(date).getTime() < new Date(now).getTime()) return `${duration} atrás`;
return `em ${duration}`;
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/vi.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/vi.ts
index 6b344baa82fe..c21de7b0b732 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/vi.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/vi.ts
@@ -996,7 +996,6 @@ export default {
media: 'Phương tiện',
revert: 'Hoàn tác',
validate: 'Xác thực',
- newVersionAvailable: 'Có phiên bản mới',
duration: (duration: string, date: Date | string, now: Date | string) => {
if (new Date(date).getTime() < new Date(now).getTime()) return `${duration} trước`;
return `trong ${duration}`;
diff --git a/src/Umbraco.Web.UI.Client/src/external/lit/index.ts b/src/Umbraco.Web.UI.Client/src/external/lit/index.ts
index a1f349289879..0d81284e616f 100644
--- a/src/Umbraco.Web.UI.Client/src/external/lit/index.ts
+++ b/src/Umbraco.Web.UI.Client/src/external/lit/index.ts
@@ -1,12 +1,24 @@
export * from 'lit';
export * from 'lit/decorators.js';
export { directive, AsyncDirective, type PartInfo } from 'lit/async-directive.js';
+export * from 'lit/directives/async-append.js';
+export * from 'lit/directives/async-replace.js';
+export * from 'lit/directives/cache.js';
+export * from 'lit/directives/choose.js';
export * from 'lit/directives/class-map.js';
+export * from 'lit/directives/guard.js';
export * from 'lit/directives/if-defined.js';
+export * from 'lit/directives/join.js';
+export * from 'lit/directives/keyed.js';
+export * from 'lit/directives/live.js';
export * from 'lit/directives/map.js';
+export * from 'lit/directives/range.js';
export * from 'lit/directives/ref.js';
export * from 'lit/directives/repeat.js';
export * from 'lit/directives/style-map.js';
+export * from 'lit/directives/template-content.js';
export * from 'lit/directives/unsafe-html.js';
+export * from 'lit/directives/unsafe-mathml.js';
+export * from 'lit/directives/unsafe-svg.js';
export * from 'lit/directives/until.js';
export * from 'lit/directives/when.js';
diff --git a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts
index e01bc818c6da..807c28e75492 100644
--- a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts
+++ b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts
@@ -318,6 +318,74 @@ describe('UmbLocalizationController', () => {
});
});
+ describe('termOrDefault', () => {
+ it('should return the translation when the key exists', () => {
+ expect(controller.termOrDefault('close', 'X')).to.equal('Close');
+ expect(controller.termOrDefault('logout', 'Sign out')).to.equal('Log out');
+ });
+
+ it('should return the default value when the key does not exist', () => {
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ expect((controller.termOrDefault as any)('nonExistentKey', 'Default Value')).to.equal('Default Value');
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ expect((controller.termOrDefault as any)('anotherMissingKey', 'Fallback')).to.equal('Fallback');
+ });
+
+ it('should work with function-based translations and arguments', () => {
+ expect(controller.termOrDefault('numUsersSelected', 'No selection', 0)).to.equal('No users selected');
+ expect(controller.termOrDefault('numUsersSelected', 'No selection', 1)).to.equal('One user selected');
+ expect(controller.termOrDefault('numUsersSelected', 'No selection', 5)).to.equal('5 users selected');
+ });
+
+ it('should work with string-based translations and placeholder arguments', () => {
+ expect(controller.termOrDefault('withInlineToken', 'N/A', 'Hello', 'World')).to.equal('Hello World');
+ expect(controller.termOrDefault('withInlineTokenLegacy', 'N/A', 'Foo', 'Bar')).to.equal('Foo Bar');
+ });
+
+ it('should use default value for missing key even with arguments', () => {
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ expect((controller.termOrDefault as any)('missingKey', 'Default', 'arg1', 'arg2')).to.equal('Default');
+ });
+
+ it('should handle the three-tier fallback before using defaultValue', async () => {
+ // Switch to Danish regional
+ document.documentElement.lang = danishRegional.$code;
+ await aTimeout(0);
+
+ // Primary (da-dk) has 'close'
+ expect(controller.termOrDefault('close', 'X')).to.equal('Luk');
+
+ // Secondary (da) has 'notOnRegional', not on da-dk
+ expect(controller.termOrDefault('notOnRegional', 'Not found')).to.equal('Not on regional');
+
+ // Fallback (en) has 'logout', not on da-dk or da
+ expect(controller.termOrDefault('logout', 'Sign out')).to.equal('Log out');
+
+ // Non-existent key should use default
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ expect((controller.termOrDefault as any)('completelyMissing', 'Fallback Value')).to.equal('Fallback Value');
+ });
+
+ it('should update when language changes', async () => {
+ expect(controller.termOrDefault('close', 'X')).to.equal('Close');
+
+ // Switch to Danish
+ document.documentElement.lang = danishRegional.$code;
+ await aTimeout(0);
+
+ expect(controller.termOrDefault('close', 'X')).to.equal('Luk');
+ });
+
+ it('should override a term if new localization is registered', () => {
+ expect(controller.termOrDefault('close', 'X')).to.equal('Close');
+
+ // Register override
+ umbLocalizationManager.registerLocalization(englishOverride);
+
+ expect(controller.termOrDefault('close', 'X')).to.equal('Close 2');
+ });
+ });
+
describe('string', () => {
it('should replace words prefixed with a # with translated value', async () => {
const str = '#close';
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 6872a3cd4026..1ed3cf85f0a0 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
@@ -110,41 +110,40 @@ export class UmbLocalizationController
(key: K, ...args: FunctionParams): string {
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ #lookupTerm(key: K): any {
if (!this.#usedKeys.includes(key)) {
this.#usedKeys.push(key);
}
const { primary, secondary } = this.#getLocalizationData(this.lang());
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
- let term: any;
-
// Look for a matching term using regionCode, code, then the fallback
if (primary?.[key]) {
- term = primary[key];
+ return primary[key];
} else if (secondary?.[key]) {
- term = secondary[key];
+ return secondary[key];
} else if (umbLocalizationManager.fallback?.[key]) {
- term = umbLocalizationManager.fallback[key];
- } else {
- return String(key);
+ return umbLocalizationManager.fallback[key];
}
+ return null;
+ }
+
+ /**
+ * Processes a localization entry (string or function) with the provided arguments.
+ * @param {any} term - the localization entry to process.
+ * @param {unknown[]} args - the arguments to apply to the term.
+ * @returns {string} - the processed term as a string.
+ */
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ #processTerm(term: any, args: unknown[]): string {
if (typeof term === 'function') {
return term(...args) as string;
}
@@ -152,14 +151,75 @@ export class UmbLocalizationController {
+ return term.replace(/(%(\d+)%|\{(\d+)\})/g, (match, _p1, p2, p3): string => {
const index = p2 || p3;
return typeof args[index] !== 'undefined' ? String(args[index]) : match;
});
}
}
- return term;
+ return String(term);
+ }
+
+ /**
+ * Outputs a translated term.
+ * @param {string} key - the localization key, the indicator of what localization entry you want to retrieve.
+ * @param {unknown[]} args - the arguments to parse for this localization entry.
+ * @returns {string} - the translated term as a string.
+ * @example
+ * Retrieving a term without any arguments:
+ * ```ts
+ * this.localize.term('area_term');
+ * ```
+ * Retrieving a term with arguments:
+ * ```ts
+ * this.localize.term('general_greeting', ['John']);
+ * ```
+ */
+ term(key: K, ...args: FunctionParams): string {
+ const term = this.#lookupTerm(key);
+
+ if (term === null) {
+ return String(key);
+ }
+
+ return this.#processTerm(term, args);
+ }
+
+ /**
+ * Returns the localized term for the given key, or the default value if not found.
+ * This method follows the same resolution order as term() (primary → secondary → fallback),
+ * but returns the provided defaultValue instead of the key when no translation is found.
+ * @param {string} key - the localization key, the indicator of what localization entry you want to retrieve.
+ * @param {string | null} defaultValue - the value to return if the key is not found in any localization set.
+ * @param {unknown[]} args - the arguments to parse for this localization entry.
+ * @returns {string | null} - the translated term or the default value.
+ * @example
+ * Retrieving a term with fallback:
+ * ```ts
+ * this.localize.termOrDefault('general_close', 'X');
+ * ```
+ * Retrieving a term with fallback and arguments:
+ * ```ts
+ * this.localize.termOrDefault('general_greeting', 'Hello!', userName);
+ * ```
+ * Retrieving a term with null as fallback:
+ * ```ts
+ * this.localize.termOrDefault('general_close', null);
+ * ```
+ */
+ termOrDefault(
+ key: K,
+ defaultValue: D,
+ ...args: FunctionParams
+ ): string | D {
+ const term = this.#lookupTerm(key);
+
+ if (term === null) {
+ return defaultValue;
+ }
+
+ return this.#processTerm(term, args);
}
/**
@@ -255,10 +315,10 @@ export class UmbLocalizationController {
- const key = match.slice(1);
- if (!this.#usedKeys.includes(key)) {
- this.#usedKeys.push(key);
- }
+ const key = match.slice(1) as keyof LocalizationSetType;
+
+ const term = this.#lookupTerm(key);
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
- // @ts-ignore
- const localized = this.term(key, ...args);
// we didn't find a localized string, so we return the original string with the #
- return localized === key ? match : localized;
+ if (term === null) {
+ return match;
+ }
+
+ return this.#processTerm(term, args);
});
return localizedText;
diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/server.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/server.handlers.ts
index a79204108900..2f448dc2b338 100644
--- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/server.handlers.ts
+++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/server.handlers.ts
@@ -3,7 +3,6 @@ import { version } from '../../../package.json';
import {
RuntimeLevelModel,
RuntimeModeModel,
- type GetServerUpgradeCheckResponse,
type GetServerTroubleshootingResponse,
type GetServerInformationResponse,
type GetServerConfigurationResponse,
@@ -53,17 +52,6 @@ export const serverInformationHandlers = [
}),
);
}),
- rest.get(umbracoPath('/server/upgrade-check'), (_req, res, ctx) => {
- return res(
- // Respond with a 200 status code
- ctx.status(200),
- ctx.json({
- type: 'Minor',
- comment: "15.2.0 is released. Upgrade today - it's free!",
- url: 'https://our.umbraco.com/download/releases/1520',
- }),
- );
- }),
rest.get(umbracoPath('/server/information'), (_req, res, ctx) => {
return res(
// Respond with a 200 status code
diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-block/block-grid-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-block/block-grid-block.element.ts
index 92e27823e769..a493d6ac09a2 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-block/block-grid-block.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-block/block-grid-block.element.ts
@@ -34,7 +34,8 @@ export class UmbBlockGridBlockElement extends UmbLitElement {
return html`
+ .readonly=${!(this.config?.showContentEdit ?? false)}
+ .href=${this.config?.showContentEdit ? this.config?.editContentPath : undefined}>
${when(
@@ -58,6 +59,10 @@ export class UmbBlockGridBlockElement extends UmbLitElement {
margin: var(--uui-size-2);
}
+ umb-ufm-render {
+ user-select: none;
+ }
+
uui-tag {
margin-left: 0.5em;
margin-bottom: -0.3em;
diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts
index 574f72143c69..433fd2da18cc 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts
@@ -32,7 +32,10 @@ export class UmbRefListBlockElement extends UmbLitElement {
override render() {
const blockValue = { ...this.content, $settings: this.settings, $index: this.index };
return html`
-
+
${when(
@@ -57,6 +60,11 @@ export class UmbRefListBlockElement extends UmbLitElement {
margin-top: -0.3em;
vertical-align: text-top;
}
+
+ umb-ufm-render {
+ user-select: none;
+ }
+
:host([unpublished]) umb-icon,
:host([unpublished]) umb-ufm-render {
opacity: 0.6;
diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/components/ref-rte-block/ref-rte-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/components/ref-rte-block/ref-rte-block.element.ts
index 27fa020e4ad9..afd440c594e7 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/components/ref-rte-block/ref-rte-block.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/components/ref-rte-block/ref-rte-block.element.ts
@@ -1,6 +1,5 @@
-import { css, customElement, html, property, state } from '@umbraco-cms/backoffice/external/lit';
+import { css, customElement, html, property } from '@umbraco-cms/backoffice/external/lit';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
-import { UMB_BLOCK_ENTRY_CONTEXT } from '@umbraco-cms/backoffice/block';
import type { UmbBlockDataType } from '@umbraco-cms/backoffice/block';
import type { UmbBlockEditorCustomViewConfiguration } from '@umbraco-cms/backoffice/block-custom-view';
@@ -28,30 +27,16 @@ export class UmbRefRteBlockElement extends UmbLitElement {
@property({ attribute: false })
settings?: UmbBlockDataType;
- @state()
- private _workspaceEditPath?: string;
-
@property({ attribute: false })
config?: UmbBlockEditorCustomViewConfiguration;
- constructor() {
- super();
-
- this.consumeContext(UMB_BLOCK_ENTRY_CONTEXT, (context) => {
- this.observe(
- context?.workspaceEditContentPath,
- (workspaceEditPath) => {
- this._workspaceEditPath = workspaceEditPath;
- },
- 'observeWorkspaceEditPath',
- );
- });
- }
-
override render() {
const blockValue = { ...this.content, $settings: this.settings, $index: this.index };
return html`
-
+
@@ -84,6 +69,10 @@ export class UmbRefRteBlockElement extends UmbLitElement {
z-index: 0;
}
+ umb-ufm-render {
+ user-select: none;
+ }
+
umb-icon,
umb-ufm-render {
z-index: 1;
diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts
index a76ed3ea2f37..9ebd8991c52f 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts
@@ -1,8 +1,6 @@
import { UMB_BLOCK_WORKSPACE_CONTEXT } from './index.js';
-import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
-import { customElement, css, html, state } from '@umbraco-cms/backoffice/external/lit';
+import { css, customElement, html, state } from '@umbraco-cms/backoffice/external/lit';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
-import { observeMultiple } from '@umbraco-cms/backoffice/observable-api';
@customElement('umb-block-workspace-editor')
export class UmbBlockWorkspaceEditorElement extends UmbLitElement {
@@ -11,10 +9,9 @@ export class UmbBlockWorkspaceEditorElement extends UmbLitElement {
this.consumeContext(UMB_BLOCK_WORKSPACE_CONTEXT, (context) => {
if (context) {
this.observe(
- observeMultiple([context.isNew, context.name]),
- ([isNew, name]) => {
- this._headline =
- this.localize.term(isNew ? 'general_add' : 'general_edit') + ' ' + this.localize.string(name);
+ context.name,
+ (name) => {
+ this._headline = this.localize.string(name);
},
'observeOwnerContentElementTypeName',
);
@@ -28,11 +25,10 @@ export class UmbBlockWorkspaceEditorElement extends UmbLitElement {
private _headline: string = '';
override render() {
- return html` `;
+ return html``;
}
static override readonly styles = [
- UmbTextStyles,
css`
:host {
display: block;
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 4a8fcbb12fb1..3af007c20040 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
@@ -113,8 +113,8 @@ export class UmbBlockWorkspaceContext {
- this.#renderLabel(contentValues);
+ async ([contentValues, settingsValues]) => {
+ this.#renderLabel(contentValues, settingsValues);
},
'observeContentForLabelRender',
);
@@ -243,11 +243,14 @@ export class UmbBlockWorkspaceContext | undefined) {
+ async #renderLabel(
+ contentValues: Array | undefined,
+ settingsValues: Array | undefined,
+ ) {
const valueObject = {} as Record;
if (contentValues) {
for (const property of contentValues) {
@@ -255,12 +258,22 @@ export class UmbBlockWorkspaceContext requestAnimationFrame(() => resolve(true)));
- const result = this.#labelRender.toString();
- this.#name.setValue(result);
- this.view.setTitle(result);
+ const prefix = this.getIsNew() === true ? '#general_add' : '#general_edit';
+ const label = this.#labelRender.toString();
+ const title = `${prefix} ${label}`;
+ this.#name.setValue(title);
+ this.view.setTitle(title);
}
#allowNavigateAway = false;
@@ -300,11 +313,14 @@ export class UmbBlockWorkspaceContext = [
js: () => import('./table/clipboard-table-collection-view.element.js'),
meta: {
label: 'Table',
- icon: 'icon-list',
+ icon: 'icon-table',
pathName: 'table',
},
conditions: [
diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/constants.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/constants.ts
index 0bf665f7712c..8c5bd4462ece 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/constants.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/constants.ts
@@ -1,4 +1,2 @@
-/**
- * Workspace Content Type Alias condition alias
- */
-export const UMB_WORKSPACE_CONTENT_TYPE_ALIAS_CONDITION_ALIAS = 'Umb.Condition.WorkspaceContentTypeAlias';
+export * from './workspace-content-type-alias/constants.js';
+export * from './workspace-content-type-unique/constants.js';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/manifests.ts
index 0e4865bde973..de68f5ce2632 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/manifests.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/manifests.ts
@@ -1,3 +1,4 @@
-import { manifest as workspaceContentTypeAliasCondition } from './workspace-content-type-alias.condition.js';
+import { manifests as workspaceAliasCondition } from './workspace-content-type-alias/manifests.js';
+import { manifests as WorkspaceContentTypeUnique } from './workspace-content-type-unique/manifests.js';
-export const manifests: Array = [workspaceContentTypeAliasCondition];
+export const manifests: Array = [...workspaceAliasCondition, ...WorkspaceContentTypeUnique];
diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/types.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/types.ts
index e0a50062e2f9..e6fbd340f910 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/types.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/types.ts
@@ -1,25 +1,2 @@
-import type { UMB_WORKSPACE_CONTENT_TYPE_ALIAS_CONDITION_ALIAS } from './constants.js';
-import type { UmbConditionConfigBase } from '@umbraco-cms/backoffice/extension-api';
-
-export type UmbWorkspaceContentTypeAliasConditionConfig = UmbConditionConfigBase<
- typeof UMB_WORKSPACE_CONTENT_TYPE_ALIAS_CONDITION_ALIAS
-> & {
- /**
- * Define a content type alias in which workspace this extension should be available
- * @example
- * Depends on implementation, but i.e. "article", "image", "blockPage"
- */
- match?: string;
- /**
- * Define one or more content type aliases in which workspace this extension should be available
- * @example
- * ["article", "image", "blockPage"]
- */
- oneOf?: Array;
-};
-
-declare global {
- interface UmbExtensionConditionConfigMap {
- umbWorkspaceContentTypeAliasConditionConfig: UmbWorkspaceContentTypeAliasConditionConfig;
- }
-}
+export type * from './workspace-content-type-alias/types.js';
+export type * from './workspace-content-type-unique/types.js';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-alias/constants.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-alias/constants.ts
new file mode 100644
index 000000000000..0bf665f7712c
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-alias/constants.ts
@@ -0,0 +1,4 @@
+/**
+ * Workspace Content Type Alias condition alias
+ */
+export const UMB_WORKSPACE_CONTENT_TYPE_ALIAS_CONDITION_ALIAS = 'Umb.Condition.WorkspaceContentTypeAlias';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-alias/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-alias/manifests.ts
new file mode 100644
index 000000000000..dc0707b60b9e
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-alias/manifests.ts
@@ -0,0 +1,11 @@
+import { UMB_WORKSPACE_CONTENT_TYPE_ALIAS_CONDITION_ALIAS } from './constants.js';
+import { UmbWorkspaceContentTypeAliasCondition } from './workspace-content-type-alias.condition.js';
+
+export const manifests: Array = [
+ {
+ type: 'condition',
+ name: 'Workspace Content Type Alias Condition',
+ alias: UMB_WORKSPACE_CONTENT_TYPE_ALIAS_CONDITION_ALIAS,
+ api: UmbWorkspaceContentTypeAliasCondition,
+ },
+];
diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-alias/types.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-alias/types.ts
new file mode 100644
index 000000000000..e0a50062e2f9
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-alias/types.ts
@@ -0,0 +1,25 @@
+import type { UMB_WORKSPACE_CONTENT_TYPE_ALIAS_CONDITION_ALIAS } from './constants.js';
+import type { UmbConditionConfigBase } from '@umbraco-cms/backoffice/extension-api';
+
+export type UmbWorkspaceContentTypeAliasConditionConfig = UmbConditionConfigBase<
+ typeof UMB_WORKSPACE_CONTENT_TYPE_ALIAS_CONDITION_ALIAS
+> & {
+ /**
+ * Define a content type alias in which workspace this extension should be available
+ * @example
+ * Depends on implementation, but i.e. "article", "image", "blockPage"
+ */
+ match?: string;
+ /**
+ * Define one or more content type aliases in which workspace this extension should be available
+ * @example
+ * ["article", "image", "blockPage"]
+ */
+ oneOf?: Array;
+};
+
+declare global {
+ interface UmbExtensionConditionConfigMap {
+ umbWorkspaceContentTypeAliasConditionConfig: UmbWorkspaceContentTypeAliasConditionConfig;
+ }
+}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-alias.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-alias/workspace-content-type-alias.condition.ts
similarity index 85%
rename from src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-alias.condition.ts
rename to src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-alias/workspace-content-type-alias.condition.ts
index 532489b6255b..da85548886b8 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-alias.condition.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-alias/workspace-content-type-alias.condition.ts
@@ -1,8 +1,8 @@
-import { UMB_PROPERTY_STRUCTURE_WORKSPACE_CONTEXT } from '../contexts/index.js';
import type { UmbWorkspaceContentTypeAliasConditionConfig } from './types.js';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import type { UmbConditionControllerArguments, UmbExtensionCondition } from '@umbraco-cms/backoffice/extension-api';
import { UmbConditionBase } from '@umbraco-cms/backoffice/extension-registry';
+import { UMB_PROPERTY_STRUCTURE_WORKSPACE_CONTEXT } from '../../contexts/property-structure-workspace.context-token.js';
const ObserveSymbol = Symbol();
@@ -44,10 +44,3 @@ export class UmbWorkspaceContentTypeAliasCondition
}
}
}
-
-export const manifest: UmbExtensionManifest = {
- type: 'condition',
- name: 'Workspace Content Type Alias Condition',
- alias: 'Umb.Condition.WorkspaceContentTypeAlias',
- api: UmbWorkspaceContentTypeAliasCondition,
-};
diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-unique/constants.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-unique/constants.ts
new file mode 100644
index 000000000000..15db97c106b9
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-unique/constants.ts
@@ -0,0 +1,4 @@
+/**
+ * Workspace Content Type Unique condition
+ */
+export const UMB_WORKSPACE_CONTENT_TYPE_UNIQUE_CONDITION = 'Umb.Condition.WorkspaceContentTypeUnique';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-unique/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-unique/manifests.ts
new file mode 100644
index 000000000000..bc20852f0e69
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-unique/manifests.ts
@@ -0,0 +1,11 @@
+import { UMB_WORKSPACE_CONTENT_TYPE_UNIQUE_CONDITION } from './constants.js';
+import { UmbWorkspaceContentTypeUniqueCondition } from './workspace-content-type-unique.condition.js';
+
+export const manifests: Array = [
+ {
+ type: 'condition',
+ name: 'Workspace Content Type Unique Condition',
+ alias: UMB_WORKSPACE_CONTENT_TYPE_UNIQUE_CONDITION,
+ api: UmbWorkspaceContentTypeUniqueCondition,
+ },
+];
diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-unique/types.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-unique/types.ts
new file mode 100644
index 000000000000..e41bbfd84e41
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-unique/types.ts
@@ -0,0 +1,25 @@
+import type { UMB_WORKSPACE_CONTENT_TYPE_UNIQUE_CONDITION } from './constants.js';
+import type { UmbConditionConfigBase } from '@umbraco-cms/backoffice/extension-api';
+
+export type UmbWorkspaceContentTypeUniqueConditionConfig = UmbConditionConfigBase<
+ typeof UMB_WORKSPACE_CONTENT_TYPE_UNIQUE_CONDITION
+> & {
+ /**
+ * Define a content type unique (GUID) in which workspace this extension should be available
+ * @example
+ * Depends on implementation, but i.e. "d59be02f-1df9-4228-aa1e-01917d806cda"
+ */
+ match?: string;
+ /**
+ * Define one or more content type unique (GUIDs) in which workspace this extension should be available
+ * @example
+ * ["d59be02f-1df9-4228-aa1e-01917d806cda", "42d7572e-1ba1-458d-a765-95b60040c3ac"]
+ */
+ oneOf?: Array;
+};
+
+declare global {
+ interface UmbExtensionConditionConfigMap {
+ umbWorkspaceContentTypeUniqueConditionConfig: UmbWorkspaceContentTypeUniqueConditionConfig;
+ }
+}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-unique/workspace-content-type-unique.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-unique/workspace-content-type-unique.condition.ts
new file mode 100644
index 000000000000..6d18dd772174
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/workspace-content-type-unique/workspace-content-type-unique.condition.ts
@@ -0,0 +1,47 @@
+import type { UmbWorkspaceContentTypeUniqueConditionConfig } from './types.js';
+import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
+import type { UmbConditionControllerArguments, UmbExtensionCondition } from '@umbraco-cms/backoffice/extension-api';
+import { UmbConditionBase } from '@umbraco-cms/backoffice/extension-registry';
+import { UMB_PROPERTY_STRUCTURE_WORKSPACE_CONTEXT } from '../../contexts/property-structure-workspace.context-token.js';
+
+const ObserveSymbol = Symbol();
+
+/**
+ * Condition to apply workspace extension based on a content type unique (GUID)
+ */
+export class UmbWorkspaceContentTypeUniqueCondition
+ extends UmbConditionBase
+ implements UmbExtensionCondition
+{
+ constructor(
+ host: UmbControllerHost,
+ args: UmbConditionControllerArguments,
+ ) {
+ super(host, args);
+
+ let permissionCheck: ((contentTypeUniques: string[]) => boolean) | undefined = undefined;
+ if (this.config.match) {
+ permissionCheck = (contentTypeUniques: string[]) => contentTypeUniques.includes(this.config.match!);
+ } else if (this.config.oneOf) {
+ permissionCheck = (contentTypeUniques: string[]) =>
+ contentTypeUniques.some((item) => this.config.oneOf!.includes(item));
+ }
+
+ if (permissionCheck !== undefined) {
+ this.consumeContext(UMB_PROPERTY_STRUCTURE_WORKSPACE_CONTEXT, (context) => {
+ this.observe(
+ context?.structure.contentTypeUniques,
+ (contentTypeUniques) => {
+ const result = contentTypeUniques ? permissionCheck!(contentTypeUniques) : false;
+ this.permitted = result;
+ },
+ ObserveSymbol,
+ );
+ });
+ } else {
+ throw new Error(
+ 'Condition `Umb.Condition.WorkspaceContentTypeUnique` could not be initialized properly. Either "match" or "oneOf" must be defined',
+ );
+ }
+ }
+}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/content-type-workspace-context-base.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/content-type-workspace-context-base.ts
index 67873bffb961..2d23f998dd7a 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/content-type-workspace-context-base.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/content-type-workspace-context-base.ts
@@ -92,7 +92,6 @@ export abstract class UmbContentTypeWorkspaceContextBase<
let { data } = await request;
if (data) {
- data = await this._processIncomingData(data);
data = await this._scaffoldProcessData(data);
if (this.modalContext) {
diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content/workspace/content-detail-workspace-base.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content/workspace/content-detail-workspace-base.ts
index 3230309c37d4..eff7d54d6b69 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/content/content/workspace/content-detail-workspace-base.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/content/content/workspace/content-detail-workspace-base.ts
@@ -368,11 +368,6 @@ export abstract class UmbContentDetailWorkspaceContextBase<
(varies) => {
this._data.setVariesBySegment(varies);
this.#variesBySegment = varies;
- if (varies) {
- this.loadSegments();
- } else {
- this._segments.setValue([]);
- }
},
null,
);
@@ -393,20 +388,28 @@ export abstract class UmbContentDetailWorkspaceContextBase<
this.#languages.setValue(data?.items ?? []);
}
+ /**
+ * @deprecated Call `_loadSegmentsFor` instead. `loadSegments` will be removed in v.18.
+ * (note this was introduced in v.17, and deprecated in v.17.0.1)
+ */
protected async loadSegments() {
+ console.warn('Stop using loadSegments, call _loadSegmentsFor instead. loadSegments will be removed in v.18.');
+ const unique = await firstValueFrom(this.unique);
+ if (!unique) {
+ this._segments.setValue([]);
+ return;
+ }
+ this._loadSegmentsFor(unique);
+ }
+
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ protected async _loadSegmentsFor(unique: string): Promise {
console.warn(
`UmbContentDetailWorkspaceContextBase: Segments are not implemented in the workspace context for "${this.getEntityType()}" types.`,
);
this._segments.setValue([]);
}
- /**
- * @deprecated Call `_processIncomingData` instead. `_scaffoldProcessData` will be removed in v.18.
- */
- protected override _scaffoldProcessData(data: DetailModelType): Promise {
- return this._processIncomingData(data);
- }
-
protected override async _processIncomingData(data: DetailModelType): Promise {
const contentTypeUnique: string | undefined = (data as any)[this.#contentTypePropertyName].unique;
if (!contentTypeUnique) {
@@ -415,24 +418,28 @@ export abstract class UmbContentDetailWorkspaceContextBase<
// Load the content type structure, usually this comes from the data, but in this case we are making the data, and we need this to be able to complete the data. [NL]
await this.structure.loadType(contentTypeUnique);
+ // Load segments if varying by segment, or reset to empty array:
+ if (this.#variesBySegment) {
+ await this._loadSegmentsFor(data.unique);
+ } else {
+ this._segments.setValue([]);
+ }
+
// Set culture and segment for all values:
const cultures = this.#languages.getValue().map((x) => x.unique);
- if (this.structure.variesBySegment) {
- // TODO: v.17 Engage please note we have not implemented support for segments yet. [NL]
- console.warn('Segments are not yet implemented for preset');
+ let segments: Array | undefined;
+ if (this.#variesBySegment) {
+ segments = this._segments.getValue().map((s) => s.alias);
}
- // TODO: Add Segments for Presets:
- const segments: Array | undefined = this.structure.variesBySegment ? [] : undefined;
const repo = new UmbDataTypeDetailRepository(this);
const propertyTypes = await this.structure.getContentTypeProperties();
const contentTypeVariesByCulture = this.structure.getVariesByCulture();
- const contentTypeVariesBySegment = this.structure.getVariesByCulture();
+ const contentTypeVariesBySegment = this.structure.getVariesBySegment();
const valueDefinitions = await Promise.all(
propertyTypes.map(async (property) => {
- // TODO: Implement caching for data-type requests. [NL]
const dataType = (await repo.requestByUnique(property.dataType.unique)).data;
// This means if its not loaded this will never resolve and the error below will never happen.
if (!dataType) {
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/backend-api/sdk.gen.ts b/src/Umbraco.Web.UI.Client/src/packages/core/backend-api/sdk.gen.ts
index 66795930eb5d..9c391fdb6ae9 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/backend-api/sdk.gen.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/backend-api/sdk.gen.ts
@@ -4687,6 +4687,9 @@ export class ServerService {
});
}
+ /**
+ * @deprecated
+ */
public static getServerUpgradeCheck(options?: Options) {
return (options?.client ?? client).get({
security: [
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/global-components.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/global-components.ts
index d567a5dbd8ab..125712ca316d 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/global-components.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/global-components.ts
@@ -1,3 +1,3 @@
import './menu/collection-menu.element.js';
-
+import './item/global-components.js';
export * from './menu/collection-menu.element.js';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-card/default-collection-item-card.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-card/default-collection-item-card.element.ts
new file mode 100644
index 000000000000..d4a1f4bd755e
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-card/default-collection-item-card.element.ts
@@ -0,0 +1,69 @@
+import type { UmbCollectionItemModel } from '../types.js';
+import type { UmbEntityCollectionItemElement } from '../entity-collection-item-element.interface.js';
+import { getItemFallbackName, getItemFallbackIcon } from '@umbraco-cms/backoffice/entity-item';
+import { UmbDeselectedEvent, UmbSelectedEvent } from '@umbraco-cms/backoffice/event';
+import { customElement, html, ifDefined, nothing, property } from '@umbraco-cms/backoffice/external/lit';
+import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
+
+@customElement('umb-default-collection-item-card')
+export class UmbDefaultCollectionItemCardElement extends UmbLitElement implements UmbEntityCollectionItemElement {
+ @property({ type: Object })
+ item?: UmbCollectionItemModel;
+
+ @property({ type: Boolean })
+ selectable = false;
+
+ @property({ type: Boolean })
+ selected = false;
+
+ @property({ type: Boolean })
+ selectOnly = false;
+
+ @property({ type: Boolean })
+ disabled = false;
+
+ @property({ type: String })
+ href?: string;
+
+ #onSelected(event: CustomEvent) {
+ if (!this.item) return;
+ event.stopPropagation();
+ this.dispatchEvent(new UmbSelectedEvent(this.item.unique));
+ }
+
+ #onDeselected(event: CustomEvent) {
+ if (!this.item) return;
+ event.stopPropagation();
+ this.dispatchEvent(new UmbDeselectedEvent(this.item.unique));
+ }
+
+ override render() {
+ if (!this.item) return nothing;
+
+ return html`
+
+
+ ${this.#renderIcon(this.item)}
+
+ `;
+ }
+
+ #renderIcon(item: UmbCollectionItemModel) {
+ const icon = item.icon || getItemFallbackIcon();
+ return html``;
+ }
+}
+
+declare global {
+ interface HTMLElementTagNameMap {
+ 'umb-default-collection-item-card': UmbDefaultCollectionItemCardElement;
+ }
+}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-card/entity-collection-item-card.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-card/entity-collection-item-card.element.ts
new file mode 100644
index 000000000000..45cf6cb55c70
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-card/entity-collection-item-card.element.ts
@@ -0,0 +1,41 @@
+import { UmbEntityCollectionItemElementBase } from '../umb-entity-collection-item-element-base.element.js';
+import { UmbDefaultCollectionItemCardElement } from './default-collection-item-card.element.js';
+import { css, customElement, html } from '@umbraco-cms/backoffice/external/lit';
+
+@customElement('umb-entity-collection-item-card')
+export class UmbEntityCollectionItemCardElement extends UmbEntityCollectionItemElementBase {
+ protected getExtensionType(): string {
+ return 'entityCollectionItemCard';
+ }
+
+ protected createFallbackElement(): HTMLElement {
+ return new UmbDefaultCollectionItemCardElement();
+ }
+
+ protected getPathAddendum(entityType: string, unique: string): string {
+ return 'collection-item-card/' + entityType + '/' + unique;
+ }
+
+ protected getMarkAttributeName(): string {
+ return 'entity-collection-item-card';
+ }
+
+ override render() {
+ return html`${this._component}`;
+ }
+
+ static override styles = [
+ css`
+ :host {
+ display: block;
+ position: relative;
+ }
+ `,
+ ];
+}
+
+declare global {
+ interface HTMLElementTagNameMap {
+ 'umb-entity-collection-item-card': UmbEntityCollectionItemCardElement;
+ }
+}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-card/entity-collection-item-card.extension.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-card/entity-collection-item-card.extension.ts
new file mode 100644
index 000000000000..a72348ec1d34
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-card/entity-collection-item-card.extension.ts
@@ -0,0 +1,16 @@
+import type { ManifestEntityCollectionItemBase } from '../entity-collection-item.extension.js';
+
+export interface ManifestEntityCollectionItemCard<
+ MetaType extends MetaEntityCollectionItemCard = MetaEntityCollectionItemCard,
+> extends ManifestEntityCollectionItemBase {
+ type: 'entityCollectionItemCard';
+}
+
+// eslint-disable-next-line @typescript-eslint/no-empty-object-type
+export interface MetaEntityCollectionItemCard {}
+
+declare global {
+ interface UmbExtensionManifestMap {
+ umbManifestEntityCollectionItemCard: ManifestEntityCollectionItemCard;
+ }
+}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-card/global-components.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-card/global-components.ts
new file mode 100644
index 000000000000..522a7aad45d1
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-card/global-components.ts
@@ -0,0 +1 @@
+import './entity-collection-item-card.element.js';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-card/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-card/index.ts
new file mode 100644
index 000000000000..4c51a29d874a
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-card/index.ts
@@ -0,0 +1 @@
+export * from './entity-collection-item-card.element.js';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-card/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-card/types.ts
new file mode 100644
index 000000000000..2580ba8add53
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-card/types.ts
@@ -0,0 +1 @@
+export type * from './entity-collection-item-card.extension.js';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-element.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-element.interface.ts
new file mode 100644
index 000000000000..0b6f076383d2
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-element.interface.ts
@@ -0,0 +1,24 @@
+import type { UmbCollectionItemModel } from './types.js';
+
+/**
+ * An interface for elements that render collection items representing entities.
+ */
+export interface UmbEntityCollectionItemElement extends HTMLElement {
+ /** The collection item model to render. */
+ item?: UmbCollectionItemModel | undefined;
+
+ /** Whether the item should render with selection affordances. */
+ selectable?: boolean;
+
+ /** When true, the item only supports selection (no navigation). */
+ selectOnly?: boolean;
+
+ /** Whether the item is currently selected. */
+ selected?: boolean;
+
+ /** Whether the item is disabled. */
+ disabled?: boolean;
+
+ /** Optional href used by card/ref renderers to provide a link. */
+ href?: string | undefined;
+}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-ref/default-collection-item-ref.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-ref/default-collection-item-ref.element.ts
new file mode 100644
index 000000000000..1ec6db16279e
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-ref/default-collection-item-ref.element.ts
@@ -0,0 +1,67 @@
+import type { UmbCollectionItemModel } from '../types.js';
+import type { UmbEntityCollectionItemElement } from '../entity-collection-item-element.interface.js';
+import { getItemFallbackName, getItemFallbackIcon } from '@umbraco-cms/backoffice/entity-item';
+import { UmbDeselectedEvent, UmbSelectedEvent } from '@umbraco-cms/backoffice/event';
+import { customElement, html, ifDefined, nothing, property } from '@umbraco-cms/backoffice/external/lit';
+import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
+
+@customElement('umb-default-collection-item-ref')
+export class UmbDefaultCollectionItemRefElement extends UmbLitElement implements UmbEntityCollectionItemElement {
+ @property({ type: Object })
+ item?: UmbCollectionItemModel;
+
+ @property({ type: Boolean })
+ selectable = false;
+
+ @property({ type: Boolean })
+ selected = false;
+
+ @property({ type: Boolean })
+ selectOnly = false;
+
+ @property({ type: Boolean })
+ disabled = false;
+
+ @property({ type: String })
+ href?: string;
+
+ #onSelected(event: CustomEvent) {
+ if (!this.item) return;
+ event.stopPropagation();
+ this.dispatchEvent(new UmbSelectedEvent(this.item.unique));
+ }
+
+ #onDeselected(event: CustomEvent) {
+ if (!this.item) return;
+ event.stopPropagation();
+ this.dispatchEvent(new UmbDeselectedEvent(this.item.unique));
+ }
+
+ override render() {
+ if (!this.item) return nothing;
+
+ return html`
+
+ ${this.#renderIcon(this.item)}
+ `;
+ }
+
+ #renderIcon(item: UmbCollectionItemModel) {
+ const icon = item.icon || getItemFallbackIcon();
+ return html``;
+ }
+}
+
+declare global {
+ interface HTMLElementTagNameMap {
+ 'umb-default-collection-item-ref': UmbDefaultCollectionItemRefElement;
+ }
+}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-ref/entity-collection-item-ref.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-ref/entity-collection-item-ref.element.ts
new file mode 100644
index 000000000000..316dc3d24716
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-ref/entity-collection-item-ref.element.ts
@@ -0,0 +1,41 @@
+import { UmbEntityCollectionItemElementBase } from '../umb-entity-collection-item-element-base.element.js';
+import { UmbDefaultCollectionItemRefElement } from './default-collection-item-ref.element.js';
+import { css, customElement, html } from '@umbraco-cms/backoffice/external/lit';
+
+@customElement('umb-entity-collection-item-ref')
+export class UmbEntityCollectionItemRefElement extends UmbEntityCollectionItemElementBase {
+ protected getExtensionType(): string {
+ return 'entityCollectionItemRef';
+ }
+
+ protected createFallbackElement(): HTMLElement {
+ return new UmbDefaultCollectionItemRefElement();
+ }
+
+ protected getPathAddendum(entityType: string, unique: string): string {
+ return 'collection-item-ref/' + entityType + '/' + unique;
+ }
+
+ protected getMarkAttributeName(): string {
+ return 'entity-collection-item-ref';
+ }
+
+ override render() {
+ return html`${this._component}`;
+ }
+
+ static override styles = [
+ css`
+ :host {
+ display: block;
+ position: relative;
+ }
+ `,
+ ];
+}
+
+declare global {
+ interface HTMLElementTagNameMap {
+ 'umb-entity-collection-item-ref': UmbEntityCollectionItemRefElement;
+ }
+}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-ref/entity-collection-item-ref.extension.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-ref/entity-collection-item-ref.extension.ts
new file mode 100644
index 000000000000..0d3234176171
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-ref/entity-collection-item-ref.extension.ts
@@ -0,0 +1,16 @@
+import type { ManifestEntityCollectionItemBase } from '../entity-collection-item.extension.js';
+
+export interface ManifestEntityCollectionItemRef<
+ MetaType extends MetaEntityCollectionItemRef = MetaEntityCollectionItemRef,
+> extends ManifestEntityCollectionItemBase {
+ type: 'entityCollectionItemRef';
+}
+
+// eslint-disable-next-line @typescript-eslint/no-empty-object-type
+export interface MetaEntityCollectionItemRef {}
+
+declare global {
+ interface UmbExtensionManifestMap {
+ umbManifestEntityCollectionItemRef: ManifestEntityCollectionItemRef;
+ }
+}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-ref/global-components.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-ref/global-components.ts
new file mode 100644
index 000000000000..4636687bd2ab
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-ref/global-components.ts
@@ -0,0 +1 @@
+import './entity-collection-item-ref.element.js';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-ref/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-ref/index.ts
new file mode 100644
index 000000000000..057c629abb5e
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-ref/index.ts
@@ -0,0 +1 @@
+export * from './entity-collection-item-ref.element.js';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-ref/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-ref/types.ts
new file mode 100644
index 000000000000..cd88329aeecc
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item-ref/types.ts
@@ -0,0 +1 @@
+export type * from './entity-collection-item-ref.extension.js';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item.extension.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item.extension.ts
new file mode 100644
index 000000000000..9ad5af751c14
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/entity-collection-item.extension.ts
@@ -0,0 +1,20 @@
+import type { UmbEntityCollectionItemElement } from './entity-collection-item-element.interface.js';
+import type { ManifestElement, ManifestWithDynamicConditions } from '@umbraco-cms/backoffice/extension-api';
+
+/**
+ * Base interface for entity collection item manifests.
+ * Shared by card and ref variants.
+ */
+export interface ManifestEntityCollectionItemBase
+ extends ManifestElement,
+ ManifestWithDynamicConditions {
+ /**
+ * The entity types this collection item supports.
+ */
+ forEntityTypes: Array;
+
+ /**
+ * Additional metadata for the collection item.
+ */
+ meta?: MetaType;
+}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/global-components.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/global-components.ts
new file mode 100644
index 000000000000..7e1a04b92b0b
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/global-components.ts
@@ -0,0 +1,2 @@
+import './entity-collection-item-card/global-components.js';
+import './entity-collection-item-ref/global-components.js';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/types.ts
index 528282ebdb29..e96639948a0a 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/types.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/types.ts
@@ -1,7 +1,16 @@
import type { UmbEntityModel } from '@umbraco-cms/backoffice/entity';
+export type * from './entity-collection-item-card/types.js';
+export type * from './entity-collection-item-ref/types.js';
+export type * from './entity-collection-item-element.interface.js';
export interface UmbCollectionItemModel extends UmbEntityModel {
unique: string;
name?: string;
icon?: string;
}
+
+export interface UmbCollectionItemDetailPropertyConfig {
+ alias: string;
+ name: string;
+ isSystem: boolean;
+}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/umb-entity-collection-item-element-base.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/umb-entity-collection-item-element-base.element.ts
new file mode 100644
index 000000000000..a021e2304427
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/item/umb-entity-collection-item-element-base.element.ts
@@ -0,0 +1,198 @@
+import type { UmbCollectionItemDetailPropertyConfig, UmbCollectionItemModel } from './types.js';
+import type { ManifestEntityCollectionItemBase } from './entity-collection-item.extension.js';
+import { property, state } from '@umbraco-cms/backoffice/external/lit';
+import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
+import { UmbExtensionsElementInitializer } from '@umbraco-cms/backoffice/extension-api';
+import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
+import { UmbDeselectedEvent, UmbSelectedEvent } from '@umbraco-cms/backoffice/event';
+import { UmbRoutePathAddendumContext } from '@umbraco-cms/backoffice/router';
+import { UMB_MARK_ATTRIBUTE_NAME } from '@umbraco-cms/backoffice/const';
+import type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit';
+
+export abstract class UmbEntityCollectionItemElementBase extends UmbLitElement {
+ #extensionsController?: UmbExtensionsElementInitializer;
+ #item?: UmbCollectionItemModel;
+
+ @state()
+ protected _component?: any; // TODO: Add type
+
+ @property({ type: Object, attribute: false })
+ public set item(value: UmbCollectionItemModel | undefined) {
+ const oldValue = this.#item;
+ this.#item = value;
+
+ if (value === oldValue) return;
+ if (!value) return;
+
+ // If the component is already created and the entity type is the same, we can just update the item.
+ if (this._component && value.entityType === oldValue?.entityType) {
+ this._component.item = value;
+ return;
+ }
+
+ this.#pathAddendum.setAddendum(this.getPathAddendum(value.entityType, value.unique));
+
+ // If the component is already created, but the entity type is different, we need to destroy the component.
+ this.#createController(value.entityType);
+ }
+ public get item(): UmbCollectionItemModel | undefined {
+ return this.#item;
+ }
+
+ #selectable = false;
+ @property({ type: Boolean, reflect: true })
+ public get selectable() {
+ return this.#selectable;
+ }
+ public set selectable(value) {
+ this.#selectable = value;
+
+ if (this._component) {
+ this._component.selectable = this.#selectable;
+ }
+ }
+
+ #selectOnly = false;
+ @property({ type: Boolean, attribute: 'select-only', reflect: true })
+ public get selectOnly() {
+ return this.#selectOnly;
+ }
+ public set selectOnly(value) {
+ this.#selectOnly = value;
+
+ if (this._component) {
+ this._component.selectOnly = this.#selectOnly;
+ }
+ }
+
+ #selected = false;
+ @property({ type: Boolean, reflect: true })
+ public get selected() {
+ return this.#selected;
+ }
+ public set selected(value) {
+ this.#selected = value;
+
+ if (this._component) {
+ this._component.selected = this.#selected;
+ }
+ }
+
+ #disabled = false;
+ @property({ type: Boolean, reflect: true })
+ public get disabled() {
+ return this.#disabled;
+ }
+ public set disabled(value) {
+ this.#disabled = value;
+
+ if (this._component) {
+ this._component.disabled = this.#disabled;
+ }
+ }
+
+ #href?: string;
+ @property({ type: String, reflect: true })
+ public get href() {
+ return this.#href;
+ }
+ public set href(value) {
+ this.#href = value;
+
+ if (this._component) {
+ this._component.href = this.#href;
+ }
+ }
+
+ #detailProperties?: Array;
+ @property({ type: Array, attribute: false })
+ public get detailProperties() {
+ return this.#detailProperties;
+ }
+ public set detailProperties(value) {
+ this.#detailProperties = value;
+
+ if (this._component) {
+ this._component.detailProperties = this.#detailProperties;
+ }
+ }
+
+ #pathAddendum = new UmbRoutePathAddendumContext(this);
+
+ #onSelected(event: UmbSelectedEvent) {
+ event.stopPropagation();
+ const unique = this.item?.unique;
+ if (!unique) throw new Error('No unique id found for item');
+ this.dispatchEvent(new UmbSelectedEvent(unique));
+ }
+
+ #onDeselected(event: UmbDeselectedEvent) {
+ event.stopPropagation();
+ const unique = this.item?.unique;
+ if (!unique) throw new Error('No unique id found for item');
+ this.dispatchEvent(new UmbDeselectedEvent(unique));
+ }
+
+ protected override firstUpdated(_changedProperties: PropertyValueMap | Map): void {
+ super.firstUpdated(_changedProperties);
+ this.setAttribute(UMB_MARK_ATTRIBUTE_NAME, this.getMarkAttributeName());
+ }
+
+ #boundOnSelected = this.#onSelected.bind(this);
+ #boundOnDeselected = this.#onDeselected.bind(this);
+
+ #createController(entityType: string) {
+ if (this.#extensionsController) {
+ this.#extensionsController.destroy();
+ }
+
+ this.#extensionsController = new UmbExtensionsElementInitializer(
+ this,
+ umbExtensionsRegistry,
+ this.getExtensionType(),
+ (manifest: ManifestEntityCollectionItemBase) => manifest.forEntityTypes.includes(entityType),
+ (extensionControllers) => {
+ this._component?.remove();
+ const component = extensionControllers[0]?.component || this.createFallbackElement();
+
+ // TODO: I would say this code can use feature of the UmbExtensionsElementInitializer, to set properties and get a fallback element. [NL]
+ // assign the properties to the component
+ component.item = this.item;
+ component.selectable = this.selectable;
+ component.selectOnly = this.selectOnly;
+ component.selected = this.selected;
+ component.disabled = this.disabled;
+ component.href = this.href;
+ component.detailProperties = this.detailProperties;
+
+ component.addEventListener(UmbSelectedEvent.TYPE, this.#boundOnSelected);
+ component.addEventListener(UmbDeselectedEvent.TYPE, this.#boundOnDeselected);
+
+ // Proxy the actions slot to the component
+ const slotElement = document.createElement('slot');
+ slotElement.name = 'actions';
+ slotElement.setAttribute('slot', 'actions');
+ component.appendChild(slotElement);
+
+ this._component = component;
+ },
+ undefined, // We can leave the alias to undefined, as we destroy this ourselves.
+ undefined,
+ { single: true },
+ );
+ }
+
+ override destroy(): void {
+ this._component?.removeEventListener(UmbSelectedEvent.TYPE, this.#boundOnSelected);
+ this._component?.removeEventListener(UmbDeselectedEvent.TYPE, this.#boundOnDeselected);
+ super.destroy();
+ }
+
+ /**
+ * Abstract methods that subclasses must implement
+ */
+ protected abstract getExtensionType(): string;
+ protected abstract createFallbackElement(): HTMLElement;
+ protected abstract getPathAddendum(entityType: string, unique: string): string;
+ protected abstract getMarkAttributeName(): string;
+}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-item/entity-item-ref/entity-item-ref.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-item/entity-item-ref/entity-item-ref.element.ts
index 836007d29cd2..78a5b2597896 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-item/entity-item-ref/entity-item-ref.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-item/entity-item-ref/entity-item-ref.element.ts
@@ -151,6 +151,9 @@ export class UmbEntityItemRefElement extends UmbLitElement {
this.setAttribute(UMB_MARK_ATTRIBUTE_NAME, 'entity-item-ref');
}
+ #boundOnSelected = this.#onSelected.bind(this);
+ #boundOnDeselected = this.#onDeselected.bind(this);
+
#createController(entityType: string) {
if (this.#extensionsController) {
this.#extensionsController.destroy();
@@ -175,8 +178,8 @@ export class UmbEntityItemRefElement extends UmbLitElement {
component.selected = this.selected;
component.disabled = this.disabled;
- component.addEventListener(UmbSelectedEvent.TYPE, this.#onSelected.bind(this));
- component.addEventListener(UmbDeselectedEvent.TYPE, this.#onDeselected.bind(this));
+ component.addEventListener(UmbSelectedEvent.TYPE, this.#boundOnSelected);
+ component.addEventListener(UmbDeselectedEvent.TYPE, this.#boundOnDeselected);
// Proxy the actions slot to the component
const slotElement = document.createElement('slot');
@@ -220,8 +223,8 @@ export class UmbEntityItemRefElement extends UmbLitElement {
}
override destroy(): void {
- this._component?.removeEventListener(UmbSelectedEvent.TYPE, this.#onSelected.bind(this));
- this._component?.removeEventListener(UmbDeselectedEvent.TYPE, this.#onDeselected.bind(this));
+ this._component?.removeEventListener(UmbSelectedEvent.TYPE, this.#boundOnSelected);
+ this._component?.removeEventListener(UmbDeselectedEvent.TYPE, this.#boundOnDeselected);
super.destroy();
}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json
index c51f6aa9cc75..14992b6b718f 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json
@@ -2593,6 +2593,7 @@
"file": "land-plot.svg"
}
],
+ "custom": [],
"simpleIcons": [
{
"name": "icon-facebook",
@@ -2626,282 +2627,282 @@
"umbraco": [
{
"name": "icon-art-easel",
- "file": "icon-art-easel.svg",
+ "file": "legacy/icon-art-easel.svg",
"legacy": true
},
{
"name": "icon-article",
- "file": "icon-article.svg",
+ "file": "legacy/icon-article.svg",
"legacy": true
},
{
"name": "icon-auction-hammer",
- "file": "icon-auction-hammer.svg",
+ "file": "legacy/icon-auction-hammer.svg",
"legacy": true
},
{
"name": "icon-badge-count",
- "file": "icon-badge-count.svg",
+ "file": "legacy/icon-badge-count.svg",
"legacy": true
},
{
"name": "icon-band-aid",
- "file": "icon-band-aid.svg",
+ "file": "legacy/icon-band-aid.svg",
"legacy": true
},
{
"name": "icon-baby-stroller",
- "file": "icon-baby-stroller.svg",
+ "file": "legacy/icon-baby-stroller.svg",
"legacy": true
},
{
"name": "icon-bill-dollar",
- "file": "icon-bill-dollar.svg",
+ "file": "legacy/icon-bill-dollar.svg",
"legacy": true
},
{
"name": "icon-bill-euro",
- "file": "icon-bill-euro.svg",
+ "file": "legacy/icon-bill-euro.svg",
"legacy": true
},
{
"name": "icon-bill-pound",
- "file": "icon-bill-pound.svg",
+ "file": "legacy/icon-bill-pound.svg",
"legacy": true
},
{
"name": "icon-bill-yen",
- "file": "icon-bill-yen.svg",
+ "file": "legacy/icon-bill-yen.svg",
"legacy": true
},
{
"name": "icon-bill",
- "file": "icon-bill.svg",
+ "file": "legacy/icon-bill.svg",
"legacy": true
},
{
"name": "icon-billboard",
- "file": "icon-billboard.svg",
+ "file": "legacy/icon-billboard.svg",
"legacy": true
},
{
"name": "icon-bills-dollar",
- "file": "icon-bills-dollar.svg",
+ "file": "legacy/icon-bills-dollar.svg",
"legacy": true
},
{
"name": "icon-bills-euro",
- "file": "icon-bills-euro.svg",
+ "file": "legacy/icon-bills-euro.svg",
"legacy": true
},
{
"name": "icon-bills-pound",
- "file": "icon-bills-pound.svg",
+ "file": "legacy/icon-bills-pound.svg",
"legacy": true
},
{
"name": "icon-bills-yen",
- "file": "icon-bills-yen.svg",
+ "file": "legacy/icon-bills-yen.svg",
"legacy": true
},
{
"name": "icon-bills",
- "file": "icon-bills.svg",
+ "file": "legacy/icon-bills.svg",
"legacy": true
},
{
"name": "icon-blueprint",
- "file": "icon-blueprint.svg",
+ "file": "legacy/icon-blueprint.svg",
"legacy": true
},
{
"name": "icon-bomb",
- "file": "icon-bomb.svg",
+ "file": "legacy/icon-bomb.svg",
"legacy": true
},
{
"name": "icon-cash-register",
- "file": "icon-cash-register.svg",
+ "file": "legacy/icon-cash-register.svg",
"legacy": true
},
{
"name": "icon-checkbox-dotted-active",
- "file": "icon-checkbox-dotted-active.svg",
+ "file": "legacy/icon-checkbox-dotted-active.svg",
"legacy": true
},
{
"name": "icon-chess",
- "file": "icon-chess.svg",
+ "file": "legacy/icon-chess.svg",
"legacy": true
},
{
"name": "icon-circus",
- "file": "icon-circus.svg",
+ "file": "legacy/icon-circus.svg",
"legacy": true
},
{
"name": "icon-clothes-hanger",
- "file": "icon-clothes-hanger.svg",
+ "file": "legacy/icon-clothes-hanger.svg",
"legacy": true
},
{
"name": "icon-coin",
- "file": "icon-coin.svg",
+ "file": "legacy/icon-coin.svg",
"legacy": true
},
{
"name": "icon-coins-dollar-alt",
- "file": "icon-coins-dollar-alt.svg",
+ "file": "legacy/icon-coins-dollar-alt.svg",
"legacy": true
},
{
"name": "icon-coins-dollar",
- "file": "icon-coins-dollar.svg",
+ "file": "legacy/icon-coins-dollar.svg",
"legacy": true
},
{
"name": "icon-coins-euro-alt",
- "file": "icon-coins-euro-alt.svg",
+ "file": "legacy/icon-coins-euro-alt.svg",
"legacy": true
},
{
"name": "icon-coins-euro",
- "file": "icon-coins-euro.svg",
+ "file": "legacy/icon-coins-euro.svg",
"legacy": true
},
{
"name": "icon-coins-pound-alt",
- "file": "icon-coins-pound-alt.svg",
+ "file": "legacy/icon-coins-pound-alt.svg",
"legacy": true
},
{
"name": "icon-coins-pound",
- "file": "icon-coins-pound.svg",
+ "file": "legacy/icon-coins-pound.svg",
"legacy": true
},
{
"name": "icon-coins-yen-alt",
- "file": "icon-coins-yen-alt.svg",
+ "file": "legacy/icon-coins-yen-alt.svg",
"legacy": true
},
{
"name": "icon-coins-yen",
- "file": "icon-coins-yen.svg",
+ "file": "legacy/icon-coins-yen.svg",
"legacy": true
},
{
"name": "icon-comb",
- "file": "icon-comb.svg",
+ "file": "legacy/icon-comb.svg",
"legacy": true
},
{
"name": "icon-desk",
- "file": "icon-desk.svg",
+ "file": "legacy/icon-desk.svg",
"legacy": true
},
{
"name": "icon-dollar-bag",
- "file": "icon-dollar-bag.svg",
+ "file": "legacy/icon-dollar-bag.svg",
"legacy": true
},
{
"name": "icon-eject",
- "file": "icon-eject.svg",
+ "file": "legacy/icon-eject.svg",
"legacy": true
},
{
"name": "icon-euro-bag",
- "file": "icon-euro-bag.svg",
+ "file": "legacy/icon-euro-bag.svg",
"legacy": true
},
{
"name": "icon-female-symbol",
- "file": "icon-female-symbol.svg",
+ "file": "legacy/icon-female-symbol.svg",
"legacy": true
},
{
"name": "icon-firewall",
- "file": "icon-firewall.svg",
+ "file": "legacy/icon-firewall.svg",
"legacy": true
},
{
"name": "icon-folder-open",
- "file": "icon-folder-open.svg",
+ "file": "legacy/icon-folder-open.svg",
"legacy": true
},
{
"name": "icon-folder-outline",
- "file": "icon-folder-outline.svg",
+ "file": "legacy/icon-folder-outline.svg",
"legacy": true
},
{
"name": "icon-handprint",
- "file": "icon-handprint.svg",
+ "file": "legacy/icon-handprint.svg",
"legacy": true
},
{
"name": "icon-hat",
- "file": "icon-hat.svg",
+ "file": "legacy/icon-hat.svg",
"legacy": true
},
{
"name": "icon-hd",
- "file": "icon-hd.svg",
+ "file": "legacy/icon-hd.svg",
"legacy": true
},
{
"name": "icon-inactive-line",
- "file": "icon-inactive-line.svg",
+ "file": "legacy/icon-inactive-line.svg",
"legacy": true
},
{
"name": "icon-keychain",
- "file": "icon-keychain.svg",
+ "file": "legacy/icon-keychain.svg",
"legacy": true
},
{
"name": "icon-keyhole",
- "file": "icon-keyhole.svg",
+ "file": "legacy/icon-keyhole.svg",
"legacy": true
},
{
"name": "icon-linkedin",
- "file": "icon-linkedin.svg",
+ "file": "legacy/icon-linkedin.svg",
"legacy": true
},
{
"name": "icon-linux-tux",
- "file": "icon-linux-tux.svg",
+ "file": "legacy/icon-linux-tux.svg",
"legacy": true
},
{
"name": "icon-male-and-female",
- "file": "icon-users.svg",
+ "file": "legacy/icon-users.svg",
"legacy": true
},
{
"name": "icon-male-symbol",
- "file": "icon-male-symbol.svg",
+ "file": "legacy/icon-male-symbol.svg",
"legacy": true
},
{
"name": "icon-molecular-network",
- "file": "icon-molecular-network.svg",
+ "file": "legacy/icon-molecular-network.svg",
"legacy": true
},
{
"name": "icon-molecular",
- "file": "icon-molecular.svg",
+ "file": "legacy/icon-molecular.svg",
"legacy": true
},
{
"name": "icon-trash-empty",
- "file": "icon-trash-empty.svg",
+ "file": "legacy/icon-trash-empty.svg",
"internal": true
},
{
"name": "icon-umbraco",
- "file": "icon-umbraco.svg"
+ "file": "legacy/icon-umbraco.svg"
}
]
}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-activity.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-activity.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-activity.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-activity.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-add.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-add.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-add.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-add.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-addressbook.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-addressbook.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-addressbook.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-addressbook.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-alarm-clock.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-alarm-clock.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-alarm-clock.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-alarm-clock.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-alert-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-alert-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-alert-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-alert-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-alert.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-alert.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-alert.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-alert.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-anchor.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-anchor.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-anchor.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-anchor.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-app.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-app.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-app.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-app.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-application-error.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-application-error.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-application-error.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-application-error.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-application-window-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-application-window-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-application-window-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-application-window-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-application-window.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-application-window.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-application-window.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-application-window.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-arrivals.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-arrivals.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-arrivals.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-arrivals.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-arrow-down.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-arrow-down.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-arrow-down.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-arrow-down.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-arrow-left.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-arrow-left.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-arrow-left.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-arrow-left.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-arrow-right.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-arrow-right.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-arrow-right.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-arrow-right.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-arrow-up.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-arrow-up.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-arrow-up.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-arrow-up.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-art-easel.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-art-easel.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-art-easel.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-art-easel.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-article.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-article.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-article.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-article.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-attachment.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-attachment.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-attachment.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-attachment.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-auction-hammer.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-auction-hammer.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-auction-hammer.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-auction-hammer.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-autofill.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-autofill.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-autofill.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-autofill.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-award.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-award.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-award.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-award.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-axis-rotation-2.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-axis-rotation-2.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-axis-rotation-2.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-axis-rotation-2.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-axis-rotation-3.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-axis-rotation-3.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-axis-rotation-3.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-axis-rotation-3.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-axis-rotation.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-axis-rotation.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-axis-rotation.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-axis-rotation.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-azure.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-azure.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-azure.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-azure.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-baby-stroller.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-baby-stroller.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-baby-stroller.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-baby-stroller.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-backspace.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-backspace.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-backspace.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-backspace.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-badge-add.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-badge-add.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-badge-add.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-badge-add.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-badge-count.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-badge-count.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-badge-count.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-badge-count.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-badge-remove.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-badge-remove.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-badge-remove.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-badge-remove.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-badge-restricted.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-badge-restricted.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-badge-restricted.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-badge-restricted.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ball.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-ball.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ball.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-ball.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-band-aid.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-band-aid.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-band-aid.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-band-aid.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bar-chart.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bar-chart.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bar-chart.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bar-chart.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-barcode.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-barcode.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-barcode.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-barcode.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bars.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bars.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bars.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bars.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-battery-full.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-battery-full.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-battery-full.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-battery-full.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-battery-low.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-battery-low.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-battery-low.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-battery-low.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-beer-glass.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-beer-glass.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-beer-glass.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-beer-glass.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bell-off.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bell-off.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bell-off.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bell-off.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bell.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bell.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bell.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bell.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bill-dollar.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bill-dollar.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bill-dollar.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bill-dollar.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bill-euro.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bill-euro.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bill-euro.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bill-euro.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bill-pound.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bill-pound.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bill-pound.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bill-pound.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bill-yen.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bill-yen.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bill-yen.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bill-yen.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bill.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bill.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bill.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bill.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-billboard.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-billboard.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-billboard.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-billboard.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bills-dollar.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bills-dollar.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bills-dollar.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bills-dollar.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bills-euro.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bills-euro.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bills-euro.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bills-euro.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bills-pound.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bills-pound.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bills-pound.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bills-pound.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bills-yen.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bills-yen.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bills-yen.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bills-yen.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bills.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bills.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bills.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bills.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-binarycode.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-binarycode.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-binarycode.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-binarycode.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-binoculars.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-binoculars.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-binoculars.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-binoculars.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bird.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bird.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bird.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bird.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-birthday-cake.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-birthday-cake.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-birthday-cake.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-birthday-cake.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-block.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-block.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-block.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-block.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-blueprint.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-blueprint.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-blueprint.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-blueprint.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bluetooth.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bluetooth.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bluetooth.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bluetooth.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-boat-shipping.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-boat-shipping.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-boat-shipping.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-boat-shipping.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bomb.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bomb.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bomb.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bomb.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bones.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bones.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bones.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bones.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-book-alt-2.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-book-alt-2.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-book-alt-2.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-book-alt-2.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-book-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-book-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-book-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-book-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-book.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-book.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-book.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-book.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bookmark.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bookmark.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bookmark.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bookmark.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-books.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-books.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-books.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-books.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-box-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-box-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-box-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-box-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-box-open.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-box-open.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-box-open.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-box-open.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-box.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-box.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-box.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-box.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-brackets.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-brackets.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-brackets.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-brackets.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-brick.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-brick.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-brick.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-brick.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-briefcase.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-briefcase.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-briefcase.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-briefcase.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-browser-window.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-browser-window.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-browser-window.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-browser-window.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-brush-alt-2.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-brush-alt-2.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-brush-alt-2.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-brush-alt-2.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-brush-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-brush-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-brush-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-brush-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-brush.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-brush.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-brush.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-brush.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bug.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bug.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bug.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bug.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bulleted-list.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bulleted-list.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bulleted-list.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bulleted-list.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-burn.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-burn.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-burn.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-burn.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bus.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bus.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-bus.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-bus.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-calculator.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-calculator.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-calculator.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-calculator.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-calendar-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-calendar-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-calendar-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-calendar-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-calendar.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-calendar.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-calendar.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-calendar.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-camcorder.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-camcorder.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-camcorder.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-camcorder.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-camera-roll.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-camera-roll.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-camera-roll.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-camera-roll.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-candy.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-candy.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-candy.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-candy.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-caps-lock.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-caps-lock.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-caps-lock.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-caps-lock.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-car.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-car.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-car.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-car.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cash-register.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-cash-register.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cash-register.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-cash-register.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-categories.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-categories.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-categories.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-categories.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-certificate.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-certificate.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-certificate.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-certificate.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chart-curve.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-chart-curve.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chart-curve.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-chart-curve.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chart.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-chart.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chart.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-chart.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chat-active.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-chat-active.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chat-active.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-chat-active.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chat.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-chat.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chat.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-chat.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-check.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-check.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-check.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-check.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-checkbox-dotted-active.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-checkbox-dotted-active.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-checkbox-dotted-active.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-checkbox-dotted-active.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-checkbox-dotted.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-checkbox-dotted.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-checkbox-dotted.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-checkbox-dotted.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-checkbox-empty.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-checkbox-empty.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-checkbox-empty.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-checkbox-empty.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-checkbox.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-checkbox.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-checkbox.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-checkbox.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chess.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-chess.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chess.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-chess.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chip-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-chip-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chip-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-chip-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chip.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-chip.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-chip.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-chip.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cinema.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-cinema.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cinema.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-cinema.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-circle-dotted-active.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-circle-dotted-active.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-circle-dotted-active.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-circle-dotted-active.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-circle-dotted.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-circle-dotted.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-circle-dotted.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-circle-dotted.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-circuits.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-circuits.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-circuits.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-circuits.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-circus.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-circus.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-circus.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-circus.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-client.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-client.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-client.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-client.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-clothes-hanger.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-clothes-hanger.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-clothes-hanger.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-clothes-hanger.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cloud-drive.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-cloud-drive.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cloud-drive.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-cloud-drive.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cloud-upload.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-cloud-upload.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cloud-upload.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-cloud-upload.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cloud.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-cloud.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cloud.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-cloud.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cloudy.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-cloudy.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cloudy.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-cloudy.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-clubs.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-clubs.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-clubs.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-clubs.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cocktail.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-cocktail.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cocktail.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-cocktail.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-code.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-code.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-code.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-code.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coffee.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coffee.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coffee.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coffee.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coin-dollar.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coin-dollar.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coin-dollar.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coin-dollar.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coin-euro.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coin-euro.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coin-euro.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coin-euro.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coin-pound.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coin-pound.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coin-pound.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coin-pound.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coin-yen.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coin-yen.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coin-yen.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coin-yen.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coin.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coin.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coin.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coin.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coins-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coins-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-dollar-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coins-dollar-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-dollar-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coins-dollar-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-dollar.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coins-dollar.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-dollar.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coins-dollar.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-euro-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coins-euro-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-euro-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coins-euro-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-euro.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coins-euro.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-euro.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coins-euro.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-pound-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coins-pound-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-pound-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coins-pound-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-pound.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coins-pound.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-pound.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coins-pound.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-yen-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coins-yen-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-yen-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coins-yen-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-yen.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coins-yen.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins-yen.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coins-yen.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coins.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coins.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coins.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-color-bucket.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-color-bucket.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-color-bucket.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-color-bucket.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-colorpicker.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-colorpicker.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-colorpicker.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-colorpicker.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-columns.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-columns.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-columns.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-columns.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-comb.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-comb.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-comb.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-comb.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-combination-lock-open.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-combination-lock-open.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-combination-lock-open.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-combination-lock-open.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-combination-lock.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-combination-lock.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-combination-lock.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-combination-lock.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-command.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-command.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-command.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-command.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-company.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-company.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-company.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-company.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-compress.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-compress.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-compress.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-compress.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-connection.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-connection.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-connection.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-connection.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-console.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-console.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-console.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-console.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-contrast.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-contrast.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-contrast.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-contrast.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-conversation-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-conversation-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-conversation-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-conversation-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-conversation.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-conversation.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-conversation.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-conversation.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coverflow.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coverflow.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-coverflow.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-coverflow.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-credit-card-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-credit-card-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-credit-card-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-credit-card-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-credit-card.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-credit-card.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-credit-card.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-credit-card.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-crop.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-crop.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-crop.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-crop.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-crosshair.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-crosshair.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-crosshair.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-crosshair.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-crown-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-crown-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-crown-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-crown-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-crown.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-crown.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-crown.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-crown.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cupcake.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-cupcake.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cupcake.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-cupcake.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-curve.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-curve.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-curve.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-curve.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cut.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-cut.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-cut.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-cut.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-dashboard.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-dashboard.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-dashboard.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-dashboard.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-defrag.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-defrag.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-defrag.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-defrag.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-delete-key.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-delete-key.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-delete-key.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-delete-key.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-delete.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-delete.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-delete.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-delete.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-departure.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-departure.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-departure.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-departure.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-desk.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-desk.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-desk.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-desk.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-desktop.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-desktop.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-desktop.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-desktop.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diagnostics.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-diagnostics.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diagnostics.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-diagnostics.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diagonal-arrow-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-diagonal-arrow-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diagonal-arrow-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-diagonal-arrow-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diagonal-arrow.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-diagonal-arrow.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diagonal-arrow.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-diagonal-arrow.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diamond.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-diamond.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diamond.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-diamond.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diamonds.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-diamonds.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diamonds.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-diamonds.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-dice.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-dice.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-dice.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-dice.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diploma-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-diploma-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diploma-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-diploma-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diploma.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-diploma.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-diploma.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-diploma.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-directions-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-directions-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-directions-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-directions-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-directions.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-directions.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-directions.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-directions.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-disc.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-disc.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-disc.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-disc.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-disk-image.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-disk-image.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-disk-image.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-disk-image.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-display.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-display.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-display.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-display.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-dna.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-dna.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-dna.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-dna.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-dock-connector.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-dock-connector.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-dock-connector.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-dock-connector.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-document-dashed-line.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-document-dashed-line.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-document-dashed-line.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-document-dashed-line.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-document.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-document.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-document.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-document.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-documents.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-documents.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-documents.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-documents.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-dollar-bag.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-dollar-bag.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-dollar-bag.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-dollar-bag.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-donate.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-donate.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-donate.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-donate.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-door-open-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-door-open-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-door-open-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-door-open-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-door-open.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-door-open.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-door-open.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-door-open.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-download-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-download-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-download-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-download-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-download.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-download.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-download.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-download.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-drop.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-drop.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-drop.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-drop.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-eco.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-eco.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-eco.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-eco.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-economy.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-economy.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-economy.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-economy.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-edit.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-edit.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-edit.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-edit.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-eject.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-eject.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-eject.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-eject.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-employee.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-employee.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-employee.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-employee.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-energy-saving-bulb.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-energy-saving-bulb.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-energy-saving-bulb.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-energy-saving-bulb.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-enter.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-enter.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-enter.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-enter.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-equalizer.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-equalizer.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-equalizer.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-equalizer.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-escape.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-escape.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-escape.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-escape.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ethernet.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-ethernet.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ethernet.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-ethernet.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-euro-bag.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-euro-bag.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-euro-bag.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-euro-bag.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-exit-fullscreen.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-exit-fullscreen.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-exit-fullscreen.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-exit-fullscreen.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-eye.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-eye.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-eye.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-eye.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-facebook-like.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-facebook-like.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-facebook-like.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-facebook-like.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-factory.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-factory.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-factory.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-factory.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-favorite.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-favorite.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-favorite.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-favorite.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-female-symbol.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-female-symbol.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-female-symbol.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-female-symbol.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-file-cabinet.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-file-cabinet.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-file-cabinet.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-file-cabinet.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-files.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-files.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-files.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-files.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-filter-arrows.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-filter-arrows.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-filter-arrows.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-filter-arrows.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-filter.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-filter.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-filter.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-filter.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-fingerprint.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-fingerprint.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-fingerprint.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-fingerprint.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-fire.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-fire.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-fire.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-fire.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-firewall.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-firewall.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-firewall.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-firewall.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-firewire.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-firewire.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-firewire.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-firewire.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-flag-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-flag-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-flag-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-flag-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-flag.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-flag.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-flag.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-flag.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-flash.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-flash.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-flash.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-flash.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-flashlight.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-flashlight.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-flashlight.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-flashlight.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-flowerpot.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-flowerpot.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-flowerpot.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-flowerpot.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-folder-open.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-folder-open.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-folder-open.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-folder-open.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-folder-outline.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-folder-outline.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-folder-outline.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-folder-outline.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-folder.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-folder.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-folder.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-folder.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-folders.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-folders.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-folders.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-folders.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-font.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-font.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-font.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-font.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-food.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-food.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-food.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-food.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-footprints.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-footprints.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-footprints.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-footprints.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-forking.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-forking.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-forking.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-forking.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-frame-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-frame-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-frame-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-frame-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-frame.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-frame.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-frame.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-frame.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-fullscreen-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-fullscreen-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-fullscreen-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-fullscreen-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-fullscreen.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-fullscreen.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-fullscreen.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-fullscreen.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-game.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-game.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-game.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-game.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-geometry.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-geometry.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-geometry.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-geometry.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-gift.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-gift.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-gift.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-gift.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-glasses.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-glasses.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-glasses.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-glasses.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-globe-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-globe-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-asia.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-globe-asia.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-asia.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-globe-asia.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-europe-africa.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-globe-europe-africa.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-europe-africa.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-globe-europe-africa.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-inverted-america.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-globe-inverted-america.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-inverted-america.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-globe-inverted-america.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-inverted-asia.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-globe-inverted-asia.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-inverted-asia.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-globe-inverted-asia.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-inverted-europe-africa.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-globe-inverted-europe-africa.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe-inverted-europe-africa.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-globe-inverted-europe-africa.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-globe.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-globe.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-globe.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-gps.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-gps.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-gps.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-gps.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-graduate.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-graduate.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-graduate.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-graduate.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-grid.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-grid.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-grid.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-grid.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hammer.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-hammer.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hammer.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-hammer.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hand-active-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-hand-active-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hand-active-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-hand-active-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hand-active.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-hand-active.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hand-active.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-hand-active.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hand-pointer-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-hand-pointer-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hand-pointer-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-hand-pointer-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hand-pointer.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-hand-pointer.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hand-pointer.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-hand-pointer.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-handprint.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-handprint.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-handprint.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-handprint.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-handshake.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-handshake.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-handshake.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-handshake.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-handtool-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-handtool-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-handtool-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-handtool-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-handtool.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-handtool.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-handtool.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-handtool.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hard-drive-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-hard-drive-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hard-drive-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-hard-drive-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hard-drive.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-hard-drive.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hard-drive.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-hard-drive.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hat.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-hat.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hat.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-hat.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hd.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-hd.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hd.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-hd.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-headphones.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-headphones.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-headphones.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-headphones.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-headset.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-headset.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-headset.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-headset.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hearts.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-hearts.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hearts.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-hearts.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-height.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-height.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-height.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-height.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-help-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-help-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-help-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-help-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-help.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-help.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-help.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-help.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-home.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-home.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-home.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-home.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hourglass.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-hourglass.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-hourglass.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-hourglass.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-imac.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-imac.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-imac.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-imac.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-inactive-line.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-inactive-line.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-inactive-line.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-inactive-line.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-inbox-full.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-inbox-full.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-inbox-full.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-inbox-full.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-inbox.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-inbox.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-inbox.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-inbox.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-indent.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-indent.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-indent.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-indent.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-infinity.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-infinity.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-infinity.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-infinity.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-info.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-info.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-info.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-info.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-invoice.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-invoice.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-invoice.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-invoice.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ipad.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-ipad.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ipad.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-ipad.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-iphone.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-iphone.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-iphone.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-iphone.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-item-arrangement.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-item-arrangement.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-item-arrangement.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-item-arrangement.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-junk.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-junk.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-junk.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-junk.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-key.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-key.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-key.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-key.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-keyboard.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-keyboard.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-keyboard.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-keyboard.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-keychain.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-keychain.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-keychain.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-keychain.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-keyhole.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-keyhole.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-keyhole.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-keyhole.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lab.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-lab.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lab.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-lab.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-laptop.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-laptop.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-laptop.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-laptop.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-layers-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-layers-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-layers-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-layers-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-layers.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-layers.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-layers.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-layers.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-layout.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-layout.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-layout.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-layout.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-left-double-arrow.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-left-double-arrow.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-left-double-arrow.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-left-double-arrow.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-legal.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-legal.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-legal.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-legal.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lense.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-lense.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lense.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-lense.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-library.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-library.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-library.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-library.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-light-down.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-light-down.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-light-down.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-light-down.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-light-up.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-light-up.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-light-up.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-light-up.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lightbulb-active.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-lightbulb-active.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lightbulb-active.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-lightbulb-active.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lightbulb.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-lightbulb.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lightbulb.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-lightbulb.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lightning.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-lightning.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lightning.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-lightning.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-link.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-link.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-link.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-link.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-linkedin.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-linkedin.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-linkedin.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-linkedin.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-linux-tux.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-linux-tux.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-linux-tux.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-linux-tux.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-list.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-list.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-list.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-list.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-load.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-load.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-load.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-load.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-loading.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-loading.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-loading.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-loading.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-locate.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-locate.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-locate.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-locate.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-location-near-me.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-location-near-me.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-location-near-me.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-location-near-me.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-location-nearby.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-location-nearby.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-location-nearby.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-location-nearby.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lock.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-lock.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-lock.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-lock.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-log-out.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-log-out.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-log-out.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-log-out.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-logout.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-logout.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-logout.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-logout.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-loupe.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-loupe.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-loupe.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-loupe.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-magnet.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-magnet.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-magnet.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-magnet.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mailbox.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-mailbox.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mailbox.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-mailbox.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-male-and-female.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-male-and-female.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-male-and-female.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-male-and-female.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-male-symbol.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-male-symbol.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-male-symbol.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-male-symbol.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-map-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-map-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-map-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-map-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-map-location.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-map-location.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-map-location.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-map-location.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-map-marker.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-map-marker.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-map-marker.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-map-marker.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-map.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-map.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-map.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-map.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-medal.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-medal.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-medal.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-medal.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-medical-emergency.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-medical-emergency.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-medical-emergency.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-medical-emergency.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-medicine.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-medicine.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-medicine.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-medicine.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-meeting.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-meeting.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-meeting.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-meeting.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-megaphone.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-megaphone.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-megaphone.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-megaphone.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-merge.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-merge.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-merge.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-merge.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-message-open.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-message-open.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-message-open.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-message-open.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-message-unopened.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-message-unopened.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-message-unopened.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-message-unopened.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-message.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-message.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-message.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-message.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-microscope.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-microscope.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-microscope.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-microscope.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-microsoft.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-microsoft.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-microsoft.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-microsoft.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mindmap.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-mindmap.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mindmap.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-mindmap.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mobile.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-mobile.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mobile.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-mobile.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-molecular-network.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-molecular-network.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-molecular-network.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-molecular-network.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-molecular.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-molecular.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-molecular.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-molecular.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mountain.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-mountain.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mountain.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-mountain.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mouse-cursor.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-mouse-cursor.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mouse-cursor.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-mouse-cursor.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mouse.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-mouse.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-mouse.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-mouse.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-movie-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-movie-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-movie-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-movie-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-movie.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-movie.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-movie.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-movie.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-multiple-credit-cards.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-multiple-credit-cards.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-multiple-credit-cards.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-multiple-credit-cards.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-multiple-windows.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-multiple-windows.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-multiple-windows.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-multiple-windows.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-music.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-music.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-music.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-music.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-name-badge.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-name-badge.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-name-badge.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-name-badge.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-bottom.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation-bottom.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-bottom.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation-bottom.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-down.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation-down.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-down.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation-down.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-first.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation-first.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-first.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation-first.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-horizontal.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation-horizontal.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-horizontal.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation-horizontal.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-last.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation-last.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-last.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation-last.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-left.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation-left.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-left.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation-left.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-right.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation-right.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-right.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation-right.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-road.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation-road.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-road.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation-road.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-top.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation-top.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-top.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation-top.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-up.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation-up.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-up.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation-up.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-vertical.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation-vertical.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation-vertical.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation-vertical.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigation.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigation.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigational-arrow.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigational-arrow.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-navigational-arrow.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-navigational-arrow.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-network-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-network-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-network-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-network-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-newspaper-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-newspaper-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-newspaper-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-newspaper-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-newspaper.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-newspaper.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-newspaper.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-newspaper.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-next-media.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-next-media.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-next-media.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-next-media.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-next.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-next.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-next.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-next.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-nodes.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-nodes.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-nodes.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-nodes.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-notepad-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-notepad-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-notepad-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-notepad-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-notepad.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-notepad.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-notepad.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-notepad.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-old-key.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-old-key.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-old-key.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-old-key.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-old-phone.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-old-phone.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-old-phone.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-old-phone.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-operator.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-operator.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-operator.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-operator.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ordered-list.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-ordered-list.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ordered-list.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-ordered-list.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-os-x.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-os-x.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-os-x.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-os-x.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-out.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-out.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-out.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-out.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-outbox.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-outbox.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-outbox.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-outbox.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-outdent.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-outdent.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-outdent.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-outdent.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-page-add.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-page-add.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-page-add.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-page-add.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-page-down.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-page-down.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-page-down.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-page-down.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-page-remove.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-page-remove.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-page-remove.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-page-remove.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-page-restricted.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-page-restricted.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-page-restricted.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-page-restricted.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-page-up.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-page-up.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-page-up.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-page-up.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-paint-roller.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-paint-roller.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-paint-roller.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-paint-roller.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-palette.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-palette.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-palette.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-palette.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-panel-show.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-panel-show.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-panel-show.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-panel-show.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pannel-close.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pannel-close.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pannel-close.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pannel-close.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pants.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pants.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pants.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pants.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-paper-bag.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-paper-bag.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-paper-bag.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-paper-bag.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-paper-plane-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-paper-plane-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-paper-plane-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-paper-plane-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-paper-plane.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-paper-plane.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-paper-plane.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-paper-plane.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-parachute-drop.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-parachute-drop.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-parachute-drop.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-parachute-drop.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-parental-control.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-parental-control.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-parental-control.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-parental-control.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-partly-cloudy.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-partly-cloudy.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-partly-cloudy.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-partly-cloudy.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-paste-in.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-paste-in.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-paste-in.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-paste-in.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-path.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-path.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-path.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-path.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pause.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pause.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pause.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pause.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pc.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pc.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pc.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pc.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-people-alt-2.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-people-alt-2.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-people-alt-2.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-people-alt-2.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-people-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-people-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-people-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-people-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-people-female.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-people-female.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-people-female.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-people-female.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-people.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-people.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-people.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-people.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-phone-ring.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-phone-ring.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-phone-ring.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-phone-ring.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-phone.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-phone.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-phone.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-phone.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-photo-album.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-photo-album.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-photo-album.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-photo-album.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-picture.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-picture.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-picture.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-picture.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pictures-alt-2.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pictures-alt-2.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pictures-alt-2.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pictures-alt-2.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pictures-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pictures-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pictures-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pictures-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pictures.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pictures.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pictures.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pictures.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pie-chart.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pie-chart.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pie-chart.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pie-chart.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-piggy-bank.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-piggy-bank.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-piggy-bank.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-piggy-bank.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pin-location.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pin-location.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pin-location.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pin-location.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-piracy.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-piracy.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-piracy.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-piracy.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-plane.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-plane.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-plane.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-plane.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-planet.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-planet.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-planet.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-planet.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-play.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-play.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-play.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-play.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-playing-cards.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-playing-cards.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-playing-cards.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-playing-cards.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-playlist.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-playlist.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-playlist.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-playlist.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-plugin.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-plugin.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-plugin.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-plugin.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-podcast.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-podcast.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-podcast.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-podcast.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-poker-chip.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-poker-chip.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-poker-chip.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-poker-chip.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-poll.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-poll.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-poll.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-poll.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-post-it.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-post-it.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-post-it.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-post-it.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pound-bag.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pound-bag.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pound-bag.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pound-bag.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-power-outlet.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-power-outlet.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-power-outlet.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-power-outlet.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-power.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-power.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-power.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-power.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-presentation.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-presentation.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-presentation.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-presentation.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-previous-media.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-previous-media.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-previous-media.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-previous-media.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-previous.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-previous.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-previous.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-previous.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-price-dollar.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-price-dollar.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-price-dollar.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-price-dollar.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-price-euro.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-price-euro.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-price-euro.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-price-euro.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-price-pound.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-price-pound.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-price-pound.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-price-pound.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-price-yen.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-price-yen.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-price-yen.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-price-yen.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-print.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-print.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-print.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-print.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-printer-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-printer-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-printer-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-printer-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-projector.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-projector.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-projector.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-projector.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pulse.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pulse.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pulse.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pulse.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pushpin.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pushpin.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-pushpin.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-pushpin.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-qr-code.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-qr-code.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-qr-code.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-qr-code.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-quote.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-quote.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-quote.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-quote.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-radio-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-radio-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-radio-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-radio-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-radio-receiver.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-radio-receiver.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-radio-receiver.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-radio-receiver.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-radio.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-radio.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-radio.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-radio.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-rain.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-rain.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-rain.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-rain.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-rate.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-rate.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-rate.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-rate.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-re-post.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-re-post.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-re-post.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-re-post.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-receipt-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-receipt-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-receipt-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-receipt-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-receipt-dollar.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-receipt-dollar.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-receipt-dollar.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-receipt-dollar.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-receipt-euro.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-receipt-euro.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-receipt-euro.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-receipt-euro.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-receipt-pound.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-receipt-pound.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-receipt-pound.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-receipt-pound.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-receipt-yen.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-receipt-yen.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-receipt-yen.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-receipt-yen.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-reception.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-reception.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-reception.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-reception.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-record.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-record.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-record.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-record.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-redo.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-redo.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-redo.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-redo.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-refresh.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-refresh.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-refresh.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-refresh.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-remote.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-remote.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-remote.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-remote.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-remove.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-remove.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-remove.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-remove.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-repeat-one.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-repeat-one.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-repeat-one.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-repeat-one.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-repeat.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-repeat.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-repeat.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-repeat.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-reply-arrow.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-reply-arrow.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-reply-arrow.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-reply-arrow.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-resize.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-resize.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-resize.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-resize.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-return-to-top.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-return-to-top.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-return-to-top.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-return-to-top.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-right-double-arrow.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-right-double-arrow.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-right-double-arrow.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-right-double-arrow.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-road.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-road.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-road.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-road.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-roadsign.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-roadsign.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-roadsign.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-roadsign.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-rocket.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-rocket.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-rocket.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-rocket.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-rss.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-rss.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-rss.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-rss.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ruler-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-ruler-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ruler-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-ruler-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ruler.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-ruler.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ruler.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-ruler.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-safe.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-safe.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-safe.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-safe.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-safedial.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-safedial.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-safedial.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-safedial.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sandbox-toys.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sandbox-toys.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sandbox-toys.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sandbox-toys.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-satellite-dish.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-satellite-dish.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-satellite-dish.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-satellite-dish.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-save.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-save.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-save.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-save.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-scan.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-scan.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-scan.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-scan.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-school.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-school.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-school.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-school.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-screensharing.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-screensharing.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-screensharing.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-screensharing.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-script-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-script-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-script-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-script-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-script.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-script.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-script.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-script.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-scull.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-scull.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-scull.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-scull.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-search.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-search.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-search.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-search.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-security-camera.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-security-camera.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-security-camera.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-security-camera.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sensor.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sensor.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sensor.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sensor.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-server-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-server-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-server-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-server-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-server.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-server.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-server.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-server.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-settings-alt-2.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-settings-alt-2.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-settings-alt-2.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-settings-alt-2.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-settings-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-settings-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-settings-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-settings-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-settings.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-settings.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-settings.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-settings.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-share-alt-2.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-share-alt-2.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-share-alt-2.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-share-alt-2.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-share-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-share-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-share-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-share-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-share.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-share.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-share.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-share.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sharing-iphone.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sharing-iphone.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sharing-iphone.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sharing-iphone.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shield.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-shield.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shield.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-shield.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shift.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-shift.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shift.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-shift.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shipping-box.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-shipping-box.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shipping-box.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-shipping-box.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shipping.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-shipping.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shipping.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-shipping.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shoe.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-shoe.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shoe.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-shoe.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shopping-basket-alt-2.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-shopping-basket-alt-2.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shopping-basket-alt-2.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-shopping-basket-alt-2.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shopping-basket-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-shopping-basket-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shopping-basket-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-shopping-basket-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shopping-basket.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-shopping-basket.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shopping-basket.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-shopping-basket.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shorts.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-shorts.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shorts.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-shorts.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shuffle.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-shuffle.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-shuffle.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-shuffle.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sience.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sience.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sience.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sience.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-simcard.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-simcard.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-simcard.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-simcard.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-single-note.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-single-note.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-single-note.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-single-note.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sitemap.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sitemap.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sitemap.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sitemap.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sleep.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sleep.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sleep.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sleep.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-slideshow.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-slideshow.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-slideshow.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-slideshow.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-smiley-inverted.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-smiley-inverted.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-smiley-inverted.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-smiley-inverted.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-smiley.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-smiley.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-smiley.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-smiley.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-snow.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-snow.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-snow.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-snow.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sound-low.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sound-low.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sound-low.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sound-low.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sound-medium.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sound-medium.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sound-medium.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sound-medium.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sound-off.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sound-off.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sound-off.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sound-off.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sound-waves.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sound-waves.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sound-waves.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sound-waves.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sound.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sound.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sound.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sound.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-spades.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-spades.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-spades.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-spades.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-speaker.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-speaker.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-speaker.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-speaker.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-speed-gauge.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-speed-gauge.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-speed-gauge.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-speed-gauge.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-split-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-split-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-split-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-split-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-split.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-split.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-split.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-split.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sprout.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sprout.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sprout.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sprout.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-squiggly-line.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-squiggly-line.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-squiggly-line.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-squiggly-line.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ssd.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-ssd.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ssd.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-ssd.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stacked-disks.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-stacked-disks.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stacked-disks.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-stacked-disks.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stamp.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-stamp.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stamp.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-stamp.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stop-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-stop-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stop-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-stop-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stop-hand.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-stop-hand.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stop-hand.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-stop-hand.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stop.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-stop.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stop.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-stop.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-store.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-store.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-store.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-store.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stream.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-stream.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-stream.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-stream.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sunny.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sunny.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sunny.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sunny.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sweatshirt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sweatshirt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sweatshirt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sweatshirt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sync.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sync.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-sync.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-sync.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-t-shirt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-t-shirt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-t-shirt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-t-shirt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tab-key.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-tab-key.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tab-key.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-tab-key.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tab.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-tab.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tab.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-tab.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tactics.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-tactics.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tactics.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-tactics.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tag.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-tag.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tag.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-tag.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tags.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-tags.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tags.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-tags.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-takeaway-cup.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-takeaway-cup.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-takeaway-cup.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-takeaway-cup.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-target.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-target.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-target.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-target.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-temperatrure-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-temperatrure-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-temperatrure-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-temperatrure-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-temperature.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-temperature.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-temperature.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-temperature.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-terminal.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-terminal.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-terminal.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-terminal.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-theater.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-theater.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-theater.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-theater.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-theif.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-theif.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-theif.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-theif.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thought-bubble.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-thought-bubble.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thought-bubble.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-thought-bubble.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thumb-down.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-thumb-down.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thumb-down.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-thumb-down.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thumb-up.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-thumb-up.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thumb-up.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-thumb-up.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thumbnail-list.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-thumbnail-list.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thumbnail-list.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-thumbnail-list.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thumbnails-small.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-thumbnails-small.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thumbnails-small.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-thumbnails-small.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thumbnails.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-thumbnails.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-thumbnails.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-thumbnails.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ticket.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-ticket.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-ticket.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-ticket.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-time.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-time.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-time.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-time.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-timer.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-timer.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-timer.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-timer.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tools.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-tools.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tools.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-tools.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-top.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-top.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-top.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-top.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-traffic-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-traffic-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-traffic-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-traffic-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-trafic.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-trafic.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-trafic.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-trafic.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-train.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-train.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-train.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-train.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-trash-alt-2.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-trash-alt-2.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-trash-alt-2.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-trash-alt-2.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-trash-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-trash-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-trash-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-trash-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-trash-empty.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-trash-empty.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-trash-empty.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-trash-empty.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-trash.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-trash.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-trash.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-trash.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tree.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-tree.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tree.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-tree.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-trophy.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-trophy.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-trophy.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-trophy.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-truck.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-truck.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-truck.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-truck.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tv-old.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-tv-old.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tv-old.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-tv-old.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tv.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-tv.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-tv.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-tv.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-twitter.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-twitter.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-twitter.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-twitter.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-content.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-umb-content.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-content.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-umb-content.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-contour.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-umb-contour.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-contour.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-umb-contour.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-deploy.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-umb-deploy.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-deploy.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-umb-deploy.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-developer.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-umb-developer.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-developer.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-umb-developer.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-media.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-umb-media.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-media.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-umb-media.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-members.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-umb-members.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-members.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-umb-members.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-settings.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-umb-settings.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-settings.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-umb-settings.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-users.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-umb-users.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umb-users.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-umb-users.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umbraco.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-umbraco.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umbraco.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-umbraco.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umbrella.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-umbrella.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umbrella.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-umbrella.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-undo.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-undo.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-undo.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-undo.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-universal.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-universal.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-universal.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-universal.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-unlocked.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-unlocked.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-unlocked.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-unlocked.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-untitled.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-untitled.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-untitled.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-untitled.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-usb-connector.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-usb-connector.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-usb-connector.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-usb-connector.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-usb.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-usb.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-usb.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-usb.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-user-female.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-user-female.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-user-female.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-user-female.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-user-females-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-user-females-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-user-females-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-user-females-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-user-females.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-user-females.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-user-females.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-user-females.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-user-glasses.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-user-glasses.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-user-glasses.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-user-glasses.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-user.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-user.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-user.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-user.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-users-alt.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-users-alt.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-users-alt.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-users-alt.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-users.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-users.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-users.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-users.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-utilities.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-utilities.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-utilities.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-utilities.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-vcard.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-vcard.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-vcard.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-vcard.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-video.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-video.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-video.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-video.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-voice.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-voice.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-voice.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-voice.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wall-plug.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-wall-plug.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wall-plug.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-wall-plug.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wallet.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-wallet.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wallet.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-wallet.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wand.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-wand.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wand.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-wand.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-war.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-war.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-war.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-war.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-webhook.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-webhook.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-webhook.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-webhook.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-weight.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-weight.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-weight.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-weight.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-width.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-width.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-width.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-width.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wifi.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-wifi.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wifi.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-wifi.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-window-popin.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-window-popin.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-window-popin.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-window-popin.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-window-sizes.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-window-sizes.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-window-sizes.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-window-sizes.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-windows.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-windows.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-windows.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-windows.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wine-glass.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-wine-glass.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wine-glass.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-wine-glass.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wrench.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-wrench.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wrench.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-wrench.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wrong.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-wrong.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-wrong.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-wrong.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-yen-bag.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-yen-bag.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-yen-bag.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-yen-bag.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-zip.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-zip.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-zip.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-zip.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-zom-out.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-zom-out.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-zom-out.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-zom-out.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-zoom-in.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-zoom-in.svg
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-zoom-in.svg
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/legacy/icon-zoom-in.svg
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/localization/localize-number.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/localization/localize-number.element.ts
index 636cf32d3c72..01e9e4bdccb6 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/localization/localize-number.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/localization/localize-number.element.ts
@@ -1,4 +1,4 @@
-import { css, customElement, html, property, state, unsafeHTML } from '@umbraco-cms/backoffice/external/lit';
+import { css, customElement, html, property, state, unsafeHTML, when } from '@umbraco-cms/backoffice/external/lit';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
/**
@@ -21,16 +21,20 @@ export class UmbLocalizeNumberElement extends UmbLitElement {
* @attr
* @example options={ style: 'currency', currency: 'EUR' }
*/
- @property()
+ @property({ type: Object })
options?: Intl.NumberFormatOptions;
@state()
- protected get text(): string {
+ protected get text(): string | null {
return this.localize.number(this.number, this.options);
}
override render() {
- return this.number ? html`${unsafeHTML(this.text)}` : html``;
+ return when(
+ this.text,
+ (text) => unsafeHTML(text),
+ () => html``,
+ );
}
static override styles = [
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/localization/localize-relative-time.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/localization/localize-relative-time.element.ts
index 093f43c07af9..20be4968cb19 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/localization/localize-relative-time.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/localization/localize-relative-time.element.ts
@@ -1,4 +1,4 @@
-import { css, customElement, html, property, state, unsafeHTML } from '@umbraco-cms/backoffice/external/lit';
+import { css, customElement, html, property, state, unsafeHTML, when } from '@umbraco-cms/backoffice/external/lit';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
/**
@@ -33,12 +33,16 @@ export class UmbLocalizeRelativeTimeElement extends UmbLitElement {
unit: Intl.RelativeTimeFormatUnit = 'seconds';
@state()
- protected get text(): string {
+ protected get text(): string | null {
return this.localize.relativeTime(this.time, this.unit, this.options);
}
override render() {
- return this.time ? html`${unsafeHTML(this.text)}` : html``;
+ return when(
+ this.text,
+ (text) => unsafeHTML(text),
+ () => html``,
+ );
}
static override styles = [
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/localization/localize.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/localization/localize.element.ts
index ce2df299d3ba..fcdd886cf881 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/localization/localize.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/localization/localize.element.ts
@@ -21,30 +21,30 @@ export class UmbLocalizeElement extends UmbLitElement {
* The values to forward to the localization function (must be JSON compatible).
* @attr
* @example args="[1,2,3]"
- * @type {any[] | undefined}
+ * @type {unknown[] | undefined}
*/
@property({ type: Array })
args?: unknown[];
/**
- * If true, the key will be rendered instead of the localized value if the key is not found.
+ * If true, the key will be rendered instead of the fallback value if the key is not found.
* @attr
*/
@property({ type: Boolean })
debug = false;
@state()
- protected get text(): string {
+ protected get text(): string | null {
// As translated texts can contain HTML, we will need to render with unsafeHTML.
// But arguments can come from user input, so they should be escaped.
const escapedArgs = (this.args ?? []).map((a) => escapeHTML(a));
- const localizedValue = this.localize.term(this.key, ...escapedArgs);
+ const localizedValue = this.localize.termOrDefault(this.key, null, ...escapedArgs);
- // If the value is the same as the key, it means the key was not found.
- if (localizedValue === this.key) {
+ // Update the data attribute based on whether the key was found
+ if (localizedValue === null) {
(this.getHostElement() as HTMLElement).setAttribute('data-localize-missing', this.key);
- return '';
+ return null;
}
(this.getHostElement() as HTMLElement).removeAttribute('data-localize-missing');
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-tree-structure-workspace-context-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-tree-structure-workspace-context-base.ts
index fabaaccd8011..8ab7d2e439d1 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-tree-structure-workspace-context-base.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-tree-structure-workspace-context-base.ts
@@ -35,6 +35,7 @@ export abstract class UmbMenuTreeStructureWorkspaceContextBase extends UmbContex
#ancestorContext = new UmbAncestorsEntityContext(this);
#sectionSidebarMenuContext?: typeof UMB_SECTION_SIDEBAR_MENU_SECTION_CONTEXT.TYPE;
#isModalContext: boolean = false;
+ #isNew: boolean | undefined = undefined;
constructor(host: UmbControllerHost, args: UmbMenuTreeStructureWorkspaceContextBaseArgs) {
super(host, UMB_MENU_STRUCTURE_WORKSPACE_CONTEXT);
@@ -52,15 +53,27 @@ export abstract class UmbMenuTreeStructureWorkspaceContextBase extends UmbContex
this.consumeContext(UMB_SUBMITTABLE_TREE_ENTITY_WORKSPACE_CONTEXT, (instance) => {
this.#workspaceContext = instance;
- this.observe(this.#workspaceContext?.unique, (value) => {
- if (!value) return;
- this.#requestStructure();
- });
-
- this.observe(this.#workspaceContext?.isNew, (value) => {
- if (value === undefined) return;
- this.#requestStructure();
- });
+ this.observe(
+ this.#workspaceContext?.unique,
+ (value) => {
+ if (!value) return;
+ this.#requestStructure();
+ },
+ 'observeUnique',
+ );
+
+ this.observe(
+ this.#workspaceContext?.isNew,
+ (value) => {
+ // Workspace has changed from new to existing
+ if (value === false && this.#isNew === true) {
+ // TODO: We do not need to request here as we already know the structure and unique
+ this.#requestStructure();
+ }
+ this.#isNew = value;
+ },
+ 'observeIsNew',
+ );
});
}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-variant-tree-structure-workspace-context-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-variant-tree-structure-workspace-context-base.ts
index db57dba46c82..6267ff7e4027 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-variant-tree-structure-workspace-context-base.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-variant-tree-structure-workspace-context-base.ts
@@ -10,6 +10,7 @@ import { UmbAncestorsEntityContext, UmbParentEntityContext, type UmbEntityModel
import {
UMB_SUBMITTABLE_TREE_ENTITY_WORKSPACE_CONTEXT,
UMB_VARIANT_WORKSPACE_CONTEXT,
+ UMB_WORKSPACE_PATH_PATTERN,
} from '@umbraco-cms/backoffice/workspace';
import { linkEntityExpansionEntries } from '@umbraco-cms/backoffice/utils';
import { UMB_MODAL_CONTEXT } from '@umbraco-cms/backoffice/modal';
@@ -83,19 +84,46 @@ export abstract class UmbMenuVariantTreeStructureWorkspaceContextBase extends Um
'observeUnique',
);
- this.observe(this.#workspaceContext?.isNew, (value) => {
- // Workspace has changed from new to existing
- if (value === false && this.#isNew === true) {
- // TODO: We do not need to request here as we already know the structure and unique
- this.#requestStructure();
- }
- this.#isNew = value;
- });
+ this.observe(
+ this.#workspaceContext?.isNew,
+ (value) => {
+ // Workspace has changed from new to existing
+ if (value === false && this.#isNew === true) {
+ // TODO: We do not need to request here as we already know the structure and unique
+ this.#requestStructure();
+ }
+ this.#isNew = value;
+ },
+ 'observeIsNew',
+ );
});
}
getItemHref(structureItem: UmbVariantStructureItemModel): string | undefined {
- return `section/${this._sectionContext?.getPathname()}/workspace/${structureItem.entityType}/edit/${structureItem.unique}/${this.#workspaceActiveVariantId?.toCultureString()}`;
+ const sectionName = this._sectionContext?.getPathname();
+ if (!sectionName) {
+ return undefined;
+ }
+ UMB_WORKSPACE_PATH_PATTERN.generateAbsolute({
+ sectionName,
+ entityType: structureItem.entityType,
+ });
+ const path = `section/${this._sectionContext!.getPathname()}/workspace/${structureItem.entityType}/edit/${structureItem.unique}`;
+
+ // find related variant id from structure item:
+ const itemVariantFit = structureItem.variants.find((variant) => {
+ return (
+ variant.culture === this.#workspaceActiveVariantId?.culture &&
+ variant.segment === this.#workspaceActiveVariantId?.segment
+ );
+ });
+ if (itemVariantFit) {
+ const variantId = UmbVariantId.CreateFromPartial(itemVariantFit);
+ return `${path}/${variantId.toString()}`;
+ }
+
+ // If no related variantID, then lets the redirect go to the main-variant:
+ return path;
}
async #requestStructure() {
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/component/modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/component/modal.element.ts
index e9067ba9cb08..bb392924f04d 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/component/modal.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/component/modal.element.ts
@@ -10,7 +10,6 @@ import { UmbBasicState, type UmbObserverController } from '@umbraco-cms/backoffi
import {
UUIModalCloseEvent,
type UUIModalElement,
- type UUIDialogElement,
type UUIModalDialogElement,
type UUIModalSidebarElement,
type UUIModalSidebarSize,
@@ -127,8 +126,6 @@ export class UmbModalElement extends UmbLitElement {
#createDialogElement() {
const modalDialogElement = document.createElement('uui-modal-dialog');
- const dialogElement: UUIDialogElement = document.createElement('uui-dialog');
- modalDialogElement.appendChild(dialogElement);
return modalDialogElement;
}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/extensions/property-editor.extension.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/extensions/property-editor.extension.ts
index 31ff43ed7b4a..3185e282c262 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/extensions/property-editor.extension.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/extensions/property-editor.extension.ts
@@ -69,6 +69,10 @@ export interface PropertyEditorSettingsProperty {
propertyEditorDataSourceAlias?: string;
config?: UmbPropertyEditorConfig;
weight?: number;
+ validation?: {
+ mandatory: boolean;
+ mandatoryMessage?: string | null;
+ };
}
// eslint-disable-next-line @typescript-eslint/naming-convention
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-children.manager.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-children.manager.ts
index 381dadae9bd7..7884dc02ceee 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-children.manager.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-children.manager.ts
@@ -23,6 +23,8 @@ import {
} from '@umbraco-cms/backoffice/entity-action';
import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification';
+type ResetReason = 'error' | 'empty' | 'fallback';
+
export class UmbTreeItemChildrenManager<
TreeItemType extends UmbTreeItemModel = UmbTreeItemModel,
TreeRootType extends UmbTreeRootModel = UmbTreeRootModel,
@@ -218,7 +220,7 @@ export class UmbTreeItemChildrenManager<
async #loadChildren(reload = false) {
if (this.#loadChildrenRetries > this.#requestMaxRetries) {
this.#loadChildrenRetries = 0;
- this.#resetChildren();
+ this.#resetChildren('error');
return;
}
@@ -302,7 +304,7 @@ export class UmbTreeItemChildrenManager<
We cancel the base target and load using skip/take pagination instead.
This can happen if deep linked to a non existing item or all retries have failed.
*/
- this.#resetChildren();
+ this.#resetChildren(this.#children.getValue().length === 0 ? 'empty' : 'fallback');
}
}
@@ -329,7 +331,7 @@ export class UmbTreeItemChildrenManager<
if (this.#loadPrevItemsRetries > this.#requestMaxRetries) {
// If we have exceeded the maximum number of retries, we need to reset the base target and load from the top
this.#loadPrevItemsRetries = 0;
- this.#resetChildren();
+ this.#resetChildren('error');
return;
}
@@ -378,7 +380,7 @@ export class UmbTreeItemChildrenManager<
If we can't find a new end target we reload the children from the top.
We cancel the base target and load using skip/take pagination instead.
*/
- this.#resetChildren();
+ this.#resetChildren(this.#children.getValue().length === 0 ? 'empty' : 'fallback');
}
}
@@ -409,7 +411,7 @@ export class UmbTreeItemChildrenManager<
if (this.#loadNextItemsRetries > this.#requestMaxRetries) {
// If we have exceeded the maximum number of retries, we need to reset the base target and load from the top
this.#loadNextItemsRetries = 0;
- this.#resetChildren();
+ this.#resetChildren('error');
return;
}
@@ -467,7 +469,7 @@ export class UmbTreeItemChildrenManager<
If we can't find a new end target we reload the children from the top.
We cancel the base target and load using skip/take pagination instead.
*/
- this.#resetChildren();
+ this.#resetChildren(this.#children.getValue().length === 0 ? 'empty' : 'fallback');
}
}
@@ -520,12 +522,81 @@ export class UmbTreeItemChildrenManager<
this.targetPagination.clear();
}
- async #resetChildren() {
+ /**
+ * Loads children using offset pagination only.
+ * This is a "safe" fallback that does NOT:
+ * - Use target pagination
+ * - Retry with new targets
+ * - Call #resetChildren (preventing recursion)
+ * - Throw errors (fails gracefully)
+ */
+ async #loadChildrenWithOffsetPagination(): Promise {
+ const repository = this.#treeContext?.getRepository();
+ if (!repository) {
+ // Terminal fallback - fail silently rather than throwing
+ return;
+ }
+
+ this.#isLoading.setValue(true);
+
+ const parent = this.getStartNode() || this.getTreeItem();
+ const foldersOnly = this.getFoldersOnly();
+ const additionalArgs = this.getAdditionalRequestArgs();
+
+ const offsetPaging: UmbOffsetPaginationRequestModel = {
+ skip: 0, // Always from the start
+ take: this.offsetPagination.getPageSize(),
+ };
+
+ const { data } = parent?.unique
+ ? await repository.requestTreeItemsOf({
+ parent: { unique: parent.unique, entityType: parent.entityType },
+ skip: offsetPaging.skip,
+ take: offsetPaging.take,
+ paging: offsetPaging,
+ foldersOnly,
+ ...additionalArgs,
+ })
+ : await repository.requestTreeRootItems({
+ skip: offsetPaging.skip,
+ take: offsetPaging.take,
+ paging: offsetPaging,
+ foldersOnly,
+ ...additionalArgs,
+ });
+
+ if (data) {
+ const items = data.items as Array