diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 8a7b1761eb..c028fb56ff 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -27,7 +27,7 @@ "@tiptap/extension-underline": "2.11.7", "@tiptap/pm": "2.11.7", "@tiptap/starter-kit": "2.11.7", - "@umbraco-ui/uui": "1.14.0-rc.2", + "@umbraco-ui/uui": "1.14.0-rc.3", "@umbraco-ui/uui-css": "1.14.0-rc.2", "dompurify": "^3.2.5", "element-internals-polyfill": "^3.0.2", @@ -4521,9 +4521,9 @@ "link": true }, "node_modules/@umbraco-ui/uui": { - "version": "1.14.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.14.0-rc.2.tgz", - "integrity": "sha512-ofM65FbdC+7ICGVUNvb6az7REDdaIqohWkkXbx28Uizeg/HflTOQXAhWGYvdGqryLzh9qBhCGd/zPtBMxfQtyg==", + "version": "1.14.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.14.0-rc.3.tgz", + "integrity": "sha512-4uSpbJ72qOUMv3wel1c5ALWwC2Tgr/tARU2YwkulBP8v8HBD2OsaFWHl55Pkqu+63kGBw5BlVk5WTbq4DuHhOw==", "license": "MIT", "dependencies": { "@umbraco-ui/uui-action-bar": "1.14.0-rc.1", @@ -4563,10 +4563,10 @@ "@umbraco-ui/uui-icon": "1.14.0-rc.1", "@umbraco-ui/uui-icon-registry": "1.14.0-rc.1", "@umbraco-ui/uui-icon-registry-essential": "1.14.0-rc.1", - "@umbraco-ui/uui-input": "1.14.0-rc.1", + "@umbraco-ui/uui-input": "1.14.0-rc.3", "@umbraco-ui/uui-input-file": "1.14.0-rc.1", - "@umbraco-ui/uui-input-lock": "1.14.0-rc.1", - "@umbraco-ui/uui-input-password": "1.14.0-rc.1", + "@umbraco-ui/uui-input-lock": "1.14.0-rc.3", + "@umbraco-ui/uui-input-password": "1.14.0-rc.3", "@umbraco-ui/uui-keyboard-shortcut": "1.14.0-rc.1", "@umbraco-ui/uui-label": "1.14.0-rc.1", "@umbraco-ui/uui-loader": "1.14.0-rc.1", @@ -4980,9 +4980,9 @@ } }, "node_modules/@umbraco-ui/uui-input": { - "version": "1.14.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.14.0-rc.1.tgz", - "integrity": "sha512-tBPivhC6TzROIA2jJ6lY9zbyzJDFN8CtWwx1T3xtJVetaOzK+PD9JSRN4uqDjh5NseyEBMOj+In8/EP3SV0+Rg==", + "version": "1.14.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.14.0-rc.3.tgz", + "integrity": "sha512-mnyzgObVWdlitx+8aS4N84ji95Uekd9WhvesOb+bj5Vf5Q7Z8NLgozf8oNcxDa1gg3gFBtV4rwbiWgr2aaKp6Q==", "license": "MIT", "dependencies": { "@umbraco-ui/uui-base": "1.14.0-rc.1" @@ -5003,26 +5003,26 @@ } }, "node_modules/@umbraco-ui/uui-input-lock": { - "version": "1.14.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.14.0-rc.1.tgz", - "integrity": "sha512-QceYLbPyW9RWrTQ6xZtkU+Dz9o50yjLq52xDiDAH9sdhdUTyeNBoxGpQ795p9vxwGblEY2bj1Mzemm/jvnKa1A==", + "version": "1.14.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.14.0-rc.3.tgz", + "integrity": "sha512-oC7CUGhdxyg48/Ul26F6Dl4P0MtHtCHR+N1x+M+FR1EFnItjifeJYYdzpbdd6XM1vGk8amFREPiIQdHU0n2HOA==", "license": "MIT", "dependencies": { "@umbraco-ui/uui-base": "1.14.0-rc.1", "@umbraco-ui/uui-button": "1.14.0-rc.1", "@umbraco-ui/uui-icon": "1.14.0-rc.1", - "@umbraco-ui/uui-input": "1.14.0-rc.1" + "@umbraco-ui/uui-input": "1.14.0-rc.3" } }, "node_modules/@umbraco-ui/uui-input-password": { - "version": "1.14.0-rc.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.14.0-rc.1.tgz", - "integrity": "sha512-CacioTomvXFzdcn+6zwtOl9UXkM/6hv1+edYwjni6TV/mkPLWo2qLrf+Rv9cqHoyuq3du5AiroYRBCmhD/f55g==", + "version": "1.14.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.14.0-rc.3.tgz", + "integrity": "sha512-XBpvLyBuOJcy06ukvcy16iInxg7V8bwGstEECoqxydzOdCYn+vNe4QbvXp8tf2EgHzM0vFnXLxReRVSUdE+Zkg==", "license": "MIT", "dependencies": { "@umbraco-ui/uui-base": "1.14.0-rc.1", "@umbraco-ui/uui-icon-registry-essential": "1.14.0-rc.1", - "@umbraco-ui/uui-input": "1.14.0-rc.1" + "@umbraco-ui/uui-input": "1.14.0-rc.3" } }, "node_modules/@umbraco-ui/uui-keyboard-shortcut": { diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index a35cee9cab..fe66703a43 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -215,7 +215,7 @@ "@tiptap/extension-underline": "2.11.7", "@tiptap/pm": "2.11.7", "@tiptap/starter-kit": "2.11.7", - "@umbraco-ui/uui": "1.14.0-rc.2", + "@umbraco-ui/uui": "1.14.0-rc.3", "@umbraco-ui/uui-css": "1.14.0-rc.2", "dompurify": "^3.2.5", "element-internals-polyfill": "^3.0.2", @@ -288,4 +288,4 @@ "access": "public", "registry": "https://registry.npmjs.org/" } -} \ No newline at end of file +} diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.context.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.context.ts index db4951ef64..6b7b1b3a6c 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.context.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.context.ts @@ -77,7 +77,10 @@ export class UmbBackofficeContext extends UmbContextBase { } public async serverUpgradeCheck() { - const version = await this.observe(this.version).asPromise(); + const version = await this.observe(this.version) + .asPromise() + .catch(() => null); + if (!version) return null; const repository = new UmbSysinfoRepository(this); return repository.serverUpgradeCheck(version); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-entry/block-list-entry.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-entry/block-list-entry.element.ts index 089f332cd1..6242f413a3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-entry/block-list-entry.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-entry/block-list-entry.element.ts @@ -16,7 +16,7 @@ import type { UmbBlockEditorCustomViewProperties, } from '@umbraco-cms/backoffice/block-custom-view'; import type { UmbExtensionElementInitializer } from '@umbraco-cms/backoffice/extension-api'; -import { UUIBlinkAnimationValue } from '@umbraco-cms/backoffice/external/uui'; +import { UUIBlinkAnimationValue, UUIBlinkKeyframes } from '@umbraco-cms/backoffice/external/uui'; import { UMB_PROPERTY_CONTEXT, UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property'; import { UMB_CLIPBOARD_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/clipboard'; @@ -481,6 +481,7 @@ export class UmbBlockListEntryElement extends UmbLitElement implements UmbProper } static override styles = [ + UUIBlinkKeyframes, css` :host { position: relative; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entry.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entry.context.ts index f12767755e..65a6b33eb6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entry.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entry.context.ts @@ -548,18 +548,27 @@ export abstract class UmbBlockEntryContext< abstract _gotContentType(contentType: UmbContentTypeModel | undefined): void; async #observeVariantId() { - if (!this._manager) return; + if (!this._manager) { + this.removeUmbControllerByAlias('observeVariantId'); + return; + } await this.#contentStructurePromise; if (!this.#contentStructure) { throw new Error('No contentStructure found'); } + if (!this._manager) { + // The manager maybe got removed while we awaited the promise above. + this.removeUmbControllerByAlias('observeVariantId'); + return; + } + // observe variantId: this.observe( observeMultiple([ this._manager.variantId, - this.#contentStructure?.ownerContentTypeObservablePart((x) => x?.variesByCulture), - this.#contentStructure?.ownerContentTypeObservablePart((x) => x?.variesBySegment), + this.#contentStructure.ownerContentTypeObservablePart((x) => x?.variesByCulture), + this.#contentStructure.ownerContentTypeObservablePart((x) => x?.variesBySegment), ]), ([variantId, variesByCulture, variesBySegment]) => { if (!variantId || variesByCulture === undefined || variesBySegment === undefined) return; diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/structure/content-type-structure-manager.class.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/structure/content-type-structure-manager.class.ts index 809be5a1b5..1a71834059 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/structure/content-type-structure-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/structure/content-type-structure-manager.class.ts @@ -182,7 +182,7 @@ export class UmbContentTypeStructureManager< return { data: this.getOwnerContentType(), asObservable: () => this.ownerContentType }; } await this.#initRepository; - this.#clear(); + this.clear(); this.#ownerContentTypeUnique = unique; if (!unique) { this.#initRejection?.(`Content Type structure manager could not load: ${unique}`); @@ -199,7 +199,7 @@ export class UmbContentTypeStructureManager< public async createScaffold(preset?: Partial): Promise> { await this.#initRepository; - this.#clear(); + this.clear(); const repsonse = await this.#repository!.createScaffold(preset); const { data } = repsonse; @@ -827,7 +827,7 @@ export class UmbContentTypeStructureManager< .filter(UmbFilterDuplicateStrings); } - #clear() { + public clear() { this.#contentTypeObservers.forEach((observer) => observer.destroy()); this.#contentTypeObservers = []; this.#repoManager?.clear(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/views/design/content-type-design-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/views/design/content-type-design-editor.element.ts index ec9b43034a..d37eef19a0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/views/design/content-type-design-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/views/design/content-type-design-editor.element.ts @@ -227,16 +227,16 @@ export class UmbContentTypeDesignEditorElement extends UmbLitElement implements this.#currentTabComponent = undefined; }, }); + } else { + routes.push({ + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + setup: () => { + this.#currentTabComponent = undefined; + }, + }); } - routes.push({ - path: `**`, - component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, - setup: () => { - this.#currentTabComponent = undefined; - }, - }); - this._routes = routes; // If we have a active tab, then we want to make sure its up to date with latest tab id, as an already active route is not getting its setup method triggered again [NL] 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 52d26d6e5d..db63689544 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 @@ -982,6 +982,7 @@ export abstract class UmbContentDetailWorkspaceContextBase< override resetState() { super.resetState(); + this.structure.clear(); this.readOnlyGuard.clearRules(); this.propertyViewGuard.clearRules(); this.propertyWriteGuard.clearRules(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/property-type/workspace/property-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/content/property-type/workspace/property-type-workspace.context.ts index d3c218dc28..bd4e7ed78b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/content/property-type/workspace/property-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/content/property-type/workspace/property-type-workspace.context.ts @@ -72,7 +72,11 @@ export class UmbPropertyTypeWorkspaceContext this.#contentTypeContext = context; }) .skipHost() - .asPromise({ preventTimeout: true }); + .asPromise({ preventTimeout: true }) + .catch(() => { + // If the context is not available, we can assume that the context is not available. + this.#contentTypeContext = undefined; + }); this.routes.setRoutes([ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-view.manager.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-view.manager.ts index 2c7832a555..bb0134824b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-view.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-view.manager.ts @@ -101,12 +101,12 @@ export class UmbCollectionViewManager extends UmbControllerBase { this.setCurrentView(fallbackView); }, }); - } - routes.push({ - path: `**`, - component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, - }); + routes.push({ + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + }); + } } this.#routes.setValue(routes); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.element.ts index d9a961b5aa..b2c1a71335 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.element.ts @@ -47,7 +47,21 @@ export class UmbInputNumberRangeElement extends UmbFormControlMixin(UmbLitElemen } @property({ type: Object }) - validationRange?: UmbNumberRangeValueType; + public set validationRange(value: UmbNumberRangeValueType | undefined) { + this.#validationRange = value; + this._minPlaceholder = value?.min !== undefined ? String(value?.min) : ''; + this._maxPlaceholder = value?.max !== undefined && value.max !== Infinity ? String(value.max) : '∞'; + } + public get validationRange(): UmbNumberRangeValueType | undefined { + return this.#validationRange; + } + #validationRange?: UmbNumberRangeValueType | undefined; + + @state() + private _minPlaceholder: string = ''; + + @state() + private _maxPlaceholder: string = ''; private updateValue() { const newValue = @@ -114,7 +128,7 @@ export class UmbInputNumberRangeElement extends UmbFormControlMixin(UmbLitElemen label=${this.minLabel} min=${ifDefined(this.validationRange?.min)} max=${ifDefined(this.validationRange?.max)} - placeholder=${this.validationRange?.min ?? ''} + placeholder=${this._minPlaceholder} .value=${this._minValue} @input=${this.#onMinInput}> @@ -123,13 +137,20 @@ export class UmbInputNumberRangeElement extends UmbFormControlMixin(UmbLitElemen label=${this.maxLabel} min=${ifDefined(this.validationRange?.min)} max=${ifDefined(this.validationRange?.max)} - placeholder=${this.validationRange?.max ?? '∞'} + placeholder=${this._maxPlaceholder} .value=${this._maxValue} @input=${this.#onMaxInput}> `; } static override styles = css` + :host { + display: flex; + align-items: center; + } + b { + margin: 0 var(--uui-size-space-1); + } :host(:invalid:not([pristine])) { color: var(--uui-color-invalid); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-with-alias/input-with-alias.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-with-alias/input-with-alias.element.ts index fc9ae5ba82..a91c9ac5d4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-with-alias/input-with-alias.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-with-alias/input-with-alias.element.ts @@ -138,8 +138,6 @@ export class UmbInputWithAliasElement extends UmbFormControlMixin { - if (instance) { - this.#detailStore = instance; - } - }).asPromise({ preventTimeout: true }), - ]); + this.#init = this.consumeContext(detailStoreContextAlias, (instance) => { + this.#detailStore = instance; + }) + .asPromise({ preventTimeout: true }) + // Ignore the error, we can assume that the flow was stopped (asPromise failed), but it does not mean that the consumption was not successful. + .catch(() => undefined); } /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository-base.ts index 83ec029207..1f502778cd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository-base.ts @@ -4,6 +4,7 @@ import type { UmbItemRepository } from './item-repository.interface.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { UmbItemStore } from '@umbraco-cms/backoffice/store'; import type { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { of } from '@umbraco-cms/backoffice/external/rxjs'; export class UmbItemRepositoryBase extends UmbRepositoryBase @@ -22,10 +23,11 @@ export class UmbItemRepositoryBase this.#itemSource = new itemSource(host); this._init = this.consumeContext(itemStoreContextAlias, (instance) => { - if (instance) { - this._itemStore = instance as UmbItemStore; - } - }).asPromise({ preventTimeout: true }); + this._itemStore = instance; + }) + .asPromise({ preventTimeout: true }) + // Ignore the error, we can assume that the flow was stopped (asPromise failed), but it does not mean that the consumption was not successful. + .catch(() => undefined); } /** @@ -42,18 +44,19 @@ export class UmbItemRepositoryBase return {}; } - const { data, error: _error } = await this.#itemSource.getItems(uniques); + const { data, error } = await this.#itemSource.getItems(uniques); if (!this._itemStore) { // If store is gone, then we are most likely in a disassembled state. return {}; } - const error: any = _error; + if (data) { - this._itemStore!.appendItems(data); + this._itemStore.appendItems(data); } - return { data, error, asObservable: () => this._itemStore!.items(uniques) }; + // TODO: Fix the type of error, it should be UmbApiError, but currently it is any. + return { data, error: error as any, asObservable: () => this._itemStore!.items(uniques) }; } /** @@ -68,6 +71,12 @@ export class UmbItemRepositoryBase } catch { return undefined; } - return this._itemStore!.items(uniques); + + if (!this._itemStore) { + // If store is gone, then we are most likely in a disassembled state. + return of([]); + } + + return this._itemStore.items(uniques); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository-base.ts index 4a1c1aaece..e9b4b8ba58 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository-base.ts @@ -12,6 +12,7 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; import type { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbProblemDetails } from '@umbraco-cms/backoffice/resources'; +import { of } from '@umbraco-cms/backoffice/external/rxjs'; /** * Base class for a tree repository. @@ -61,10 +62,11 @@ export abstract class UmbTreeRepositoryBase< this._treeSource = new treeSourceConstructor(this); this._init = this.consumeContext(treeStoreContextAlias, (instance) => { - if (instance) { - this._treeStore = instance; - } - }).asPromise({ preventTimeout: true }); + this._treeStore = instance; + }) + .asPromise({ preventTimeout: true }) + // Ignore the error, we can assume that the flow was stopped (asPromise failed), but it does not mean that the consumption was not successful. + .catch(() => undefined); } /** @@ -84,16 +86,18 @@ export abstract class UmbTreeRepositoryBase< await this._init; const { data, error } = await this._treeSource.getRootItems(args); + if (!this._treeStore) { // If the tree store is not available, then we most likely are in a destructed setting. return {}; } + if (data) { - this._treeStore?.appendItems(data.items); + this._treeStore.appendItems(data.items); } - // TODO: Notice we are casting the error here, is that right? - return { data, error: error as unknown as UmbProblemDetails, asObservable: () => this._treeStore!.rootItems }; + // TODO: Fix the type of error, it should be UmbApiError, but currently it is any. + return { data, error: error as any, asObservable: () => this._treeStore!.rootItems }; } /** @@ -109,13 +113,19 @@ export abstract class UmbTreeRepositoryBase< if (args.parent.entityType === null) throw new Error('Parent entity type is missing'); await this._init; - const { data, error: _error } = await this._treeSource.getChildrenOf(args); - const error: any = _error; - if (data) { - this._treeStore?.appendItems(data.items); + const { data, error } = await this._treeSource.getChildrenOf(args); + + if (!this._treeStore) { + // If the tree store is not available, then we most likely are in a destructed setting. + return {}; } - return { data, error, asObservable: () => this._treeStore!.childrenOf(args.parent.unique) }; + if (data) { + this._treeStore.appendItems(data.items); + } + + // TODO: Fix the type of error, it should be UmbApiError, but currently it is any. + return { data, error: error as any, asObservable: () => this._treeStore!.childrenOf(args.parent.unique) }; } /** @@ -128,10 +138,11 @@ export abstract class UmbTreeRepositoryBase< if (args.treeItem.unique === undefined) throw new Error('Descendant unique is missing'); await this._init; - const { data, error: _error } = await this._treeSource.getAncestorsOf(args); - const error: any = _error; + const { data, error } = await this._treeSource.getAncestorsOf(args); + // TODO: implement observable for ancestor items in the store - return { data, error }; + // TODO: Fix the type of error, it should be UmbApiError, but currently it is any. + return { data, error: error as any }; } /** @@ -141,7 +152,13 @@ export abstract class UmbTreeRepositoryBase< */ async rootTreeItems() { await this._init; - return this._treeStore!.rootItems; + + if (!this._treeStore) { + // If the tree store is not available, then we most likely are in a destructed setting. + return of([]); + } + + return this._treeStore.rootItems; } /** @@ -153,6 +170,12 @@ export abstract class UmbTreeRepositoryBase< async treeItemsOf(parentUnique: string | null) { if (parentUnique === undefined) throw new Error('Parent unique is missing'); await this._init; - return this._treeStore!.childrenOf(parentUnique); + + if (!this._treeStore) { + // If the tree store is not available, then we most likely are in a destructed setting. + return of([]); + } + + return this._treeStore.childrenOf(parentUnique); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/common/save/save.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/common/save/save.action.ts index 530fc13438..e4b9905186 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/common/save/save.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/common/save/save.action.ts @@ -22,7 +22,9 @@ export class UmbSaveWorkspaceAction< this.#observeUnique(); this._gotWorkspaceContext(); }, - ).asPromise(); + ) + .asPromise() + .catch(() => undefined); } #observeUnique() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/controllers/workspace-route-manager.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/controllers/workspace-route-manager.controller.ts index 216844c0e7..6aa5332d92 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/controllers/workspace-route-manager.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/controllers/workspace-route-manager.controller.ts @@ -20,13 +20,14 @@ export class UmbWorkspaceRouteManager extends UmbControllerBase { * @memberof UmbWorkspaceRouteManager */ setRoutes(routes: Array) { - const allRoutes = [ - ...routes, - { + const allRoutes = [...routes] as Array; + + if (routes.length > 0) { + allRoutes.push({ path: `**`, component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, - }, - ] as Array; + }); + } const mappedRoutes = allRoutes.map((route) => { // override the setup method to set the active local path diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/collection/repository/data-type-collection.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/collection/repository/data-type-collection.repository.ts index c0696bd63a..bc5684f391 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/collection/repository/data-type-collection.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/collection/repository/data-type-collection.repository.ts @@ -19,7 +19,12 @@ export class UmbDataTypeCollectionRepository extends UmbRepositoryBase implement if (instance) { this.#itemStore = instance; } - }).asPromise({ preventTimeout: true }); + }) + .asPromise({ preventTimeout: true }) + .catch(() => { + // If the context is not available, we can assume that the store is not available. + this.#itemStore = undefined; + }); this.#collectionSource = new UmbDataTypeCollectionServerDataSource(host); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/detail/data-type-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/detail/data-type-detail.repository.ts index 37b65915bc..0cac018f43 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/detail/data-type-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/detail/data-type-detail.repository.ts @@ -13,7 +13,12 @@ export class UmbDataTypeDetailRepository extends UmbDetailRepositoryBase { this.#detailStore = instance; - }).asPromise({ preventTimeout: true }); + }) + .asPromise({ preventTimeout: true }) + .catch(() => { + // If the context is not available, we can assume that the store is not available. + this.#detailStore = undefined; + }); } async byPropertyEditorUiAlias(propertyEditorUiAlias: string) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts index 38a20c07f0..1c5ce3e77c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts @@ -82,13 +82,12 @@ export class UmbDocumentBlueprintWorkspaceEditorElement extends UmbLitElement { pathMatch: 'full', redirectTo: routes[variants.length * variants.length]?.path, }); + routes.push({ + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + }); } - routes.push({ - path: `**`, - component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, - }); - this._routes = routes; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/workspace-context/document-publishing.workspace-context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/workspace-context/document-publishing.workspace-context.ts index 38f7d7014c..0bd43d3764 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/workspace-context/document-publishing.workspace-context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/workspace-context/document-publishing.workspace-context.ts @@ -50,11 +50,21 @@ export class UmbDocumentPublishingWorkspaceContext extends UmbContextBase { this.consumeContext(UMB_DOCUMENT_WORKSPACE_CONTEXT, async (context) => { this.#documentWorkspaceContext = context; this.#initPendingChanges(); - }).asPromise({ preventTimeout: true }), + }) + .asPromise({ preventTimeout: true }) + .catch(() => { + // If the context is not available, we can assume that the context is not available. + this.#documentWorkspaceContext = undefined; + }), this.consumeContext(UMB_ACTION_EVENT_CONTEXT, async (context) => { this.#eventContext = context; - }).asPromise({ preventTimeout: true }), + }) + .asPromise({ preventTimeout: true }) + .catch(() => { + // If the context is not available, we can assume that the context is not available. + this.#eventContext = undefined; + }), ]); this.consumeContext(UMB_NOTIFICATION_CONTEXT, (context) => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/document/conditions/document-user-permission.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/document/conditions/document-user-permission.condition.ts index 86edf49711..ab0bf8bcb3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/document/conditions/document-user-permission.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/document/conditions/document-user-permission.condition.ts @@ -37,7 +37,10 @@ export class UmbDocumentUserPermissionCondition }); this.consumeContext(UMB_ENTITY_CONTEXT, (context) => { - if (!context) return; + if (!context) { + this.removeUmbControllerByAlias('umbUserPermissionEntityContextObserver'); + return; + } this.observe( observeMultiple([context.entityType, context.unique]), diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save.action.ts index b49f819c2f..eb8e00e2ea 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save.action.ts @@ -22,9 +22,11 @@ export class UmbDocumentSaveWorkspaceAction async hasAdditionalOptions() { await this._retrieveWorkspaceContext; - const variantOptions = await this.observe(this._workspaceContext!.variantOptions).asPromise(); + const variantOptions = await this.observe(this._workspaceContext!.variantOptions) + .asPromise() + .catch(() => undefined); const cultureVariantOptions = variantOptions?.filter((option) => option.culture); - return cultureVariantOptions?.length > 1; + return cultureVariantOptions ? cultureVariantOptions?.length > 1 : false; } override _gotWorkspaceContext() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts index 3526d0ebf0..4375c38db3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts @@ -56,7 +56,10 @@ export class UmbDocumentWorkspaceEditorElement extends UmbLitElement { } #generateRoutes() { - if (!this.#variants || !this.#appCulture) return; + if (!this.#variants || !this.#appCulture) { + this._routes = []; + return; + } // Generate split view routes for all available routes const routes: Array = []; @@ -97,11 +100,16 @@ export class UmbDocumentWorkspaceEditorElement extends UmbLitElement { // Using first single view as the default route for now (hence the math below): routes.push({ path: '', - resolve: () => { + pathMatch: 'full', + resolve: async () => { + if (!this.#workspaceContext) { + throw new Error('Workspace context is not available when resolving the default route.'); + } + const route = routes.find((route) => route.path === this.#appCulture); if (!route) { - const firstVariantPath = routes.find((route) => route.path === this.#variants?.[0].unique)?.path; + const firstVariantPath = routes.find((route) => route.path === this.#variants?.[0]?.unique)?.path; if (firstVariantPath) { history.replaceState({}, '', `${this.#workspaceRoute}/${firstVariantPath}`); @@ -118,12 +126,12 @@ export class UmbDocumentWorkspaceEditorElement extends UmbLitElement { history.replaceState({}, '', `${this.#workspaceRoute}/${route?.path}`); }, }); - } - routes.push({ - path: `**`, - component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, - }); + routes.push({ + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + }); + } this._routes = routes; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/member-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/member-repository-base.ts index 1a27e4c47c..d7c7645b1c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/member-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/repository/member-repository-base.ts @@ -1,39 +1,37 @@ -import type { UmbMemberItemStore } from '../item/repository/member-item.store.js'; import { UMB_MEMBER_ITEM_STORE_CONTEXT } from '../item/repository/member-item.store.context-token.js'; -import type { UmbMemberDetailStore } from './detail/member-detail.store.js'; import { UMB_MEMBER_DETAIL_STORE_CONTEXT } from './detail/member-detail.store.context-token.js'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import type { UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export abstract class UmbMemberRepositoryBase extends UmbRepositoryBase { protected init; - protected detailStore?: UmbMemberDetailStore; - protected itemStore?: UmbMemberItemStore; - protected notificationContext?: UmbNotificationContext; + protected detailStore?: typeof UMB_MEMBER_DETAIL_STORE_CONTEXT.TYPE; + protected itemStore?: typeof UMB_MEMBER_ITEM_STORE_CONTEXT.TYPE; + protected notificationContext?: typeof UMB_NOTIFICATION_CONTEXT.TYPE; constructor(host: UmbControllerHost) { super(host); this.init = Promise.all([ this.consumeContext(UMB_MEMBER_DETAIL_STORE_CONTEXT, (instance) => { - if (instance) { - this.detailStore = instance; - } - }).asPromise({ preventTimeout: true }), + this.detailStore = instance; + }) + .asPromise({ preventTimeout: true }) + // Ignore the error, we can assume that the flow was stopped (asPromise failed), but it does not mean that the consumption was not successful. + .catch(() => undefined), this.consumeContext(UMB_MEMBER_ITEM_STORE_CONTEXT, (instance) => { - if (instance) { - this.itemStore = instance; - } - }).asPromise({ preventTimeout: true }), + this.itemStore = instance; + }) + .asPromise({ preventTimeout: true }) + .catch(() => undefined), this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { - if (instance) { - this.notificationContext = instance; - } - }).asPromise({ preventTimeout: true }), + this.notificationContext = instance; + }) + .asPromise({ preventTimeout: true }) + .catch(() => undefined), ]); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user.context.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user.context.ts index c967ea1f6d..42f5ed16b6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user.context.ts @@ -56,7 +56,10 @@ export class UmbCurrentUserContext extends UmbContextBase { if (asObservable) { await this.observe(asObservable(), (currentUser) => { this.#currentUser?.setValue(currentUser); - }).asPromise(); + }) + .asPromise() + // Ignore the error, we can assume that the flow was stopped (asPromise failed), but it does not mean that the consumption was not successful. + .catch(() => undefined); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/repository/current-user.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/repository/current-user.repository.ts index c85aa07e05..a792a000af 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/repository/current-user.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/repository/current-user.repository.ts @@ -2,7 +2,6 @@ import { UmbCurrentUserServerDataSource } from './current-user.server.data-sourc import { UMB_CURRENT_USER_STORE_CONTEXT } from './current-user.store.token.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; -import type { UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; /** @@ -14,7 +13,7 @@ export class UmbCurrentUserRepository extends UmbRepositoryBase { #currentUserSource = new UmbCurrentUserServerDataSource(this._host); #currentUserStore?: typeof UMB_CURRENT_USER_STORE_CONTEXT.TYPE; #init: Promise; - protected notificationContext?: UmbNotificationContext; + protected notificationContext?: typeof UMB_NOTIFICATION_CONTEXT.TYPE; constructor(host: UmbControllerHost) { super(host); @@ -24,13 +23,16 @@ export class UmbCurrentUserRepository extends UmbRepositoryBase { if (instance) { this.#currentUserStore = instance; } - }).asPromise({ preventTimeout: true }), + }) + .asPromise({ preventTimeout: true }) + // Ignore the error, we can assume that the flow was stopped (asPromise failed), but it does not mean that the consumption was not successful. + .catch(() => undefined), this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { - if (instance) { - this.notificationContext = instance; - } - }).asPromise({ preventTimeout: true }), + this.notificationContext = instance; + }) + .asPromise({ preventTimeout: true }) + .catch(() => undefined), ]); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.repository.ts index a5f32f9b69..c8b8dff8b0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.repository.ts @@ -1,5 +1,4 @@ import type { UmbUserGroupDetailModel } from '../../types.js'; -import type { UmbUserGroupDetailStore } from '../../repository/index.js'; import { UMB_USER_GROUP_DETAIL_STORE_CONTEXT } from '../../repository/index.js'; import type { UmbUserGroupCollectionFilterModel } from '../types.js'; import { UmbUserGroupCollectionServerDataSource } from './user-group-collection.server.data-source.js'; @@ -10,7 +9,7 @@ import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; export class UmbUserGroupCollectionRepository extends UmbControllerBase implements UmbCollectionRepository { #init; - #detailStore?: UmbUserGroupDetailStore; + #detailStore?: typeof UMB_USER_GROUP_DETAIL_STORE_CONTEXT.TYPE; #collectionSource: UmbCollectionDataSource; constructor(host: UmbControllerHost) { @@ -19,7 +18,10 @@ export class UmbUserGroupCollectionRepository extends UmbControllerBase implemen this.#init = this.consumeContext(UMB_USER_GROUP_DETAIL_STORE_CONTEXT, (instance) => { this.#detailStore = instance; - }).asPromise({ preventTimeout: true }); + }) + .asPromise({ preventTimeout: true }) + // Ignore the error, we can assume that the flow was stopped (asPromise failed), but it does not mean that the consumption was not successful. + .catch(() => undefined); } async requestCollection(filter: UmbUserGroupCollectionFilterModel = { skip: 0, take: 100 }) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user-repository-base.ts index 6ef6b4a4be..6e1860de02 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user-repository-base.ts @@ -1,39 +1,37 @@ -import type { UmbUserDetailStore } from './detail/user-detail.store.js'; import { UMB_USER_DETAIL_STORE_CONTEXT } from './detail/user-detail.store.token.js'; -import type { UmbUserItemStore } from './item/user-item.store.js'; import { UMB_USER_ITEM_STORE_CONTEXT } from './item/user-item.store.token.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import type { UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; export abstract class UmbUserRepositoryBase extends UmbRepositoryBase { protected init; - protected detailStore?: UmbUserDetailStore; - protected itemStore?: UmbUserItemStore; - protected notificationContext?: UmbNotificationContext; + protected detailStore?: typeof UMB_USER_DETAIL_STORE_CONTEXT.TYPE; + protected itemStore?: typeof UMB_USER_ITEM_STORE_CONTEXT.TYPE; + protected notificationContext?: typeof UMB_NOTIFICATION_CONTEXT.TYPE; constructor(host: UmbControllerHost) { super(host); this.init = Promise.all([ this.consumeContext(UMB_USER_DETAIL_STORE_CONTEXT, (instance) => { - if (instance) { - this.detailStore = instance; - } - }).asPromise({ preventTimeout: true }), + this.detailStore = instance; + }) + .asPromise({ preventTimeout: true }) + // Ignore the error, we can assume that the flow was stopped (asPromise failed), but it does not mean that the consumption was not successful. + .catch(() => undefined), this.consumeContext(UMB_USER_ITEM_STORE_CONTEXT, (instance) => { - if (instance) { - this.itemStore = instance; - } - }).asPromise({ preventTimeout: true }), + this.itemStore = instance; + }) + .asPromise({ preventTimeout: true }) + .catch(() => undefined), this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { - if (instance) { - this.notificationContext = instance; - } - }).asPromise({ preventTimeout: true }), + this.notificationContext = instance; + }) + .asPromise({ preventTimeout: true }) + .catch(() => undefined), ]); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/webhook/webhook-event/repository/webhook-event.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/webhook/webhook-event/repository/webhook-event.repository.ts index 4d7a745440..006b09ed54 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/webhook/webhook-event/repository/webhook-event.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/webhook/webhook-event/repository/webhook-event.repository.ts @@ -20,7 +20,10 @@ export class UmbWebhookEventRepository extends UmbRepositoryBase implements UmbA if (instance) { this.#store = instance; } - }).asPromise({ preventTimeout: true }); + }) + .asPromise({ preventTimeout: true }) + // Ignore the error, we can assume that the flow was stopped (asPromise failed), but it does not mean that the consumption was not successful. + .catch(() => undefined); } async requestEvents() { @@ -28,8 +31,12 @@ export class UmbWebhookEventRepository extends UmbRepositoryBase implements UmbA const { data, error } = await this.#source.getAll(); + if (!this.#store) { + return {}; + } + if (data) { - this.#store!.appendItems(data.items); + this.#store.appendItems(data.items); } return { data, error, asObservable: () => this.#store!.all() }; diff --git a/src/Umbraco.Web.UI.Login/package-lock.json b/src/Umbraco.Web.UI.Login/package-lock.json index 0a74d22490..ad569f8c8a 100644 --- a/src/Umbraco.Web.UI.Login/package-lock.json +++ b/src/Umbraco.Web.UI.Login/package-lock.json @@ -6,11 +6,11 @@ "": { "name": "login", "devDependencies": { - "@hey-api/client-fetch": "^0.10.0", - "@hey-api/openapi-ts": "^0.66.3", - "@umbraco-cms/backoffice": "15.3.0", + "@hey-api/client-fetch": "^0.10.2", + "@hey-api/openapi-ts": "^0.67.6", + "@umbraco-cms/backoffice": "16.0.0-rc3", "msw": "^2.7.0", - "typescript": "^5.7.3", + "typescript": "^5.8.3", "vite": "^6.3.5", "vite-tsconfig-paths": "^5.1.4" }, @@ -476,9 +476,9 @@ } }, "node_modules/@hey-api/client-fetch": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@hey-api/client-fetch/-/client-fetch-0.10.0.tgz", - "integrity": "sha512-C7vzj4t52qPiHCqjn1l8cRTI2p4pZCd7ViLtJDTHr5ZwI4sWOYC1tmv6bd529qqY6HFFbhGCz4TAZSwKAMJncg==", + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@hey-api/client-fetch/-/client-fetch-0.10.2.tgz", + "integrity": "sha512-AGiFYDx+y8VT1wlQ3EbzzZtfU8EfV+hLLRTtr8Y/tjYZaxIECwJagVZf24YzNbtEBXONFV50bwcU1wLVGXe1ow==", "dev": true, "license": "MIT", "funding": { @@ -489,15 +489,16 @@ } }, "node_modules/@hey-api/json-schema-ref-parser": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@hey-api/json-schema-ref-parser/-/json-schema-ref-parser-1.0.4.tgz", - "integrity": "sha512-IaJ4yFgU5r63KZyeySHRKSM1bavFIda8KdwCFi5BxQCIklltzEByBksNOPms+yHXpWWfR+OopIusVZV8roycYg==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@hey-api/json-schema-ref-parser/-/json-schema-ref-parser-1.0.6.tgz", + "integrity": "sha512-yktiFZoWPtEW8QKS65eqKwA5MTKp88CyiL8q72WynrBs/73SAaxlSWlA2zW/DZlywZ5hX1OYzrCC0wFdvO9c2w==", "dev": true, "license": "MIT", "dependencies": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", - "js-yaml": "^4.1.0" + "js-yaml": "^4.1.0", + "lodash": "^4.17.21" }, "engines": { "node": ">= 16" @@ -507,13 +508,13 @@ } }, "node_modules/@hey-api/openapi-ts": { - "version": "0.66.3", - "resolved": "https://registry.npmjs.org/@hey-api/openapi-ts/-/openapi-ts-0.66.3.tgz", - "integrity": "sha512-kws5hZo/M5WuapSYVvA7Nr+/4bCCjzDEzdjxUqWH8VV28MG7nob+TwZRgqaus7POZmJ2+zc2oCzHhdlvOTYVLA==", + "version": "0.67.6", + "resolved": "https://registry.npmjs.org/@hey-api/openapi-ts/-/openapi-ts-0.67.6.tgz", + "integrity": "sha512-ywZggKKYieVjM6O6T60/Bl+QBRvhcKAov8dAIQor7reyKpFbEn3Ws+9WKoXR8QUuXN8AR8nMFjOuYPer5db/dg==", "dev": true, "license": "MIT", "dependencies": { - "@hey-api/json-schema-ref-parser": "1.0.4", + "@hey-api/json-schema-ref-parser": "1.0.6", "c12": "2.0.1", "commander": "13.0.0", "handlebars": "4.7.8" @@ -625,9 +626,9 @@ "peer": true }, "node_modules/@lit/reactive-element": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", - "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.0.tgz", + "integrity": "sha512-L2qyoZSQClcBmq0qajBVbhYEcG6iK0XfLn66ifLe/RfC0/ihpc+pl0Wdn8bJ8o+hj38cG0fGXRgSS20MuXn7qA==", "dev": true, "license": "BSD-3-Clause", "peer": true, @@ -687,9 +688,9 @@ "peer": true }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.2.tgz", - "integrity": "sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.41.1.tgz", + "integrity": "sha512-NELNvyEWZ6R9QMkiytB4/L4zSEaBC03KIXEghptLGLZWJ6VPrL63ooZQCOnlx36aQPGhzuOMwDerC1Eb2VmrLw==", "cpu": [ "arm" ], @@ -701,9 +702,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.2.tgz", - "integrity": "sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.41.1.tgz", + "integrity": "sha512-DXdQe1BJ6TK47ukAoZLehRHhfKnKg9BjnQYUu9gzhI8Mwa1d2fzxA1aw2JixHVl403bwp1+/o/NhhHtxWJBgEA==", "cpu": [ "arm64" ], @@ -715,9 +716,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.2.tgz", - "integrity": "sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.41.1.tgz", + "integrity": "sha512-5afxvwszzdulsU2w8JKWwY8/sJOLPzf0e1bFuvcW5h9zsEg+RQAojdW0ux2zyYAz7R8HvvzKCjLNJhVq965U7w==", "cpu": [ "arm64" ], @@ -729,9 +730,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.2.tgz", - "integrity": "sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.41.1.tgz", + "integrity": "sha512-egpJACny8QOdHNNMZKf8xY0Is6gIMz+tuqXlusxquWu3F833DcMwmGM7WlvCO9sB3OsPjdC4U0wHw5FabzCGZg==", "cpu": [ "x64" ], @@ -743,9 +744,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.2.tgz", - "integrity": "sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.41.1.tgz", + "integrity": "sha512-DBVMZH5vbjgRk3r0OzgjS38z+atlupJ7xfKIDJdZZL6sM6wjfDNo64aowcLPKIx7LMQi8vybB56uh1Ftck/Atg==", "cpu": [ "arm64" ], @@ -757,9 +758,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.2.tgz", - "integrity": "sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.41.1.tgz", + "integrity": "sha512-3FkydeohozEskBxNWEIbPfOE0aqQgB6ttTkJ159uWOFn42VLyfAiyD9UK5mhu+ItWzft60DycIN1Xdgiy8o/SA==", "cpu": [ "x64" ], @@ -771,9 +772,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.2.tgz", - "integrity": "sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.41.1.tgz", + "integrity": "sha512-wC53ZNDgt0pqx5xCAgNunkTzFE8GTgdZ9EwYGVcg+jEjJdZGtq9xPjDnFgfFozQI/Xm1mh+D9YlYtl+ueswNEg==", "cpu": [ "arm" ], @@ -785,9 +786,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.2.tgz", - "integrity": "sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.41.1.tgz", + "integrity": "sha512-jwKCca1gbZkZLhLRtsrka5N8sFAaxrGz/7wRJ8Wwvq3jug7toO21vWlViihG85ei7uJTpzbXZRcORotE+xyrLA==", "cpu": [ "arm" ], @@ -799,9 +800,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.2.tgz", - "integrity": "sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.41.1.tgz", + "integrity": "sha512-g0UBcNknsmmNQ8V2d/zD2P7WWfJKU0F1nu0k5pW4rvdb+BIqMm8ToluW/eeRmxCared5dD76lS04uL4UaNgpNA==", "cpu": [ "arm64" ], @@ -813,9 +814,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.2.tgz", - "integrity": "sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.41.1.tgz", + "integrity": "sha512-XZpeGB5TKEZWzIrj7sXr+BEaSgo/ma/kCgrZgL0oo5qdB1JlTzIYQKel/RmhT6vMAvOdM2teYlAaOGJpJ9lahg==", "cpu": [ "arm64" ], @@ -827,9 +828,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.2.tgz", - "integrity": "sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.41.1.tgz", + "integrity": "sha512-bkCfDJ4qzWfFRCNt5RVV4DOw6KEgFTUZi2r2RuYhGWC8WhCA8lCAJhDeAmrM/fdiAH54m0mA0Vk2FGRPyzI+tw==", "cpu": [ "loong64" ], @@ -841,9 +842,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.2.tgz", - "integrity": "sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.41.1.tgz", + "integrity": "sha512-3mr3Xm+gvMX+/8EKogIZSIEF0WUu0HL9di+YWlJpO8CQBnoLAEL/roTCxuLncEdgcfJcvA4UMOf+2dnjl4Ut1A==", "cpu": [ "ppc64" ], @@ -855,9 +856,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.2.tgz", - "integrity": "sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.41.1.tgz", + "integrity": "sha512-3rwCIh6MQ1LGrvKJitQjZFuQnT2wxfU+ivhNBzmxXTXPllewOF7JR1s2vMX/tWtUYFgphygxjqMl76q4aMotGw==", "cpu": [ "riscv64" ], @@ -869,9 +870,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.2.tgz", - "integrity": "sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.41.1.tgz", + "integrity": "sha512-LdIUOb3gvfmpkgFZuccNa2uYiqtgZAz3PTzjuM5bH3nvuy9ty6RGc/Q0+HDFrHrizJGVpjnTZ1yS5TNNjFlklw==", "cpu": [ "riscv64" ], @@ -883,9 +884,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.2.tgz", - "integrity": "sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.41.1.tgz", + "integrity": "sha512-oIE6M8WC9ma6xYqjvPhzZYk6NbobIURvP/lEbh7FWplcMO6gn7MM2yHKA1eC/GvYwzNKK/1LYgqzdkZ8YFxR8g==", "cpu": [ "s390x" ], @@ -897,9 +898,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.2.tgz", - "integrity": "sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.41.1.tgz", + "integrity": "sha512-cWBOvayNvA+SyeQMp79BHPK8ws6sHSsYnK5zDcsC3Hsxr1dgTABKjMnMslPq1DvZIp6uO7kIWhiGwaTdR4Og9A==", "cpu": [ "x64" ], @@ -911,9 +912,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.2.tgz", - "integrity": "sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.41.1.tgz", + "integrity": "sha512-y5CbN44M+pUCdGDlZFzGGBSKCA4A/J2ZH4edTYSSxFg7ce1Xt3GtydbVKWLlzL+INfFIZAEg1ZV6hh9+QQf9YQ==", "cpu": [ "x64" ], @@ -925,9 +926,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.2.tgz", - "integrity": "sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.41.1.tgz", + "integrity": "sha512-lZkCxIrjlJlMt1dLO/FbpZbzt6J/A8p4DnqzSa4PWqPEUUUnzXLeki/iyPLfV0BmHItlYgHUqJe+3KiyydmiNQ==", "cpu": [ "arm64" ], @@ -939,9 +940,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.2.tgz", - "integrity": "sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.41.1.tgz", + "integrity": "sha512-+psFT9+pIh2iuGsxFYYa/LhS5MFKmuivRsx9iPJWNSGbh2XVEjk90fmpUEjCnILPEPJnikAU6SFDiEUyOv90Pg==", "cpu": [ "ia32" ], @@ -953,9 +954,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.2.tgz", - "integrity": "sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.41.1.tgz", + "integrity": "sha512-Wq2zpapRYLfi4aKxf2Xff0tN+7slj2d4R87WEzqw7ZLsVvO5zwYCIuEGSZYiK41+GlwUo1HiR+GdkLEJnCKTCw==", "cpu": [ "x64" ], @@ -967,9 +968,9 @@ ] }, "node_modules/@tiptap/core": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.11.5.tgz", - "integrity": "sha512-jb0KTdUJaJY53JaN7ooY3XAxHQNoMYti/H6ANo707PsLXVeEqJ9o8+eBup1JU5CuwzrgnDc2dECt2WIGX9f8Jw==", + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.11.7.tgz", + "integrity": "sha512-zN+NFFxLsxNEL8Qioc+DL6b8+Tt2bmRbXH22Gk6F6nD30x83eaUSFlSv3wqvgyCq3I1i1NO394So+Agmayx6rQ==", "dev": true, "license": "MIT", "peer": true, @@ -982,9 +983,9 @@ } }, "node_modules/@tiptap/extension-blockquote": { - "version": "2.11.7", - "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.11.7.tgz", - "integrity": "sha512-liD8kWowl3CcYCG9JQlVx1eSNc/aHlt6JpVsuWvzq6J8APWX693i3+zFqyK2eCDn0k+vW62muhSBe3u09hA3Zw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.12.0.tgz", + "integrity": "sha512-XUC2A77YAPMJS2SqZ2S62IGcUH8gZ7cdhoWlYQb1pR4ZzXFByeKDJPxfYeAePSiuI01YGrlzgY2c6Ncx/DtO0A==", "dev": true, "license": "MIT", "peer": true, @@ -997,9 +998,9 @@ } }, "node_modules/@tiptap/extension-bold": { - "version": "2.11.7", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.11.7.tgz", - "integrity": "sha512-VTR3JlldBixXbjpLTFme/Bxf1xeUgZZY3LTlt5JDlCW3CxO7k05CIa+kEZ8LXpog5annytZDUVtWqxrNjmsuHQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.12.0.tgz", + "integrity": "sha512-lAUtoLDLRc5ofD2I9MFY6MQ7d1qBLLqS1rvpwaPjOaoQb/GPVnaHj9qXYG0SY9K3erMtto48bMFpAcscjZHzZQ==", "dev": true, "license": "MIT", "peer": true, @@ -1012,9 +1013,9 @@ } }, "node_modules/@tiptap/extension-bullet-list": { - "version": "2.11.7", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.11.7.tgz", - "integrity": "sha512-WbPogE2/Q3e3/QYgbT1Sj4KQUfGAJNc5pvb7GrUbvRQsAh7HhtuO8hqdDwH8dEdD/cNUehgt17TO7u8qV6qeBw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.12.0.tgz", + "integrity": "sha512-YTCjztB8MaIpwyxFYr81H4+LdKCq1VlaSXQyrPdB44mVdhhRqc46BYQb8/B//XE3UIu3X2QWFjwrqRlUq6vUiw==", "dev": true, "license": "MIT", "peer": true, @@ -1026,10 +1027,26 @@ "@tiptap/core": "^2.7.0" } }, - "node_modules/@tiptap/extension-code": { + "node_modules/@tiptap/extension-character-count": { "version": "2.11.7", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.11.7.tgz", - "integrity": "sha512-VpPO1Uy/eF4hYOpohS/yMOcE1C07xmMj0/D989D9aS1x95jWwUVrSkwC+PlWMUBx9PbY2NRsg1ZDwVvlNKZ6yQ==", + "resolved": "https://registry.npmjs.org/@tiptap/extension-character-count/-/extension-character-count-2.11.7.tgz", + "integrity": "sha512-gcVbKou+uxzg8N0BBKceLwtpWvN8g2TIjTuCdyAcAPukX63DqVWOkofFHn1RqZbstJmtF4pTGZs9OH/GJrp27Q==", + "dev": true, + "license": "MIT", + "peer": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0", + "@tiptap/pm": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-code": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.12.0.tgz", + "integrity": "sha512-R7RaS+hJeHFim7alImQ9L9CSWSMjWXvz0Ote568x9ea5gdBGUYW8PcH+5a91lh8e1XGYWBM12a8oJZRyxg/tQA==", "dev": true, "license": "MIT", "peer": true, @@ -1042,9 +1059,9 @@ } }, "node_modules/@tiptap/extension-code-block": { - "version": "2.11.7", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.11.7.tgz", - "integrity": "sha512-To/y/2H04VWqiANy53aXjV7S6fA86c2759RsH1hTIe57jA1KyE7I5tlAofljOLZK/covkGmPeBddSPHGJbz++Q==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.12.0.tgz", + "integrity": "sha512-1D7cYAjgxEFHdfC/35Ooi4GqWKB5sszbW8iI7N16XILNln26xb0d5KflXqYrwr9CN/ZnZoCl2o6YsP7xEObcZA==", "dev": true, "license": "MIT", "peer": true, @@ -1058,9 +1075,9 @@ } }, "node_modules/@tiptap/extension-document": { - "version": "2.11.7", - "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.11.7.tgz", - "integrity": "sha512-95ouJXPjdAm9+VBRgFo4lhDoMcHovyl/awORDI8gyEn0Rdglt+ZRZYoySFzbVzer9h0cre+QdIwr9AIzFFbfdA==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.12.0.tgz", + "integrity": "sha512-sA1Q+mxDIv0Y3qQTBkYGwknNbDcGFiJ/fyAFholXpqbrcRx3GavwR/o0chBdsJZlFht0x7AWGwUYWvIo7wYilA==", "dev": true, "license": "MIT", "peer": true, @@ -1073,9 +1090,9 @@ } }, "node_modules/@tiptap/extension-dropcursor": { - "version": "2.11.7", - "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.11.7.tgz", - "integrity": "sha512-63mL+nxQILizsr5NbmgDeOjFEWi34BLt7evwL6UUZEVM15K8V1G8pD9Y0kCXrZYpHWz0tqFRXdrhDz0Ppu8oVw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.12.0.tgz", + "integrity": "sha512-zcZSOXFj+7LVnmdPWTfKr5AoxYIzFPFlLJe35AdTQC5IhkljLn1Exct8I30ZREojX/00hKYsO7JJmePS6TEVlQ==", "dev": true, "license": "MIT", "peer": true, @@ -1089,9 +1106,9 @@ } }, "node_modules/@tiptap/extension-gapcursor": { - "version": "2.11.7", - "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.11.7.tgz", - "integrity": "sha512-EceesmPG7FyjXZ8EgeJPUov9G1mAf2AwdypxBNH275g6xd5dmU/KvjoFZjmQ0X1ve7mS+wNupVlGxAEUYoveew==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.12.0.tgz", + "integrity": "sha512-k8ji5v9YKn7bNjo8UtI9hEfXfl4tKUp1hpJOEmUxGJQa3LIwrwSbReupUTnHszGQelzxikS/l1xO9P0TIGwRoA==", "dev": true, "license": "MIT", "peer": true, @@ -1105,9 +1122,9 @@ } }, "node_modules/@tiptap/extension-hard-break": { - "version": "2.11.7", - "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.11.7.tgz", - "integrity": "sha512-zTkZSA6q+F5sLOdCkiC2+RqJQN0zdsJqvFIOVFL/IDVOnq6PZO5THzwRRLvOSnJJl3edRQCl/hUgS0L5sTInGQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.12.0.tgz", + "integrity": "sha512-08MNS2PK5DzdnAfqXn4krmJ/xebKmWpRpYqqN5EM8AvetYKlAJyTVSpo0ZUeGbZ3EZiPm9djgSnrLqpFUDjRCg==", "dev": true, "license": "MIT", "peer": true, @@ -1120,9 +1137,9 @@ } }, "node_modules/@tiptap/extension-heading": { - "version": "2.11.7", - "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.11.7.tgz", - "integrity": "sha512-8kWh7y4Rd2fwxfWOhFFWncHdkDkMC1Z60yzIZWjIu72+6yQxvo8w3yeb7LI7jER4kffbMmadgcfhCHC/fkObBA==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.12.0.tgz", + "integrity": "sha512-9DfES4Wd5TX1foI70N9sAL+35NN1UHrtzDYN2+dTHupnmKir9RaMXyZcbkUb4aDVzYrGxIqxJzHBVkquKIlTrw==", "dev": true, "license": "MIT", "peer": true, @@ -1135,9 +1152,9 @@ } }, "node_modules/@tiptap/extension-history": { - "version": "2.11.7", - "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.11.7.tgz", - "integrity": "sha512-Cu5x3aS13I040QSRoLdd+w09G4OCVfU+azpUqxufZxeNs9BIJC+0jowPLeOxKDh6D5GGT2A8sQtxc6a/ssbs8g==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.12.0.tgz", + "integrity": "sha512-+B9CAf2BFURC6mQiM1OQtahVTzdEOEgT/UUNlRZkeeBc0K5of3dr6UdBqaoaMAefja3jx5PqiQ7mhUBAjSt6AA==", "dev": true, "license": "MIT", "peer": true, @@ -1151,9 +1168,9 @@ } }, "node_modules/@tiptap/extension-horizontal-rule": { - "version": "2.11.7", - "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.11.7.tgz", - "integrity": "sha512-uVmQwD2dzZ5xwmvUlciy0ItxOdOfQjH6VLmu80zyJf8Yu7mvwP8JyxoXUX0vd1xHpwAhgQ9/ozjIWYGIw79DPQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.12.0.tgz", + "integrity": "sha512-Vi2+6RIehDSpoJn/7PDuOieUj7W7WrEb4wBxK9TG8PDscihR0mehhhzm/K2xhH4TN48iPJGRsjDFrFjTbXmcnw==", "dev": true, "license": "MIT", "peer": true, @@ -1167,9 +1184,9 @@ } }, "node_modules/@tiptap/extension-image": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-2.11.5.tgz", - "integrity": "sha512-HbUq9AL8gb8eSuQfY/QKkvMc66ZFN/b6jvQAILGArNOgalUfGizoC6baKTJShaExMSPjBZlaAHtJiQKPaGRHaA==", + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-2.11.7.tgz", + "integrity": "sha512-YvCmTDB7Oo+A56tR4S/gcNaYpqU4DDlSQcRp5IQvmQV5EekSe0lnEazGDoqOCwsit9qQhj4MPQJhKrnaWrJUrg==", "dev": true, "license": "MIT", "peer": true, @@ -1182,9 +1199,9 @@ } }, "node_modules/@tiptap/extension-italic": { - "version": "2.11.7", - "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.11.7.tgz", - "integrity": "sha512-r985bkQfG0HMpmCU0X0p/Xe7U1qgRm2mxvcp6iPCuts2FqxaCoyfNZ8YnMsgVK1mRhM7+CQ5SEg2NOmQNtHvPw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.12.0.tgz", + "integrity": "sha512-JKcXK3LmEsmxNzEq5e06rPUGMRLUxmJ2mYtBY4NlJ6yLM9XMDljtgeTnWT0ySLYmfINSFTkX4S7WIRbpl9l4pw==", "dev": true, "license": "MIT", "peer": true, @@ -1197,9 +1214,9 @@ } }, "node_modules/@tiptap/extension-link": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-2.11.5.tgz", - "integrity": "sha512-4Iu/aPzevbYpe50xDI0ZkqRa6nkZ9eF270Ue2qaF3Ab47nehj+9Jl78XXzo8+LTyFMnrETI73TAs1aC/IGySeQ==", + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-2.11.7.tgz", + "integrity": "sha512-qKIowE73aAUrnQCIifYP34xXOHOsZw46cT/LBDlb0T60knVfQoKVE4ku08fJzAV+s6zqgsaaZ4HVOXkQYLoW7g==", "dev": true, "license": "MIT", "peer": true, @@ -1216,9 +1233,9 @@ } }, "node_modules/@tiptap/extension-list-item": { - "version": "2.11.7", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.11.7.tgz", - "integrity": "sha512-6ikh7Y+qAbkSuIHXPIINqfzmWs5uIGrylihdZ9adaIyvrN1KSnWIqrZIk/NcZTg5YFIJlXrnGSRSjb/QM3WUhw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.12.0.tgz", + "integrity": "sha512-4YwZooC8HP+gPxs6YrkB1ayggyYbgVvJx/rWBT6lKSW2MVVg8QXi1zAcSI3MhIhHmqDysXXFPL8JURlbeGjaFA==", "dev": true, "license": "MIT", "peer": true, @@ -1231,9 +1248,9 @@ } }, "node_modules/@tiptap/extension-ordered-list": { - "version": "2.11.7", - "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.11.7.tgz", - "integrity": "sha512-bLGCHDMB0vbJk7uu8bRg8vES3GsvxkX7Cgjgm/6xysHFbK98y0asDtNxkW1VvuRreNGz4tyB6vkcVCfrxl4jKw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.12.0.tgz", + "integrity": "sha512-1ys0e/oqk09oXxrB1WzAx5EntK/QreObG/V1yhgihGm429fxHMsxzIYN6dKAYxx0YOPQG7qEZRrrPuWU70Ms7g==", "dev": true, "license": "MIT", "peer": true, @@ -1246,9 +1263,9 @@ } }, "node_modules/@tiptap/extension-paragraph": { - "version": "2.11.7", - "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.11.7.tgz", - "integrity": "sha512-Pl3B4q6DJqTvvAdraqZaNP9Hh0UWEHL5nNdxhaRNuhKaUo7lq8wbDSIxIW3lvV0lyCs0NfyunkUvSm1CXb6d4Q==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.12.0.tgz", + "integrity": "sha512-QNK5cgewCunWFxpLlbvvoO1rrLgEtNKxiY79fctP9toV+e59R+1i1Q9lXC1O5mOfDgVxCb6uFDMsqmKhFjpPog==", "dev": true, "license": "MIT", "peer": true, @@ -1261,9 +1278,9 @@ } }, "node_modules/@tiptap/extension-placeholder": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-2.11.5.tgz", - "integrity": "sha512-Pr+0Ju/l2ZvXMd9VQxtaoSZbs0BBp1jbBDqwms88ctpyvQFRfLSfSkqudQcSHyw2ROOz2E31p/7I7fpI8Y0CLA==", + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-2.11.7.tgz", + "integrity": "sha512-/06zXV4HIjYoiaUq1fVJo/RcU8pHbzx21evOpeG/foCfNpMI4xLU/vnxdUi6/SQqpZMY0eFutDqod1InkSOqsg==", "dev": true, "license": "MIT", "peer": true, @@ -1277,9 +1294,9 @@ } }, "node_modules/@tiptap/extension-strike": { - "version": "2.11.7", - "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.11.7.tgz", - "integrity": "sha512-D6GYiW9F24bvAY7XMOARNZbC8YGPzdzWdXd8VOOJABhf4ynMi/oW4NNiko+kZ67jn3EGaKoz32VMJzNQgYi1HA==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.12.0.tgz", + "integrity": "sha512-nBaa5YtBsLJPZFfSs36sBz4Zgi/c8b3MsmS/Az8uXaHb0R9yPewOVUMDIQbxMct8SXUlIo9VtKlOL+mVJ3Nkpw==", "dev": true, "license": "MIT", "peer": true, @@ -1292,9 +1309,9 @@ } }, "node_modules/@tiptap/extension-subscript": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@tiptap/extension-subscript/-/extension-subscript-2.11.5.tgz", - "integrity": "sha512-VpaSzxku/Bcvf4SgDB2K5d0E+FNA/56iJHMygg/WXsq2F4tMMUEivQHI/n+17ndUEO4Wybz0wItnM1G2JfRuLQ==", + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-subscript/-/extension-subscript-2.11.7.tgz", + "integrity": "sha512-I25ZexCddFJ9701DCCtQbX3Vtxzj5d9ss2GAXVweIUCdATCScaebsznyUQoN5papmhTxXsw5OD+K2ZHxP82pew==", "dev": true, "license": "MIT", "peer": true, @@ -1307,9 +1324,9 @@ } }, "node_modules/@tiptap/extension-superscript": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@tiptap/extension-superscript/-/extension-superscript-2.11.5.tgz", - "integrity": "sha512-sK6v2G0zFfGW+j9CmYp2e+tyZ3FTa3dP0xY4kJzefgZcHhMJLlLnjxBRwHCSi/jj5ie6WdZT4KoEooxnPs1Vzw==", + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-superscript/-/extension-superscript-2.11.7.tgz", + "integrity": "sha512-dNRpCcRJs0Qvv0sZRgbH7Y5hDVbWsGSZjtwFCs/mysPrvHqmXjzo7568kYWTggxEYxnXw6n0FfkCAEHlt0N90Q==", "dev": true, "license": "MIT", "peer": true, @@ -1322,9 +1339,9 @@ } }, "node_modules/@tiptap/extension-table": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-2.11.5.tgz", - "integrity": "sha512-NKXLhKWdAdURklm98YkCd2ai4fh8jY8HS/+X2s/2QiQt8Z98CU1keCm35fJEEExM234iB/hCqG5vY4JgTc0Tvw==", + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-2.11.7.tgz", + "integrity": "sha512-rfwWkNXz/EZuhc8lylsCWPbx0Xr5FlIhreWFyeoXYrDEO3x4ytYcVOpNmbabJYP2semfM0PvPR5o84zfFkLZyg==", "dev": true, "license": "MIT", "peer": true, @@ -1338,9 +1355,9 @@ } }, "node_modules/@tiptap/extension-table-cell": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table-cell/-/extension-table-cell-2.11.5.tgz", - "integrity": "sha512-S967Au0pgeULstP3FaasOf/LEh72p61Ooh1PcUMF/az4x8EeGgpcEUARpVUxsGxLFvogv6LmhPHZdtcGgdHcBw==", + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-cell/-/extension-table-cell-2.11.7.tgz", + "integrity": "sha512-JMOkSYRckc5SJP86yGGiHzCxCR8ecrRENvTWAKib6qer2tutxs5u42W+Z8uTcHC2dRz7Fv54snOkDoqPwkf6cw==", "dev": true, "license": "MIT", "peer": true, @@ -1353,9 +1370,9 @@ } }, "node_modules/@tiptap/extension-table-header": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table-header/-/extension-table-header-2.11.5.tgz", - "integrity": "sha512-O1iBtzZP1XZDi4h1Xmgq1T63il+fpKPvBIMZ0JJH9TyCw5i5rcrMLL2dyy5zaWK3BFRJuYBNSke4c+VWnr/g6w==", + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-header/-/extension-table-header-2.11.7.tgz", + "integrity": "sha512-wPRKpliS5QQXgsp//ZjXrHMdLICMkjg2fUrQinOiBa7wDL5C7Y+SehtuK4s2tjeAkyAdj+nepfftyBRIlUSMXg==", "dev": true, "license": "MIT", "peer": true, @@ -1368,9 +1385,9 @@ } }, "node_modules/@tiptap/extension-table-row": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table-row/-/extension-table-row-2.11.5.tgz", - "integrity": "sha512-+/VWhCuW24BcM5aaIc/f0bC6ZR1Q5gnuqw13MIo7gyPx7iIY6BXK8roGiZSs8wYAN4uBEf3EKFm0bSZwQuAeyg==", + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-row/-/extension-table-row-2.11.7.tgz", + "integrity": "sha512-K254RiXWGXGjz5Cm835hqfQiwnYXm8aw6oOa3isDh4A1B+1Ev4DB2vEDKMrgaOor3nbTsSYmAx2iEMrZSbpaRg==", "dev": true, "license": "MIT", "peer": true, @@ -1383,9 +1400,9 @@ } }, "node_modules/@tiptap/extension-text": { - "version": "2.11.7", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.11.7.tgz", - "integrity": "sha512-wObCn8qZkIFnXTLvBP+X8KgaEvTap/FJ/i4hBMfHBCKPGDx99KiJU6VIbDXG8d5ZcFZE0tOetK1pP5oI7qgMlQ==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.12.0.tgz", + "integrity": "sha512-0ytN9V1tZYTXdiYDQg4FB2SQ56JAJC9r/65snefb9ztl+gZzDrIvih7CflHs1ic9PgyjexfMLeH+VzuMccNyZw==", "dev": true, "license": "MIT", "peer": true, @@ -1398,9 +1415,9 @@ } }, "node_modules/@tiptap/extension-text-align": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text-align/-/extension-text-align-2.11.5.tgz", - "integrity": "sha512-Ei0zDpH5N9EV59ogydK4HTKa4lCPicCsQllM5n/Nf2tUJPir3aiYxzJ73FzhComD4Hpo1ANYnmssBhy8QeoPZA==", + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text-align/-/extension-text-align-2.11.7.tgz", + "integrity": "sha512-3M8zd9ROADXazVNpgR6Ejs1evSvBveN36qN4GgV71GqrNlTcjqYgQcXFLQrsd2hnE+aXir8/8bLJ+aaJXDninA==", "dev": true, "license": "MIT", "peer": true, @@ -1413,9 +1430,9 @@ } }, "node_modules/@tiptap/extension-text-style": { - "version": "2.11.7", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text-style/-/extension-text-style-2.11.7.tgz", - "integrity": "sha512-LHO6DBg/9SkCQFdWlVfw9nolUmw+Cid94WkTY+7IwrpyG2+ZGQxnKpCJCKyeaFNbDoYAtvu0vuTsSXeCkgShcA==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text-style/-/extension-text-style-2.12.0.tgz", + "integrity": "sha512-Pxwt23ZlvbQUahV0PvHy8Ej6IAuKR1FvHobUvwP3T8AiY7hob66fWRe7tQbESzSAzm5Vv2xkvyHeU8vekMTezA==", "dev": true, "license": "MIT", "peer": true, @@ -1428,9 +1445,9 @@ } }, "node_modules/@tiptap/extension-underline": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-2.11.5.tgz", - "integrity": "sha512-YpWHXNIkSoRSuzT2cvgKpyJ2tTz3LzqkTM64uC+uTJ8cUkvXIWUWejJR42q8ma/mTlQe4lHff4IQ0Sf58Digtw==", + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-2.11.7.tgz", + "integrity": "sha512-NtoQw6PGijOAtXC6G+0Aq0/Z5wwEjPhNHs8nsjXogfWIgaj/aI4/zfBnA06eI3WT+emMYQTl0fTc4CUPnLVU8g==", "dev": true, "license": "MIT", "peer": true, @@ -1443,9 +1460,9 @@ } }, "node_modules/@tiptap/pm": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.11.5.tgz", - "integrity": "sha512-z9JFtqc5ZOsdQLd9vRnXfTCQ8v5ADAfRt9Nm7SqP6FUHII8E1hs38ACzf5xursmth/VonJYb5+73Pqxk1hGIPw==", + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.11.7.tgz", + "integrity": "sha512-7gEEfz2Q6bYKXM07vzLUD0vqXFhC5geWRA6LCozTiLdVFDdHWiBrvb2rtkL5T7mfLq03zc1QhH7rI3F6VntOEA==", "dev": true, "license": "MIT", "peer": true, @@ -1464,7 +1481,7 @@ "prosemirror-schema-basic": "^1.2.3", "prosemirror-schema-list": "^1.4.1", "prosemirror-state": "^1.4.3", - "prosemirror-tables": "^1.6.3", + "prosemirror-tables": "^1.6.4", "prosemirror-trailing-node": "^3.0.0", "prosemirror-transform": "^1.10.2", "prosemirror-view": "^1.37.0" @@ -1475,34 +1492,34 @@ } }, "node_modules/@tiptap/starter-kit": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.11.5.tgz", - "integrity": "sha512-SLI7Aj2ruU1t//6Mk8f+fqW+18uTqpdfLUJYgwu0CkqBckrkRZYZh6GVLk/02k3H2ki7QkFxiFbZrdbZdng0JA==", + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.11.7.tgz", + "integrity": "sha512-K+q51KwNU/l0kqRuV5e1824yOLVftj6kGplGQLvJG56P7Rb2dPbM/JeaDbxQhnHT/KDGamG0s0Po0M3pPY163A==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@tiptap/core": "^2.11.5", - "@tiptap/extension-blockquote": "^2.11.5", - "@tiptap/extension-bold": "^2.11.5", - "@tiptap/extension-bullet-list": "^2.11.5", - "@tiptap/extension-code": "^2.11.5", - "@tiptap/extension-code-block": "^2.11.5", - "@tiptap/extension-document": "^2.11.5", - "@tiptap/extension-dropcursor": "^2.11.5", - "@tiptap/extension-gapcursor": "^2.11.5", - "@tiptap/extension-hard-break": "^2.11.5", - "@tiptap/extension-heading": "^2.11.5", - "@tiptap/extension-history": "^2.11.5", - "@tiptap/extension-horizontal-rule": "^2.11.5", - "@tiptap/extension-italic": "^2.11.5", - "@tiptap/extension-list-item": "^2.11.5", - "@tiptap/extension-ordered-list": "^2.11.5", - "@tiptap/extension-paragraph": "^2.11.5", - "@tiptap/extension-strike": "^2.11.5", - "@tiptap/extension-text": "^2.11.5", - "@tiptap/extension-text-style": "^2.11.5", - "@tiptap/pm": "^2.11.5" + "@tiptap/core": "^2.11.7", + "@tiptap/extension-blockquote": "^2.11.7", + "@tiptap/extension-bold": "^2.11.7", + "@tiptap/extension-bullet-list": "^2.11.7", + "@tiptap/extension-code": "^2.11.7", + "@tiptap/extension-code-block": "^2.11.7", + "@tiptap/extension-document": "^2.11.7", + "@tiptap/extension-dropcursor": "^2.11.7", + "@tiptap/extension-gapcursor": "^2.11.7", + "@tiptap/extension-hard-break": "^2.11.7", + "@tiptap/extension-heading": "^2.11.7", + "@tiptap/extension-history": "^2.11.7", + "@tiptap/extension-horizontal-rule": "^2.11.7", + "@tiptap/extension-italic": "^2.11.7", + "@tiptap/extension-list-item": "^2.11.7", + "@tiptap/extension-ordered-list": "^2.11.7", + "@tiptap/extension-paragraph": "^2.11.7", + "@tiptap/extension-strike": "^2.11.7", + "@tiptap/extension-text": "^2.11.7", + "@tiptap/extension-text-style": "^2.11.7", + "@tiptap/pm": "^2.11.7" }, "funding": { "type": "github", @@ -1516,14 +1533,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/diff": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@types/diff/-/diff-7.0.2.tgz", - "integrity": "sha512-JSWRMozjFKsGlEjiiKajUjIJVKuKdE3oVy2DNtK+fUo8q82nhFZ2CPQwicAIkXrofahDXrWJ7mjelvZphMS98Q==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/@types/estree": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", @@ -1589,9 +1598,9 @@ "peer": true }, "node_modules/@umbraco-cms/backoffice": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/@umbraco-cms/backoffice/-/backoffice-15.3.0.tgz", - "integrity": "sha512-kpckziSOusUOPmp9AR6htJZqdNb4EO7HP3tjunj9Mi1MPrVhKl4tJy1zwz6o+T/ncGwfJdI4phAir74OS3hoWQ==", + "version": "16.0.0-rc3", + "resolved": "https://registry.npmjs.org/@umbraco-cms/backoffice/-/backoffice-16.0.0-rc3.tgz", + "integrity": "sha512-2R339fA/HOep19e7AqzpbILRwcqLJQgX36PSAfOB6ZpXSPp9/Ap5g6Ao3GUd3PwwN46Lwh8YIRmvnq0AzBHYQg==", "dev": true, "license": "MIT", "workspaces": [ @@ -1602,177 +1611,174 @@ "npm": ">=10.9" }, "peerDependencies": { - "@tiptap/core": "2.11.5", - "@tiptap/extension-image": "2.11.5", - "@tiptap/extension-link": "2.11.5", - "@tiptap/extension-placeholder": "2.11.5", - "@tiptap/extension-subscript": "2.11.5", - "@tiptap/extension-superscript": "2.11.5", - "@tiptap/extension-table": "2.11.5", - "@tiptap/extension-table-cell": "2.11.5", - "@tiptap/extension-table-header": "2.11.5", - "@tiptap/extension-table-row": "2.11.5", - "@tiptap/extension-text-align": "2.11.5", - "@tiptap/extension-underline": "2.11.5", - "@tiptap/pm": "2.11.5", - "@tiptap/starter-kit": "2.11.5", - "@types/diff": "^7.0.1", - "@umbraco-ui/uui": "^1.12.2", - "@umbraco-ui/uui-css": "^1.12.1", - "diff": "^7.0.0", - "dompurify": "^3.2.4", - "element-internals-polyfill": "^1.3.13", - "lit": "^3.2.1", - "marked": "^15.0.7", + "@tiptap/core": "2.11.7", + "@tiptap/extension-character-count": "2.11.7", + "@tiptap/extension-image": "2.11.7", + "@tiptap/extension-link": "2.11.7", + "@tiptap/extension-placeholder": "2.11.7", + "@tiptap/extension-subscript": "2.11.7", + "@tiptap/extension-superscript": "2.11.7", + "@tiptap/extension-table": "2.11.7", + "@tiptap/extension-table-cell": "2.11.7", + "@tiptap/extension-table-header": "2.11.7", + "@tiptap/extension-table-row": "2.11.7", + "@tiptap/extension-text-align": "2.11.7", + "@tiptap/extension-underline": "2.11.7", + "@tiptap/pm": "2.11.7", + "@tiptap/starter-kit": "2.11.7", + "@umbraco-ui/uui": "^1.13.0", + "@umbraco-ui/uui-css": "^1.13.0", + "dompurify": "^3.2.5", + "element-internals-polyfill": "^3.0.2", + "lit": "^3.3.0", + "marked": "^15.0.9", "monaco-editor": "^0.52.2", - "rxjs": "^7.8.1", - "tinymce": "^6.8.5", - "tinymce-i18n": "^24.12.30", - "uuid": "^11.0.5" + "rxjs": "^7.8.2" } }, "node_modules/@umbraco-ui/uui": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.12.2.tgz", - "integrity": "sha512-oEqt0ysOpqlpMk7AOX+88aV0dgnHfSXxE6imJw0KQKNMnZNOKv7EpndGliLJW/N2hgXQoVPESeYAfbLLt8J0MQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.13.0.tgz", + "integrity": "sha512-O/RvFeW+Mjn24ckmWJeTzMZKYbVrnaHscl9zKGKkMSva3j3mnJs/Q9N6BfihQy3qdZP5ED+2lGomezxfoLjZ7g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-action-bar": "1.12.2", - "@umbraco-ui/uui-avatar": "1.12.2", - "@umbraco-ui/uui-avatar-group": "1.12.2", - "@umbraco-ui/uui-badge": "1.12.2", - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-boolean-input": "1.12.2", - "@umbraco-ui/uui-box": "1.12.2", - "@umbraco-ui/uui-breadcrumbs": "1.12.2", - "@umbraco-ui/uui-button": "1.12.2", - "@umbraco-ui/uui-button-group": "1.12.2", - "@umbraco-ui/uui-button-inline-create": "1.12.2", - "@umbraco-ui/uui-card": "1.12.2", - "@umbraco-ui/uui-card-block-type": "1.12.2", - "@umbraco-ui/uui-card-content-node": "1.12.2", - "@umbraco-ui/uui-card-media": "1.12.2", - "@umbraco-ui/uui-card-user": "1.12.2", - "@umbraco-ui/uui-caret": "1.12.2", - "@umbraco-ui/uui-checkbox": "1.12.2", - "@umbraco-ui/uui-color-area": "1.12.2", - "@umbraco-ui/uui-color-picker": "1.12.2", - "@umbraco-ui/uui-color-slider": "1.12.2", - "@umbraco-ui/uui-color-swatch": "1.12.2", - "@umbraco-ui/uui-color-swatches": "1.12.2", - "@umbraco-ui/uui-combobox": "1.12.2", - "@umbraco-ui/uui-combobox-list": "1.12.2", - "@umbraco-ui/uui-css": "1.12.1", - "@umbraco-ui/uui-dialog": "1.12.2", - "@umbraco-ui/uui-dialog-layout": "1.12.2", - "@umbraco-ui/uui-file-dropzone": "1.12.2", - "@umbraco-ui/uui-file-preview": "1.12.2", - "@umbraco-ui/uui-form": "1.12.2", - "@umbraco-ui/uui-form-layout-item": "1.12.2", - "@umbraco-ui/uui-form-validation-message": "1.12.2", - "@umbraco-ui/uui-icon": "1.12.2", - "@umbraco-ui/uui-icon-registry": "1.12.2", - "@umbraco-ui/uui-icon-registry-essential": "1.12.2", - "@umbraco-ui/uui-input": "1.12.2", - "@umbraco-ui/uui-input-file": "1.12.2", - "@umbraco-ui/uui-input-lock": "1.12.2", - "@umbraco-ui/uui-input-password": "1.12.2", - "@umbraco-ui/uui-keyboard-shortcut": "1.12.2", - "@umbraco-ui/uui-label": "1.12.2", - "@umbraco-ui/uui-loader": "1.12.2", - "@umbraco-ui/uui-loader-bar": "1.12.2", - "@umbraco-ui/uui-loader-circle": "1.12.2", - "@umbraco-ui/uui-menu-item": "1.12.2", - "@umbraco-ui/uui-modal": "1.12.2", - "@umbraco-ui/uui-pagination": "1.12.2", - "@umbraco-ui/uui-popover": "1.12.2", - "@umbraco-ui/uui-popover-container": "1.12.2", - "@umbraco-ui/uui-progress-bar": "1.12.2", - "@umbraco-ui/uui-radio": "1.12.2", - "@umbraco-ui/uui-range-slider": "1.12.2", - "@umbraco-ui/uui-ref": "1.12.2", - "@umbraco-ui/uui-ref-list": "1.12.2", - "@umbraco-ui/uui-ref-node": "1.12.2", - "@umbraco-ui/uui-ref-node-data-type": "1.12.2", - "@umbraco-ui/uui-ref-node-document-type": "1.12.2", - "@umbraco-ui/uui-ref-node-form": "1.12.2", - "@umbraco-ui/uui-ref-node-member": "1.12.2", - "@umbraco-ui/uui-ref-node-package": "1.12.2", - "@umbraco-ui/uui-ref-node-user": "1.12.2", - "@umbraco-ui/uui-scroll-container": "1.12.2", - "@umbraco-ui/uui-select": "1.12.2", - "@umbraco-ui/uui-slider": "1.12.2", - "@umbraco-ui/uui-symbol-expand": "1.12.2", - "@umbraco-ui/uui-symbol-file": "1.12.2", - "@umbraco-ui/uui-symbol-file-dropzone": "1.12.2", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.12.2", - "@umbraco-ui/uui-symbol-folder": "1.12.2", - "@umbraco-ui/uui-symbol-lock": "1.12.2", - "@umbraco-ui/uui-symbol-more": "1.12.2", - "@umbraco-ui/uui-symbol-sort": "1.12.2", - "@umbraco-ui/uui-table": "1.12.2", - "@umbraco-ui/uui-tabs": "1.12.2", - "@umbraco-ui/uui-tag": "1.12.2", - "@umbraco-ui/uui-textarea": "1.12.2", - "@umbraco-ui/uui-toast-notification": "1.12.2", - "@umbraco-ui/uui-toast-notification-container": "1.12.2", - "@umbraco-ui/uui-toast-notification-layout": "1.12.2", - "@umbraco-ui/uui-toggle": "1.12.2", - "@umbraco-ui/uui-visually-hidden": "1.12.2" + "@umbraco-ui/uui-action-bar": "1.13.0", + "@umbraco-ui/uui-avatar": "1.13.0", + "@umbraco-ui/uui-avatar-group": "1.13.0", + "@umbraco-ui/uui-badge": "1.13.0", + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-boolean-input": "1.13.0", + "@umbraco-ui/uui-box": "1.13.0", + "@umbraco-ui/uui-breadcrumbs": "1.13.0", + "@umbraco-ui/uui-button": "1.13.0", + "@umbraco-ui/uui-button-copy-text": "1.13.0", + "@umbraco-ui/uui-button-group": "1.13.0", + "@umbraco-ui/uui-button-inline-create": "1.13.0", + "@umbraco-ui/uui-card": "1.13.0", + "@umbraco-ui/uui-card-block-type": "1.13.0", + "@umbraco-ui/uui-card-content-node": "1.13.0", + "@umbraco-ui/uui-card-media": "1.13.0", + "@umbraco-ui/uui-card-user": "1.13.0", + "@umbraco-ui/uui-caret": "1.13.0", + "@umbraco-ui/uui-checkbox": "1.13.0", + "@umbraco-ui/uui-color-area": "1.13.0", + "@umbraco-ui/uui-color-picker": "1.13.0", + "@umbraco-ui/uui-color-slider": "1.13.0", + "@umbraco-ui/uui-color-swatch": "1.13.0", + "@umbraco-ui/uui-color-swatches": "1.13.0", + "@umbraco-ui/uui-combobox": "1.13.0", + "@umbraco-ui/uui-combobox-list": "1.13.0", + "@umbraco-ui/uui-css": "1.13.0", + "@umbraco-ui/uui-dialog": "1.13.0", + "@umbraco-ui/uui-dialog-layout": "1.13.0", + "@umbraco-ui/uui-file-dropzone": "1.13.0", + "@umbraco-ui/uui-file-preview": "1.13.0", + "@umbraco-ui/uui-form": "1.13.0", + "@umbraco-ui/uui-form-layout-item": "1.13.0", + "@umbraco-ui/uui-form-validation-message": "1.13.0", + "@umbraco-ui/uui-icon": "1.13.0", + "@umbraco-ui/uui-icon-registry": "1.13.0", + "@umbraco-ui/uui-icon-registry-essential": "1.13.0", + "@umbraco-ui/uui-input": "1.13.0", + "@umbraco-ui/uui-input-file": "1.13.0", + "@umbraco-ui/uui-input-lock": "1.13.0", + "@umbraco-ui/uui-input-password": "1.13.0", + "@umbraco-ui/uui-keyboard-shortcut": "1.13.0", + "@umbraco-ui/uui-label": "1.13.0", + "@umbraco-ui/uui-loader": "1.13.0", + "@umbraco-ui/uui-loader-bar": "1.13.0", + "@umbraco-ui/uui-loader-circle": "1.13.0", + "@umbraco-ui/uui-menu-item": "1.13.0", + "@umbraco-ui/uui-modal": "1.13.0", + "@umbraco-ui/uui-pagination": "1.13.0", + "@umbraco-ui/uui-popover": "1.13.0", + "@umbraco-ui/uui-popover-container": "1.13.0", + "@umbraco-ui/uui-progress-bar": "1.13.0", + "@umbraco-ui/uui-radio": "1.13.0", + "@umbraco-ui/uui-range-slider": "1.13.0", + "@umbraco-ui/uui-ref": "1.13.0", + "@umbraco-ui/uui-ref-list": "1.13.0", + "@umbraco-ui/uui-ref-node": "1.13.0", + "@umbraco-ui/uui-ref-node-data-type": "1.13.0", + "@umbraco-ui/uui-ref-node-document-type": "1.13.0", + "@umbraco-ui/uui-ref-node-form": "1.13.0", + "@umbraco-ui/uui-ref-node-member": "1.13.0", + "@umbraco-ui/uui-ref-node-package": "1.13.0", + "@umbraco-ui/uui-ref-node-user": "1.13.0", + "@umbraco-ui/uui-scroll-container": "1.13.0", + "@umbraco-ui/uui-select": "1.13.0", + "@umbraco-ui/uui-slider": "1.13.0", + "@umbraco-ui/uui-symbol-expand": "1.13.0", + "@umbraco-ui/uui-symbol-file": "1.13.0", + "@umbraco-ui/uui-symbol-file-dropzone": "1.13.0", + "@umbraco-ui/uui-symbol-file-thumbnail": "1.13.0", + "@umbraco-ui/uui-symbol-folder": "1.13.0", + "@umbraco-ui/uui-symbol-lock": "1.13.0", + "@umbraco-ui/uui-symbol-more": "1.13.0", + "@umbraco-ui/uui-symbol-sort": "1.13.0", + "@umbraco-ui/uui-table": "1.13.0", + "@umbraco-ui/uui-tabs": "1.13.0", + "@umbraco-ui/uui-tag": "1.13.0", + "@umbraco-ui/uui-textarea": "1.13.0", + "@umbraco-ui/uui-toast-notification": "1.13.0", + "@umbraco-ui/uui-toast-notification-container": "1.13.0", + "@umbraco-ui/uui-toast-notification-layout": "1.13.0", + "@umbraco-ui/uui-toggle": "1.13.0", + "@umbraco-ui/uui-visually-hidden": "1.13.0" } }, "node_modules/@umbraco-ui/uui-action-bar": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-action-bar/-/uui-action-bar-1.12.2.tgz", - "integrity": "sha512-ZWTO7//oKxo5vpA+RypyxpfVMPi5f8f1uevbJ8PMdizDi67VxN1kxYA4geMzG8OQ+x5IGp01DCTtVeAx3qoJbg==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-action-bar/-/uui-action-bar-1.13.0.tgz", + "integrity": "sha512-0AGQ1zsUZT1wHKx+01JkRKLNtpjCS/SqEy/NVHUyYIGPimr6NQDM9Ok00LZKpZVwxcvArdy38XaAz6SijlaTqg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-button-group": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-button-group": "1.13.0" } }, "node_modules/@umbraco-ui/uui-avatar": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar/-/uui-avatar-1.12.2.tgz", - "integrity": "sha512-b/TkEIGJoouqCZLIBl/c0veJg8imImd35Ed+R1VPlcHFXrgpO8C54Fr0AEwsM5x5OeTtkfvs/18pveLPucraww==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar/-/uui-avatar-1.13.0.tgz", + "integrity": "sha512-w+DwB9PUcnR0y0CzeNQA2638PjF2Dswiyuoxa2ryggcy38ihypj0Fj8FpzRSe5rax2JMtpJnuoDPwUpqVwGfOQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-avatar-group": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar-group/-/uui-avatar-group-1.12.2.tgz", - "integrity": "sha512-QdymxxxC6qCRAu8vAM7Owgbe/ubZ+BL+wu0qk8RXz77CVORgLpiFeUM4YwOapOXvtogXR6haxf8m3/7nxedqdg==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar-group/-/uui-avatar-group-1.13.0.tgz", + "integrity": "sha512-G8lIknUuhy+swW9Xz7qN3fp0L5Xhx4d5C2Q9WbW316GeseLYCm2eRhXDLpiEzIMxoVYtA9P0gbkuxLFDkznc+Q==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-avatar": "1.12.2", - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-avatar": "1.13.0", + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-badge": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-badge/-/uui-badge-1.12.2.tgz", - "integrity": "sha512-jkD8rHvunbUDNZfDCekuP5DI23ufBZD+8Y3FHv5aLOAbRm9XrbJ0B4QHyKQoglQ2Yao6iKeYq+nxzG2x88Z7Dw==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-badge/-/uui-badge-1.13.0.tgz", + "integrity": "sha512-z7Z5IZwcfFJDFIPnBDfuCv+YkBHafn15oi4rNmNVynaM/iFJ+W3NAE7EmdWMDZzuDeQngbFpoRx1Ub7I4mqsng==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-base": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-base/-/uui-base-1.12.2.tgz", - "integrity": "sha512-EyPrP28teYlGeeTZvmq+4wzP8Gh9A963HbZ1nQ3oyGj+twN6QjEKUF7W4VVZ8RvFoyS1/6bWkRODuZAzAwX31g==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-base/-/uui-base-1.13.0.tgz", + "integrity": "sha512-VG0xlVzuq74qKaWn+eaTcTblR6HCi9YyrNohLLhHVAJuelmcgoPwHdNzkjoaWXlq16XKnB5Kmb6BgEtVmSQZ5w==", "dev": true, "license": "MIT", "peer": true, @@ -1781,253 +1787,265 @@ } }, "node_modules/@umbraco-ui/uui-boolean-input": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-boolean-input/-/uui-boolean-input-1.12.2.tgz", - "integrity": "sha512-/NGwAPgXLiaDIMwunTDth21jQ0+5ajH3gJ5JJH6IGIq+N2g7babAEKybkZybYq+mxH//7ljH/uKDHI9IztW58g==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-boolean-input/-/uui-boolean-input-1.13.0.tgz", + "integrity": "sha512-WsP+W5/4Fcp9sg0gFlfh8FyIzaczRC4kc2LxT3haljflgQTMVwV4MGGadOYg89hVpD0C4dZaqp69sskLWc6fWQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-box": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-box/-/uui-box-1.12.2.tgz", - "integrity": "sha512-JUxqsRjqUbZ5NM5S1w40NUlHUHPIcMFqYTeCq+nLHE9WSLchym3NN+0NZjS2+qpO70kYPGlKf39mahy+rbGP9Q==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-box/-/uui-box-1.13.0.tgz", + "integrity": "sha512-msIz5NerPKx7bnTyEyMjihnfxSTlslU+FyE4DsUUwZT6vtFxT2Dt74UbO8cg0ut9GoBjR1wpn4qNTW3xRxfdiA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-css": "1.12.1" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-css": "1.13.0" } }, "node_modules/@umbraco-ui/uui-breadcrumbs": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.12.2.tgz", - "integrity": "sha512-P/L4q5whw1/HVMMUmzgq5CYOu3ZoLmtlTUoOnTXj+g5R0ziX5ikjJWF1JnLa6M7ES43aB/7su9GeyvOMkcxMpA==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.13.0.tgz", + "integrity": "sha512-DG/m4bZ3bPTryrN6mDQMmabXPmvKcVlsfjuhJ/UDazq6T/4DVfB6YrXk6q+4N6X4njg88CO/V6ObnyB7RE+flQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-button": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button/-/uui-button-1.12.2.tgz", - "integrity": "sha512-x3zF+GLwfpc6W2vB3xLRX6g+hdKdEWMKLXtfl+WPOkocu8+EYzodrUHQg24/lO43j7ovy8c3t+zN8OhjnZMu2Q==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button/-/uui-button-1.13.0.tgz", + "integrity": "sha512-dJWr9fKQFB4CRMJ23oRmkuzN45ESuxDn1nwgLw0TLhJrAWo5uoyTL1k/IuNdg0C3+BqNIzC5B8m5YC2S+BpPlA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-icon-registry-essential": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-icon-registry-essential": "1.13.0" + } + }, + "node_modules/@umbraco-ui/uui-button-copy-text": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-copy-text/-/uui-button-copy-text-1.13.0.tgz", + "integrity": "sha512-/4j4PnxNRAyeD2LYA+dyyCZurOPnGioQfl2iFIE/B2znBvJR2JHrnCLwcAqawI+YhHxGgyKNck7BCKihYQxkow==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-button": "1.13.0" } }, "node_modules/@umbraco-ui/uui-button-group": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-group/-/uui-button-group-1.12.2.tgz", - "integrity": "sha512-VxWICU4hmYCORmo8JzXgSyzpa82/M3OyTxfn/kX+jHg0rk9vMg4JArQJp4NF9qhgOWsHx0ED5yURTTOtbNqFTQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-group/-/uui-button-group-1.13.0.tgz", + "integrity": "sha512-Pksx35rtKriOUO9IP1ETnQDoBnoiRzwheM8fmqeo44jSPsr7emaQrI3BOwqeOuD7KfPRIVnzwLdm14K4Zw6tZA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-button-inline-create": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-inline-create/-/uui-button-inline-create-1.12.2.tgz", - "integrity": "sha512-YvJTwlA2ZUhepHsmc/WwP3OqG7lkrlVmAcgG7uBbasNMwDYtLWcudMrv/NSHFrCpQe0VePyr7U4YtJqyQrbDTg==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-inline-create/-/uui-button-inline-create-1.13.0.tgz", + "integrity": "sha512-6XtJ/nZpVDkYFiWEqbr5uz5CJ2Yqled4W7zAsh53QuCCYFgyU6yU9AFtrhPRwC9I27XzmBTQRZgCkQFWuEuL5A==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-card": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card/-/uui-card-1.12.2.tgz", - "integrity": "sha512-/FqFYrQxKu38+s3y7XpiO8wW7Z2T7cyst2LvMajG+3U9KPi4A0pwxaRBlli4ay79/9V9uFEGTc4dKjB+jFKl6w==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card/-/uui-card-1.13.0.tgz", + "integrity": "sha512-fBskLWqFoquKfgFK6bJ4lM0V30XZCZcJjjwTUmSjRFvklyF3csL7W9bKB9hs+aFu0/GDQlVqOBa5tA4RLpcj0w==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-card-block-type": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-block-type/-/uui-card-block-type-1.12.2.tgz", - "integrity": "sha512-aydgrznHaIUrJpHrwftjPtnaXVQOLe+r6VWrtyWNSPM4ivUeT5WaH/FVMc90Q6yWfIF3y2a3yCIQAGEqAXghhQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-block-type/-/uui-card-block-type-1.13.0.tgz", + "integrity": "sha512-YBDHZ+76oz27+P9v8YSr3OwWs3eftqy2d3Gg/sxh3Y6n9gI2TdXtJgev9GVL2FpifZXM2A1ySzh8MscC2HLJIA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-card": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-card": "1.13.0" } }, "node_modules/@umbraco-ui/uui-card-content-node": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-content-node/-/uui-card-content-node-1.12.2.tgz", - "integrity": "sha512-yuNlbrjwphzMPv2xMHca8YUr+NH7FqeP0EjVjhhDSsOJVUZ8uj8Udoq4YIkypOAGAyG+N63jCzLvVTTR71LxGA==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-content-node/-/uui-card-content-node-1.13.0.tgz", + "integrity": "sha512-IYe/AUaJ7Pspd+zSQlJMRIUzzF7+dLnq6ApezC9b93mEEhB4WwX+BbzfHbbhyNxMv9Za9gBKZljIH3RluPWnog==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-card": "1.12.2", - "@umbraco-ui/uui-icon": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-card": "1.13.0", + "@umbraco-ui/uui-icon": "1.13.0" } }, "node_modules/@umbraco-ui/uui-card-media": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-media/-/uui-card-media-1.12.2.tgz", - "integrity": "sha512-37Zful2c9UhDxw7qYWR2F2wdt5Qs5yMjcE0Q5R1ZRA5SFba7qgY0W4YW2iAAPMk2xvDyueaTnbVy1v6gG/jtYw==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-media/-/uui-card-media-1.13.0.tgz", + "integrity": "sha512-ohRFE1FqmYNJ7VXKjzMqjhCfzfabL9bLOpJet0+VXCMHUomHZv9UHQTI1ibp71BMp934vWT3kqGgco6RYqujSQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-card": "1.12.2", - "@umbraco-ui/uui-symbol-file": "1.12.2", - "@umbraco-ui/uui-symbol-folder": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-card": "1.13.0", + "@umbraco-ui/uui-symbol-file": "1.13.0", + "@umbraco-ui/uui-symbol-folder": "1.13.0" } }, "node_modules/@umbraco-ui/uui-card-user": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-user/-/uui-card-user-1.12.2.tgz", - "integrity": "sha512-fwuYQvXjjiLTv0ykDpg+GpcoG3af3ZHUPTRbDa5W8ygAYlTRUvENSXc2qOUocy9XmXOa0p+P0NhenVSqOJpSIw==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-user/-/uui-card-user-1.13.0.tgz", + "integrity": "sha512-lAB2IuXvNK8l/n+D9s9cNNUUvBdZE2Uy3UDc0QJla3qo2RLsyM4pSgVeS0Ve+GOI1A4vyK8Sfx68cDptW04Vaw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-avatar": "1.12.2", - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-card": "1.12.2" + "@umbraco-ui/uui-avatar": "1.13.0", + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-card": "1.13.0" } }, "node_modules/@umbraco-ui/uui-caret": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-caret/-/uui-caret-1.12.2.tgz", - "integrity": "sha512-7zVDVzvLszVld9E/pGSGFRgpp+rIipB1sY/r4xDYQ70g+ljlegOfMc3bvGs/topcMM+IlcQO8EOotlps4P44Jw==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-caret/-/uui-caret-1.13.0.tgz", + "integrity": "sha512-OCrJISFcRvB6V1+xPS+AjGEp+ue3vyegTRJsLEOVbyCHbrzFwNUKLc2EFYz2rxOGjcFs7Z9M8I6eoLUuMxDQAQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-checkbox": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-checkbox/-/uui-checkbox-1.12.2.tgz", - "integrity": "sha512-C6SSAUq9JfHHWCz9LLlOOmwET1vDsLKKiYv94LIqn8Zj4H3f1bRgUnSfVPVCfy1+p//Ut8SLw2vTFcTz0F21EA==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-checkbox/-/uui-checkbox-1.13.0.tgz", + "integrity": "sha512-9ywXUZgC8kMLEgsx1JFH0iftSeI8zzVDVECYq36+dVuz0iWtXfUjb5ygSoUX0guiACVY5gNba/H+t9R+3FbUgw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-boolean-input": "1.12.2", - "@umbraco-ui/uui-icon-registry-essential": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-boolean-input": "1.13.0", + "@umbraco-ui/uui-icon-registry-essential": "1.13.0" } }, "node_modules/@umbraco-ui/uui-color-area": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-area/-/uui-color-area-1.12.2.tgz", - "integrity": "sha512-W5qOBIvTiHGxFJcc1h3H+CdLHLY4K6QRIXU7I2BEII296PbUMwKaA8WFXAvwSq1KzmCkOJP2hPa4yxQ/qKBzJQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-area/-/uui-color-area-1.13.0.tgz", + "integrity": "sha512-X7CyxicQYE5VR5iXSY0IsPym0pSYWFLQ9KDgzVIDM3fvoM+KpiGYrDhGTgrHrTpJ3EE8JO06fPrx/mJ2NyxOyQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-base": "1.13.0", "colord": "^2.9.3" } }, "node_modules/@umbraco-ui/uui-color-picker": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-picker/-/uui-color-picker-1.12.2.tgz", - "integrity": "sha512-t/FB6h1rdNzPa94dIfjGG50yRNmk/7wMjrktKjkZHt+wGWKvjM+I1RjatArZbCAmSV4EQH/7hqyvP6R1OoLIog==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-picker/-/uui-color-picker-1.13.0.tgz", + "integrity": "sha512-ROkz+5+ecZ9GbctpaynL9CeMdXhamY2wPfwjVHyp/QERLXsvhlXIojD0n11Fp4i9FzQsiHb328T5aTnBZ3tqcw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-popover-container": "1.12.2", + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-popover-container": "1.13.0", "colord": "^2.9.3" } }, "node_modules/@umbraco-ui/uui-color-slider": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-slider/-/uui-color-slider-1.12.2.tgz", - "integrity": "sha512-00LxQigqY+04eG0IzHY//Uf010u50DeCQ88ZvCV1MjPNH7T4auEC2/H/O7FYoHhwQB6Ez+ZpYA9ds/NbmTCuVg==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-slider/-/uui-color-slider-1.13.0.tgz", + "integrity": "sha512-om/OwXDVDNsy0HZIuIv6VXoi5aFBU7KtHfiq7/OLnnWtO5MQREwBCTVthhSFfe7LaZSZnFhFn89hrmw7hfhljQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-color-swatch": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatch/-/uui-color-swatch-1.12.2.tgz", - "integrity": "sha512-fDODPeuKirwSyIOhEY46J7Ml5RJcuaeMyLBshWT9bl8pNts9zIlKSvn3oSlZ9mZ7N/Ym/3R2c+33i5avoA+rIA==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatch/-/uui-color-swatch-1.13.0.tgz", + "integrity": "sha512-tiT274ldYjDMFeBQBx3yGu7HgYaNrxjNIrcktlsddfWxxjJ3UNu08YdoP4DqJOi6limQhadBllCBa9oyz4iOig==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-icon-registry-essential": "1.12.2", + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-icon-registry-essential": "1.13.0", "colord": "^2.9.3" } }, "node_modules/@umbraco-ui/uui-color-swatches": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatches/-/uui-color-swatches-1.12.2.tgz", - "integrity": "sha512-kr9gYjYFQR8mavmDJS+I2t/n5wC6kWbCaZHnJzcs3unOX2jzKHnOqJ8N05y8vc2NZP1pOKSOzoIN1Y6N3qxU+g==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatches/-/uui-color-swatches-1.13.0.tgz", + "integrity": "sha512-DAZ9cAxIp+kGFeGteDCgt+Om0vcuacmjtT98N1meP/EkPgJf6y21o3y4oySeQMAhWXznr3DBxyHHKN1Jt3do8Q==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-color-swatch": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-color-swatch": "1.13.0" } }, "node_modules/@umbraco-ui/uui-combobox": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox/-/uui-combobox-1.12.2.tgz", - "integrity": "sha512-ln7IoQQJ65zknIl5k44E61S0DgW1e7fo/IEuMlgbrmkPnEbkLqV5HVYXIR3377VvfwqbZ44npxegOZBUuuWGlw==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox/-/uui-combobox-1.13.0.tgz", + "integrity": "sha512-8lKmqQMQkh+yMA4iFonDLwpNf6EZ+pYXhJ2Xcum14WT6UI6BgiQvuM2nmRrkWhqA7Wx0tTAAdP5ILPAl5lENRQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-button": "1.12.2", - "@umbraco-ui/uui-combobox-list": "1.12.2", - "@umbraco-ui/uui-icon": "1.12.2", - "@umbraco-ui/uui-popover-container": "1.12.2", - "@umbraco-ui/uui-scroll-container": "1.12.2", - "@umbraco-ui/uui-symbol-expand": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-button": "1.13.0", + "@umbraco-ui/uui-combobox-list": "1.13.0", + "@umbraco-ui/uui-icon": "1.13.0", + "@umbraco-ui/uui-popover-container": "1.13.0", + "@umbraco-ui/uui-scroll-container": "1.13.0", + "@umbraco-ui/uui-symbol-expand": "1.13.0" } }, "node_modules/@umbraco-ui/uui-combobox-list": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox-list/-/uui-combobox-list-1.12.2.tgz", - "integrity": "sha512-tBtQgQKB6kgPwRSkXM9kShNfC4Zed7V1hstCjVFy1wkRU+IinVYiN28NMNdSvDWmmxkRcIVOt7lY70T0fgPPMw==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox-list/-/uui-combobox-list-1.13.0.tgz", + "integrity": "sha512-ZVRouGMb7VH5wD8a0kE1t71oUMD1gUvFdACPWTjunpgM0ZXk1wOGGtS3vsEaTAkbQ8gABPpsYnCaWBt0MR+RpA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-css": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.12.1.tgz", - "integrity": "sha512-cWdoJw3OjdZ5QUoXhUufp/8mdGkVJ4DiI7/NgPaU2GrMbo+c1Q2cx4ST2/K0Q7nY6qa4P4WCSLMoFGyFoOwLKQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.13.0.tgz", + "integrity": "sha512-6crDukueGm9t5CBU+d/icouGELQQIQsfi/qT7J6qISRZTvBjoT0FxUxUtpXsIQs1H0qgULhwx8PTKnfQ/AMZFA==", "dev": true, "license": "MIT", "peer": true, @@ -2036,659 +2054,659 @@ } }, "node_modules/@umbraco-ui/uui-dialog": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog/-/uui-dialog-1.12.2.tgz", - "integrity": "sha512-YfHE4RTRKJiSi/ZCnZMJs+eImXx64JrZmu39bEb6FBAnMpqAMxeq70Nll4Nk43nL6liARv1bXP8OKZd2b7CPgQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog/-/uui-dialog-1.13.0.tgz", + "integrity": "sha512-RzePOwJrhBEYBZAwgvNkIro+cVirLxgaIGNFUgnvoWIovHJNOuSso65MtcGON3nvuQ4JxE8SIOTE/hwT04R7Ag==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-css": "1.12.1" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-css": "1.13.0" } }, "node_modules/@umbraco-ui/uui-dialog-layout": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog-layout/-/uui-dialog-layout-1.12.2.tgz", - "integrity": "sha512-Xy+Ocwia0xRcpUUARTdXgSgf5NIG2mlneDkiz6dsrIsFZ1IysXCnfh/4dXw57fneO+PyHI86bDwb9aFlWvve7Q==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog-layout/-/uui-dialog-layout-1.13.0.tgz", + "integrity": "sha512-m8eoCEz0dugWmqrmRw2vHae3k7oYjr53JiOkb8viCMh7veQo4EM0zqZgdCwADs1wES8woOX5zdttp9JtqYenRw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-file-dropzone": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.12.2.tgz", - "integrity": "sha512-5B/1umH72IrxwlQ+4ivKDSIXXcGbfFuhvo98v1nuIF5MGl6wmoiG/lDilhny08RJMHwlcRkdYCtCChtuWEyVUg==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.13.0.tgz", + "integrity": "sha512-1TFkyeNB3qWWhgc7NYudxXOc3v0cBRuRpVYPA3xocfVkqCG2PgEc7ePW18CtUuuGntGwv0E0Oni2bfSLrqVmuQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-symbol-file-dropzone": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-symbol-file-dropzone": "1.13.0" } }, "node_modules/@umbraco-ui/uui-file-preview": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-preview/-/uui-file-preview-1.12.2.tgz", - "integrity": "sha512-Oxkm7x3V/aCHPQDNh8loMESWswYCyDJeZazbhGig7mU6zbms7Vl3Vm46CIKEBva6IMy1p1AsNOgSjY4wmIvXsw==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-preview/-/uui-file-preview-1.13.0.tgz", + "integrity": "sha512-ZEW2q6If0+3WWHnQp9UPdL+rcI4zUKlyvELDU1JDzx/IVDFJb8f7fI5qhzQjl4kXCVI54Ch4WkBie6RDpNSqVg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-symbol-file": "1.12.2", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.12.2", - "@umbraco-ui/uui-symbol-folder": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-symbol-file": "1.13.0", + "@umbraco-ui/uui-symbol-file-thumbnail": "1.13.0", + "@umbraco-ui/uui-symbol-folder": "1.13.0" } }, "node_modules/@umbraco-ui/uui-form": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form/-/uui-form-1.12.2.tgz", - "integrity": "sha512-35CEeSCODTMaJi7JlvBl988tB0MIbocNg5ewCLeqm2CLVvW1UQi4V+835CY1fjgiR6D8co6Kz6KCR/9aibX5Gg==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form/-/uui-form-1.13.0.tgz", + "integrity": "sha512-Y5Wgl3AcixLbPHJJK2yqdga5NMHx5Jv3YvG69+AdPkgzyNmCtdbDitV8ex2ysNYMO3WbBRdYIjbI5pYRl3xn5Q==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-form-layout-item": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-layout-item/-/uui-form-layout-item-1.12.2.tgz", - "integrity": "sha512-qc4JJhhtM7HsVT1DBtw2xRbayLEWvFDwXROXgmwTUMOVZJ9qGFpSN6EWymm9fr+gBYcbwii6ZKg0ujIeHDILTw==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-layout-item/-/uui-form-layout-item-1.13.0.tgz", + "integrity": "sha512-GKNjsvUBbl2ba9e7b88Vk7HuMO9exnGDRpmQ94PSH/rOUF44ri4mPTPFU2k9DCvIkSs7lxDvotXE7kQ5IPQYBw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-form-validation-message": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-form-validation-message": "1.13.0" } }, "node_modules/@umbraco-ui/uui-form-validation-message": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-validation-message/-/uui-form-validation-message-1.12.2.tgz", - "integrity": "sha512-MQ0nNQcNpawQUZA+JGYPbGW8Go9b9nj4loK26Op0qvInQpbe9mHbHAhWOdbPTBLoJSYnXpo90/3E9ycU9p9PEQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-validation-message/-/uui-form-validation-message-1.13.0.tgz", + "integrity": "sha512-x1E84q6L8DbpBkoS+ykdvmoEUcObXYhym6nhh2lK2TAn7vZu+XD+Osd5rgy5ycZ4YtYnCqetlaPwQwAFqFiSHA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-icon": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon/-/uui-icon-1.12.2.tgz", - "integrity": "sha512-sAz08736Jt1y6pPZSBafNT04w9YCnck46whCZUhx7FX7kiKctJX0Xr9GVZH99YAGxnbXnNx0YsN6PqFfz92FzA==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon/-/uui-icon-1.13.0.tgz", + "integrity": "sha512-TKmQi4n8ZV6v228U6zi9f38g/Nu4ok1cbvoIiSfSvmSYNXD1weuWK5y7Ph7EGr6jL5T5vKbDhjcZUIjzBOVWAA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-icon-registry": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry/-/uui-icon-registry-1.12.2.tgz", - "integrity": "sha512-CXinq7uwca8QzIMCMBkUNkHoq9KV5ioxJSY4+2b5s7lpS8zK+Zoe+zzt5QL/bOCET6TTGZifpCiZRIiRy1Mffg==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry/-/uui-icon-registry-1.13.0.tgz", + "integrity": "sha512-/w7EN7Exi7ST0olPuxFLFm8rw3Mt2QhZsqQWQXXYnb4hTC+ot27IDahQmlLOx85+h/KH3Qz+Tn2NgM3BEdQQ5w==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-icon": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-icon": "1.13.0" } }, "node_modules/@umbraco-ui/uui-icon-registry-essential": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry-essential/-/uui-icon-registry-essential-1.12.2.tgz", - "integrity": "sha512-s53QmcXVzrLDwpVP3WZW1pekG95kVrjgHDyTo2T3a2J4ovvEEYpZ8/Jmf/3lJVj5CpvQV+I1l/Wx3zFtniT91g==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry-essential/-/uui-icon-registry-essential-1.13.0.tgz", + "integrity": "sha512-CcuBNg06ewGM6OhwjXCQKm5QDYXySCcc7TQajJ14kfMXtdcO8ls6eI2D8t+Hkc4YN7TQaUeGgzMF746f4TiiNQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-icon-registry": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-icon-registry": "1.13.0" } }, "node_modules/@umbraco-ui/uui-input": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.12.2.tgz", - "integrity": "sha512-t/QsptHm9jMH8A0iWBvRZ2s/qeKaO5vp1Zf5oBG9RtgZoS7cNowdMQPVp6mXzc1gICc217lNFsxt+MUGVCud2w==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.13.0.tgz", + "integrity": "sha512-2GwLio1SDBofYLZjds47X6Fxq29ORgQBZaD9xwowFaoWCsG+WIFsE7VaE4KgPASUOQYoMMzFZX3F2TdvbjPEAg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-input-file": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-file/-/uui-input-file-1.12.2.tgz", - "integrity": "sha512-X/AeocW+1XLroIqsuxB4OBTmFy1n7ZzfxNrtwEsaqM1rbrA3RGY2EIjnt311eoxk9DvFWeG50/gICV85sWWNmQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-file/-/uui-input-file-1.13.0.tgz", + "integrity": "sha512-wKmFAzThstZPeCOtNtdAX8SZ09T0mJQEA1g+l6EaCV5ikPLSO0kiqmv3P0p0IDf6WSX29+UhcSp2hOVzR+cELg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-action-bar": "1.12.2", - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-button": "1.12.2", - "@umbraco-ui/uui-file-dropzone": "1.12.2", - "@umbraco-ui/uui-icon": "1.12.2", - "@umbraco-ui/uui-icon-registry-essential": "1.12.2" + "@umbraco-ui/uui-action-bar": "1.13.0", + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-button": "1.13.0", + "@umbraco-ui/uui-file-dropzone": "1.13.0", + "@umbraco-ui/uui-icon": "1.13.0", + "@umbraco-ui/uui-icon-registry-essential": "1.13.0" } }, "node_modules/@umbraco-ui/uui-input-lock": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.12.2.tgz", - "integrity": "sha512-EAjzK0xZbjEEyIqHjMdDPmBQMSay/vbYj65YHb8aJBtYyL17qIqVRMEB9D/tV7cGBp5FbpkpZtb5qWmNVFQtcg==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.13.0.tgz", + "integrity": "sha512-qChhwO5NsA8es9X41HJ73sXtmvKUF90WBBL8PYgESLkL7zQdvhe9wfJhVjZ1WMJkOc6F7uTAJbawuEVXSX0uKA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-button": "1.12.2", - "@umbraco-ui/uui-icon": "1.12.2", - "@umbraco-ui/uui-input": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-button": "1.13.0", + "@umbraco-ui/uui-icon": "1.13.0", + "@umbraco-ui/uui-input": "1.13.0" } }, "node_modules/@umbraco-ui/uui-input-password": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.12.2.tgz", - "integrity": "sha512-CYNHiaDmaBDXUYE6XFpO3lpmClwjC6aCgtlYFe8SqFlcyU1KABal36PopxpnIMuKrmMv3LFHw1Jpg5dnjk/hNA==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.13.0.tgz", + "integrity": "sha512-1ljgXM1Ux2J73J2mNd01Xh1Bk7Por0MXk6fQ4TP/qp4A5ohF6CmiBVNWSBkWLfEY7TNHfvOIIIiDGfc0Ko0UFw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-icon-registry-essential": "1.12.2", - "@umbraco-ui/uui-input": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-icon-registry-essential": "1.13.0", + "@umbraco-ui/uui-input": "1.13.0" } }, "node_modules/@umbraco-ui/uui-keyboard-shortcut": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-keyboard-shortcut/-/uui-keyboard-shortcut-1.12.2.tgz", - "integrity": "sha512-X4ZpIP6AQbx5d3zLVVGqHKIDBli4HwkOsTnepHYFPTykTTiCVBxRiVQ5TRgAM4GjeEaUe/mOyPOCYkVBJ0bKmA==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-keyboard-shortcut/-/uui-keyboard-shortcut-1.13.0.tgz", + "integrity": "sha512-zKh674a19swyaZiLI/vCws56H4P+lUCIQxu+/U3280zGQqp35vCj0RhvbU2zA4QCCvTEWSrOOQwyu019zEEz5w==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-label": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-label/-/uui-label-1.12.2.tgz", - "integrity": "sha512-D4j2XBwtYq2tK/pP+QJuLSxg5NtD+jGEy5DO2qhoRm2VPzGjCWw3irdykVoTIgMRjJiWOQMvE8tpgqPBsBygHw==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-label/-/uui-label-1.13.0.tgz", + "integrity": "sha512-BcfvqdFybY0Vb7TVinfHDLrAyhmtayz5ZGXwnTZpwyg7IP+pPZrFunrhcPPTPIrvJEw/j7qgpfC2AKMsiaZq7A==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-loader": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader/-/uui-loader-1.12.2.tgz", - "integrity": "sha512-vbAds+57/wFelt+F4YdCdZ9dyR9DjBtEEPhcJDbd5yLwbgKnl+ITL6pDtu2kT45cVMacaxxZAdP5SzcwVSnR7g==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader/-/uui-loader-1.13.0.tgz", + "integrity": "sha512-AmNcIX7XNtW9dc29TdlMgTcTJBxU7MCae9iivNLLfFrg3VblltCPeeCOcLx77rw/k9o/IWrhLOsN81Q0HPfs7g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-loader-bar": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-bar/-/uui-loader-bar-1.12.2.tgz", - "integrity": "sha512-nC678xqAJFH8vKqhewfFi1CEZ8dR5r/s88REILZOwQM8S0c2z9J4bxesmjpr2ZIQ4KQ2l7BCzBdWbyqs+GUHUA==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-bar/-/uui-loader-bar-1.13.0.tgz", + "integrity": "sha512-wRJl2n6VesXV5z7EOz3W8DKDo2XLbpb4a9HZHauDtnGl9aNQggcFYBXTrLAvqg2Nuir2g52kQT9mDcQiTDxJLQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-loader-circle": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-circle/-/uui-loader-circle-1.12.2.tgz", - "integrity": "sha512-CmjdLDdUM1pRp3dE+WKVEc9dTIQlvYtPtJIjCyNwP403YcKvreGMW6wKMxV/+69IEPjRtTjyaKyprNGnRVRpwg==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-circle/-/uui-loader-circle-1.13.0.tgz", + "integrity": "sha512-efDzwo7uC7bs60boAvJNtqI7CFTe/4R5xdyi9khSF9w/0WnMRgIsY9h7xQLWCycjC/Nvoe/UwBZQ6P5khkdfaw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-menu-item": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-menu-item/-/uui-menu-item-1.12.2.tgz", - "integrity": "sha512-CvrkPWvfRLGSWFNDq+SCLKUm08DjWzw/nYtGLSmQL9QsXa/SMJMtmmcw2H+OYzk4d/9ME+r0GRralZgDlx08iA==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-menu-item/-/uui-menu-item-1.13.0.tgz", + "integrity": "sha512-Rl3y+gXyN4ZLdzhhmCW1dWWC53erFVnVV1OTm2paYk1w13du/T4S+X7J0uyobrc1E3iFTjAFNh0UuvHxRsxtcQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-loader-bar": "1.12.2", - "@umbraco-ui/uui-symbol-expand": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-loader-bar": "1.13.0", + "@umbraco-ui/uui-symbol-expand": "1.13.0" } }, "node_modules/@umbraco-ui/uui-modal": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-modal/-/uui-modal-1.12.2.tgz", - "integrity": "sha512-0ZJuMwdpIFDD+vi59gakhL4jsEb+/f/sMIH4yE/np8ccbZNnGSIT0RJPe94lv6b2wPKrjVIQ1VGGrqzY2znh2A==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-modal/-/uui-modal-1.13.0.tgz", + "integrity": "sha512-uiBmQg4gE3S9lreABkLbr4kSRdZAbkxzavBZ27DTDWjeez5Zn+sqy+FckPGct+HZheTdXgGF+M4YRypZj7gOhg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-pagination": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-pagination/-/uui-pagination-1.12.2.tgz", - "integrity": "sha512-TvP0GKewUZndpO7rHlPqbsw5dPqmKBJXs33berhn/crIE2pGnPVEBey3NYLIHBd5CZI5ufn+gGn4NPNVGF+Q9A==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-pagination/-/uui-pagination-1.13.0.tgz", + "integrity": "sha512-RtD+szI8P+7y2tKBLLPJyCOlfS504LgQqD4pUOZbxemsQmMe37OZ1CiiqfrNJVEv4TbMHP0WvoRiLFDawICXnw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-button": "1.12.2", - "@umbraco-ui/uui-button-group": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-button": "1.13.0", + "@umbraco-ui/uui-button-group": "1.13.0" } }, "node_modules/@umbraco-ui/uui-popover": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover/-/uui-popover-1.12.2.tgz", - "integrity": "sha512-gvSUe7wox0VY/wEm8LLUV//aLVwz7twswWQd9QniR6MdahvwhjWhQ90hTVpir3VAj5GFBaTfSitqeFBElyT1og==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover/-/uui-popover-1.13.0.tgz", + "integrity": "sha512-fpN0x+9p7cxrKiBYzEbpAYuIFYxWlUDrv4jYw3+oEI1ZP2wlS4dKphxhNtLreGrbaYsSUXe8Vgx9wy3eFawfug==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-popover-container": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover-container/-/uui-popover-container-1.12.2.tgz", - "integrity": "sha512-2z//P49B1zyoN/tWdVZp6Q+8qRnbbtGb4CBveXZeuuirzNxhMOA/E77Y0aJmzjn8yTRoooMGmYzRYd+4zJGNJQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover-container/-/uui-popover-container-1.13.0.tgz", + "integrity": "sha512-pNvfRLjFzRY7j8bJ1LDGROBZ1+h4HbKqr7O4bs8z8ZfdrxqHb1k/BssbSNt25JFmoHDSRZbFs3yBL9jhVEr/Xg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-progress-bar": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-progress-bar/-/uui-progress-bar-1.12.2.tgz", - "integrity": "sha512-PW5TKeg58Lv3WfX6Sp/EPWCsl9oYqQovvl/7y0pxy7xFnSYma5tFQ+XX0mD1rKw7ed3Unlek/Ma9u79Z9GVhDQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-progress-bar/-/uui-progress-bar-1.13.0.tgz", + "integrity": "sha512-QRgydD21AJfmv89WWiim8O/7XR0BTsWP73lga2Tbj3OU/8jjw0vcqmjzf0uhOir5SL1Y0Y1CT/SPUjgxc0VC0g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-radio": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-radio/-/uui-radio-1.12.2.tgz", - "integrity": "sha512-KfXA6+YtueMsxQTjzjp8gVgGJAk17BW9d4Da4h7kYhZGekfWK996ohEgGWF7vj/Q4Ai229OuX7zNJdufCGZIfw==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-radio/-/uui-radio-1.13.0.tgz", + "integrity": "sha512-SsSqyte7n2KEqEjmtI2ajUX6m0AL6nreSZ53IGViMBim8bTcW4oBq5Wbp3dll+s88WvExppozE2iA1kLgjijOw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-range-slider": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-range-slider/-/uui-range-slider-1.12.2.tgz", - "integrity": "sha512-m4ATwJYdasF4jfLLHxfFw+2n0uQmZdOha4vxzHbTreyO/gnwn8hLfICA1h9zjoZIqUGMtQ9KlhIaUezvgMpGFw==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-range-slider/-/uui-range-slider-1.13.0.tgz", + "integrity": "sha512-gplKOzASnz2spVVkwgj1kYAPFRqp4KRuDFlWyr2IY5luvTajUZC6JOB4aQDs5+OMbgYvF4G+PKFEapuYnR7gNg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-ref": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref/-/uui-ref-1.12.2.tgz", - "integrity": "sha512-uwQmaiuwphD1ereZLBhcUDMUaUosO0sV6NrBOh9KLWhkmeqYjuFFG2+CRxdhQrKb1ltZfLzAmzYfGp6AoFkvmw==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref/-/uui-ref-1.13.0.tgz", + "integrity": "sha512-jgVgHFa7/5zcg86Rtkecp7XO9FENQUQ7uMZyCAUHYCPur/n0CKNBrVjwQ/PEI0o1VR+eRGUG5iByZgQW1yWTtQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-ref-list": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-list/-/uui-ref-list-1.12.2.tgz", - "integrity": "sha512-b7reEiwfGy17Ns3qFQoO0TnngxAUclhj0jR7gLIk7dHNJZw45r37crPMkVs2CnRj657nn4DmghjQgCLDSCre9w==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-list/-/uui-ref-list-1.13.0.tgz", + "integrity": "sha512-9Nw03JwymtGnkqvnEeRhmSS+F7Xlzp7yef4R/WdZEIYASV42vwCIAj5Wdj2JI+Apc0ZVZ4hCQhbfNVsr+e7ddQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-ref-node": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node/-/uui-ref-node-1.12.2.tgz", - "integrity": "sha512-RFma47ixyYNdcMwel1+dte5fGnULczWZpzh1CvAiI9JNKzy9ItUFi70UiFKMrkOY0gT+910xgeWhk4jPTJJgpQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node/-/uui-ref-node-1.13.0.tgz", + "integrity": "sha512-otjHMgmaekLl3iPwDjLgJ6H7HIWF3QqNLNAiHnGZ1pdShJyLfajvHxnDULeUuI6zRDdjavzz3fhPUnjzyraYpQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-icon": "1.12.2", - "@umbraco-ui/uui-ref": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-icon": "1.13.0", + "@umbraco-ui/uui-ref": "1.13.0" } }, "node_modules/@umbraco-ui/uui-ref-node-data-type": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-data-type/-/uui-ref-node-data-type-1.12.2.tgz", - "integrity": "sha512-s8eviANQTHaNXSVa4U61wJcPCAwzUj6YrIvw7T3Ioe4HgIQvTotIWaCkek+p4ttl3irnnBsRXfGdW+yWuaEnEg==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-data-type/-/uui-ref-node-data-type-1.13.0.tgz", + "integrity": "sha512-M5+7ekzpoNJmjD8YvH5TQPb1ENbIwnjyXyUv7IiXV2AtTF/H/g0t4pEU+SYhlrAe61VyW5TedtAMWK+oDKrWUg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-ref-node": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-ref-node": "1.13.0" } }, "node_modules/@umbraco-ui/uui-ref-node-document-type": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-document-type/-/uui-ref-node-document-type-1.12.2.tgz", - "integrity": "sha512-Dg+SAAcMSqr0EvX6IY2jjGk9I8bbgo1Pe6L5c9g0CBPmQ8H+0qOKDdSojWzn/qohtfdAIvN+21Q0AvCovVA9rA==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-document-type/-/uui-ref-node-document-type-1.13.0.tgz", + "integrity": "sha512-AsTjfuAKak/cdaZaJCjuu19YyYwC2FunPP2fz2PuXPr7ULcmo78oYIZY6YJPUsPlBSMN5PIIr9iox3ob6Dd+Rg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-ref-node": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-ref-node": "1.13.0" } }, "node_modules/@umbraco-ui/uui-ref-node-form": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-form/-/uui-ref-node-form-1.12.2.tgz", - "integrity": "sha512-jnPNmLK8LvZenH2MY9Ea8R+4JkuDNMoBfUFVnhaLg+dHp7tsrg9opIONDNOIJJTYHryHdZ+/ksvQGW6ZWlACgQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-form/-/uui-ref-node-form-1.13.0.tgz", + "integrity": "sha512-ySHrq0xH4l69NH12pXzfPrrMG9fRnHF7ul+iKSrPvqUdWnsNpEzYakGvt6XXji1x3ogZEKnKMlzAXrHZDL8LoA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-ref-node": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-ref-node": "1.13.0" } }, "node_modules/@umbraco-ui/uui-ref-node-member": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-member/-/uui-ref-node-member-1.12.2.tgz", - "integrity": "sha512-ft0SRlDZ49eRbV3Xk7JtDfR5UraULoeTfYe/MHZkmAzhrDKeTtnd9oVYUQ27qsYs6EVneQ8byydwXrmSMloc8A==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-member/-/uui-ref-node-member-1.13.0.tgz", + "integrity": "sha512-UiSAxsPjpivbI0Hm1fZ1O7nTgkSjPigi9z5RWT4P0viiYetrc8ggJpZ5cDFEQH2xBe40qfBQQGr8vJ4Gsz3opg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-ref-node": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-ref-node": "1.13.0" } }, "node_modules/@umbraco-ui/uui-ref-node-package": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-package/-/uui-ref-node-package-1.12.2.tgz", - "integrity": "sha512-TX9PCPpeOWpl5vK8o/QjXgEWXOt7z0lQK8wlUHYSz+a3/wcmDZD0J/OXkmpvVyS2lXe6pqR8HJ/+FwcnrOm/9w==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-package/-/uui-ref-node-package-1.13.0.tgz", + "integrity": "sha512-iANsUZDFjLQdalKVI007LuNDlEsruh88peWiBrDN47HtRZlZ/tLV67Ljd5oRjZhAFZLjjFQ1jl0DOkkD3lKIFw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-ref-node": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-ref-node": "1.13.0" } }, "node_modules/@umbraco-ui/uui-ref-node-user": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-user/-/uui-ref-node-user-1.12.2.tgz", - "integrity": "sha512-sBMICX3vxJd9WjJPWqVnhUhJL+JMuzGzZVUfHlzIjrdpANZZ6FrhnvYkHXhW83KsrfwLsY5/3CXr22xZSsVajA==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-user/-/uui-ref-node-user-1.13.0.tgz", + "integrity": "sha512-XckwV6nrJjWeeBZX7j28fJdJZlzugyhfXIacp6+AnFHrL5NXjsb3Hi4ZLt00CurcxmhVVta+J5uvmOLSVi7Myw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-ref-node": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-ref-node": "1.13.0" } }, "node_modules/@umbraco-ui/uui-scroll-container": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-scroll-container/-/uui-scroll-container-1.12.2.tgz", - "integrity": "sha512-MI5lpiUeLg1Scf2xHaFzBADAW8CAwcU2yEKOOfOgONuaP6PiUA80YqtE2hCm5BmoldbOYBufCJlFFi2cyuq7HQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-scroll-container/-/uui-scroll-container-1.13.0.tgz", + "integrity": "sha512-3Qnl6aGxRs2FYvZzskZYFXnDsej5vBHalu/0b7VKfTPdUMJuAtR+1rz+veLvm9hL5pf9sJbSx4IZe+BubrYmnw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-select": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-select/-/uui-select-1.12.2.tgz", - "integrity": "sha512-TOGodRtumlh1cgC9iKxsV/jEGH2w7bKBjIhyQ42sJ3DXyLPcXVEUooZYmh/3dOf7R/7eHSsZOxH/sskbQlNS2A==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-select/-/uui-select-1.13.0.tgz", + "integrity": "sha512-JF4Jtgc/H61tdPVD01kkBRkUofWatrUG9diRMuaGPvQsWEVNvbCJKXJ+Fww9pMQts25EidLhhtqG2hX3ZSsgYA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-slider": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-slider/-/uui-slider-1.12.2.tgz", - "integrity": "sha512-Eg0XqIIXwibxq7y4qe0OB9+t7QLetnlBY3i2BSeMPMfarG1NQ6jhWVOv//RKmZ1kqfUh9MCE5tya9T9h68zR1A==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-slider/-/uui-slider-1.13.0.tgz", + "integrity": "sha512-r4QE+V0LTyn1NAyHsLBkHAvu1jzqfpQ9mOIzwt7ekpuKUrlbaB+LWVo+lxiX7ShUVHxL+0squ0/1CNrLquz0AA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-symbol-expand": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-expand/-/uui-symbol-expand-1.12.2.tgz", - "integrity": "sha512-zW/ClcJuPCe7ELYHCyoSMm6sGWVPLDbjz8TlE1qambwmFefqTfv69p3nB0YF7QnB+7LR5ePOV63vjZSYWT9/Aw==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-expand/-/uui-symbol-expand-1.13.0.tgz", + "integrity": "sha512-nR6Ld0ZrWQX0Ijk1y+3sRXMaAh87uaQkhcIHgS9Ziz+F1JbCf5WCygla3Xux5t+zpxhPVy6yvZc3iWJxQMp1TA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-symbol-file": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file/-/uui-symbol-file-1.12.2.tgz", - "integrity": "sha512-+af95C4eZOdOpqJrt8br1pic1P/NPrnyC1Q4sKLaCReuBqBdaWLl502kAXjlkkoJZsv4GsyzmjiSbBkbRIZCFQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file/-/uui-symbol-file-1.13.0.tgz", + "integrity": "sha512-F3+MyQaGDUYr+Z0VyBmZaIirPKSkON2Gu6jrb8kX04UuqVPIRvoxjubGTmu6wU5M0ATRt/NIG5CzYJp33R8bGA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-symbol-file-dropzone": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-dropzone/-/uui-symbol-file-dropzone-1.12.2.tgz", - "integrity": "sha512-8vmHw+nYZdWgeUVNCJhTvJg4iw0zTCxQ6H5tguN1Qepc+XD1NdlRTi8yicnEKSLcq20qzI3KxxwToNLnFKseSQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-dropzone/-/uui-symbol-file-dropzone-1.13.0.tgz", + "integrity": "sha512-ko3+WSdgd3pG3SI5eUPJ/VbOYTW86AW6EmYDrsALAdRdKhQ5Kusbe7M8Uds8BB3EJ9GT9+xcjocLNMCTxV8soA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-symbol-file-thumbnail": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-thumbnail/-/uui-symbol-file-thumbnail-1.12.2.tgz", - "integrity": "sha512-tQsQTjgZti4zB327Xd2ql8lz9rj07aVwKfJcV2bClHwyQbRb370KRAS4m6MiaT587+6qVcjRwG3Sya1blpNMfg==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-thumbnail/-/uui-symbol-file-thumbnail-1.13.0.tgz", + "integrity": "sha512-fgdJcecVz39MuFTTneD9yI8K/4KZQkHaARfvcWmc2rvRD8S5HzGcp/a+y0zOmzLIpKi3Sjlwc/4d123nE3V0NQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-symbol-folder": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-folder/-/uui-symbol-folder-1.12.2.tgz", - "integrity": "sha512-v3bYEpbomOmt2J+LYuB3HqzzZW+LzK/Ufpvr3Km9Gl4eXjPUnrAzBn3PSdq7w5ZvR3vfEV017coPTSX0wncjKQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-folder/-/uui-symbol-folder-1.13.0.tgz", + "integrity": "sha512-TIh45JTtvv6l+/7+UtSQxxyvtIyiv9tVv1QC4SKesW19opUkWiaNd5awaKlshi+Iu9CbXvCVwxTJ6TK5z3hsaA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-symbol-lock": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-lock/-/uui-symbol-lock-1.12.2.tgz", - "integrity": "sha512-syW+kTYq7W9coBc7ov1BbDhRTmAMh77GacfQt4XSayHgE/hhO6UvG95uk0POaooQ0UfBW1bDv9r3/wJNZBTfmw==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-lock/-/uui-symbol-lock-1.13.0.tgz", + "integrity": "sha512-/39U8n0DfHNI4I2X1WX8dJv6pSOHeJMvpyS1Cla54Q45gtt7RHMU55aNEGBZoF19oPV2W74gl7vfcHGTtnPKNQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-symbol-more": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-more/-/uui-symbol-more-1.12.2.tgz", - "integrity": "sha512-lxcw/B6zl3TJ7mZDYgXKvX6D/1gYYLmrLvKV7J5iSTGxDNiLji8NAXu2/rgffKMGIFaLfZicEENSLLX/JF8QGQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-more/-/uui-symbol-more-1.13.0.tgz", + "integrity": "sha512-mEwbSezTZfG77MUdWrFGXkMaSBHpC899lToDONTnQurkvLBxbBRBlT+xhHo54psAzJX7C6NLRvExTMztGU1OeQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-symbol-sort": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-sort/-/uui-symbol-sort-1.12.2.tgz", - "integrity": "sha512-iDLs6Ph9BGrLRifU6oGZr7UCOsoOKk5NMxnP7eP/sy0geq30kHlI/mcBu6XUrtYiFsy3+l8b8gSFdLxEHQrcgQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-sort/-/uui-symbol-sort-1.13.0.tgz", + "integrity": "sha512-BDcvHXrueX3d6sFcQa5jzxlV1C0OdhymN1Q5GzXpby2xLJTjNbeGISdgHGCxjLPsmHUAAZ7XCGR8pqI0F+8Hpg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-table": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-table/-/uui-table-1.12.2.tgz", - "integrity": "sha512-aHSArtedBiQBcz++eXomQvTys4Q0P7/SNEUcsG/CbPS7uDWXQZJK/KajtI7rMjU/d63dtavIXq9v0LatKTM/sw==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-table/-/uui-table-1.13.0.tgz", + "integrity": "sha512-CKoPIsqURMtR6PwaSs4UvB56LVLMTop93gArI//yN9Ox1/w7awxnnkRN2skpKIbtDHrbEBI//NJE50jPoS82eg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-tabs": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tabs/-/uui-tabs-1.12.2.tgz", - "integrity": "sha512-20ZmwGiLFtFA5a1CkBo713Ua508d0VwaCWnaKkhoE8Kl/ttlWhlKg+PSB26wkcwB0QonWrH1clMRalwKqRhjvg==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tabs/-/uui-tabs-1.13.0.tgz", + "integrity": "sha512-b50xJ1Xka8nu51GCR8n2RZtCFjwTYDXV5zQF+s5KXpgC6A8mahCvzmmINHdgGnKm1JNG3c8abhwrueyxxVdI8Q==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-button": "1.12.2", - "@umbraco-ui/uui-popover-container": "1.12.2", - "@umbraco-ui/uui-symbol-more": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-button": "1.13.0", + "@umbraco-ui/uui-popover-container": "1.13.0", + "@umbraco-ui/uui-symbol-more": "1.13.0" } }, "node_modules/@umbraco-ui/uui-tag": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tag/-/uui-tag-1.12.2.tgz", - "integrity": "sha512-15omQCZmBeW3U6E0kCoFQs3ckUsNqWOCjslGfDMe+0x0a+r5hntam05OrUlF523plD/SG6utXGI/tRYdTidh1g==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tag/-/uui-tag-1.13.0.tgz", + "integrity": "sha512-SBY9Mi9A89jIag7URKQqXW3omDk5Eczw2LuNF7VnkXmQCuvsiRP6/BzSBCh9m0RrD4QOLSXpYGgSoLSpS7MitA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-textarea": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-textarea/-/uui-textarea-1.12.2.tgz", - "integrity": "sha512-dlT0fZ0zjdj4BouWhjqA4UBBj4YRFGxWZkMhbP/+g2lAnsl11GN2yMzOvfv7R6Zo3pmV6/qavtEk+XRKBaAihg==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-textarea/-/uui-textarea-1.13.0.tgz", + "integrity": "sha512-H4XChy1m5gq43eySQ3Zp/AsBvh35Gk0VLijFxdhCfV+HHpuyrt0fJsYnjq1W1xoqhyt7h84YRpNIJMyAIm2WHQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/@umbraco-ui/uui-toast-notification": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification/-/uui-toast-notification-1.12.2.tgz", - "integrity": "sha512-gtVAoGPd4G0VWVdSyyhaDQupzuLLfFzuaVTVai0970hLAZAzcbodG3W382iPhPIbHwQX7T8LMV02ScPfGuhjbA==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification/-/uui-toast-notification-1.13.0.tgz", + "integrity": "sha512-o45G8hWXgqcfGaJM+nhCTDSpevREJd+gPKT5XhTkD2wA99/kevdedmlYIgKS+9wONLk5A0j8qnsbWntinbb+rw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-button": "1.12.2", - "@umbraco-ui/uui-css": "1.12.1", - "@umbraco-ui/uui-icon": "1.12.2", - "@umbraco-ui/uui-icon-registry-essential": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-button": "1.13.0", + "@umbraco-ui/uui-css": "1.13.0", + "@umbraco-ui/uui-icon": "1.13.0", + "@umbraco-ui/uui-icon-registry-essential": "1.13.0" } }, "node_modules/@umbraco-ui/uui-toast-notification-container": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-container/-/uui-toast-notification-container-1.12.2.tgz", - "integrity": "sha512-Zu70rQzYV+QegV2kwNmpUDGU75z6u9B3ujFzVN2u+oi1y0kkR6wgXIczExQ4PeqEBZM252ZWbCIDQ66gX1+thw==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-container/-/uui-toast-notification-container-1.13.0.tgz", + "integrity": "sha512-9O0t73v7qkb3+VE8i0pD1vo33tNt1U7t3L6699jNMZZr+7R6a5YOAVrFt+gs+kQcQXWt0HCfQxhKJ8opLoBOyw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-toast-notification": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-toast-notification": "1.13.0" } }, "node_modules/@umbraco-ui/uui-toast-notification-layout": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-layout/-/uui-toast-notification-layout-1.12.2.tgz", - "integrity": "sha512-b0kgRwc744RpBjJW5URKRwGXzbGWU12OuFqIXq6BSl8LuFci9uh62V2J7Jj5xnx6v1jqZi/RRRKRwiqQOa3AWw==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-layout/-/uui-toast-notification-layout-1.13.0.tgz", + "integrity": "sha512-yhz8msOc1ngA//oBDefrR8pagTbvAenBiyk/fPuEwGQriM43e8bbVCJvhmrsTuAzAL8nn/ilKhAU5lrkn2rAmg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-css": "1.12.1" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-css": "1.13.0" } }, "node_modules/@umbraco-ui/uui-toggle": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.12.2.tgz", - "integrity": "sha512-hQCQJUEYjNL/2a/vldTlkFhTLiAF+P1UKxhPDqxCQlO/GsOihefcRhchOPmx4ptvjadvSc7J/MJPhAYC2RB0gw==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.13.0.tgz", + "integrity": "sha512-tHzG/Lh9vRLjPu7EhFupaD7jkpVenyEM3iIsA24wBVKmqJGxacpuuuOwpTv6vGGiIYSKfRDXTDk07Q6MHDSy4g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2", - "@umbraco-ui/uui-boolean-input": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0", + "@umbraco-ui/uui-boolean-input": "1.13.0" } }, "node_modules/@umbraco-ui/uui-visually-hidden": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-visually-hidden/-/uui-visually-hidden-1.12.2.tgz", - "integrity": "sha512-3VC4UUcalOl93pkwVWxbSxnIEyN9e5Soy+V3HKQDifWZ536NjBRvMzw+jib5BFLBzrfmRjX68lxNbE2t/EDydA==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-visually-hidden/-/uui-visually-hidden-1.13.0.tgz", + "integrity": "sha512-1ayTJylWnpAl0VQE7X2PBJCKLZ15R+xfZ3yy4ygT751k4wML26nvdWscp/tYfl4MteqrHtNJKTRTFoQ1Dn/r/g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.12.2" + "@umbraco-ui/uui-base": "1.13.0" } }, "node_modules/acorn": { @@ -2979,21 +2997,10 @@ "dev": true, "license": "MIT" }, - "node_modules/diff": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz", - "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==", - "dev": true, - "license": "BSD-3-Clause", - "peer": true, - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/dompurify": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz", - "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz", + "integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==", "dev": true, "license": "(MPL-2.0 OR Apache-2.0)", "peer": true, @@ -3015,9 +3022,9 @@ } }, "node_modules/element-internals-polyfill": { - "version": "1.3.13", - "resolved": "https://registry.npmjs.org/element-internals-polyfill/-/element-internals-polyfill-1.3.13.tgz", - "integrity": "sha512-viZ7wJsvh6eFwGQX512zEaccK/c6RRFSerJsdkfe3DW/ZtruvNeOR33fpPZgfXxvqRdU2lK33KM4S6GqaTgVKQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/element-internals-polyfill/-/element-internals-polyfill-3.0.2.tgz", + "integrity": "sha512-uB0/Qube3lkwh8SmkTnGIyUgJ9YdqVSzIoHMRCEQjAbD4Y5UzsVbch1tIxjTgUe5k3gy1U0ZMKMJ90A81lqwig==", "dev": true, "license": "MIT", "peer": true @@ -3298,43 +3305,43 @@ } }, "node_modules/linkifyjs": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.2.0.tgz", - "integrity": "sha512-pCj3PrQyATaoTYKHrgWRF3SJwsm61udVh+vuls/Rl6SptiDhgE7ziUIudAedRY9QEfynmM7/RmLEfPUyw1HPCw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.3.1.tgz", + "integrity": "sha512-DRSlB9DKVW04c4SUdGvKK5FR6be45lTU9M76JnngqPeeGDqPwYc0zdUErtsNVMtxPXgUWV4HbXbnC4sNyBxkYg==", "dev": true, "license": "MIT", "peer": true }, "node_modules/lit": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.2.1.tgz", - "integrity": "sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.3.0.tgz", + "integrity": "sha512-DGVsqsOIHBww2DqnuZzW7QsuCdahp50ojuDaBPC7jUDRpYoH0z7kHBBYZewRzer75FwtrkmkKk7iOAwSaWdBmw==", "dev": true, "license": "BSD-3-Clause", "peer": true, "dependencies": { - "@lit/reactive-element": "^2.0.4", - "lit-element": "^4.1.0", - "lit-html": "^3.2.0" + "@lit/reactive-element": "^2.1.0", + "lit-element": "^4.2.0", + "lit-html": "^3.3.0" } }, "node_modules/lit-element": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.1.tgz", - "integrity": "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.2.0.tgz", + "integrity": "sha512-MGrXJVAI5x+Bfth/pU9Kst1iWID6GHDLEzFEnyULB/sFiRLgkd8NPK/PeeXxktA3T6EIIaq8U3KcbTU5XFcP2Q==", "dev": true, "license": "BSD-3-Clause", "peer": true, "dependencies": { "@lit-labs/ssr-dom-shim": "^1.2.0", - "@lit/reactive-element": "^2.0.4", - "lit-html": "^3.2.0" + "@lit/reactive-element": "^2.1.0", + "lit-html": "^3.3.0" } }, "node_modules/lit-html": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.1.tgz", - "integrity": "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.0.tgz", + "integrity": "sha512-RHoswrFAxY2d8Cf2mm4OZ1DgzCoBKUKSPvA1fhtSELxUERq2aQQ2h05pO9j81gS1o7RIRJ+CePLogfyahwmynw==", "dev": true, "license": "BSD-3-Clause", "peer": true, @@ -3342,6 +3349,13 @@ "@types/trusted-types": "^2.0.2" } }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, "node_modules/markdown-it": { "version": "14.1.0", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", @@ -3362,9 +3376,9 @@ } }, "node_modules/marked": { - "version": "15.0.7", - "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.7.tgz", - "integrity": "sha512-dgLIeKGLx5FwziAnsk4ONoGwHwGPJzselimvlVskE9XLN4Orv9u2VA3GWw/lYUqjfA0rUT/6fqKwfZJapP9BEg==", + "version": "15.0.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.12.tgz", + "integrity": "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==", "dev": true, "license": "MIT", "peer": true, @@ -3706,9 +3720,9 @@ } }, "node_modules/prosemirror-changeset": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.2.1.tgz", - "integrity": "sha512-J7msc6wbxB4ekDFj+n9gTW/jav/p53kdlivvuppHsrZXCaQdVgRghoZbSS3kwrRyAstRVQ4/+u5k7YfLgkkQvQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.3.0.tgz", + "integrity": "sha512-8wRKhlEwEJ4I13Ju54q2NZR1pVKGTgJ/8XsQ8L5A5uUsQ/YQScQJuEAuh8Bn8i6IwAMjjLRABd9lVli+DlIiVw==", "dev": true, "license": "MIT", "peer": true, @@ -3728,9 +3742,9 @@ } }, "node_modules/prosemirror-commands": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.7.0.tgz", - "integrity": "sha512-6toodS4R/Aah5pdsrIwnTYPEjW70SlO5a66oo5Kk+CIrgJz3ukOoS+FYDGqvQlAX5PxoGWDX1oD++tn5X3pyRA==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.7.1.tgz", + "integrity": "sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==", "dev": true, "license": "MIT", "peer": true, @@ -3741,9 +3755,9 @@ } }, "node_modules/prosemirror-dropcursor": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.1.tgz", - "integrity": "sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.2.tgz", + "integrity": "sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==", "dev": true, "license": "MIT", "peer": true, @@ -3794,9 +3808,9 @@ } }, "node_modules/prosemirror-keymap": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.2.tgz", - "integrity": "sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.3.tgz", + "integrity": "sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==", "dev": true, "license": "MIT", "peer": true, @@ -3819,9 +3833,9 @@ } }, "node_modules/prosemirror-menu": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.4.tgz", - "integrity": "sha512-S/bXlc0ODQup6aiBbWVsX/eM+xJgCTAfMq/nLqaO5ID/am4wS0tTCIkzwytmao7ypEtjj39i7YbJjAgO20mIqA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.5.tgz", + "integrity": "sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==", "dev": true, "license": "MIT", "peer": true, @@ -3833,9 +3847,9 @@ } }, "node_modules/prosemirror-model": { - "version": "1.25.0", - "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.25.0.tgz", - "integrity": "sha512-/8XUmxWf0pkj2BmtqZHYJipTBMHIdVjuvFzMvEoxrtyGNmfvdhBiRwYt/eFwy2wA9DtBW3RLqvZnjurEkHaFCw==", + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.25.1.tgz", + "integrity": "sha512-AUvbm7qqmpZa5d9fPKMvH1Q5bqYQvAZWOGRvxsB6iFLyycvC9MwNemNVjHVrWgjaoxAfY8XVg7DbvQ/qxvI9Eg==", "dev": true, "license": "MIT", "peer": true, @@ -3881,18 +3895,18 @@ } }, "node_modules/prosemirror-tables": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.6.4.tgz", - "integrity": "sha512-TkDY3Gw52gRFRfRn2f4wJv5WOgAOXLJA2CQJYIJ5+kdFbfj3acR4JUW6LX2e1hiEBiUwvEhzH5a3cZ5YSztpIA==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.7.1.tgz", + "integrity": "sha512-eRQ97Bf+i9Eby99QbyAiyov43iOKgWa7QCGly+lrDt7efZ1v8NWolhXiB43hSDGIXT1UXgbs4KJN3a06FGpr1Q==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "prosemirror-keymap": "^1.2.2", - "prosemirror-model": "^1.24.1", + "prosemirror-model": "^1.25.0", "prosemirror-state": "^1.4.3", - "prosemirror-transform": "^1.10.2", - "prosemirror-view": "^1.37.2" + "prosemirror-transform": "^1.10.3", + "prosemirror-view": "^1.39.1" } }, "node_modules/prosemirror-trailing-node": { @@ -3913,9 +3927,9 @@ } }, "node_modules/prosemirror-transform": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.10.3.tgz", - "integrity": "sha512-Nhh/+1kZGRINbEHmVu39oynhcap4hWTs/BlU7NnxWj3+l0qi8I1mu67v6mMdEe/ltD8hHvU4FV6PHiCw2VSpMw==", + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.10.4.tgz", + "integrity": "sha512-pwDy22nAnGqNR1feOQKHxoFkkUtepoFAd3r2hbEDsnf4wp57kKA36hXsB3njA9FtONBEwSDnDeCiJe+ItD+ykw==", "dev": true, "license": "MIT", "peer": true, @@ -3924,9 +3938,9 @@ } }, "node_modules/prosemirror-view": { - "version": "1.39.1", - "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.39.1.tgz", - "integrity": "sha512-GhLxH1xwnqa5VjhJ29LfcQITNDp+f1jzmMPXQfGW9oNrF0lfjPzKvV5y/bjIQkyKpwCX3Fp+GA4dBpMMk8g+ZQ==", + "version": "1.39.3", + "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.39.3.tgz", + "integrity": "sha512-bY/7kg0LzRE7ytR0zRdSMWX3sknEjw68l836ffLPMh0OG3OYnNuBDUSF3v0vjvnzgYjgY9ZH/RypbARURlcMFA==", "dev": true, "license": "MIT", "peer": true, @@ -4020,9 +4034,9 @@ "license": "MIT" }, "node_modules/rollup": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.2.tgz", - "integrity": "sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.41.1.tgz", + "integrity": "sha512-cPmwD3FnFv8rKMBc1MxWCwVQFxwf1JEmSX3iQXrRVVG15zerAIXRjMFVWnd5Q5QvgKF7Aj+5ykXFhUl+QGnyOw==", "dev": true, "license": "MIT", "dependencies": { @@ -4036,26 +4050,26 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.40.2", - "@rollup/rollup-android-arm64": "4.40.2", - "@rollup/rollup-darwin-arm64": "4.40.2", - "@rollup/rollup-darwin-x64": "4.40.2", - "@rollup/rollup-freebsd-arm64": "4.40.2", - "@rollup/rollup-freebsd-x64": "4.40.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.40.2", - "@rollup/rollup-linux-arm-musleabihf": "4.40.2", - "@rollup/rollup-linux-arm64-gnu": "4.40.2", - "@rollup/rollup-linux-arm64-musl": "4.40.2", - "@rollup/rollup-linux-loongarch64-gnu": "4.40.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.40.2", - "@rollup/rollup-linux-riscv64-gnu": "4.40.2", - "@rollup/rollup-linux-riscv64-musl": "4.40.2", - "@rollup/rollup-linux-s390x-gnu": "4.40.2", - "@rollup/rollup-linux-x64-gnu": "4.40.2", - "@rollup/rollup-linux-x64-musl": "4.40.2", - "@rollup/rollup-win32-arm64-msvc": "4.40.2", - "@rollup/rollup-win32-ia32-msvc": "4.40.2", - "@rollup/rollup-win32-x64-msvc": "4.40.2", + "@rollup/rollup-android-arm-eabi": "4.41.1", + "@rollup/rollup-android-arm64": "4.41.1", + "@rollup/rollup-darwin-arm64": "4.41.1", + "@rollup/rollup-darwin-x64": "4.41.1", + "@rollup/rollup-freebsd-arm64": "4.41.1", + "@rollup/rollup-freebsd-x64": "4.41.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.41.1", + "@rollup/rollup-linux-arm-musleabihf": "4.41.1", + "@rollup/rollup-linux-arm64-gnu": "4.41.1", + "@rollup/rollup-linux-arm64-musl": "4.41.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.41.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.41.1", + "@rollup/rollup-linux-riscv64-gnu": "4.41.1", + "@rollup/rollup-linux-riscv64-musl": "4.41.1", + "@rollup/rollup-linux-s390x-gnu": "4.41.1", + "@rollup/rollup-linux-x64-gnu": "4.41.1", + "@rollup/rollup-linux-x64-musl": "4.41.1", + "@rollup/rollup-win32-arm64-msvc": "4.41.1", + "@rollup/rollup-win32-ia32-msvc": "4.41.1", + "@rollup/rollup-win32-x64-msvc": "4.41.1", "fsevents": "~2.3.2" } }, @@ -4068,9 +4082,9 @@ "peer": true }, "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -4182,9 +4196,9 @@ "license": "MIT" }, "node_modules/tinyglobby": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", - "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4198,22 +4212,6 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/tinymce": { - "version": "6.8.5", - "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-6.8.5.tgz", - "integrity": "sha512-qAL/FxL7cwZHj4BfaF818zeJJizK9jU5IQzTcSLL4Rj5MaJdiVblEj7aDr80VCV1w9h4Lak9hlnALhq/kVtN1g==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/tinymce-i18n": { - "version": "24.12.30", - "resolved": "https://registry.npmjs.org/tinymce-i18n/-/tinymce-i18n-24.12.30.tgz", - "integrity": "sha512-OOtJfr9plrXT5fuvCEXJ56QFKyFPCaaVcalj0UgJGv2AK8PNWhDVqzPef6MPlBkvVA1qgrZb7ZvfJC63wmkWjg==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/tough-cookie": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", @@ -4273,9 +4271,9 @@ } }, "node_modules/typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -4336,21 +4334,6 @@ "requires-port": "^1.0.0" } }, - "node_modules/uuid": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.5.tgz", - "integrity": "sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "peer": true, - "bin": { - "uuid": "dist/esm/bin/uuid" - } - }, "node_modules/vite": { "version": "6.3.5", "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", diff --git a/src/Umbraco.Web.UI.Login/package.json b/src/Umbraco.Web.UI.Login/package.json index 7f44d433fa..6df9c0c12f 100644 --- a/src/Umbraco.Web.UI.Login/package.json +++ b/src/Umbraco.Web.UI.Login/package.json @@ -14,11 +14,11 @@ "npm": ">=10.9" }, "devDependencies": { - "@hey-api/client-fetch": "^0.10.0", - "@hey-api/openapi-ts": "^0.66.3", - "@umbraco-cms/backoffice": "15.3.0", + "@hey-api/client-fetch": "^0.10.2", + "@hey-api/openapi-ts": "^0.67.6", + "@umbraco-cms/backoffice": "16.0.0-rc3", "msw": "^2.7.0", - "typescript": "^5.7.3", + "typescript": "^5.8.3", "vite": "^6.3.5", "vite-tsconfig-paths": "^5.1.4" }, diff --git a/src/Umbraco.Web.UI.Login/src/components/layouts/new-password-layout.element.ts b/src/Umbraco.Web.UI.Login/src/components/layouts/new-password-layout.element.ts index 5497de0acd..88f51d8ad8 100644 --- a/src/Umbraco.Web.UI.Login/src/components/layouts/new-password-layout.element.ts +++ b/src/Umbraco.Web.UI.Login/src/components/layouts/new-password-layout.element.ts @@ -34,9 +34,9 @@ export default class UmbNewPasswordLayoutElement extends UmbLitElement { super(); this.consumeContext(UMB_AUTH_CONTEXT, (authContext) => { - this._passwordConfiguration = authContext.passwordConfiguration; // Build a pattern let pattern = ''; + this._passwordConfiguration = authContext?.passwordConfiguration; if (this._passwordConfiguration?.requireDigit) { pattern += '(?=.*\\d)'; } diff --git a/src/Umbraco.Web.UI.Login/src/components/pages/login.page.element.ts b/src/Umbraco.Web.UI.Login/src/components/pages/login.page.element.ts index 55d10ebf8f..240c68f431 100644 --- a/src/Umbraco.Web.UI.Login/src/components/pages/login.page.element.ts +++ b/src/Umbraco.Web.UI.Login/src/components/pages/login.page.element.ts @@ -33,7 +33,7 @@ export default class UmbLoginPageElement extends UmbLitElement { this.consumeContext(UMB_AUTH_CONTEXT, (authContext) => { this.#authContext = authContext; - this.supportPersistLogin = authContext.supportsPersistLogin; + this.supportPersistLogin = authContext?.supportsPersistLogin ?? false; }); } diff --git a/src/Umbraco.Web.UI.Login/src/components/pages/reset-password.page.element.ts b/src/Umbraco.Web.UI.Login/src/components/pages/reset-password.page.element.ts index 549389b130..37a5289644 100644 --- a/src/Umbraco.Web.UI.Login/src/components/pages/reset-password.page.element.ts +++ b/src/Umbraco.Web.UI.Login/src/components/pages/reset-password.page.element.ts @@ -1,168 +1,173 @@ -import type {UUIButtonState} from '@umbraco-cms/backoffice/external/uui'; -import {type CSSResultGroup, css, html, nothing, customElement, state} from '@umbraco-cms/backoffice/external/lit'; -import { UmbLitElement } from "@umbraco-cms/backoffice/lit-element"; +import type { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; +import { type CSSResultGroup, css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UMB_AUTH_CONTEXT } from '../../contexts'; @customElement('umb-reset-password-page') export default class UmbResetPasswordPageElement extends UmbLitElement { - @state() - resetCallState: UUIButtonState = undefined; + @state() + resetCallState: UUIButtonState = undefined; - @state() - error = ''; + @state() + error = ''; - #handleResetSubmit = async (e: SubmitEvent) => { - e.preventDefault(); - const form = e.target as HTMLFormElement; + #handleResetSubmit = async (e: SubmitEvent) => { + e.preventDefault(); + const form = e.target as HTMLFormElement; - if (!form) return; - if (!form.checkValidity()) return; + if (!form) return; + if (!form.checkValidity()) return; - const formData = new FormData(form); - const username = formData.get('email') as string; + const formData = new FormData(form); + const username = formData.get('email') as string; - this.resetCallState = 'waiting'; - const authContext = await this.getContext(UMB_AUTH_CONTEXT); - const response = await authContext.resetPassword(username); - this.resetCallState = response.error ? 'failed' : 'success'; - this.error = response.error || ''; - }; + this.resetCallState = 'waiting'; + const authContext = await this.getContext(UMB_AUTH_CONTEXT); + if (!authContext) { + this.resetCallState = 'failed'; + this.error = 'Authentication context not available.'; + return; + } + const response = await authContext.resetPassword(username); + this.resetCallState = response.error ? 'failed' : 'success'; + this.error = response.error || ''; + }; - #renderResetPage() { - return html` - -
- - - - Email - - - - + + + Email + + + + - ${this.#renderErrorMessage()} + ${this.#renderErrorMessage()} - -
-
+ + + - - `; - } + + `; + } - #renderErrorMessage() { - if (!this.error || this.resetCallState !== 'failed') return nothing; + #renderErrorMessage() { + if (!this.error || this.resetCallState !== 'failed') return nothing; - return html`${this.error}`; - } + return html`${this.error}`; + } - #renderConfirmationPage() { - return html` - - - `; - } + #renderConfirmationPage() { + return html` + + + `; + } - render() { - return this.resetCallState === 'success' ? this.#renderConfirmationPage() : this.#renderResetPage(); - } + render() { + return this.resetCallState === 'success' ? this.#renderConfirmationPage() : this.#renderResetPage(); + } - static styles: CSSResultGroup = [ - css` - #header { - text-align: center; - display: flex; - flex-direction: column; - gap: var(--uui-size-space-5); - } + static styles: CSSResultGroup = [ + css` + #header { + text-align: center; + display: flex; + flex-direction: column; + gap: var(--uui-size-space-5); + } - #header span { - color: var(--uui-color-text-alt); /* TODO Change to uui color when uui gets a muted text variable */ - font-size: 14px; - } + #header span { + color: var(--uui-color-text-alt); /* TODO Change to uui color when uui gets a muted text variable */ + font-size: 14px; + } - #header h1 { - margin: 0; - font-weight: 400; - font-size: var(--header-secondary-font-size); - color: var(--uui-color-interactive); - line-height: 1.2; - } + #header h1 { + margin: 0; + font-weight: 400; + font-size: var(--header-secondary-font-size); + color: var(--uui-color-interactive); + line-height: 1.2; + } - form { - display: flex; - flex-direction: column; - gap: var(--uui-size-layout-2); - } + form { + display: flex; + flex-direction: column; + gap: var(--uui-size-layout-2); + } - uui-form-layout-item { - margin: 0; - } + uui-form-layout-item { + margin: 0; + } - uui-input, - uui-input-password { - width: 100%; - height: var(--input-height); - border-radius: var(--uui-border-radius); - } + uui-input, + uui-input-password { + width: 100%; + height: var(--input-height); + border-radius: var(--uui-border-radius); + } - uui-input { - width: 100%; - } + uui-input { + width: 100%; + } - uui-button { - width: 100%; - --uui-button-padding-top-factor: 1.5; - --uui-button-padding-bottom-factor: 1.5; - } + uui-button { + width: 100%; + --uui-button-padding-top-factor: 1.5; + --uui-button-padding-bottom-factor: 1.5; + } - #resend { - display: inline-flex; - font-size: 14px; - align-self: center; - gap: var(--uui-size-space-1); - } + #resend { + display: inline-flex; + font-size: 14px; + align-self: center; + gap: var(--uui-size-space-1); + } - #resend a { - color: var(--uui-color-selected); - font-weight: 600; - text-decoration: none; - } + #resend a { + color: var(--uui-color-selected); + font-weight: 600; + text-decoration: none; + } - #resend a:hover { - color: var(--uui-color-interactive-emphasis); - } - `, - ]; + #resend a:hover { + color: var(--uui-color-interactive-emphasis); + } + `, + ]; } declare global { - interface HTMLElementTagNameMap { - 'umb-reset-password-page': UmbResetPasswordPageElement; - } + interface HTMLElementTagNameMap { + 'umb-reset-password-page': UmbResetPasswordPageElement; + } } diff --git a/src/Umbraco.Web.UI.Login/src/contexts/auth.context.ts b/src/Umbraco.Web.UI.Login/src/contexts/auth.context.ts index 341b26cdcf..1e5c98d581 100644 --- a/src/Umbraco.Web.UI.Login/src/contexts/auth.context.ts +++ b/src/Umbraco.Web.UI.Login/src/contexts/auth.context.ts @@ -1,83 +1,85 @@ import { - LoginRequestModel, - LoginResponse, - ResetPasswordResponse, - ValidatePasswordResetCodeResponse, - NewPasswordResponse, - PasswordConfigurationModel, ValidateInviteCodeResponse, MfaCodeResponse -} from "../types.js"; + LoginRequestModel, + LoginResponse, + ResetPasswordResponse, + ValidatePasswordResetCodeResponse, + NewPasswordResponse, + PasswordConfigurationModel, + ValidateInviteCodeResponse, + MfaCodeResponse, +} from '../types.js'; import { UmbAuthRepository } from './auth.repository.js'; -import { UmbContextBase } from "@umbraco-cms/backoffice/class-api"; -import { UmbContextToken } from "@umbraco-cms/backoffice/context-api"; +import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -export class UmbAuthContext extends UmbContextBase { - readonly supportsPersistLogin = false; - twoFactorView = ''; - isMfaEnabled = false; - mfaProviders: string[] = []; - passwordConfiguration?: PasswordConfigurationModel; +export class UmbAuthContext extends UmbContextBase { + readonly supportsPersistLogin = false; + twoFactorView = ''; + isMfaEnabled = false; + mfaProviders: string[] = []; + passwordConfiguration?: PasswordConfigurationModel; - #authRepository = new UmbAuthRepository(this); + #authRepository = new UmbAuthRepository(this); - #returnPath = ''; + #returnPath = ''; - set returnPath(value: string) { - this.#returnPath = value; - } + set returnPath(value: string) { + this.#returnPath = value; + } - /** - * Gets the return path from the query string. - * - * It will first look for a `ReturnUrl` parameter, then a `returnPath` parameter, and finally the `returnPath` property. - * - * @returns The return path from the query string. - */ - get returnPath(): string { - const params = new URLSearchParams(window.location.search); - let returnPath = params.get('ReturnUrl') ?? params.get('returnPath') ?? this.#returnPath; + /** + * Gets the return path from the query string. + * + * It will first look for a `ReturnUrl` parameter, then a `returnPath` parameter, and finally the `returnPath` property. + * + * @returns The return path from the query string. + */ + get returnPath(): string { + const params = new URLSearchParams(window.location.search); + let returnPath = params.get('ReturnUrl') ?? params.get('returnPath') ?? this.#returnPath; - // If return path is empty, return an empty string. - if (!returnPath) { - return ''; - } + // If return path is empty, return an empty string. + if (!returnPath) { + return ''; + } - // Safely check that the return path is valid and doesn't link to an external site. - const url = new URL(returnPath, window.location.origin); + // Safely check that the return path is valid and doesn't link to an external site. + const url = new URL(returnPath, window.location.origin); - if (url.origin !== window.location.origin) { - return ''; - } + if (url.origin !== window.location.origin) { + return ''; + } - return url.toString(); - } + return url.toString(); + } - login(data: LoginRequestModel): Promise { - return this.#authRepository.login(data); - } + login(data: LoginRequestModel): Promise { + return this.#authRepository.login(data); + } - resetPassword(username: string): Promise { - return this.#authRepository.resetPassword(username); - } + resetPassword(username: string): Promise { + return this.#authRepository.resetPassword(username); + } - validatePasswordResetCode(userId: string, resetCode: string): Promise { - return this.#authRepository.validatePasswordResetCode(userId, resetCode); - } + validatePasswordResetCode(userId: string, resetCode: string): Promise { + return this.#authRepository.validatePasswordResetCode(userId, resetCode); + } - newPassword(password: string, resetCode: string, userId: string): Promise { - return this.#authRepository.newPassword(password, resetCode, userId); - } + newPassword(password: string, resetCode: string, userId: string): Promise { + return this.#authRepository.newPassword(password, resetCode, userId); + } - newInvitedUserPassword(password: string, token: string, userId: string): Promise { - return this.#authRepository.newInvitedUserPassword(password, token, userId); - } + newInvitedUserPassword(password: string, token: string, userId: string): Promise { + return this.#authRepository.newInvitedUserPassword(password, token, userId); + } - validateInviteCode(token: string, userId: string): Promise { - return this.#authRepository.validateInviteCode(token, userId); - } + validateInviteCode(token: string, userId: string): Promise { + return this.#authRepository.validateInviteCode(token, userId); + } - validateMfaCode(code: string, provider: string): Promise { - return this.#authRepository.validateMfaCode(code, provider); - } + validateMfaCode(code: string, provider: string): Promise { + return this.#authRepository.validateMfaCode(code, provider); + } } export const UMB_AUTH_CONTEXT = new UmbContextToken('UmbAuthContext'); diff --git a/src/Umbraco.Web.UI.Login/src/contexts/auth.repository.ts b/src/Umbraco.Web.UI.Login/src/contexts/auth.repository.ts index d4ffc31f69..202ab042fe 100644 --- a/src/Umbraco.Web.UI.Login/src/contexts/auth.repository.ts +++ b/src/Umbraco.Web.UI.Login/src/contexts/auth.repository.ts @@ -7,8 +7,6 @@ import { ValidateInviteCodeResponse, ValidatePasswordResetCodeResponse, } from '../types.js'; -import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; -import { UmbLocalizationController } from '@umbraco-cms/backoffice/localization-api'; import { postSecurityForgotPassword, postSecurityForgotPasswordReset, @@ -17,6 +15,8 @@ import { postUserInviteVerify, } from '../api/index.js'; import { isProblemDetails } from '../utils/is-problem-details.function.js'; +import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; +import { UmbLocalizationController } from '@umbraco-cms/backoffice/localization-api'; export class UmbAuthRepository extends UmbRepositoryBase { #localize = new UmbLocalizationController(this); diff --git a/src/Umbraco.Web.UI.Login/src/controllers/slim-backoffice-initializer.ts b/src/Umbraco.Web.UI.Login/src/controllers/slim-backoffice-initializer.ts index 681ab098a7..9764923f6b 100644 --- a/src/Umbraco.Web.UI.Login/src/controllers/slim-backoffice-initializer.ts +++ b/src/Umbraco.Web.UI.Login/src/controllers/slim-backoffice-initializer.ts @@ -1,14 +1,11 @@ +import { UmbBundleExtensionInitializer, UmbServerExtensionRegistrator } from '@umbraco-cms/backoffice/extension-api'; import { - UmbBundleExtensionInitializer, - UmbServerExtensionRegistrator -} from "@umbraco-cms/backoffice/extension-api"; -import { - UmbAppEntryPointExtensionInitializer, - umbExtensionsRegistry -} from "@umbraco-cms/backoffice/extension-registry"; -import type { UmbElement } from "@umbraco-cms/backoffice/element-api"; -import { UmbControllerBase } from "@umbraco-cms/backoffice/class-api"; -import { UUIIconRegistryEssential } from "@umbraco-cms/backoffice/external/uui"; + UmbAppEntryPointExtensionInitializer, + umbExtensionsRegistry, +} from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbElement } from '@umbraco-cms/backoffice/element-api'; +import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; +import { UUIIconRegistryEssential } from '@umbraco-cms/backoffice/external/uui'; // We import what we need from the Backoffice app. // In the future the login screen app will be a part of the Backoffice app, and we will not need to import these. @@ -19,17 +16,20 @@ import '@umbraco-cms/backoffice/localization'; * It is responsible for initializing the backoffice and only the extensions that is needed to run the login screen. */ export class UmbSlimBackofficeController extends UmbControllerBase { - #uuiIconRegistry = new UUIIconRegistryEssential(); + #uuiIconRegistry = new UUIIconRegistryEssential(); - constructor(host: UmbElement) { - super(host); - new UmbBundleExtensionInitializer(host, umbExtensionsRegistry); - new UmbAppEntryPointExtensionInitializer(host, umbExtensionsRegistry); - new UmbServerExtensionRegistrator(host, umbExtensionsRegistry).registerPublicExtensions(); + constructor(host: UmbElement) { + super(host); + new UmbBundleExtensionInitializer(host, umbExtensionsRegistry); + new UmbAppEntryPointExtensionInitializer(host, umbExtensionsRegistry); + new UmbServerExtensionRegistrator(host, umbExtensionsRegistry).registerPublicExtensions().catch(() => { + // We don't care about errors here, as this is just a fallback for the login screen. + // If the extensions are not registered, the login screen will still work, but some features may not be available. + }); - this.#uuiIconRegistry.attach(host); + this.#uuiIconRegistry.attach(host); - host.classList.add('uui-text'); - host.classList.add('uui-font'); - } + host.classList.add('uui-text'); + host.classList.add('uui-font'); + } }