diff --git a/src/Umbraco.Web.UI.Client/.eslintignore b/src/Umbraco.Web.UI.Client/.eslintignore index 8c686499db..d2d1d42353 100644 --- a/src/Umbraco.Web.UI.Client/.eslintignore +++ b/src/Umbraco.Web.UI.Client/.eslintignore @@ -1,6 +1,7 @@ .eslintrc.js types dist +dist-cms schemas temp-schema-generator -APP_PLUGINS \ No newline at end of file +APP_PLUGINS diff --git a/src/Umbraco.Web.UI.Client/.eslintrc.json b/src/Umbraco.Web.UI.Client/.eslintrc.json index 755ea8dc43..d357a59bf1 100644 --- a/src/Umbraco.Web.UI.Client/.eslintrc.json +++ b/src/Umbraco.Web.UI.Client/.eslintrc.json @@ -42,10 +42,9 @@ "local-rules/no-direct-api-import": "warn", "local-rules/prefer-import-aliases": "error", "local-rules/enforce-element-suffix-on-element-class-name": "error", - "local-rules/prefer-umbraco-cms-imports": "error", - "local-rules/no-external-imports": "error", "local-rules/umb-class-prefix": "error", "local-rules/prefer-static-styles-last": "warn", + "local-rules/ensure-relative-import-use-js-extension": "error", "@typescript-eslint/no-non-null-assertion": "off" }, "settings": { diff --git a/src/Umbraco.Web.UI.Client/.github/workflows/azure-static-web-apps-ashy-bay-09f36a803.yml b/src/Umbraco.Web.UI.Client/.github/workflows/azure-static-web-apps-ashy-bay-09f36a803.yml index cbe33f4bb8..a736a3e6dc 100644 --- a/src/Umbraco.Web.UI.Client/.github/workflows/azure-static-web-apps-ashy-bay-09f36a803.yml +++ b/src/Umbraco.Web.UI.Client/.github/workflows/azure-static-web-apps-ashy-bay-09f36a803.yml @@ -14,7 +14,7 @@ env: jobs: build_and_deploy_job: - if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') + if: false && github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') runs-on: ubuntu-latest name: Build and Deploy Job steps: @@ -32,7 +32,7 @@ jobs: # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig app_location: '/' # App source code path api_location: 'api' # Api source code path - optional - output_location: 'dist' # Built app content directory - optional + output_location: 'dist-cms' # Built app content directory - optional ###### End of Repository/Build Configurations ###### close_pull_request_job: diff --git a/src/Umbraco.Web.UI.Client/.github/workflows/build_test.yml b/src/Umbraco.Web.UI.Client/.github/workflows/build_test.yml index 4456c4f876..66dba67bc5 100644 --- a/src/Umbraco.Web.UI.Client/.github/workflows/build_test.yml +++ b/src/Umbraco.Web.UI.Client/.github/workflows/build_test.yml @@ -37,7 +37,7 @@ jobs: - run: npm ci --no-audit --no-fund --prefer-offline - run: npm run lint - run: npm run build - # - run: npm run build:libs + - run: npm run generate:jsonschema:dist - run: sudo npx playwright install-deps - run: npm test - name: Upload Code Coverage reports diff --git a/src/Umbraco.Web.UI.Client/.github/workflows/npm-publish-github-packages.yml b/src/Umbraco.Web.UI.Client/.github/workflows/npm-publish-github-packages.yml index 62c7b01446..dc3413e2d1 100644 --- a/src/Umbraco.Web.UI.Client/.github/workflows/npm-publish-github-packages.yml +++ b/src/Umbraco.Web.UI.Client/.github/workflows/npm-publish-github-packages.yml @@ -1,72 +1,49 @@ -# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created +# This workflow will publish the @umbraco-cms/backoffice package to npmjs.com # For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages # The @umbraco-cms scope is owned by Umbraco HQ -name: Node.js Libraries Package +name: Node.js Package on: push: - branches: [ main ] + branches: [main] paths: - - 'libs/**' + - 'src/**' - 'package.json' - 'package-lock.json' - - '.github/workflows/npm-publish-github-packages.yml' - - './rollup-libs.config.js' - - 'src/**/*.element.ts' - pull_request: - branches: [ main ] - paths: - - 'libs/**' - - 'package.json' - - 'package-lock.json' - - '.github/workflows/npm-publish-github-packages.yml' - - './rollup-libs.config.js' - - 'src/**/*.element.ts' + - 'tsconfig.json' + - 'staticwebapp.config.json' + - 'README.md' workflow_dispatch: env: NODE_OPTIONS: --max-old-space-size=16384 jobs: - build: + build_publish: + name: Build and publish runs-on: ubuntu-latest + concurrency: + group: npm-publish + cancel-in-progress: true steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: 18 cache: 'npm' - - run: npm ci - - run: npm run build:libs - - uses: actions/upload-artifact@v3 - with: - name: artifact - path: ./dist/libs - - publish-npm: - if: github.event_name == 'push' && github.ref == 'refs/heads/main' - needs: build - runs-on: ubuntu-latest - concurrency: - group: npm-publish - cancel-in-progress: true - steps: - - uses: actions/download-artifact@v3 - with: - name: artifact - - uses: actions/setup-node@v3 - with: - node-version: 18 registry-url: https://registry.npmjs.org/ scope: '@umbraco-cms' - env: - NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} + - run: npm ci + - run: npm run build:for:npm + - run: npm run generate:jsonschema:dist + - run: npm run wc-analyze + - run: npm run wc-analyze:vscode - name: Version and publish run: | SHA_SHORT=$(echo $GITHUB_SHA | cut -c1-8) npm whoami npm version 1.0.0-next.$SHA_SHORT --allow-same-version --no-git-tag-version - npm publish --tag next --access public + npm publish --tag latest --access public env: NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} diff --git a/src/Umbraco.Web.UI.Client/.gitignore b/src/Umbraco.Web.UI.Client/.gitignore index 95fb15ab6e..8a626a2202 100644 --- a/src/Umbraco.Web.UI.Client/.gitignore +++ b/src/Umbraco.Web.UI.Client/.gitignore @@ -9,6 +9,7 @@ lerna-debug.log* node_modules dist +dist-cms dist-ssr types *.tsbuildinfo diff --git a/src/Umbraco.Web.UI.Client/.storybook/preview.js b/src/Umbraco.Web.UI.Client/.storybook/preview.js index fb73ef68a4..743d7694e9 100644 --- a/src/Umbraco.Web.UI.Client/.storybook/preview.js +++ b/src/Umbraco.Web.UI.Client/.storybook/preview.js @@ -1,5 +1,5 @@ import '@umbraco-ui/uui-css/dist/uui-css.css'; -import '../src/shared/css/custom-properties.css'; +import '../src/css/umb-css.css'; import 'element-internals-polyfill'; import '@umbraco-ui/uui'; @@ -13,17 +13,17 @@ import { UmbDocumentTypeStore } from '../src/packages/documents/document-types/r import { UmbDocumentStore } from '../src/packages/documents/documents/repository/document.store.ts'; import { UmbDocumentTreeStore } from '../src/packages/documents/documents/repository/document.tree.store.ts'; -import customElementManifests from '../dist/libs/custom-elements.json'; +import customElementManifests from '../dist-cms/custom-elements.json'; import { UmbIconRegistry } from '../src/shared/icon-registry/icon.registry'; -import { onUnhandledRequest } from '../src/shared/mocks'; -import { handlers } from '../src/shared/mocks/browser-handlers'; -import { UMB_MODAL_CONTEXT_TOKEN, UmbModalContext } from '../libs/modal'; +import { onUnhandledRequest } from '../src/mocks'; +import { handlers } from '../src/mocks/browser-handlers'; +import { UMB_MODAL_CONTEXT_TOKEN, UmbModalContext } from '../src/packages/core/modal'; import { UmbLitElement } from '../src/shared/lit-element'; -import { umbExtensionsRegistry } from '../libs/extension-registry'; +import { umbExtensionsRegistry } from '../src/packages/core/extension-registry'; -import '../libs/context-api/provide/context-provider.element'; -import '../libs/controller-api/controller-host-initializer.element.ts'; +import '../src/libs/context-api/provide/context-provider.element'; +import '../src/libs/controller-api/controller-host-initializer.element.ts'; import '../src/packages/core/components'; import { manifests as documentManifests } from '../src/packages/documents'; diff --git a/src/Umbraco.Web.UI.Client/libs/README.md b/src/Umbraco.Web.UI.Client/README.md similarity index 96% rename from src/Umbraco.Web.UI.Client/libs/README.md rename to src/Umbraco.Web.UI.Client/README.md index 83bd58a0d6..e8e2e3b0b4 100644 --- a/src/Umbraco.Web.UI.Client/libs/README.md +++ b/src/Umbraco.Web.UI.Client/README.md @@ -1,6 +1,6 @@ # @umbraco-cms/backoffice -This package contains the types for the libraries for Umbraco 13. +This package contains the types for the Umbraco Backoffice. ## Installation @@ -104,8 +104,7 @@ Then go to the element located in `src/my-element.ts` and replace it with the fo ```typescript // src/my-element.ts -import { LitElement, html } from 'lit'; -import { customElement } from 'lit/decorators.js'; +import { LitElement, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api'; import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; diff --git a/src/Umbraco.Web.UI.Client/apps/auth/package.json b/src/Umbraco.Web.UI.Client/apps/auth/package.json index 18345cd875..addf6d7ebf 100644 --- a/src/Umbraco.Web.UI.Client/apps/auth/package.json +++ b/src/Umbraco.Web.UI.Client/apps/auth/package.json @@ -1,5 +1,5 @@ { - "name": "umbraco-backoffice-auth", + "name": "@umbraco-cms/login", "version": "0.0.0", "license": "MIT", "author": { @@ -7,7 +7,6 @@ "email": "backoffice@umbraco.com" }, "type": "module", - "main": "dist/main.js", "module": "dist/main.js", "files": [ "dist" @@ -15,7 +14,7 @@ "scripts": { "dev": "vite", "build": "tsc && vite build", - "build:production": "tsc && vite build --mode production", + "build:watch": "vite build --watch", "preview": "vite preview" } } diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/auth-layout.element.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/auth-layout.element.ts index 8ce9acb70b..163ece1736 100644 --- a/src/Umbraco.Web.UI.Client/apps/auth/src/auth-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/apps/auth/src/auth-layout.element.ts @@ -1,18 +1,14 @@ -import { css, CSSResultGroup, html, LitElement, unsafeCSS } from 'lit'; +import { css, CSSResultGroup, html, LitElement } from 'lit'; import { customElement } from 'lit/decorators.js'; -import logoImg from '/umbraco_logomark_white.svg'; -import loginImg from '/login.jpeg'; @customElement('umb-auth-layout') export class UmbAuthLayoutElement extends LitElement { - - render() { return html`
@@ -22,7 +18,7 @@ export class UmbAuthLayoutElement extends LitElement {
`; } - + static styles: CSSResultGroup = [ css` #background { @@ -31,7 +27,7 @@ export class UmbAuthLayoutElement extends LitElement { background-position: 50%; background-repeat: no-repeat; background-size: cover; - background-image: url('${unsafeCSS(loginImg)}'); + background-image: url('login.jpeg'); width: 100vw; height: 100vh; } diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/auth-legacy.context.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/auth-legacy.context.ts new file mode 100644 index 0000000000..42b0679aab --- /dev/null +++ b/src/Umbraco.Web.UI.Client/apps/auth/src/auth-legacy.context.ts @@ -0,0 +1,10 @@ +import { LoginRequestModel, IUmbAuthContext, LoginResponse } from './types.js'; + +export class UmbAuthLegacyContext implements IUmbAuthContext { + readonly #AUTH_URL = '/umbraco/backoffice/umbracoapi/authentication/postlogin'; + readonly supportsPersistLogin = true; + + login(data: LoginRequestModel): Promise { + throw new Error('Method not implemented.'); + } +} diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/auth.context.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/auth.context.ts new file mode 100644 index 0000000000..c38afcb618 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/apps/auth/src/auth.context.ts @@ -0,0 +1,13 @@ +import { UmbAuthRepository } from './auth.repository.js'; +import { LoginRequestModel, IUmbAuthContext } from './types.js'; + +export class UmbAuthContext implements IUmbAuthContext { + readonly #AUTH_URL = '/umbraco/management/api/v1/security/back-office'; + readonly supportsPersistLogin = false; + + #authRepository = new UmbAuthRepository(this.#AUTH_URL); + + public async login(data: LoginRequestModel) { + return this.#authRepository.login(data); + } +} diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/auth.repository.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/auth.repository.ts new file mode 100644 index 0000000000..f615a915c1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/apps/auth/src/auth.repository.ts @@ -0,0 +1,44 @@ +import { LoginRequestModel } from './types.js'; + +export class UmbAuthRepository { + #authURL = ''; + + constructor(authUrl: string) { + this.#authURL = authUrl; + } + + public async login(data: LoginRequestModel) { + const request = new Request(this.#authURL + '/login', { + method: 'POST', + body: JSON.stringify({ + username: data.username, + password: data.password, + }), + headers: { + 'Content-Type': 'application/json', + }, + }); + const response = await fetch(request); + + //TODO: What kind of data does the old backoffice expect? + //NOTE: this conditionally adds error and data to the response object + return { + status: response.status, + ...(!response.ok && { error: this.#getErrorText(response) }), + ...(response.ok && { data: 'WHAT DATA SHOULD BE RETURNED?' }), + }; + } + + #getErrorText(response: Response) { + switch (response.status) { + case 401: + return 'Oops! It seems like your login credentials are invalid or expired. Please double-check your username and password and try again.'; + + case 500: + return "We're sorry, but the server encountered an unexpected error. Please refresh the page or try again later.."; + + default: + return response.statusText; + } + } +} diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/auth.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/auth.ts deleted file mode 100644 index f1965e558e..0000000000 --- a/src/Umbraco.Web.UI.Client/apps/auth/src/auth.ts +++ /dev/null @@ -1,4 +0,0 @@ -export default function() { - sessionStorage.setItem('is-authenticated', 'true'); - history.replaceState(null, '', 'section'); -} diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/external-login-provider-test.element.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/external-login-provider-test.element.ts index eda90059f4..7dda2a047e 100644 --- a/src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/external-login-provider-test.element.ts +++ b/src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/external-login-provider-test.element.ts @@ -1,11 +1,9 @@ import { css, html, LitElement } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { customElement } from 'lit/decorators.js'; @customElement('umb-external-login-provider-test') export class UmbExternalLoginProviderTestElement extends LitElement { - - render() { return html` Custom External Login Provider @@ -13,7 +11,7 @@ export class UmbExternalLoginProviderTestElement extends LitElement { `; } - + static styles = [ UUITextStyles, css` diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/external-login-provider-test2.element.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/external-login-provider-test2.element.ts index ab341a7846..652293ad27 100644 --- a/src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/external-login-provider-test2.element.ts +++ b/src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/external-login-provider-test2.element.ts @@ -1,11 +1,9 @@ import { css, html, LitElement } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { UUITextStyles } from '@umbraco-ui/uui-css'; import { customElement } from 'lit/decorators.js'; @customElement('umb-external-login-provider-test2') export class UmbExternalLoginProviderTest2Element extends LitElement { - - render() { return html` Another Custom External Login Provider @@ -23,7 +21,7 @@ export class UmbExternalLoginProviderTest2Element extends LitElement { `; } - + static styles = [ UUITextStyles, css` diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/manifests.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/manifests.ts index 0bee6259ad..d3153587ae 100644 --- a/src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/manifests.ts +++ b/src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/manifests.ts @@ -7,7 +7,7 @@ export const manifests: Array = [ alias: 'Umb.ExternalLoginProvider.Test', name: 'Test External Login Provider', elementName: 'umb-external-login-provider-test', - loader: () => import('./external-login-provider-test.element'), + loader: () => import('./external-login-provider-test.element.js'), weight: 2, meta: { label: 'Test External Login Provider', @@ -19,7 +19,7 @@ export const manifests: Array = [ alias: 'Umb.ExternalLoginProvider.Test2', name: 'Test External Login Provider 2', elementName: 'umb-external-login-provider-test2', - loader: () => import('./external-login-provider-test2.element'), + loader: () => import('./external-login-provider-test2.element.js'), weight: 1, meta: { label: 'Test External Login Provider 2', diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/index.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/index.ts index 12cea27ba8..43ef4da338 100644 --- a/src/Umbraco.Web.UI.Client/apps/auth/src/index.ts +++ b/src/Umbraco.Web.UI.Client/apps/auth/src/index.ts @@ -1,18 +1,7 @@ -import { ManifestTypes, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; -import { manifests as externalLoginProviders } from './external-login-providers/manifests'; - -import '@umbraco-ui/uui-css/dist/uui-css.css'; -import '@umbraco-cms/backoffice/css'; -import '@umbraco-ui/uui'; - -import './login.element'; import 'element-internals-polyfill'; -const registerExtensions = (manifests: Array) => { - manifests.forEach((manifest) => { - if (umbExtensionsRegistry.isRegistered(manifest.alias)) return; - umbExtensionsRegistry.register(manifest); - }); -}; +import '@umbraco-ui/uui-css/dist/uui-css.css'; +import '../../../src/css/umb-css.css'; +import '@umbraco-ui/uui'; -registerExtensions([...externalLoginProviders]); +import './login.element.js'; diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/login.element.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/login.element.ts index 14fdf70373..d55dd07276 100644 --- a/src/Umbraco.Web.UI.Client/apps/auth/src/login.element.ts +++ b/src/Umbraco.Web.UI.Client/apps/auth/src/login.element.ts @@ -1,25 +1,46 @@ import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, CSSResultGroup, html, LitElement } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; +import { css, CSSResultGroup, html, LitElement, nothing } from 'lit'; +import { customElement, property, state } from 'lit/decorators.js'; -import './auth-layout.element'; +import type { UUIButtonState } from '@umbraco-ui/uui'; +import type { IUmbAuthContext } from './types.js'; +import { UmbAuthLegacyContext } from './auth-legacy.context.js'; +import { UmbAuthContext } from './auth.context.js'; + +import './auth-layout.element.js'; @customElement('umb-login') export default class UmbLoginElement extends LitElement { - + #authContext: IUmbAuthContext; + + @property({ type: String, attribute: 'return-url' }) + returnUrl = ''; + + @property({ type: Boolean }) + isLegacy = false; @state() - private _loggingIn = false; + private _loginState: UUIButtonState = undefined; - private _handleSubmit = (e: SubmitEvent) => { + @state() + private _loginError = ''; + + constructor() { + super(); + if (this.isLegacy) { + this.#authContext = new UmbAuthLegacyContext(); + } else { + this.#authContext = new UmbAuthContext(); + } + } + + #handleSubmit = async (e: SubmitEvent) => { e.preventDefault(); const form = e.target as HTMLFormElement; if (!form) return; - const isValid = form.checkValidity(); - if (!isValid) return; + if (!form.checkValidity()) return; const formData = new FormData(form); @@ -27,49 +48,44 @@ export default class UmbLoginElement extends LitElement { const password = formData.get('password') as string; const persist = formData.has('persist'); - this._login(username, password, persist); + this._loginState = 'waiting'; + + const response = await this.#authContext.login({ username, password, persist }); + + this._loginError = response.error || ''; + this._loginState = response.error ? 'failed' : 'success'; + + if (response.error) return; + + location.href = this.returnUrl; }; - private async _login(username: string, password: string, persist: boolean) { - // TODO: Move login to new login app - this._loggingIn = true; - - try { - this._loggingIn = false; - console.log('login'); - } catch (error) { - console.log(error); - this._loggingIn = false; - } + get #greeting() { + return [ + 'Happy super Sunday', + 'Happy marvelous Monday', + 'Happy tubular Tuesday', + 'Happy wonderful Wednesday', + 'Happy thunderous Thursday', + 'Happy funky Friday', + 'Happy Saturday', + ][new Date().getDay()]; } - private _greetings: Array = [ - 'Happy super Sunday', - 'Happy marvelous Monday', - 'Happy tubular Tuesday', - 'Happy wonderful Wednesday', - 'Happy thunderous Thursday', - 'Happy funky Friday', - 'Happy Saturday', - ]; - - @state() - private _greeting: string = this._greetings[new Date().getDay()]; - render() { return html`
-

${this._greeting}

+

${this.#greeting}

-
+ Email @@ -79,29 +95,38 @@ export default class UmbLoginElement extends LitElement { - - Remember me - + ${this.#authContext.supportsPersistLogin + ? html` + Remember me + ` + : nothing} + + ${this.#renderErrorMessage()} - + state=${this._loginState}>
`; } - + + #renderErrorMessage() { + if (!this._loginError || this._loginState !== 'failed') return nothing; + + return html`

${this._loginError}

`; + } + static styles: CSSResultGroup = [ UUITextStyles, css` @@ -109,6 +134,9 @@ export default class UmbLoginElement extends LitElement { #password { width: 100%; } + .text-danger { + color: var(--uui-color-danger-standalone); + } `, ]; } diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/login.test.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/login.test.ts index 2b2d0a2ded..72e7e2ec32 100644 --- a/src/Umbraco.Web.UI.Client/apps/auth/src/login.test.ts +++ b/src/Umbraco.Web.UI.Client/apps/auth/src/login.test.ts @@ -1,6 +1,6 @@ import { expect, fixture, html } from '@open-wc/testing'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; -import UmbLoginElement from './login.element'; +import UmbLoginElement from './login.element.js'; describe('UmbLogin', () => { let element: UmbLoginElement; diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/types.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/types.ts new file mode 100644 index 0000000000..114c515c5d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/apps/auth/src/types.ts @@ -0,0 +1,16 @@ +export type LoginRequestModel = { + username: string; + password: string; + persist: boolean; +}; + +export interface IUmbAuthContext { + login(data: LoginRequestModel): Promise; + supportsPersistLogin: boolean; +} + +export type LoginResponse = { + data?: string; + error?: string; + status: number; +}; diff --git a/src/Umbraco.Web.UI.Client/apps/auth/tsconfig.json b/src/Umbraco.Web.UI.Client/apps/auth/tsconfig.json index 7743919df7..3f90319d83 100644 --- a/src/Umbraco.Web.UI.Client/apps/auth/tsconfig.json +++ b/src/Umbraco.Web.UI.Client/apps/auth/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./types" + "declaration": false }, "include": ["src/**/*.ts"], "references": [ diff --git a/src/Umbraco.Web.UI.Client/apps/auth/vite.config.ts b/src/Umbraco.Web.UI.Client/apps/auth/vite.config.ts index 8da9c7dcb4..c542eee6bd 100644 --- a/src/Umbraco.Web.UI.Client/apps/auth/vite.config.ts +++ b/src/Umbraco.Web.UI.Client/apps/auth/vite.config.ts @@ -9,7 +9,18 @@ export default defineConfig({ formats: ['es'], fileName: 'main', }, + target: 'esnext', sourcemap: true, + rollupOptions: { + external: [/^@umbraco-cms\/backoffice\//], + output: { + manualChunks: { + uui: ['@umbraco-ui/uui'], + }, + }, + }, + outDir: '../../../Umbraco.Cms.StaticAssets/wwwroot/umbraco/login', + emptyOutDir: true, }, server: { fs: { diff --git a/src/Umbraco.Web.UI.Client/devops/build/copy-to-cms.js b/src/Umbraco.Web.UI.Client/devops/build/copy-to-cms.js new file mode 100644 index 0000000000..a24ca70d00 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/devops/build/copy-to-cms.js @@ -0,0 +1,6 @@ +import { cpSync } from 'fs'; + +const srcDir = './dist-cms'; +const outputDir = '../Umbraco.Cms.StaticAssets/wwwroot/umbraco/backoffice'; + +cpSync(srcDir, outputDir, { recursive: true }); diff --git a/src/Umbraco.Web.UI.Client/devops/icons/index.js b/src/Umbraco.Web.UI.Client/devops/icons/index.js index d03dbcb032..e56c7a7679 100644 --- a/src/Umbraco.Web.UI.Client/devops/icons/index.js +++ b/src/Umbraco.Web.UI.Client/devops/icons/index.js @@ -6,9 +6,9 @@ const path = pathModule.default; const getDirName = path.dirname; const glob = globModule.default; -const moduleDirectory = 'src/shared/icon-registry/'; -const iconsSVGDirectory = `${moduleDirectory}svgs/`; -const iconsOutputDirectory = `public-assets/icons/`; +const moduleDirectory = 'src/shared/icon-registry'; +const iconsSVGDirectory = `${moduleDirectory}/svgs`; +const iconsOutputDirectory = `${moduleDirectory}/icons`; const run = async () => { const icons = await collectIcons(); @@ -17,25 +17,36 @@ const run = async () => { }; const collectIcons = async () => { - const iconPaths = await glob(`${iconsSVGDirectory}icon-*.svg`); + const iconPaths = await glob(`${iconsSVGDirectory}/icon-*.svg`); let icons = []; iconPaths.forEach((path) => { const rawData = readFileSync(path); const svg = rawData.toString(); - const SVGFileName = path.substring(iconsSVGDirectory.length); + const pattern = /\/([^/]+)\.svg$/; + + const match = path.match(pattern); + + if (!match) { + console.log('No match found.'); + return; + } + + const SVGFileName = match[1]; const iconFileName = SVGFileName.replace('.svg', ''); const iconName = iconFileName.replace('icon-', '').replace('.svg', ''); - icons.push({ + const icon = { src: path, SVGFileName, iconFileName, name: iconName, svg, - output: `${iconsOutputDirectory}/${iconFileName}`, - }); + output: `${iconsOutputDirectory}/${iconFileName}.js`, + }; + + icons.push(icon); }); return icons; @@ -45,7 +56,7 @@ const outputIcons = (icons) => { icons.forEach((icon) => { const content = 'export default `' + icon.svg + '`;'; - writeFileWithDir(`${icon.output}.js`, content, (err) => { + writeFileWithDir(`${icon.output}`, content, (err) => { if (err) { // eslint-disable-next-line no-undef console.log(err); @@ -58,12 +69,13 @@ const outputIcons = (icons) => { }; const generateJSON = (icons) => { - const JSONPath = `${iconsOutputDirectory}icons.json`; + const JSONPath = `${iconsOutputDirectory}/icons.json`; const iconDescriptors = icons.map((icon) => { + console.log(icon); return { name: `umb:${icon.name}`, - path: `icons/${icon.iconFileName}.js`, + path: `./icons/${icon.iconFileName}.js`, }; }); diff --git a/src/Umbraco.Web.UI.Client/devops/plop/plop.js b/src/Umbraco.Web.UI.Client/devops/plop/plop.js index 1345d25b26..9c451a8cb9 100644 --- a/src/Umbraco.Web.UI.Client/devops/plop/plop.js +++ b/src/Umbraco.Web.UI.Client/devops/plop/plop.js @@ -6,7 +6,7 @@ const classNamePrefix = 'Umb'; const extensions = [ { - type: 'propertyEditorUI', + type: 'propertyEditorUi', path: '../../src/backoffice/shared/property-editors/uis', templatePath: './templates/property-editor-ui', }, diff --git a/src/Umbraco.Web.UI.Client/devops/plop/templates/property-editor-ui/element.ts.hbs b/src/Umbraco.Web.UI.Client/devops/plop/templates/property-editor-ui/element.ts.hbs index 304216e13f..fd5c0e263f 100644 --- a/src/Umbraco.Web.UI.Client/devops/plop/templates/property-editor-ui/element.ts.hbs +++ b/src/Umbraco.Web.UI.Client/devops/plop/templates/property-editor-ui/element.ts.hbs @@ -1,6 +1,6 @@ import { html } from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { UUITextStyles } from '@umbraco-ui/uui-css'; import { UmbLitElement } from '@umbraco-cms/element'; /** diff --git a/src/Umbraco.Web.UI.Client/devops/publish/cleanse-pkg.js b/src/Umbraco.Web.UI.Client/devops/publish/cleanse-pkg.js new file mode 100644 index 0000000000..fe7fa46d63 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/devops/publish/cleanse-pkg.js @@ -0,0 +1,14 @@ +import { readFileSync, writeFileSync } from 'fs'; + +console.log('[Prepublish] Cleansing package.json'); + +const packageFile = './package.json'; +const packageJson = JSON.parse(readFileSync(packageFile, 'utf8')); + +/** + * Here we will modify the package.json to remove dependencies that are not needed in the CMS or does not work on npm. + */ +delete packageJson.dependencies['router-slot']; + +// Write the package.json back to disk +writeFileSync(packageFile, JSON.stringify(packageJson, null, 2), 'utf8'); diff --git a/src/Umbraco.Web.UI.Client/e2e/installer.spec.ts b/src/Umbraco.Web.UI.Client/e2e/installer.spec.ts index 7b962bdd5a..72bc7fa7e4 100644 --- a/src/Umbraco.Web.UI.Client/e2e/installer.spec.ts +++ b/src/Umbraco.Web.UI.Client/e2e/installer.spec.ts @@ -2,7 +2,7 @@ const { rest } = window.MockServiceWorker; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; import { ProblemDetailsModel, RuntimeLevelModel, ServerStatusResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { expect, test } from './test'; +import { expect, test } from './test.js'; test.describe('installer tests', () => { test.beforeEach(async ({ page, worker }) => { diff --git a/src/Umbraco.Web.UI.Client/e2e/test.ts b/src/Umbraco.Web.UI.Client/e2e/test.ts index cf17e0e9f3..982ff1f44f 100644 --- a/src/Umbraco.Web.UI.Client/e2e/test.ts +++ b/src/Umbraco.Web.UI.Client/e2e/test.ts @@ -2,7 +2,7 @@ import { expect, test as base } from '@playwright/test'; import { createWorkerFixture } from 'playwright-msw'; import type { MockServiceWorker } from 'playwright-msw'; -import { handlers } from '../src/shared/mocks/e2e-handlers'; +import { handlers } from '../src/mocks/e2e-handlers.js'; const test = base.extend<{ worker: MockServiceWorker; diff --git a/src/Umbraco.Web.UI.Client/e2e/upgrader.spec.ts b/src/Umbraco.Web.UI.Client/e2e/upgrader.spec.ts index 55ed4c707e..35728d313a 100644 --- a/src/Umbraco.Web.UI.Client/e2e/upgrader.spec.ts +++ b/src/Umbraco.Web.UI.Client/e2e/upgrader.spec.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; import { ProblemDetailsModel, RuntimeLevelModel, ServerStatusResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { expect, test } from './test'; +import { expect, test } from './test.js'; test.describe('upgrader tests', () => { test.beforeEach(async ({ page, worker }) => { diff --git a/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs b/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs index 42979e16e0..47a4fec0cb 100644 --- a/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs +++ b/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs @@ -43,7 +43,7 @@ module.exports = { type: 'suggestion', docs: { description: - 'Ensures that any API resources from the `@umbraco-cms/backoffice/backend-api` module are not used directly. Instead you should use the `tryExecuteAndNotify` function from the `@umbraco-cms/resources` module.', + 'Ensures that any API resources from the `@umbraco-cms/backoffice/backend-api` module are not used directly. Instead you should use the `tryExecuteAndNotify` function from the `@umbraco-cms/backoffice/resources` module.', category: 'Best Practices', recommended: true, }, @@ -140,42 +140,8 @@ module.exports = { }, }, - // TODO: Its not bullet proof, but it will catch most/some cases. - /** @type {import('eslint').Rule.RuleModule} */ - 'prefer-umbraco-cms-imports': { - meta: { - type: 'suggestion', - docs: { - description: 'Replace relative imports to libs/... with @umbraco-cms/backoffice/...', - category: 'Best Practices', - recommended: true, - }, - fixable: 'code', - schema: [], - }, - create: function (context) { - const libsRegex = /(\.\.\/)*libs\/(.*)/; - return { - ImportDeclaration: function (node) { - const sourceValue = node.source.value; - if (sourceValue.startsWith('libs/') || libsRegex.test(sourceValue)) { - const importPath = sourceValue.replace(libsRegex, (match, p1, p2) => { - return `@umbraco-cms/backoffice/${p2}`; - }); - context.report({ - node, - message: `Use import alias @umbraco-cms/backoffice instead of relative path "${sourceValue}".`, - fix: function (fixer) { - return fixer.replaceTextRange(node.source.range, `'${importPath}'`); - }, - }); - } - }, - }; - }, - }, - /** @type {import('eslint').Rule.RuleModule} */ + /* 'no-external-imports': { meta: { type: 'problem', @@ -205,6 +171,7 @@ module.exports = { }; }, }, + */ /** @type {import('eslint').Rule.RuleModule} */ 'umb-class-prefix': { @@ -279,4 +246,69 @@ module.exports = { }; }, }, + + /** @type {import('eslint').RuleModule}*/ + 'ensure-relative-import-use-js-extension': { + meta: { + type: 'problem', + docs: { + description: 'Ensures relative imports use the ".js" file extension.', + category: 'Best Practices', + recommended: true, + }, + fixable: 'code', + schema: [], + }, + create: (context) => { + function correctImport(value) { + if (value === '.') { + return './index.js'; + } + + if ( + value && + value.startsWith('.') && + !value.endsWith('.js') && + !value.endsWith('.css') && + !value.endsWith('.json') && + !value.endsWith('.svg') && + !value.endsWith('.jpg') && + !value.endsWith('.png') + ) { + return (value.endsWith('/') ? value + 'index' : value) + '.js'; + } + + return null; + } + + return { + ImportDeclaration: (node) => { + const { source } = node; + const { value } = source; + + const fixedValue = correctImport(value); + if (fixedValue) { + context.report({ + node, + message: 'Relative imports should use the ".js" file extension.', + fix: (fixer) => fixer.replaceText(source, `'${fixedValue}'`), + }); + } + }, + ImportExpression: (node) => { + const { source } = node; + const { value } = source; + + const fixedSource = correctImport(value); + if (fixedSource) { + context.report({ + node: source, + message: 'Relative imports should use the ".js" file extension.', + fix: (fixer) => fixer.replaceText(source, `'${fixedSource}'`), + }); + } + }, + }; + }, + }, }; diff --git a/src/Umbraco.Web.UI.Client/index.html b/src/Umbraco.Web.UI.Client/index.html index 0509d7d716..7f6db52d25 100644 --- a/src/Umbraco.Web.UI.Client/index.html +++ b/src/Umbraco.Web.UI.Client/index.html @@ -1,13 +1,15 @@ + - + Umbraco - - - + + + + diff --git a/src/Umbraco.Web.UI.Client/index.ts b/src/Umbraco.Web.UI.Client/index.ts index 501e5fd53a..2afb9dadf5 100644 --- a/src/Umbraco.Web.UI.Client/index.ts +++ b/src/Umbraco.Web.UI.Client/index.ts @@ -1,5 +1,5 @@ -import { UmbAppElement } from './src/apps/app/app.element'; -import { startMockServiceWorker } from './src/shared/mocks'; +import { UmbAppElement } from './src/apps/app/app.element.js'; +import { startMockServiceWorker } from './src/mocks/index.js'; if (import.meta.env.VITE_UMBRACO_USE_MSW === 'on') { startMockServiceWorker(); diff --git a/src/Umbraco.Web.UI.Client/libs/collection/index.ts b/src/Umbraco.Web.UI.Client/libs/collection/index.ts deleted file mode 100644 index 764134199c..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/collection/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './collection.context'; -export * from './collection-filter-model.interface'; diff --git a/src/Umbraco.Web.UI.Client/libs/content-type/index.ts b/src/Umbraco.Web.UI.Client/libs/content-type/index.ts deleted file mode 100644 index a47e7f2afb..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/content-type/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './content-type-container-structure-helper.class'; -export * from './content-type-property-structure-helper.class'; -export * from './content-type-structure-manager.class'; diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/index.ts b/src/Umbraco.Web.UI.Client/libs/context-api/index.ts deleted file mode 100644 index 46bd90bab9..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/context-api/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -export * from './consume/context-consumer.controller'; -export * from './consume/context-consumer'; -export * from './consume/context-request.event'; -export * from './provide/context-provider.controller'; -export * from './provide/context-provider'; -export * from './provide/context-provide.event'; -export * from './provide/context-provider.element'; -export * from './token/'; -export * from './debug/context-data.function'; diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/token/index.ts b/src/Umbraco.Web.UI.Client/libs/context-api/token/index.ts deleted file mode 100644 index 6ca732ea3b..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/context-api/token/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './entity-workspace-context.token'; -export * from './context-token'; diff --git a/src/Umbraco.Web.UI.Client/libs/controller-api/index.ts b/src/Umbraco.Web.UI.Client/libs/controller-api/index.ts deleted file mode 100644 index c683d1e658..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/controller-api/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './controller-host.mixin'; -export * from './controller.class'; -export * from './controller.interface'; diff --git a/src/Umbraco.Web.UI.Client/libs/data-type/index.ts b/src/Umbraco.Web.UI.Client/libs/data-type/index.ts deleted file mode 100644 index 5073b18ef1..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/data-type/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './data-type-property-collection.class'; \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/libs/element-api/index.ts b/src/Umbraco.Web.UI.Client/libs/element-api/index.ts deleted file mode 100644 index 18d6126ccc..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/element-api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './element.mixin'; diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/index.ts b/src/Umbraco.Web.UI.Client/libs/entity-action/actions/index.ts deleted file mode 100644 index 8551f08139..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * from './copy/copy.action'; -export * from './delete/delete.action'; -export * from './delete-folder/delete-folder.action'; -export * from './folder-update/folder-update.action'; -export * from './move/move.action'; -export * from './sort-children-of/sort-children-of.action'; -export * from './trash/trash.action'; diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/index.ts b/src/Umbraco.Web.UI.Client/libs/entity-action/index.ts deleted file mode 100644 index 9503bc670b..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './action'; -export * from './entity-action'; -export * from './entity-bulk-action'; -export * from './actions'; diff --git a/src/Umbraco.Web.UI.Client/libs/extension-api/index.ts b/src/Umbraco.Web.UI.Client/libs/extension-api/index.ts deleted file mode 100644 index 9370b946d0..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/extension-api/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -export * from './registry/extension.registry'; -export * from './type-guards'; -export * from './create-extension-element.function'; -export * from './has-default-export.function'; -export * from './has-init-export.function'; -export * from './load-extension.function'; -export * from './create-extension-element-or-fallback.function'; -export * from './create-extension-class.function'; -export * from './umb-lifecycle.interface'; -export * from './entry-point-extension-initializer'; -export * from './types'; diff --git a/src/Umbraco.Web.UI.Client/libs/extension-api/type-guards/index.ts b/src/Umbraco.Web.UI.Client/libs/extension-api/type-guards/index.ts deleted file mode 100644 index a314097c9b..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/extension-api/type-guards/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from './is-manifest-class-instance-type.function'; -export * from './is-manifest-classable-type.function'; -export * from './is-manifest-element-name-type.function'; -export * from './is-manifest-elementable-type.function'; -export * from './is-manifest-js-type.function'; -export * from './is-manifest-loader-type.function'; diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/index.ts b/src/Umbraco.Web.UI.Client/libs/extension-registry/index.ts deleted file mode 100644 index 4e8543f68f..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './interfaces'; -export * from './models'; -export * from './registry'; -export * from './tiny-mce-plugin'; \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/index.ts b/src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/index.ts deleted file mode 100644 index 14fb03e1dc..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -export * from './dashboard-extension-element.interface'; -export * from './external-login-provider-extension-element.interface'; -export * from './menu-item-extension-element.interface'; -export * from './modal-extension-element.interface'; -export * from './property-editor-ui-extension-element.interface'; -export * from './section-extension-element.interface'; -export * from './section-sidebar-app-extension-element.interface'; -export * from './section-view-extension-element.interface'; -export * from './tree-item-extension-element.interface'; -export * from './workspace-editor-view-extension-element.interface'; diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/index.ts b/src/Umbraco.Web.UI.Client/libs/extension-registry/models/index.ts deleted file mode 100644 index 2292197e59..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/index.ts +++ /dev/null @@ -1,96 +0,0 @@ -import type { ManifestCollectionView } from './collection-view.model'; -import type { ManifestDashboard } from './dashboard.model'; -import type { ManifestDashboardCollection } from './dashboard-collection.model'; -import type { ManifestEntityAction } from './entity-action.model'; -import type { ManifestEntityBulkAction } from './entity-bulk-action.model'; -import type { ManifestExternalLoginProvider } from './external-login-provider.model'; -import type { ManifestHeaderApp, ManifestHeaderAppButtonKind } from './header-app.model'; -import type { ManifestHealthCheck } from './health-check.model'; -import type { ManifestMenu } from './menu.model'; -import type { ManifestMenuItem, ManifestMenuItemTreeKind } from './menu-item.model'; -import type { ManifestModal } from './modal.model'; -import type { ManifestPackageView } from './package-view.model'; -import type { ManifestPropertyAction } from './property-action.model'; -import type { ManifestPropertyEditorUI, ManifestPropertyEditorModel } from './property-editor.model'; -import type { ManifestRepository } from './repository.model'; -import type { ManifestSection } from './section.model'; -import type { ManifestSectionSidebarApp, ManifestSectionSidebarAppMenuKind } from './section-sidebar-app.model'; -import type { ManifestSectionView } from './section-view.model'; -import type { ManifestStore, ManifestTreeStore, ManifestItemStore } from './store.model'; -import type { ManifestTheme } from './theme.model'; -import type { ManifestTinyMcePlugin } from './tinymce-plugin.model'; -import type { ManifestTree } from './tree.model'; -import type { ManifestTreeItem } from './tree-item.model'; -import type { ManifestUserProfileApp } from './user-profile-app.model'; -import type { ManifestWorkspace } from './workspace.model'; -import type { ManifestWorkspaceAction } from './workspace-action.model'; -import type { ManifestWorkspaceEditorView } from './workspace-editor-view.model'; -import type { ManifestWorkspaceViewCollection } from './workspace-view-collection.model'; -import type { ManifestBase, ManifestEntryPoint } from '@umbraco-cms/backoffice/extension-api'; - -export * from './collection-view.model'; -export * from './dashboard-collection.model'; -export * from './dashboard.model'; -export * from './entity-action.model'; -export * from './entity-bulk-action.model'; -export * from './external-login-provider.model'; -export * from './header-app.model'; -export * from './health-check.model'; -export * from './menu-item.model'; -export * from './menu.model'; -export * from './modal.model'; -export * from './package-view.model'; -export * from './property-action.model'; -export * from './property-editor.model'; -export * from './repository.model'; -export * from './section-sidebar-app.model'; -export * from './section-view.model'; -export * from './section.model'; -export * from './store.model'; -export * from './theme.model'; -export * from './tinymce-plugin.model'; -export * from './tree-item.model'; -export * from './tree.model'; -export * from './user-profile-app.model'; -export * from './workspace-action.model'; -export * from './workspace-view-collection.model'; -export * from './workspace-editor-view.model'; -export * from './workspace.model'; - -export type ManifestTypes = - | ManifestCollectionView - | ManifestDashboard - | ManifestDashboardCollection - | ManifestEntityAction - | ManifestEntityBulkAction - | ManifestEntryPoint - | ManifestExternalLoginProvider - | ManifestHeaderApp - | ManifestHeaderAppButtonKind - | ManifestHealthCheck - | ManifestItemStore - | ManifestMenu - | ManifestMenuItem - | ManifestMenuItemTreeKind - | ManifestModal - | ManifestPackageView - | ManifestPropertyAction - | ManifestPropertyEditorModel - | ManifestPropertyEditorUI - | ManifestRepository - | ManifestSection - | ManifestSectionSidebarApp - | ManifestSectionSidebarAppMenuKind - | ManifestSectionView - | ManifestStore - | ManifestTheme - | ManifestTinyMcePlugin - | ManifestTree - | ManifestTreeItem - | ManifestTreeStore - | ManifestUserProfileApp - | ManifestWorkspace - | ManifestWorkspaceAction - | ManifestWorkspaceEditorView - | ManifestWorkspaceViewCollection - | ManifestBase; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/index.ts b/src/Umbraco.Web.UI.Client/libs/modal/index.ts deleted file mode 100644 index 3e2caa5f16..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/modal/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from './modal.context'; -export * from './modal-handler'; -export * from './modal-route-registration'; -export * from './modal-route-registration.controller'; -export * from './token'; -export * from './modal.interfaces'; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal-route-registration.controller.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal-route-registration.controller.ts deleted file mode 100644 index 18c2571963..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal-route-registration.controller.ts +++ /dev/null @@ -1,88 +0,0 @@ -// TODO: Be aware here we import a class from src! -import { UMB_ROUTE_CONTEXT_TOKEN } from '../router/route.context'; -import { UmbModalRouteRegistration } from './modal-route-registration'; -import type { UmbControllerHostElement, UmbControllerInterface } from '@umbraco-cms/backoffice/controller-api'; -import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import { UmbModalConfig, UmbModalToken } from '@umbraco-cms/backoffice/modal'; - -export class UmbModalRouteRegistrationController - extends UmbModalRouteRegistration - implements UmbControllerInterface -{ - //#host: UmbControllerHostInterface; - - #configuredPath: string; - #uniqueParts: Map; - - #routeContext?: typeof UMB_ROUTE_CONTEXT_TOKEN.TYPE; - #modalRegistration?: UmbModalRouteRegistration; - - public get unique() { - return undefined; - } - - constructor( - host: UmbControllerHostElement, - alias: UmbModalToken | string, - path: string, - uniqueParts?: Map | null, - modalConfig?: UmbModalConfig - ) { - super(alias, path, modalConfig); - //this.#host = host; - this.#configuredPath = path; - this.#uniqueParts = uniqueParts || new Map(); - - new UmbContextConsumerController(host, UMB_ROUTE_CONTEXT_TOKEN, (_routeContext) => { - this.#routeContext = _routeContext; - this._registererModal(); - }); - } - - setUniqueIdentifier(identifier: string, value: string | undefined) { - if (!this.#uniqueParts.has(identifier)) { - throw new Error( - `Identifier ${identifier} was not registered at the construction of the modal registration controller, it has to be.` - ); - } - this.#uniqueParts.set(identifier, value); - this._registererModal(); - } - - private _registererModal() { - if (!this.#routeContext) return; - if (this.#modalRegistration) { - this.#routeContext.unregisterModal(this.#modalRegistration); - this.#modalRegistration = undefined; - } - - const pathParts = Array.from(this.#uniqueParts.values()); - - // Check if there is any undefined values of unique map: - if (pathParts.some((value) => value === undefined)) return; - - // Add the configured part of the path: - pathParts.push(this.#configuredPath); - - // Make this the path of the modal registration: - this._setPath(pathParts.join('/')); - - this.#modalRegistration = this.#routeContext.registerModal(this); - } - - hostConnected() { - if (!this.#modalRegistration) { - this._registererModal(); - } - } - hostDisconnected(): void { - if (this.#modalRegistration) { - this.#routeContext?.unregisterModal(this.#modalRegistration); - this.#modalRegistration = undefined; - } - } - - public destroy(): void { - this.hostDisconnected(); - } -} diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/dictionary-item-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/libs/modal/token/dictionary-item-picker-modal.token.ts deleted file mode 100644 index c4c2288089..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/modal/token/dictionary-item-picker-modal.token.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; - -export interface UmbDictionaryItemPickerModalData { - multiple: boolean; - selection: string[]; -} - -export interface UmbDictionaryItemPickerModalResult { - selection: Array; -} - -export const UMB_DICTIONARY_ITEM_PICKER_MODAL_ALIAS = 'Umb.Modal.DictionaryItemPicker'; - -export const UMB_DICTIONARY_ITEM_PICKER_MODAL = new UmbModalToken< - UmbDictionaryItemPickerModalData, - UmbDictionaryItemPickerModalResult ->(UMB_DICTIONARY_ITEM_PICKER_MODAL_ALIAS, { - type: 'sidebar', - size: 'small', -}); diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/index.ts b/src/Umbraco.Web.UI.Client/libs/modal/token/index.ts deleted file mode 100644 index 856a65c673..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/modal/token/index.ts +++ /dev/null @@ -1,32 +0,0 @@ -export * from './modal-token'; -export * from './allowed-document-types-modal.token'; -export * from './change-password-modal.token'; -export * from './confirm-modal.token'; -export * from './create-dictionary-modal.token'; -export * from './create-user-modal.token'; -export * from './current-user-modal.token'; -export * from './debug-modal.token'; -export * from './document-picker-modal.token'; -export * from './document-type-picker-modal.token'; -export * from './embedded-media-modal.token'; -export * from './examine-fields-settings-modal.token'; -export * from './export-dictionary-modal.token'; -export * from './icon-picker-modal.token'; -export * from './import-dictionary-modal.token'; -export * from './invite-user-modal.token'; -export * from './language-picker-modal.token'; -export * from './link-picker-modal.token'; -export * from './media-tree-picker-modal.token'; -export * from './property-editor-ui-picker-modal.token'; -export * from './property-settings-modal.token'; -export * from './search-modal.token'; -export * from './section-picker-modal.token'; -export * from './template-modal.token'; -export * from './template-picker-modal.token'; -export * from './user-group-picker-modal.token'; -export * from './user-picker-modal.token'; -export * from './code-editor-modal.token'; -export * from './folder-modal.token'; -export * from './partial-view-picker-modal.token'; -export * from './dictionary-item-picker-modal.token'; -export * from './data-type-picker-modal.token'; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/property-settings-modal.token.ts b/src/Umbraco.Web.UI.Client/libs/modal/token/property-settings-modal.token.ts deleted file mode 100644 index 80d28d4578..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/modal/token/property-settings-modal.token.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; - -// TODO: add interface for data -// PropertyTypeViewModelBaseModel - -export interface UmbPropertySettingsModalResult { - label: string; - alias: string; - description: string; - propertyEditorUI?: string; - labelOnTop: boolean; - validation: { - mandatory: boolean; - mandatoryMessage: string; - pattern: string; - patternMessage: string; - }; -} - -export const UMB_PROPERTY_SETTINGS_MODAL = new UmbModalToken( - 'Umb.Modal.PropertySettings', - { - type: 'sidebar', - size: 'small', - } -); diff --git a/src/Umbraco.Web.UI.Client/libs/notification/index.ts b/src/Umbraco.Web.UI.Client/libs/notification/index.ts deleted file mode 100644 index 249397c8e5..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/notification/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './notification.context'; -export * from './notification-handler'; diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/index.ts b/src/Umbraco.Web.UI.Client/libs/observable-api/index.ts deleted file mode 100644 index e0edfe4be9..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -export * from './observer.controller'; -export * from './observer'; -export * from './basic-state'; -export * from './boolean-state'; -export * from './number-state'; -export * from './string-state'; -export * from './class-state'; -export * from './deep-state'; -export * from './array-state'; -export * from './object-state'; -export * from './create-observable-part.function'; -export * from './append-to-frozen-array.function'; -export * from './filter-frozen-array.function'; -export * from './partial-update-frozen-array.function'; -export * from './mapping-function'; diff --git a/src/Umbraco.Web.UI.Client/libs/package.json b/src/Umbraco.Web.UI.Client/libs/package.json deleted file mode 100644 index 2224fe9080..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/package.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "@umbraco-cms/backoffice", - "version": "13.0.0-alpha.0", - "license": "MIT", - "keywords": [ - "umbraco", - "backoffice" - ], - "repository": { - "url": "https://github.com/umbraco/Umbraco.CMS.Backoffice", - "type": "git" - }, - "bugs": { - "url": "https://github.com/umbraco/Umbraco.CMS.Backoffice/issues" - }, - "author": { - "name": "Umbraco A/S", - "email": "backoffice@umbraco.com", - "url": "https://umbraco.com" - }, - "type": "module", - "files": [ - "*.d.ts", - "*.json", - "*.md" - ], - "peerDependencies": { - "@types/uuid": "^9.0.1", - "@umbraco-ui/uui": "1.2.1", - "rxjs": "^7.8.0" - }, - "customElements": "custom-elements.json" -} diff --git a/src/Umbraco.Web.UI.Client/libs/picker-input/index.ts b/src/Umbraco.Web.UI.Client/libs/picker-input/index.ts deleted file mode 100644 index 74b8745179..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/picker-input/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './picker-input.context'; diff --git a/src/Umbraco.Web.UI.Client/libs/repository/data-source/index.ts b/src/Umbraco.Web.UI.Client/libs/repository/data-source/index.ts deleted file mode 100644 index d58b89b70e..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/repository/data-source/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * from './data-source-response.interface'; -export * from './data-source.interface'; -export * from './folder-data-source.interface'; -export * from './tree-data-source.interface'; -export * from './item-data-source.interface'; -export * from './move-data-source.interface'; -export * from './copy-data-source.interface'; -export * from './collection-data-source.interface'; diff --git a/src/Umbraco.Web.UI.Client/libs/repository/index.ts b/src/Umbraco.Web.UI.Client/libs/repository/index.ts deleted file mode 100644 index 9efaa532e9..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/repository/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * from './data-source'; -export * from './detail-repository.interface'; -export * from './tree-repository.interface'; -export * from './folder-repository.interface'; -export * from './collection-repository.interface'; -export * from './item-repository.interface'; -export * from './move-repository.interface'; -export * from './copy-repository.interface'; diff --git a/src/Umbraco.Web.UI.Client/libs/resources/index.ts b/src/Umbraco.Web.UI.Client/libs/resources/index.ts deleted file mode 100644 index e0769f21ef..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/resources/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './resource.controller'; -export * from './tryExecute.function'; -export * from './tryExecuteAndNotify.function'; diff --git a/src/Umbraco.Web.UI.Client/libs/router/generate-route-path-builder.function.ts b/src/Umbraco.Web.UI.Client/libs/router/generate-route-path-builder.function.ts deleted file mode 100644 index 5fee139a5c..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/router/generate-route-path-builder.function.ts +++ /dev/null @@ -1,13 +0,0 @@ -/* eslint-disable */ -import { stripSlash } from 'router-slot/util'; // This must only include the util to avoid side effects of registering the route element. - -const PARAM_IDENTIFIER = /:([^\\/]+)/g; - -export function generateRoutePathBuilder(path: string) { - return (params: { [key: string]: string | number }) => - stripSlash( - path.replace(PARAM_IDENTIFIER, (substring: string, ...args: string[]) => { - return params[args[0]].toString(); - }) - ); -} diff --git a/src/Umbraco.Web.UI.Client/libs/router/route.interface.ts b/src/Umbraco.Web.UI.Client/libs/router/route.interface.ts deleted file mode 100644 index 8c7f94ac63..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/router/route.interface.ts +++ /dev/null @@ -1 +0,0 @@ -export type { IRoute as UmbRoute } from 'router-slot/model'; diff --git a/src/Umbraco.Web.UI.Client/libs/section/index.ts b/src/Umbraco.Web.UI.Client/libs/section/index.ts deleted file mode 100644 index 637a13e6c1..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/section/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './sidebar/section-sidebar.context'; -export * from './section.context'; diff --git a/src/Umbraco.Web.UI.Client/libs/sorter/index.ts b/src/Umbraco.Web.UI.Client/libs/sorter/index.ts deleted file mode 100644 index c3024038f4..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/sorter/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './sorter.controller'; diff --git a/src/Umbraco.Web.UI.Client/libs/store/index.ts b/src/Umbraco.Web.UI.Client/libs/store/index.ts deleted file mode 100644 index a72d304eca..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/store/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from './store'; -export * from './store-base'; -export * from './entity-tree-store'; -export * from './file-system-tree.store'; -export * from './tree-store.interface'; -export * from './item-store.interface'; diff --git a/src/Umbraco.Web.UI.Client/libs/store/item-store.interface.ts b/src/Umbraco.Web.UI.Client/libs/store/item-store.interface.ts deleted file mode 100644 index a68e83b5c1..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/store/item-store.interface.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { Observable } from 'rxjs'; -import { ItemResponseModelBaseModel } from '../backend-api'; -import { UmbStore } from './store.interface'; - -export interface UmbItemStore extends UmbStore { - items: (uniques: Array) => Observable>; -} diff --git a/src/Umbraco.Web.UI.Client/libs/umb-events/index.ts b/src/Umbraco.Web.UI.Client/libs/umb-events/index.ts deleted file mode 100644 index ab853452d1..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/umb-events/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './input.event'; -export * from './change.event'; -export * from './delete.event'; -export * from './executed.event'; diff --git a/src/Umbraco.Web.UI.Client/libs/utils/index.ts b/src/Umbraco.Web.UI.Client/libs/utils/index.ts deleted file mode 100644 index 0def7a5365..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/utils/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -export * from './umbraco-path'; -export * from './udi-service'; -export * from './selection-manager'; -export * from './media-helper.service'; - -// TODO => tinymce property should be typed, but would require libs taking a dependency on TinyMCE, which is not ideal -declare global { - interface Window { - tinymce: any; - Umbraco: any; - } -} \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/libs/variant/index.ts b/src/Umbraco.Web.UI.Client/libs/variant/index.ts deleted file mode 100644 index c4b6ea1ef4..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/variant/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './variant-id.class'; diff --git a/src/Umbraco.Web.UI.Client/libs/workspace/actions/index.ts b/src/Umbraco.Web.UI.Client/libs/workspace/actions/index.ts deleted file mode 100644 index d1092c53e3..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/workspace/actions/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './workspace-action-base'; -export * from './save/save.action'; diff --git a/src/Umbraco.Web.UI.Client/libs/workspace/context/index.ts b/src/Umbraco.Web.UI.Client/libs/workspace/context/index.ts deleted file mode 100644 index b41a1dc655..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/workspace/context/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './workspace-context.interface'; -export * from './workspace-entity-context.interface'; -export * from './workspace-context'; diff --git a/src/Umbraco.Web.UI.Client/libs/workspace/index.ts b/src/Umbraco.Web.UI.Client/libs/workspace/index.ts deleted file mode 100644 index aeb6753e07..0000000000 --- a/src/Umbraco.Web.UI.Client/libs/workspace/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './actions'; -export * from './context'; -export * from './workspace-split-view-manager.class'; diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 09bc8aec5d..aaf2cbdeb5 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -1,23 +1,23 @@ { - "name": "umbraco-cms-backoffice", + "name": "@umbraco-cms/backoffice", "version": "0.0.0", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "umbraco-cms-backoffice", + "name": "@umbraco-cms/backoffice", "version": "0.0.0", "hasInstallScript": true, "license": "MIT", "dependencies": { "@openid/appauth": "^1.3.1", - "@umbraco-ui/uui": "1.3.0-rc.0", - "@umbraco-ui/uui-css": "1.3.0-rc.0", + "@umbraco-ui/uui": "1.3.0-rc.1", + "@umbraco-ui/uui-css": "1.3.0-rc.1", "element-internals-polyfill": "^1.1.19", - "lit": "^2.7.0", + "lit": "^2.7.4", "lodash-es": "4.17.21", "monaco-editor": "^0.36.1", - "router-slot": "file:router-slot-2.0.0.tgz", + "router-slot": "file:router-slot-2.2.0.tgz", "rxjs": "^7.8.0", "tinymce": "^6.3.2", "tinymce-i18n": "^23.5.8", @@ -28,15 +28,16 @@ "@mdx-js/react": "^2.2.1", "@open-wc/testing": "^3.1.7", "@playwright/test": "^1.30.0", + "@rollup/plugin-commonjs": "^25.0.0", "@rollup/plugin-json": "^6.0.0", "@rollup/plugin-node-resolve": "^15.0.1", - "@storybook/addon-a11y": "^7.0.11", - "@storybook/addon-actions": "^7.0.11", - "@storybook/addon-essentials": "^7.0.11", - "@storybook/addon-links": "^7.0.11", + "@storybook/addon-a11y": "^7.0.17", + "@storybook/addon-actions": "^7.0.17", + "@storybook/addon-essentials": "^7.0.17", + "@storybook/addon-links": "^7.0.17", "@storybook/mdx2-csf": "^1.1.0", - "@storybook/web-components": "^7.0.11", - "@storybook/web-components-vite": "^7.0.11", + "@storybook/web-components": "^7.0.17", + "@storybook/web-components-vite": "^7.0.17", "@types/chai": "^4.3.4", "@types/lodash-es": "^4.17.6", "@types/mocha": "^10.0.0", @@ -72,10 +73,11 @@ "rollup-plugin-dts": "^5.2.0", "rollup-plugin-esbuild": "^5.0.0", "rollup-plugin-url": "^3.0.1", - "storybook": "^7.0.11", + "storybook": "^7.0.17", "tiny-glob": "^0.2.9", + "tsc-alias": "^1.8.6", "typescript": "^5.0.3", - "typescript-json-schema": "^0.55.0", + "typescript-json-schema": "^0.56.0", "uglify-js": "^3.17.4", "vite": "^4.3.3", "vite-plugin-static-copy": "^0.14.0", @@ -177,30 +179,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.21.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz", - "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==", + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.3.tgz", + "integrity": "sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", - "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.1.tgz", + "integrity": "sha512-Hkqu7J4ynysSXxmAahpN1jjRwVJ+NdpraFLIWflgjpVob3KNyK3/tIUc7Q7szed8WMp0JNa7Qtd1E9Oo22F9gA==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.4", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.4", - "@babel/types": "^7.21.4", + "@babel/generator": "^7.22.0", + "@babel/helper-compilation-targets": "^7.22.1", + "@babel/helper-module-transforms": "^7.22.1", + "@babel/helpers": "^7.22.0", + "@babel/parser": "^7.22.0", + "@babel/template": "^7.21.9", + "@babel/traverse": "^7.22.1", + "@babel/types": "^7.22.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -216,12 +218,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz", - "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==", + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.3.tgz", + "integrity": "sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A==", "dev": true, "dependencies": { - "@babel/types": "^7.21.5", + "@babel/types": "^7.22.3", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -243,24 +245,24 @@ } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.21.5.tgz", - "integrity": "sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g==", + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.3.tgz", + "integrity": "sha512-ahEoxgqNoYXm0k22TvOke48i1PkavGu0qGCmcq9ugi6gnmvKNaMjKBSrZTnWUi1CFEeNAUiVba0Wtzm03aSkJg==", "dev": true, "dependencies": { - "@babel/types": "^7.21.5" + "@babel/types": "^7.22.3" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", - "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.1.tgz", + "integrity": "sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.21.5", + "@babel/compat-data": "^7.22.0", "@babel/helper-validator-option": "^7.21.0", "browserslist": "^4.21.3", "lru-cache": "^5.1.1", @@ -274,17 +276,17 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.8.tgz", - "integrity": "sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw==", + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.1.tgz", + "integrity": "sha512-SowrZ9BWzYFgzUMwUmowbPSGu6CXL5MSuuCkG3bejahSpSymioPmuLdhPxNOc9MjuNGjy7M/HaXvJ8G82Lywlw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-environment-visitor": "^7.22.1", "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.5", + "@babel/helper-member-expression-to-functions": "^7.22.0", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.21.5", + "@babel/helper-replace-supers": "^7.22.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/helper-split-export-declaration": "^7.18.6", "semver": "^6.3.0" @@ -297,9 +299,9 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.8.tgz", - "integrity": "sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g==", + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.1.tgz", + "integrity": "sha512-WWjdnfR3LPIe+0EY8td7WmjhytxXtjKAEpnAxun/hkNiyOaPlvGK+NZaBFIdi9ndYV3Gav7BpFvtUwnaJlwi1w==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", @@ -314,9 +316,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.0.tgz", + "integrity": "sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.17.7", @@ -331,9 +333,9 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz", - "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==", + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.1.tgz", + "integrity": "sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA==", "dev": true, "engines": { "node": ">=6.9.0" @@ -365,12 +367,12 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz", - "integrity": "sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg==", + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.3.tgz", + "integrity": "sha512-Gl7sK04b/2WOb6OPVeNy9eFKeD3L6++CzL3ykPOWqTn08xgYYK0wz4TUh2feIImDXxcVW3/9WQ1NMKY66/jfZA==", "dev": true, "dependencies": { - "@babel/types": "^7.21.5" + "@babel/types": "^7.22.3" }, "engines": { "node": ">=6.9.0" @@ -389,19 +391,19 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", - "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.1.tgz", + "integrity": "sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-environment-visitor": "^7.22.1", "@babel/helper-module-imports": "^7.21.4", "@babel/helper-simple-access": "^7.21.5", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" + "@babel/template": "^7.21.9", + "@babel/traverse": "^7.22.1", + "@babel/types": "^7.22.0" }, "engines": { "node": ">=6.9.0" @@ -447,17 +449,17 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.21.5.tgz", - "integrity": "sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg==", + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.1.tgz", + "integrity": "sha512-ut4qrkE4AuSfrwHSps51ekR1ZY/ygrP1tp0WFm8oVq6nzc/hvfV/22JylndIbsf2U2M9LOMwiSddr6y+78j+OQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-member-expression-to-functions": "^7.21.5", + "@babel/helper-environment-visitor": "^7.22.1", + "@babel/helper-member-expression-to-functions": "^7.22.0", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" + "@babel/template": "^7.21.9", + "@babel/traverse": "^7.22.1", + "@babel/types": "^7.22.0" }, "engines": { "node": ">=6.9.0" @@ -542,14 +544,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", - "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.3.tgz", + "integrity": "sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w==", "dev": true, "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" + "@babel/template": "^7.21.9", + "@babel/traverse": "^7.22.1", + "@babel/types": "^7.22.3" }, "engines": { "node": ">=6.9.0" @@ -570,9 +572,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz", - "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==", + "version": "7.22.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.4.tgz", + "integrity": "sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -597,14 +599,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", - "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.3.tgz", + "integrity": "sha512-6r4yRwEnorYByILoDRnEqxtojYKuiIv9FojW2E8GUKo9eWBwbKcd9IiZOZpdyXc64RmyGGyPu3/uAcrz/dq2kQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-plugin-utils": "^7.21.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.7" + "@babel/plugin-transform-optional-chaining": "^7.22.3" }, "engines": { "node": ">=6.9.0" @@ -955,6 +957,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.3.tgz", + "integrity": "sha512-i35jZJv6aO7hxEbIWQ41adVfOzjm9dcYDNeWlBMd8p0ZQRtNUCBrmGwZt+H5lb+oOC9a3svp956KP0oWGA1YsA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", @@ -1111,6 +1128,22 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-transform-arrow-functions": { "version": "7.21.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz", @@ -1126,6 +1159,24 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.3.tgz", + "integrity": "sha512-36A4Aq48t66btydbZd5Fk0/xJqbpg/v4QWI4AH4cYHBXy9Mu42UOupZpebKFiCFNT9S9rJFcsld0gsv0ayLjtA==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-async-to-generator": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", @@ -1173,6 +1224,39 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.3.tgz", + "integrity": "sha512-mASLsd6rhOrLZ5F3WbCxkzl67mmOnqik0zrg5W6D/X0QMW7HtvnoL1dRARLKIbMP3vXwkwziuLesPqWVGIl6Bw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.3.tgz", + "integrity": "sha512-5BirgNWNOx7cwbTJCOmKFJ1pZjwk5MUfMIwiBBvsirCJMZeQgs5pk6i1OlkVg+1Vef5LfBahFOrdCnAWvkVKMw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, "node_modules/@babel/plugin-transform-classes": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", @@ -1258,6 +1342,22 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.1.tgz", + "integrity": "sha512-rlhWtONnVBPdmt+jeewS0qSnMz/3yLFrqAP8hHC6EDcrYRSyuz9f9yQhHvVn2Ad6+yO9fHXac5piudeYrInxwQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-exponentiation-operator": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", @@ -1274,6 +1374,22 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.3.tgz", + "integrity": "sha512-5Ti1cHLTDnt3vX61P9KZ5IG09bFXp4cDVFJIAeCZuxu9OXXJJZp5iP0n/rzM2+iAutJY+KWEyyHcRaHlpQ/P5g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-flow-strip-types": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz", @@ -1322,6 +1438,22 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.3.tgz", + "integrity": "sha512-IuvOMdeOOY2X4hRNAT6kwbePtK21BUyrAEgLKviL8pL6AEEVUVcqtRdN/HJXBLGIbt9T3ETmXRnFedRRmQNTYw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-literals": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", @@ -1337,6 +1469,22 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.3.tgz", + "integrity": "sha512-CbayIfOw4av2v/HYZEsH+Klks3NC2/MFIR3QR8gnpGNNPEaq2fdlVCRYG/paKs7/5hvBLQ+H70pGWOHtlNEWNA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-member-expression-literals": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", @@ -1386,14 +1534,14 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", - "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.3.tgz", + "integrity": "sha512-V21W3bKLxO3ZjcBJZ8biSvo5gQ85uIXW2vJfh7JSWf/4SLUSr1tOoHX3ruN4+Oqa2m+BKfsxTR1I+PsvkIWvNw==", "dev": true, "dependencies": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-module-transforms": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5", "@babel/helper-validator-identifier": "^7.19.1" }, "engines": { @@ -1420,13 +1568,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.3.tgz", + "integrity": "sha512-c6HrD/LpUdNNJsISQZpds3TXvfYIAbo+efE9aWmY/PmSRD0agrJ9cPMt4BmArwUQ7ZymEWTFjTyp+yReLJZh0Q==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-create-regexp-features-plugin": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -1436,12 +1584,63 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.3.tgz", + "integrity": "sha512-5RuJdSo89wKdkRTqtM9RVVJzHum9c2s0te9rB7vZC1zKKxcioWIy+xcu4OoIAjyFZhb/bp5KkunuLin1q7Ct+w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.3.tgz", + "integrity": "sha512-CpaoNp16nX7ROtLONNuCyenYdY/l7ZsR6aoVa7rW7nMWisoNoQNIH5Iay/4LDyRjKMuElMqXiBoOQCDLTMGZiw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.3.tgz", + "integrity": "sha512-+AF88fPDJrnseMh5vD9+SH6wq4ZMvpiTMHh58uLs+giMEyASFVhcT3NkoyO+NebFCNnpHJEq5AXO2txV4AGPDQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.3.tgz", + "integrity": "sha512-38bzTsqMMCI46/TQnJwPPpy33EjLCc1Gsm2hRTF6zTMWnKsN61vdrpuzIEGQyKEhDSYDKyZHrrd5FMj4gcUHhw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.3", + "@babel/helper-compilation-targets": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.22.3" }, "engines": { "node": ">=6.9.0" @@ -1466,13 +1665,80 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", - "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.3.tgz", + "integrity": "sha512-bnDFWXFzWY0BsOyqaoSXvMQ2F35zutQipugog/rqotL2S4ciFOKlRYUu9djt4iq09oh2/34hqfRR2k1dIvuu4g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.3.tgz", + "integrity": "sha512-63v3/UFFxhPKT8j8u1jTTGVyITxl7/7AfOqK8C5gz1rHURPUGe3y5mvIf68eYKGoBNahtJnTxBKug4BQOnzeJg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.3.tgz", + "integrity": "sha512-x7QHQJHPuD9VmfpzboyGJ5aHEr9r7DsAsdxdhJiTB3J3j8dyl+NFZ+rX5Q2RWFDCs61c06qBfS4ys2QYn8UkMw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.3.tgz", + "integrity": "sha512-fC7jtjBPFqhqpPAE+O4LKwnLq7gGkD3ZmC2E3i4qWH34mH3gOg2Xrq5YMHUq6DM30xhqM1DNftiRaSqVjEG+ug==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.3.tgz", + "integrity": "sha512-C7MMl4qWLpgVCbXfj3UW8rR1xeCnisQ0cU7YJHV//8oNBS0aCIVg1vFnZXxOckHhEpQyqNNkWmvSEWnMLlc+Vw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -1497,16 +1763,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.5.tgz", - "integrity": "sha512-ELdlq61FpoEkHO6gFRpfj0kUgSwQTGoaEU8eMRoS8Dv3v6e7BjEAj5WMtIBRdHUeAioMhKP5HyxNzNnP+heKbA==", + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.3.tgz", + "integrity": "sha512-JEulRWG2f04a7L8VWaOngWiK6p+JOSpB+DAtwfJgOaej1qdbNxqtK7MwTBHjUA10NeFcszlFNqCdbRcirzh2uQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-module-imports": "^7.21.4", "@babel/helper-plugin-utils": "^7.21.5", "@babel/plugin-syntax-jsx": "^7.21.4", - "@babel/types": "^7.21.5" + "@babel/types": "^7.22.3" }, "engines": { "node": ">=6.9.0" @@ -1623,15 +1889,15 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz", - "integrity": "sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==", + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.3.tgz", + "integrity": "sha512-pyjnCIniO5PNaEuGxT28h0HbMru3qCVrMqVgVOz/krComdIrY9W6FCLBq9NWHY8HDGaUlan+UhmZElDENIfCcw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-typescript": "^7.20.0" + "@babel/helper-create-class-features-plugin": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-typescript": "^7.21.4" }, "engines": { "node": ">=6.9.0" @@ -1655,6 +1921,22 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.3.tgz", + "integrity": "sha512-5ScJ+OmdX+O6HRuMGW4kv7RL9vIKdtdAj9wuWUKy1wbHY3jaM/UlyIiC1G7J6UJiiyMukjjK0QwL3P0vBd0yYg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-unicode-regex": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", @@ -1671,39 +1953,42 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.5.tgz", - "integrity": "sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==", + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.3.tgz", + "integrity": "sha512-hNufLdkF8vqywRp+P55j4FHXqAX2LRUccoZHH7AFn1pq5ZOO2ISKW9w13bFZVjBoTqeve2HOgoJCcaziJVhGNw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.21.5", - "@babel/helper-compilation-targets": "^7.21.5", + "@babel/helper-create-regexp-features-plugin": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.22.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.4.tgz", + "integrity": "sha512-c3lHOjbwBv0TkhYCr+XCR6wKcSZ1QbQTVdSkZUaVpLv8CVWotBMArWUi5UAJrcrQaEnleVkkvaV8F/pmc/STZQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.3", + "@babel/helper-compilation-targets": "^7.22.1", "@babel/helper-plugin-utils": "^7.21.5", "@babel/helper-validator-option": "^7.21.0", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", - "@babel/plugin-proposal-async-generator-functions": "^7.20.7", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.21.0", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.21.0", - "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.3", "@babel/plugin-proposal-private-property-in-object": "^7.21.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-import-attributes": "^7.22.3", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -1714,28 +1999,43 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.21.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.3", "@babel/plugin-transform-async-to-generator": "^7.20.7", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", "@babel/plugin-transform-block-scoping": "^7.21.0", + "@babel/plugin-transform-class-properties": "^7.22.3", + "@babel/plugin-transform-class-static-block": "^7.22.3", "@babel/plugin-transform-classes": "^7.21.0", "@babel/plugin-transform-computed-properties": "^7.21.5", "@babel/plugin-transform-destructuring": "^7.21.3", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-dynamic-import": "^7.22.1", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-export-namespace-from": "^7.22.3", "@babel/plugin-transform-for-of": "^7.21.5", "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-json-strings": "^7.22.3", "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.3", "@babel/plugin-transform-member-expression-literals": "^7.18.6", "@babel/plugin-transform-modules-amd": "^7.20.11", "@babel/plugin-transform-modules-commonjs": "^7.21.5", - "@babel/plugin-transform-modules-systemjs": "^7.20.11", + "@babel/plugin-transform-modules-systemjs": "^7.22.3", "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", - "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.3", + "@babel/plugin-transform-new-target": "^7.22.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.3", + "@babel/plugin-transform-numeric-separator": "^7.22.3", + "@babel/plugin-transform-object-rest-spread": "^7.22.3", "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.21.3", + "@babel/plugin-transform-optional-catch-binding": "^7.22.3", + "@babel/plugin-transform-optional-chaining": "^7.22.3", + "@babel/plugin-transform-parameters": "^7.22.3", + "@babel/plugin-transform-private-methods": "^7.22.3", + "@babel/plugin-transform-private-property-in-object": "^7.22.3", "@babel/plugin-transform-property-literals": "^7.18.6", "@babel/plugin-transform-regenerator": "^7.21.5", "@babel/plugin-transform-reserved-words": "^7.18.6", @@ -1745,13 +2045,15 @@ "@babel/plugin-transform-template-literals": "^7.18.9", "@babel/plugin-transform-typeof-symbol": "^7.18.9", "@babel/plugin-transform-unicode-escapes": "^7.21.5", + "@babel/plugin-transform-unicode-property-regex": "^7.22.3", "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.3", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.21.5", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", + "@babel/types": "^7.22.4", + "babel-plugin-polyfill-corejs2": "^0.4.3", + "babel-plugin-polyfill-corejs3": "^0.8.1", + "babel-plugin-polyfill-regenerator": "^0.5.0", + "core-js-compat": "^3.30.2", "semver": "^6.3.0" }, "engines": { @@ -1948,9 +2250,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", - "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.3.tgz", + "integrity": "sha512-XsDuspWKLUsxwCp6r7EhsExHtYfbe5oAGQ19kqngTdCPUoPQzOPdUbD/pB9PJiwb2ptYKQDjSJT3R6dC+EPqfQ==", "dev": true, "dependencies": { "regenerator-runtime": "^0.13.11" @@ -1960,33 +2262,33 @@ } }, "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.21.9.tgz", + "integrity": "sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.21.4", + "@babel/parser": "^7.21.9", + "@babel/types": "^7.21.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", - "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", + "version": "7.22.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.4.tgz", + "integrity": "sha512-Tn1pDsjIcI+JcLKq1AVlZEr4226gpuAQTsLMorsYg9tuS/kG7nuwwJ4AB8jfQuEgb/COBwR/DqJxmoiYFu5/rQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.5", - "@babel/helper-environment-visitor": "^7.21.5", + "@babel/generator": "^7.22.3", + "@babel/helper-environment-visitor": "^7.22.1", "@babel/helper-function-name": "^7.21.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.5", - "@babel/types": "^7.21.5", + "@babel/parser": "^7.22.4", + "@babel/types": "^7.22.4", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1995,9 +2297,9 @@ } }, "node_modules/@babel/types": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", - "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", + "version": "7.22.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.4.tgz", + "integrity": "sha512-Tx9x3UBHTTsMSW85WB2kphxYQVvrZ/t1FxD88IpSgIjiUJlCm9z+xWIDwyo1vffTwSqteqyznB8ZE9vYYk16zA==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.21.5", @@ -2059,9 +2361,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.18.tgz", - "integrity": "sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", "cpu": [ "arm" ], @@ -2075,9 +2377,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.18.tgz", - "integrity": "sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", "cpu": [ "arm64" ], @@ -2091,9 +2393,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.18.tgz", - "integrity": "sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", "cpu": [ "x64" ], @@ -2107,9 +2409,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.18.tgz", - "integrity": "sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", "cpu": [ "arm64" ], @@ -2123,9 +2425,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.18.tgz", - "integrity": "sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", "cpu": [ "x64" ], @@ -2139,9 +2441,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.18.tgz", - "integrity": "sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", "cpu": [ "arm64" ], @@ -2155,9 +2457,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.18.tgz", - "integrity": "sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", "cpu": [ "x64" ], @@ -2171,9 +2473,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.18.tgz", - "integrity": "sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", "cpu": [ "arm" ], @@ -2187,9 +2489,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.18.tgz", - "integrity": "sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", "cpu": [ "arm64" ], @@ -2203,9 +2505,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.18.tgz", - "integrity": "sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", "cpu": [ "ia32" ], @@ -2219,9 +2521,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.18.tgz", - "integrity": "sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", "cpu": [ "loong64" ], @@ -2235,9 +2537,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.18.tgz", - "integrity": "sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", "cpu": [ "mips64el" ], @@ -2251,9 +2553,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.18.tgz", - "integrity": "sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", "cpu": [ "ppc64" ], @@ -2267,9 +2569,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.18.tgz", - "integrity": "sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", "cpu": [ "riscv64" ], @@ -2283,9 +2585,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.18.tgz", - "integrity": "sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", "cpu": [ "s390x" ], @@ -2299,9 +2601,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.18.tgz", - "integrity": "sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", "cpu": [ "x64" ], @@ -2315,9 +2617,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.18.tgz", - "integrity": "sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", "cpu": [ "x64" ], @@ -2331,9 +2633,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.18.tgz", - "integrity": "sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", "cpu": [ "x64" ], @@ -2347,9 +2649,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.18.tgz", - "integrity": "sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", "cpu": [ "x64" ], @@ -2363,9 +2665,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.18.tgz", - "integrity": "sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", "cpu": [ "arm64" ], @@ -2379,9 +2681,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.18.tgz", - "integrity": "sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", "cpu": [ "ia32" ], @@ -2395,9 +2697,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.18.tgz", - "integrity": "sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", "cpu": [ "x64" ], @@ -2426,23 +2728,23 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", - "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", - "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", + "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.1", + "espree": "^9.5.2", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -2503,9 +2805,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", - "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", + "version": "8.41.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.41.0.tgz", + "integrity": "sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2883,9 +3185,9 @@ "dev": true }, "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.0.tgz", - "integrity": "sha512-92uQ5ARf7UXYrzaFcAX3T2rTvaS9Z1//ukV+DqjACM4c8s0ZBQd7ayJU5Dh2AFLD/Ayuyz4uMmxQec8q3U4Ong==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz", + "integrity": "sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ==" }, "node_modules/@lit/reactive-element": { "version": "1.6.1", @@ -2960,9 +3262,9 @@ } }, "node_modules/@ndelangen/get-tarball": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@ndelangen/get-tarball/-/get-tarball-3.0.7.tgz", - "integrity": "sha512-NqGfTZIZpRFef1GoVaShSSRwDC3vde3ThtTeqFdcYd6ipKqnfEVhjK2hUeHjCQUcptyZr2TONqcloFXM+5QBrQ==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@ndelangen/get-tarball/-/get-tarball-3.0.9.tgz", + "integrity": "sha512-9JKTEik4vq+yGosHYhZ1tiH/3WpUS0Nh0kej4Agndhox8pAdWhEx5knFVRcb/ya9knCRCs1rPxNrSXTDdfVqpA==", "dev": true, "dependencies": { "gunzip-maybe": "^1.4.2", @@ -3034,9 +3336,9 @@ "dev": true }, "node_modules/@open-wc/scoped-elements": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.1.4.tgz", - "integrity": "sha512-KX/bOkcDG9kbBDSmgsbpp40ZjEWxpWNrNRZZVSO0KqBygMfvfiEeVfP16uJp9YyWHi/PVZ/C0aUEgf8Pg1Eq7A==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.1.5.tgz", + "integrity": "sha512-39v61EDXiFp+pBXdYmRCNIAimJU6MxaNwplW+5IqGU+z33hsSp5CVp2mH5lJVbwXGB7hIb5wDiJa+L5pOVypqw==", "dev": true, "dependencies": { "@lit/reactive-element": "^1.0.0", @@ -3094,17 +3396,17 @@ } }, "node_modules/@pkgr/utils": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.3.1.tgz", - "integrity": "sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.1.tgz", + "integrity": "sha512-JOqwkgFEyi+OROIyq7l4Jy28h/WwhDnG/cPkXG2Z1iFbubB6jsHW1NDvmyOzTBxHr3yg68YGirmh1JUgMqa+9w==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", + "fast-glob": "^3.2.12", "is-glob": "^4.0.3", - "open": "^8.4.0", + "open": "^9.1.0", "picocolors": "^1.0.0", - "tiny-glob": "^0.2.9", - "tslib": "^2.4.0" + "tslib": "^2.5.0" }, "engines": { "node": "^12.20.0 || ^14.18.0 || >=16.0.0" @@ -3113,14 +3415,44 @@ "url": "https://opencollective.com/unts" } }, + "node_modules/@pkgr/utils/node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@pkgr/utils/node_modules/open": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", + "dev": true, + "dependencies": { + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@playwright/test": { - "version": "1.32.3", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.32.3.tgz", - "integrity": "sha512-BvWNvK0RfBriindxhLVabi8BRe3X0J9EVjKlcmhxjg4giWBD/xleLcg2dz7Tx0agu28rczjNIPQWznwzDwVsZQ==", + "version": "1.34.3", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.34.3.tgz", + "integrity": "sha512-zPLef6w9P6T/iT6XDYG3mvGOqOyb6eHaV9XtkunYs0+OzxBtrPAAaHotc0X+PJ00WPPnLfFBTl7mf45Mn8DBmw==", "dev": true, "dependencies": { "@types/node": "*", - "playwright-core": "1.32.3" + "playwright-core": "1.34.3" }, "bin": { "playwright": "cli.js" @@ -3162,6 +3494,49 @@ } } }, + "node_modules/@puppeteer/browsers/node_modules/yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "25.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.0.tgz", + "integrity": "sha512-hoho2Kay9TZrLu0bnDsTTCaj4Npa+THk9snajP/XDNb9a9mmjTjh52EQM9sKl3HD1LsnihX7js+eA2sd2uKAhw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "glob": "^8.0.3", + "is-reference": "1.2.1", + "magic-string": "^0.27.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@rollup/plugin-json": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.0.0.tgz", @@ -3236,21 +3611,21 @@ "dev": true }, "node_modules/@storybook/addon-a11y": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-7.0.11.tgz", - "integrity": "sha512-t98SC29zOv63NOHYSpi2ZhmLazfiQ8/uKy+rB9Zg8Xhy+6gpXOQffk+V1gke2baf3RoxQEOAXAotm85D1dD/6Q==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-7.0.18.tgz", + "integrity": "sha512-kftOzFBpg3goWbLBXDLLsJslfrKYbHs1xtFEH5/4J9NFNE8vZKbIBDQa/R3ezWheL+l2y+5qOlWoLl5z96zlWA==", "dev": true, "dependencies": { - "@storybook/addon-highlight": "7.0.11", - "@storybook/channels": "7.0.11", - "@storybook/client-logger": "7.0.11", - "@storybook/components": "7.0.11", - "@storybook/core-events": "7.0.11", + "@storybook/addon-highlight": "7.0.18", + "@storybook/channels": "7.0.18", + "@storybook/client-logger": "7.0.18", + "@storybook/components": "7.0.18", + "@storybook/core-events": "7.0.18", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/theming": "7.0.11", - "@storybook/types": "7.0.11", + "@storybook/manager-api": "7.0.18", + "@storybook/preview-api": "7.0.18", + "@storybook/theming": "7.0.18", + "@storybook/types": "7.0.18", "axe-core": "^4.2.0", "lodash": "^4.17.21", "react-resize-detector": "^7.1.2" @@ -3273,19 +3648,19 @@ } }, "node_modules/@storybook/addon-actions": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.0.11.tgz", - "integrity": "sha512-kh5z6L5r5BOWVt0+xZgdMZjDJQkJIVcAOxahRS9MwWkw0NDpXjcPS7HsVXZ1DlnnzhfjLFr0BXadVdcc2FLj7A==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.0.18.tgz", + "integrity": "sha512-3M5AU/ZD79YP88vKlFezIJbIoG/II7wCixUBTmwiC3BeQZDuVsqPNl8eiP6MGT70xwyx7a993lSM5f5N5W93vg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.11", - "@storybook/components": "7.0.11", - "@storybook/core-events": "7.0.11", + "@storybook/client-logger": "7.0.18", + "@storybook/components": "7.0.18", + "@storybook/core-events": "7.0.18", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/theming": "7.0.11", - "@storybook/types": "7.0.11", + "@storybook/manager-api": "7.0.18", + "@storybook/preview-api": "7.0.18", + "@storybook/theming": "7.0.18", + "@storybook/types": "7.0.18", "dequal": "^2.0.2", "lodash": "^4.17.21", "polished": "^4.2.2", @@ -3313,19 +3688,19 @@ } }, "node_modules/@storybook/addon-backgrounds": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.0.11.tgz", - "integrity": "sha512-kj0LQ1F9Z/6lWQ9d+crgWQKl8fgBXuTo/X3M36GTOf8kEEMGtb1Y71EjOfszwvvgK5GPmvFhOVYQL/D2/VbrHw==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.0.18.tgz", + "integrity": "sha512-cPQy1Ot7Urf4hQz+xnF1YKrqSyR0DRwozBmF+sGzceACWmueFl0CifYZC8RSmaiIyVh0RyWPxZ9F/eT67NX2lA==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.11", - "@storybook/components": "7.0.11", - "@storybook/core-events": "7.0.11", + "@storybook/client-logger": "7.0.18", + "@storybook/components": "7.0.18", + "@storybook/core-events": "7.0.18", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/theming": "7.0.11", - "@storybook/types": "7.0.11", + "@storybook/manager-api": "7.0.18", + "@storybook/preview-api": "7.0.18", + "@storybook/theming": "7.0.18", + "@storybook/types": "7.0.18", "memoizerific": "^1.11.3", "ts-dedent": "^2.0.0" }, @@ -3347,20 +3722,20 @@ } }, "node_modules/@storybook/addon-controls": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.0.11.tgz", - "integrity": "sha512-ZmzSEBQLEW6vhvemUFFmMD4rA/fYTe8LJ+iahx1RnE7cV4CuyRJ23wlxL21WYHpkhbYdZMlJDTlvDS8GHthIQw==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.0.18.tgz", + "integrity": "sha512-mD6DE52CCMKugXk2Uab0QxwgfE76kFJroxASmnePnXUNWfP9EZJpJXYE3cyyBbmZuxa46VHDGGEGXQWRl4+Eog==", "dev": true, "dependencies": { - "@storybook/blocks": "7.0.11", - "@storybook/client-logger": "7.0.11", - "@storybook/components": "7.0.11", - "@storybook/core-common": "7.0.11", - "@storybook/manager-api": "7.0.11", - "@storybook/node-logger": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/theming": "7.0.11", - "@storybook/types": "7.0.11", + "@storybook/blocks": "7.0.18", + "@storybook/client-logger": "7.0.18", + "@storybook/components": "7.0.18", + "@storybook/core-common": "7.0.18", + "@storybook/manager-api": "7.0.18", + "@storybook/node-logger": "7.0.18", + "@storybook/preview-api": "7.0.18", + "@storybook/theming": "7.0.18", + "@storybook/types": "7.0.18", "lodash": "^4.17.21", "ts-dedent": "^2.0.0" }, @@ -3382,28 +3757,28 @@ } }, "node_modules/@storybook/addon-docs": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.0.11.tgz", - "integrity": "sha512-WmNEQSiFJrjf47VtQg8uOb5q8M5V4MaolhV9zsN6GSTViduY2P7ti+Fk7ZE6QyO1Yy9Vm4WJLPz/vLcfW73IHw==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.0.18.tgz", + "integrity": "sha512-oq+ZN5809gIRdTZQIpeK1F8BJtL1/VWo9rWvl6ymVOL/Xzdgd7AOfKf9Y99X35RcxAGysRIHLGJjF4bgLoY1Aw==", "dev": true, "dependencies": { "@babel/core": "^7.20.2", "@babel/plugin-transform-react-jsx": "^7.19.0", "@jest/transform": "^29.3.1", "@mdx-js/react": "^2.1.5", - "@storybook/blocks": "7.0.11", - "@storybook/client-logger": "7.0.11", - "@storybook/components": "7.0.11", - "@storybook/csf-plugin": "7.0.11", - "@storybook/csf-tools": "7.0.11", + "@storybook/blocks": "7.0.18", + "@storybook/client-logger": "7.0.18", + "@storybook/components": "7.0.18", + "@storybook/csf-plugin": "7.0.18", + "@storybook/csf-tools": "7.0.18", "@storybook/global": "^5.0.0", "@storybook/mdx2-csf": "^1.0.0", - "@storybook/node-logger": "7.0.11", - "@storybook/postinstall": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/react-dom-shim": "7.0.11", - "@storybook/theming": "7.0.11", - "@storybook/types": "7.0.11", + "@storybook/node-logger": "7.0.18", + "@storybook/postinstall": "7.0.18", + "@storybook/preview-api": "7.0.18", + "@storybook/react-dom-shim": "7.0.18", + "@storybook/theming": "7.0.18", + "@storybook/types": "7.0.18", "fs-extra": "^11.1.0", "remark-external-links": "^8.0.0", "remark-slug": "^6.0.0", @@ -3419,24 +3794,24 @@ } }, "node_modules/@storybook/addon-essentials": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.0.11.tgz", - "integrity": "sha512-46nIoGJXC0clbjgE4Y0xUW9eT1h4uvDXugb2Z79m5L+KvmRk+J0/rqiRpHz5Gou9iFLxAFCRT9Y3BUP2zOXTZQ==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.0.18.tgz", + "integrity": "sha512-0XXu7xhtRefA1WxxorKk6BWeeB+7gQ+r2+bG1zQEfBgDYPR06YbPw4H79IZ8JiR97aJRsZBK5UUhOZMDrc5zcQ==", "dev": true, "dependencies": { - "@storybook/addon-actions": "7.0.11", - "@storybook/addon-backgrounds": "7.0.11", - "@storybook/addon-controls": "7.0.11", - "@storybook/addon-docs": "7.0.11", - "@storybook/addon-highlight": "7.0.11", - "@storybook/addon-measure": "7.0.11", - "@storybook/addon-outline": "7.0.11", - "@storybook/addon-toolbars": "7.0.11", - "@storybook/addon-viewport": "7.0.11", - "@storybook/core-common": "7.0.11", - "@storybook/manager-api": "7.0.11", - "@storybook/node-logger": "7.0.11", - "@storybook/preview-api": "7.0.11", + "@storybook/addon-actions": "7.0.18", + "@storybook/addon-backgrounds": "7.0.18", + "@storybook/addon-controls": "7.0.18", + "@storybook/addon-docs": "7.0.18", + "@storybook/addon-highlight": "7.0.18", + "@storybook/addon-measure": "7.0.18", + "@storybook/addon-outline": "7.0.18", + "@storybook/addon-toolbars": "7.0.18", + "@storybook/addon-viewport": "7.0.18", + "@storybook/core-common": "7.0.18", + "@storybook/manager-api": "7.0.18", + "@storybook/node-logger": "7.0.18", + "@storybook/preview-api": "7.0.18", "ts-dedent": "^2.0.0" }, "funding": { @@ -3449,14 +3824,14 @@ } }, "node_modules/@storybook/addon-highlight": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.0.11.tgz", - "integrity": "sha512-5nElNxnWAO9Oqr4J8A1vJRhe1zbr9n2hOKMWR4UAqF2CAel5qwPFT6ierGW/k/ymui7pz9wxdxawTr8yTpyQWg==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.0.18.tgz", + "integrity": "sha512-a3nfUhbu6whoDclIZSV/fzLj132tNNjV05ENTpuN3JpLoMd3+obDUWzeQUs9TetK4RBRN3ewM7sIMEI4oBpgmg==", "dev": true, "dependencies": { - "@storybook/core-events": "7.0.11", + "@storybook/core-events": "7.0.18", "@storybook/global": "^5.0.0", - "@storybook/preview-api": "7.0.11" + "@storybook/preview-api": "7.0.18" }, "funding": { "type": "opencollective", @@ -3464,19 +3839,19 @@ } }, "node_modules/@storybook/addon-links": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.0.11.tgz", - "integrity": "sha512-6UpRCs3lIYN0V+0kP+VHChc836sJN/n35OVnfZNd/lRBzewBmuOW6s7Hy2iNZtYg1vWlXR2/wOFzljkkjiWtSQ==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.0.18.tgz", + "integrity": "sha512-xEwflt7bp9FRoZVeqPGb6d3s2Gh+/jaSmnyIxMxrBy2oovKIqu9ptolqz1AhjFOXfaLs9c2RAmJUuFZJtETLxA==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.11", - "@storybook/core-events": "7.0.11", + "@storybook/client-logger": "7.0.18", + "@storybook/core-events": "7.0.18", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/router": "7.0.11", - "@storybook/types": "7.0.11", + "@storybook/manager-api": "7.0.18", + "@storybook/preview-api": "7.0.18", + "@storybook/router": "7.0.18", + "@storybook/types": "7.0.18", "prop-types": "^15.7.2", "ts-dedent": "^2.0.0" }, @@ -3498,18 +3873,18 @@ } }, "node_modules/@storybook/addon-measure": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.0.11.tgz", - "integrity": "sha512-u6yNwgjXr6AcJibKi9NqBn75WsYBtHrgmGX3/ZIPQ20dYIiRHXRKu2lcTfSeA2drz0b1SDPN4gqMlOKm1ly6mw==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.0.18.tgz", + "integrity": "sha512-iu8vQpGOA+CFYbWR6QNshj20o33OQ/xcTbp5P4U6xGYDUliUBbwJ2KLxcKlmIeBanBrBdz0jPFtHwY4dM1ZdKw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.11", - "@storybook/components": "7.0.11", - "@storybook/core-events": "7.0.11", + "@storybook/client-logger": "7.0.18", + "@storybook/components": "7.0.18", + "@storybook/core-events": "7.0.18", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/types": "7.0.11" + "@storybook/manager-api": "7.0.18", + "@storybook/preview-api": "7.0.18", + "@storybook/types": "7.0.18" }, "funding": { "type": "opencollective", @@ -3529,18 +3904,18 @@ } }, "node_modules/@storybook/addon-outline": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.0.11.tgz", - "integrity": "sha512-Ftld7dkVHPKo1CbBwJ7X4HNQUAqLhdV/mOB+Tswfvb+niSkFspAaK4ChQoYVsDaLwF7Kmn6jh8ACRTaDvIbN8g==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.0.18.tgz", + "integrity": "sha512-3vNWO7ezo6GIvidbz8JxFrKtfVEoTQN7tnZx+wpqmCF8ihBORewkpeMUnvgb9ZKjD0X7gE8eQvvG8KKWcyHDBQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.11", - "@storybook/components": "7.0.11", - "@storybook/core-events": "7.0.11", + "@storybook/client-logger": "7.0.18", + "@storybook/components": "7.0.18", + "@storybook/core-events": "7.0.18", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/types": "7.0.11", + "@storybook/manager-api": "7.0.18", + "@storybook/preview-api": "7.0.18", + "@storybook/types": "7.0.18", "ts-dedent": "^2.0.0" }, "funding": { @@ -3561,16 +3936,16 @@ } }, "node_modules/@storybook/addon-toolbars": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.0.11.tgz", - "integrity": "sha512-rPd7Ph7fEvWdDWBLQ6GUOEsw+W3FIyqkXl8UEckypE+qILNwZj4C9g8GhaLK65N8aEl3lIO/myx6mUjvySiODA==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.0.18.tgz", + "integrity": "sha512-mwhq962o0WloHAeFjJ6BXO2nzdTo5KE2fqawPpqcB2lwXP6tvaA2tDWwgntjPCHejqWTS+ZTdO4/1xrMhWYt/g==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.11", - "@storybook/components": "7.0.11", - "@storybook/manager-api": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/theming": "7.0.11" + "@storybook/client-logger": "7.0.18", + "@storybook/components": "7.0.18", + "@storybook/manager-api": "7.0.18", + "@storybook/preview-api": "7.0.18", + "@storybook/theming": "7.0.18" }, "funding": { "type": "opencollective", @@ -3590,18 +3965,18 @@ } }, "node_modules/@storybook/addon-viewport": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.0.11.tgz", - "integrity": "sha512-O2Wu/jWSFDvvjP2ERc3wXbRuKvfM3Ttj8MJQZ0FphPwIxe1zSSAA5jk3mhXmEyIJfAe+upyAhV9EqIs8+L6kLg==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.0.18.tgz", + "integrity": "sha512-aVVLBsWXfGDX3z1pc93LWWdG5RUoJbGL/JJPMZGwXdwWpP8V3OBl8D8bgPymyg+MgwhSRZZDDGgnJaVGGwZ6bQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.11", - "@storybook/components": "7.0.11", - "@storybook/core-events": "7.0.11", + "@storybook/client-logger": "7.0.18", + "@storybook/components": "7.0.18", + "@storybook/core-events": "7.0.18", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/theming": "7.0.11", + "@storybook/manager-api": "7.0.18", + "@storybook/preview-api": "7.0.18", + "@storybook/theming": "7.0.18", "memoizerific": "^1.11.3", "prop-types": "^15.7.2" }, @@ -3623,22 +3998,22 @@ } }, "node_modules/@storybook/blocks": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.0.11.tgz", - "integrity": "sha512-WfqRnKLk3Ke9Pr9G7BrtGJZKuOj32WxbQUbPlCi9oVysYQm69hgcO3+MTft96ur62p8e7gcoIFKrhFi0x4rXiw==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.0.18.tgz", + "integrity": "sha512-HLsuzmUdVIeFXEP5v5vyjnEePRNYjzltwTjCKQhHAlt8/aQZmREiIMOfoMoAa1Rd+On8Ib2DUd2cN10VS18H8A==", "dev": true, "dependencies": { - "@storybook/channels": "7.0.11", - "@storybook/client-logger": "7.0.11", - "@storybook/components": "7.0.11", - "@storybook/core-events": "7.0.11", + "@storybook/channels": "7.0.18", + "@storybook/client-logger": "7.0.18", + "@storybook/components": "7.0.18", + "@storybook/core-events": "7.0.18", "@storybook/csf": "^0.1.0", - "@storybook/docs-tools": "7.0.11", + "@storybook/docs-tools": "7.0.18", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/theming": "7.0.11", - "@storybook/types": "7.0.11", + "@storybook/manager-api": "7.0.18", + "@storybook/preview-api": "7.0.18", + "@storybook/theming": "7.0.18", + "@storybook/types": "7.0.18", "@types/lodash": "^4.14.167", "color-convert": "^2.0.1", "dequal": "^2.0.2", @@ -3661,15 +4036,15 @@ } }, "node_modules/@storybook/builder-manager": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.0.11.tgz", - "integrity": "sha512-ifSZzdC0CItMRPkEYxEziHpTfZO8JWVBIhaOrhT1TDvSameCFXa91yv9djMu9fBnJkfLsj9lyV9OjEyy7NN3uQ==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.0.18.tgz", + "integrity": "sha512-yFMm3xuYkyg2hS1uz3CkvyvLzK7qJsDPVEh7lew8GiJK1Xx8cc+FnAOlRTjWNxvhfiT296wAMCTPWv7LeoSgqQ==", "dev": true, "dependencies": { "@fal-works/esbuild-plugin-global-externals": "^2.1.2", - "@storybook/core-common": "7.0.11", - "@storybook/manager": "7.0.11", - "@storybook/node-logger": "7.0.11", + "@storybook/core-common": "7.0.18", + "@storybook/manager": "7.0.18", + "@storybook/node-logger": "7.0.18", "@types/ejs": "^3.1.1", "@types/find-cache-dir": "^3.2.1", "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", @@ -3689,21 +4064,21 @@ } }, "node_modules/@storybook/builder-vite": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.0.11.tgz", - "integrity": "sha512-qFT2WDJexbcxJjLD7k/whEiHbqIZ0wsHFfiGX5JyTEba4a7UTQ6a6yDCUb1KuLnyUOa056FwEag9ghw3WRowmA==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.0.18.tgz", + "integrity": "sha512-Qze6/PwUJq+z776dBoG5uinAEVZyPalZIaU/VOWpTrN8L9FQbL0+HDrZU2E/BMNW+ZfnSjF3V2USLyiutsC1Tw==", "dev": true, "dependencies": { - "@storybook/channel-postmessage": "7.0.11", - "@storybook/channel-websocket": "7.0.11", - "@storybook/client-logger": "7.0.11", - "@storybook/core-common": "7.0.11", - "@storybook/csf-plugin": "7.0.11", + "@storybook/channel-postmessage": "7.0.18", + "@storybook/channel-websocket": "7.0.18", + "@storybook/client-logger": "7.0.18", + "@storybook/core-common": "7.0.18", + "@storybook/csf-plugin": "7.0.18", "@storybook/mdx2-csf": "^1.0.0", - "@storybook/node-logger": "7.0.11", - "@storybook/preview": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/types": "7.0.11", + "@storybook/node-logger": "7.0.18", + "@storybook/preview": "7.0.18", + "@storybook/preview-api": "7.0.18", + "@storybook/types": "7.0.18", "browser-assert": "^1.2.1", "es-module-lexer": "^0.9.3", "express": "^4.17.3", @@ -3738,14 +4113,14 @@ } }, "node_modules/@storybook/channel-postmessage": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.11.tgz", - "integrity": "sha512-6ARow3o2thnXLO4i3+tluHAPqqSrB30U/Oxg3JqC5/2FJin3UFBOMCj04V7FPUN8jQfZpERoYgiUYE9JddT39g==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.18.tgz", + "integrity": "sha512-rpwBH5ANdPnugS6+7xG9qHSoS+aPSEnBxDKsONWFubfMTTXQuFkf/793rBbxGkoINdqh8kSdKOM2rIty6e9cmQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.0.11", - "@storybook/client-logger": "7.0.11", - "@storybook/core-events": "7.0.11", + "@storybook/channels": "7.0.18", + "@storybook/client-logger": "7.0.18", + "@storybook/core-events": "7.0.18", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.0.3" @@ -3756,13 +4131,13 @@ } }, "node_modules/@storybook/channel-websocket": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-7.0.11.tgz", - "integrity": "sha512-AeoOFDA0Rkf4Jx5PgX76tlehUYbC0AHDA63ZLVol9O/P4ch2Ju5cxsiFv0brdcnv4t2ibNZkqFdsrut9O/wacg==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-7.0.18.tgz", + "integrity": "sha512-QYsZIfe23NN4i+oIdPKHaYBehk3a/HYk57a+M2oR3Frmv8IOqc/e31uH+xx5NxnjHrTJj7Y80ZJw6EKB682S6w==", "dev": true, "dependencies": { - "@storybook/channels": "7.0.11", - "@storybook/client-logger": "7.0.11", + "@storybook/channels": "7.0.18", + "@storybook/client-logger": "7.0.18", "@storybook/global": "^5.0.0", "telejson": "^7.0.3" }, @@ -3772,9 +4147,9 @@ } }, "node_modules/@storybook/channels": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.11.tgz", - "integrity": "sha512-1cVgju7ViN7GDeUNUS5hp3GZLT2EgxgXj7zuGbCZwsF8lFsM0IWeXma8TV0UfcBiyQjP4edYRmUn0vy6CMc/WA==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.18.tgz", + "integrity": "sha512-rkA7ea0M3+dWS+71iHJdiZ5R2QuIdiVg0CgyLJHDagc1qej7pEVNhMWtppeq+X5Pwp9nkz8ZTQ7aCjTf6th0/A==", "dev": true, "funding": { "type": "opencollective", @@ -3782,21 +4157,21 @@ } }, "node_modules/@storybook/cli": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.0.11.tgz", - "integrity": "sha512-qe2jxFs7bT/9vgLo41u+OikWCUPjinL7+3Mo88Fa/kFsKMQ3AB/UuKKJ3atJEeTjfZapnB/OU9Y7V9shAcju7g==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.0.18.tgz", + "integrity": "sha512-9n4J4thiCUsGSXiRc6ZysqYUaCMCrpu0/qgC+5ngfFRuMmZgUV0y5+0fmaOhT2XjsonTTgucizO82i7+ottCVg==", "dev": true, "dependencies": { "@babel/core": "^7.20.2", "@babel/preset-env": "^7.20.2", "@ndelangen/get-tarball": "^3.0.7", - "@storybook/codemod": "7.0.11", - "@storybook/core-common": "7.0.11", - "@storybook/core-server": "7.0.11", - "@storybook/csf-tools": "7.0.11", - "@storybook/node-logger": "7.0.11", - "@storybook/telemetry": "7.0.11", - "@storybook/types": "7.0.11", + "@storybook/codemod": "7.0.18", + "@storybook/core-common": "7.0.18", + "@storybook/core-server": "7.0.18", + "@storybook/csf-tools": "7.0.18", + "@storybook/node-logger": "7.0.18", + "@storybook/telemetry": "7.0.18", + "@storybook/types": "7.0.18", "@types/semver": "^7.3.4", "boxen": "^5.1.2", "chalk": "^4.1.0", @@ -3814,6 +4189,7 @@ "globby": "^11.0.2", "jscodeshift": "^0.14.0", "leven": "^3.1.0", + "ora": "^5.4.1", "prettier": "^2.8.0", "prompts": "^2.4.0", "puppeteer-core": "^2.1.1", @@ -4056,9 +4432,9 @@ "dev": true }, "node_modules/@storybook/client-logger": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.11.tgz", - "integrity": "sha512-3p+vXogcwPI9/9PgjqhJSzJsbcJUnvVyZ4rM4sQhwbXQkMjwl2j/LjI86zuYbQe9yQpKND1Yc4HPJd24225H/Q==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.18.tgz", + "integrity": "sha512-uKgFdVedYoRDZBVrE1IBdWNHDFln1IxWEeI+7ZiNSQwREG9swHpU5Fa8DceclM/oLjJRuzG1jFzv+XZY8894+Q==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -4069,18 +4445,18 @@ } }, "node_modules/@storybook/codemod": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.0.11.tgz", - "integrity": "sha512-BRELZzEUqsZ3KOVrTEikjaYPy9M4+sU4XfV4wWeZ6N6rUdWy+Db2C+tL3lqPVYYocoYmwAxab/dLdbcGp4/Evg==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.0.18.tgz", + "integrity": "sha512-+9XFns29e8FpPLsqA8ZCQ3mNnIIKD3QnqGYkbkCVKi/G1fomvVQsIfsnkrYv5SobTbz29B4aNWxAaeSnO7/OGg==", "dev": true, "dependencies": { "@babel/core": "~7.21.0", "@babel/preset-env": "~7.21.0", "@babel/types": "~7.21.2", "@storybook/csf": "^0.1.0", - "@storybook/csf-tools": "7.0.11", - "@storybook/node-logger": "7.0.11", - "@storybook/types": "7.0.11", + "@storybook/csf-tools": "7.0.18", + "@storybook/node-logger": "7.0.18", + "@storybook/types": "7.0.18", "cross-spawn": "^7.0.3", "globby": "^11.0.2", "jscodeshift": "^0.14.0", @@ -4093,17 +4469,207 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/components": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.0.11.tgz", - "integrity": "sha512-U8JyhFppGTv7ul3gofQqIzlrAx1NEF0ckTMAwtbE6ke4AIbcoPvpWwwH5EoLR1cAVwoNjYeah/pVdG9IZSlyJA==", + "node_modules/@storybook/codemod/node_modules/@babel/core": { + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz", + "integrity": "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.11", + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-compilation-targets": "^7.21.5", + "@babel/helper-module-transforms": "^7.21.5", + "@babel/helpers": "^7.21.5", + "@babel/parser": "^7.21.8", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@storybook/codemod/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@storybook/codemod/node_modules/@babel/preset-env": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.5.tgz", + "integrity": "sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.21.5", + "@babel/helper-compilation-targets": "^7.21.5", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", + "@babel/plugin-proposal-async-generator-functions": "^7.20.7", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.21.0", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.21.0", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.21.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.21.5", + "@babel/plugin-transform-async-to-generator": "^7.20.7", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.21.0", + "@babel/plugin-transform-classes": "^7.21.0", + "@babel/plugin-transform-computed-properties": "^7.21.5", + "@babel/plugin-transform-destructuring": "^7.21.3", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.21.5", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.20.11", + "@babel/plugin-transform-modules-commonjs": "^7.21.5", + "@babel/plugin-transform-modules-systemjs": "^7.20.11", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.21.3", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.21.5", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.20.7", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.21.5", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.21.5", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@storybook/codemod/node_modules/@babel/types": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", + "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.21.5", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@storybook/codemod/node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@storybook/codemod/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@storybook/codemod/node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@storybook/components": { + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.0.18.tgz", + "integrity": "sha512-Jn1CbF9UAKt8BVaZtuhmthpcZ02VMaCFXR0ISfDXCpiMKnylmpP0+WfXcoKLzz6yS+EW8EW5S9+Qq8xgQY8H7A==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "7.0.18", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/theming": "7.0.11", - "@storybook/types": "7.0.11", + "@storybook/theming": "7.0.18", + "@storybook/types": "7.0.18", "memoizerific": "^1.11.3", "use-resize-observer": "^9.1.0", "util-deprecate": "^1.0.2" @@ -4118,13 +4684,13 @@ } }, "node_modules/@storybook/core-client": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.0.11.tgz", - "integrity": "sha512-ALm4hpGa9cnhKAc6TbRPRV32cwH0I2F6vUYduVrDd/yq8a/o2rJQwvNOr7dJiakTWI/3IACeSlQMuStYqS8r+w==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.0.18.tgz", + "integrity": "sha512-ueExRZx6fd9LRssgdhDJ0bL4Ir2RrbXzJz/kjIT2KgYY3l7jkhe0dpT3bOgGKjQt0f7XMFU24t/r7aDLGMB+2Q==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.11", - "@storybook/preview-api": "7.0.11" + "@storybook/client-logger": "7.0.18", + "@storybook/preview-api": "7.0.18" }, "funding": { "type": "opencollective", @@ -4132,13 +4698,13 @@ } }, "node_modules/@storybook/core-common": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.0.11.tgz", - "integrity": "sha512-orVhH92V9lwtwu3Cv78ys26vrRZXsKYGtTGdWPv/K3G0ihIKY6JgV2wJOGNH+urY2pmno1ALOkv1FvtwkKIxsA==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.0.18.tgz", + "integrity": "sha512-HZAB1NIK/Yv0x9poyzqYcue2tx39+MAF1mbHgGy+JJZRerO2fRShgo8f8VPH9ChbFCoJ7isL5wNhgGdg9kp2kA==", "dev": true, "dependencies": { - "@storybook/node-logger": "7.0.11", - "@storybook/types": "7.0.11", + "@storybook/node-logger": "7.0.18", + "@storybook/types": "7.0.18", "@types/node": "^16.0.0", "@types/pretty-hrtime": "^1.0.0", "chalk": "^4.1.0", @@ -4163,9 +4729,9 @@ } }, "node_modules/@storybook/core-common/node_modules/@types/node": { - "version": "16.18.30", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.30.tgz", - "integrity": "sha512-Kmp/wBZk19Dn7uRiol8kF8agnf8m0+TU9qIwyfPmXglVxMlmiIz0VQSMw5oFgwhmD2aKTlfBIO5FtsVj3y7hKQ==", + "version": "16.18.34", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.34.tgz", + "integrity": "sha512-VmVm7gXwhkUimRfBwVI1CHhwp86jDWR04B5FGebMMyxV90SlCmFujwUHrxTD4oO+SOYU86SoxvhgeRQJY7iXFg==", "dev": true }, "node_modules/@storybook/core-common/node_modules/ansi-styles": { @@ -4221,9 +4787,9 @@ } }, "node_modules/@storybook/core-events": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.11.tgz", - "integrity": "sha512-azEjQMpMx61h4o11OV8l78ab6Jxiwc5nlbqEUa1FVCupyRKFxrbK7zovmWyVL3cTllCSiJf4v3o/MadtuH4lcw==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.18.tgz", + "integrity": "sha512-7gxHBQDezdKOeq/u1LL80Bwjfcwsv7XOS3yWQElcgqp+gLaYB6OwwgtkCB2yV6a6l4nep9IdPWE8G3TxIzn9xw==", "dev": true, "funding": { "type": "opencollective", @@ -4231,25 +4797,25 @@ } }, "node_modules/@storybook/core-server": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.0.11.tgz", - "integrity": "sha512-lBt24X6MDYdVv68y77qzYwlTOAfJF4grJ8/f4VYOgU0EWxf++IyCwAnsXDrpvatIhiikCtMllnUq5U+QlEgcLg==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.0.18.tgz", + "integrity": "sha512-zGSGYSoCaSXM28OYKW7zsmpo8VU1icubXLRgdF21fbMhFN1WVS+bPA5+gSkAMf8acq5RNM8uSKskh7E2YDVEqA==", "dev": true, "dependencies": { "@aw-web-design/x-default-browser": "1.4.88", "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-manager": "7.0.11", - "@storybook/core-common": "7.0.11", - "@storybook/core-events": "7.0.11", + "@storybook/builder-manager": "7.0.18", + "@storybook/core-common": "7.0.18", + "@storybook/core-events": "7.0.18", "@storybook/csf": "^0.1.0", - "@storybook/csf-tools": "7.0.11", + "@storybook/csf-tools": "7.0.18", "@storybook/docs-mdx": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/manager": "7.0.11", - "@storybook/node-logger": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/telemetry": "7.0.11", - "@storybook/types": "7.0.11", + "@storybook/manager": "7.0.18", + "@storybook/node-logger": "7.0.18", + "@storybook/preview-api": "7.0.18", + "@storybook/telemetry": "7.0.18", + "@storybook/types": "7.0.18", "@types/detect-port": "^1.3.0", "@types/node": "^16.0.0", "@types/node-fetch": "^2.5.7", @@ -4285,9 +4851,9 @@ } }, "node_modules/@storybook/core-server/node_modules/@types/node": { - "version": "16.18.30", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.30.tgz", - "integrity": "sha512-Kmp/wBZk19Dn7uRiol8kF8agnf8m0+TU9qIwyfPmXglVxMlmiIz0VQSMw5oFgwhmD2aKTlfBIO5FtsVj3y7hKQ==", + "version": "16.18.34", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.34.tgz", + "integrity": "sha512-VmVm7gXwhkUimRfBwVI1CHhwp86jDWR04B5FGebMMyxV90SlCmFujwUHrxTD4oO+SOYU86SoxvhgeRQJY7iXFg==", "dev": true }, "node_modules/@storybook/core-server/node_modules/ansi-styles": { @@ -4385,12 +4951,12 @@ } }, "node_modules/@storybook/csf-plugin": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.0.11.tgz", - "integrity": "sha512-TL52rXruFf8kuw4y9CFfPUoF5KWYXaoxy3zStTognY+kZpDr424JJO/IHYFNp72YVZ1pygeOdZnGCKCDlw5vUQ==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.0.18.tgz", + "integrity": "sha512-Cr/Qr4/H4JIYgbbmDjQIYuqjp6nOaZga73R3KZcuClk27B90sI2ADegMYvORgbFgSkwweNQjgak6hLoOyogAhw==", "dev": true, "dependencies": { - "@storybook/csf-tools": "7.0.11", + "@storybook/csf-tools": "7.0.18", "unplugin": "^0.10.2" }, "funding": { @@ -4399,9 +4965,9 @@ } }, "node_modules/@storybook/csf-tools": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.0.11.tgz", - "integrity": "sha512-hW2Mw/EZ+sCwFByR1FCaElw3LqIh2/wRGVg/zJk36L9Y1vPkpneZU+Gdy5rds2hBCCYXYkJpcVKemky15Z1HJg==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.0.18.tgz", + "integrity": "sha512-0IJ2qdrxleTl67FUzsEvGcy96CY0OKyERE33tAsLNbvWcabdJKpLHP+rJwbsCw4z6IlS+kkmEffeFf5qRPTwkQ==", "dev": true, "dependencies": { "@babel/generator": "~7.21.1", @@ -4409,7 +4975,7 @@ "@babel/traverse": "~7.21.2", "@babel/types": "~7.21.2", "@storybook/csf": "^0.1.0", - "@storybook/types": "7.0.11", + "@storybook/types": "7.0.18", "fs-extra": "^11.1.0", "recast": "^0.23.1", "ts-dedent": "^2.0.0" @@ -4419,6 +4985,68 @@ "url": "https://opencollective.com/storybook" } }, + "node_modules/@storybook/csf-tools/node_modules/@babel/generator": { + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.9.tgz", + "integrity": "sha512-F3fZga2uv09wFdEjEQIJxXALXfz0+JaOb7SabvVMmjHxeVTuGW8wgE8Vp1Hd7O+zMTYtcfEISGRzPkeiaPPsvg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@storybook/csf-tools/node_modules/@babel/parser": { + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.9.tgz", + "integrity": "sha512-q5PNg/Bi1OpGgx5jYlvWZwAorZepEudDMCLtj967aeS7WMont7dUZI46M2XwcIQqvUlMxWfdLFu4S/qSxeUu5g==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@storybook/csf-tools/node_modules/@babel/traverse": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", + "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.5", + "@babel/types": "^7.21.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@storybook/csf-tools/node_modules/@babel/types": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", + "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.21.5", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@storybook/docs-mdx": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@storybook/docs-mdx/-/docs-mdx-0.1.0.tgz", @@ -4426,15 +5054,15 @@ "dev": true }, "node_modules/@storybook/docs-tools": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.0.11.tgz", - "integrity": "sha512-irHZ4hYRA5HGCCtYHoLdb4j5NlfXgn9JWXXnWb4+6LaLanDQSFTGz+H4+qnet6nBEzXuzNWlsY/Wg18AYOZOfg==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.0.18.tgz", + "integrity": "sha512-H95dW2DquGQ75ZVrFjvznPdCxT0eW6esDnemzLJB61KitcYZrWRavfrZzFtUcpzIa84OgY5pllFYt636v11LHQ==", "dev": true, "dependencies": { "@babel/core": "^7.12.10", - "@storybook/core-common": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/types": "7.0.11", + "@storybook/core-common": "7.0.18", + "@storybook/preview-api": "7.0.18", + "@storybook/types": "7.0.18", "@types/doctrine": "^0.0.3", "doctrine": "^3.0.0", "lodash": "^4.17.21" @@ -4451,9 +5079,9 @@ "dev": true }, "node_modules/@storybook/manager": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.0.11.tgz", - "integrity": "sha512-TvY+A3guncE6nGYBZ5fbodPaQGpO9FWUg2u1lPqjnMwecZCVZZomkWSMFpPsjanl5C7Q8j7ol/g8MnQg9V53MQ==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.0.18.tgz", + "integrity": "sha512-hasb8XDmkT9lyX2cwb3Xg0ngcNQ1QCNHKurl2YJtXowb1CvawGKokhnVUTso15NCnurolDyw/Wqka1sagfm+Mg==", "dev": true, "funding": { "type": "opencollective", @@ -4461,19 +5089,19 @@ } }, "node_modules/@storybook/manager-api": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.0.11.tgz", - "integrity": "sha512-xR7/h0EGGaUBPSpQ7vuEq6B//wKM9vKqOqvZ4xMsebxw0b2cf1GYAm1Z2rR9n+fMXJEiPvVzGcuZd9jekGf2mQ==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.0.18.tgz", + "integrity": "sha512-anQkm09twL96YkKGXHa+LI0+yMaY6Jxs1lRaetHdMlIqN4VHBHhizHaMgtGfH6xCTuO3WdrKTN7cZii5RH7PBQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.0.11", - "@storybook/client-logger": "7.0.11", - "@storybook/core-events": "7.0.11", + "@storybook/channels": "7.0.18", + "@storybook/client-logger": "7.0.18", + "@storybook/core-events": "7.0.18", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.0.11", - "@storybook/theming": "7.0.11", - "@storybook/types": "7.0.11", + "@storybook/router": "7.0.18", + "@storybook/theming": "7.0.18", + "@storybook/types": "7.0.18", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -4531,9 +5159,9 @@ "dev": true }, "node_modules/@storybook/node-logger": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.0.11.tgz", - "integrity": "sha512-N28h8aU5QglfaaM/wjpk0e7AAX8f1KBQXKArnRePHeK9M5L6w/BQQ5BcRAhcvQKZ6eOpHyADaRMHqxCxkY8qmw==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.0.18.tgz", + "integrity": "sha512-cIeKEBvELtoVP/5UeQ01GJWZ7wM69/9Q+R5uOtNQBlwWFcCD6AVFWMRqq7ObMvdJG/okhXSF+sDetb+BF3zvdw==", "dev": true, "dependencies": { "@types/npmlog": "^4.1.2", @@ -4599,9 +5227,9 @@ } }, "node_modules/@storybook/postinstall": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.0.11.tgz", - "integrity": "sha512-bUKMQyu0LowxcxX7eO7TJYcs9WPeMfM6Ls2DTfExy7nU/z9EBfPlbXb7lXrMo4mdrHU1Cb+nGi8ZNiMwhggbqA==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.0.18.tgz", + "integrity": "sha512-ObIwAK2UiYhXN/7UifISQgBoH5jnyxh6T8kvCw83YhC78SDOPNgIGjToJECizJ7iubtqAWtCfCT5TrGEpyLGbg==", "dev": true, "funding": { "type": "opencollective", @@ -4609,9 +5237,9 @@ } }, "node_modules/@storybook/preview": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.0.11.tgz", - "integrity": "sha512-xsWyTggxCoSDJ+E0yNcVrShL/y8g8Tnx+3niVve9dTypa5QhcNWhJC1kZAi42F+WjQAmolJMWBpk9auCasuY7A==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.0.18.tgz", + "integrity": "sha512-L53p2eo8G12U6tp7hD3mk5tdWFXLvdEyV9e7a1x9bw1LfH15K/bp8lO6U/W1kkpse7+rqWBqoTjJC1Ktm5Sxog==", "dev": true, "funding": { "type": "opencollective", @@ -4619,18 +5247,18 @@ } }, "node_modules/@storybook/preview-api": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.11.tgz", - "integrity": "sha512-w86kKnoH46xmhoi+i0V2bPiuoKnjUhEtSHXtIOEM+gJCfrKECWzrlDVCu+fh2xv38uf7zrJcQSJg9Vmpsmiasw==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.18.tgz", + "integrity": "sha512-xxtC0gPGMn/DbwvS4ZuJaBwfFNsjUCf0yLYHFrNe6fxncbvcLZ550RuyUwYuIRfsiKrlgfa3QmmCa4JM/JesHQ==", "dev": true, "dependencies": { - "@storybook/channel-postmessage": "7.0.11", - "@storybook/channels": "7.0.11", - "@storybook/client-logger": "7.0.11", - "@storybook/core-events": "7.0.11", + "@storybook/channel-postmessage": "7.0.18", + "@storybook/channels": "7.0.18", + "@storybook/client-logger": "7.0.18", + "@storybook/core-events": "7.0.18", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.0.11", + "@storybook/types": "7.0.18", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -4646,9 +5274,9 @@ } }, "node_modules/@storybook/react-dom-shim": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.0.11.tgz", - "integrity": "sha512-G7fdaIdDlED6m7f4c+5adXLb5LCaSv3aWrW1mL+pwaFboFzUMR5VAF4XwVFadYgasLZRxcrPdWRY1AZ+y6/dlw==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.0.18.tgz", + "integrity": "sha512-O1FRypR8q1katjbznnxI+NtALd2gaWa7KnTwbIDf+ddZltXHMZ8xMiEGEtAMrfXlIuqIr9UvmLRfKZC/ysuA+g==", "dev": true, "funding": { "type": "opencollective", @@ -4660,12 +5288,12 @@ } }, "node_modules/@storybook/router": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.0.11.tgz", - "integrity": "sha512-yOboVh3iNEno4QG2XYj/2ly7w8wzckeUWl7q6s/kkHUQbiEgrAhxTTLezSLn7LlhaaiCzvYH1GEZZFzpGHHDkg==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.0.18.tgz", + "integrity": "sha512-Mue4s/BnKgdYcsiW9yuvW3qL9k3AgYn5HIhnkBExAteyiUGdAca4IJFhArmGgFktgeLc4ecBQ7sgaCljApnbgg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.11", + "@storybook/client-logger": "7.0.18", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -4679,13 +5307,13 @@ } }, "node_modules/@storybook/telemetry": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.0.11.tgz", - "integrity": "sha512-7zE5PkudTwMQ1iF0vs8/TowpLph79765IA1cJT08ngGhzD+mZW9s9ePp2LI/l4U/JTe01LexcIlVAuXKkI7I0g==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.0.18.tgz", + "integrity": "sha512-JP5Z7lGU+oKjNmz2cZW5J7EerwyWBBPOU+NvvooZsymIx02ZvJ4ClmFtolJnBM7m4KoAy50JxV5NQWi+q8PicQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.11", - "@storybook/core-common": "7.0.11", + "@storybook/client-logger": "7.0.18", + "@storybook/core-common": "7.0.18", "chalk": "^4.1.0", "detect-package-manager": "^2.0.1", "fetch-retry": "^5.0.2", @@ -4752,13 +5380,13 @@ } }, "node_modules/@storybook/theming": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.11.tgz", - "integrity": "sha512-wJtqHJBtIK1/HXXeanOAeUQEZfKBNn/qonq82BmHKb+Js+IGtnKW9upDQkzYa0oDD5IskBavN+LpQkT6ECjEYQ==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.18.tgz", + "integrity": "sha512-P1gMKa/mKQHIMq0sxBIwTzAcF6v/6hrc62YmkuV62vXu+8zNV2YWbRwywqm3Q6faZEadmb/bL9+z8whaKhCL/g==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.11", + "@storybook/client-logger": "7.0.18", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -4772,12 +5400,12 @@ } }, "node_modules/@storybook/types": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.11.tgz", - "integrity": "sha512-VOnef/u/HvYbk6LxWkwMlu31VD1ly6BTyHDOMUfYas03uNflX1KldGooWphmXVFrkkoLJoF5V4wsTShHSizi2A==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.18.tgz", + "integrity": "sha512-qPop2CbvmX42/BX29YT9jIzW2TlMcMjAE+KCpcKLBiD1oT5DJ1fhMzpe6RW9HkMegkBxjWx54iamN4oHM/pwcQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.0.11", + "@storybook/channels": "7.0.18", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "^2.0.0" @@ -4788,18 +5416,18 @@ } }, "node_modules/@storybook/web-components": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.0.11.tgz", - "integrity": "sha512-tG/Dc4ryZAyjVbM1PSWUs2tJONuuQtEfrzHdRSufjy8LdPOJv9YeaIQ7cWEkG7io4YTCoftjUUqxWQ+GhtiTzA==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.0.18.tgz", + "integrity": "sha512-nDs9AuRd9vvAXg2E7M/pN1ChQcUHKkmqqvswT8KUlr0o0qoZnAtUloeFVH+4X06s/OZco7ROkHn1CQp1vbH5Sw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.11", - "@storybook/core-client": "7.0.11", - "@storybook/docs-tools": "7.0.11", + "@storybook/client-logger": "7.0.18", + "@storybook/core-client": "7.0.18", + "@storybook/docs-tools": "7.0.18", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/types": "7.0.11", + "@storybook/manager-api": "7.0.18", + "@storybook/preview-api": "7.0.18", + "@storybook/types": "7.0.18", "ts-dedent": "^2.0.0" }, "engines": { @@ -4814,15 +5442,15 @@ } }, "node_modules/@storybook/web-components-vite": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.0.11.tgz", - "integrity": "sha512-EKJ8lTeuXcSlDp9IOZAXlGQRfVGRDyJT45D4gRyamGlYGOHT8j8mBplnyBjqvk8FoV5DUYTB+xYqbJvNrQ8x+A==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.0.18.tgz", + "integrity": "sha512-OQbaSnwNHikC9nfz3dSZIvD1RhrDT5AIst+ZYxGbYLkgxlmZv/SBmEt+XH4nX1XLhR9gFu6Qd3b+r/4xT2b/WA==", "dev": true, "dependencies": { - "@storybook/builder-vite": "7.0.11", - "@storybook/core-server": "7.0.11", - "@storybook/node-logger": "7.0.11", - "@storybook/web-components": "7.0.11", + "@storybook/builder-vite": "7.0.18", + "@storybook/core-server": "7.0.18", + "@storybook/node-logger": "7.0.18", + "@storybook/web-components": "7.0.18", "magic-string": "^0.27.0" }, "engines": { @@ -4856,9 +5484,9 @@ "dev": true }, "node_modules/@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true }, "node_modules/@types/accepts": { @@ -4877,9 +5505,9 @@ "dev": true }, "node_modules/@types/babel__core": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", - "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", + "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", "dev": true, "dependencies": { "@babel/parser": "^7.20.7", @@ -4909,12 +5537,12 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.5.tgz", - "integrity": "sha512-enCvTL8m/EHS/zIvJno9nE+ndYPh1/oNFzRYRmtUqJICG2VnCSBzMLW5VN2KCQU91f23tsNKR8v7VJJQMatl7Q==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.0.tgz", + "integrity": "sha512-TBOjqAGf0hmaqRwpii5LLkJLg7c6OMm4nHLmpsUxwk9bBHtoTC6dAHdVWdGv4TBxj2CZOZY8Xfq8WmfoVi7n4Q==", "dev": true, "dependencies": { - "@babel/types": "^7.3.0" + "@babel/types": "^7.20.7" } }, "node_modules/@types/base64-js": { @@ -4933,9 +5561,9 @@ } }, "node_modules/@types/chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", + "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==", "dev": true }, "node_modules/@types/chai-dom": { @@ -5009,18 +5637,18 @@ "dev": true }, "node_modules/@types/debug": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", - "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.8.tgz", + "integrity": "sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==", "dev": true, "dependencies": { "@types/ms": "*" } }, "node_modules/@types/detect-port": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/detect-port/-/detect-port-1.3.2.tgz", - "integrity": "sha512-xxgAGA2SAU4111QefXPSp5eGbDm/hW6zhvYl9IeEPZEry9F4d66QAHm5qpUXjb6IsevZV/7emAEx5MhP6O192g==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/detect-port/-/detect-port-1.3.3.tgz", + "integrity": "sha512-bV/jQlAJ/nPY3XqSatkGpu+nGzou+uSwrH1cROhn+jBFg47yaNH+blW4C7p9KhopC7QxCv/6M86s37k8dMk0Yg==", "dev": true }, "node_modules/@types/doctrine": { @@ -5054,14 +5682,15 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.33", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz", - "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==", + "version": "4.17.35", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", + "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", "dev": true, "dependencies": { "@types/node": "*", "@types/qs": "*", - "@types/range-parser": "*" + "@types/range-parser": "*", + "@types/send": "*" } }, "node_modules/@types/find-cache-dir": { @@ -5156,9 +5785,9 @@ "dev": true }, "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", "dev": true }, "node_modules/@types/json5": { @@ -5209,9 +5838,9 @@ } }, "node_modules/@types/lodash": { - "version": "4.14.194", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.194.tgz", - "integrity": "sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==", + "version": "4.14.195", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.195.tgz", + "integrity": "sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg==", "dev": true }, "node_modules/@types/lodash-es": { @@ -5233,15 +5862,15 @@ } }, "node_modules/@types/mdx": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.4.tgz", - "integrity": "sha512-qCYrNdpKwN6YO6FVnx+ulfqifKlE3lQGsNhvDaW9Oxzyob/cRLBJWow8GHBBD4NxQ7BVvtsATgLsX0vZAWmtrg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.5.tgz", + "integrity": "sha512-76CqzuD6Q7LC+AtbPqrvD9AqsN0k8bsYo2bM2J8pmNldP1aIPAbzUQ7QbobyXL4eLr1wK5x8FZFe8eF/ubRuBg==", "dev": true }, "node_modules/@types/mime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", "dev": true }, "node_modules/@types/mime-types": { @@ -5269,15 +5898,15 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.16.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.0.tgz", - "integrity": "sha512-BsAaKhB+7X+H4GnSjGhJG9Qi8Tw+inU9nJDwmD5CgOmBLEI6ArdhikpLX7DjbjDRDTbqZzU2LSQNZg8WGPiSZQ==", + "version": "20.2.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.5.tgz", + "integrity": "sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==", "dev": true }, "node_modules/@types/node-fetch": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.3.tgz", - "integrity": "sha512-ETTL1mOEdq/sxUtgtOhKjyB2Irra4cjxksvcMUR5Zr4n+PxVhsCD9WS46oPbHL3et9Zde7CNRr+WUNlcHvsX+w==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.4.tgz", + "integrity": "sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==", "dev": true, "dependencies": { "@types/node": "*", @@ -5341,9 +5970,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.0.38", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.38.tgz", - "integrity": "sha512-ExsidLLSzYj4cvaQjGnQCk4HFfVT9+EZ9XZsQ8Hsrcn8QNgXtpZ3m9vSIC2MWtx7jHictK6wYhQgGh6ic58oOw==", + "version": "18.2.7", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.7.tgz", + "integrity": "sha512-ojrXpSH2XFCmHm7Jy3q44nXDyN54+EYKP2lBhJ2bqfyPj6cIUW/FZW/Csdia34NQgq7KYcAlHi5184m4X88+yw==", "dev": true, "dependencies": { "@types/prop-types": "*", @@ -5364,11 +5993,21 @@ "dev": true }, "node_modules/@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", "dev": true }, + "node_modules/@types/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", + "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, "node_modules/@types/serve-static": { "version": "1.15.1", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", @@ -5389,9 +6028,9 @@ } }, "node_modules/@types/sinon": { - "version": "10.0.14", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.14.tgz", - "integrity": "sha512-mn72up6cjaMyMuaPaa/AwKf6WtsSRysQC7wxFkCm1XcOKXPM1z+5Y4H5wjIVBz4gdAkjvZxVVfjA6ba1nHr5WQ==", + "version": "10.0.15", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.15.tgz", + "integrity": "sha512-3lrFNQG0Kr2LDzvjyjB6AMJk4ge+8iYhQfdnSwIwlG88FUOV43kPcQqDZkDa/h3WSZy6i8Fr0BSjfQtB1B3xuQ==", "dev": true, "dependencies": { "@types/sinonjs__fake-timers": "*" @@ -5479,15 +6118,15 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.2.tgz", - "integrity": "sha512-yVrXupeHjRxLDcPKL10sGQ/QlVrA8J5IYOEWVqk0lJaSZP7X5DfnP7Ns3cc74/blmbipQ1htFNVGsHX6wsYm0A==", + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.8.tgz", + "integrity": "sha512-JDMOmhXteJ4WVKOiHXGCoB96ADWg9q7efPWHRViT/f09bA8XOMLAVHHju3l0MkZnG1izaWXYmgvQcUjTRcpShQ==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.2", - "@typescript-eslint/type-utils": "5.59.2", - "@typescript-eslint/utils": "5.59.2", + "@typescript-eslint/scope-manager": "5.59.8", + "@typescript-eslint/type-utils": "5.59.8", + "@typescript-eslint/utils": "5.59.8", "debug": "^4.3.4", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", @@ -5512,53 +6151,6 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.2.tgz", - "integrity": "sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/visitor-keys": "5.59.2" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.2.tgz", - "integrity": "sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.2.tgz", - "integrity": "sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -5572,9 +6164,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -5593,14 +6185,14 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.1.tgz", - "integrity": "sha512-nzjFAN8WEu6yPRDizIFyzAfgK7nybPodMNFGNH0M9tei2gYnYszRDqVA0xlnRjkl7Hkx2vYrEdb6fP2a21cG1g==", + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.8.tgz", + "integrity": "sha512-AnR19RjJcpjoeGojmwZtCwBX/RidqDZtzcbG3xHrmz0aHHoOcbWnpDllenRDmDvsV0RQ6+tbb09/kyc+UT9Orw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.59.1", - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/typescript-estree": "5.59.1", + "@typescript-eslint/scope-manager": "5.59.8", + "@typescript-eslint/types": "5.59.8", + "@typescript-eslint/typescript-estree": "5.59.8", "debug": "^4.3.4" }, "engines": { @@ -5620,13 +6212,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.1.tgz", - "integrity": "sha512-mau0waO5frJctPuAzcxiNWqJR5Z8V0190FTSqRw1Q4Euop6+zTwHAf8YIXNwDOT29tyUDrQ65jSg9aTU/H0omA==", + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.8.tgz", + "integrity": "sha512-/w08ndCYI8gxGf+9zKf1vtx/16y8MHrZs5/tnjHhMLNSixuNcJavSX4wAiPf4aS5x41Es9YPCn44MIe4cxIlig==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/visitor-keys": "5.59.1" + "@typescript-eslint/types": "5.59.8", + "@typescript-eslint/visitor-keys": "5.59.8" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -5637,13 +6229,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.2.tgz", - "integrity": "sha512-b1LS2phBOsEy/T381bxkkywfQXkV1dWda/z0PhnIy3bC5+rQWQDS7fk9CSpcXBccPY27Z6vBEuaPBCKCgYezyQ==", + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.8.tgz", + "integrity": "sha512-+5M518uEIHFBy3FnyqZUF3BMP+AXnYn4oyH8RF012+e7/msMY98FhGL5SrN29NQ9xDgvqCgYnsOiKp1VjZ/fpA==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.59.2", - "@typescript-eslint/utils": "5.59.2", + "@typescript-eslint/typescript-estree": "5.59.8", + "@typescript-eslint/utils": "5.59.8", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -5663,100 +6255,10 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.2.tgz", - "integrity": "sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.2.tgz", - "integrity": "sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/visitor-keys": "5.59.2", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.2.tgz", - "integrity": "sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@typescript-eslint/types": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.1.tgz", - "integrity": "sha512-dg0ICB+RZwHlysIy/Dh1SP+gnXNzwd/KS0JprD3Lmgmdq+dJAJnUPe1gNG34p0U19HvRlGX733d/KqscrGC1Pg==", + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.8.tgz", + "integrity": "sha512-+uWuOhBTj/L6awoWIg0BlWy0u9TyFpCHrAuQ5bNfxDaZ1Ppb3mx6tUigc74LHcbHpOHuOTOJrBoAnhdHdaea1w==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -5767,13 +6269,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.1.tgz", - "integrity": "sha512-lYLBBOCsFltFy7XVqzX0Ju+Lh3WPIAWxYpmH/Q7ZoqzbscLiCW00LeYCdsUnnfnj29/s1WovXKh2gwCoinHNGA==", + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.8.tgz", + "integrity": "sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/visitor-keys": "5.59.1", + "@typescript-eslint/types": "5.59.8", + "@typescript-eslint/visitor-keys": "5.59.8", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -5806,9 +6308,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -5827,17 +6329,17 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.2.tgz", - "integrity": "sha512-kSuF6/77TZzyGPhGO4uVp+f0SBoYxCDf+lW3GKhtKru/L8k/Hd7NFQxyWUeY7Z/KGB2C6Fe3yf2vVi4V9TsCSQ==", + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.8.tgz", + "integrity": "sha512-Tr65630KysnNn9f9G7ROF3w1b5/7f6QVCJ+WK9nhIocWmx9F+TmCAcglF26Vm7z8KCTwoKcNEBZrhlklla3CKg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.2", - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/typescript-estree": "5.59.2", + "@typescript-eslint/scope-manager": "5.59.8", + "@typescript-eslint/types": "5.59.8", + "@typescript-eslint/typescript-estree": "5.59.8", "eslint-scope": "^5.1.1", "semver": "^7.3.7" }, @@ -5852,80 +6354,6 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.2.tgz", - "integrity": "sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/visitor-keys": "5.59.2" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.2.tgz", - "integrity": "sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.2.tgz", - "integrity": "sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/visitor-keys": "5.59.2", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.2.tgz", - "integrity": "sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -5939,9 +6367,9 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -5960,12 +6388,12 @@ "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.1.tgz", - "integrity": "sha512-6waEYwBTCWryx0VJmP7JaM4FpipLsFl9CvYf2foAE8Qh/Y0s+bxWysciwOs0LTBED4JCaNxTZ5rGadB14M6dwA==", + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.8.tgz", + "integrity": "sha512-pJhi2ms0x0xgloT7xYabil3SGGlojNNKjK/q6dB3Ey0uJLMjK2UDGJvHieiyJVW/7C3KI+Z4Q3pEHkm4ejA+xQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/types": "5.59.8", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -5977,792 +6405,792 @@ } }, "node_modules/@umbraco-ui/uui": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.3.0-rc.0.tgz", - "integrity": "sha512-oXa2lxUsYK2/YGwgvjH8O06VgxcuL11XOm9jGYgVGVj3bILjuW44OoG914ObK7mScUw8zVtkY3PMstukKYqUaQ==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.3.0-rc.1.tgz", + "integrity": "sha512-vCiiOYMLNIfsBd8TEZ6WiIgIEFRkvZdfgAR7PCTM19p+4cLj8Qo+b5Cc3hXRv3nqkCYHO6LxiHKLmK7dMrU0qQ==", "dependencies": { - "@umbraco-ui/uui-action-bar": "1.3.0-rc.0", - "@umbraco-ui/uui-avatar": "1.3.0-rc.0", - "@umbraco-ui/uui-avatar-group": "1.3.0-rc.0", - "@umbraco-ui/uui-badge": "1.3.0-rc.0", - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-boolean-input": "1.3.0-rc.0", - "@umbraco-ui/uui-box": "1.3.0-rc.0", - "@umbraco-ui/uui-breadcrumbs": "1.3.0-rc.0", - "@umbraco-ui/uui-button": "1.3.0-rc.0", - "@umbraco-ui/uui-button-group": "1.3.0-rc.0", - "@umbraco-ui/uui-button-inline-create": "1.3.0-rc.0", - "@umbraco-ui/uui-card": "1.3.0-rc.0", - "@umbraco-ui/uui-card-content-node": "1.3.0-rc.0", - "@umbraco-ui/uui-card-media": "1.3.0-rc.0", - "@umbraco-ui/uui-card-user": "1.3.0-rc.0", - "@umbraco-ui/uui-caret": "1.3.0-rc.0", - "@umbraco-ui/uui-checkbox": "1.3.0-rc.0", - "@umbraco-ui/uui-color-area": "1.3.0-rc.0", - "@umbraco-ui/uui-color-picker": "1.3.0-rc.0", - "@umbraco-ui/uui-color-slider": "1.3.0-rc.0", - "@umbraco-ui/uui-color-swatch": "1.3.0-rc.0", - "@umbraco-ui/uui-color-swatches": "1.3.0-rc.0", - "@umbraco-ui/uui-combobox": "1.3.0-rc.0", - "@umbraco-ui/uui-combobox-list": "1.3.0-rc.0", - "@umbraco-ui/uui-css": "1.3.0-rc.0", - "@umbraco-ui/uui-dialog": "1.3.0-rc.0", - "@umbraco-ui/uui-dialog-layout": "1.3.0-rc.0", - "@umbraco-ui/uui-file-dropzone": "1.3.0-rc.0", - "@umbraco-ui/uui-file-preview": "1.3.0-rc.0", - "@umbraco-ui/uui-form": "1.3.0-rc.0", - "@umbraco-ui/uui-form-layout-item": "1.3.0-rc.0", - "@umbraco-ui/uui-form-validation-message": "1.3.0-rc.0", - "@umbraco-ui/uui-icon": "1.3.0-rc.0", - "@umbraco-ui/uui-icon-registry": "1.3.0-rc.0", - "@umbraco-ui/uui-icon-registry-essential": "1.3.0-rc.0", - "@umbraco-ui/uui-input": "1.3.0-rc.0", - "@umbraco-ui/uui-input-file": "1.3.0-rc.0", - "@umbraco-ui/uui-input-lock": "1.3.0-rc.0", - "@umbraco-ui/uui-input-password": "1.3.0-rc.0", - "@umbraco-ui/uui-keyboard-shortcut": "1.3.0-rc.0", - "@umbraco-ui/uui-label": "1.3.0-rc.0", - "@umbraco-ui/uui-loader": "1.3.0-rc.0", - "@umbraco-ui/uui-loader-bar": "1.3.0-rc.0", - "@umbraco-ui/uui-loader-circle": "1.3.0-rc.0", - "@umbraco-ui/uui-menu-item": "1.3.0-rc.0", - "@umbraco-ui/uui-modal": "1.3.0-rc.0", - "@umbraco-ui/uui-pagination": "1.3.0-rc.0", - "@umbraco-ui/uui-popover": "1.3.0-rc.0", - "@umbraco-ui/uui-progress-bar": "1.3.0-rc.0", - "@umbraco-ui/uui-radio": "1.3.0-rc.0", - "@umbraco-ui/uui-range-slider": "1.3.0-rc.0", - "@umbraco-ui/uui-ref": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-list": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node-data-type": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node-document-type": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node-form": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node-member": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node-package": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node-user": "1.3.0-rc.0", - "@umbraco-ui/uui-scroll-container": "1.3.0-rc.0", - "@umbraco-ui/uui-select": "1.3.0-rc.0", - "@umbraco-ui/uui-slider": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-expand": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-file": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-file-dropzone": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-folder": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-lock": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-more": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-sort": "1.3.0-rc.0", - "@umbraco-ui/uui-table": "1.3.0-rc.0", - "@umbraco-ui/uui-tabs": "1.3.0-rc.0", - "@umbraco-ui/uui-tag": "1.3.0-rc.0", - "@umbraco-ui/uui-textarea": "1.3.0-rc.0", - "@umbraco-ui/uui-toast-notification": "1.3.0-rc.0", - "@umbraco-ui/uui-toast-notification-container": "1.3.0-rc.0", - "@umbraco-ui/uui-toast-notification-layout": "1.3.0-rc.0", - "@umbraco-ui/uui-toggle": "1.3.0-rc.0" + "@umbraco-ui/uui-action-bar": "1.3.0-rc.1", + "@umbraco-ui/uui-avatar": "1.3.0-rc.1", + "@umbraco-ui/uui-avatar-group": "1.3.0-rc.1", + "@umbraco-ui/uui-badge": "1.3.0-rc.1", + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-boolean-input": "1.3.0-rc.1", + "@umbraco-ui/uui-box": "1.3.0-rc.1", + "@umbraco-ui/uui-breadcrumbs": "1.3.0-rc.1", + "@umbraco-ui/uui-button": "1.3.0-rc.1", + "@umbraco-ui/uui-button-group": "1.3.0-rc.1", + "@umbraco-ui/uui-button-inline-create": "1.3.0-rc.1", + "@umbraco-ui/uui-card": "1.3.0-rc.1", + "@umbraco-ui/uui-card-content-node": "1.3.0-rc.1", + "@umbraco-ui/uui-card-media": "1.3.0-rc.1", + "@umbraco-ui/uui-card-user": "1.3.0-rc.1", + "@umbraco-ui/uui-caret": "1.3.0-rc.1", + "@umbraco-ui/uui-checkbox": "1.3.0-rc.1", + "@umbraco-ui/uui-color-area": "1.3.0-rc.1", + "@umbraco-ui/uui-color-picker": "1.3.0-rc.1", + "@umbraco-ui/uui-color-slider": "1.3.0-rc.1", + "@umbraco-ui/uui-color-swatch": "1.3.0-rc.1", + "@umbraco-ui/uui-color-swatches": "1.3.0-rc.1", + "@umbraco-ui/uui-combobox": "1.3.0-rc.1", + "@umbraco-ui/uui-combobox-list": "1.3.0-rc.1", + "@umbraco-ui/uui-css": "1.3.0-rc.1", + "@umbraco-ui/uui-dialog": "1.3.0-rc.1", + "@umbraco-ui/uui-dialog-layout": "1.3.0-rc.1", + "@umbraco-ui/uui-file-dropzone": "1.3.0-rc.1", + "@umbraco-ui/uui-file-preview": "1.3.0-rc.1", + "@umbraco-ui/uui-form": "1.3.0-rc.1", + "@umbraco-ui/uui-form-layout-item": "1.3.0-rc.1", + "@umbraco-ui/uui-form-validation-message": "1.3.0-rc.1", + "@umbraco-ui/uui-icon": "1.3.0-rc.1", + "@umbraco-ui/uui-icon-registry": "1.3.0-rc.1", + "@umbraco-ui/uui-icon-registry-essential": "1.3.0-rc.1", + "@umbraco-ui/uui-input": "1.3.0-rc.1", + "@umbraco-ui/uui-input-file": "1.3.0-rc.1", + "@umbraco-ui/uui-input-lock": "1.3.0-rc.1", + "@umbraco-ui/uui-input-password": "1.3.0-rc.1", + "@umbraco-ui/uui-keyboard-shortcut": "1.3.0-rc.1", + "@umbraco-ui/uui-label": "1.3.0-rc.1", + "@umbraco-ui/uui-loader": "1.3.0-rc.1", + "@umbraco-ui/uui-loader-bar": "1.3.0-rc.1", + "@umbraco-ui/uui-loader-circle": "1.3.0-rc.1", + "@umbraco-ui/uui-menu-item": "1.3.0-rc.1", + "@umbraco-ui/uui-modal": "1.3.0-rc.1", + "@umbraco-ui/uui-pagination": "1.3.0-rc.1", + "@umbraco-ui/uui-popover": "1.3.0-rc.1", + "@umbraco-ui/uui-progress-bar": "1.3.0-rc.1", + "@umbraco-ui/uui-radio": "1.3.0-rc.1", + "@umbraco-ui/uui-range-slider": "1.3.0-rc.1", + "@umbraco-ui/uui-ref": "1.3.0-rc.1", + "@umbraco-ui/uui-ref-list": "1.3.0-rc.1", + "@umbraco-ui/uui-ref-node": "1.3.0-rc.1", + "@umbraco-ui/uui-ref-node-data-type": "1.3.0-rc.1", + "@umbraco-ui/uui-ref-node-document-type": "1.3.0-rc.1", + "@umbraco-ui/uui-ref-node-form": "1.3.0-rc.1", + "@umbraco-ui/uui-ref-node-member": "1.3.0-rc.1", + "@umbraco-ui/uui-ref-node-package": "1.3.0-rc.1", + "@umbraco-ui/uui-ref-node-user": "1.3.0-rc.1", + "@umbraco-ui/uui-scroll-container": "1.3.0-rc.1", + "@umbraco-ui/uui-select": "1.3.0-rc.1", + "@umbraco-ui/uui-slider": "1.3.0-rc.1", + "@umbraco-ui/uui-symbol-expand": "1.3.0-rc.1", + "@umbraco-ui/uui-symbol-file": "1.3.0-rc.1", + "@umbraco-ui/uui-symbol-file-dropzone": "1.3.0-rc.1", + "@umbraco-ui/uui-symbol-file-thumbnail": "1.3.0-rc.1", + "@umbraco-ui/uui-symbol-folder": "1.3.0-rc.1", + "@umbraco-ui/uui-symbol-lock": "1.3.0-rc.1", + "@umbraco-ui/uui-symbol-more": "1.3.0-rc.1", + "@umbraco-ui/uui-symbol-sort": "1.3.0-rc.1", + "@umbraco-ui/uui-table": "1.3.0-rc.1", + "@umbraco-ui/uui-tabs": "1.3.0-rc.1", + "@umbraco-ui/uui-tag": "1.3.0-rc.1", + "@umbraco-ui/uui-textarea": "1.3.0-rc.1", + "@umbraco-ui/uui-toast-notification": "1.3.0-rc.1", + "@umbraco-ui/uui-toast-notification-container": "1.3.0-rc.1", + "@umbraco-ui/uui-toast-notification-layout": "1.3.0-rc.1", + "@umbraco-ui/uui-toggle": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-action-bar": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-action-bar/-/uui-action-bar-1.3.0-rc.0.tgz", - "integrity": "sha512-LH9yLkTHbSpjJqsbB+0fTZJw6IlNNEoG/kGk2EmDLArfy8dT3YtK1ZKPUTHACe0AQ/CVt8vH8hcoNGBtXz3Q3g==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-action-bar/-/uui-action-bar-1.3.0-rc.1.tgz", + "integrity": "sha512-gUVPHVdzZemUEZGufg6+dQH01a4Hsw/XwQaYVrAzkSU4Nc7/gb4oZrXpWeqGy0EFQuchjmJRf3w3GhtRWKTEMA==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-button-group": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-button-group": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-avatar": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar/-/uui-avatar-1.3.0-rc.0.tgz", - "integrity": "sha512-Mj3a9vWXRf4JUYpVI+S6fuDu2x4niP5ETR3D5wpRDIpgjpmw3kbDTq5k4fjZ1NW40AYbtHM1e9xEOrBlydlLqQ==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar/-/uui-avatar-1.3.0-rc.1.tgz", + "integrity": "sha512-iczyi3QWBir5u4qmpNI0LB2rXYxwfmUjn+dx3T0M73+AvO8W6j6bdJ5VZHe23Ik2xgh/XVzn4dHb/MayPKbN9w==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-avatar-group": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar-group/-/uui-avatar-group-1.3.0-rc.0.tgz", - "integrity": "sha512-LWOPPI4UkaaNQgbSwtHZtghJGudH/4pU1l5azwIe0x2Dh0BI/CGNRBoMy7XhA52XtBYTzpKDHzOg2kX+6IWRFg==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar-group/-/uui-avatar-group-1.3.0-rc.1.tgz", + "integrity": "sha512-LyOfZ8ZZvBhi8jCIDZvEyg2ObsjBb+eIvb3MMqZ2TcHF5hnK1NxNqfcMJELdT1/roth8WFK/QPKeTi4wLWUEog==", "dependencies": { - "@umbraco-ui/uui-avatar": "1.3.0-rc.0", - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-avatar": "1.3.0-rc.1", + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-badge": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-badge/-/uui-badge-1.3.0-rc.0.tgz", - "integrity": "sha512-gNs5/BEdMxHOBWxocfxIDQWXeAazNLUDppOb5S5KyOcFSdCseuPd3+jgm2qqlNVzpVGhVIglv0/0DJGJdgCNow==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-badge/-/uui-badge-1.3.0-rc.1.tgz", + "integrity": "sha512-YNtLtL6TxVQD+Qj4Ak/yqit4jLc4PKv7LIdOA45c9nPEj7xenxQmCvwE7b6Efm5Ym8sTKvDGJUHhc9rMLjnUtQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-base": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-base/-/uui-base-1.3.0-rc.0.tgz", - "integrity": "sha512-d69/QwB2Wbwk3IkKp7d93FYcXyU7SNpfY4S/TI4rTcAXrrmOZTcnQdKZeU3d6VB3+gXS+dXMA+PVesY2Cv3tDg==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-base/-/uui-base-1.3.0-rc.1.tgz", + "integrity": "sha512-F4DfAwZNRewzvNXo1vMtSnQXcCuMqvC6tC/bCJR3IecVogt0c2YIAPsMqcNESFRDqPZuMH0WiK0hlrvJekHeNg==", "dependencies": { "lit": "^2.3.1" } }, "node_modules/@umbraco-ui/uui-boolean-input": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-boolean-input/-/uui-boolean-input-1.3.0-rc.0.tgz", - "integrity": "sha512-pqlcCuZCJ8lWgDnYmcYRpPb++YcCPvkNF1YPmRoCLqNrz9xrWQFV7n0xbdfj5JsWm4UkRbuFNbgyAz88VXjB/A==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-boolean-input/-/uui-boolean-input-1.3.0-rc.1.tgz", + "integrity": "sha512-uCZu7WgylsRIDZKJtdsAlykKObrdP4YJg4bJAzt2FVgxe2S1Xi0MOMxwr317h/GGnkGv0UIlXp97dRV3MeKpHA==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-box": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-box/-/uui-box-1.3.0-rc.0.tgz", - "integrity": "sha512-Y/CaolNfE4/w2Fbb8xYX3wdF5ddhiTRKp5uxwNYuDWj2qZlOmGJTRPUbr11nZCnVkhV6rnVH/sb6kwPTa8Y0vA==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-box/-/uui-box-1.3.0-rc.1.tgz", + "integrity": "sha512-FOXU8UDTFA93mP4eSWz+QK+kd8WZaQXEzjEwuhThnRPUztSbeRgETg1Ml6Ks7yEuSLx+d2ZfQrNZwpIhFW/GwQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-css": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-css": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-breadcrumbs": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.3.0-rc.0.tgz", - "integrity": "sha512-6zCoOQ5J1uty4Qc6PxUmoq46lYc5/xAFZm/gfiLqB7SHF4V+WNzx5mXpBElHkKtAc2Kblj4eDx1TSv2ai3rZyQ==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.3.0-rc.1.tgz", + "integrity": "sha512-TnmToEpBERCDK1ryTJ9PUqSnsZtFB5faEACnUzv6KowvL21+W7oRGJrqPNhOlWOi01e6OmmbepxNnif4ePVivw==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-button": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button/-/uui-button-1.3.0-rc.0.tgz", - "integrity": "sha512-spjUF8Eccltnl79n7VJH3+082kRyjckYTCFKfgKT4KaoMewbW8C1hck6f1e6tehCQT8ZWcZSfeiyuA/PaXgl6w==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button/-/uui-button-1.3.0-rc.1.tgz", + "integrity": "sha512-khn6ZuBbFTZmLjad8s1p5j4UXDPc4BSGpbfvdBc5MQp/YQNtLKi/Di6IIoqQArVCr0LLN2qpmd+PeBdxz9cK8A==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-icon-registry-essential": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-icon-registry-essential": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-button-group": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-group/-/uui-button-group-1.3.0-rc.0.tgz", - "integrity": "sha512-w9/WMA2XtM6pUKYA3ivoK34Ao4EI5v58Ra6LHJLte82oo8T6AVXHtbRH8CDd4MHZhKYhLTkv8wfh791xpfgnKg==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-group/-/uui-button-group-1.3.0-rc.1.tgz", + "integrity": "sha512-3IGNcId4pHpRyc+1aFlFYtNWgA4kW9/Gor2MUgxx5xMb/mIwtWkp7W++oS/3aARTXDHxrNWyUZCO8fT3t86/Ww==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-button-inline-create": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-inline-create/-/uui-button-inline-create-1.3.0-rc.0.tgz", - "integrity": "sha512-jtj/OUmnYoNjbEUGKVu5AuOm7R6aPnY9AejMLFTEnbI/X1hgDmNR4lbUr7YhxlZtd7oAuY4/HMedK1Lsr+xhDw==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-inline-create/-/uui-button-inline-create-1.3.0-rc.1.tgz", + "integrity": "sha512-s1z4j2l/rR3xVN+dr0/MZ25fGpDNxYQ8aLUI9e206F1sccf61g7EHBlMW9HqWgIRyvPL/7Al9ZiFCUvhT+4Fvw==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-card": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card/-/uui-card-1.3.0-rc.0.tgz", - "integrity": "sha512-1B8elGDQ9czucxBph1kTOkDebOU6eKsDksKXA9e5DJSa7F+X/cWi+oSX8EegvaTkELgir//kKknkwDVsmiJkgg==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card/-/uui-card-1.3.0-rc.1.tgz", + "integrity": "sha512-SKyaGVC0830G6COlB1b3y4hFVvs4sAnF4LOwxZrQNXQSa34gJNPPztl/rgXy9JlAzIL0Ud4Yw9xFSsvAtbbJiQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-card-content-node": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-content-node/-/uui-card-content-node-1.3.0-rc.0.tgz", - "integrity": "sha512-c3otZYpfR4MpaDK/i7hB0SQAfvMj1sFHXusX9u5zkqqZox3TXuIFRqwcTGhWLC/5ISTXg/zC7gAqa2SP/qntRg==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-content-node/-/uui-card-content-node-1.3.0-rc.1.tgz", + "integrity": "sha512-f3UKPxZZbg1bjXysq4FbmSeGUpeBreHLRiE3AHwhwZU1M5gMQquKiUSg7tT8Ob2J4t0RSkQBeJHIPlLA7MT3Yw==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-card": "1.3.0-rc.0", - "@umbraco-ui/uui-icon": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-card": "1.3.0-rc.1", + "@umbraco-ui/uui-icon": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-card-media": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-media/-/uui-card-media-1.3.0-rc.0.tgz", - "integrity": "sha512-OHkxIxMCn5/8wjMlIuOYKqJ2eUqfs8Rm3fnvPIU1q5rW2KZDCVeAmA7PnhvbhCTaa06ovVZmiuvvy4dvXh23/A==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-media/-/uui-card-media-1.3.0-rc.1.tgz", + "integrity": "sha512-a71IXz/f3LvHcInHXirWwL8NpFDs+UWuInzWOFJPWV0j7TdFJ4jwlRg+hVLEnXkIBJR9tVi8cuDhhnx8gtpBOw==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-card": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-file": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-folder": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-card": "1.3.0-rc.1", + "@umbraco-ui/uui-symbol-file": "1.3.0-rc.1", + "@umbraco-ui/uui-symbol-folder": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-card-user": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-user/-/uui-card-user-1.3.0-rc.0.tgz", - "integrity": "sha512-zT0Kajbs2NkVBk2iSPn9lreWRQBx5CO4y5QDuwnr3NDioFTqfIGkmrKBTN+er4ftPVs3TRqbTaR4TitWr0Wewg==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-user/-/uui-card-user-1.3.0-rc.1.tgz", + "integrity": "sha512-dgUTOo/NCyUqOyXOsXrcxslnZlA7hPXDGnD87h7arN6mqh+Ua68pLL2xWIe1SVW5UyvdXTNii1KdPNnfZx9rAA==", "dependencies": { - "@umbraco-ui/uui-avatar": "1.3.0-rc.0", - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-card": "1.3.0-rc.0" + "@umbraco-ui/uui-avatar": "1.3.0-rc.1", + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-card": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-caret": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-caret/-/uui-caret-1.3.0-rc.0.tgz", - "integrity": "sha512-np42RexAq/3fYrGdR3V57D6sW4EztQwToEWU7TxGoHGGtLcMtv+dqpXio6SnuyLXrgu/RmNqMUgKzA+ab7HfRA==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-caret/-/uui-caret-1.3.0-rc.1.tgz", + "integrity": "sha512-6YwfpsLUE26p8SbM0vjSFyAMsPaA1WSa62Oh4gV6iBGpj6wOC97sf0V6xtXFTRNru8waaxlSK8YZjJvN0SL6jw==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-checkbox": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-checkbox/-/uui-checkbox-1.3.0-rc.0.tgz", - "integrity": "sha512-g++DastxyJkyMExjTQmO4/CdNV+6XNkRjfZMhcsmR+922qO+V2AwksEE7BaxpHQfdlf2NDgZdKaTJ3njJ2kPPQ==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-checkbox/-/uui-checkbox-1.3.0-rc.1.tgz", + "integrity": "sha512-dF6anb/ScZf5yE+Qrw70ON7WuHY328aMd9QxQzakyANWf91t/QCiBU64ZZx6IKhlVvsXHjbP6vPODaLL9JNIbA==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-boolean-input": "1.3.0-rc.0", - "@umbraco-ui/uui-icon-registry-essential": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-boolean-input": "1.3.0-rc.1", + "@umbraco-ui/uui-icon-registry-essential": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-color-area": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-area/-/uui-color-area-1.3.0-rc.0.tgz", - "integrity": "sha512-HPnk0qTWiLdgP0vf+s992djp36Q/FsFrexEJm+l9d7hm7eWlsB7LoxRdHPLKxIfUe0lEXdD4xc2Ym7UtmEH8jg==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-area/-/uui-color-area-1.3.0-rc.1.tgz", + "integrity": "sha512-8+9jTlcMYQAhl9A69yy36vBcB49NNRpTyEL7xvYYmhPktXjlys75TWSQrpQepA2eshPoOk3paE8E3Xh8usqsnA==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", + "@umbraco-ui/uui-base": "1.3.0-rc.1", "colord": "^2.9.3" } }, "node_modules/@umbraco-ui/uui-color-picker": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-picker/-/uui-color-picker-1.3.0-rc.0.tgz", - "integrity": "sha512-DyD+dmVg5meZiVWIwmG9P1Rq00L9S0+3rJ00nQvCP7zrUjUQ5gviwxPqQTGXZmNn8Omg6JJ7ssh1oUbKt9CpCg==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-picker/-/uui-color-picker-1.3.0-rc.1.tgz", + "integrity": "sha512-wn53TW23LxN1mKZ0hgz5SiErNf7mqvF6riF1dHHp+ogOmsaXPaOUoAW73gXdwxfB3nyQpP9iy10+1nOvqrkShQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", + "@umbraco-ui/uui-base": "1.3.0-rc.1", "colord": "^2.9.3" } }, "node_modules/@umbraco-ui/uui-color-slider": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-slider/-/uui-color-slider-1.3.0-rc.0.tgz", - "integrity": "sha512-zr9kD5+JMjrg6g8sXOWeAnxxN+1WocO4Lko2p4GA8pk2/29eSUJcb2nahBfyxt4OlBoDlc1D1Ll9SMsEUWSn8w==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-slider/-/uui-color-slider-1.3.0-rc.1.tgz", + "integrity": "sha512-4DJ18VyYpQrq3y6zgmObURebitFvqmmC4NZaEVlHFi6JiR8Cca6zwRZqSwsMQ9B0FAcuTg1n2ec8ICtHj0umsQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-color-swatch": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatch/-/uui-color-swatch-1.3.0-rc.0.tgz", - "integrity": "sha512-qOl58Ckwr/6cUGwSC6tS8ywyIZu8dgDJpyG21mhFUvK1eZ0LTKLm8MWjYWvHD/3vzdm4o/jKD44BeRa/pJeZ/A==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatch/-/uui-color-swatch-1.3.0-rc.1.tgz", + "integrity": "sha512-231AKTzBkZ+BitjWVC6IrotrTeNzECXz1jBe/udcko+pJ83LNIZapUeQpGws90aLzyeTUAkGzpi7ZIP/Wub5Pw==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-icon-registry-essential": "1.3.0-rc.0", + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-icon-registry-essential": "1.3.0-rc.1", "colord": "^2.9.3" } }, "node_modules/@umbraco-ui/uui-color-swatches": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatches/-/uui-color-swatches-1.3.0-rc.0.tgz", - "integrity": "sha512-5O7rp0DsfEDAWVp+0kotrMWI0q1CYMGUZRMugmPDv/7e2TXgn62KwUY73WOHkEZwr6hgH3uA0CCCnLOMMIIesQ==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatches/-/uui-color-swatches-1.3.0-rc.1.tgz", + "integrity": "sha512-1B6KUnpvhKTpI9BYefRfzBFCgifEKEumU0qeDwf+w2yWwVH4DitPA3EojC0ZInduIwGWXD9LGNc5eZMNPhSN6g==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-color-swatch": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-color-swatch": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-combobox": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox/-/uui-combobox-1.3.0-rc.0.tgz", - "integrity": "sha512-0UJhREd2BXZm3QZlWZxIwNKhBvYAVSE2E0u1iiMPBIubmaa9iPKYdtLunspOjcfxrFHmbp0sFune0zoU8gyIew==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox/-/uui-combobox-1.3.0-rc.1.tgz", + "integrity": "sha512-BqvvCfMvQK+0qiOKcNFhv8t29Usnhq5IcPpbvlqajm3LC/rz2JX+3LAW/K63BUDj2fF+JpRnnM8EmYLoK9g5uQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-button": "1.3.0-rc.0", - "@umbraco-ui/uui-combobox-list": "1.3.0-rc.0", - "@umbraco-ui/uui-icon": "1.3.0-rc.0", - "@umbraco-ui/uui-scroll-container": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-button": "1.3.0-rc.1", + "@umbraco-ui/uui-combobox-list": "1.3.0-rc.1", + "@umbraco-ui/uui-icon": "1.3.0-rc.1", + "@umbraco-ui/uui-scroll-container": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-combobox-list": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox-list/-/uui-combobox-list-1.3.0-rc.0.tgz", - "integrity": "sha512-Hdbf3JYRx2inVYGFuZu1Z3c3C0ghKFCELuTLAvCbyzzzUqloipsgLcJLFTI7tnea/jbWX7wAB1tg7BiO7Pi9PA==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox-list/-/uui-combobox-list-1.3.0-rc.1.tgz", + "integrity": "sha512-W42Y3vRSWhDBNRc4RacMhBzhtmgalLH7zTWIKpuIZlLTDKTv4+W2si38qtjrgCJ4Rcg21RnnVQwFb2/UXw2+Zg==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-css": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.3.0-rc.0.tgz", - "integrity": "sha512-Xt3QGwvMcwnArTIgpE3PN3ZEMOorILTVwZqeNdI6XkuQcXODFMhF1VMWjPySOZ5K6Y2iZpxWvvTOagAhgDCoPQ==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.3.0-rc.1.tgz", + "integrity": "sha512-bTLBBa2UlJoBwju56rv76zu7KDc5EaPhMVibCII89hvPjMaPM4ojm1Okr//3TlKOPpqmEvKkuMrtwZDt6FmGKQ==", "dependencies": { "lit": "^2.2.2" } }, "node_modules/@umbraco-ui/uui-dialog": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog/-/uui-dialog-1.3.0-rc.0.tgz", - "integrity": "sha512-eJG1dTqF2J2CLl7tnREYf+jdNmNFBVI2AevjsA/HHnOpkaUUBALRCOsCFA4T9HdhPPC8HtI4O/Jnhz7fHXioCg==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog/-/uui-dialog-1.3.0-rc.1.tgz", + "integrity": "sha512-TOBevnFCGTxTYobWe71ytWjN1jm/adC3RMEOMPjaDMlsLIaTwTPEZXXnxsxtpAIZqx8DTfPOvPP/ST/V84XYuQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-css": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-css": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-dialog-layout": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog-layout/-/uui-dialog-layout-1.3.0-rc.0.tgz", - "integrity": "sha512-cSGQUUIyzlzstLAHL+2JyACm682e9PwhT8Z0S80gXgoBSo5UtjlrMeFwP9iaRhLCE5zw6RDIXCNiquAmZxNG6g==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog-layout/-/uui-dialog-layout-1.3.0-rc.1.tgz", + "integrity": "sha512-MXn+Na4wmoyDLBR5C8kWpVPiUIyzoafariET5isTGEBBSbYwy+HRo49z9yin7gisC6pENiC6pVJdN2Tt1eM2bQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-file-dropzone": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.3.0-rc.0.tgz", - "integrity": "sha512-QBdxRY5RkyE9deyjcg0X3AlnuXu5LaIldZTkOfDVljDmSpq80gWaHt2eZF1S3/1r62z7yvVsU9mldeR/9LvX0w==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.3.0-rc.1.tgz", + "integrity": "sha512-acfkI1D+Qv2A5DFTNHTRdmwJxs7GrqRWQwJH/ycLO9XeuUEw10KIJQNQ/l5xJb6Va/BuM94RLTF24s7OA578Qg==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-file-dropzone": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-symbol-file-dropzone": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-file-preview": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-preview/-/uui-file-preview-1.3.0-rc.0.tgz", - "integrity": "sha512-QrNenh1xbNRnWqIiH6vIjtA1W3HSqGEePvziWXWpOlCzPXm22NGGLnlKLf9LPEIEyv1lCCO09lvqeuM3Utc3Zg==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-preview/-/uui-file-preview-1.3.0-rc.1.tgz", + "integrity": "sha512-HJvlAFVvOPvrC7BfFEZ2Dh22vslzGYjIX6PCX7L9ZqHvlwPiN1dg60QnMMiMPysuWaHKu9CNmkXRdIYRrEY1vQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-file": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-folder": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-symbol-file": "1.3.0-rc.1", + "@umbraco-ui/uui-symbol-file-thumbnail": "1.3.0-rc.1", + "@umbraco-ui/uui-symbol-folder": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-form": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form/-/uui-form-1.3.0-rc.0.tgz", - "integrity": "sha512-BEBWJtq0N+KNLYJxHr8cULVBN+5/kSNFwmeu+naZ8Ym33xjSJMLRHVK/Xuu0mLDylaJ4Q+9j/KfgWZyss/xLpw==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form/-/uui-form-1.3.0-rc.1.tgz", + "integrity": "sha512-RLm+OYrA8v7lHdP84k+PTBdCyh0uVtv0e/ImZrpMOZWDkOSGYmz5stuZN9xNu1ZW7Qtn94QETwH5GJu/lTAYFw==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-form-layout-item": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-layout-item/-/uui-form-layout-item-1.3.0-rc.0.tgz", - "integrity": "sha512-mV/3fQUpSQAb/coNyYFwApS5vMLlBYNoYbGA6zbyic6+kaoCGOARn7Iiq0GmsrhTQU3RJDf3br3UqYUwC9vThA==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-layout-item/-/uui-form-layout-item-1.3.0-rc.1.tgz", + "integrity": "sha512-9Q1kI47BZ1AuaMSeAjz+WJP4BHA1qXv9FdMCzcUHOybkOUKpay80kNUKS2noMDz6mr+zewC7KuFzfC9bTorT1w==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-form-validation-message": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-form-validation-message": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-form-validation-message": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-validation-message/-/uui-form-validation-message-1.3.0-rc.0.tgz", - "integrity": "sha512-UnNql2a7mBgTzyWZUn5tTwTAOj345vN4wVg596NTRDOQr5Cwotx6GCQsnC1suoYlgDJjd0S3ok4OQaO0zjYjug==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-validation-message/-/uui-form-validation-message-1.3.0-rc.1.tgz", + "integrity": "sha512-IRId4w+5Ftz0U/D33BO0r9UfCC7blGQtLHe93w60TlC1ilBODiWL7SNi5k00EYvlSYxwCsJkzvlnLEWlM9g6MA==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-icon": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon/-/uui-icon-1.3.0-rc.0.tgz", - "integrity": "sha512-UddJZP0gVCYVbSneF9O9cqC+GaNuB9Wt42KW0SyhhTrSSzg6Tr4x+VKDu1LMaEl90i36Rg7QyUTAdPQ3Zite4w==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon/-/uui-icon-1.3.0-rc.1.tgz", + "integrity": "sha512-3rRpre4AH0MOc0StgA8jhGAIFZJEhGOgysNmFURYySG/pqceEAntZEFxnRWIUega/41fcPBr+1krc4PKUaqdmw==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-icon-registry": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry/-/uui-icon-registry-1.3.0-rc.0.tgz", - "integrity": "sha512-cfWiz9hV9xQYxoTKFWwI/9yHcvFvOPyHSnaFrpiJKS8ddl6px1YjDBCuYQNSlDHNlVASWHF4tE/YXX4xqO5xxw==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry/-/uui-icon-registry-1.3.0-rc.1.tgz", + "integrity": "sha512-IsZu6aqOn17NkbjrlOkEfuePl+hqmBPcPpxINJbXm53JB3n3vS2Tyc0HJD0fuCHZSaMAJvbSbjHEQj3aHPU/Qg==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-icon": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-icon": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-icon-registry-essential": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry-essential/-/uui-icon-registry-essential-1.3.0-rc.0.tgz", - "integrity": "sha512-uZcSPnRml0W6BlIZiDNf5OvR0+NLc08Af+GPl9gytu8yPlnDtw/YMsclZBz+oRW1CwmXgCM3a3EMG6YKEGr1CA==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry-essential/-/uui-icon-registry-essential-1.3.0-rc.1.tgz", + "integrity": "sha512-HQjnZ2vLnAnT1pMTSgESy6/nQxHKQGGXszokOpOsuAijw2tAN78st9VTr2HdDu+Wp06rZxSUJc5NvSiQsAFmPA==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-icon-registry": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-icon-registry": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-input": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.3.0-rc.0.tgz", - "integrity": "sha512-Kh1aGtD8NstkIgMdr4SlwFaBC0qBGPeJ7Zh68MUlFvgO9+A4KaY6hbpBSGSWKJWw+rbx1/3xqvTJ8vvmxAoYBg==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.3.0-rc.1.tgz", + "integrity": "sha512-APqwdizsT8G4KRYII8TzHiET4/fxXUmrFtu8VvwDGfBY5f/YmsYSPa0TME1itZh2rMeY8EpbiDckMaexgu4U9Q==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-input-file": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-file/-/uui-input-file-1.3.0-rc.0.tgz", - "integrity": "sha512-KZlgYPA9oxvH/yi5b1Zz4C3IrzoJSRbq0oVQ7w79RqhzzSSigucg4ld2a0a9yDnJUm0oJeKa8ITr8b9Q9V3fAA==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-file/-/uui-input-file-1.3.0-rc.1.tgz", + "integrity": "sha512-upli+WqvjOK6M8C6Q5iCugU4uuuU77mP2XMqTlGpCI+aQvDKBECyDxLrNUg79sBnIUhlepNWM9acIVnr50lGHw==", "dependencies": { - "@umbraco-ui/uui-action-bar": "1.3.0-rc.0", - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-button": "1.3.0-rc.0", - "@umbraco-ui/uui-file-dropzone": "1.3.0-rc.0", - "@umbraco-ui/uui-icon": "1.3.0-rc.0", - "@umbraco-ui/uui-icon-registry-essential": "1.3.0-rc.0" + "@umbraco-ui/uui-action-bar": "1.3.0-rc.1", + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-button": "1.3.0-rc.1", + "@umbraco-ui/uui-file-dropzone": "1.3.0-rc.1", + "@umbraco-ui/uui-icon": "1.3.0-rc.1", + "@umbraco-ui/uui-icon-registry-essential": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-input-lock": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.3.0-rc.0.tgz", - "integrity": "sha512-Ec27by8X7Ay6nSMGIHiELEtAn3jmB8URGsl6ATJZoVPmDWfEGT1htECE1/2ALltUCTRQ0nICtVcWVrYyKnFZzQ==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.3.0-rc.1.tgz", + "integrity": "sha512-GC2bi9Rl05bvCUWb8tJiNphS1QW8ns/oKGTxlr/zg3GGcIor1dJwy83qy+ftfpVeKREJyuN98AD5+VEU3lKJAg==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-button": "1.3.0-rc.0", - "@umbraco-ui/uui-icon": "1.3.0-rc.0", - "@umbraco-ui/uui-input": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-button": "1.3.0-rc.1", + "@umbraco-ui/uui-icon": "1.3.0-rc.1", + "@umbraco-ui/uui-input": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-input-password": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.3.0-rc.0.tgz", - "integrity": "sha512-lf1B0rHzWLscqPzjARS9UJm3zZwjR0T1vwFnypZ+PU1BBDiu/TpFNATreFzvFPlQ2pHllfI+b7UhuIOdr/rcpQ==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.3.0-rc.1.tgz", + "integrity": "sha512-eJppvUlgC3Rf0t5CQBKNQ8ZS62SeM/VVWHZ7dIblBcDpw+4lkgHz37lhL8pC8gtmPbA7FHK/RtF08lk5kSQ72g==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-icon-registry-essential": "1.3.0-rc.0", - "@umbraco-ui/uui-input": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-icon-registry-essential": "1.3.0-rc.1", + "@umbraco-ui/uui-input": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-keyboard-shortcut": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-keyboard-shortcut/-/uui-keyboard-shortcut-1.3.0-rc.0.tgz", - "integrity": "sha512-mwu4CyjF+uptbD4inb0KtK0UexU6x9uJocylqom6vVZMfdCgXWMbv0MRz4d7MP9lGlGl51mEE8bUVwY9t6sDRg==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-keyboard-shortcut/-/uui-keyboard-shortcut-1.3.0-rc.1.tgz", + "integrity": "sha512-VarDxu6V6X9rmhfcLIMI0lO1Jd/zNdb7l6HnQb7qi7KKjiVx95HfGrqwP1hB78PQg05UeM9JOoFaiPBmHhs44w==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-label": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-label/-/uui-label-1.3.0-rc.0.tgz", - "integrity": "sha512-kl8h1yTfit7lJPKZFmmsm5MZsYUgi3eXO7c5kToazGbsC/pIm7aiXaX3w4O7rARNxHoA7myAxcfgeS3fO4AzMg==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-label/-/uui-label-1.3.0-rc.1.tgz", + "integrity": "sha512-62QYMXmixqnVjEaFEbSWaTtBx3ykdGsssApxsclUcI7d6AWVASJGiMqVDmF0Jc49184JVDlVv4GpasnVMGAlGA==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-loader": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader/-/uui-loader-1.3.0-rc.0.tgz", - "integrity": "sha512-4xc8Tr1jFE/xLlJgiePSqFRlk2QNN4Au0iLRtKXiQHm3uW5uInf81OF/th1GTtW2f7dnXF9ww0oBXvZYTrQQ6Q==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader/-/uui-loader-1.3.0-rc.1.tgz", + "integrity": "sha512-clwoeBsxl7xsK05xolpE5a78d1NEbpnouZiufnLclBl1ooLIggaclzR8PdPtFAIQOvBmv9WzapNwJVUuCzkMjw==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-loader-bar": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-bar/-/uui-loader-bar-1.3.0-rc.0.tgz", - "integrity": "sha512-reuNMGmH9TVRTpXo2w28nDakHdLbQUnR1ivcCG36Mkplwz0ptOcr+gXHP0MCMRNq5N3hwN+jeRoIrWB57/1VnA==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-bar/-/uui-loader-bar-1.3.0-rc.1.tgz", + "integrity": "sha512-qqr5DZlL7VBzFl2Ak2uYn6R+lmNMnGnzxOc23G4idcrIDgVPZo0wEGQVDNOG+d4ngePX6iH4K+KRcIbXSjtCYg==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-loader-circle": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-circle/-/uui-loader-circle-1.3.0-rc.0.tgz", - "integrity": "sha512-PkCEMQhCuz7WENPFGmAC0Wf3GLwWfZ/JOEtZ4Nu1iwvEovPsZ+gHEprm0u/bWuIACX/AbVok4WqAfTWMHCWTLw==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-circle/-/uui-loader-circle-1.3.0-rc.1.tgz", + "integrity": "sha512-o35PHIh24YkLkEhckzhwmZ+rTuCflujLnqyy00aYWDb87OQrriuBVyFIH+bLF2HRHBeqbwrn6wQlmZac+h+3+g==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-menu-item": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-menu-item/-/uui-menu-item-1.3.0-rc.0.tgz", - "integrity": "sha512-l2OWqZwQ/pLd13ofwc9MWxlm654giMZph7+/nz0Ia4hV0Irlwf8oTOOYkoQK32vuAd0WFAyz/bvnBh9FdblYug==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-menu-item/-/uui-menu-item-1.3.0-rc.1.tgz", + "integrity": "sha512-CEjvE++0K4a7FYuGmztWnMpuWm0jTdC5yRn1DElUPVU6w7ARQNF9jRnlideoHpSLR68cbckjEkR1MsTPSYvxzQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-loader-bar": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-expand": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-loader-bar": "1.3.0-rc.1", + "@umbraco-ui/uui-symbol-expand": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-modal": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-modal/-/uui-modal-1.3.0-rc.0.tgz", - "integrity": "sha512-/dzmqW0BdXUsUQuZeFhfgwnkVvKTbzehBpQ8dg/RMIk3W9YbxO4SQQVmLNWt0YscvYuUD45dHcYi28fmkJhPjA==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-modal/-/uui-modal-1.3.0-rc.1.tgz", + "integrity": "sha512-s4KS4kaLlf26m0JoD/R04L0zkaIwe6YwdIK2HFmu9jt34T25Xwk+L/ofII+yQTUf1B7yN9/VqdtCCrf+7smpsw==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-pagination": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-pagination/-/uui-pagination-1.3.0-rc.0.tgz", - "integrity": "sha512-BopIJIfYV9VIuGWg7xNJIhFGzgor9gHOOoRMRIjXrk4giz9RFFnwM4EVTD2HFoR7TOsqEf0V+BAH2uYnu231nA==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-pagination/-/uui-pagination-1.3.0-rc.1.tgz", + "integrity": "sha512-PMDjeEahSo12cAF6n3XmddOzJ/SVfKKAfPyLo2DXjaVCJx80Pe0QeavLH8fUHixb+b56y6qLYhij70PUEc8/Lg==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-button": "1.3.0-rc.0", - "@umbraco-ui/uui-button-group": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-button": "1.3.0-rc.1", + "@umbraco-ui/uui-button-group": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-popover": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover/-/uui-popover-1.3.0-rc.0.tgz", - "integrity": "sha512-W9mCxR7RP6dA6A53Dxv8IaNTWJ4WnlBQA4ZvIlZUlh4GafWCCkKMEhfSKto4V/A3671DXz/qv/qpV9w5AL85BQ==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover/-/uui-popover-1.3.0-rc.1.tgz", + "integrity": "sha512-BbBv4lmQ+8i5qIQ+M1BqTpRzwinNp4TB+L7EgX6CQLiqjcXKtbgf5XeiUdBI+m4DmChkPw8plyuwOwfyx44uCw==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-progress-bar": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-progress-bar/-/uui-progress-bar-1.3.0-rc.0.tgz", - "integrity": "sha512-l8UwQePSkyMFWK5Urf/PQj1tVAHK89aSK/PBqnDBJLBXvTmFNbA8/habNCIEEfGsHFqYObC8YZ14k8VeRntiog==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-progress-bar/-/uui-progress-bar-1.3.0-rc.1.tgz", + "integrity": "sha512-Bg7qi70LhRGERpfRI/QOTozQ/MN6A/XkiB4pyygDsOIN5pXv3RVEdDB2tWV0QLWoFW33/+gA6+nCYL3HWvp1ug==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-radio": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-radio/-/uui-radio-1.3.0-rc.0.tgz", - "integrity": "sha512-jlo5i57txTF77lKa72zbKhFAVReeaQ08tTNjfNVUWgm/JXyH+wVNj8Ann8BOd180Fwl8UGVPvnZlG3B+crzCFg==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-radio/-/uui-radio-1.3.0-rc.1.tgz", + "integrity": "sha512-lWsEoaItrSo61QAov0OqKW9DzUOKRS0MHALCc4f2XkphNQtNRp7VJziIqz+F0Eka7zH0Tunu+asq2RTs6WKdvA==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-range-slider": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-range-slider/-/uui-range-slider-1.3.0-rc.0.tgz", - "integrity": "sha512-ERk5q4QkC2EnQwX0Ab9r5WzssPkZGHhE/0BHehQgu0EizUU3Rbvi1AwuIwIJTgqLNaiULi914GItqDtGg5TmlQ==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-range-slider/-/uui-range-slider-1.3.0-rc.1.tgz", + "integrity": "sha512-YPoM3o5ds8UHk9eq11rnPIbPysHDk5455YgFliQQm2ie2SFiyJ7uv8gwW2x6xbS3SlAj0odli6TU3C6zIEudvg==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-ref": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref/-/uui-ref-1.3.0-rc.0.tgz", - "integrity": "sha512-JuRwA3lDKmPf/h+cp9aqXT969WJ0c14MXgN+Q0r+T8CyqPB/qNyK6odb5tis8YDBmlDr73x1L2izRYZmKDLkmA==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref/-/uui-ref-1.3.0-rc.1.tgz", + "integrity": "sha512-N4QTxknehDc4ozvvYe2Ly+C6hunCe3NuyV3ovYEqe/FcnD9JzLo982979V3AeN+EGTLg4E4inVikFzQl7c0kVg==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-ref-list": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-list/-/uui-ref-list-1.3.0-rc.0.tgz", - "integrity": "sha512-34Rt+Gvmo7oHk6f5ayTHaEOrKXoqR550IsjhBW+8j9n9iHcz6QZfj9Mo1ZFyz3RTfigygQU9sUXtGkICmd9vlQ==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-list/-/uui-ref-list-1.3.0-rc.1.tgz", + "integrity": "sha512-jL8tiaCXYZxRmzf0VfYvEO/TJnVSWhoZcTzbY69Ed+sf8ol4xYl7HwbIsYNoJCKzxNSNF3KUZqmXiTV2dwQIAA==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-ref-node": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node/-/uui-ref-node-1.3.0-rc.0.tgz", - "integrity": "sha512-ppkzQnlWHxzYoiF2IbUZa16fXR7sTNVR3N00fN5iY0nS4HxTasLwkdgvv8hBluyD9fBeqqwuTaeHHyW+9lPdPQ==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node/-/uui-ref-node-1.3.0-rc.1.tgz", + "integrity": "sha512-3ymJ/lgh+xAiVKkuR21sLVBpVP4WSELmpFilSu+fg5iXrsnAIHiJp3L0lnePW1u81sVuVev4/UcuQC+nMOatGA==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-icon": "1.3.0-rc.0", - "@umbraco-ui/uui-ref": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-icon": "1.3.0-rc.1", + "@umbraco-ui/uui-ref": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-ref-node-data-type": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-data-type/-/uui-ref-node-data-type-1.3.0-rc.0.tgz", - "integrity": "sha512-gdLGOLHJw4Y2nkzbijuSG1fxTcUe+ZsV49/veyPs7r/f7lVDekFwuwnHFsPU6+zt4Y5yJY6ppWvrcZrRIr5hXg==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-data-type/-/uui-ref-node-data-type-1.3.0-rc.1.tgz", + "integrity": "sha512-lrI+bcoZHztdN8rykGkJ47AXPIYSJCDAz3AP8sZX/9kSKzWHpZuKtb0QIHzFI1OaSskNe6YLrikkbrs555BXlg==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-ref-node": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-ref-node-document-type": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-document-type/-/uui-ref-node-document-type-1.3.0-rc.0.tgz", - "integrity": "sha512-xyearXKLSZTmNDpYGAfC52e1xIrtVwpbH8Al8vxWgXInmJSj9XWkkp9b66FDbOirYJwp9fPh/wqnf5d3CYa/SA==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-document-type/-/uui-ref-node-document-type-1.3.0-rc.1.tgz", + "integrity": "sha512-bkyyt3jWN3XGmQcJ+vG+WKIalrzahP/73mVgjef47zv5yuPOfTGOSA8l9C5QmAm5238klyCXM+sw+cRmsrvcnw==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-ref-node": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-ref-node-form": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-form/-/uui-ref-node-form-1.3.0-rc.0.tgz", - "integrity": "sha512-m9Ke31kpDBnc4b1J6FwARkvvkiYfv2QIvGW5mS+A2GbXIot6SIRH85I7aMP/K/L6AlLMxxwqAexZ3c7G9T9ZMw==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-form/-/uui-ref-node-form-1.3.0-rc.1.tgz", + "integrity": "sha512-p6rx5GuUj3SxSK7GuRzmICfDCy4LVs0FNyfFrQV3wtgFC2QFndepmEZfzW4iazSPBmNK1Av/rxwzEjEvVX6Klg==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-ref-node": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-ref-node-member": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-member/-/uui-ref-node-member-1.3.0-rc.0.tgz", - "integrity": "sha512-BHmgz0TwHa4VXQ/8AxXw3S816CV8gFUmC6ZAwAxn1Ct4ch91JxPfbIXpjwb2LK9shReAODguAku9OsTyn7PV/w==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-member/-/uui-ref-node-member-1.3.0-rc.1.tgz", + "integrity": "sha512-CbF/8hdoElDwLOJCfd3op5ELS4iwIwStCCR50/UunXBOPZ+QSjJ275DOcZEU6oxIFbmPX02qyghry08aqNqzFg==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-ref-node": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-ref-node-package": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-package/-/uui-ref-node-package-1.3.0-rc.0.tgz", - "integrity": "sha512-vQlJCltDmSKBoF0FZeBSqNcmLtQQMVTSB1Ap/VhBDbJzyfhN3GbQBWx4Sb27b9/7/e4hePHYmRGdIqLT/qr++g==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-package/-/uui-ref-node-package-1.3.0-rc.1.tgz", + "integrity": "sha512-Ck8v0t7/dyv8uF5gEXWjBzKSIB2zJ3GRJJ8FrYFquhloXCRxpDOkw0Pr6fmssvpVLU2HmOEDO2UELJHefZznMA==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-ref-node": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-ref-node-user": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-user/-/uui-ref-node-user-1.3.0-rc.0.tgz", - "integrity": "sha512-U5JvCBbnwo5cY4HKra7H19SP+74FhikzNscAXKi4jzpqaatG24gA+M8bJd33vKM3zxmNou5Hr2qH064jzdqABg==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-user/-/uui-ref-node-user-1.3.0-rc.1.tgz", + "integrity": "sha512-dVbZ4KI8fjyQtnVQIV0OWMhyXj+zxA+IMSL1WnnWrjWjaR63bbkzGl1x7qyJ9uCKDW2KDc5r8yYE1RYuGrLWLQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-ref-node": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-scroll-container": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-scroll-container/-/uui-scroll-container-1.3.0-rc.0.tgz", - "integrity": "sha512-PLAi0JoFufdMhKbU3VOrXvxmgg4GJBEWpb5urEckakw6Tp6czmduXznzf8mopgD2TkWY0P7Ztbxtmg/3XCXDbQ==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-scroll-container/-/uui-scroll-container-1.3.0-rc.1.tgz", + "integrity": "sha512-/ne21oyCKFSOjVon2REQDRiZuK1/eQirppjq89USMbMfThLnQDUS76Hx6KQZ2weCBSC+HSAtq8+1xx0dMPomrg==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-select": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-select/-/uui-select-1.3.0-rc.0.tgz", - "integrity": "sha512-X/9KMWAlnJl5Qj2OQK7GMbz6f7KuJjkT9LEenwZ571/xZ/3plrFzRz9vUFSUgq3WHzIawgQGWgI+ladL0o+8vg==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-select/-/uui-select-1.3.0-rc.1.tgz", + "integrity": "sha512-NCUPmvUcl0iYsSxY4TEhrFQqeKXc14xS3oEgQNSnWCzE15w5NY1F4tzsr3zcDXr84JVRj5ZAq0wW6eScpN5JAg==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-slider": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-slider/-/uui-slider-1.3.0-rc.0.tgz", - "integrity": "sha512-ZjJps15USfPYPJ/imN1TglfcgZULAMnOS/1IcVpELXsjRF/c/MBAdHuM7KVDbMd+EEgQCJukV0fLF68U9nF0Ng==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-slider/-/uui-slider-1.3.0-rc.1.tgz", + "integrity": "sha512-eTzXe+/6+RHaCg6wxRpq0+rNztjwLdVHDYURF4OHmy9dXkRxVuOFMNwCFOIAsz4BL1+mttrLDfrW1vhfATMv2g==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-symbol-expand": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-expand/-/uui-symbol-expand-1.3.0-rc.0.tgz", - "integrity": "sha512-t7QzRyvg6SLyC9ld2r26i4WcRJOyhv/GNiY7lfxmWKDcczwi1Tp3pwOMPQQqlR9vM3MzOJWefUtXPPD/FTm1hQ==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-expand/-/uui-symbol-expand-1.3.0-rc.1.tgz", + "integrity": "sha512-1oFDlkT4kv5adZYoewNqdwISYwUZm8KUaJLd9yJKFFI5qTveRJrjPrb3WMAeEFMXCHPPHud65G5E/YpHJelh3Q==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-symbol-file": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file/-/uui-symbol-file-1.3.0-rc.0.tgz", - "integrity": "sha512-0tTeR6/lu2nGje6e4D4mC5dEKt26FqyZziy/BwpYmOt3tigmV8AN6nVUSFERM8uvwONngKZGFiDnHqrvsFzjZg==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file/-/uui-symbol-file-1.3.0-rc.1.tgz", + "integrity": "sha512-J0qZRewOKICUp7xNNazCI03r7u54qNK/Z20a0tA1DWeNEAoDPwQjEmdoYJaJtNtZljMESH2bHljLookslz69OA==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-symbol-file-dropzone": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-dropzone/-/uui-symbol-file-dropzone-1.3.0-rc.0.tgz", - "integrity": "sha512-k/qAam7uXVYpKDUn46Bq7GY3fnXw4ASMz8aIzD2ufM+39bNPFT+/OCHufFShfvSP4Ghn4dfTRO8xKzf/vySNWg==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-dropzone/-/uui-symbol-file-dropzone-1.3.0-rc.1.tgz", + "integrity": "sha512-isM6JailiXmFY2bL7ephhqlcp5nIDjluTmEDHUvVrJ5WNFt/Fi697qqff7C0Pdx5UhRjKOX0kU1VMbFuz3mp5g==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-symbol-file-thumbnail": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-thumbnail/-/uui-symbol-file-thumbnail-1.3.0-rc.0.tgz", - "integrity": "sha512-v1mVtH/MMxPGzUSDYjvQD2WHvkCd97ZtiezhrmnW9k+2uZUTwq5FFDDcEEzjnrsS3I9onoRZpIJ10QkIxRJldg==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-thumbnail/-/uui-symbol-file-thumbnail-1.3.0-rc.1.tgz", + "integrity": "sha512-1zlki2K3/woG3GfzP4BXkUNnDETfRO7LveD05qCG7n/ZDRV4sADdkBoiccO1x2XX8kkcJ1PaoLIC7DIV2Hmx1w==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-symbol-folder": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-folder/-/uui-symbol-folder-1.3.0-rc.0.tgz", - "integrity": "sha512-KSz3gPtSTD8Zrlze8TyEGjrHo6VY4dZvnDrcttGTs8L8DneVQ0VTFVFkjQiIgiBJFuPuN8e0Jj30S0ONUeRu1g==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-folder/-/uui-symbol-folder-1.3.0-rc.1.tgz", + "integrity": "sha512-yIY2dv/uCLQpz+CvO8j8eUnRj9UbLV392ORqBiAuFKcpJkrxxRiT0fFa7X7Ru2hdAPsewFEOV2JNsVgzA6jZKg==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-symbol-lock": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-lock/-/uui-symbol-lock-1.3.0-rc.0.tgz", - "integrity": "sha512-5UxN3Z/zdYrVfxoAvw5kOzUI5oEE7j2AaalPz9KcqV04SjAsWn3MNDkW1iyW0t626x+7PRrfktRAroK58JRqMA==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-lock/-/uui-symbol-lock-1.3.0-rc.1.tgz", + "integrity": "sha512-Hg07wGE/Z9KOuCn96p/qoGmvtHKuTRxOTV1A8VpkxMybkpxPZalh/Gdf9ucm0RHoCw5zVM4YogPRiWsE/V+W3g==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-symbol-more": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-more/-/uui-symbol-more-1.3.0-rc.0.tgz", - "integrity": "sha512-Y/EXL6MFJrOsRW8mA2Za2onSdNlandghuJyhtuNecj9lB/5k+dncOvHDHmbsCBsTZCENt32R0h6UtxIuA2VLyw==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-more/-/uui-symbol-more-1.3.0-rc.1.tgz", + "integrity": "sha512-DhPkgd6G1P32EZEc6xwlHtXP6h3douayMDGTVhZ4HAi6WDgOd1pN8qRo6j7wkWH6fXtLVUdTHlbqwJHKbyi5Mw==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-symbol-sort": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-sort/-/uui-symbol-sort-1.3.0-rc.0.tgz", - "integrity": "sha512-jERMu0bWxpaTEUSGZXStqScAzjp0pSuv3oK7A+A9tJLl7+8SxeoH8JaLOkS+U8ZXQd3fa3CJz0k49BDakdnpVg==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-sort/-/uui-symbol-sort-1.3.0-rc.1.tgz", + "integrity": "sha512-2mLYMiZ2vCueJy8L2Bh9meK3nqCRHUG1f2/d2Efqq1ZpCyEPaMn+ctHGxLRZQuN4u4IvuS71eCrHB7TaolWbcQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-table": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-table/-/uui-table-1.3.0-rc.0.tgz", - "integrity": "sha512-Tu3aiZxRBk0yjo+O2VEQqcoZKERjwOoK4ew0avOLcXht11AOcyzNdSgmo2aC4vbQ43UgrA+EcsOIwftnCk8Ocw==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-table/-/uui-table-1.3.0-rc.1.tgz", + "integrity": "sha512-4cfii+SvqSIwWgbEk6dbjZWJY4xDk+iy9OSSREdt0b/j1z/9ColG3OkHkcd7ScgYNNH+5nic7qR4W2gBXMgN4g==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-tabs": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tabs/-/uui-tabs-1.3.0-rc.0.tgz", - "integrity": "sha512-HCBPPWy10RT4V2XMkwGbUYwp1EjB7MKAUpriFrtIOMuL5mnCIIi3hLNS44tUteF6okM3q2UhDEw808qcfDtFEQ==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tabs/-/uui-tabs-1.3.0-rc.1.tgz", + "integrity": "sha512-MTVGNIbXgoZYnd/n9erp1akgpYCcw9pONJalLAVxvs85WpYtaOPaeT5mnXQctNgc51U/N4THx31C9fy8L2dT7A==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-tag": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tag/-/uui-tag-1.3.0-rc.0.tgz", - "integrity": "sha512-AnTzPxkzCe72dUs6N7cZROONSASXjGzg6D1Vlz+gsuUeYWb+lLXgoJU7WQxOSLhI/ceaKwpspdQlpVOTVYFUbQ==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tag/-/uui-tag-1.3.0-rc.1.tgz", + "integrity": "sha512-GGyutbeJUWA55t75Ahu+yg62h9dtGe79fRa93muNOcJE5SfAzk5t8dMaqoRJEI2Xxdt5/So9CbviwnmYpf8Prg==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-textarea": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-textarea/-/uui-textarea-1.3.0-rc.0.tgz", - "integrity": "sha512-/h1K+F6UWrXE6mBD38Rq1IimYanz9ZOq76JsPh8FEhpHcjRpgYVdRrfYl/zpi3vLoqi0YJStAe7hYCdv9EFa7g==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-textarea/-/uui-textarea-1.3.0-rc.1.tgz", + "integrity": "sha512-vM+dqJPi4SRAz5nXYi9trAzk91yIVATYW9UCQmPL8CMmaHEi3SXoiSAWgXV9w8/3utGpDRTXdTmkMRTBRFRrbQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-toast-notification": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification/-/uui-toast-notification-1.3.0-rc.0.tgz", - "integrity": "sha512-bPKiT+vaiI95p3lyXTkG0p3gDAPNEPl5eZrKL/+OI+kUfHX0TUUqx0Fkpsb/GfaYqTIC9ebsItR8/HUD1TMAGg==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification/-/uui-toast-notification-1.3.0-rc.1.tgz", + "integrity": "sha512-omiPv0DQb5HYDiktLkfoibOF1WqTvfOxS8G0PHBRpN/ov6qvBhkXyhKeNSH7979cPu+8PTU8g3VKOBeKbTv04A==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-button": "1.3.0-rc.0", - "@umbraco-ui/uui-css": "1.3.0-rc.0", - "@umbraco-ui/uui-icon": "1.3.0-rc.0", - "@umbraco-ui/uui-icon-registry-essential": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-button": "1.3.0-rc.1", + "@umbraco-ui/uui-css": "1.3.0-rc.1", + "@umbraco-ui/uui-icon": "1.3.0-rc.1", + "@umbraco-ui/uui-icon-registry-essential": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-toast-notification-container": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-container/-/uui-toast-notification-container-1.3.0-rc.0.tgz", - "integrity": "sha512-3Oc6akKmtPUe6RrgxzgNq++RHxCk1aiIOAmxbf4zc07kcFzFq8loFsKlugu6FG9qBIQBrlJqGUtaDzBwcrjRbA==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-container/-/uui-toast-notification-container-1.3.0-rc.1.tgz", + "integrity": "sha512-sPTA3wjQf7ArcHJIzZeHFHheMtabJy2qgeNtXH1wdFSg4sZVn7sJ9FaGANDA70PmGJbWJe2DiX+s414jjJKGnQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-toast-notification": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-toast-notification": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-toast-notification-layout": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-layout/-/uui-toast-notification-layout-1.3.0-rc.0.tgz", - "integrity": "sha512-Ecu9yafMlEl7F5SHGSXYxXsoDB85mvg3gQY3u7CFeEA28DPT80Ec0c7ZCOucIiAzT9yRulJ/sYVXVAm4SBH3iA==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-layout/-/uui-toast-notification-layout-1.3.0-rc.1.tgz", + "integrity": "sha512-xcX03MfPWPSXcpM2Zi0BHvLnrxwcQbVLRd0pMFRkp3PdwIIO8HkhLOEcUaFAEamJiXdVGY61JDUjsjJ4FXMgvg==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-css": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-css": "1.3.0-rc.1" } }, "node_modules/@umbraco-ui/uui-toggle": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.3.0-rc.0.tgz", - "integrity": "sha512-BSr/F+4K7HLY+ZYPhG00PwEq9viXvX8122cjvc9vr+Ov4nlVmgBxwwSBJO6XEHQNpE1h9FQq+WCz5EDj787SnQ==", + "version": "1.3.0-rc.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.3.0-rc.1.tgz", + "integrity": "sha512-UCA/kpUnDsPbFI9O3Wk2eUikvX7HCOfJqqZ0dL2Lmw/4cXqX/i6t7jhufWnsIGczLbx0j0Qw6yTScmP2g21z6w==", "dependencies": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-boolean-input": "1.3.0-rc.0" + "@umbraco-ui/uui-base": "1.3.0-rc.1", + "@umbraco-ui/uui-boolean-input": "1.3.0-rc.1" } }, "node_modules/@web/browser-logs": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.2.6.tgz", - "integrity": "sha512-CNjNVhd4FplRY8PPWIAt02vAowJAVcOoTNrR/NNb/o9pka7yI9qdjpWrWhEbPr2pOXonWb52AeAgdK66B8ZH7w==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.3.1.tgz", + "integrity": "sha512-zt7KvGZzHQgULw2cQkX3v9Yo8b6X+ualFJKJ+6so652LyNcoUis8tzHIF4zbcJzXKsZ7knZPasmc/2in+Cw+WQ==", "dev": true, "dependencies": { "errorstacks": "^2.2.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=16.0.0" } }, "node_modules/@web/config-loader": { @@ -6790,9 +7218,9 @@ } }, "node_modules/@web/config-loader/node_modules/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -7368,161 +7796,6 @@ "node": ">=16.0.0" } }, - "node_modules/@web/test-runner-chrome/node_modules/@web/browser-logs": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.3.1.tgz", - "integrity": "sha512-zt7KvGZzHQgULw2cQkX3v9Yo8b6X+ualFJKJ+6so652LyNcoUis8tzHIF4zbcJzXKsZ7knZPasmc/2in+Cw+WQ==", - "dev": true, - "dependencies": { - "errorstacks": "^2.2.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@web/test-runner-chrome/node_modules/@web/dev-server-core": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.5.1.tgz", - "integrity": "sha512-pXgb4bjDmPIaIQT9luixTSqTvRQxttUEzSKOZqLNl6pVgrl4n47ZtmZte936G2tM7nHmpT+oaMDDtCM0CgbQNQ==", - "dev": true, - "dependencies": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^2.0.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^8.0.4", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@web/test-runner-chrome/node_modules/@web/parse5-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-2.0.0.tgz", - "integrity": "sha512-9pxjAg1k0Ie3t4gTQr/nmoTrvq6wmP40MNPwaetaN+jPc328MpO+WzmEApvJOW65v7lamjlvYFDsdvG8Lrd87Q==", - "dev": true, - "dependencies": { - "@types/parse5": "^6.0.1", - "parse5": "^6.0.1" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@web/test-runner-chrome/node_modules/@web/test-runner-core": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.11.1.tgz", - "integrity": "sha512-4Jt7BcmBXXYCCs/k71SFqKFUTYDSEFak4IaubFIyDohnlkyeun8tF+YBZoK8W/7/kPNozzvJC68O9Nr44Q5KXg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.11", - "@types/babel__code-frame": "^7.0.2", - "@types/co-body": "^6.1.0", - "@types/convert-source-map": "^2.0.0", - "@types/debounce": "^1.2.0", - "@types/istanbul-lib-coverage": "^2.0.3", - "@types/istanbul-reports": "^3.0.0", - "@web/browser-logs": "^0.3.1", - "@web/dev-server-core": "^0.5.1", - "chokidar": "^3.4.3", - "cli-cursor": "^3.1.0", - "co-body": "^6.1.0", - "convert-source-map": "^2.0.0", - "debounce": "^1.2.0", - "dependency-graph": "^0.11.0", - "globby": "^11.0.1", - "ip": "^1.1.5", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.0.2", - "log-update": "^4.0.0", - "nanocolors": "^0.2.1", - "nanoid": "^3.1.25", - "open": "^8.0.2", - "picomatch": "^2.2.2", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@web/test-runner-chrome/node_modules/@web/test-runner-coverage-v8": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.6.1.tgz", - "integrity": "sha512-kqIC2iR5QgpwVU0rmOjknRyMmRbj+LNTEomBP50ycYfOEPDC0SWhUolfSh4Nb5eC+LVUm4zGxN5LsnBwB6d0xg==", - "dev": true, - "dependencies": { - "@web/test-runner-core": "^0.11.0", - "istanbul-lib-coverage": "^3.0.0", - "lru-cache": "^8.0.4", - "picomatch": "^2.2.2", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@web/test-runner-chrome/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/@web/test-runner-chrome/node_modules/es-module-lexer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", - "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", - "dev": true - }, - "node_modules/@web/test-runner-chrome/node_modules/ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", - "dev": true - }, - "node_modules/@web/test-runner-chrome/node_modules/lru-cache": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", - "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", - "dev": true, - "engines": { - "node": ">=16.14" - } - }, - "node_modules/@web/test-runner-chrome/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/@web/test-runner-commands": { "version": "0.6.6", "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.6.6.tgz", @@ -7536,7 +7809,19 @@ "node": ">=12.0.0" } }, - "node_modules/@web/test-runner-core": { + "node_modules/@web/test-runner-commands/node_modules/@web/browser-logs": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.2.6.tgz", + "integrity": "sha512-CNjNVhd4FplRY8PPWIAt02vAowJAVcOoTNrR/NNb/o9pka7yI9qdjpWrWhEbPr2pOXonWb52AeAgdK66B8ZH7w==", + "dev": true, + "dependencies": { + "errorstacks": "^2.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/test-runner-commands/node_modules/@web/test-runner-core": { "version": "0.10.29", "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.29.tgz", "integrity": "sha512-0/ZALYaycEWswHhpyvl5yqo0uIfCmZe8q14nGPi1dMmNiqLcHjyFGnuIiLexI224AW74ljHcHllmDlXK9FUKGA==", @@ -7573,86 +7858,19 @@ "node": ">=12.0.0" } }, - "node_modules/@web/test-runner-core/node_modules/convert-source-map": { + "node_modules/@web/test-runner-commands/node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "node_modules/@web/test-runner-core/node_modules/ip": { + "node_modules/@web/test-runner-commands/node_modules/ip": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", "dev": true }, - "node_modules/@web/test-runner-mocha": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.8.1.tgz", - "integrity": "sha512-CfYNZBbUSBiPNKkbF/dhxayecLCYZnu3g4cfgpfgmvLewlVOO6gNxaPt2c1/QhZutzTvXcMlsmaoWyk08F+V6A==", - "dev": true, - "dependencies": { - "@types/mocha": "^10.0.1", - "@web/test-runner-core": "^0.11.1" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@web/test-runner-mocha/node_modules/@web/browser-logs": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.3.1.tgz", - "integrity": "sha512-zt7KvGZzHQgULw2cQkX3v9Yo8b6X+ualFJKJ+6so652LyNcoUis8tzHIF4zbcJzXKsZ7knZPasmc/2in+Cw+WQ==", - "dev": true, - "dependencies": { - "errorstacks": "^2.2.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@web/test-runner-mocha/node_modules/@web/dev-server-core": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.5.1.tgz", - "integrity": "sha512-pXgb4bjDmPIaIQT9luixTSqTvRQxttUEzSKOZqLNl6pVgrl4n47ZtmZte936G2tM7nHmpT+oaMDDtCM0CgbQNQ==", - "dev": true, - "dependencies": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^2.0.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^8.0.4", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@web/test-runner-mocha/node_modules/@web/parse5-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-2.0.0.tgz", - "integrity": "sha512-9pxjAg1k0Ie3t4gTQr/nmoTrvq6wmP40MNPwaetaN+jPc328MpO+WzmEApvJOW65v7lamjlvYFDsdvG8Lrd87Q==", - "dev": true, - "dependencies": { - "@types/parse5": "^6.0.1", - "parse5": "^6.0.1" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@web/test-runner-mocha/node_modules/@web/test-runner-core": { + "node_modules/@web/test-runner-core": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.11.1.tgz", "integrity": "sha512-4Jt7BcmBXXYCCs/k71SFqKFUTYDSEFak4IaubFIyDohnlkyeun8tF+YBZoK8W/7/kPNozzvJC68O9Nr44Q5KXg==", @@ -7689,25 +7907,67 @@ "node": ">=16.0.0" } }, - "node_modules/@web/test-runner-mocha/node_modules/convert-source-map": { + "node_modules/@web/test-runner-core/node_modules/@web/dev-server-core": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.5.1.tgz", + "integrity": "sha512-pXgb4bjDmPIaIQT9luixTSqTvRQxttUEzSKOZqLNl6pVgrl4n47ZtmZte936G2tM7nHmpT+oaMDDtCM0CgbQNQ==", + "dev": true, + "dependencies": { + "@types/koa": "^2.11.6", + "@types/ws": "^7.4.0", + "@web/parse5-utils": "^2.0.0", + "chokidar": "^3.4.3", + "clone": "^2.1.2", + "es-module-lexer": "^1.0.0", + "get-stream": "^6.0.0", + "is-stream": "^2.0.0", + "isbinaryfile": "^5.0.0", + "koa": "^2.13.0", + "koa-etag": "^4.0.0", + "koa-send": "^5.0.1", + "koa-static": "^5.0.0", + "lru-cache": "^8.0.4", + "mime-types": "^2.1.27", + "parse5": "^6.0.1", + "picomatch": "^2.2.2", + "ws": "^7.4.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@web/test-runner-core/node_modules/@web/parse5-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-2.0.0.tgz", + "integrity": "sha512-9pxjAg1k0Ie3t4gTQr/nmoTrvq6wmP40MNPwaetaN+jPc328MpO+WzmEApvJOW65v7lamjlvYFDsdvG8Lrd87Q==", + "dev": true, + "dependencies": { + "@types/parse5": "^6.0.1", + "parse5": "^6.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@web/test-runner-core/node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "node_modules/@web/test-runner-mocha/node_modules/es-module-lexer": { + "node_modules/@web/test-runner-core/node_modules/es-module-lexer": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", "dev": true }, - "node_modules/@web/test-runner-mocha/node_modules/ip": { + "node_modules/@web/test-runner-core/node_modules/ip": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", "dev": true }, - "node_modules/@web/test-runner-mocha/node_modules/lru-cache": { + "node_modules/@web/test-runner-core/node_modules/lru-cache": { "version": "8.0.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", @@ -7716,7 +7976,7 @@ "node": ">=16.14" } }, - "node_modules/@web/test-runner-mocha/node_modules/ws": { + "node_modules/@web/test-runner-core/node_modules/ws": { "version": "7.5.9", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", @@ -7737,112 +7997,7 @@ } } }, - "node_modules/@web/test-runner-playwright": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-playwright/-/test-runner-playwright-0.10.0.tgz", - "integrity": "sha512-30AFGe7glWV1vKlkeW3aPdQgfLNNeiEDCiskIqqMosJGdIAx+1HuzAoMj+fBk9hREhQI9Q6xvvhJVsM9ZI/zcQ==", - "dev": true, - "dependencies": { - "@web/test-runner-core": "^0.11.0", - "@web/test-runner-coverage-v8": "^0.6.0", - "playwright": "^1.22.2" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@web/test-runner-playwright/node_modules/@web/browser-logs": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.3.1.tgz", - "integrity": "sha512-zt7KvGZzHQgULw2cQkX3v9Yo8b6X+ualFJKJ+6so652LyNcoUis8tzHIF4zbcJzXKsZ7knZPasmc/2in+Cw+WQ==", - "dev": true, - "dependencies": { - "errorstacks": "^2.2.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@web/test-runner-playwright/node_modules/@web/dev-server-core": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.5.1.tgz", - "integrity": "sha512-pXgb4bjDmPIaIQT9luixTSqTvRQxttUEzSKOZqLNl6pVgrl4n47ZtmZte936G2tM7nHmpT+oaMDDtCM0CgbQNQ==", - "dev": true, - "dependencies": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^2.0.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^8.0.4", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@web/test-runner-playwright/node_modules/@web/parse5-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-2.0.0.tgz", - "integrity": "sha512-9pxjAg1k0Ie3t4gTQr/nmoTrvq6wmP40MNPwaetaN+jPc328MpO+WzmEApvJOW65v7lamjlvYFDsdvG8Lrd87Q==", - "dev": true, - "dependencies": { - "@types/parse5": "^6.0.1", - "parse5": "^6.0.1" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@web/test-runner-playwright/node_modules/@web/test-runner-core": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.11.1.tgz", - "integrity": "sha512-4Jt7BcmBXXYCCs/k71SFqKFUTYDSEFak4IaubFIyDohnlkyeun8tF+YBZoK8W/7/kPNozzvJC68O9Nr44Q5KXg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.11", - "@types/babel__code-frame": "^7.0.2", - "@types/co-body": "^6.1.0", - "@types/convert-source-map": "^2.0.0", - "@types/debounce": "^1.2.0", - "@types/istanbul-lib-coverage": "^2.0.3", - "@types/istanbul-reports": "^3.0.0", - "@web/browser-logs": "^0.3.1", - "@web/dev-server-core": "^0.5.1", - "chokidar": "^3.4.3", - "cli-cursor": "^3.1.0", - "co-body": "^6.1.0", - "convert-source-map": "^2.0.0", - "debounce": "^1.2.0", - "dependency-graph": "^0.11.0", - "globby": "^11.0.1", - "ip": "^1.1.5", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.0.2", - "log-update": "^4.0.0", - "nanocolors": "^0.2.1", - "nanoid": "^3.1.25", - "open": "^8.0.2", - "picomatch": "^2.2.2", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@web/test-runner-playwright/node_modules/@web/test-runner-coverage-v8": { + "node_modules/@web/test-runner-coverage-v8": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.6.1.tgz", "integrity": "sha512-kqIC2iR5QgpwVU0rmOjknRyMmRbj+LNTEomBP50ycYfOEPDC0SWhUolfSh4Nb5eC+LVUm4zGxN5LsnBwB6d0xg==", @@ -7858,25 +8013,7 @@ "node": ">=16.0.0" } }, - "node_modules/@web/test-runner-playwright/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/@web/test-runner-playwright/node_modules/es-module-lexer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", - "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", - "dev": true - }, - "node_modules/@web/test-runner-playwright/node_modules/ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", - "dev": true - }, - "node_modules/@web/test-runner-playwright/node_modules/lru-cache": { + "node_modules/@web/test-runner-coverage-v8/node_modules/lru-cache": { "version": "8.0.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", @@ -7885,76 +8022,28 @@ "node": ">=16.14" } }, - "node_modules/@web/test-runner-playwright/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/@web/test-runner/node_modules/@web/browser-logs": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.3.1.tgz", - "integrity": "sha512-zt7KvGZzHQgULw2cQkX3v9Yo8b6X+ualFJKJ+6so652LyNcoUis8tzHIF4zbcJzXKsZ7knZPasmc/2in+Cw+WQ==", + "node_modules/@web/test-runner-mocha": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.8.1.tgz", + "integrity": "sha512-CfYNZBbUSBiPNKkbF/dhxayecLCYZnu3g4cfgpfgmvLewlVOO6gNxaPt2c1/QhZutzTvXcMlsmaoWyk08F+V6A==", "dev": true, "dependencies": { - "errorstacks": "^2.2.0" + "@types/mocha": "^10.0.1", + "@web/test-runner-core": "^0.11.1" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@web/test-runner/node_modules/@web/dev-server-core": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.5.1.tgz", - "integrity": "sha512-pXgb4bjDmPIaIQT9luixTSqTvRQxttUEzSKOZqLNl6pVgrl4n47ZtmZte936G2tM7nHmpT+oaMDDtCM0CgbQNQ==", + "node_modules/@web/test-runner-playwright": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-playwright/-/test-runner-playwright-0.10.0.tgz", + "integrity": "sha512-30AFGe7glWV1vKlkeW3aPdQgfLNNeiEDCiskIqqMosJGdIAx+1HuzAoMj+fBk9hREhQI9Q6xvvhJVsM9ZI/zcQ==", "dev": true, "dependencies": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^2.0.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^8.0.4", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@web/test-runner/node_modules/@web/parse5-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-2.0.0.tgz", - "integrity": "sha512-9pxjAg1k0Ie3t4gTQr/nmoTrvq6wmP40MNPwaetaN+jPc328MpO+WzmEApvJOW65v7lamjlvYFDsdvG8Lrd87Q==", - "dev": true, - "dependencies": { - "@types/parse5": "^6.0.1", - "parse5": "^6.0.1" + "@web/test-runner-core": "^0.11.0", + "@web/test-runner-coverage-v8": "^0.6.0", + "playwright": "^1.22.2" }, "engines": { "node": ">=16.0.0" @@ -7973,91 +8062,12 @@ "node": ">=16.0.0" } }, - "node_modules/@web/test-runner/node_modules/@web/test-runner-core": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.11.1.tgz", - "integrity": "sha512-4Jt7BcmBXXYCCs/k71SFqKFUTYDSEFak4IaubFIyDohnlkyeun8tF+YBZoK8W/7/kPNozzvJC68O9Nr44Q5KXg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.11", - "@types/babel__code-frame": "^7.0.2", - "@types/co-body": "^6.1.0", - "@types/convert-source-map": "^2.0.0", - "@types/debounce": "^1.2.0", - "@types/istanbul-lib-coverage": "^2.0.3", - "@types/istanbul-reports": "^3.0.0", - "@web/browser-logs": "^0.3.1", - "@web/dev-server-core": "^0.5.1", - "chokidar": "^3.4.3", - "cli-cursor": "^3.1.0", - "co-body": "^6.1.0", - "convert-source-map": "^2.0.0", - "debounce": "^1.2.0", - "dependency-graph": "^0.11.0", - "globby": "^11.0.1", - "ip": "^1.1.5", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.0.2", - "log-update": "^4.0.0", - "nanocolors": "^0.2.1", - "nanoid": "^3.1.25", - "open": "^8.0.2", - "picomatch": "^2.2.2", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=16.0.0" - } - }, "node_modules/@web/test-runner/node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "node_modules/@web/test-runner/node_modules/es-module-lexer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", - "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", - "dev": true - }, - "node_modules/@web/test-runner/node_modules/ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", - "dev": true - }, - "node_modules/@web/test-runner/node_modules/lru-cache": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", - "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", - "dev": true, - "engines": { - "node": ">=16.14" - } - }, - "node_modules/@web/test-runner/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/@xmldom/xmldom": { "version": "0.8.7", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.7.tgz", @@ -8540,9 +8550,9 @@ } }, "node_modules/axe-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", - "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.2.tgz", + "integrity": "sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==", "dev": true, "engines": { "node": ">=4" @@ -8597,13 +8607,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.3.tgz", + "integrity": "sha512-bM3gHc337Dta490gg+/AseNB9L4YLHxq1nGKZZSHbhXv4aTYU2MD2cjza1Ru4S6975YLTaL1K8uJf6ukJhhmtw==", "dev": true, "dependencies": { "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", + "@babel/helper-define-polyfill-provider": "^0.4.0", "semver": "^6.1.1" }, "peerDependencies": { @@ -8611,25 +8621,25 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.1.tgz", + "integrity": "sha512-ikFrZITKg1xH6pLND8zT14UPgjKHiGLqex7rGEZCH2EvhsneJaJPemmpQaIZV5AL03II+lXylw3UmddDK8RU5Q==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" + "@babel/helper-define-polyfill-provider": "^0.4.0", + "core-js-compat": "^3.30.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.0.tgz", + "integrity": "sha512-hDJtKjMLVa7Z+LwnTCxoDLQj6wdc+B8dun7ayF2fYieI6OzfuvcLMB32ihJZ4UhCBwNYGl5bg/x/P9cMdnkc2g==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3" + "@babel/helper-define-polyfill-provider": "^0.4.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -8941,9 +8951,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "version": "4.21.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.7.tgz", + "integrity": "sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==", "dev": true, "funding": [ { @@ -8953,13 +8963,17 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" + "caniuse-lite": "^1.0.30001489", + "electron-to-chromium": "^1.4.411", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" }, "bin": { "browserslist": "cli.js" @@ -9028,6 +9042,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "dev": true, + "dependencies": { + "run-applescript": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", @@ -9101,9 +9130,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001481", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001481.tgz", - "integrity": "sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==", + "version": "1.0.30001491", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001491.tgz", + "integrity": "sha512-17EYIi4TLnPiTzVKMveIxU5ETlxbSO3B6iPvMbprqnKh4qJsQGk5Nh1Lp4jIMAE0XfrujsJuWZAM3oJdMHaKBA==", "dev": true, "funding": [ { @@ -9415,9 +9444,9 @@ } }, "node_modules/cli-spinners": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.8.0.tgz", - "integrity": "sha512-/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz", + "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==", "dev": true, "engines": { "node": ">=6" @@ -9972,16 +10001,17 @@ } }, "node_modules/deep-equal": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz", - "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.1.tgz", + "integrity": "sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ==", "dev": true, "dependencies": { + "array-buffer-byte-length": "^1.0.0", "call-bind": "^1.0.2", - "es-get-iterator": "^1.1.2", - "get-intrinsic": "^1.1.3", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.0", "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.1", + "is-array-buffer": "^3.0.2", "is-date-object": "^1.0.5", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", @@ -9989,7 +10019,7 @@ "object-is": "^1.1.5", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", + "regexp.prototype.flags": "^1.5.0", "side-channel": "^1.0.4", "which-boxed-primitive": "^1.0.2", "which-collection": "^1.0.1", @@ -10014,6 +10044,24 @@ "node": ">=0.10.0" } }, + "node_modules/default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "dev": true, + "dependencies": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/default-browser-id": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", @@ -10030,6 +10078,116 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/default-browser/node_modules/execa": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", + "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/default-browser/node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/default-browser/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", @@ -10356,15 +10514,15 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.371", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.371.tgz", - "integrity": "sha512-jlBzY4tFcJaiUjzhRTCWAqRvTO/fWzjA3Bls0mykzGZ7zvcMP7h05W6UcgzfT9Ca1SW2xyKDOFRyI0pQeRNZGw==", + "version": "1.4.413", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.413.tgz", + "integrity": "sha512-Gd+/OAhRca06dkVxIQo/W7dr6Nmk9cx6lQdZ19GvFp51k5B/lUAokm6SJfNkdV8kFLsC3Z4sLTyEHWCnB1Efbw==", "dev": true }, "node_modules/element-internals-polyfill": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/element-internals-polyfill/-/element-internals-polyfill-1.3.1.tgz", - "integrity": "sha512-IeM6FjSEOg5IF5NEj9akC8OnMZEJfSkevSu12U4Ns6XvUdqvM7gxPvFJrVRW+hsQ1IG0cAfAs5pcMXTpdRxCSg==" + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/element-internals-polyfill/-/element-internals-polyfill-1.3.5.tgz", + "integrity": "sha512-mXwGeAwECFEJso68YsQUAzXzafEywE1bnYUbcgwjPAUJUwX50ZHpI3DhRWggj/bybEslYwkmdctp+7gcY68t3g==" }, "node_modules/emoji-regex": { "version": "10.2.1", @@ -10391,9 +10549,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.13.0.tgz", - "integrity": "sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==", + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.14.1.tgz", + "integrity": "sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -10563,9 +10721,9 @@ "dev": true }, "node_modules/esbuild": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.18.tgz", - "integrity": "sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", "dev": true, "hasInstallScript": true, "bin": { @@ -10575,28 +10733,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.17.18", - "@esbuild/android-arm64": "0.17.18", - "@esbuild/android-x64": "0.17.18", - "@esbuild/darwin-arm64": "0.17.18", - "@esbuild/darwin-x64": "0.17.18", - "@esbuild/freebsd-arm64": "0.17.18", - "@esbuild/freebsd-x64": "0.17.18", - "@esbuild/linux-arm": "0.17.18", - "@esbuild/linux-arm64": "0.17.18", - "@esbuild/linux-ia32": "0.17.18", - "@esbuild/linux-loong64": "0.17.18", - "@esbuild/linux-mips64el": "0.17.18", - "@esbuild/linux-ppc64": "0.17.18", - "@esbuild/linux-riscv64": "0.17.18", - "@esbuild/linux-s390x": "0.17.18", - "@esbuild/linux-x64": "0.17.18", - "@esbuild/netbsd-x64": "0.17.18", - "@esbuild/openbsd-x64": "0.17.18", - "@esbuild/sunos-x64": "0.17.18", - "@esbuild/win32-arm64": "0.17.18", - "@esbuild/win32-ia32": "0.17.18", - "@esbuild/win32-x64": "0.17.18" + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" } }, "node_modules/esbuild-plugin-alias": { @@ -10642,15 +10800,15 @@ } }, "node_modules/eslint": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", - "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", + "version": "8.41.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.41.0.tgz", + "integrity": "sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.39.0", + "@eslint/eslintrc": "^2.0.3", + "@eslint/js": "8.41.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -10661,8 +10819,8 @@ "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.0", - "espree": "^9.5.1", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.5.2", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -10670,13 +10828,12 @@ "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", @@ -10987,9 +11144,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -11145,14 +11302,14 @@ } }, "node_modules/espree": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", - "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", + "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", "dev": true, "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.0" + "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -11502,9 +11659,9 @@ } }, "node_modules/fetch-retry": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-5.0.5.tgz", - "integrity": "sha512-q9SvpKH5Ka6h7X2C6r1sP31pQoeDb3o6/R9cg21ahfPAqbIOkW9tus1dXfwYb6G6dOI4F7nVS4Q+LSssBGIz0A==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-5.0.6.tgz", + "integrity": "sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==", "dev": true }, "node_modules/figures": { @@ -11535,13 +11692,13 @@ } }, "node_modules/file-system-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/file-system-cache/-/file-system-cache-2.1.1.tgz", - "integrity": "sha512-vgZ1uDsK29DM4pptUOv47zdJO2tYM5M/ERyAE9Jk0QBN6e64Md+a+xJSOp68dCCDH4niFMVD8nC8n8A5ic0bmg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/file-system-cache/-/file-system-cache-2.3.0.tgz", + "integrity": "sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==", "dev": true, "dependencies": { - "fs-extra": "^11.1.0", - "ramda": "^0.28.0" + "fs-extra": "11.1.1", + "ramda": "0.29.0" } }, "node_modules/filelist": { @@ -11788,9 +11945,9 @@ "dev": true }, "node_modules/flow-parser": { - "version": "0.206.0", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.206.0.tgz", - "integrity": "sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w==", + "version": "0.207.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.207.0.tgz", + "integrity": "sha512-s90OlXqzWj1xc4yUtqD1Gr8pGVx0/5rk9gsqPrOYF1kBAPMH4opkmzdWgQ8aNe3Pckqtwr8DlYGbfE2GnW+zsg==", "dev": true, "engines": { "node": ">=0.4.0" @@ -12018,13 +12175,14 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3" }, "funding": { @@ -12090,10 +12248,13 @@ } }, "node_modules/get-tsconfig": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.5.0.tgz", - "integrity": "sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.6.0.tgz", + "integrity": "sha512-lgbo68hHTQnFddybKbbs/RDRJnJT5YyGy2kQzVwbq+g67X73i+5MVTval34QxGkOe9X5Ujf1UYpCaphLyltjEg==", "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, "funding": { "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } @@ -12321,6 +12482,12 @@ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, "node_modules/graphql": { "version": "16.6.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", @@ -12975,9 +13142,9 @@ } }, "node_modules/is-core-module": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", - "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -13076,6 +13243,39 @@ "node": ">=0.10.0" } }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container/node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", @@ -13203,6 +13403,15 @@ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -13518,15 +13727,15 @@ } }, "node_modules/jake": { - "version": "10.8.5", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", - "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", "dev": true, "dependencies": { "async": "^3.2.3", "chalk": "^4.0.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" + "filelist": "^1.0.4", + "minimatch": "^3.1.2" }, "bin": { "jake": "bin/cli.js" @@ -13753,16 +13962,6 @@ "integrity": "sha512-fzreKVq1eD7eGcQr7MtRpQH94f8gIfhdrc7yeih38xh684TNMK9v5aAu2wxfIRMk/GpAJRrzcirMAPIaSDaByQ==", "dev": true }, - "node_modules/js-sdsl": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", - "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -14254,9 +14453,9 @@ } }, "node_modules/lighthouse-logger": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.3.0.tgz", - "integrity": "sha512-BbqAKApLb9ywUli+0a+PcV04SyJ/N1q/8qgCNe6U97KbPCS1BTksEuHFLYdvc8DltuhfxIUBqDZsC0bBGtl3lA==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", + "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", "dev": true, "dependencies": { "debug": "^2.6.9", @@ -14285,9 +14484,9 @@ "dev": true }, "node_modules/lit": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.7.2.tgz", - "integrity": "sha512-9QnZmG5mIKPRja96cpndMclLSi0Qrz2BXD6EbqNqCKMMjOWVm/BwAeXufFk2jqFsNmY07HOzU8X+8aTSVt3yrA==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/lit/-/lit-2.7.4.tgz", + "integrity": "sha512-cgD7xrZoYr21mbrkZIuIrj98YTMw/snJPg52deWVV4A8icLyNHI3bF70xsJeAgwTuiq5Kkd+ZR8gybSJDCPB7g==", "dependencies": { "@lit/reactive-element": "^1.6.0", "lit-element": "^3.3.0", @@ -14295,9 +14494,9 @@ } }, "node_modules/lit-element": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.1.tgz", - "integrity": "sha512-Gl+2409uXWbf7n6cCl7Kzasm7zjT9xmdwi2BhLNi70sRKAgRkqueDu5mSIH3hPYMM0/vqBCdPXod3NbGkRA2ww==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.2.tgz", + "integrity": "sha512-xXAeVWKGr4/njq0rGC9dethMnYCq5hpKYrgQZYTzawt9YQhMiXfD+T1RgrdY3NamOxwq2aXlb0vOI6e29CKgVQ==", "dependencies": { "@lit-labs/ssr-dom-shim": "^1.1.0", "@lit/reactive-element": "^1.3.0", @@ -14305,9 +14504,9 @@ } }, "node_modules/lit-html": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.7.2.tgz", - "integrity": "sha512-ZJCfKlA2XELu5tn7XuzOziGFGvf1SeQm+ngLWoJ8bXtSkRrrR3ms6SWy+gsdxeYwySLij5xAhdd2C3EX0ftxdQ==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.7.4.tgz", + "integrity": "sha512-/Jw+FBpeEN+z8X6PJva5n7+0MzCVAH2yypN99qHYYkq8bI+j7I39GH+68Z/MZD6rGKDK9RpzBw7CocfmHfq6+g==", "dependencies": { "@types/trusted-types": "^2.0.2" } @@ -14661,33 +14860,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mdast-util-find-and-replace/node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-find-and-replace/node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-from-markdown": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.0.tgz", @@ -14712,19 +14884,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-from-markdown/node_modules/mdast-util-to-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", - "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-gfm": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz", @@ -14833,19 +14992,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-phrasing/node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-to-markdown": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", @@ -14866,32 +15012,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-to-markdown/node_modules/mdast-util-to-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", - "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown/node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-to-markdown/node_modules/unist-util-visit": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", @@ -14907,30 +15027,19 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-to-markdown/node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "node_modules/mdast-util-to-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", + "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", "dev": true, "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" + "@types/mdast": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-to-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", - "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -14980,9 +15089,9 @@ } }, "node_modules/micromark": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.1.0.tgz", - "integrity": "sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", + "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", "dev": true, "funding": [ { @@ -15015,9 +15124,9 @@ } }, "node_modules/micromark-core-commonmark": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz", - "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", + "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", "dev": true, "funding": [ { @@ -15049,9 +15158,9 @@ } }, "node_modules/micromark-extension-gfm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.2.tgz", - "integrity": "sha512-oMBh++llCWHYftkP1NmeoQDHHlj3nsRYL3HBhjwBqm+CjSQ4l/v05XiQMTWqmYh4MLEVbq473qEi6S1wonCxcA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz", + "integrity": "sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==", "dev": true, "dependencies": { "micromark-extension-gfm-autolink-literal": "^1.0.0", @@ -15170,9 +15279,9 @@ } }, "node_modules/micromark-factory-destination": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz", - "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", + "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", "dev": true, "funding": [ { @@ -15191,9 +15300,9 @@ } }, "node_modules/micromark-factory-label": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz", - "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", + "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", "dev": true, "funding": [ { @@ -15213,9 +15322,9 @@ } }, "node_modules/micromark-factory-space": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz", - "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", + "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", "dev": true, "funding": [ { @@ -15233,9 +15342,9 @@ } }, "node_modules/micromark-factory-title": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz", - "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", + "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", "dev": true, "funding": [ { @@ -15251,14 +15360,13 @@ "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "micromark-util-types": "^1.0.0" } }, "node_modules/micromark-factory-whitespace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz", - "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", + "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", "dev": true, "funding": [ { @@ -15278,9 +15386,9 @@ } }, "node_modules/micromark-util-character": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz", - "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", + "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", "dev": true, "funding": [ { @@ -15298,9 +15406,9 @@ } }, "node_modules/micromark-util-chunked": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz", - "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", + "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", "dev": true, "funding": [ { @@ -15317,9 +15425,9 @@ } }, "node_modules/micromark-util-classify-character": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz", - "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", + "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", "dev": true, "funding": [ { @@ -15338,9 +15446,9 @@ } }, "node_modules/micromark-util-combine-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz", - "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", + "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", "dev": true, "funding": [ { @@ -15358,9 +15466,9 @@ } }, "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz", - "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", + "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", "dev": true, "funding": [ { @@ -15377,9 +15485,9 @@ } }, "node_modules/micromark-util-decode-string": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz", - "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", + "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", "dev": true, "funding": [ { @@ -15399,9 +15507,9 @@ } }, "node_modules/micromark-util-encode": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz", - "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", + "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", "dev": true, "funding": [ { @@ -15415,9 +15523,9 @@ ] }, "node_modules/micromark-util-html-tag-name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz", - "integrity": "sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", + "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", "dev": true, "funding": [ { @@ -15431,9 +15539,9 @@ ] }, "node_modules/micromark-util-normalize-identifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", - "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", + "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", "dev": true, "funding": [ { @@ -15450,9 +15558,9 @@ } }, "node_modules/micromark-util-resolve-all": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz", - "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", + "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", "dev": true, "funding": [ { @@ -15469,9 +15577,9 @@ } }, "node_modules/micromark-util-sanitize-uri": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz", - "integrity": "sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", + "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", "dev": true, "funding": [ { @@ -15490,9 +15598,9 @@ } }, "node_modules/micromark-util-subtokenize": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz", - "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", + "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", "dev": true, "funding": [ { @@ -15512,9 +15620,9 @@ } }, "node_modules/micromark-util-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz", - "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", + "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", "dev": true, "funding": [ { @@ -15528,9 +15636,9 @@ ] }, "node_modules/micromark-util-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz", - "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", "dev": true, "funding": [ { @@ -15832,6 +15940,19 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "node_modules/mylas": { + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/mylas/-/mylas-2.1.13.tgz", + "integrity": "sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg==", + "dev": true, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/raouldeheer" + } + }, "node_modules/nanocolors": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.13.tgz", @@ -15906,9 +16027,9 @@ } }, "node_modules/node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", "dev": true, "dependencies": { "whatwg-url": "^5.0.0" @@ -16027,9 +16148,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz", + "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", "dev": true }, "node_modules/normalize-package-data": { @@ -16717,13 +16838,13 @@ } }, "node_modules/playwright": { - "version": "1.32.3", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.32.3.tgz", - "integrity": "sha512-h/ylpgoj6l/EjkfUDyx8cdOlfzC96itPpPe8BXacFkqpw/YsuxkpPyVbzEq4jw+bAJh5FLgh31Ljg2cR6HV3uw==", + "version": "1.34.3", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.34.3.tgz", + "integrity": "sha512-UOOVE4ZbGfGkP1KVqWTdXOmm8Pw2pBhfbmlqKMkpiRCQjL5W+J+xRQXpgutFr0iM4pWl8g0GyyASMsqjQfFohw==", "dev": true, "hasInstallScript": true, "dependencies": { - "playwright-core": "1.32.3" + "playwright-core": "1.34.3" }, "bin": { "playwright": "cli.js" @@ -16733,12 +16854,12 @@ } }, "node_modules/playwright-core": { - "version": "1.32.3", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.32.3.tgz", - "integrity": "sha512-SB+cdrnu74ZIn5Ogh/8278ngEh9NEEV0vR4sJFmK04h2iZpybfbqBY0bX6+BLYWVdV12JLLI+JEFtSnYgR+mWg==", + "version": "1.34.3", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.34.3.tgz", + "integrity": "sha512-2pWd6G7OHKemc5x1r1rp8aQcpvDh7goMBZlJv6Co5vCNLVcQJdhxRL09SGaY6HcyHH9aT4tiynZabMofVasBYw==", "dev": true, "bin": { - "playwright": "cli.js" + "playwright-core": "cli.js" }, "engines": { "node": ">=14" @@ -16761,6 +16882,15 @@ "msw": ">=0.47.3" } }, + "node_modules/plimit-lit": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/plimit-lit/-/plimit-lit-1.5.0.tgz", + "integrity": "sha512-Eb/MqCb1Iv/ok4m1FqIXqvUKPISufcjZ605hl3KM/n8GaX8zfhtgdLwZU3vKjuHGh2O9Rjog/bHTq8ofIShdng==", + "dev": true, + "dependencies": { + "queue-lit": "^1.5.0" + } + }, "node_modules/plop": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/plop/-/plop-3.1.2.tgz", @@ -16863,9 +16993,9 @@ } }, "node_modules/plop/node_modules/ora": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-6.3.0.tgz", - "integrity": "sha512-1/D8uRFY0ay2kgBpmAwmSA404w4OoPVhHMqRqtjvrcK/dnzcEZxMJ+V4DUbyICu8IIVRclHcOf5wlD1tMY4GUQ==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-6.3.1.tgz", + "integrity": "sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==", "dev": true, "dependencies": { "chalk": "^5.0.0", @@ -16902,9 +17032,9 @@ } }, "node_modules/plop/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, "dependencies": { "ansi-regex": "^6.0.1" @@ -16973,9 +17103,9 @@ } }, "node_modules/postcss": { - "version": "8.4.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", - "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", + "version": "8.4.24", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", + "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", "dev": true, "funding": [ { @@ -17171,9 +17301,9 @@ } }, "node_modules/qs": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.1.tgz", - "integrity": "sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==", + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", "dev": true, "dependencies": { "side-channel": "^1.0.4" @@ -17185,6 +17315,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/queue-lit": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/queue-lit/-/queue-lit-1.5.0.tgz", + "integrity": "sha512-IslToJ4eiCEE9xwMzq3viOO5nH8sUWUCwoElrhNMozzr9IIt2qqvB4I+uHu/zJTQVqc9R5DFwok4ijNK1pU3fA==", + "dev": true + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -17206,9 +17342,9 @@ ] }, "node_modules/ramda": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.28.0.tgz", - "integrity": "sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA==", + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.29.0.tgz", + "integrity": "sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==", "dev": true, "funding": { "type": "opencollective", @@ -17612,6 +17748,16 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/remark-slug/node_modules/mdast-util-to-string": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", + "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -17742,6 +17888,15 @@ "node": ">= 0.6" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -17801,9 +17956,9 @@ } }, "node_modules/rollup": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.21.2.tgz", - "integrity": "sha512-c4vC+JZ3bbF4Kqq2TtM7zSKtSyMybFOjqmomFax3xpfYaPZDZ4iz8NMIuBRMjnXOcKYozw7bC6vhJjiWD6JpzQ==", + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.23.0.tgz", + "integrity": "sha512-h31UlwEi7FHihLe1zbk+3Q7z1k/84rb9BSwmBSr/XjOCEaBJ2YyedQDuM0t/kfOS0IxM+vk1/zI9XxYj9V+NJQ==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -17910,11 +18065,26 @@ "dev": true }, "node_modules/router-slot": { - "version": "2.0.0", - "resolved": "file:router-slot-2.0.0.tgz", - "integrity": "sha512-J2E+sDJR7Q/S761Q6vXVCTWFN1kKidX3fparKoipm/NaX9XEdwmCSOEqYyUHbnIyDDo5O5PMhsH8EazLmCQJXw==", + "version": "2.2.0", + "resolved": "file:router-slot-2.2.0.tgz", + "integrity": "sha512-AAFrwU5Hr9p8Qb1NRIjO2z2IK/VU5SCobaXcboOq9zmfSr990oCKEpDF62t/Ij9P78+jR9fWxcIl7Tdc9Wx0ng==", "license": "MIT" }, + "node_modules/run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -17948,9 +18118,9 @@ } }, "node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dependencies": { "tslib": "^2.1.0" } @@ -18542,12 +18712,12 @@ "dev": true }, "node_modules/storybook": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.0.11.tgz", - "integrity": "sha512-3MdQ90doYuGZpC052zyMnWLIK1GqyPrYN0sCkGyiNAO8wdxcuCG8jHK2s4b1I/yWLCGv03jCjoc6w9F5iRcrHw==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.0.18.tgz", + "integrity": "sha512-FXMmTiomSlLPTHty7vGLr0prPf6pCV07EwAmNOYYYTskitEYV0R7hlhawByd7HuobjIhHvSTKesa1Whl86zLNA==", "dev": true, "dependencies": { - "@storybook/cli": "7.0.11" + "@storybook/cli": "7.0.18" }, "bin": { "sb": "index.js", @@ -18810,9 +18980,9 @@ } }, "node_modules/tar": { - "version": "6.1.14", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.14.tgz", - "integrity": "sha512-piERznXu0U7/pW7cdSn7hjqySIVTYT6F76icmFk7ptU7dDYlXTm5r9A6K04R2vU3olYgoKeo1Cg3eeu5nhftAw==", + "version": "6.1.15", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", + "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", "dev": true, "dependencies": { "chownr": "^2.0.0", @@ -19074,6 +19244,18 @@ "tslib": "^2.0.3" } }, + "node_modules/titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -19211,6 +19393,32 @@ "integrity": "sha512-A+hLX83gS+yH6DtzNAhzZbPfU+D9D8lHlTSd7GeoMRBjOt3GRylDqLTYbdmjA4biWvq2xSfpqfIDj2l0OA/BVg==", "dev": true }, + "node_modules/tsc-alias": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/tsc-alias/-/tsc-alias-1.8.6.tgz", + "integrity": "sha512-vq+i6VpE83IeMsSJVcFN03ZBofADhr8/gIJXjxpbnTRfN/MFXy0+SBaKG2o7p95QqXBGkeG98HYz3IkOOveFbg==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.3", + "commander": "^9.0.0", + "globby": "^11.0.4", + "mylas": "^2.1.9", + "normalize-path": "^3.0.0", + "plimit-lit": "^1.2.6" + }, + "bin": { + "tsc-alias": "dist/bin/index.js" + } + }, + "node_modules/tsc-alias/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, "node_modules/tsconfck": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-2.1.1.tgz", @@ -19256,9 +19464,9 @@ } }, "node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz", + "integrity": "sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==" }, "node_modules/tsscmp": { "version": "1.0.6", @@ -19361,9 +19569,9 @@ } }, "node_modules/typescript-json-schema": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.55.0.tgz", - "integrity": "sha512-BXaivYecUdiXWWNiUqXgY6A9cMWerwmhtO+lQE7tDZGs7Mf38sORDeQZugfYOZOHPZ9ulsD+w0LWjFDOQoXcwg==", + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.56.0.tgz", + "integrity": "sha512-k/aSEqx89YR2z/f2y3VwoOGzlKTWern0EIey2qqEpMRP7HL4CI8udPElzJs4eFVkPowCLJ1yVBSzuIWIUF+mMA==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", @@ -19372,7 +19580,7 @@ "path-equal": "^1.1.2", "safe-stable-stringify": "^2.2.0", "ts-node": "^10.9.1", - "typescript": "~4.8.2", + "typescript": "~4.9.5", "yargs": "^17.1.1" }, "bin": { @@ -19380,9 +19588,9 @@ } }, "node_modules/typescript-json-schema/node_modules/@types/node": { - "version": "16.18.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.24.tgz", - "integrity": "sha512-zvSN2Esek1aeLdKDYuntKAYjti9Z2oT4I8bfkLLhIxHlv3dwZ5vvATxOc31820iYm4hQRCwjUgDpwSMFjfTUnw==", + "version": "16.18.34", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.34.tgz", + "integrity": "sha512-VmVm7gXwhkUimRfBwVI1CHhwp86jDWR04B5FGebMMyxV90SlCmFujwUHrxTD4oO+SOYU86SoxvhgeRQJY7iXFg==", "dev": true }, "node_modules/typescript-json-schema/node_modules/glob": { @@ -19406,9 +19614,9 @@ } }, "node_modules/typescript-json-schema/node_modules/typescript": { - "version": "4.8.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", - "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -19570,10 +19778,13 @@ } }, "node_modules/unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", "dev": true, + "dependencies": { + "@types/unist": "^2.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -19608,6 +19819,30 @@ } }, "node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit/node_modules/unist-util-is": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit/node_modules/unist-util-visit-parents": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", @@ -19872,9 +20107,9 @@ } }, "node_modules/vite": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.3.tgz", - "integrity": "sha512-MwFlLBO4udZXd+VBcezo3u8mC77YQk+ik+fbc0GZWGgzfbPP+8Kf0fldhARqvSYmtIWoAJ5BXPClUbMTlqFxrA==", + "version": "4.3.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz", + "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==", "dev": true, "dependencies": { "esbuild": "^0.17.5", @@ -20421,9 +20656,9 @@ "dev": true }, "node_modules/yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "dependencies": { "cliui": "^8.0.1", @@ -20497,15264 +20732,5 @@ "url": "https://github.com/sponsors/wooorm" } } - }, - "dependencies": { - "@75lb/deep-merge": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@75lb/deep-merge/-/deep-merge-1.1.1.tgz", - "integrity": "sha512-xvgv6pkMGBA6GwdyJbNAnDmfAIR/DfWhrj9jgWh3TY7gRm3KO46x/GPjRg6wJ0nOepwqrNxFfojebh0Df4h4Tw==", - "dev": true, - "requires": { - "lodash.assignwith": "^4.2.0", - "typical": "^7.1.1" - }, - "dependencies": { - "typical": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", - "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", - "dev": true - } - } - }, - "@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@apidevtools/json-schema-ref-parser": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", - "integrity": "sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==", - "dev": true, - "requires": { - "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.6", - "call-me-maybe": "^1.0.1", - "js-yaml": "^4.1.0" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - } - } - }, - "@aw-web-design/x-default-browser": { - "version": "1.4.88", - "resolved": "https://registry.npmjs.org/@aw-web-design/x-default-browser/-/x-default-browser-1.4.88.tgz", - "integrity": "sha512-AkEmF0wcwYC2QkhK703Y83fxWARttIWXDmQN8+cof8FmFZ5BRhnNXGymeb1S73bOCLfWjYELxtujL56idCN/XA==", - "dev": true, - "requires": { - "default-browser-id": "3.0.0" - } - }, - "@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.21.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz", - "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==", - "dev": true - }, - "@babel/core": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", - "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.4", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.4", - "@babel/types": "^7.21.4", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - } - }, - "@babel/generator": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz", - "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==", - "dev": true, - "requires": { - "@babel/types": "^7.21.5", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.21.5.tgz", - "integrity": "sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g==", - "dev": true, - "requires": { - "@babel/types": "^7.21.5" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", - "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.8.tgz", - "integrity": "sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.5", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.21.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6", - "semver": "^6.3.0" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.8.tgz", - "integrity": "sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.3.1", - "semver": "^6.3.0" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz", - "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==", - "dev": true - }, - "@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", - "dev": true, - "requires": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz", - "integrity": "sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg==", - "dev": true, - "requires": { - "@babel/types": "^7.21.5" - } - }, - "@babel/helper-module-imports": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", - "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", - "dev": true, - "requires": { - "@babel/types": "^7.21.4" - } - }, - "@babel/helper-module-transforms": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", - "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-simple-access": "^7.21.5", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz", - "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-replace-supers": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.21.5.tgz", - "integrity": "sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-member-expression-to-functions": "^7.21.5", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - } - }, - "@babel/helper-simple-access": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", - "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", - "dev": true, - "requires": { - "@babel/types": "^7.21.5" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", - "dev": true, - "requires": { - "@babel/types": "^7.20.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-string-parser": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", - "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", - "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" - } - }, - "@babel/helpers": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", - "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", - "dev": true, - "requires": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz", - "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==", - "dev": true - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", - "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.7" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", - "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", - "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", - "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-flow": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.21.4.tgz", - "integrity": "sha512-l9xd3N+XG4fZRxEP3vXdK6RW7vN1Uf5dxzRC/09wV86wqZ/YYQooBIGNsiRdfNR3/q2/5pPzV4B54J/9ctX5jw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.19.0" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", - "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz", - "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz", - "integrity": "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.21.5" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", - "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", - "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", - "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz", - "integrity": "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/template": "^7.20.7" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", - "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz", - "integrity": "sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-flow": "^7.18.6" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz", - "integrity": "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.21.5" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", - "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz", - "integrity": "sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.21.5", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-simple-access": "^7.21.5" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", - "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-identifier": "^7.19.1" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", - "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.5.tgz", - "integrity": "sha512-ELdlq61FpoEkHO6gFRpfj0kUgSwQTGoaEU8eMRoS8Dv3v6e7BjEAj5WMtIBRdHUeAioMhKP5HyxNzNnP+heKbA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/plugin-syntax-jsx": "^7.21.4", - "@babel/types": "^7.21.5" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz", - "integrity": "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.21.5", - "regenerator-transform": "^0.15.1" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", - "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz", - "integrity": "sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-typescript": "^7.20.0" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz", - "integrity": "sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.21.5" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/preset-env": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.5.tgz", - "integrity": "sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.21.5", - "@babel/helper-compilation-targets": "^7.21.5", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", - "@babel/plugin-proposal-async-generator-functions": "^7.20.7", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.21.0", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.21.0", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.21.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.21.5", - "@babel/plugin-transform-async-to-generator": "^7.20.7", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.21.0", - "@babel/plugin-transform-classes": "^7.21.0", - "@babel/plugin-transform-computed-properties": "^7.21.5", - "@babel/plugin-transform-destructuring": "^7.21.3", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.21.5", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.20.11", - "@babel/plugin-transform-modules-commonjs": "^7.21.5", - "@babel/plugin-transform-modules-systemjs": "^7.20.11", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.21.3", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.21.5", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.20.7", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.21.5", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.21.5", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" - } - }, - "@babel/preset-flow": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.21.4.tgz", - "integrity": "sha512-F24cSq4DIBmhq4OzK3dE63NHagb27OPE3eWR+HLekt4Z3Y5MzIIUGF3LlLgV0gN8vzbDViSY7HnrReNVCJXTeA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-transform-flow-strip-types": "^7.21.0" - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/preset-typescript": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.5.tgz", - "integrity": "sha512-iqe3sETat5EOrORXiQ6rWfoOg2y68Cs75B9wNxdPW4kixJxh7aXQE1KPdWLDniC24T/6dSnguF33W9j/ZZQcmA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-syntax-jsx": "^7.21.4", - "@babel/plugin-transform-modules-commonjs": "^7.21.5", - "@babel/plugin-transform-typescript": "^7.21.3" - } - }, - "@babel/register": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.21.0.tgz", - "integrity": "sha512-9nKsPmYDi5DidAqJaQooxIhsLJiNMkGr8ypQ8Uic7cIox7UCDsM7HuUGxdGT7mSDTYbqzIdsOWzfBton/YJrMw==", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "find-cache-dir": "^2.0.0", - "make-dir": "^2.1.0", - "pirates": "^4.0.5", - "source-map-support": "^0.5.16" - }, - "dependencies": { - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, - "@babel/runtime": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", - "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.11" - } - }, - "@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" - } - }, - "@babel/traverse": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", - "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.5", - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.5", - "@babel/types": "^7.21.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", - "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.21.5", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - } - }, - "@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "dev": true, - "optional": true - }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - } - } - }, - "@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true - }, - "@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", - "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", - "dev": true - }, - "@esbuild/android-arm": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.18.tgz", - "integrity": "sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.18.tgz", - "integrity": "sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==", - "dev": true, - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.18.tgz", - "integrity": "sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.18.tgz", - "integrity": "sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.18.tgz", - "integrity": "sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.18.tgz", - "integrity": "sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.18.tgz", - "integrity": "sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.18.tgz", - "integrity": "sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.18.tgz", - "integrity": "sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.18.tgz", - "integrity": "sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.18.tgz", - "integrity": "sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.18.tgz", - "integrity": "sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.18.tgz", - "integrity": "sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.18.tgz", - "integrity": "sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.18.tgz", - "integrity": "sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.18.tgz", - "integrity": "sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.18.tgz", - "integrity": "sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.18.tgz", - "integrity": "sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.18.tgz", - "integrity": "sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.18.tgz", - "integrity": "sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.18.tgz", - "integrity": "sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.18.tgz", - "integrity": "sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==", - "dev": true, - "optional": true - }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - } - }, - "@eslint-community/regexpp": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", - "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", - "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.1", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } - } - }, - "@eslint/js": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", - "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", - "dev": true - }, - "@esm-bundle/chai": { - "version": "4.3.4-fix.0", - "resolved": "https://registry.npmjs.org/@esm-bundle/chai/-/chai-4.3.4-fix.0.tgz", - "integrity": "sha512-26SKdM4uvDWlY8/OOOxSB1AqQWeBosCX3wRYUZO7enTAj03CtVxIiCimYVG2WpULcyV51qapK4qTovwkUr5Mlw==", - "dev": true, - "requires": { - "@types/chai": "^4.2.12" - } - }, - "@fal-works/esbuild-plugin-global-externals": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz", - "integrity": "sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==", - "dev": true - }, - "@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@import-maps/resolve": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@import-maps/resolve/-/resolve-1.0.1.tgz", - "integrity": "sha512-tWZNBIS1CoekcwlMuyG2mr0a1Wo5lb5lEHwwWvZo+5GLgr3e9LLDTtmgtCWEwBpXMkxn9D+2W9j2FY6eZQq0tA==", - "dev": true - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/schemas": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", - "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", - "dev": true, - "requires": { - "@sinclair/typebox": "^0.25.16" - } - }, - "@jest/transform": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", - "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/types": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", - "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", - "dev": true, - "requires": { - "@jest/schemas": "^29.4.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - }, - "dependencies": { - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - } - } - }, - "@jsdevtools/ono": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", - "dev": true - }, - "@juggle/resize-observer": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", - "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==", - "dev": true - }, - "@lit-labs/ssr-dom-shim": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.0.tgz", - "integrity": "sha512-92uQ5ARf7UXYrzaFcAX3T2rTvaS9Z1//ukV+DqjACM4c8s0ZBQd7ayJU5Dh2AFLD/Ayuyz4uMmxQec8q3U4Ong==" - }, - "@lit/reactive-element": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.1.tgz", - "integrity": "sha512-va15kYZr7KZNNPZdxONGQzpUr+4sxVu7V/VG7a8mRfPPXUyhEYj5RzXCQmGrlP3tAh0L3HHm5AjBMFYRqlM9SA==", - "requires": { - "@lit-labs/ssr-dom-shim": "^1.0.0" - } - }, - "@mdn/browser-compat-data": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz", - "integrity": "sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==", - "dev": true - }, - "@mdx-js/react": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-2.3.0.tgz", - "integrity": "sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==", - "dev": true, - "requires": { - "@types/mdx": "^2.0.0", - "@types/react": ">=16" - } - }, - "@mswjs/cookies": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@mswjs/cookies/-/cookies-0.2.2.tgz", - "integrity": "sha512-mlN83YSrcFgk7Dm1Mys40DLssI1KdJji2CMKN8eOlBqsTADYzj2+jWzsANsUTFbxDMWPD5e9bfA1RGqBpS3O1g==", - "dev": true, - "requires": { - "@types/set-cookie-parser": "^2.4.0", - "set-cookie-parser": "^2.4.6" - } - }, - "@mswjs/interceptors": { - "version": "0.17.9", - "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.17.9.tgz", - "integrity": "sha512-4LVGt03RobMH/7ZrbHqRxQrS9cc2uh+iNKSj8UWr8M26A2i793ju+csaB5zaqYltqJmA2jUq4VeYfKmVqvsXQg==", - "dev": true, - "requires": { - "@open-draft/until": "^1.0.3", - "@types/debug": "^4.1.7", - "@xmldom/xmldom": "^0.8.3", - "debug": "^4.3.3", - "headers-polyfill": "^3.1.0", - "outvariant": "^1.2.1", - "strict-event-emitter": "^0.2.4", - "web-encoding": "^1.1.5" - }, - "dependencies": { - "strict-event-emitter": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.2.8.tgz", - "integrity": "sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A==", - "dev": true, - "requires": { - "events": "^3.3.0" - } - } - } - }, - "@ndelangen/get-tarball": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@ndelangen/get-tarball/-/get-tarball-3.0.7.tgz", - "integrity": "sha512-NqGfTZIZpRFef1GoVaShSSRwDC3vde3ThtTeqFdcYd6ipKqnfEVhjK2hUeHjCQUcptyZr2TONqcloFXM+5QBrQ==", - "dev": true, - "requires": { - "gunzip-maybe": "^1.4.2", - "pump": "^3.0.0", - "tar-fs": "^2.1.1" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@open-draft/until": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-1.0.3.tgz", - "integrity": "sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==", - "dev": true - }, - "@open-wc/chai-dom-equals": { - "version": "0.12.36", - "resolved": "https://registry.npmjs.org/@open-wc/chai-dom-equals/-/chai-dom-equals-0.12.36.tgz", - "integrity": "sha512-Gt1fa37h4rtWPQGETSU4n1L678NmMi9KwHM1sH+JCGcz45rs8DBPx7MUVeGZ+HxRlbEI5t9LU2RGGv6xT2OlyA==", - "dev": true, - "requires": { - "@open-wc/semantic-dom-diff": "^0.13.16", - "@types/chai": "^4.1.7" - }, - "dependencies": { - "@open-wc/semantic-dom-diff": { - "version": "0.13.21", - "resolved": "https://registry.npmjs.org/@open-wc/semantic-dom-diff/-/semantic-dom-diff-0.13.21.tgz", - "integrity": "sha512-BONpjHcGX2zFa9mfnwBCLEmlDsOHzT+j6Qt1yfK3MzFXFtAykfzFjAgaxPetu0YbBlCfXuMlfxI4vlRGCGMvFg==", - "dev": true - } - } - }, - "@open-wc/dedupe-mixin": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.3.1.tgz", - "integrity": "sha512-ukowSvzpZQDUH0Y3znJTsY88HkiGk3Khc0WGpIPhap1xlerieYi27QBg6wx/nTurpWfU6XXXsx9ocxDYCdtw0Q==", - "dev": true - }, - "@open-wc/scoped-elements": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.1.4.tgz", - "integrity": "sha512-KX/bOkcDG9kbBDSmgsbpp40ZjEWxpWNrNRZZVSO0KqBygMfvfiEeVfP16uJp9YyWHi/PVZ/C0aUEgf8Pg1Eq7A==", - "dev": true, - "requires": { - "@lit/reactive-element": "^1.0.0", - "@open-wc/dedupe-mixin": "^1.3.0" - } - }, - "@open-wc/semantic-dom-diff": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@open-wc/semantic-dom-diff/-/semantic-dom-diff-0.19.9.tgz", - "integrity": "sha512-iUL0OPA6PeLQVEEJ/gsgkEiwOGgK4E1KS//zTB+u+OAh0NifNTfxDxIHQa7rEGvplaq2b2zztT2yyzOzj+MlAA==", - "dev": true, - "requires": { - "@types/chai": "^4.3.1", - "@web/test-runner-commands": "^0.6.5" - } - }, - "@open-wc/testing": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@open-wc/testing/-/testing-3.1.8.tgz", - "integrity": "sha512-SpKhlSwCqUkVOOmdb9RanOQgqv4T32wzExkvuaVcUFcBeUdpwQsg1+WYpdv31Z4cRCkAhQ4A8OIpGphzqF8T7w==", - "dev": true, - "requires": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@open-wc/chai-dom-equals": "^0.12.36", - "@open-wc/semantic-dom-diff": "^0.19.7", - "@open-wc/testing-helpers": "^2.2.1", - "@types/chai": "^4.2.11", - "@types/chai-dom": "^1.11.0", - "@types/sinon-chai": "^3.2.3", - "chai-a11y-axe": "^1.3.2" - } - }, - "@open-wc/testing-helpers": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@open-wc/testing-helpers/-/testing-helpers-2.2.1.tgz", - "integrity": "sha512-8zuJK7tUQYuXRIC/cVcPbAPOhtBJCe3Jfpk7im7WK0DIAXH9Q/ycB+yu3R8g4BQ31f/FdLjIFRbPZzIU75kkRg==", - "dev": true, - "requires": { - "@open-wc/scoped-elements": "^2.1.3", - "lit": "^2.0.0", - "lit-html": "^2.0.0" - } - }, - "@openid/appauth": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@openid/appauth/-/appauth-1.3.1.tgz", - "integrity": "sha512-e54kpi219wES2ijPzeHe1kMnT8VKH8YeTd1GAn9BzVBmutz3tBgcG1y8a4pziNr4vNjFnuD4W446Ua7ELnNDiA==", - "requires": { - "@types/base64-js": "^1.3.0", - "@types/jquery": "^3.5.5", - "base64-js": "^1.5.1", - "follow-redirects": "^1.13.3", - "form-data": "^4.0.0", - "opener": "^1.5.2" - } - }, - "@pkgr/utils": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.3.1.tgz", - "integrity": "sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "is-glob": "^4.0.3", - "open": "^8.4.0", - "picocolors": "^1.0.0", - "tiny-glob": "^0.2.9", - "tslib": "^2.4.0" - } - }, - "@playwright/test": { - "version": "1.32.3", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.32.3.tgz", - "integrity": "sha512-BvWNvK0RfBriindxhLVabi8BRe3X0J9EVjKlcmhxjg4giWBD/xleLcg2dz7Tx0agu28rczjNIPQWznwzDwVsZQ==", - "dev": true, - "requires": { - "@types/node": "*", - "fsevents": "2.3.2", - "playwright-core": "1.32.3" - } - }, - "@puppeteer/browsers": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-0.5.0.tgz", - "integrity": "sha512-Uw6oB7VvmPRLE4iKsjuOh8zgDabhNX67dzo8U/BB0f9527qx+4eeUs+korU98OhG5C4ubg7ufBgVi63XYwS6TQ==", - "dev": true, - "requires": { - "debug": "4.3.4", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.1", - "progress": "2.0.3", - "proxy-from-env": "1.1.0", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "yargs": "17.7.1" - } - }, - "@rollup/plugin-json": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.0.0.tgz", - "integrity": "sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^5.0.1" - } - }, - "@rollup/plugin-node-resolve": { - "version": "15.0.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.2.tgz", - "integrity": "sha512-Y35fRGUjC3FaurG722uhUuG8YHOJRJQbI6/CkbRkdPotSpDj9NtIN85z1zrcyDcCQIW4qp5mgG72U+gJ0TAFEg==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^5.0.1", - "@types/resolve": "1.20.2", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.2.1", - "is-module": "^1.0.0", - "resolve": "^1.22.1" - } - }, - "@rollup/pluginutils": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", - "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", - "dev": true, - "requires": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - } - }, - "@sinclair/typebox": { - "version": "0.25.24", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", - "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", - "dev": true - }, - "@storybook/addon-a11y": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-7.0.11.tgz", - "integrity": "sha512-t98SC29zOv63NOHYSpi2ZhmLazfiQ8/uKy+rB9Zg8Xhy+6gpXOQffk+V1gke2baf3RoxQEOAXAotm85D1dD/6Q==", - "dev": true, - "requires": { - "@storybook/addon-highlight": "7.0.11", - "@storybook/channels": "7.0.11", - "@storybook/client-logger": "7.0.11", - "@storybook/components": "7.0.11", - "@storybook/core-events": "7.0.11", - "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/theming": "7.0.11", - "@storybook/types": "7.0.11", - "axe-core": "^4.2.0", - "lodash": "^4.17.21", - "react-resize-detector": "^7.1.2" - } - }, - "@storybook/addon-actions": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.0.11.tgz", - "integrity": "sha512-kh5z6L5r5BOWVt0+xZgdMZjDJQkJIVcAOxahRS9MwWkw0NDpXjcPS7HsVXZ1DlnnzhfjLFr0BXadVdcc2FLj7A==", - "dev": true, - "requires": { - "@storybook/client-logger": "7.0.11", - "@storybook/components": "7.0.11", - "@storybook/core-events": "7.0.11", - "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/theming": "7.0.11", - "@storybook/types": "7.0.11", - "dequal": "^2.0.2", - "lodash": "^4.17.21", - "polished": "^4.2.2", - "prop-types": "^15.7.2", - "react-inspector": "^6.0.0", - "telejson": "^7.0.3", - "ts-dedent": "^2.0.0", - "uuid": "^9.0.0" - } - }, - "@storybook/addon-backgrounds": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.0.11.tgz", - "integrity": "sha512-kj0LQ1F9Z/6lWQ9d+crgWQKl8fgBXuTo/X3M36GTOf8kEEMGtb1Y71EjOfszwvvgK5GPmvFhOVYQL/D2/VbrHw==", - "dev": true, - "requires": { - "@storybook/client-logger": "7.0.11", - "@storybook/components": "7.0.11", - "@storybook/core-events": "7.0.11", - "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/theming": "7.0.11", - "@storybook/types": "7.0.11", - "memoizerific": "^1.11.3", - "ts-dedent": "^2.0.0" - } - }, - "@storybook/addon-controls": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.0.11.tgz", - "integrity": "sha512-ZmzSEBQLEW6vhvemUFFmMD4rA/fYTe8LJ+iahx1RnE7cV4CuyRJ23wlxL21WYHpkhbYdZMlJDTlvDS8GHthIQw==", - "dev": true, - "requires": { - "@storybook/blocks": "7.0.11", - "@storybook/client-logger": "7.0.11", - "@storybook/components": "7.0.11", - "@storybook/core-common": "7.0.11", - "@storybook/manager-api": "7.0.11", - "@storybook/node-logger": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/theming": "7.0.11", - "@storybook/types": "7.0.11", - "lodash": "^4.17.21", - "ts-dedent": "^2.0.0" - } - }, - "@storybook/addon-docs": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.0.11.tgz", - "integrity": "sha512-WmNEQSiFJrjf47VtQg8uOb5q8M5V4MaolhV9zsN6GSTViduY2P7ti+Fk7ZE6QyO1Yy9Vm4WJLPz/vLcfW73IHw==", - "dev": true, - "requires": { - "@babel/core": "^7.20.2", - "@babel/plugin-transform-react-jsx": "^7.19.0", - "@jest/transform": "^29.3.1", - "@mdx-js/react": "^2.1.5", - "@storybook/blocks": "7.0.11", - "@storybook/client-logger": "7.0.11", - "@storybook/components": "7.0.11", - "@storybook/csf-plugin": "7.0.11", - "@storybook/csf-tools": "7.0.11", - "@storybook/global": "^5.0.0", - "@storybook/mdx2-csf": "^1.0.0", - "@storybook/node-logger": "7.0.11", - "@storybook/postinstall": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/react-dom-shim": "7.0.11", - "@storybook/theming": "7.0.11", - "@storybook/types": "7.0.11", - "fs-extra": "^11.1.0", - "remark-external-links": "^8.0.0", - "remark-slug": "^6.0.0", - "ts-dedent": "^2.0.0" - } - }, - "@storybook/addon-essentials": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.0.11.tgz", - "integrity": "sha512-46nIoGJXC0clbjgE4Y0xUW9eT1h4uvDXugb2Z79m5L+KvmRk+J0/rqiRpHz5Gou9iFLxAFCRT9Y3BUP2zOXTZQ==", - "dev": true, - "requires": { - "@storybook/addon-actions": "7.0.11", - "@storybook/addon-backgrounds": "7.0.11", - "@storybook/addon-controls": "7.0.11", - "@storybook/addon-docs": "7.0.11", - "@storybook/addon-highlight": "7.0.11", - "@storybook/addon-measure": "7.0.11", - "@storybook/addon-outline": "7.0.11", - "@storybook/addon-toolbars": "7.0.11", - "@storybook/addon-viewport": "7.0.11", - "@storybook/core-common": "7.0.11", - "@storybook/manager-api": "7.0.11", - "@storybook/node-logger": "7.0.11", - "@storybook/preview-api": "7.0.11", - "ts-dedent": "^2.0.0" - } - }, - "@storybook/addon-highlight": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.0.11.tgz", - "integrity": "sha512-5nElNxnWAO9Oqr4J8A1vJRhe1zbr9n2hOKMWR4UAqF2CAel5qwPFT6ierGW/k/ymui7pz9wxdxawTr8yTpyQWg==", - "dev": true, - "requires": { - "@storybook/core-events": "7.0.11", - "@storybook/global": "^5.0.0", - "@storybook/preview-api": "7.0.11" - } - }, - "@storybook/addon-links": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.0.11.tgz", - "integrity": "sha512-6UpRCs3lIYN0V+0kP+VHChc836sJN/n35OVnfZNd/lRBzewBmuOW6s7Hy2iNZtYg1vWlXR2/wOFzljkkjiWtSQ==", - "dev": true, - "requires": { - "@storybook/client-logger": "7.0.11", - "@storybook/core-events": "7.0.11", - "@storybook/csf": "^0.1.0", - "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/router": "7.0.11", - "@storybook/types": "7.0.11", - "prop-types": "^15.7.2", - "ts-dedent": "^2.0.0" - } - }, - "@storybook/addon-measure": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.0.11.tgz", - "integrity": "sha512-u6yNwgjXr6AcJibKi9NqBn75WsYBtHrgmGX3/ZIPQ20dYIiRHXRKu2lcTfSeA2drz0b1SDPN4gqMlOKm1ly6mw==", - "dev": true, - "requires": { - "@storybook/client-logger": "7.0.11", - "@storybook/components": "7.0.11", - "@storybook/core-events": "7.0.11", - "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/types": "7.0.11" - } - }, - "@storybook/addon-outline": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.0.11.tgz", - "integrity": "sha512-Ftld7dkVHPKo1CbBwJ7X4HNQUAqLhdV/mOB+Tswfvb+niSkFspAaK4ChQoYVsDaLwF7Kmn6jh8ACRTaDvIbN8g==", - "dev": true, - "requires": { - "@storybook/client-logger": "7.0.11", - "@storybook/components": "7.0.11", - "@storybook/core-events": "7.0.11", - "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/types": "7.0.11", - "ts-dedent": "^2.0.0" - } - }, - "@storybook/addon-toolbars": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.0.11.tgz", - "integrity": "sha512-rPd7Ph7fEvWdDWBLQ6GUOEsw+W3FIyqkXl8UEckypE+qILNwZj4C9g8GhaLK65N8aEl3lIO/myx6mUjvySiODA==", - "dev": true, - "requires": { - "@storybook/client-logger": "7.0.11", - "@storybook/components": "7.0.11", - "@storybook/manager-api": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/theming": "7.0.11" - } - }, - "@storybook/addon-viewport": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.0.11.tgz", - "integrity": "sha512-O2Wu/jWSFDvvjP2ERc3wXbRuKvfM3Ttj8MJQZ0FphPwIxe1zSSAA5jk3mhXmEyIJfAe+upyAhV9EqIs8+L6kLg==", - "dev": true, - "requires": { - "@storybook/client-logger": "7.0.11", - "@storybook/components": "7.0.11", - "@storybook/core-events": "7.0.11", - "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/theming": "7.0.11", - "memoizerific": "^1.11.3", - "prop-types": "^15.7.2" - } - }, - "@storybook/blocks": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.0.11.tgz", - "integrity": "sha512-WfqRnKLk3Ke9Pr9G7BrtGJZKuOj32WxbQUbPlCi9oVysYQm69hgcO3+MTft96ur62p8e7gcoIFKrhFi0x4rXiw==", - "dev": true, - "requires": { - "@storybook/channels": "7.0.11", - "@storybook/client-logger": "7.0.11", - "@storybook/components": "7.0.11", - "@storybook/core-events": "7.0.11", - "@storybook/csf": "^0.1.0", - "@storybook/docs-tools": "7.0.11", - "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/theming": "7.0.11", - "@storybook/types": "7.0.11", - "@types/lodash": "^4.14.167", - "color-convert": "^2.0.1", - "dequal": "^2.0.2", - "lodash": "^4.17.21", - "markdown-to-jsx": "^7.1.8", - "memoizerific": "^1.11.3", - "polished": "^4.2.2", - "react-colorful": "^5.1.2", - "telejson": "^7.0.3", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/builder-manager": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.0.11.tgz", - "integrity": "sha512-ifSZzdC0CItMRPkEYxEziHpTfZO8JWVBIhaOrhT1TDvSameCFXa91yv9djMu9fBnJkfLsj9lyV9OjEyy7NN3uQ==", - "dev": true, - "requires": { - "@fal-works/esbuild-plugin-global-externals": "^2.1.2", - "@storybook/core-common": "7.0.11", - "@storybook/manager": "7.0.11", - "@storybook/node-logger": "7.0.11", - "@types/ejs": "^3.1.1", - "@types/find-cache-dir": "^3.2.1", - "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", - "browser-assert": "^1.2.1", - "ejs": "^3.1.8", - "esbuild": "^0.17.0", - "esbuild-plugin-alias": "^0.2.1", - "express": "^4.17.3", - "find-cache-dir": "^3.0.0", - "fs-extra": "^11.1.0", - "process": "^0.11.10", - "util": "^0.12.4" - } - }, - "@storybook/builder-vite": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.0.11.tgz", - "integrity": "sha512-qFT2WDJexbcxJjLD7k/whEiHbqIZ0wsHFfiGX5JyTEba4a7UTQ6a6yDCUb1KuLnyUOa056FwEag9ghw3WRowmA==", - "dev": true, - "requires": { - "@storybook/channel-postmessage": "7.0.11", - "@storybook/channel-websocket": "7.0.11", - "@storybook/client-logger": "7.0.11", - "@storybook/core-common": "7.0.11", - "@storybook/csf-plugin": "7.0.11", - "@storybook/mdx2-csf": "^1.0.0", - "@storybook/node-logger": "7.0.11", - "@storybook/preview": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/types": "7.0.11", - "browser-assert": "^1.2.1", - "es-module-lexer": "^0.9.3", - "express": "^4.17.3", - "fs-extra": "^11.1.0", - "glob": "^8.1.0", - "glob-promise": "^6.0.2", - "magic-string": "^0.27.0", - "remark-external-links": "^8.0.0", - "remark-slug": "^6.0.0", - "rollup": "^2.25.0 || ^3.3.0" - } - }, - "@storybook/channel-postmessage": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.11.tgz", - "integrity": "sha512-6ARow3o2thnXLO4i3+tluHAPqqSrB30U/Oxg3JqC5/2FJin3UFBOMCj04V7FPUN8jQfZpERoYgiUYE9JddT39g==", - "dev": true, - "requires": { - "@storybook/channels": "7.0.11", - "@storybook/client-logger": "7.0.11", - "@storybook/core-events": "7.0.11", - "@storybook/global": "^5.0.0", - "qs": "^6.10.0", - "telejson": "^7.0.3" - } - }, - "@storybook/channel-websocket": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-7.0.11.tgz", - "integrity": "sha512-AeoOFDA0Rkf4Jx5PgX76tlehUYbC0AHDA63ZLVol9O/P4ch2Ju5cxsiFv0brdcnv4t2ibNZkqFdsrut9O/wacg==", - "dev": true, - "requires": { - "@storybook/channels": "7.0.11", - "@storybook/client-logger": "7.0.11", - "@storybook/global": "^5.0.0", - "telejson": "^7.0.3" - } - }, - "@storybook/channels": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.11.tgz", - "integrity": "sha512-1cVgju7ViN7GDeUNUS5hp3GZLT2EgxgXj7zuGbCZwsF8lFsM0IWeXma8TV0UfcBiyQjP4edYRmUn0vy6CMc/WA==", - "dev": true - }, - "@storybook/cli": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.0.11.tgz", - "integrity": "sha512-qe2jxFs7bT/9vgLo41u+OikWCUPjinL7+3Mo88Fa/kFsKMQ3AB/UuKKJ3atJEeTjfZapnB/OU9Y7V9shAcju7g==", - "dev": true, - "requires": { - "@babel/core": "^7.20.2", - "@babel/preset-env": "^7.20.2", - "@ndelangen/get-tarball": "^3.0.7", - "@storybook/codemod": "7.0.11", - "@storybook/core-common": "7.0.11", - "@storybook/core-server": "7.0.11", - "@storybook/csf-tools": "7.0.11", - "@storybook/node-logger": "7.0.11", - "@storybook/telemetry": "7.0.11", - "@storybook/types": "7.0.11", - "@types/semver": "^7.3.4", - "boxen": "^5.1.2", - "chalk": "^4.1.0", - "commander": "^6.2.1", - "cross-spawn": "^7.0.3", - "detect-indent": "^6.1.0", - "envinfo": "^7.7.3", - "execa": "^5.0.0", - "express": "^4.17.3", - "find-up": "^5.0.0", - "fs-extra": "^11.1.0", - "get-npm-tarball-url": "^2.0.3", - "get-port": "^5.1.1", - "giget": "^1.0.0", - "globby": "^11.0.2", - "jscodeshift": "^0.14.0", - "leven": "^3.1.0", - "prettier": "^2.8.0", - "prompts": "^2.4.0", - "puppeteer-core": "^2.1.1", - "read-pkg-up": "^7.0.1", - "semver": "^7.3.7", - "shelljs": "^0.8.5", - "simple-update-notifier": "^1.0.0", - "strip-json-comments": "^3.0.1", - "tempy": "^1.0.1", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - }, - "dependencies": { - "agent-base": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", - "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true - }, - "extract-zip": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", - "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", - "dev": true, - "requires": { - "concat-stream": "^1.6.2", - "debug": "^2.6.9", - "mkdirp": "^0.5.4", - "yauzl": "^2.10.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "https-proxy-agent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", - "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", - "dev": true, - "requires": { - "agent-base": "5", - "debug": "4" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "puppeteer-core": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-2.1.1.tgz", - "integrity": "sha512-n13AWriBMPYxnpbb6bnaY5YoY6rGj8vPLrz6CZF3o0qJNEwlcfJVxBzYZ0NJsQ21UbdJoijPCDrM++SUVEz7+w==", - "dev": true, - "requires": { - "@types/mime-types": "^2.1.0", - "debug": "^4.1.0", - "extract-zip": "^1.6.6", - "https-proxy-agent": "^4.0.0", - "mime": "^2.0.3", - "mime-types": "^2.1.25", - "progress": "^2.0.1", - "proxy-from-env": "^1.0.0", - "rimraf": "^2.6.1", - "ws": "^6.1.0" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@storybook/client-logger": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.11.tgz", - "integrity": "sha512-3p+vXogcwPI9/9PgjqhJSzJsbcJUnvVyZ4rM4sQhwbXQkMjwl2j/LjI86zuYbQe9yQpKND1Yc4HPJd24225H/Q==", - "dev": true, - "requires": { - "@storybook/global": "^5.0.0" - } - }, - "@storybook/codemod": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.0.11.tgz", - "integrity": "sha512-BRELZzEUqsZ3KOVrTEikjaYPy9M4+sU4XfV4wWeZ6N6rUdWy+Db2C+tL3lqPVYYocoYmwAxab/dLdbcGp4/Evg==", - "dev": true, - "requires": { - "@babel/core": "~7.21.0", - "@babel/preset-env": "~7.21.0", - "@babel/types": "~7.21.2", - "@storybook/csf": "^0.1.0", - "@storybook/csf-tools": "7.0.11", - "@storybook/node-logger": "7.0.11", - "@storybook/types": "7.0.11", - "cross-spawn": "^7.0.3", - "globby": "^11.0.2", - "jscodeshift": "^0.14.0", - "lodash": "^4.17.21", - "prettier": "^2.8.0", - "recast": "^0.23.1" - } - }, - "@storybook/components": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.0.11.tgz", - "integrity": "sha512-U8JyhFppGTv7ul3gofQqIzlrAx1NEF0ckTMAwtbE6ke4AIbcoPvpWwwH5EoLR1cAVwoNjYeah/pVdG9IZSlyJA==", - "dev": true, - "requires": { - "@storybook/client-logger": "7.0.11", - "@storybook/csf": "^0.1.0", - "@storybook/global": "^5.0.0", - "@storybook/theming": "7.0.11", - "@storybook/types": "7.0.11", - "memoizerific": "^1.11.3", - "use-resize-observer": "^9.1.0", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/core-client": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.0.11.tgz", - "integrity": "sha512-ALm4hpGa9cnhKAc6TbRPRV32cwH0I2F6vUYduVrDd/yq8a/o2rJQwvNOr7dJiakTWI/3IACeSlQMuStYqS8r+w==", - "dev": true, - "requires": { - "@storybook/client-logger": "7.0.11", - "@storybook/preview-api": "7.0.11" - } - }, - "@storybook/core-common": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.0.11.tgz", - "integrity": "sha512-orVhH92V9lwtwu3Cv78ys26vrRZXsKYGtTGdWPv/K3G0ihIKY6JgV2wJOGNH+urY2pmno1ALOkv1FvtwkKIxsA==", - "dev": true, - "requires": { - "@storybook/node-logger": "7.0.11", - "@storybook/types": "7.0.11", - "@types/node": "^16.0.0", - "@types/pretty-hrtime": "^1.0.0", - "chalk": "^4.1.0", - "esbuild": "^0.17.0", - "esbuild-register": "^3.4.0", - "file-system-cache": "^2.0.0", - "find-up": "^5.0.0", - "fs-extra": "^11.1.0", - "glob": "^8.1.0", - "glob-promise": "^6.0.2", - "handlebars": "^4.7.7", - "lazy-universal-dotenv": "^4.0.0", - "picomatch": "^2.3.0", - "pkg-dir": "^5.0.0", - "pretty-hrtime": "^1.0.3", - "resolve-from": "^5.0.0", - "ts-dedent": "^2.0.0" - }, - "dependencies": { - "@types/node": { - "version": "16.18.30", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.30.tgz", - "integrity": "sha512-Kmp/wBZk19Dn7uRiol8kF8agnf8m0+TU9qIwyfPmXglVxMlmiIz0VQSMw5oFgwhmD2aKTlfBIO5FtsVj3y7hKQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@storybook/core-events": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.11.tgz", - "integrity": "sha512-azEjQMpMx61h4o11OV8l78ab6Jxiwc5nlbqEUa1FVCupyRKFxrbK7zovmWyVL3cTllCSiJf4v3o/MadtuH4lcw==", - "dev": true - }, - "@storybook/core-server": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.0.11.tgz", - "integrity": "sha512-lBt24X6MDYdVv68y77qzYwlTOAfJF4grJ8/f4VYOgU0EWxf++IyCwAnsXDrpvatIhiikCtMllnUq5U+QlEgcLg==", - "dev": true, - "requires": { - "@aw-web-design/x-default-browser": "1.4.88", - "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-manager": "7.0.11", - "@storybook/core-common": "7.0.11", - "@storybook/core-events": "7.0.11", - "@storybook/csf": "^0.1.0", - "@storybook/csf-tools": "7.0.11", - "@storybook/docs-mdx": "^0.1.0", - "@storybook/global": "^5.0.0", - "@storybook/manager": "7.0.11", - "@storybook/node-logger": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/telemetry": "7.0.11", - "@storybook/types": "7.0.11", - "@types/detect-port": "^1.3.0", - "@types/node": "^16.0.0", - "@types/node-fetch": "^2.5.7", - "@types/pretty-hrtime": "^1.0.0", - "@types/semver": "^7.3.4", - "better-opn": "^2.1.1", - "boxen": "^5.1.2", - "chalk": "^4.1.0", - "cli-table3": "^0.6.1", - "compression": "^1.7.4", - "detect-port": "^1.3.0", - "express": "^4.17.3", - "fs-extra": "^11.1.0", - "globby": "^11.0.2", - "ip": "^2.0.0", - "lodash": "^4.17.21", - "node-fetch": "^2.6.7", - "open": "^8.4.0", - "pretty-hrtime": "^1.0.3", - "prompts": "^2.4.0", - "read-pkg-up": "^7.0.1", - "semver": "^7.3.7", - "serve-favicon": "^2.5.0", - "telejson": "^7.0.3", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2", - "watchpack": "^2.2.0", - "ws": "^8.2.3" - }, - "dependencies": { - "@types/node": { - "version": "16.18.30", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.30.tgz", - "integrity": "sha512-Kmp/wBZk19Dn7uRiol8kF8agnf8m0+TU9qIwyfPmXglVxMlmiIz0VQSMw5oFgwhmD2aKTlfBIO5FtsVj3y7hKQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@storybook/csf": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.0.tgz", - "integrity": "sha512-uk+jMXCZ8t38jSTHk2o5btI+aV2Ksbvl6DoOv3r6VaCM1KZqeuMwtwywIQdflkA8/6q/dKT8z8L+g8hC4GC3VQ==", - "dev": true, - "requires": { - "type-fest": "^2.19.0" - } - }, - "@storybook/csf-plugin": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.0.11.tgz", - "integrity": "sha512-TL52rXruFf8kuw4y9CFfPUoF5KWYXaoxy3zStTognY+kZpDr424JJO/IHYFNp72YVZ1pygeOdZnGCKCDlw5vUQ==", - "dev": true, - "requires": { - "@storybook/csf-tools": "7.0.11", - "unplugin": "^0.10.2" - } - }, - "@storybook/csf-tools": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.0.11.tgz", - "integrity": "sha512-hW2Mw/EZ+sCwFByR1FCaElw3LqIh2/wRGVg/zJk36L9Y1vPkpneZU+Gdy5rds2hBCCYXYkJpcVKemky15Z1HJg==", - "dev": true, - "requires": { - "@babel/generator": "~7.21.1", - "@babel/parser": "~7.21.2", - "@babel/traverse": "~7.21.2", - "@babel/types": "~7.21.2", - "@storybook/csf": "^0.1.0", - "@storybook/types": "7.0.11", - "fs-extra": "^11.1.0", - "recast": "^0.23.1", - "ts-dedent": "^2.0.0" - } - }, - "@storybook/docs-mdx": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@storybook/docs-mdx/-/docs-mdx-0.1.0.tgz", - "integrity": "sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg==", - "dev": true - }, - "@storybook/docs-tools": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.0.11.tgz", - "integrity": "sha512-irHZ4hYRA5HGCCtYHoLdb4j5NlfXgn9JWXXnWb4+6LaLanDQSFTGz+H4+qnet6nBEzXuzNWlsY/Wg18AYOZOfg==", - "dev": true, - "requires": { - "@babel/core": "^7.12.10", - "@storybook/core-common": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/types": "7.0.11", - "@types/doctrine": "^0.0.3", - "doctrine": "^3.0.0", - "lodash": "^4.17.21" - } - }, - "@storybook/global": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz", - "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==", - "dev": true - }, - "@storybook/manager": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.0.11.tgz", - "integrity": "sha512-TvY+A3guncE6nGYBZ5fbodPaQGpO9FWUg2u1lPqjnMwecZCVZZomkWSMFpPsjanl5C7Q8j7ol/g8MnQg9V53MQ==", - "dev": true - }, - "@storybook/manager-api": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.0.11.tgz", - "integrity": "sha512-xR7/h0EGGaUBPSpQ7vuEq6B//wKM9vKqOqvZ4xMsebxw0b2cf1GYAm1Z2rR9n+fMXJEiPvVzGcuZd9jekGf2mQ==", - "dev": true, - "requires": { - "@storybook/channels": "7.0.11", - "@storybook/client-logger": "7.0.11", - "@storybook/core-events": "7.0.11", - "@storybook/csf": "^0.1.0", - "@storybook/global": "^5.0.0", - "@storybook/router": "7.0.11", - "@storybook/theming": "7.0.11", - "@storybook/types": "7.0.11", - "dequal": "^2.0.2", - "lodash": "^4.17.21", - "memoizerific": "^1.11.3", - "semver": "^7.3.7", - "store2": "^2.14.2", - "telejson": "^7.0.3", - "ts-dedent": "^2.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@storybook/mdx2-csf": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@storybook/mdx2-csf/-/mdx2-csf-1.1.0.tgz", - "integrity": "sha512-TXJJd5RAKakWx4BtpwvSNdgTDkKM6RkXU8GK34S/LhidQ5Pjz3wcnqb0TxEkfhK/ztbP8nKHqXFwLfa2CYkvQw==", - "dev": true - }, - "@storybook/node-logger": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.0.11.tgz", - "integrity": "sha512-N28h8aU5QglfaaM/wjpk0e7AAX8f1KBQXKArnRePHeK9M5L6w/BQQ5BcRAhcvQKZ6eOpHyADaRMHqxCxkY8qmw==", - "dev": true, - "requires": { - "@types/npmlog": "^4.1.2", - "chalk": "^4.1.0", - "npmlog": "^5.0.1", - "pretty-hrtime": "^1.0.3" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@storybook/postinstall": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.0.11.tgz", - "integrity": "sha512-bUKMQyu0LowxcxX7eO7TJYcs9WPeMfM6Ls2DTfExy7nU/z9EBfPlbXb7lXrMo4mdrHU1Cb+nGi8ZNiMwhggbqA==", - "dev": true - }, - "@storybook/preview": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.0.11.tgz", - "integrity": "sha512-xsWyTggxCoSDJ+E0yNcVrShL/y8g8Tnx+3niVve9dTypa5QhcNWhJC1kZAi42F+WjQAmolJMWBpk9auCasuY7A==", - "dev": true - }, - "@storybook/preview-api": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.11.tgz", - "integrity": "sha512-w86kKnoH46xmhoi+i0V2bPiuoKnjUhEtSHXtIOEM+gJCfrKECWzrlDVCu+fh2xv38uf7zrJcQSJg9Vmpsmiasw==", - "dev": true, - "requires": { - "@storybook/channel-postmessage": "7.0.11", - "@storybook/channels": "7.0.11", - "@storybook/client-logger": "7.0.11", - "@storybook/core-events": "7.0.11", - "@storybook/csf": "^0.1.0", - "@storybook/global": "^5.0.0", - "@storybook/types": "7.0.11", - "@types/qs": "^6.9.5", - "dequal": "^2.0.2", - "lodash": "^4.17.21", - "memoizerific": "^1.11.3", - "qs": "^6.10.0", - "synchronous-promise": "^2.0.15", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/react-dom-shim": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.0.11.tgz", - "integrity": "sha512-G7fdaIdDlED6m7f4c+5adXLb5LCaSv3aWrW1mL+pwaFboFzUMR5VAF4XwVFadYgasLZRxcrPdWRY1AZ+y6/dlw==", - "dev": true - }, - "@storybook/router": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.0.11.tgz", - "integrity": "sha512-yOboVh3iNEno4QG2XYj/2ly7w8wzckeUWl7q6s/kkHUQbiEgrAhxTTLezSLn7LlhaaiCzvYH1GEZZFzpGHHDkg==", - "dev": true, - "requires": { - "@storybook/client-logger": "7.0.11", - "memoizerific": "^1.11.3", - "qs": "^6.10.0" - } - }, - "@storybook/telemetry": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.0.11.tgz", - "integrity": "sha512-7zE5PkudTwMQ1iF0vs8/TowpLph79765IA1cJT08ngGhzD+mZW9s9ePp2LI/l4U/JTe01LexcIlVAuXKkI7I0g==", - "dev": true, - "requires": { - "@storybook/client-logger": "7.0.11", - "@storybook/core-common": "7.0.11", - "chalk": "^4.1.0", - "detect-package-manager": "^2.0.1", - "fetch-retry": "^5.0.2", - "fs-extra": "^11.1.0", - "isomorphic-unfetch": "^3.1.0", - "nanoid": "^3.3.1", - "read-pkg-up": "^7.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@storybook/theming": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.11.tgz", - "integrity": "sha512-wJtqHJBtIK1/HXXeanOAeUQEZfKBNn/qonq82BmHKb+Js+IGtnKW9upDQkzYa0oDD5IskBavN+LpQkT6ECjEYQ==", - "dev": true, - "requires": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.11", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - } - }, - "@storybook/types": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.11.tgz", - "integrity": "sha512-VOnef/u/HvYbk6LxWkwMlu31VD1ly6BTyHDOMUfYas03uNflX1KldGooWphmXVFrkkoLJoF5V4wsTShHSizi2A==", - "dev": true, - "requires": { - "@storybook/channels": "7.0.11", - "@types/babel__core": "^7.0.0", - "@types/express": "^4.7.0", - "file-system-cache": "^2.0.0" - } - }, - "@storybook/web-components": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.0.11.tgz", - "integrity": "sha512-tG/Dc4ryZAyjVbM1PSWUs2tJONuuQtEfrzHdRSufjy8LdPOJv9YeaIQ7cWEkG7io4YTCoftjUUqxWQ+GhtiTzA==", - "dev": true, - "requires": { - "@storybook/client-logger": "7.0.11", - "@storybook/core-client": "7.0.11", - "@storybook/docs-tools": "7.0.11", - "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.11", - "@storybook/preview-api": "7.0.11", - "@storybook/types": "7.0.11", - "ts-dedent": "^2.0.0" - } - }, - "@storybook/web-components-vite": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.0.11.tgz", - "integrity": "sha512-EKJ8lTeuXcSlDp9IOZAXlGQRfVGRDyJT45D4gRyamGlYGOHT8j8mBplnyBjqvk8FoV5DUYTB+xYqbJvNrQ8x+A==", - "dev": true, - "requires": { - "@storybook/builder-vite": "7.0.11", - "@storybook/core-server": "7.0.11", - "@storybook/node-logger": "7.0.11", - "@storybook/web-components": "7.0.11", - "magic-string": "^0.27.0" - } - }, - "@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true - }, - "@types/accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/babel__code-frame": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/babel__code-frame/-/babel__code-frame-7.0.3.tgz", - "integrity": "sha512-2TN6oiwtNjOezilFVl77zwdNPwQWaDBBCCWWxyo1ctiO3vAtd7H/aB/CBJdw9+kqq3+latD0SXoedIuHySSZWw==", - "dev": true - }, - "@types/babel__core": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", - "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", - "dev": true, - "requires": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.5.tgz", - "integrity": "sha512-enCvTL8m/EHS/zIvJno9nE+ndYPh1/oNFzRYRmtUqJICG2VnCSBzMLW5VN2KCQU91f23tsNKR8v7VJJQMatl7Q==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@types/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ZmI0sZGAUNXUfMWboWwi4LcfpoVUYldyN6Oe0oJ5cCsHDU/LlRq8nQKPXhYLOx36QYSW9bNIb1vvRrD6K7Llgw==" - }, - "@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", - "dev": true - }, - "@types/chai-dom": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@types/chai-dom/-/chai-dom-1.11.0.tgz", - "integrity": "sha512-Aja99Mmnny+Sz+T2hBK3oEsrcy18yabplT0pGX/QwIke9jMJHdvHlV2f4Tmq5SqxTMYwt1Zjbisv/4r83EUIHw==", - "dev": true, - "requires": { - "@types/chai": "*" - } - }, - "@types/co-body": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/co-body/-/co-body-6.1.0.tgz", - "integrity": "sha512-3e0q2jyDAnx/DSZi0z2H0yoZ2wt5yRDZ+P7ymcMObvq0ufWRT4tsajyO+Q1VwVWiv9PRR4W3YEjEzBjeZlhF+w==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*" - } - }, - "@types/command-line-args": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz", - "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==", - "dev": true - }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/content-disposition": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.5.tgz", - "integrity": "sha512-v6LCdKfK6BwcqMo+wYW05rLS12S0ZO0Fl4w1h4aaZMD7bqT3gVUns6FvLJKGZHQmYn3SX55JWGpziwJRwVgutA==", - "dev": true - }, - "@types/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-QUm4YOC/ENo0VjPVl2o8HGyTbHHQGDOw8PCg3rXBucYHKyZN/XjXRbPFAV1tB2FvM0/wyFoDct4cTIctzKrQFg==", - "dev": true - }, - "@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true - }, - "@types/cookies": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz", - "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/express": "*", - "@types/keygrip": "*", - "@types/node": "*" - } - }, - "@types/debounce": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-epMsEE85fi4lfmJUH/89/iV/LI+F5CvNIvmgs5g5jYFPfhO2S/ae8WSsLOKWdwtoaZw9Q2IhJ4tQ5tFCcS/4HA==", - "dev": true - }, - "@types/debug": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", - "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", - "dev": true, - "requires": { - "@types/ms": "*" - } - }, - "@types/detect-port": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/detect-port/-/detect-port-1.3.2.tgz", - "integrity": "sha512-xxgAGA2SAU4111QefXPSp5eGbDm/hW6zhvYl9IeEPZEry9F4d66QAHm5qpUXjb6IsevZV/7emAEx5MhP6O192g==", - "dev": true - }, - "@types/doctrine": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", - "integrity": "sha512-w5jZ0ee+HaPOaX25X2/2oGR/7rgAQSYII7X7pp0m9KgBfMP7uKfMfTvcpl5Dj+eDBbpxKGiqE+flqDr6XTd2RA==", - "dev": true - }, - "@types/ejs": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@types/ejs/-/ejs-3.1.2.tgz", - "integrity": "sha512-ZmiaE3wglXVWBM9fyVC17aGPkLo/UgaOjEiI2FXQfyczrCefORPxIe+2dVmnmk3zkVIbizjrlQzmPGhSYGXG5g==", - "dev": true - }, - "@types/estree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", - "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", - "dev": true - }, - "@types/express": { - "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.33", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz", - "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/find-cache-dir": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@types/find-cache-dir/-/find-cache-dir-3.2.1.tgz", - "integrity": "sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==", - "dev": true - }, - "@types/fined": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@types/fined/-/fined-1.1.3.tgz", - "integrity": "sha512-CWYnSRnun3CGbt6taXeVo2lCbuaj4mchVJ4UF/BdU5TSuIn3AmS13pGMwCsBUoehGbhZrBrpNJZSZI5EVilXww==", - "dev": true - }, - "@types/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==", - "dev": true, - "requires": { - "@types/minimatch": "^5.1.2", - "@types/node": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/http-assert": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", - "integrity": "sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==", - "dev": true - }, - "@types/http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==", - "dev": true - }, - "@types/inquirer": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.2.6.tgz", - "integrity": "sha512-3uT88kxg8lNzY8ay2ZjP44DKcRaTGztqeIvN2zHvhzIBH/uAPaL75aBtdNRKbA7xXoMbBt5kX0M00VKAnfOYlA==", - "dev": true, - "requires": { - "@types/through": "*", - "rxjs": "^7.2.0" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jquery": { - "version": "3.5.16", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.16.tgz", - "integrity": "sha512-bsI7y4ZgeMkmpG9OM710RRzDFp+w4P1RGiIt30C1mSBT+ExCleeh4HObwgArnDFELmRrOpXgSYN9VF1hj+f1lw==", - "requires": { - "@types/sizzle": "*" - } - }, - "@types/js-levenshtein": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/js-levenshtein/-/js-levenshtein-1.1.1.tgz", - "integrity": "sha512-qC4bCqYGy1y/NP7dDVr7KJarn+PbX1nSpwA7JXdu0HxT3QYjO8MJ+cntENtHFVy2dRAyBV23OZ6MxsW1AM1L8g==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "@types/keygrip": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", - "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==", - "dev": true - }, - "@types/koa": { - "version": "2.13.6", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.6.tgz", - "integrity": "sha512-diYUfp/GqfWBAiwxHtYJ/FQYIXhlEhlyaU7lB/bWQrx4Il9lCET5UwpFy3StOAohfsxxvEQ11qIJgT1j2tfBvw==", - "dev": true, - "requires": { - "@types/accepts": "*", - "@types/content-disposition": "*", - "@types/cookies": "*", - "@types/http-assert": "*", - "@types/http-errors": "*", - "@types/keygrip": "*", - "@types/koa-compose": "*", - "@types/node": "*" - } - }, - "@types/koa-compose": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", - "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", - "dev": true, - "requires": { - "@types/koa": "*" - } - }, - "@types/liftoff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-4.0.0.tgz", - "integrity": "sha512-Ny/PJkO6nxWAQnaet8q/oWz15lrfwvdvBpuY4treB0CSsBO1CG0fVuNLngR3m3bepQLd+E4c3Y3DlC2okpUvPw==", - "dev": true, - "requires": { - "@types/fined": "*", - "@types/node": "*" - } - }, - "@types/lodash": { - "version": "4.14.194", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.194.tgz", - "integrity": "sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==", - "dev": true - }, - "@types/lodash-es": { - "version": "4.17.7", - "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.7.tgz", - "integrity": "sha512-z0ptr6UI10VlU6l5MYhGwS4mC8DZyYer2mCoyysZtSF7p26zOX8UpbrV0YpNYLGS8K4PUFIyEr62IMFFjveSiQ==", - "dev": true, - "requires": { - "@types/lodash": "*" - } - }, - "@types/mdast": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.11.tgz", - "integrity": "sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==", - "dev": true, - "requires": { - "@types/unist": "*" - } - }, - "@types/mdx": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.4.tgz", - "integrity": "sha512-qCYrNdpKwN6YO6FVnx+ulfqifKlE3lQGsNhvDaW9Oxzyob/cRLBJWow8GHBBD4NxQ7BVvtsATgLsX0vZAWmtrg==", - "dev": true - }, - "@types/mime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", - "dev": true - }, - "@types/mime-types": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.1.tgz", - "integrity": "sha512-vXOTGVSLR2jMw440moWTC7H19iUyLtP3Z1YTj7cSsubOICinjMxFeb/V57v9QdyyPGbbWolUFSSmSiRSn94tFw==", - "dev": true - }, - "@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true - }, - "@types/mocha": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz", - "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==", - "dev": true - }, - "@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==", - "dev": true - }, - "@types/node": { - "version": "18.16.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.0.tgz", - "integrity": "sha512-BsAaKhB+7X+H4GnSjGhJG9Qi8Tw+inU9nJDwmD5CgOmBLEI6ArdhikpLX7DjbjDRDTbqZzU2LSQNZg8WGPiSZQ==", - "dev": true - }, - "@types/node-fetch": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.3.tgz", - "integrity": "sha512-ETTL1mOEdq/sxUtgtOhKjyB2Irra4cjxksvcMUR5Zr4n+PxVhsCD9WS46oPbHL3et9Zde7CNRr+WUNlcHvsX+w==", - "dev": true, - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - }, - "dependencies": { - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "@types/npmlog": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@types/npmlog/-/npmlog-4.1.4.tgz", - "integrity": "sha512-WKG4gTr8przEZBiJ5r3s8ZIAoMXNbOgQ+j/d5O4X3x6kZJRLNvyUJuUK/KoG3+8BaOHPhp2m7WC6JKKeovDSzQ==", - "dev": true - }, - "@types/parse5": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", - "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", - "dev": true - }, - "@types/pretty-hrtime": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/pretty-hrtime/-/pretty-hrtime-1.0.1.tgz", - "integrity": "sha512-VjID5MJb1eGKthz2qUerWT8+R4b9N+CHvGCzg9fn4kWZgaF9AhdYikQio3R7wV8YY1NsQKPaCwKz1Yff+aHNUQ==", - "dev": true - }, - "@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", - "dev": true - }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true - }, - "@types/react": { - "version": "18.0.38", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.38.tgz", - "integrity": "sha512-ExsidLLSzYj4cvaQjGnQCk4HFfVT9+EZ9XZsQ8Hsrcn8QNgXtpZ3m9vSIC2MWtx7jHictK6wYhQgGh6ic58oOw==", - "dev": true, - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "@types/resolve": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", - "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", - "dev": true - }, - "@types/scheduler": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", - "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==", - "dev": true - }, - "@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", - "dev": true - }, - "@types/serve-static": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", - "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", - "dev": true, - "requires": { - "@types/mime": "*", - "@types/node": "*" - } - }, - "@types/set-cookie-parser": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@types/set-cookie-parser/-/set-cookie-parser-2.4.2.tgz", - "integrity": "sha512-fBZgytwhYAUkj/jC/FAV4RQ5EerRup1YQsXQCh8rZfiHkc4UahC192oH0smGwsXol3cL3A5oETuAHeQHmhXM4w==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/sinon": { - "version": "10.0.14", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.14.tgz", - "integrity": "sha512-mn72up6cjaMyMuaPaa/AwKf6WtsSRysQC7wxFkCm1XcOKXPM1z+5Y4H5wjIVBz4gdAkjvZxVVfjA6ba1nHr5WQ==", - "dev": true, - "requires": { - "@types/sinonjs__fake-timers": "*" - } - }, - "@types/sinon-chai": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-3.2.9.tgz", - "integrity": "sha512-/19t63pFYU0ikrdbXKBWj9PCdnKyTd0Qkz0X91Ta081cYsq90OxYdcWwK/dwEoDa6dtXgj2HJfmzgq+QZTHdmQ==", - "dev": true, - "requires": { - "@types/chai": "*", - "@types/sinon": "*" - } - }, - "@types/sinonjs__fake-timers": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz", - "integrity": "sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA==", - "dev": true - }, - "@types/sizzle": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", - "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==" - }, - "@types/through": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz", - "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/trusted-types": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", - "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==" - }, - "@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==", - "dev": true - }, - "@types/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA==", - "dev": true - }, - "@types/ws": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.2.tgz", - "integrity": "sha512-yVrXupeHjRxLDcPKL10sGQ/QlVrA8J5IYOEWVqk0lJaSZP7X5DfnP7Ns3cc74/blmbipQ1htFNVGsHX6wsYm0A==", - "dev": true, - "requires": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.2", - "@typescript-eslint/type-utils": "5.59.2", - "@typescript-eslint/utils": "5.59.2", - "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.2.tgz", - "integrity": "sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/visitor-keys": "5.59.2" - } - }, - "@typescript-eslint/types": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.2.tgz", - "integrity": "sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==", - "dev": true - }, - "@typescript-eslint/visitor-keys": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.2.tgz", - "integrity": "sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.2", - "eslint-visitor-keys": "^3.3.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@typescript-eslint/parser": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.1.tgz", - "integrity": "sha512-nzjFAN8WEu6yPRDizIFyzAfgK7nybPodMNFGNH0M9tei2gYnYszRDqVA0xlnRjkl7Hkx2vYrEdb6fP2a21cG1g==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.59.1", - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/typescript-estree": "5.59.1", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.1.tgz", - "integrity": "sha512-mau0waO5frJctPuAzcxiNWqJR5Z8V0190FTSqRw1Q4Euop6+zTwHAf8YIXNwDOT29tyUDrQ65jSg9aTU/H0omA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/visitor-keys": "5.59.1" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.2.tgz", - "integrity": "sha512-b1LS2phBOsEy/T381bxkkywfQXkV1dWda/z0PhnIy3bC5+rQWQDS7fk9CSpcXBccPY27Z6vBEuaPBCKCgYezyQ==", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "5.59.2", - "@typescript-eslint/utils": "5.59.2", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "dependencies": { - "@typescript-eslint/types": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.2.tgz", - "integrity": "sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.2.tgz", - "integrity": "sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/visitor-keys": "5.59.2", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.2.tgz", - "integrity": "sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.2", - "eslint-visitor-keys": "^3.3.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@typescript-eslint/types": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.1.tgz", - "integrity": "sha512-dg0ICB+RZwHlysIy/Dh1SP+gnXNzwd/KS0JprD3Lmgmdq+dJAJnUPe1gNG34p0U19HvRlGX733d/KqscrGC1Pg==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.1.tgz", - "integrity": "sha512-lYLBBOCsFltFy7XVqzX0Ju+Lh3WPIAWxYpmH/Q7ZoqzbscLiCW00LeYCdsUnnfnj29/s1WovXKh2gwCoinHNGA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/visitor-keys": "5.59.1", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@typescript-eslint/utils": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.2.tgz", - "integrity": "sha512-kSuF6/77TZzyGPhGO4uVp+f0SBoYxCDf+lW3GKhtKru/L8k/Hd7NFQxyWUeY7Z/KGB2C6Fe3yf2vVi4V9TsCSQ==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.2", - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/typescript-estree": "5.59.2", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.2.tgz", - "integrity": "sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/visitor-keys": "5.59.2" - } - }, - "@typescript-eslint/types": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.2.tgz", - "integrity": "sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.2.tgz", - "integrity": "sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/visitor-keys": "5.59.2", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.2.tgz", - "integrity": "sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.2", - "eslint-visitor-keys": "^3.3.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.1.tgz", - "integrity": "sha512-6waEYwBTCWryx0VJmP7JaM4FpipLsFl9CvYf2foAE8Qh/Y0s+bxWysciwOs0LTBED4JCaNxTZ5rGadB14M6dwA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.1", - "eslint-visitor-keys": "^3.3.0" - } - }, - "@umbraco-ui/uui": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.3.0-rc.0.tgz", - "integrity": "sha512-oXa2lxUsYK2/YGwgvjH8O06VgxcuL11XOm9jGYgVGVj3bILjuW44OoG914ObK7mScUw8zVtkY3PMstukKYqUaQ==", - "requires": { - "@umbraco-ui/uui-action-bar": "1.3.0-rc.0", - "@umbraco-ui/uui-avatar": "1.3.0-rc.0", - "@umbraco-ui/uui-avatar-group": "1.3.0-rc.0", - "@umbraco-ui/uui-badge": "1.3.0-rc.0", - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-boolean-input": "1.3.0-rc.0", - "@umbraco-ui/uui-box": "1.3.0-rc.0", - "@umbraco-ui/uui-breadcrumbs": "1.3.0-rc.0", - "@umbraco-ui/uui-button": "1.3.0-rc.0", - "@umbraco-ui/uui-button-group": "1.3.0-rc.0", - "@umbraco-ui/uui-button-inline-create": "1.3.0-rc.0", - "@umbraco-ui/uui-card": "1.3.0-rc.0", - "@umbraco-ui/uui-card-content-node": "1.3.0-rc.0", - "@umbraco-ui/uui-card-media": "1.3.0-rc.0", - "@umbraco-ui/uui-card-user": "1.3.0-rc.0", - "@umbraco-ui/uui-caret": "1.3.0-rc.0", - "@umbraco-ui/uui-checkbox": "1.3.0-rc.0", - "@umbraco-ui/uui-color-area": "1.3.0-rc.0", - "@umbraco-ui/uui-color-picker": "1.3.0-rc.0", - "@umbraco-ui/uui-color-slider": "1.3.0-rc.0", - "@umbraco-ui/uui-color-swatch": "1.3.0-rc.0", - "@umbraco-ui/uui-color-swatches": "1.3.0-rc.0", - "@umbraco-ui/uui-combobox": "1.3.0-rc.0", - "@umbraco-ui/uui-combobox-list": "1.3.0-rc.0", - "@umbraco-ui/uui-css": "1.3.0-rc.0", - "@umbraco-ui/uui-dialog": "1.3.0-rc.0", - "@umbraco-ui/uui-dialog-layout": "1.3.0-rc.0", - "@umbraco-ui/uui-file-dropzone": "1.3.0-rc.0", - "@umbraco-ui/uui-file-preview": "1.3.0-rc.0", - "@umbraco-ui/uui-form": "1.3.0-rc.0", - "@umbraco-ui/uui-form-layout-item": "1.3.0-rc.0", - "@umbraco-ui/uui-form-validation-message": "1.3.0-rc.0", - "@umbraco-ui/uui-icon": "1.3.0-rc.0", - "@umbraco-ui/uui-icon-registry": "1.3.0-rc.0", - "@umbraco-ui/uui-icon-registry-essential": "1.3.0-rc.0", - "@umbraco-ui/uui-input": "1.3.0-rc.0", - "@umbraco-ui/uui-input-file": "1.3.0-rc.0", - "@umbraco-ui/uui-input-lock": "1.3.0-rc.0", - "@umbraco-ui/uui-input-password": "1.3.0-rc.0", - "@umbraco-ui/uui-keyboard-shortcut": "1.3.0-rc.0", - "@umbraco-ui/uui-label": "1.3.0-rc.0", - "@umbraco-ui/uui-loader": "1.3.0-rc.0", - "@umbraco-ui/uui-loader-bar": "1.3.0-rc.0", - "@umbraco-ui/uui-loader-circle": "1.3.0-rc.0", - "@umbraco-ui/uui-menu-item": "1.3.0-rc.0", - "@umbraco-ui/uui-modal": "1.3.0-rc.0", - "@umbraco-ui/uui-pagination": "1.3.0-rc.0", - "@umbraco-ui/uui-popover": "1.3.0-rc.0", - "@umbraco-ui/uui-progress-bar": "1.3.0-rc.0", - "@umbraco-ui/uui-radio": "1.3.0-rc.0", - "@umbraco-ui/uui-range-slider": "1.3.0-rc.0", - "@umbraco-ui/uui-ref": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-list": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node-data-type": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node-document-type": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node-form": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node-member": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node-package": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node-user": "1.3.0-rc.0", - "@umbraco-ui/uui-scroll-container": "1.3.0-rc.0", - "@umbraco-ui/uui-select": "1.3.0-rc.0", - "@umbraco-ui/uui-slider": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-expand": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-file": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-file-dropzone": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-folder": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-lock": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-more": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-sort": "1.3.0-rc.0", - "@umbraco-ui/uui-table": "1.3.0-rc.0", - "@umbraco-ui/uui-tabs": "1.3.0-rc.0", - "@umbraco-ui/uui-tag": "1.3.0-rc.0", - "@umbraco-ui/uui-textarea": "1.3.0-rc.0", - "@umbraco-ui/uui-toast-notification": "1.3.0-rc.0", - "@umbraco-ui/uui-toast-notification-container": "1.3.0-rc.0", - "@umbraco-ui/uui-toast-notification-layout": "1.3.0-rc.0", - "@umbraco-ui/uui-toggle": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-action-bar": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-action-bar/-/uui-action-bar-1.3.0-rc.0.tgz", - "integrity": "sha512-LH9yLkTHbSpjJqsbB+0fTZJw6IlNNEoG/kGk2EmDLArfy8dT3YtK1ZKPUTHACe0AQ/CVt8vH8hcoNGBtXz3Q3g==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-button-group": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-avatar": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar/-/uui-avatar-1.3.0-rc.0.tgz", - "integrity": "sha512-Mj3a9vWXRf4JUYpVI+S6fuDu2x4niP5ETR3D5wpRDIpgjpmw3kbDTq5k4fjZ1NW40AYbtHM1e9xEOrBlydlLqQ==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-avatar-group": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar-group/-/uui-avatar-group-1.3.0-rc.0.tgz", - "integrity": "sha512-LWOPPI4UkaaNQgbSwtHZtghJGudH/4pU1l5azwIe0x2Dh0BI/CGNRBoMy7XhA52XtBYTzpKDHzOg2kX+6IWRFg==", - "requires": { - "@umbraco-ui/uui-avatar": "1.3.0-rc.0", - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-badge": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-badge/-/uui-badge-1.3.0-rc.0.tgz", - "integrity": "sha512-gNs5/BEdMxHOBWxocfxIDQWXeAazNLUDppOb5S5KyOcFSdCseuPd3+jgm2qqlNVzpVGhVIglv0/0DJGJdgCNow==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-base": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-base/-/uui-base-1.3.0-rc.0.tgz", - "integrity": "sha512-d69/QwB2Wbwk3IkKp7d93FYcXyU7SNpfY4S/TI4rTcAXrrmOZTcnQdKZeU3d6VB3+gXS+dXMA+PVesY2Cv3tDg==", - "requires": { - "lit": "^2.3.1" - } - }, - "@umbraco-ui/uui-boolean-input": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-boolean-input/-/uui-boolean-input-1.3.0-rc.0.tgz", - "integrity": "sha512-pqlcCuZCJ8lWgDnYmcYRpPb++YcCPvkNF1YPmRoCLqNrz9xrWQFV7n0xbdfj5JsWm4UkRbuFNbgyAz88VXjB/A==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-box": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-box/-/uui-box-1.3.0-rc.0.tgz", - "integrity": "sha512-Y/CaolNfE4/w2Fbb8xYX3wdF5ddhiTRKp5uxwNYuDWj2qZlOmGJTRPUbr11nZCnVkhV6rnVH/sb6kwPTa8Y0vA==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-css": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-breadcrumbs": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.3.0-rc.0.tgz", - "integrity": "sha512-6zCoOQ5J1uty4Qc6PxUmoq46lYc5/xAFZm/gfiLqB7SHF4V+WNzx5mXpBElHkKtAc2Kblj4eDx1TSv2ai3rZyQ==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-button": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button/-/uui-button-1.3.0-rc.0.tgz", - "integrity": "sha512-spjUF8Eccltnl79n7VJH3+082kRyjckYTCFKfgKT4KaoMewbW8C1hck6f1e6tehCQT8ZWcZSfeiyuA/PaXgl6w==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-icon-registry-essential": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-button-group": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-group/-/uui-button-group-1.3.0-rc.0.tgz", - "integrity": "sha512-w9/WMA2XtM6pUKYA3ivoK34Ao4EI5v58Ra6LHJLte82oo8T6AVXHtbRH8CDd4MHZhKYhLTkv8wfh791xpfgnKg==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-button-inline-create": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-inline-create/-/uui-button-inline-create-1.3.0-rc.0.tgz", - "integrity": "sha512-jtj/OUmnYoNjbEUGKVu5AuOm7R6aPnY9AejMLFTEnbI/X1hgDmNR4lbUr7YhxlZtd7oAuY4/HMedK1Lsr+xhDw==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-card": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card/-/uui-card-1.3.0-rc.0.tgz", - "integrity": "sha512-1B8elGDQ9czucxBph1kTOkDebOU6eKsDksKXA9e5DJSa7F+X/cWi+oSX8EegvaTkELgir//kKknkwDVsmiJkgg==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-card-content-node": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-content-node/-/uui-card-content-node-1.3.0-rc.0.tgz", - "integrity": "sha512-c3otZYpfR4MpaDK/i7hB0SQAfvMj1sFHXusX9u5zkqqZox3TXuIFRqwcTGhWLC/5ISTXg/zC7gAqa2SP/qntRg==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-card": "1.3.0-rc.0", - "@umbraco-ui/uui-icon": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-card-media": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-media/-/uui-card-media-1.3.0-rc.0.tgz", - "integrity": "sha512-OHkxIxMCn5/8wjMlIuOYKqJ2eUqfs8Rm3fnvPIU1q5rW2KZDCVeAmA7PnhvbhCTaa06ovVZmiuvvy4dvXh23/A==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-card": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-file": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-folder": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-card-user": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-user/-/uui-card-user-1.3.0-rc.0.tgz", - "integrity": "sha512-zT0Kajbs2NkVBk2iSPn9lreWRQBx5CO4y5QDuwnr3NDioFTqfIGkmrKBTN+er4ftPVs3TRqbTaR4TitWr0Wewg==", - "requires": { - "@umbraco-ui/uui-avatar": "1.3.0-rc.0", - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-card": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-caret": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-caret/-/uui-caret-1.3.0-rc.0.tgz", - "integrity": "sha512-np42RexAq/3fYrGdR3V57D6sW4EztQwToEWU7TxGoHGGtLcMtv+dqpXio6SnuyLXrgu/RmNqMUgKzA+ab7HfRA==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-checkbox": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-checkbox/-/uui-checkbox-1.3.0-rc.0.tgz", - "integrity": "sha512-g++DastxyJkyMExjTQmO4/CdNV+6XNkRjfZMhcsmR+922qO+V2AwksEE7BaxpHQfdlf2NDgZdKaTJ3njJ2kPPQ==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-boolean-input": "1.3.0-rc.0", - "@umbraco-ui/uui-icon-registry-essential": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-color-area": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-area/-/uui-color-area-1.3.0-rc.0.tgz", - "integrity": "sha512-HPnk0qTWiLdgP0vf+s992djp36Q/FsFrexEJm+l9d7hm7eWlsB7LoxRdHPLKxIfUe0lEXdD4xc2Ym7UtmEH8jg==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "colord": "^2.9.3" - } - }, - "@umbraco-ui/uui-color-picker": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-picker/-/uui-color-picker-1.3.0-rc.0.tgz", - "integrity": "sha512-DyD+dmVg5meZiVWIwmG9P1Rq00L9S0+3rJ00nQvCP7zrUjUQ5gviwxPqQTGXZmNn8Omg6JJ7ssh1oUbKt9CpCg==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "colord": "^2.9.3" - } - }, - "@umbraco-ui/uui-color-slider": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-slider/-/uui-color-slider-1.3.0-rc.0.tgz", - "integrity": "sha512-zr9kD5+JMjrg6g8sXOWeAnxxN+1WocO4Lko2p4GA8pk2/29eSUJcb2nahBfyxt4OlBoDlc1D1Ll9SMsEUWSn8w==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-color-swatch": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatch/-/uui-color-swatch-1.3.0-rc.0.tgz", - "integrity": "sha512-qOl58Ckwr/6cUGwSC6tS8ywyIZu8dgDJpyG21mhFUvK1eZ0LTKLm8MWjYWvHD/3vzdm4o/jKD44BeRa/pJeZ/A==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-icon-registry-essential": "1.3.0-rc.0", - "colord": "^2.9.3" - } - }, - "@umbraco-ui/uui-color-swatches": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatches/-/uui-color-swatches-1.3.0-rc.0.tgz", - "integrity": "sha512-5O7rp0DsfEDAWVp+0kotrMWI0q1CYMGUZRMugmPDv/7e2TXgn62KwUY73WOHkEZwr6hgH3uA0CCCnLOMMIIesQ==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-color-swatch": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-combobox": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox/-/uui-combobox-1.3.0-rc.0.tgz", - "integrity": "sha512-0UJhREd2BXZm3QZlWZxIwNKhBvYAVSE2E0u1iiMPBIubmaa9iPKYdtLunspOjcfxrFHmbp0sFune0zoU8gyIew==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-button": "1.3.0-rc.0", - "@umbraco-ui/uui-combobox-list": "1.3.0-rc.0", - "@umbraco-ui/uui-icon": "1.3.0-rc.0", - "@umbraco-ui/uui-scroll-container": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-combobox-list": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox-list/-/uui-combobox-list-1.3.0-rc.0.tgz", - "integrity": "sha512-Hdbf3JYRx2inVYGFuZu1Z3c3C0ghKFCELuTLAvCbyzzzUqloipsgLcJLFTI7tnea/jbWX7wAB1tg7BiO7Pi9PA==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-css": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.3.0-rc.0.tgz", - "integrity": "sha512-Xt3QGwvMcwnArTIgpE3PN3ZEMOorILTVwZqeNdI6XkuQcXODFMhF1VMWjPySOZ5K6Y2iZpxWvvTOagAhgDCoPQ==", - "requires": { - "lit": "^2.2.2" - } - }, - "@umbraco-ui/uui-dialog": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog/-/uui-dialog-1.3.0-rc.0.tgz", - "integrity": "sha512-eJG1dTqF2J2CLl7tnREYf+jdNmNFBVI2AevjsA/HHnOpkaUUBALRCOsCFA4T9HdhPPC8HtI4O/Jnhz7fHXioCg==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-css": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-dialog-layout": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog-layout/-/uui-dialog-layout-1.3.0-rc.0.tgz", - "integrity": "sha512-cSGQUUIyzlzstLAHL+2JyACm682e9PwhT8Z0S80gXgoBSo5UtjlrMeFwP9iaRhLCE5zw6RDIXCNiquAmZxNG6g==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-file-dropzone": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.3.0-rc.0.tgz", - "integrity": "sha512-QBdxRY5RkyE9deyjcg0X3AlnuXu5LaIldZTkOfDVljDmSpq80gWaHt2eZF1S3/1r62z7yvVsU9mldeR/9LvX0w==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-file-dropzone": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-file-preview": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-preview/-/uui-file-preview-1.3.0-rc.0.tgz", - "integrity": "sha512-QrNenh1xbNRnWqIiH6vIjtA1W3HSqGEePvziWXWpOlCzPXm22NGGLnlKLf9LPEIEyv1lCCO09lvqeuM3Utc3Zg==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-file": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-folder": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-form": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form/-/uui-form-1.3.0-rc.0.tgz", - "integrity": "sha512-BEBWJtq0N+KNLYJxHr8cULVBN+5/kSNFwmeu+naZ8Ym33xjSJMLRHVK/Xuu0mLDylaJ4Q+9j/KfgWZyss/xLpw==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-form-layout-item": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-layout-item/-/uui-form-layout-item-1.3.0-rc.0.tgz", - "integrity": "sha512-mV/3fQUpSQAb/coNyYFwApS5vMLlBYNoYbGA6zbyic6+kaoCGOARn7Iiq0GmsrhTQU3RJDf3br3UqYUwC9vThA==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-form-validation-message": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-form-validation-message": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-validation-message/-/uui-form-validation-message-1.3.0-rc.0.tgz", - "integrity": "sha512-UnNql2a7mBgTzyWZUn5tTwTAOj345vN4wVg596NTRDOQr5Cwotx6GCQsnC1suoYlgDJjd0S3ok4OQaO0zjYjug==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-icon": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon/-/uui-icon-1.3.0-rc.0.tgz", - "integrity": "sha512-UddJZP0gVCYVbSneF9O9cqC+GaNuB9Wt42KW0SyhhTrSSzg6Tr4x+VKDu1LMaEl90i36Rg7QyUTAdPQ3Zite4w==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-icon-registry": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry/-/uui-icon-registry-1.3.0-rc.0.tgz", - "integrity": "sha512-cfWiz9hV9xQYxoTKFWwI/9yHcvFvOPyHSnaFrpiJKS8ddl6px1YjDBCuYQNSlDHNlVASWHF4tE/YXX4xqO5xxw==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-icon": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-icon-registry-essential": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry-essential/-/uui-icon-registry-essential-1.3.0-rc.0.tgz", - "integrity": "sha512-uZcSPnRml0W6BlIZiDNf5OvR0+NLc08Af+GPl9gytu8yPlnDtw/YMsclZBz+oRW1CwmXgCM3a3EMG6YKEGr1CA==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-icon-registry": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-input": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.3.0-rc.0.tgz", - "integrity": "sha512-Kh1aGtD8NstkIgMdr4SlwFaBC0qBGPeJ7Zh68MUlFvgO9+A4KaY6hbpBSGSWKJWw+rbx1/3xqvTJ8vvmxAoYBg==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-input-file": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-file/-/uui-input-file-1.3.0-rc.0.tgz", - "integrity": "sha512-KZlgYPA9oxvH/yi5b1Zz4C3IrzoJSRbq0oVQ7w79RqhzzSSigucg4ld2a0a9yDnJUm0oJeKa8ITr8b9Q9V3fAA==", - "requires": { - "@umbraco-ui/uui-action-bar": "1.3.0-rc.0", - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-button": "1.3.0-rc.0", - "@umbraco-ui/uui-file-dropzone": "1.3.0-rc.0", - "@umbraco-ui/uui-icon": "1.3.0-rc.0", - "@umbraco-ui/uui-icon-registry-essential": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-input-lock": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.3.0-rc.0.tgz", - "integrity": "sha512-Ec27by8X7Ay6nSMGIHiELEtAn3jmB8URGsl6ATJZoVPmDWfEGT1htECE1/2ALltUCTRQ0nICtVcWVrYyKnFZzQ==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-button": "1.3.0-rc.0", - "@umbraco-ui/uui-icon": "1.3.0-rc.0", - "@umbraco-ui/uui-input": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-input-password": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.3.0-rc.0.tgz", - "integrity": "sha512-lf1B0rHzWLscqPzjARS9UJm3zZwjR0T1vwFnypZ+PU1BBDiu/TpFNATreFzvFPlQ2pHllfI+b7UhuIOdr/rcpQ==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-icon-registry-essential": "1.3.0-rc.0", - "@umbraco-ui/uui-input": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-keyboard-shortcut": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-keyboard-shortcut/-/uui-keyboard-shortcut-1.3.0-rc.0.tgz", - "integrity": "sha512-mwu4CyjF+uptbD4inb0KtK0UexU6x9uJocylqom6vVZMfdCgXWMbv0MRz4d7MP9lGlGl51mEE8bUVwY9t6sDRg==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-label": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-label/-/uui-label-1.3.0-rc.0.tgz", - "integrity": "sha512-kl8h1yTfit7lJPKZFmmsm5MZsYUgi3eXO7c5kToazGbsC/pIm7aiXaX3w4O7rARNxHoA7myAxcfgeS3fO4AzMg==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-loader": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader/-/uui-loader-1.3.0-rc.0.tgz", - "integrity": "sha512-4xc8Tr1jFE/xLlJgiePSqFRlk2QNN4Au0iLRtKXiQHm3uW5uInf81OF/th1GTtW2f7dnXF9ww0oBXvZYTrQQ6Q==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-loader-bar": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-bar/-/uui-loader-bar-1.3.0-rc.0.tgz", - "integrity": "sha512-reuNMGmH9TVRTpXo2w28nDakHdLbQUnR1ivcCG36Mkplwz0ptOcr+gXHP0MCMRNq5N3hwN+jeRoIrWB57/1VnA==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-loader-circle": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-circle/-/uui-loader-circle-1.3.0-rc.0.tgz", - "integrity": "sha512-PkCEMQhCuz7WENPFGmAC0Wf3GLwWfZ/JOEtZ4Nu1iwvEovPsZ+gHEprm0u/bWuIACX/AbVok4WqAfTWMHCWTLw==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-menu-item": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-menu-item/-/uui-menu-item-1.3.0-rc.0.tgz", - "integrity": "sha512-l2OWqZwQ/pLd13ofwc9MWxlm654giMZph7+/nz0Ia4hV0Irlwf8oTOOYkoQK32vuAd0WFAyz/bvnBh9FdblYug==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-loader-bar": "1.3.0-rc.0", - "@umbraco-ui/uui-symbol-expand": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-modal": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-modal/-/uui-modal-1.3.0-rc.0.tgz", - "integrity": "sha512-/dzmqW0BdXUsUQuZeFhfgwnkVvKTbzehBpQ8dg/RMIk3W9YbxO4SQQVmLNWt0YscvYuUD45dHcYi28fmkJhPjA==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-pagination": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-pagination/-/uui-pagination-1.3.0-rc.0.tgz", - "integrity": "sha512-BopIJIfYV9VIuGWg7xNJIhFGzgor9gHOOoRMRIjXrk4giz9RFFnwM4EVTD2HFoR7TOsqEf0V+BAH2uYnu231nA==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-button": "1.3.0-rc.0", - "@umbraco-ui/uui-button-group": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-popover": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover/-/uui-popover-1.3.0-rc.0.tgz", - "integrity": "sha512-W9mCxR7RP6dA6A53Dxv8IaNTWJ4WnlBQA4ZvIlZUlh4GafWCCkKMEhfSKto4V/A3671DXz/qv/qpV9w5AL85BQ==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-progress-bar": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-progress-bar/-/uui-progress-bar-1.3.0-rc.0.tgz", - "integrity": "sha512-l8UwQePSkyMFWK5Urf/PQj1tVAHK89aSK/PBqnDBJLBXvTmFNbA8/habNCIEEfGsHFqYObC8YZ14k8VeRntiog==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-radio": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-radio/-/uui-radio-1.3.0-rc.0.tgz", - "integrity": "sha512-jlo5i57txTF77lKa72zbKhFAVReeaQ08tTNjfNVUWgm/JXyH+wVNj8Ann8BOd180Fwl8UGVPvnZlG3B+crzCFg==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-range-slider": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-range-slider/-/uui-range-slider-1.3.0-rc.0.tgz", - "integrity": "sha512-ERk5q4QkC2EnQwX0Ab9r5WzssPkZGHhE/0BHehQgu0EizUU3Rbvi1AwuIwIJTgqLNaiULi914GItqDtGg5TmlQ==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-ref": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref/-/uui-ref-1.3.0-rc.0.tgz", - "integrity": "sha512-JuRwA3lDKmPf/h+cp9aqXT969WJ0c14MXgN+Q0r+T8CyqPB/qNyK6odb5tis8YDBmlDr73x1L2izRYZmKDLkmA==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-ref-list": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-list/-/uui-ref-list-1.3.0-rc.0.tgz", - "integrity": "sha512-34Rt+Gvmo7oHk6f5ayTHaEOrKXoqR550IsjhBW+8j9n9iHcz6QZfj9Mo1ZFyz3RTfigygQU9sUXtGkICmd9vlQ==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-ref-node": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node/-/uui-ref-node-1.3.0-rc.0.tgz", - "integrity": "sha512-ppkzQnlWHxzYoiF2IbUZa16fXR7sTNVR3N00fN5iY0nS4HxTasLwkdgvv8hBluyD9fBeqqwuTaeHHyW+9lPdPQ==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-icon": "1.3.0-rc.0", - "@umbraco-ui/uui-ref": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-ref-node-data-type": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-data-type/-/uui-ref-node-data-type-1.3.0-rc.0.tgz", - "integrity": "sha512-gdLGOLHJw4Y2nkzbijuSG1fxTcUe+ZsV49/veyPs7r/f7lVDekFwuwnHFsPU6+zt4Y5yJY6ppWvrcZrRIr5hXg==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-ref-node-document-type": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-document-type/-/uui-ref-node-document-type-1.3.0-rc.0.tgz", - "integrity": "sha512-xyearXKLSZTmNDpYGAfC52e1xIrtVwpbH8Al8vxWgXInmJSj9XWkkp9b66FDbOirYJwp9fPh/wqnf5d3CYa/SA==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-ref-node-form": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-form/-/uui-ref-node-form-1.3.0-rc.0.tgz", - "integrity": "sha512-m9Ke31kpDBnc4b1J6FwARkvvkiYfv2QIvGW5mS+A2GbXIot6SIRH85I7aMP/K/L6AlLMxxwqAexZ3c7G9T9ZMw==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-ref-node-member": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-member/-/uui-ref-node-member-1.3.0-rc.0.tgz", - "integrity": "sha512-BHmgz0TwHa4VXQ/8AxXw3S816CV8gFUmC6ZAwAxn1Ct4ch91JxPfbIXpjwb2LK9shReAODguAku9OsTyn7PV/w==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-ref-node-package": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-package/-/uui-ref-node-package-1.3.0-rc.0.tgz", - "integrity": "sha512-vQlJCltDmSKBoF0FZeBSqNcmLtQQMVTSB1Ap/VhBDbJzyfhN3GbQBWx4Sb27b9/7/e4hePHYmRGdIqLT/qr++g==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-ref-node-user": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-user/-/uui-ref-node-user-1.3.0-rc.0.tgz", - "integrity": "sha512-U5JvCBbnwo5cY4HKra7H19SP+74FhikzNscAXKi4jzpqaatG24gA+M8bJd33vKM3zxmNou5Hr2qH064jzdqABg==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-ref-node": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-scroll-container": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-scroll-container/-/uui-scroll-container-1.3.0-rc.0.tgz", - "integrity": "sha512-PLAi0JoFufdMhKbU3VOrXvxmgg4GJBEWpb5urEckakw6Tp6czmduXznzf8mopgD2TkWY0P7Ztbxtmg/3XCXDbQ==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-select": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-select/-/uui-select-1.3.0-rc.0.tgz", - "integrity": "sha512-X/9KMWAlnJl5Qj2OQK7GMbz6f7KuJjkT9LEenwZ571/xZ/3plrFzRz9vUFSUgq3WHzIawgQGWgI+ladL0o+8vg==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-slider": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-slider/-/uui-slider-1.3.0-rc.0.tgz", - "integrity": "sha512-ZjJps15USfPYPJ/imN1TglfcgZULAMnOS/1IcVpELXsjRF/c/MBAdHuM7KVDbMd+EEgQCJukV0fLF68U9nF0Ng==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-symbol-expand": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-expand/-/uui-symbol-expand-1.3.0-rc.0.tgz", - "integrity": "sha512-t7QzRyvg6SLyC9ld2r26i4WcRJOyhv/GNiY7lfxmWKDcczwi1Tp3pwOMPQQqlR9vM3MzOJWefUtXPPD/FTm1hQ==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-symbol-file": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file/-/uui-symbol-file-1.3.0-rc.0.tgz", - "integrity": "sha512-0tTeR6/lu2nGje6e4D4mC5dEKt26FqyZziy/BwpYmOt3tigmV8AN6nVUSFERM8uvwONngKZGFiDnHqrvsFzjZg==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-symbol-file-dropzone": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-dropzone/-/uui-symbol-file-dropzone-1.3.0-rc.0.tgz", - "integrity": "sha512-k/qAam7uXVYpKDUn46Bq7GY3fnXw4ASMz8aIzD2ufM+39bNPFT+/OCHufFShfvSP4Ghn4dfTRO8xKzf/vySNWg==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-symbol-file-thumbnail": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-thumbnail/-/uui-symbol-file-thumbnail-1.3.0-rc.0.tgz", - "integrity": "sha512-v1mVtH/MMxPGzUSDYjvQD2WHvkCd97ZtiezhrmnW9k+2uZUTwq5FFDDcEEzjnrsS3I9onoRZpIJ10QkIxRJldg==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-symbol-folder": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-folder/-/uui-symbol-folder-1.3.0-rc.0.tgz", - "integrity": "sha512-KSz3gPtSTD8Zrlze8TyEGjrHo6VY4dZvnDrcttGTs8L8DneVQ0VTFVFkjQiIgiBJFuPuN8e0Jj30S0ONUeRu1g==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-symbol-lock": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-lock/-/uui-symbol-lock-1.3.0-rc.0.tgz", - "integrity": "sha512-5UxN3Z/zdYrVfxoAvw5kOzUI5oEE7j2AaalPz9KcqV04SjAsWn3MNDkW1iyW0t626x+7PRrfktRAroK58JRqMA==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-symbol-more": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-more/-/uui-symbol-more-1.3.0-rc.0.tgz", - "integrity": "sha512-Y/EXL6MFJrOsRW8mA2Za2onSdNlandghuJyhtuNecj9lB/5k+dncOvHDHmbsCBsTZCENt32R0h6UtxIuA2VLyw==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-symbol-sort": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-sort/-/uui-symbol-sort-1.3.0-rc.0.tgz", - "integrity": "sha512-jERMu0bWxpaTEUSGZXStqScAzjp0pSuv3oK7A+A9tJLl7+8SxeoH8JaLOkS+U8ZXQd3fa3CJz0k49BDakdnpVg==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-table": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-table/-/uui-table-1.3.0-rc.0.tgz", - "integrity": "sha512-Tu3aiZxRBk0yjo+O2VEQqcoZKERjwOoK4ew0avOLcXht11AOcyzNdSgmo2aC4vbQ43UgrA+EcsOIwftnCk8Ocw==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-tabs": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tabs/-/uui-tabs-1.3.0-rc.0.tgz", - "integrity": "sha512-HCBPPWy10RT4V2XMkwGbUYwp1EjB7MKAUpriFrtIOMuL5mnCIIi3hLNS44tUteF6okM3q2UhDEw808qcfDtFEQ==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-tag": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tag/-/uui-tag-1.3.0-rc.0.tgz", - "integrity": "sha512-AnTzPxkzCe72dUs6N7cZROONSASXjGzg6D1Vlz+gsuUeYWb+lLXgoJU7WQxOSLhI/ceaKwpspdQlpVOTVYFUbQ==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-textarea": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-textarea/-/uui-textarea-1.3.0-rc.0.tgz", - "integrity": "sha512-/h1K+F6UWrXE6mBD38Rq1IimYanz9ZOq76JsPh8FEhpHcjRpgYVdRrfYl/zpi3vLoqi0YJStAe7hYCdv9EFa7g==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-toast-notification": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification/-/uui-toast-notification-1.3.0-rc.0.tgz", - "integrity": "sha512-bPKiT+vaiI95p3lyXTkG0p3gDAPNEPl5eZrKL/+OI+kUfHX0TUUqx0Fkpsb/GfaYqTIC9ebsItR8/HUD1TMAGg==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-button": "1.3.0-rc.0", - "@umbraco-ui/uui-css": "1.3.0-rc.0", - "@umbraco-ui/uui-icon": "1.3.0-rc.0", - "@umbraco-ui/uui-icon-registry-essential": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-toast-notification-container": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-container/-/uui-toast-notification-container-1.3.0-rc.0.tgz", - "integrity": "sha512-3Oc6akKmtPUe6RrgxzgNq++RHxCk1aiIOAmxbf4zc07kcFzFq8loFsKlugu6FG9qBIQBrlJqGUtaDzBwcrjRbA==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-toast-notification": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-toast-notification-layout": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-layout/-/uui-toast-notification-layout-1.3.0-rc.0.tgz", - "integrity": "sha512-Ecu9yafMlEl7F5SHGSXYxXsoDB85mvg3gQY3u7CFeEA28DPT80Ec0c7ZCOucIiAzT9yRulJ/sYVXVAm4SBH3iA==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-css": "1.3.0-rc.0" - } - }, - "@umbraco-ui/uui-toggle": { - "version": "1.3.0-rc.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.3.0-rc.0.tgz", - "integrity": "sha512-BSr/F+4K7HLY+ZYPhG00PwEq9viXvX8122cjvc9vr+Ov4nlVmgBxwwSBJO6XEHQNpE1h9FQq+WCz5EDj787SnQ==", - "requires": { - "@umbraco-ui/uui-base": "1.3.0-rc.0", - "@umbraco-ui/uui-boolean-input": "1.3.0-rc.0" - } - }, - "@web/browser-logs": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.2.6.tgz", - "integrity": "sha512-CNjNVhd4FplRY8PPWIAt02vAowJAVcOoTNrR/NNb/o9pka7yI9qdjpWrWhEbPr2pOXonWb52AeAgdK66B8ZH7w==", - "dev": true, - "requires": { - "errorstacks": "^2.2.0" - } - }, - "@web/config-loader": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@web/config-loader/-/config-loader-0.2.1.tgz", - "integrity": "sha512-cQvTYA5lWLyyO8/R2aOReiudLa8r0LFHvMNYCwSAjzvrghb+AHxaW3BJWP9ORx6OaDcI7g5X8OATA81LSJce4A==", - "dev": true, - "requires": { - "semver": "^7.3.4" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@web/dev-server": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.2.1.tgz", - "integrity": "sha512-gIiED5tzMv+0fHFMfxzNTPGyrkYQbSpOlM7mfOUh7b1Qftw4rj8l/vfAIUHUNlqLUh4MqFhwcvtzj7dg05h9qA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.11", - "@types/command-line-args": "^5.0.0", - "@web/config-loader": "^0.2.1", - "@web/dev-server-core": "^0.5.1", - "@web/dev-server-rollup": "^0.5.0", - "camelcase": "^6.2.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^7.0.1", - "debounce": "^1.2.0", - "deepmerge": "^4.2.2", - "ip": "^1.1.5", - "nanocolors": "^0.2.1", - "open": "^8.0.2", - "portfinder": "^1.0.32" - }, - "dependencies": { - "@web/dev-server-core": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.5.1.tgz", - "integrity": "sha512-pXgb4bjDmPIaIQT9luixTSqTvRQxttUEzSKOZqLNl6pVgrl4n47ZtmZte936G2tM7nHmpT+oaMDDtCM0CgbQNQ==", - "dev": true, - "requires": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^2.0.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^8.0.4", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - } - }, - "@web/dev-server-rollup": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.5.0.tgz", - "integrity": "sha512-5bdMynXaNqY2+zDLk0FNQSqGpAazewTVZV8zUBnz790RxayYeITIWQLpBA6pnKZWEBQsh9ITbXoK2a4AVm9xSQ==", - "dev": true, - "requires": { - "@rollup/plugin-node-resolve": "^15.0.1", - "@web/dev-server-core": "^0.5.0", - "nanocolors": "^0.2.1", - "parse5": "^6.0.1", - "rollup": "^3.15.0", - "whatwg-url": "^11.0.0" - } - }, - "@web/parse5-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-2.0.0.tgz", - "integrity": "sha512-9pxjAg1k0Ie3t4gTQr/nmoTrvq6wmP40MNPwaetaN+jPc328MpO+WzmEApvJOW65v7lamjlvYFDsdvG8Lrd87Q==", - "dev": true, - "requires": { - "@types/parse5": "^6.0.1", - "parse5": "^6.0.1" - } - }, - "es-module-lexer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", - "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", - "dev": true - }, - "ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", - "dev": true - }, - "lru-cache": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", - "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", - "dev": true - }, - "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true - } - } - }, - "@web/dev-server-core": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.4.1.tgz", - "integrity": "sha512-KdYwejXZwIZvb6tYMCqU7yBiEOPfKLQ3V9ezqqEz8DA9V9R3oQWaowckvCpFB9IxxPfS/P8/59OkdzGKQjcIUw==", - "dev": true, - "requires": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^1.3.1", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^6.0.0", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - }, - "dependencies": { - "es-module-lexer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", - "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@web/dev-server-esbuild": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@web/dev-server-esbuild/-/dev-server-esbuild-0.3.6.tgz", - "integrity": "sha512-VDcZOzvmbg/z/8Q54hHqFwt9U4cacQJZxgS8YXAvyFuG85HAJ/Q55P7Tr++1NlRS8wQEos6QK2ERUWNjEVOhqQ==", - "dev": true, - "requires": { - "@mdn/browser-compat-data": "^4.0.0", - "@web/dev-server-core": "^0.4.1", - "esbuild": "^0.16 || ^0.17", - "parse5": "^6.0.1", - "ua-parser-js": "^1.0.33" - } - }, - "@web/dev-server-import-maps": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/@web/dev-server-import-maps/-/dev-server-import-maps-0.0.7.tgz", - "integrity": "sha512-uq8SFRkh3Zic71boDP/GeNwc7BtOWFWLDam3JJF3G0L9gMZVm7WteeDxxn9ppdbGxRhvlJtxqBlSOvf3pl75qw==", - "dev": true, - "requires": { - "@import-maps/resolve": "^1.0.1", - "@types/parse5": "^6.0.1", - "@web/dev-server-core": "^0.3.19", - "@web/parse5-utils": "^1.3.0", - "parse5": "^6.0.1", - "picomatch": "^2.2.2" - }, - "dependencies": { - "@web/dev-server-core": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.3.19.tgz", - "integrity": "sha512-Q/Xt4RMVebLWvALofz1C0KvP8qHbzU1EmdIA2Y1WMPJwiFJFhPxdr75p9YxK32P2t0hGs6aqqS5zE0HW9wYzYA==", - "dev": true, - "requires": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^1.2.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^4.0.6", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^6.0.0", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - } - }, - "es-module-lexer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", - "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", - "dev": true - }, - "isbinaryfile": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", - "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@web/dev-server-rollup": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.3.21.tgz", - "integrity": "sha512-138t+vMFkegRip6Rtlz68Bo5rl984C9c2rLg3dWl9JEEJSQcWgA3iEwXYh4xTc52WjXnM3/LpboAjTYQOMyfrA==", - "dev": true, - "requires": { - "@rollup/plugin-node-resolve": "^13.0.4", - "@web/dev-server-core": "^0.3.19", - "nanocolors": "^0.2.1", - "parse5": "^6.0.1", - "rollup": "^2.67.0", - "whatwg-url": "^11.0.0" - }, - "dependencies": { - "@rollup/plugin-node-resolve": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", - "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - } - }, - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dev": true, - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - } - }, - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true - }, - "@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@web/dev-server-core": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.3.19.tgz", - "integrity": "sha512-Q/Xt4RMVebLWvALofz1C0KvP8qHbzU1EmdIA2Y1WMPJwiFJFhPxdr75p9YxK32P2t0hGs6aqqS5zE0HW9wYzYA==", - "dev": true, - "requires": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^1.2.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^4.0.6", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^6.0.0", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - } - }, - "es-module-lexer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", - "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", - "dev": true - }, - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true - }, - "isbinaryfile": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", - "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "rollup": { - "version": "2.79.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", - "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", - "dev": true, - "requires": { - "fsevents": "~2.3.2" - } - }, - "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@web/parse5-utils": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-1.3.1.tgz", - "integrity": "sha512-haCgDchZrAOB9EhBJ5XqiIjBMsS/exsM5Ru7sCSyNkXVEJWskyyKuKMFk66BonnIGMPpDtqDrTUfYEis5Zi3XA==", - "dev": true, - "requires": { - "@types/parse5": "^6.0.1", - "parse5": "^6.0.1" - } - }, - "@web/test-runner": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.16.1.tgz", - "integrity": "sha512-vXq9l31tddF/LfIqoycjyJBdmxAnYBaxfjAbuTvN603y8Rtnf6RzRtpJ18WWmVfTmNoVL4C40V4MZNcp4VIZkQ==", - "dev": true, - "requires": { - "@web/browser-logs": "^0.3.1", - "@web/config-loader": "^0.2.1", - "@web/dev-server": "^0.2.1", - "@web/test-runner-chrome": "^0.13.0", - "@web/test-runner-commands": "^0.7.0", - "@web/test-runner-core": "^0.11.1", - "@web/test-runner-mocha": "^0.8.1", - "camelcase": "^6.2.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^7.0.1", - "convert-source-map": "^2.0.0", - "diff": "^5.0.0", - "globby": "^11.0.1", - "nanocolors": "^0.2.1", - "portfinder": "^1.0.32", - "source-map": "^0.7.3" - }, - "dependencies": { - "@web/browser-logs": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.3.1.tgz", - "integrity": "sha512-zt7KvGZzHQgULw2cQkX3v9Yo8b6X+ualFJKJ+6so652LyNcoUis8tzHIF4zbcJzXKsZ7knZPasmc/2in+Cw+WQ==", - "dev": true, - "requires": { - "errorstacks": "^2.2.0" - } - }, - "@web/dev-server-core": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.5.1.tgz", - "integrity": "sha512-pXgb4bjDmPIaIQT9luixTSqTvRQxttUEzSKOZqLNl6pVgrl4n47ZtmZte936G2tM7nHmpT+oaMDDtCM0CgbQNQ==", - "dev": true, - "requires": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^2.0.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^8.0.4", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - } - }, - "@web/parse5-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-2.0.0.tgz", - "integrity": "sha512-9pxjAg1k0Ie3t4gTQr/nmoTrvq6wmP40MNPwaetaN+jPc328MpO+WzmEApvJOW65v7lamjlvYFDsdvG8Lrd87Q==", - "dev": true, - "requires": { - "@types/parse5": "^6.0.1", - "parse5": "^6.0.1" - } - }, - "@web/test-runner-commands": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.7.0.tgz", - "integrity": "sha512-3aXeGrkynOdJ5jgZu5ZslcWmWuPVY9/HNdWDUqPyNePG08PKmLV9Ij342ODDL6OVsxF5dvYn1312PhDqu5AQNw==", - "dev": true, - "requires": { - "@web/test-runner-core": "^0.11.0", - "mkdirp": "^1.0.4" - } - }, - "@web/test-runner-core": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.11.1.tgz", - "integrity": "sha512-4Jt7BcmBXXYCCs/k71SFqKFUTYDSEFak4IaubFIyDohnlkyeun8tF+YBZoK8W/7/kPNozzvJC68O9Nr44Q5KXg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.11", - "@types/babel__code-frame": "^7.0.2", - "@types/co-body": "^6.1.0", - "@types/convert-source-map": "^2.0.0", - "@types/debounce": "^1.2.0", - "@types/istanbul-lib-coverage": "^2.0.3", - "@types/istanbul-reports": "^3.0.0", - "@web/browser-logs": "^0.3.1", - "@web/dev-server-core": "^0.5.1", - "chokidar": "^3.4.3", - "cli-cursor": "^3.1.0", - "co-body": "^6.1.0", - "convert-source-map": "^2.0.0", - "debounce": "^1.2.0", - "dependency-graph": "^0.11.0", - "globby": "^11.0.1", - "ip": "^1.1.5", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.0.2", - "log-update": "^4.0.0", - "nanocolors": "^0.2.1", - "nanoid": "^3.1.25", - "open": "^8.0.2", - "picomatch": "^2.2.2", - "source-map": "^0.7.3" - } - }, - "convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "es-module-lexer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", - "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", - "dev": true - }, - "ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", - "dev": true - }, - "lru-cache": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", - "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", - "dev": true - }, - "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true - } - } - }, - "@web/test-runner-chrome": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-chrome/-/test-runner-chrome-0.13.0.tgz", - "integrity": "sha512-kC2fZPG+PbOb0WiTw1xZV7AhA9xXDf9rkDjKjaTlgynQoPC5e53nG1isTQ5iUpULGa/21SW3h4gRGJWN6cVEDA==", - "dev": true, - "requires": { - "@web/test-runner-core": "^0.11.0", - "@web/test-runner-coverage-v8": "^0.6.0", - "chrome-launcher": "^0.15.0", - "puppeteer-core": "^19.8.1" - }, - "dependencies": { - "@web/browser-logs": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.3.1.tgz", - "integrity": "sha512-zt7KvGZzHQgULw2cQkX3v9Yo8b6X+ualFJKJ+6so652LyNcoUis8tzHIF4zbcJzXKsZ7knZPasmc/2in+Cw+WQ==", - "dev": true, - "requires": { - "errorstacks": "^2.2.0" - } - }, - "@web/dev-server-core": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.5.1.tgz", - "integrity": "sha512-pXgb4bjDmPIaIQT9luixTSqTvRQxttUEzSKOZqLNl6pVgrl4n47ZtmZte936G2tM7nHmpT+oaMDDtCM0CgbQNQ==", - "dev": true, - "requires": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^2.0.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^8.0.4", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - } - }, - "@web/parse5-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-2.0.0.tgz", - "integrity": "sha512-9pxjAg1k0Ie3t4gTQr/nmoTrvq6wmP40MNPwaetaN+jPc328MpO+WzmEApvJOW65v7lamjlvYFDsdvG8Lrd87Q==", - "dev": true, - "requires": { - "@types/parse5": "^6.0.1", - "parse5": "^6.0.1" - } - }, - "@web/test-runner-core": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.11.1.tgz", - "integrity": "sha512-4Jt7BcmBXXYCCs/k71SFqKFUTYDSEFak4IaubFIyDohnlkyeun8tF+YBZoK8W/7/kPNozzvJC68O9Nr44Q5KXg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.11", - "@types/babel__code-frame": "^7.0.2", - "@types/co-body": "^6.1.0", - "@types/convert-source-map": "^2.0.0", - "@types/debounce": "^1.2.0", - "@types/istanbul-lib-coverage": "^2.0.3", - "@types/istanbul-reports": "^3.0.0", - "@web/browser-logs": "^0.3.1", - "@web/dev-server-core": "^0.5.1", - "chokidar": "^3.4.3", - "cli-cursor": "^3.1.0", - "co-body": "^6.1.0", - "convert-source-map": "^2.0.0", - "debounce": "^1.2.0", - "dependency-graph": "^0.11.0", - "globby": "^11.0.1", - "ip": "^1.1.5", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.0.2", - "log-update": "^4.0.0", - "nanocolors": "^0.2.1", - "nanoid": "^3.1.25", - "open": "^8.0.2", - "picomatch": "^2.2.2", - "source-map": "^0.7.3" - } - }, - "@web/test-runner-coverage-v8": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.6.1.tgz", - "integrity": "sha512-kqIC2iR5QgpwVU0rmOjknRyMmRbj+LNTEomBP50ycYfOEPDC0SWhUolfSh4Nb5eC+LVUm4zGxN5LsnBwB6d0xg==", - "dev": true, - "requires": { - "@web/test-runner-core": "^0.11.0", - "istanbul-lib-coverage": "^3.0.0", - "lru-cache": "^8.0.4", - "picomatch": "^2.2.2", - "v8-to-istanbul": "^9.0.1" - } - }, - "convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "es-module-lexer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", - "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", - "dev": true - }, - "ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", - "dev": true - }, - "lru-cache": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", - "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", - "dev": true - }, - "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true - } - } - }, - "@web/test-runner-commands": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.6.6.tgz", - "integrity": "sha512-2DcK/+7f8QTicQpGFq/TmvKHDK/6Zald6rn1zqRlmj3pcH8fX6KHNVMU60Za9QgAKdorMBPfd8dJwWba5otzdw==", - "dev": true, - "requires": { - "@web/test-runner-core": "^0.10.29", - "mkdirp": "^1.0.4" - } - }, - "@web/test-runner-core": { - "version": "0.10.29", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.29.tgz", - "integrity": "sha512-0/ZALYaycEWswHhpyvl5yqo0uIfCmZe8q14nGPi1dMmNiqLcHjyFGnuIiLexI224AW74ljHcHllmDlXK9FUKGA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.11", - "@types/babel__code-frame": "^7.0.2", - "@types/co-body": "^6.1.0", - "@types/convert-source-map": "^2.0.0", - "@types/debounce": "^1.2.0", - "@types/istanbul-lib-coverage": "^2.0.3", - "@types/istanbul-reports": "^3.0.0", - "@web/browser-logs": "^0.2.6", - "@web/dev-server-core": "^0.4.1", - "chokidar": "^3.4.3", - "cli-cursor": "^3.1.0", - "co-body": "^6.1.0", - "convert-source-map": "^2.0.0", - "debounce": "^1.2.0", - "dependency-graph": "^0.11.0", - "globby": "^11.0.1", - "ip": "^1.1.5", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.0.2", - "log-update": "^4.0.0", - "nanocolors": "^0.2.1", - "nanoid": "^3.1.25", - "open": "^8.0.2", - "picomatch": "^2.2.2", - "source-map": "^0.7.3" - }, - "dependencies": { - "convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", - "dev": true - } - } - }, - "@web/test-runner-mocha": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.8.1.tgz", - "integrity": "sha512-CfYNZBbUSBiPNKkbF/dhxayecLCYZnu3g4cfgpfgmvLewlVOO6gNxaPt2c1/QhZutzTvXcMlsmaoWyk08F+V6A==", - "dev": true, - "requires": { - "@types/mocha": "^10.0.1", - "@web/test-runner-core": "^0.11.1" - }, - "dependencies": { - "@web/browser-logs": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.3.1.tgz", - "integrity": "sha512-zt7KvGZzHQgULw2cQkX3v9Yo8b6X+ualFJKJ+6so652LyNcoUis8tzHIF4zbcJzXKsZ7knZPasmc/2in+Cw+WQ==", - "dev": true, - "requires": { - "errorstacks": "^2.2.0" - } - }, - "@web/dev-server-core": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.5.1.tgz", - "integrity": "sha512-pXgb4bjDmPIaIQT9luixTSqTvRQxttUEzSKOZqLNl6pVgrl4n47ZtmZte936G2tM7nHmpT+oaMDDtCM0CgbQNQ==", - "dev": true, - "requires": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^2.0.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^8.0.4", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - } - }, - "@web/parse5-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-2.0.0.tgz", - "integrity": "sha512-9pxjAg1k0Ie3t4gTQr/nmoTrvq6wmP40MNPwaetaN+jPc328MpO+WzmEApvJOW65v7lamjlvYFDsdvG8Lrd87Q==", - "dev": true, - "requires": { - "@types/parse5": "^6.0.1", - "parse5": "^6.0.1" - } - }, - "@web/test-runner-core": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.11.1.tgz", - "integrity": "sha512-4Jt7BcmBXXYCCs/k71SFqKFUTYDSEFak4IaubFIyDohnlkyeun8tF+YBZoK8W/7/kPNozzvJC68O9Nr44Q5KXg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.11", - "@types/babel__code-frame": "^7.0.2", - "@types/co-body": "^6.1.0", - "@types/convert-source-map": "^2.0.0", - "@types/debounce": "^1.2.0", - "@types/istanbul-lib-coverage": "^2.0.3", - "@types/istanbul-reports": "^3.0.0", - "@web/browser-logs": "^0.3.1", - "@web/dev-server-core": "^0.5.1", - "chokidar": "^3.4.3", - "cli-cursor": "^3.1.0", - "co-body": "^6.1.0", - "convert-source-map": "^2.0.0", - "debounce": "^1.2.0", - "dependency-graph": "^0.11.0", - "globby": "^11.0.1", - "ip": "^1.1.5", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.0.2", - "log-update": "^4.0.0", - "nanocolors": "^0.2.1", - "nanoid": "^3.1.25", - "open": "^8.0.2", - "picomatch": "^2.2.2", - "source-map": "^0.7.3" - } - }, - "convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "es-module-lexer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", - "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", - "dev": true - }, - "ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", - "dev": true - }, - "lru-cache": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", - "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", - "dev": true - }, - "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true - } - } - }, - "@web/test-runner-playwright": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-playwright/-/test-runner-playwright-0.10.0.tgz", - "integrity": "sha512-30AFGe7glWV1vKlkeW3aPdQgfLNNeiEDCiskIqqMosJGdIAx+1HuzAoMj+fBk9hREhQI9Q6xvvhJVsM9ZI/zcQ==", - "dev": true, - "requires": { - "@web/test-runner-core": "^0.11.0", - "@web/test-runner-coverage-v8": "^0.6.0", - "playwright": "^1.22.2" - }, - "dependencies": { - "@web/browser-logs": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.3.1.tgz", - "integrity": "sha512-zt7KvGZzHQgULw2cQkX3v9Yo8b6X+ualFJKJ+6so652LyNcoUis8tzHIF4zbcJzXKsZ7knZPasmc/2in+Cw+WQ==", - "dev": true, - "requires": { - "errorstacks": "^2.2.0" - } - }, - "@web/dev-server-core": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.5.1.tgz", - "integrity": "sha512-pXgb4bjDmPIaIQT9luixTSqTvRQxttUEzSKOZqLNl6pVgrl4n47ZtmZte936G2tM7nHmpT+oaMDDtCM0CgbQNQ==", - "dev": true, - "requires": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^2.0.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^8.0.4", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - } - }, - "@web/parse5-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-2.0.0.tgz", - "integrity": "sha512-9pxjAg1k0Ie3t4gTQr/nmoTrvq6wmP40MNPwaetaN+jPc328MpO+WzmEApvJOW65v7lamjlvYFDsdvG8Lrd87Q==", - "dev": true, - "requires": { - "@types/parse5": "^6.0.1", - "parse5": "^6.0.1" - } - }, - "@web/test-runner-core": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.11.1.tgz", - "integrity": "sha512-4Jt7BcmBXXYCCs/k71SFqKFUTYDSEFak4IaubFIyDohnlkyeun8tF+YBZoK8W/7/kPNozzvJC68O9Nr44Q5KXg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.11", - "@types/babel__code-frame": "^7.0.2", - "@types/co-body": "^6.1.0", - "@types/convert-source-map": "^2.0.0", - "@types/debounce": "^1.2.0", - "@types/istanbul-lib-coverage": "^2.0.3", - "@types/istanbul-reports": "^3.0.0", - "@web/browser-logs": "^0.3.1", - "@web/dev-server-core": "^0.5.1", - "chokidar": "^3.4.3", - "cli-cursor": "^3.1.0", - "co-body": "^6.1.0", - "convert-source-map": "^2.0.0", - "debounce": "^1.2.0", - "dependency-graph": "^0.11.0", - "globby": "^11.0.1", - "ip": "^1.1.5", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.0.2", - "log-update": "^4.0.0", - "nanocolors": "^0.2.1", - "nanoid": "^3.1.25", - "open": "^8.0.2", - "picomatch": "^2.2.2", - "source-map": "^0.7.3" - } - }, - "@web/test-runner-coverage-v8": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.6.1.tgz", - "integrity": "sha512-kqIC2iR5QgpwVU0rmOjknRyMmRbj+LNTEomBP50ycYfOEPDC0SWhUolfSh4Nb5eC+LVUm4zGxN5LsnBwB6d0xg==", - "dev": true, - "requires": { - "@web/test-runner-core": "^0.11.0", - "istanbul-lib-coverage": "^3.0.0", - "lru-cache": "^8.0.4", - "picomatch": "^2.2.2", - "v8-to-istanbul": "^9.0.1" - } - }, - "convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "es-module-lexer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", - "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", - "dev": true - }, - "ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", - "dev": true - }, - "lru-cache": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", - "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", - "dev": true - }, - "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true - } - } - }, - "@xmldom/xmldom": { - "version": "0.8.7", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.7.tgz", - "integrity": "sha512-sI1Ly2cODlWStkINzqGrZ8K6n+MTSbAeQnAipGyL+KZCXuHaRlj2gyyy8B/9MvsFFqN7XHryQnB2QwhzvJXovg==", - "dev": true - }, - "@yarnpkg/esbuild-plugin-pnp": { - "version": "3.0.0-rc.15", - "resolved": "https://registry.npmjs.org/@yarnpkg/esbuild-plugin-pnp/-/esbuild-plugin-pnp-3.0.0-rc.15.tgz", - "integrity": "sha512-kYzDJO5CA9sy+on/s2aIW0411AklfCi8Ck/4QDivOqsMKpStZA2SsR+X27VTggGwpStWaLrjJcDcdDMowtG8MA==", - "dev": true, - "requires": { - "tslib": "^2.4.0" - } - }, - "@zxing/text-encoding": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", - "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", - "dev": true, - "optional": true - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true - }, - "address": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "requires": { - "ajv": "^8.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, - "requires": { - "string-width": "^4.1.0" - } - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - }, - "dependencies": { - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - } - } - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "app-root-dir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/app-root-dir/-/app-root-dir-1.0.2.tgz", - "integrity": "sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==", - "dev": true - }, - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "aria-query": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", - "dev": true, - "requires": { - "deep-equal": "^2.0.5" - } - }, - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true - }, - "array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - } - }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", - "dev": true - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true - }, - "array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" - } - }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - } - }, - "assert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", - "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", - "dev": true, - "requires": { - "es6-object-assign": "^1.1.0", - "is-nan": "^1.2.1", - "object-is": "^1.0.1", - "util": "^0.12.0" - } - }, - "ast-types": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz", - "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==", - "dev": true, - "requires": { - "tslib": "^2.0.1" - } - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true - }, - "axe-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", - "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", - "dev": true - }, - "axobject-query": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", - "dev": true - }, - "babel-core": { - "version": "7.0.0-bridge.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", - "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", - "dev": true - }, - "babel-loader": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.2.tgz", - "integrity": "sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA==", - "dev": true, - "requires": { - "find-cache-dir": "^3.3.2", - "schema-utils": "^4.0.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3" - } - }, - "bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", - "dev": true - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "better-opn": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-2.1.1.tgz", - "integrity": "sha512-kIPXZS5qwyKiX/HcRvDYfmBQUa8XP17I0mYZZ0y4UhpYOSvtsLHDYqmomS+Mj20aDvD3knEiQ0ecQy2nhio3yA==", - "dev": true, - "requires": { - "open": "^7.0.3" - }, - "dependencies": { - "open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "dev": true, - "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - } - } - } - }, - "big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - }, - "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - } - } - }, - "boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dev": true, - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } - } - }, - "bplist-parser": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", - "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", - "dev": true, - "requires": { - "big-integer": "^1.6.44" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-assert": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/browser-assert/-/browser-assert-1.2.1.tgz", - "integrity": "sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==", - "dev": true - }, - "browserify-zlib": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "integrity": "sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==", - "dev": true, - "requires": { - "pako": "~0.2.0" - } - }, - "browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "dev": true - }, - "cache-content-type": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", - "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", - "dev": true, - "requires": { - "mime-types": "^2.1.18", - "ylru": "^1.2.0" - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "call-me-maybe": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", - "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", - "dev": true - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dev": true, - "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001481", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001481.tgz", - "integrity": "sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==", - "dev": true - }, - "capital-case": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", - "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", - "dev": true - }, - "chai-a11y-axe": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/chai-a11y-axe/-/chai-a11y-axe-1.4.1.tgz", - "integrity": "sha512-H3eRQhLbN1bk8thQXjZVKHVPlFGYrrmQ+iR8TwS9ML0HLu0Pjb6c7rMcaRZb99SsWMrenqE+W0AZRApVxlaltg==", - "dev": true, - "requires": { - "axe-core": "^4.3.3" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chalk-template": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", - "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", - "dev": true, - "requires": { - "chalk": "^4.1.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "change-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", - "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", - "dev": true, - "requires": { - "camel-case": "^4.1.2", - "capital-case": "^1.0.4", - "constant-case": "^3.0.4", - "dot-case": "^3.0.4", - "header-case": "^2.0.4", - "no-case": "^3.0.4", - "param-case": "^3.0.4", - "pascal-case": "^3.1.2", - "path-case": "^3.0.4", - "sentence-case": "^3.0.4", - "snake-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", - "dev": true - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true - }, - "chrome-launcher": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", - "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", - "dev": true, - "requires": { - "@types/node": "*", - "escape-string-regexp": "^4.0.0", - "is-wsl": "^2.2.0", - "lighthouse-logger": "^1.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - } - } - }, - "chromium-bidi": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.7.tgz", - "integrity": "sha512-6+mJuFXwTMU6I3vYLs6IL8A1DyQTPjCfIL971X0aMPVGRbGnNfl6i6Cl0NMbxi2bRYLGESt9T2ZIMRM5PAEcIQ==", - "dev": true, - "requires": { - "mitt": "3.0.0" - } - }, - "ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", - "dev": true - }, - "clean-css": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", - "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-spinners": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.8.0.tgz", - "integrity": "sha512-/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ==", - "dev": true - }, - "cli-table3": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", - "dev": true, - "requires": { - "@colors/colors": "1.5.0", - "string-width": "^4.2.0" - } - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true - }, - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "dev": true - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "dependencies": { - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - } - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true - }, - "co-body": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz", - "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==", - "dev": true, - "requires": { - "inflation": "^2.0.0", - "qs": "^6.5.2", - "raw-body": "^2.3.3", - "type-is": "^1.6.16" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true - }, - "colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" - }, - "colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "dev": true, - "requires": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - } - }, - "command-line-usage": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz", - "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==", - "dev": true, - "requires": { - "array-back": "^6.2.2", - "chalk-template": "^0.4.0", - "table-layout": "^3.0.0", - "typical": "^7.1.1" - }, - "dependencies": { - "array-back": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", - "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", - "dev": true - }, - "typical": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", - "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", - "dev": true - } - } - }, - "commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true - }, - "constant-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", - "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case": "^2.0.2" - } - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "requires": { - "safe-buffer": "5.2.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true - }, - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true - }, - "cookies": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz", - "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==", - "dev": true, - "requires": { - "depd": "~2.0.0", - "keygrip": "~1.1.0" - } - }, - "core-js-compat": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.2.tgz", - "integrity": "sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA==", - "dev": true, - "requires": { - "browserslist": "^4.21.5" - } - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dev": true, - "requires": { - "node-fetch": "2.6.7" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true - }, - "csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", - "dev": true - }, - "debounce": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", - "dev": true - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true - }, - "decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", - "dev": true, - "requires": { - "character-entities": "^2.0.0" - } - }, - "deep-equal": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz", - "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-get-iterator": "^1.1.2", - "get-intrinsic": "^1.1.3", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.1", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true - }, - "default-browser-id": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", - "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", - "dev": true, - "requires": { - "bplist-parser": "^0.2.0", - "untildify": "^4.0.0" - } - }, - "defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "requires": { - "clone": "^1.0.2" - }, - "dependencies": { - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true - } - } - }, - "define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true - }, - "define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "defu": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.2.tgz", - "integrity": "sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==", - "dev": true - }, - "del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "dev": true, - "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, - "dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", - "dev": true - }, - "dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", - "dev": true - }, - "detect-indent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", - "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", - "dev": true - }, - "detect-package-manager": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-package-manager/-/detect-package-manager-2.0.1.tgz", - "integrity": "sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==", - "dev": true, - "requires": { - "execa": "^5.1.1" - } - }, - "detect-port": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", - "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", - "dev": true, - "requires": { - "address": "^1.0.1", - "debug": "4" - } - }, - "devtools-protocol": { - "version": "0.0.1107588", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1107588.tgz", - "integrity": "sha512-yIR+pG9x65Xko7bErCUSQaDLrO/P1p3JUzEk7JCU4DowPcGHkTGUGQapcfcLc4qj0UaALwZ+cr0riFgiqpixcg==", - "dev": true - }, - "diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom5": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.1.tgz", - "integrity": "sha512-JPFiouQIr16VQ4dX6i0+Hpbg3H2bMKPmZ+WZgBOSSvOPx9QHwwY8sPzeM2baUtViESYto6wC2nuZOMC/6gulcA==", - "dev": true, - "requires": { - "@types/parse5": "^2.2.34", - "clone": "^2.1.0", - "parse5": "^4.0.0" - }, - "dependencies": { - "@types/parse5": { - "version": "2.2.34", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", - "integrity": "sha512-p3qOvaRsRpFyEmaS36RtLzpdxZZnmxGuT1GMgzkTtTJVFuEw7KFjGK83MFODpJExgX1bEzy9r0NYjMC3IMfi7w==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "parse5": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", - "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", - "dev": true - } - } - }, - "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "dotenv": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", - "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", - "dev": true - }, - "dotenv-expand": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", - "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", - "dev": true - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true - }, - "ejs": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", - "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", - "dev": true, - "requires": { - "jake": "^10.8.5" - } - }, - "electron-to-chromium": { - "version": "1.4.371", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.371.tgz", - "integrity": "sha512-jlBzY4tFcJaiUjzhRTCWAqRvTO/fWzjA3Bls0mykzGZ7zvcMP7h05W6UcgzfT9Ca1SW2xyKDOFRyI0pQeRNZGw==", - "dev": true - }, - "element-internals-polyfill": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/element-internals-polyfill/-/element-internals-polyfill-1.3.1.tgz", - "integrity": "sha512-IeM6FjSEOg5IF5NEj9akC8OnMZEJfSkevSu12U4Ns6XvUdqvM7gxPvFJrVRW+hsQ1IG0cAfAs5pcMXTpdRxCSg==" - }, - "emoji-regex": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.2.1.tgz", - "integrity": "sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.13.0.tgz", - "integrity": "sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true - }, - "envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "errorstacks": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/errorstacks/-/errorstacks-2.4.0.tgz", - "integrity": "sha512-5ecWhU5gt0a5G05nmQcgCxP5HperSMxLDzvWlT5U+ZSKkuDK0rJ3dbCQny6/vSCIXjwrhwSecXBbw1alr295hQ==", - "dev": true - }, - "es-abstract": { - "version": "1.21.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", - "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" - } - }, - "es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - } - }, - "es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true - }, - "es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - } - }, - "es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-object-assign": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==", - "dev": true - }, - "esbuild": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.18.tgz", - "integrity": "sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.17.18", - "@esbuild/android-arm64": "0.17.18", - "@esbuild/android-x64": "0.17.18", - "@esbuild/darwin-arm64": "0.17.18", - "@esbuild/darwin-x64": "0.17.18", - "@esbuild/freebsd-arm64": "0.17.18", - "@esbuild/freebsd-x64": "0.17.18", - "@esbuild/linux-arm": "0.17.18", - "@esbuild/linux-arm64": "0.17.18", - "@esbuild/linux-ia32": "0.17.18", - "@esbuild/linux-loong64": "0.17.18", - "@esbuild/linux-mips64el": "0.17.18", - "@esbuild/linux-ppc64": "0.17.18", - "@esbuild/linux-riscv64": "0.17.18", - "@esbuild/linux-s390x": "0.17.18", - "@esbuild/linux-x64": "0.17.18", - "@esbuild/netbsd-x64": "0.17.18", - "@esbuild/openbsd-x64": "0.17.18", - "@esbuild/sunos-x64": "0.17.18", - "@esbuild/win32-arm64": "0.17.18", - "@esbuild/win32-ia32": "0.17.18", - "@esbuild/win32-x64": "0.17.18" - } - }, - "esbuild-plugin-alias": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/esbuild-plugin-alias/-/esbuild-plugin-alias-0.2.1.tgz", - "integrity": "sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ==", - "dev": true - }, - "esbuild-register": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.4.2.tgz", - "integrity": "sha512-kG/XyTDyz6+YDuyfB9ZoSIOOmgyFCH+xPRtsCa8W85HLRV5Csp+o3jWVbOSHgSLfyLc5DmP+KFDNwty4mEjC+Q==", - "dev": true, - "requires": { - "debug": "^4.3.4" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "eslint": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", - "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.39.0", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.0", - "espree": "^9.5.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } - } - }, - "eslint-config-prettier": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", - "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", - "dev": true - }, - "eslint-import-resolver-node": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-import-resolver-typescript": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.5.tgz", - "integrity": "sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==", - "dev": true, - "requires": { - "debug": "^4.3.4", - "enhanced-resolve": "^5.12.0", - "eslint-module-utils": "^2.7.4", - "get-tsconfig": "^4.5.0", - "globby": "^13.1.3", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3", - "synckit": "^0.8.5" - }, - "dependencies": { - "globby": { - "version": "13.1.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", - "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", - "dev": true, - "requires": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - } - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - } - } - }, - "eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", - "dev": true, - "requires": { - "debug": "^3.2.7" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", - "dev": true, - "requires": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", - "has": "^1.0.3", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - } - } - }, - "eslint-plugin-lit": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-lit/-/eslint-plugin-lit-1.8.3.tgz", - "integrity": "sha512-wmeYfBnWPUChbdZagOhG519gaWz9Q7OGT/nCx3YVHuCCrW9q9u0p/IQueQeoaMojUqOSgM/22oSDOaBruYGqag==", - "dev": true, - "requires": { - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "requireindex": "^1.2.0" - } - }, - "eslint-plugin-lit-a11y": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-lit-a11y/-/eslint-plugin-lit-a11y-2.4.1.tgz", - "integrity": "sha512-UljRja/2cVrNtgnCDj5sCT3Larxda4mGqbsPhlksvECo0+KCD8EuUori/P6wFeFqk+pHlkIC3W200E5q85E3VQ==", - "dev": true, - "requires": { - "aria-query": "^5.1.3", - "axe-core": "^4.3.3", - "axobject-query": "^2.2.0", - "dom5": "^3.0.1", - "emoji-regex": "^10.2.1", - "eslint-plugin-lit": "^1.6.0", - "eslint-rule-extender": "0.0.1", - "language-tags": "^1.0.5", - "parse5": "^7.1.2", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "requireindex": "~1.2.0" - }, - "dependencies": { - "parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "requires": { - "entities": "^4.4.0" - } - } - } - }, - "eslint-plugin-local-rules": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-local-rules/-/eslint-plugin-local-rules-1.3.2.tgz", - "integrity": "sha512-X4ziX+cjlCYnZa+GB1ly3mmj44v2PeIld3tQVAxelY6AMrhHSjz6zsgsT6nt0+X5b7eZnvL/O7Q3pSSK2kF/+Q==", - "dev": true - }, - "eslint-plugin-storybook": { - "version": "0.6.12", - "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-0.6.12.tgz", - "integrity": "sha512-XbIvrq6hNVG6rpdBr+eBw63QhOMLpZneQVSooEDow8aQCWGCk/5vqtap1yxpVydNfSxi3S/3mBBRLQqKUqQRww==", - "dev": true, - "requires": { - "@storybook/csf": "^0.0.1", - "@typescript-eslint/utils": "^5.45.0", - "requireindex": "^1.1.0", - "ts-dedent": "^2.2.0" - }, - "dependencies": { - "@storybook/csf": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.1.tgz", - "integrity": "sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } - } - } - }, - "eslint-plugin-wc": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-wc/-/eslint-plugin-wc-1.5.0.tgz", - "integrity": "sha512-KFSfiHDol/LeV7U6IX8GdgpGf/s3wG8FTG120Rml/hGNB/DkCuGYQhlf0VgdBdf7gweem8Nlsh5o64HNdj+qPA==", - "dev": true, - "requires": { - "is-valid-element-name": "^1.0.0", - "js-levenshtein-esm": "^1.2.0" - } - }, - "eslint-rule-extender": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/eslint-rule-extender/-/eslint-rule-extender-0.0.1.tgz", - "integrity": "sha512-F0j1Twve3lamL3J0rRSVAynlp58sDPG39JFcQrM+u9Na7PmCgiPHNODh6YE9mduaGcsn3NBqbf6LZRj0cLr8Ng==", - "dev": true - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", - "dev": true - }, - "espree": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", - "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", - "dev": true, - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dev": true, - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "requires": { - "@types/yauzl": "^2.9.1", - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - } - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "fetch-retry": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-5.0.5.tgz", - "integrity": "sha512-q9SvpKH5Ka6h7X2C6r1sP31pQoeDb3o6/R9cg21ahfPAqbIOkW9tus1dXfwYb6G6dOI4F7nVS4Q+LSssBGIz0A==", - "dev": true - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "file-system-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/file-system-cache/-/file-system-cache-2.1.1.tgz", - "integrity": "sha512-vgZ1uDsK29DM4pptUOv47zdJO2tYM5M/ERyAE9Jk0QBN6e64Md+a+xJSOp68dCCDH4niFMVD8nC8n8A5ic0bmg==", - "dev": true, - "requires": { - "fs-extra": "^11.1.0", - "ramda": "^0.28.0" - } - }, - "filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dev": true, - "requires": { - "minimatch": "^5.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - } - } - }, - "find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "dev": true, - "requires": { - "array-back": "^3.0.1" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "findup-sync": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", - "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.3", - "micromatch": "^4.0.4", - "resolve-dir": "^1.0.1" - } - }, - "fined": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-2.0.0.tgz", - "integrity": "sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^5.0.0", - "object.defaults": "^1.1.0", - "object.pick": "^1.3.0", - "parse-filepath": "^1.0.2" - } - }, - "flagged-respawn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-2.0.0.tgz", - "integrity": "sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==", - "dev": true - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "flow-parser": { - "version": "0.206.0", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.206.0.tgz", - "integrity": "sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w==", - "dev": true - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "requires": { - "is-callable": "^1.1.3" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "dev": true - }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true - }, - "gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - } - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "get-npm-tarball-url": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/get-npm-tarball-url/-/get-npm-tarball-url-2.0.3.tgz", - "integrity": "sha512-R/PW6RqyaBQNWYaSyfrh54/qtcnOp22FHCCiRhSSZj0FP3KQWCsxxt0DzIdVTbwTqe9CtQfvl/FPD4UIPt4pqw==", - "dev": true - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "get-tsconfig": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.5.0.tgz", - "integrity": "sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==", - "dev": true - }, - "giget": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/giget/-/giget-1.1.2.tgz", - "integrity": "sha512-HsLoS07HiQ5oqvObOI+Qb2tyZH4Gj5nYGfF9qQcZNrPw+uEFhdXtgJr01aO2pWadGHucajYDLxxbtQkm97ON2A==", - "dev": true, - "requires": { - "colorette": "^2.0.19", - "defu": "^6.1.2", - "https-proxy-agent": "^5.0.1", - "mri": "^1.2.0", - "node-fetch-native": "^1.0.2", - "pathe": "^1.1.0", - "tar": "^6.1.13" - } - }, - "github-slugger": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", - "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==", - "dev": true - }, - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "glob-promise": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-6.0.2.tgz", - "integrity": "sha512-Ni2aDyD1ekD6x8/+K4hDriRDbzzfuK4yKpqSymJ4P7IxbtARiOOuU+k40kbHM0sLIlbf1Qh0qdMkAHMZYE6XJQ==", - "dev": true, - "requires": { - "@types/glob": "^8.0.0" - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3" - } - }, - "globalyzer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", - "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", - "dev": true - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "globrex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", - "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", - "dev": true - }, - "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "graphql": { - "version": "16.6.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", - "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==", - "dev": true - }, - "gunzip-maybe": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz", - "integrity": "sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==", - "dev": true, - "requires": { - "browserify-zlib": "^0.1.4", - "is-deflate": "^1.0.0", - "is-gzip": "^1.0.0", - "peek-stream": "^1.1.0", - "pumpify": "^1.3.3", - "through2": "^2.0.3" - } - }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true - }, - "header-case": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", - "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", - "dev": true, - "requires": { - "capital-case": "^1.0.4", - "tslib": "^2.0.3" - } - }, - "headers-polyfill": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-3.1.2.tgz", - "integrity": "sha512-tWCK4biJ6hcLqTviLXVR9DTRfYGQMXEIUj3gwJ2rZ5wO/at3XtkI4g8mCvFdUF9l1KMBNCfmNAdnahm1cgavQA==", - "dev": true - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", - "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", - "dev": true, - "requires": { - "deep-equal": "~1.0.1", - "http-errors": "~1.8.0" - }, - "dependencies": { - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true - }, - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true - } - } - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - } - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "inflation": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz", - "integrity": "sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "inquirer": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", - "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true - }, - "ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "dev": true - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true - }, - "is-builtin-module": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", - "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", - "dev": true, - "requires": { - "builtin-modules": "^3.3.0" - } - }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true - }, - "is-core-module": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", - "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-deflate": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-deflate/-/is-deflate-1.0.0.tgz", - "integrity": "sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==", - "dev": true - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-gzip": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz", - "integrity": "sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==", - "dev": true - }, - "is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true - }, - "is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "dev": true - }, - "is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true - }, - "is-nan": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", - "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "is-node-process": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz", - "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "dev": true - }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, - "requires": { - "is-unc-path": "^1.0.0" - } - }, - "is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "dev": true - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - } - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true - }, - "is-valid-element-name": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-element-name/-/is-valid-element-name-1.0.0.tgz", - "integrity": "sha512-GZITEJY2LkSjQfaIPBha7eyZv+ge0PhBR7KITeCCWvy7VBQrCUdFkvpI+HrAPQjVtVjy1LvlEkqQTHckoszruw==", - "dev": true, - "requires": { - "is-potential-custom-element-name": "^1.0.0" - } - }, - "is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", - "dev": true - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "isbinaryfile": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.0.tgz", - "integrity": "sha512-UDdnyGvMajJUWCkib7Cei/dvyJrrvo4FIrsvSFWdPpXSUorzXrDJ0S+X5Q4ZlasfPjca4yqCNNsjbCeiy8FFeg==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true - }, - "isomorphic-unfetch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz", - "integrity": "sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==", - "dev": true, - "requires": { - "node-fetch": "^2.6.1", - "unfetch": "^4.2.0" - } - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jake": { - "version": "10.8.5", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", - "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", - "dev": true, - "requires": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-haste-map": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", - "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", - "dev": true, - "requires": { - "@jest/types": "^29.5.0", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - } - }, - "jest-regex-util": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", - "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", - "dev": true - }, - "jest-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", - "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", - "dev": true, - "requires": { - "@jest/types": "^29.5.0", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-worker": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", - "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", - "dev": true, - "requires": { - "@types/node": "*", - "jest-util": "^29.5.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "joycon": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", - "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", - "dev": true - }, - "js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", - "dev": true - }, - "js-levenshtein-esm": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/js-levenshtein-esm/-/js-levenshtein-esm-1.2.0.tgz", - "integrity": "sha512-fzreKVq1eD7eGcQr7MtRpQH94f8gIfhdrc7yeih38xh684TNMK9v5aAu2wxfIRMk/GpAJRrzcirMAPIaSDaByQ==", - "dev": true - }, - "js-sdsl": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", - "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jscodeshift": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.14.0.tgz", - "integrity": "sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==", - "dev": true, - "requires": { - "@babel/core": "^7.13.16", - "@babel/parser": "^7.13.16", - "@babel/plugin-proposal-class-properties": "^7.13.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", - "@babel/plugin-proposal-optional-chaining": "^7.13.12", - "@babel/plugin-transform-modules-commonjs": "^7.13.8", - "@babel/preset-flow": "^7.13.13", - "@babel/preset-typescript": "^7.13.0", - "@babel/register": "^7.13.16", - "babel-core": "^7.0.0-bridge.0", - "chalk": "^4.1.2", - "flow-parser": "0.*", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "neo-async": "^2.5.0", - "node-dir": "^0.1.17", - "recast": "^0.21.0", - "temp": "^0.8.4", - "write-file-atomic": "^2.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "ast-types": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz", - "integrity": "sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==", - "dev": true, - "requires": { - "tslib": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "recast": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.21.5.tgz", - "integrity": "sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==", - "dev": true, - "requires": { - "ast-types": "0.15.2", - "esprima": "~4.0.0", - "source-map": "~0.6.1", - "tslib": "^2.0.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - } - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema-ref-parser": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", - "integrity": "sha512-qcP2lmGy+JUoQJ4DOQeLaZDqH9qSkeGCK3suKWxJXS82dg728Mn3j97azDMaOUmJAN4uCq91LdPx4K7E8F1a7Q==", - "dev": true, - "requires": { - "@apidevtools/json-schema-ref-parser": "9.0.9" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true - }, - "jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "keygrip": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", - "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", - "dev": true, - "requires": { - "tsscmp": "1.0.6" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "koa": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/koa/-/koa-2.14.2.tgz", - "integrity": "sha512-VFI2bpJaodz6P7x2uyLiX6RLYpZmOJqNmoCst/Yyd7hQlszyPwG/I9CQJ63nOtKSxpt5M7NH67V6nJL2BwCl7g==", - "dev": true, - "requires": { - "accepts": "^1.3.5", - "cache-content-type": "^1.0.0", - "content-disposition": "~0.5.2", - "content-type": "^1.0.4", - "cookies": "~0.8.0", - "debug": "^4.3.2", - "delegates": "^1.0.0", - "depd": "^2.0.0", - "destroy": "^1.0.4", - "encodeurl": "^1.0.2", - "escape-html": "^1.0.3", - "fresh": "~0.5.2", - "http-assert": "^1.3.0", - "http-errors": "^1.6.3", - "is-generator-function": "^1.0.7", - "koa-compose": "^4.1.0", - "koa-convert": "^2.0.0", - "on-finished": "^2.3.0", - "only": "~0.0.2", - "parseurl": "^1.3.2", - "statuses": "^1.5.0", - "type-is": "^1.6.16", - "vary": "^1.1.2" - }, - "dependencies": { - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "dependencies": { - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true - } - } - }, - "koa-compose": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", - "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", - "dev": true - }, - "koa-convert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", - "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", - "dev": true, - "requires": { - "co": "^4.6.0", - "koa-compose": "^4.1.0" - } - }, - "koa-etag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/koa-etag/-/koa-etag-4.0.0.tgz", - "integrity": "sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg==", - "dev": true, - "requires": { - "etag": "^1.8.1" - } - }, - "koa-send": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz", - "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "http-errors": "^1.7.3", - "resolve-path": "^1.4.0" - }, - "dependencies": { - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true - }, - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true - } - } - }, - "koa-static": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz", - "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==", - "dev": true, - "requires": { - "debug": "^3.1.0", - "koa-send": "^5.0.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "language-subtag-registry": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", - "dev": true - }, - "language-tags": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.8.tgz", - "integrity": "sha512-aWAZwgPLS8hJ20lNPm9HNVs4inexz6S2sQa3wx/+ycuutMNE5/IfYxiWYBbi+9UWCQVaXYCOPUl6gFrPR7+jGg==", - "dev": true, - "requires": { - "language-subtag-registry": "^0.3.20" - } - }, - "lazy-universal-dotenv": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/lazy-universal-dotenv/-/lazy-universal-dotenv-4.0.0.tgz", - "integrity": "sha512-aXpZJRnTkpK6gQ/z4nk+ZBLd/Qdp118cvPruLSIQzQNRhKwEcdXCOzXuF55VDqIiuAaY3UGZ10DJtvZzDcvsxg==", - "dev": true, - "requires": { - "app-root-dir": "^1.0.2", - "dotenv": "^16.0.0", - "dotenv-expand": "^10.0.0" - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "liftoff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-4.0.0.tgz", - "integrity": "sha512-rMGwYF8q7g2XhG2ulBmmJgWv25qBsqRbDn5gH0+wnuyeFt7QBJlHJmtg5qEdn4pN6WVAUMgXnIxytMFRX9c1aA==", - "dev": true, - "requires": { - "extend": "^3.0.2", - "findup-sync": "^5.0.0", - "fined": "^2.0.0", - "flagged-respawn": "^2.0.0", - "is-plain-object": "^5.0.0", - "object.map": "^1.0.1", - "rechoir": "^0.8.0", - "resolve": "^1.20.0" - } - }, - "lighthouse-logger": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.3.0.tgz", - "integrity": "sha512-BbqAKApLb9ywUli+0a+PcV04SyJ/N1q/8qgCNe6U97KbPCS1BTksEuHFLYdvc8DltuhfxIUBqDZsC0bBGtl3lA==", - "dev": true, - "requires": { - "debug": "^2.6.9", - "marky": "^1.2.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "lit": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.7.2.tgz", - "integrity": "sha512-9QnZmG5mIKPRja96cpndMclLSi0Qrz2BXD6EbqNqCKMMjOWVm/BwAeXufFk2jqFsNmY07HOzU8X+8aTSVt3yrA==", - "requires": { - "@lit/reactive-element": "^1.6.0", - "lit-element": "^3.3.0", - "lit-html": "^2.7.0" - } - }, - "lit-element": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.1.tgz", - "integrity": "sha512-Gl+2409uXWbf7n6cCl7Kzasm7zjT9xmdwi2BhLNi70sRKAgRkqueDu5mSIH3hPYMM0/vqBCdPXod3NbGkRA2ww==", - "requires": { - "@lit-labs/ssr-dom-shim": "^1.1.0", - "@lit/reactive-element": "^1.3.0", - "lit-html": "^2.7.0" - } - }, - "lit-html": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.7.2.tgz", - "integrity": "sha512-ZJCfKlA2XELu5tn7XuzOziGFGvf1SeQm+ngLWoJ8bXtSkRrrR3ms6SWy+gsdxeYwySLij5xAhdd2C3EX0ftxdQ==", - "requires": { - "@types/trusted-types": "^2.0.2" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" - }, - "lodash.assignwith": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz", - "integrity": "sha512-ZznplvbvtjK2gMvnQ1BR/zqPFZmS6jbK4p+6Up4xcRYA7yMIwxHCfbTcrYxXKzzqLsQ05eJPVznEW3tuwV7k1g==", - "dev": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "requires": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "longest-streak": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "requires": { - "tslib": "^2.0.3" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "magic-string": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", - "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", - "dev": true, - "requires": { - "@jridgewell/sourcemap-codec": "^1.4.13" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "requires": { - "tmpl": "1.0.5" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", - "dev": true - }, - "map-or-similar": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz", - "integrity": "sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==", - "dev": true - }, - "markdown-table": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", - "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", - "dev": true - }, - "markdown-to-jsx": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.2.0.tgz", - "integrity": "sha512-3l4/Bigjm4bEqjCR6Xr+d4DtM1X6vvtGsMGSjJYyep8RjjIvcWtrXBS8Wbfe1/P+atKNMccpsraESIaWVplzVg==", - "dev": true - }, - "marky": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", - "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", - "dev": true - }, - "mdast-util-definitions": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", - "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", - "dev": true, - "requires": { - "unist-util-visit": "^2.0.0" - } - }, - "mdast-util-find-and-replace": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz", - "integrity": "sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==", - "dev": true, - "requires": { - "@types/mdast": "^3.0.0", - "escape-string-regexp": "^5.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true - }, - "unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0" - } - }, - "unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - } - } - } - }, - "mdast-util-from-markdown": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.0.tgz", - "integrity": "sha512-HN3W1gRIuN/ZW295c7zi7g9lVBllMgZE40RxCX37wrTPWXCWtpvOZdfnuK+1WNpvZje6XuJeI3Wnb4TJEUem+g==", - "dev": true, - "requires": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "mdast-util-to-string": "^3.1.0", - "micromark": "^3.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-decode-string": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-stringify-position": "^3.0.0", - "uvu": "^0.5.0" - }, - "dependencies": { - "mdast-util-to-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", - "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", - "dev": true, - "requires": { - "@types/mdast": "^3.0.0" - } - } - } - }, - "mdast-util-gfm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz", - "integrity": "sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==", - "dev": true, - "requires": { - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-gfm-autolink-literal": "^1.0.0", - "mdast-util-gfm-footnote": "^1.0.0", - "mdast-util-gfm-strikethrough": "^1.0.0", - "mdast-util-gfm-table": "^1.0.0", - "mdast-util-gfm-task-list-item": "^1.0.0", - "mdast-util-to-markdown": "^1.0.0" - } - }, - "mdast-util-gfm-autolink-literal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz", - "integrity": "sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==", - "dev": true, - "requires": { - "@types/mdast": "^3.0.0", - "ccount": "^2.0.0", - "mdast-util-find-and-replace": "^2.0.0", - "micromark-util-character": "^1.0.0" - } - }, - "mdast-util-gfm-footnote": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz", - "integrity": "sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==", - "dev": true, - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0", - "micromark-util-normalize-identifier": "^1.0.0" - } - }, - "mdast-util-gfm-strikethrough": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz", - "integrity": "sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==", - "dev": true, - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" - } - }, - "mdast-util-gfm-table": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz", - "integrity": "sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==", - "dev": true, - "requires": { - "@types/mdast": "^3.0.0", - "markdown-table": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-to-markdown": "^1.3.0" - } - }, - "mdast-util-gfm-task-list-item": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz", - "integrity": "sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==", - "dev": true, - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" - } - }, - "mdast-util-phrasing": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", - "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", - "dev": true, - "requires": { - "@types/mdast": "^3.0.0", - "unist-util-is": "^5.0.0" - }, - "dependencies": { - "unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0" - } - } - } - }, - "mdast-util-to-markdown": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", - "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", - "dev": true, - "requires": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" - }, - "dependencies": { - "mdast-util-to-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", - "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", - "dev": true, - "requires": { - "@types/mdast": "^3.0.0" - } - }, - "unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0" - } - }, - "unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - } - }, - "unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - } - } - } - }, - "mdast-util-to-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", - "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==", - "dev": true - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true - }, - "memoizerific": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/memoizerific/-/memoizerific-1.11.3.tgz", - "integrity": "sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==", - "dev": true, - "requires": { - "map-or-similar": "^1.5.0" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true - }, - "micromark": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.1.0.tgz", - "integrity": "sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==", - "dev": true, - "requires": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "micromark-core-commonmark": "^1.0.1", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "micromark-core-commonmark": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz", - "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==", - "dev": true, - "requires": { - "decode-named-character-reference": "^1.0.0", - "micromark-factory-destination": "^1.0.0", - "micromark-factory-label": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-factory-title": "^1.0.0", - "micromark-factory-whitespace": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-html-tag-name": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "micromark-extension-gfm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.2.tgz", - "integrity": "sha512-oMBh++llCWHYftkP1NmeoQDHHlj3nsRYL3HBhjwBqm+CjSQ4l/v05XiQMTWqmYh4MLEVbq473qEi6S1wonCxcA==", - "dev": true, - "requires": { - "micromark-extension-gfm-autolink-literal": "^1.0.0", - "micromark-extension-gfm-footnote": "^1.0.0", - "micromark-extension-gfm-strikethrough": "^1.0.0", - "micromark-extension-gfm-table": "^1.0.0", - "micromark-extension-gfm-tagfilter": "^1.0.0", - "micromark-extension-gfm-task-list-item": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-extension-gfm-autolink-literal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.4.tgz", - "integrity": "sha512-WCssN+M9rUyfHN5zPBn3/f0mIA7tqArHL/EKbv3CZK+LT2rG77FEikIQEqBkv46fOqXQK4NEW/Pc7Z27gshpeg==", - "dev": true, - "requires": { - "micromark-util-character": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-extension-gfm-footnote": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.0.tgz", - "integrity": "sha512-RWYce7j8+c0n7Djzv5NzGEGitNNYO3uj+h/XYMdS/JinH1Go+/Qkomg/rfxExFzYTiydaV6GLeffGO5qcJbMPA==", - "dev": true, - "requires": { - "micromark-core-commonmark": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-extension-gfm-strikethrough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.5.tgz", - "integrity": "sha512-X0oI5eYYQVARhiNfbETy7BfLSmSilzN1eOuoRnrf9oUNsPRrWOAe9UqSizgw1vNxQBfOwL+n2610S3bYjVNi7w==", - "dev": true, - "requires": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-extension-gfm-table": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.6.tgz", - "integrity": "sha512-92pq7Q+T+4kXH4M6kL+pc8WU23Z9iuhcqmtYFWdFWjm73ZscFpH2xE28+XFpGWlvgq3LUwcN0XC0PGCicYFpgA==", - "dev": true, - "requires": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-extension-gfm-tagfilter": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz", - "integrity": "sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==", - "dev": true, - "requires": { - "micromark-util-types": "^1.0.0" - } - }, - "micromark-extension-gfm-task-list-item": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.4.tgz", - "integrity": "sha512-9XlIUUVnYXHsFF2HZ9jby4h3npfX10S1coXTnV035QGPgrtNYQq3J6IfIvcCIUAJrrqBVi5BqA/LmaOMJqPwMQ==", - "dev": true, - "requires": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-factory-destination": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz", - "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==", - "dev": true, - "requires": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-factory-label": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz", - "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==", - "dev": true, - "requires": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-factory-space": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz", - "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==", - "dev": true, - "requires": { - "micromark-util-character": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-factory-title": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz", - "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==", - "dev": true, - "requires": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-factory-whitespace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz", - "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==", - "dev": true, - "requires": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-util-character": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz", - "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==", - "dev": true, - "requires": { - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-util-chunked": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz", - "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==", - "dev": true, - "requires": { - "micromark-util-symbol": "^1.0.0" - } - }, - "micromark-util-classify-character": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz", - "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==", - "dev": true, - "requires": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-util-combine-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz", - "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==", - "dev": true, - "requires": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-util-decode-numeric-character-reference": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz", - "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==", - "dev": true, - "requires": { - "micromark-util-symbol": "^1.0.0" - } - }, - "micromark-util-decode-string": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz", - "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==", - "dev": true, - "requires": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "micromark-util-encode": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz", - "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==", - "dev": true - }, - "micromark-util-html-tag-name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz", - "integrity": "sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==", - "dev": true - }, - "micromark-util-normalize-identifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", - "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", - "dev": true, - "requires": { - "micromark-util-symbol": "^1.0.0" - } - }, - "micromark-util-resolve-all": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz", - "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==", - "dev": true, - "requires": { - "micromark-util-types": "^1.0.0" - } - }, - "micromark-util-sanitize-uri": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz", - "integrity": "sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==", - "dev": true, - "requires": { - "micromark-util-character": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "micromark-util-subtokenize": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz", - "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==", - "dev": true, - "requires": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-util-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz", - "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==", - "dev": true - }, - "micromark-util-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz", - "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "mitt": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz", - "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==", - "dev": true - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, - "monaco-editor": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.36.1.tgz", - "integrity": "sha512-/CaclMHKQ3A6rnzBzOADfwdSJ25BFoFT0Emxsc4zYVyav5SkK9iA6lEtIeuN/oRYbwPgviJT+t3l+sjFa28jYg==" - }, - "mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "msw": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/msw/-/msw-1.2.1.tgz", - "integrity": "sha512-bF7qWJQSmKn6bwGYVPXOxhexTCGD5oJSZg8yt8IBClxvo3Dx/1W0zqE1nX9BSWmzRsCKWfeGWcB/vpqV6aclpw==", - "dev": true, - "requires": { - "@mswjs/cookies": "^0.2.2", - "@mswjs/interceptors": "^0.17.5", - "@open-draft/until": "^1.0.3", - "@types/cookie": "^0.4.1", - "@types/js-levenshtein": "^1.1.1", - "chalk": "4.1.1", - "chokidar": "^3.4.2", - "cookie": "^0.4.2", - "graphql": "^15.0.0 || ^16.0.0", - "headers-polyfill": "^3.1.2", - "inquirer": "^8.2.0", - "is-node-process": "^1.2.0", - "js-levenshtein": "^1.1.6", - "node-fetch": "^2.6.7", - "outvariant": "^1.4.0", - "path-to-regexp": "^6.2.0", - "strict-event-emitter": "^0.4.3", - "type-fest": "^2.19.0", - "yargs": "^17.3.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "path-to-regexp": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", - "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "msw-storybook-addon": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/msw-storybook-addon/-/msw-storybook-addon-1.8.0.tgz", - "integrity": "sha512-dw3vZwqjixmiur0vouRSOax7wPSu9Og2Hspy9JZFHf49bZRjwDiLF0Pfn2NXEkGviYJOJiGxS1ejoTiUwoSg4A==", - "dev": true, - "requires": { - "is-node-process": "^1.0.1" - } - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "nanocolors": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.13.tgz", - "integrity": "sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA==", - "dev": true - }, - "nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node-dir": { - "version": "0.1.17", - "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", - "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==", - "dev": true, - "requires": { - "minimatch": "^3.0.2" - } - }, - "node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - }, - "dependencies": { - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } - } - }, - "node-fetch-native": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.1.1.tgz", - "integrity": "sha512-9VvspTSUp2Sxbl+9vbZTlFGq9lHwE8GDVVekxx6YsNd1YH59sb3Ba8v3Y3cD8PkLNcileGGcA21PFjVl0jzDaw==", - "dev": true - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node-plop": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.31.1.tgz", - "integrity": "sha512-qmXJJt3YETFt/e0dtMADVpvck6EvN01Jig086o+J3M6G++mWA7iJ3Pqz4m4kvlynh73Iz2/rcZzxq7xTiF+aIQ==", - "dev": true, - "requires": { - "@types/inquirer": "^8.2.1", - "change-case": "^4.1.2", - "del": "^6.0.0", - "globby": "^13.1.1", - "handlebars": "^4.4.3", - "inquirer": "^8.2.2", - "isbinaryfile": "^4.0.8", - "lodash.get": "^4.4.2", - "lower-case": "^2.0.2", - "mkdirp": "^1.0.4", - "resolve": "^1.20.0", - "title-case": "^3.0.3", - "upper-case": "^2.0.2" - }, - "dependencies": { - "globby": { - "version": "13.1.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", - "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", - "dev": true, - "requires": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - } - }, - "isbinaryfile": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", - "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", - "dev": true - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - } - } - }, - "node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "dev": true, - "requires": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true - }, - "object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "dev": true - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", - "dev": true, - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "only": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", - "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==", - "dev": true - }, - "open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "dev": true, - "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - } - }, - "openapi-typescript-codegen": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/openapi-typescript-codegen/-/openapi-typescript-codegen-0.24.0.tgz", - "integrity": "sha512-rSt8t1XbMWhv6Db7GUI24NNli7FU5kzHLxcE8BpzgGWRdWyWt9IB2YoLyPahxNrVA7yOaVgnXPkrcTDRMQtJYg==", - "dev": true, - "requires": { - "camelcase": "^6.3.0", - "commander": "^10.0.0", - "fs-extra": "^11.1.1", - "handlebars": "^4.7.7", - "json-schema-ref-parser": "^9.0.9" - } - }, - "opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==" - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true - }, - "outvariant": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.0.tgz", - "integrity": "sha512-AlWY719RF02ujitly7Kk/0QlV+pXGFDHrHf9O2OKqyqgBieaPOIeuSkL8sRK6j2WK+/ZAURq2kZsY0d8JapUiw==", - "dev": true - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", - "dev": true - }, - "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dev": true, - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", - "dev": true - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "dev": true, - "requires": { - "parse5": "^6.0.1" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "path-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", - "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", - "dev": true, - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "path-equal": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/path-equal/-/path-equal-1.2.5.tgz", - "integrity": "sha512-i73IctDr3F2W+bsOWDyyVm/lqsXO47aY9nsFZUjTT/aljSbkxHxxCoyZ9UUrM8jK0JVod+An+rl48RCsvWM+9g==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", - "dev": true, - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "pathe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz", - "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==", - "dev": true - }, - "peek-stream": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/peek-stream/-/peek-stream-1.1.3.tgz", - "integrity": "sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "duplexify": "^3.5.0", - "through2": "^2.0.3" - } - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true - }, - "pkg-dir": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", - "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", - "dev": true, - "requires": { - "find-up": "^5.0.0" - } - }, - "playwright": { - "version": "1.32.3", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.32.3.tgz", - "integrity": "sha512-h/ylpgoj6l/EjkfUDyx8cdOlfzC96itPpPe8BXacFkqpw/YsuxkpPyVbzEq4jw+bAJh5FLgh31Ljg2cR6HV3uw==", - "dev": true, - "requires": { - "playwright-core": "1.32.3" - } - }, - "playwright-core": { - "version": "1.32.3", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.32.3.tgz", - "integrity": "sha512-SB+cdrnu74ZIn5Ogh/8278ngEh9NEEV0vR4sJFmK04h2iZpybfbqBY0bX6+BLYWVdV12JLLI+JEFtSnYgR+mWg==", - "dev": true - }, - "playwright-msw": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/playwright-msw/-/playwright-msw-2.2.1.tgz", - "integrity": "sha512-LjT68LWqzJX8boy4KbnPp5ACLf7WDpt6RUem0tQQcQKys+45KNlluzBx8HEl1HNiCBYV/XZw1aI1aD2giKXWRg==", - "dev": true, - "requires": { - "@mswjs/cookies": "^0.2.2", - "strict-event-emitter": "^0.4.4" - } - }, - "plop": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/plop/-/plop-3.1.2.tgz", - "integrity": "sha512-39SOtQ3WlePXSNqKqAh/QlUSHXHO25iCnyCO3Qs/9UzPVmwVledRTDGvPd2csh+JnHVXz4c63F6fBwdqZHgbUg==", - "dev": true, - "requires": { - "@types/liftoff": "^4.0.0", - "chalk": "^5.0.1", - "interpret": "^2.2.0", - "liftoff": "^4.0.0", - "minimist": "^1.2.6", - "node-plop": "^0.31.1", - "ora": "^6.0.1", - "v8flags": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - }, - "chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", - "dev": true - }, - "cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", - "dev": true, - "requires": { - "restore-cursor": "^4.0.0" - } - }, - "is-interactive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", - "dev": true - }, - "is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "dev": true - }, - "log-symbols": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", - "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", - "dev": true, - "requires": { - "chalk": "^5.0.0", - "is-unicode-supported": "^1.1.0" - } - }, - "ora": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-6.3.0.tgz", - "integrity": "sha512-1/D8uRFY0ay2kgBpmAwmSA404w4OoPVhHMqRqtjvrcK/dnzcEZxMJ+V4DUbyICu8IIVRclHcOf5wlD1tMY4GUQ==", - "dev": true, - "requires": { - "chalk": "^5.0.0", - "cli-cursor": "^4.0.0", - "cli-spinners": "^2.6.1", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^1.1.0", - "log-symbols": "^5.1.0", - "stdin-discarder": "^0.1.0", - "strip-ansi": "^7.0.1", - "wcwidth": "^1.0.1" - } - }, - "restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "polished": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/polished/-/polished-4.2.2.tgz", - "integrity": "sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.17.8" - } - }, - "portfinder": { - "version": "1.0.32", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", - "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", - "dev": true, - "requires": { - "async": "^2.6.4", - "debug": "^3.2.7", - "mkdirp": "^0.5.6" - }, - "dependencies": { - "async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - } - } - }, - "postcss": { - "version": "8.4.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", - "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", - "dev": true, - "requires": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prettier": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz", - "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==", - "dev": true - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true - }, - "puppeteer-core": { - "version": "19.11.1", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.11.1.tgz", - "integrity": "sha512-qcuC2Uf0Fwdj9wNtaTZ2OvYRraXpAK+puwwVW8ofOhOgLPZyz1c68tsorfIZyCUOpyBisjr+xByu7BMbEYMepA==", - "dev": true, - "requires": { - "@puppeteer/browsers": "0.5.0", - "chromium-bidi": "0.4.7", - "cross-fetch": "3.1.5", - "debug": "4.3.4", - "devtools-protocol": "0.0.1107588", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.1", - "proxy-from-env": "1.1.0", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "ws": "8.13.0" - } - }, - "qs": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.1.tgz", - "integrity": "sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "ramda": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.28.0.tgz", - "integrity": "sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA==", - "dev": true - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true - } - } - }, - "react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0" - } - }, - "react-colorful": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz", - "integrity": "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==", - "dev": true - }, - "react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" - } - }, - "react-inspector": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-6.0.1.tgz", - "integrity": "sha512-cxKSeFTf7jpSSVddm66sKdolG90qURAX3g1roTeaN6x0YEbtWc8JpmFN9+yIqLNH2uEkYerWLtJZIXRIFuBKrg==", - "dev": true - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "react-resize-detector": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/react-resize-detector/-/react-resize-detector-7.1.2.tgz", - "integrity": "sha512-zXnPJ2m8+6oq9Nn8zsep/orts9vQv3elrpA+R8XTcW7DVVUJ9vwDwMXaBtykAYjMnkCIaOoK9vObyR7ZgFNlOw==", - "dev": true, - "requires": { - "lodash": "^4.17.21" - } - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "recast": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.2.tgz", - "integrity": "sha512-Qv6cPfVZyMOtPszK6PgW70pUgm7gPlFitAPf0Q69rlOA0zLw2XdDcNmPbVGYicFGT9O8I7TZ/0ryJD+6COvIPw==", - "dev": true, - "requires": { - "assert": "^2.0.0", - "ast-types": "^0.16.1", - "esprima": "~4.0.0", - "source-map": "~0.6.1", - "tslib": "^2.0.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", - "dev": true, - "requires": { - "resolve": "^1.20.0" - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", - "dev": true, - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true - }, - "regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regexp.prototype.flags": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", - "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "functions-have-names": "^1.2.3" - } - }, - "regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, - "requires": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - } - }, - "regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true - } - } - }, - "remark-external-links": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/remark-external-links/-/remark-external-links-8.0.0.tgz", - "integrity": "sha512-5vPSX0kHoSsqtdftSHhIYofVINC8qmp0nctkeU9YoJwV3YfiBRiI6cbFRJ0oI/1F9xS+bopXG0m2KS8VFscuKA==", - "dev": true, - "requires": { - "extend": "^3.0.0", - "is-absolute-url": "^3.0.0", - "mdast-util-definitions": "^4.0.0", - "space-separated-tokens": "^1.0.0", - "unist-util-visit": "^2.0.0" - } - }, - "remark-gfm": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", - "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", - "dev": true, - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-gfm": "^2.0.0", - "micromark-extension-gfm": "^2.0.0", - "unified": "^10.0.0" - } - }, - "remark-slug": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/remark-slug/-/remark-slug-6.1.0.tgz", - "integrity": "sha512-oGCxDF9deA8phWvxFuyr3oSJsdyUAxMFbA0mZ7Y1Sas+emILtO+e5WutF9564gDsEN4IXaQXm5pFo6MLH+YmwQ==", - "dev": true, - "requires": { - "github-slugger": "^1.0.0", - "mdast-util-to-string": "^1.0.0", - "unist-util-visit": "^2.0.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "requireindex": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", - "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", - "dev": true - }, - "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "dev": true, - "requires": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "resolve-path": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz", - "integrity": "sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==", - "dev": true, - "requires": { - "http-errors": "~1.6.2", - "path-is-absolute": "1.0.1" - }, - "dependencies": { - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true - } - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "rollup": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.21.2.tgz", - "integrity": "sha512-c4vC+JZ3bbF4Kqq2TtM7zSKtSyMybFOjqmomFax3xpfYaPZDZ4iz8NMIuBRMjnXOcKYozw7bC6vhJjiWD6JpzQ==", - "dev": true, - "requires": { - "fsevents": "~2.3.2" - } - }, - "rollup-plugin-dts": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-5.3.0.tgz", - "integrity": "sha512-8FXp0ZkyZj1iU5klkIJYLjIq/YZSwBoERu33QBDxm/1yw5UU4txrEtcmMkrq+ZiKu3Q4qvPCNqc3ovX6rjqzbQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "magic-string": "^0.30.0" - }, - "dependencies": { - "magic-string": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", - "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", - "dev": true, - "requires": { - "@jridgewell/sourcemap-codec": "^1.4.13" - } - } - } - }, - "rollup-plugin-esbuild": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-5.0.0.tgz", - "integrity": "sha512-1cRIOHAPh8WQgdQQyyvFdeOdxuiyk+zB5zJ5+YOwrZP4cJ0MT3Fs48pQxrZeyZHcn+klFherytILVfE4aYrneg==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^5.0.1", - "debug": "^4.3.4", - "es-module-lexer": "^1.0.5", - "joycon": "^3.1.1", - "jsonc-parser": "^3.2.0" - }, - "dependencies": { - "es-module-lexer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", - "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", - "dev": true - } - } - }, - "rollup-plugin-url": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-url/-/rollup-plugin-url-3.0.1.tgz", - "integrity": "sha512-fQVrxlW335snHfPqZ7a0JIkkYEIrLeFobpAxRMQnyv7xQeJOY1yOd84STIdCaLYPoGzwOq8waOdGipNH181kzg==", - "dev": true, - "requires": { - "mime": "^2.4.4", - "rollup-pluginutils": "^2.8.2" - } - }, - "rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", - "dev": true, - "requires": { - "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - } - } - }, - "router-slot": { - "version": "file:router-slot-2.0.0.tgz", - "integrity": "sha512-J2E+sDJR7Q/S761Q6vXVCTWFN1kKidX3fparKoipm/NaX9XEdwmCSOEqYyUHbnIyDDo5O5PMhsH8EazLmCQJXw==" - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "requires": { - "tslib": "^2.1.0" - } - }, - "sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dev": true, - "requires": { - "mri": "^1.1.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - } - }, - "safe-stable-stringify": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", - "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0" - } - }, - "schema-utils": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", - "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } - } - }, - "sentence-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", - "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "serve-favicon": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", - "integrity": "sha512-FMW2RvqNr03x+C0WxTyu6sOv21oOjkq5j8tjquWccwa6ScNyGFOGJVpuS1NmTVGBAHS07xnSKotgf2ehQmf9iA==", - "dev": true, - "requires": { - "etag": "~1.8.1", - "fresh": "0.5.2", - "ms": "2.1.1", - "parseurl": "~1.3.2", - "safe-buffer": "5.1.1" - }, - "dependencies": { - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true - } - } - }, - "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "set-cookie-parser": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", - "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==", - "dev": true - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dev": true, - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - } - } - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "simple-update-notifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", - "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", - "dev": true, - "requires": { - "semver": "~7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } - } - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - } - } - }, - "snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "dev": true, - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", - "dev": true - }, - "spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", - "dev": true - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true - }, - "stdin-discarder": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz", - "integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==", - "dev": true, - "requires": { - "bl": "^5.0.0" - }, - "dependencies": { - "bl": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", - "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", - "dev": true, - "requires": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, - "stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", - "dev": true, - "requires": { - "internal-slot": "^1.0.4" - } - }, - "store2": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz", - "integrity": "sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==", - "dev": true - }, - "storybook": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.0.11.tgz", - "integrity": "sha512-3MdQ90doYuGZpC052zyMnWLIK1GqyPrYN0sCkGyiNAO8wdxcuCG8jHK2s4b1I/yWLCGv03jCjoc6w9F5iRcrHw==", - "dev": true, - "requires": { - "@storybook/cli": "7.0.11" - } - }, - "stream-read-all": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/stream-read-all/-/stream-read-all-3.0.1.tgz", - "integrity": "sha512-EWZT9XOceBPlVJRrYcykW8jyRSZYbkb/0ZK36uLEmoWVO5gxBOnntNTseNzfREsqxqdfEGQrD8SXQ3QWbBmq8A==", - "dev": true - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, - "strict-event-emitter": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.4.6.tgz", - "integrity": "sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg==", - "dev": true - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - } - } - }, - "string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "synchronous-promise": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.17.tgz", - "integrity": "sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==", - "dev": true - }, - "synckit": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", - "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", - "dev": true, - "requires": { - "@pkgr/utils": "^2.3.1", - "tslib": "^2.5.0" - } - }, - "table-layout": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-3.0.2.tgz", - "integrity": "sha512-rpyNZYRw+/C+dYkcQ3Pr+rLxW4CfHpXjPDnG7lYhdRoUcZTUt+KEsX+94RGp/aVp/MQU35JCITv2T/beY4m+hw==", - "dev": true, - "requires": { - "@75lb/deep-merge": "^1.1.1", - "array-back": "^6.2.2", - "command-line-args": "^5.2.1", - "command-line-usage": "^7.0.0", - "stream-read-all": "^3.0.1", - "typical": "^7.1.1", - "wordwrapjs": "^5.1.0" - }, - "dependencies": { - "array-back": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", - "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", - "dev": true - }, - "typical": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", - "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", - "dev": true - } - } - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - }, - "tar": { - "version": "6.1.14", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.14.tgz", - "integrity": "sha512-piERznXu0U7/pW7cdSn7hjqySIVTYT6F76icmFk7ptU7dDYlXTm5r9A6K04R2vU3olYgoKeo1Cg3eeu5nhftAw==", - "dev": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "requires": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - }, - "dependencies": { - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - } - } - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - } - }, - "telejson": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/telejson/-/telejson-7.1.0.tgz", - "integrity": "sha512-jFJO4P5gPebZAERPkJsqMAQ0IMA1Hi0AoSfxpnUaV6j6R2SZqlpkbS20U6dEUtA3RUYt2Ak/mTlkQzHH9Rv/hA==", - "dev": true, - "requires": { - "memoizerific": "^1.11.3" - } - }, - "temp": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz", - "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==", - "dev": true, - "requires": { - "rimraf": "~2.6.2" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "dev": true - }, - "tempy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz", - "integrity": "sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==", - "dev": true, - "requires": { - "del": "^6.0.0", - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "dependencies": { - "type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", - "dev": true - } - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "tiny-glob": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", - "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", - "dev": true, - "requires": { - "globalyzer": "0.1.0", - "globrex": "^0.1.2" - } - }, - "tinymce": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-6.3.2.tgz", - "integrity": "sha512-nOVHk4FhHKQj48hi7fEptS1Se6CNzPtfIcDzTO70KoTcSiQIFzhhZjS5bPotSzFnQ4dIQJ4QPOd7sqNs6fXUrA==" - }, - "tinymce-i18n": { - "version": "23.5.8", - "resolved": "https://registry.npmjs.org/tinymce-i18n/-/tinymce-i18n-23.5.8.tgz", - "integrity": "sha512-9ldMYgdiyGb+RdnZqbpOpAhfFXytpss/jXFONQF94oC5zu2xTyv78xuC6iL5dpGPufHMN6h0KLlNbV3ShkFUyw==" - }, - "title-case": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", - "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", - "dev": true, - "requires": { - "tslib": "^2.0.3" - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true - }, - "tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "trough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", - "dev": true - }, - "ts-dedent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", - "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", - "dev": true - }, - "ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "dependencies": { - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - } - } - }, - "ts-simple-type": { - "version": "2.0.0-next.0", - "resolved": "https://registry.npmjs.org/ts-simple-type/-/ts-simple-type-2.0.0-next.0.tgz", - "integrity": "sha512-A+hLX83gS+yH6DtzNAhzZbPfU+D9D8lHlTSd7GeoMRBjOt3GRylDqLTYbdmjA4biWvq2xSfpqfIDj2l0OA/BVg==", - "dev": true - }, - "tsconfck": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-2.1.1.tgz", - "integrity": "sha512-ZPCkJBKASZBmBUNqGHmRhdhM8pJYDdOXp4nRgj/O0JwUwsMq50lCDRQP/M5GBNAA0elPrq4gAeu4dkaVCuKWww==", - "dev": true - }, - "tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - }, - "tsscmp": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", - "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, - "typescript": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", - "dev": true - }, - "typescript-json-schema": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.55.0.tgz", - "integrity": "sha512-BXaivYecUdiXWWNiUqXgY6A9cMWerwmhtO+lQE7tDZGs7Mf38sORDeQZugfYOZOHPZ9ulsD+w0LWjFDOQoXcwg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "@types/node": "^16.9.2", - "glob": "^7.1.7", - "path-equal": "^1.1.2", - "safe-stable-stringify": "^2.2.0", - "ts-node": "^10.9.1", - "typescript": "~4.8.2", - "yargs": "^17.1.1" - }, - "dependencies": { - "@types/node": { - "version": "16.18.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.24.tgz", - "integrity": "sha512-zvSN2Esek1aeLdKDYuntKAYjti9Z2oT4I8bfkLLhIxHlv3dwZ5vvATxOc31820iYm4hQRCwjUgDpwSMFjfTUnw==", - "dev": true - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "typescript": { - "version": "4.8.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", - "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", - "dev": true - } - } - }, - "typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "dev": true - }, - "ua-parser-js": { - "version": "1.0.35", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.35.tgz", - "integrity": "sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==", - "dev": true - }, - "uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "dev": true - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", - "dev": true - }, - "unfetch": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", - "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==", - "dev": true - }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true - }, - "unified": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", - "dev": true - }, - "unist-util-stringify-position": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", - "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0" - } - }, - "unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" - } - }, - "unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true - }, - "unplugin": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-0.10.2.tgz", - "integrity": "sha512-6rk7GUa4ICYjae5PrAllvcDeuT8pA9+j5J5EkxbMFaV+SalHhxZ7X2dohMzu6C3XzsMT+6jwR/+pwPNR3uK9MA==", - "dev": true, - "requires": { - "acorn": "^8.8.0", - "chokidar": "^3.5.3", - "webpack-sources": "^3.2.3", - "webpack-virtual-modules": "^0.4.5" - } - }, - "untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "upper-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", - "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", - "dev": true, - "requires": { - "tslib": "^2.0.3" - } - }, - "upper-case-first": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", - "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", - "dev": true, - "requires": { - "tslib": "^2.0.3" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "use-resize-observer": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/use-resize-observer/-/use-resize-observer-9.1.0.tgz", - "integrity": "sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==", - "dev": true, - "requires": { - "@juggle/resize-observer": "^3.3.1" - } - }, - "util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true - }, - "uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" - }, - "uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", - "dev": true, - "requires": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - }, - "dependencies": { - "kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "dev": true - } - } - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "v8-to-istanbul": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", - "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - } - }, - "v8flags": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.0.tgz", - "integrity": "sha512-83N0OkTbn6gOjJ2awNuzuK4czeGxwEwBoTqlhBZhnp8o0IJ72mXRQKphj/azwRf3acbDJZYZhbOPEJHd884ELg==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true - }, - "vfile": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", - "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", - "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } - }, - "vite": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.3.tgz", - "integrity": "sha512-MwFlLBO4udZXd+VBcezo3u8mC77YQk+ik+fbc0GZWGgzfbPP+8Kf0fldhARqvSYmtIWoAJ5BXPClUbMTlqFxrA==", - "dev": true, - "requires": { - "esbuild": "^0.17.5", - "fsevents": "~2.3.2", - "postcss": "^8.4.23", - "rollup": "^3.21.0" - } - }, - "vite-plugin-static-copy": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-0.14.0.tgz", - "integrity": "sha512-RMFmb4czomcrsbQBiUZs9HcDGN3kxGvF+OrtkfTVocp12CuoUCuJQhcY26RK35A6KS4WasGzEwcYZqHMjkAvVw==", - "dev": true, - "requires": { - "chokidar": "^3.5.3", - "fast-glob": "^3.2.11", - "fs-extra": "^11.1.0", - "picocolors": "^1.0.0" - } - }, - "vite-tsconfig-paths": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.2.0.tgz", - "integrity": "sha512-jGpus0eUy5qbbMVGiTxCL1iB9ZGN6Bd37VGLJU39kTDD6ZfULTTb1bcc5IeTWqWJKiWV5YihCaibeASPiGi8kw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "globrex": "^0.1.2", - "tsconfck": "^2.1.0" - } - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "requires": { - "makeerror": "1.0.12" - } - }, - "watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dev": true, - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "web-component-analyzer": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/web-component-analyzer/-/web-component-analyzer-2.0.0-next.4.tgz", - "integrity": "sha512-XZ4JOibgp+3OKAQ6K9v4gJOoHAurfXztbfX6FwqXIh4cNLTwHz4QcLDOFav+2ddKGpshM4MQrJaPCPXZeCv5+A==", - "dev": true, - "requires": { - "fast-glob": "^3.2.2", - "ts-simple-type": "2.0.0-next.0", - "typescript": "~4.4.3", - "yargs": "^15.3.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "typescript": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", - "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", - "dev": true - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "web-encoding": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", - "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", - "dev": true, - "requires": { - "@zxing/text-encoding": "0.9.0", - "util": "^0.12.3" - } - }, - "webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true - }, - "webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true - }, - "webpack-virtual-modules": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.4.6.tgz", - "integrity": "sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==", - "dev": true - }, - "whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "requires": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "dev": true, - "requires": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - } - }, - "which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true - }, - "which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - } - }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "requires": { - "string-width": "^4.0.0" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "wordwrapjs": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz", - "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - } - }, - "ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "ylru": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz", - "integrity": "sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==", - "dev": true - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - }, - "zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", - "dev": true - } } } diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index b3daddcc17..3cfad0a1e3 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -1,17 +1,54 @@ { - "name": "umbraco-cms-backoffice", + "name": "@umbraco-cms/backoffice", "license": "MIT", - "private": true, "version": "0.0.0", "type": "module", - "main": "dist/main.js", "exports": { - ".": "./dist/main.js" + ".": null, + "./backend-api": "./dist-cms/external/backend-api/index.js", + "./context-api": "./dist-cms/libs/context-api/index.js", + "./controller-api": "./dist-cms/libs/controller-api/index.js", + "./element-api": "./dist-cms/libs/element-api/index.js", + "./extension-api": "./dist-cms/libs/extension-api/index.js", + "./observable-api": "./dist-cms/libs/observable-api/index.js", + "./events": "./dist-cms/shared/umb-events/index.js", + "./models": "./dist-cms/shared/models/index.js", + "./repository": "./dist-cms/shared/repository/index.js", + "./resources": "./dist-cms/shared/resources/index.js", + "./router": "./dist-cms/shared/router/index.js", + "./utils": "./dist-cms/shared/utils/index.js", + "./icon": "./dist-cms/shared/icon/index.js", + "./action": "./dist-cms/packages/core/action/index.js", + "./collection": "./dist-cms/packages/core/collection/index.js", + "./components": "./dist-cms/packages/core/components/index.js", + "./content-type": "./dist-cms/packages/core/content-type/index.js", + "./debug": "./dist-cms/packages/core/debug/index.js", + "./entity-action": "./dist-cms/packages/core/entity-action/index.js", + "./entity-bulk-action": "./dist-cms/packages/core/entity-bulk-action/index.js", + "./extension-registry": "./dist-cms/packages/core/extension-registry/index.js", + "./id": "./dist-cms/packages/core/id/index.js", + "./menu": "./dist-cms/packages/core/menu/index.js", + "./modal": "./dist-cms/packages/core/modal/index.js", + "./notification": "./dist-cms/packages/core/notification/index.js", + "./picker-input": "./dist-cms/packages/core/picker-input/index.js", + "./section": "./dist-cms/packages/core/section/index.js", + "./sorter": "./dist-cms/packages/core/sorter/index.js", + "./store": "./dist-cms/packages/core/store/index.js", + "./tree": "./dist-cms/packages/core/tree/index.js", + "./variant": "./dist-cms/packages/core/variant/index.js", + "./workspace": "./dist-cms/packages/core/workspace/index.js", + "./property-editor": "./dist-cms/packages/core/property-editor/index.js", + "./document": "./dist-cms/packages/documents/documents/index.js", + "./data-type": "./dist-cms/packages/settings/data-types/index.js", + "./user-group": "./dist-cms/packages/users/user-groups/index.js", + "./current-user": "./dist-cms/packages/users/current-user/index.js", + "./users/": "./dist-cms/packages/users/users/index.js", + "./external/*": "./dist-cms/external/*/index.js" }, - "types": "types/src/app.d.ts", "files": [ - "dist", - "types" + "dist-cms", + "README.md", + "router-slot-*.*.*.tgz" ], "repository": { "url": "https://github.com/umbraco/Umbraco.CMS.Backoffice", @@ -27,36 +64,38 @@ }, "scripts": { "dev": "vite", - "build": "tsc && vite build --mode staging", - "build:libs": "npm run wc-analyze && npm run wc-analyze:vscode && npm run generate:jsonschema && rollup -c rollup-libs.config.js && node utils/move-libs.js", - "build:for:static": "tsc && vite build", - "build:for:cms": "tsc && npm run build:libs && vite build -c vite.cms.config.ts", - "build:for:cms:watch": "tsc && npm run build:libs && vite build -c vite.cms.config.ts --watch", + "build": "tsc --project ./src/tsconfig.json && rollup -c ./src/rollup.config.js", + "build:vite": "tsc && vite build --mode staging", + "build:for:static": "vite build", + "build:for:cms": "npm run build && node ./devops/build/copy-to-cms.js", + "build:for:npm": "npm run build && tsc-alias -f -p src/tsconfig.json", "preview": "vite preview --open", "test": "web-test-runner --coverage", "test:watch": "web-test-runner --watch", "auth:test:e2e": "npx playwright test --config apps/auth/", "backoffice:test:e2e": "npx playwright test", "test:e2e": "npm run auth:test:e2e && npm run backoffice:test:e2e", - "lint": "eslint src apps libs e2e", + "lint": "eslint src apps e2e", "lint:errors": "npm run lint -- --quiet", "lint:fix": "npm run lint -- --fix", "format": "prettier 'src/**/*.ts'", "format:fix": "npm run format -- --write", - "generate:api": "openapi --input https://raw.githubusercontent.com/umbraco/Umbraco-CMS/v13/dev/src/Umbraco.Cms.Api.Management/OpenApi.json --output libs/backend-api/src --postfixServices Resource --useOptions", - "generate:api-dev": "openapi --input http://localhost:11000/umbraco/swagger/v1/swagger.json --output libs/backend-api/src --postfixServices Resource --useOptions", - "generate:jsonschema": "typescript-json-schema --required --include \"./libs/extension-registry/*.ts\" --out dist/libs/umbraco-package-schema.json tsconfig.json UmbracoPackage", + "generate:api": "openapi --input https://raw.githubusercontent.com/umbraco/Umbraco-CMS/v14/dev/src/Umbraco.Cms.Api.Management/OpenApi.json --output src/external/backend-api/src --postfixServices Resource --useOptions", + "generate:api-dev": "openapi --input http://localhost:11000/umbraco/swagger/management/swagger.json --output src/external/backend-api/src --postfixServices Resource --useOptions", + "generate:jsonschema": "typescript-json-schema --required --include \"./src/packages/core/extension-registry/*.ts\"", + "generate:jsonschema:dist": "typescript-json-schema --required --include \"./src/packages/core/extension-registry/umbraco-package.ts\" --out dist-cms/umbraco-package-schema.json tsconfig.json UmbracoPackage", "storybook": "npm run wc-analyze && storybook dev -p 6006", "storybook:build": "npm run wc-analyze && storybook build", "build-storybook": "npm run wc-analyze && storybook build", "generate:icons": "node ./devops/icons/index.js", - "wc-analyze": "wca **/*.element.ts --outFile dist/libs/custom-elements.json", - "wc-analyze:vscode": "wca **/*.element.ts --format vscode --outFile dist/libs/vscode-html-custom-data.json", + "wc-analyze": "wca **/*.element.ts --outFile dist-cms/custom-elements.json", + "wc-analyze:vscode": "wca **/*.element.ts --format vscode --outFile dist-cms/vscode-html-custom-data.json", "new-extension": "plop --plopfile ./devops/plop/plop.js", "compile": "tsc", "check": "npm run lint && npm run compile && npm run build-storybook", "postinstall": "npm run generate:tinymce", - "generate:tinymce": "node ./devops/tinymce/index.js" + "generate:tinymce": "node ./devops/tinymce/index.js", + "prepublishOnly": "node ./devops/publish/cleanse-pkg.js" }, "engines": { "node": ">=18.14 <19", @@ -64,13 +103,13 @@ }, "dependencies": { "@openid/appauth": "^1.3.1", - "@umbraco-ui/uui": "1.3.0-rc.0", - "@umbraco-ui/uui-css": "1.3.0-rc.0", + "@umbraco-ui/uui": "1.3.0-rc.1", + "@umbraco-ui/uui-css": "1.3.0-rc.1", "element-internals-polyfill": "^1.1.19", - "lit": "^2.7.0", + "lit": "^2.7.4", "lodash-es": "4.17.21", "monaco-editor": "^0.36.1", - "router-slot": "file:router-slot-2.0.0.tgz", + "router-slot": "file:router-slot-2.2.0.tgz", "rxjs": "^7.8.0", "tinymce": "^6.3.2", "tinymce-i18n": "^23.5.8", @@ -81,15 +120,16 @@ "@mdx-js/react": "^2.2.1", "@open-wc/testing": "^3.1.7", "@playwright/test": "^1.30.0", + "@rollup/plugin-commonjs": "^25.0.0", "@rollup/plugin-json": "^6.0.0", "@rollup/plugin-node-resolve": "^15.0.1", - "@storybook/addon-a11y": "^7.0.11", - "@storybook/addon-actions": "^7.0.11", - "@storybook/addon-essentials": "^7.0.11", - "@storybook/addon-links": "^7.0.11", + "@storybook/addon-a11y": "^7.0.17", + "@storybook/addon-actions": "^7.0.17", + "@storybook/addon-essentials": "^7.0.17", + "@storybook/addon-links": "^7.0.17", "@storybook/mdx2-csf": "^1.1.0", - "@storybook/web-components": "^7.0.11", - "@storybook/web-components-vite": "^7.0.11", + "@storybook/web-components": "^7.0.17", + "@storybook/web-components-vite": "^7.0.17", "@types/chai": "^4.3.4", "@types/lodash-es": "^4.17.6", "@types/mocha": "^10.0.0", @@ -125,10 +165,11 @@ "rollup-plugin-dts": "^5.2.0", "rollup-plugin-esbuild": "^5.0.0", "rollup-plugin-url": "^3.0.1", - "storybook": "^7.0.11", + "storybook": "^7.0.17", "tiny-glob": "^0.2.9", + "tsc-alias": "^1.8.6", "typescript": "^5.0.3", - "typescript-json-schema": "^0.55.0", + "typescript-json-schema": "^0.56.0", "uglify-js": "^3.17.4", "vite": "^4.3.3", "vite-plugin-static-copy": "^0.14.0", diff --git a/src/Umbraco.Web.UI.Client/public-assets/App_Plugins/package-view.js b/src/Umbraco.Web.UI.Client/public-assets/App_Plugins/package-view.js index 3150e99e19..d10ba9e5a7 100644 --- a/src/Umbraco.Web.UI.Client/public-assets/App_Plugins/package-view.js +++ b/src/Umbraco.Web.UI.Client/public-assets/App_Plugins/package-view.js @@ -7,14 +7,13 @@ template.innerHTML = `

Example of vanilla JS section

- + Close `; export default class MyPackageViewCustom extends HTMLElement { - constructor() { super(); this.attachShadow({ mode: 'open' }); diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icons.json b/src/Umbraco.Web.UI.Client/public-assets/icons/icons.json deleted file mode 100644 index 01e6375217..0000000000 --- a/src/Umbraco.Web.UI.Client/public-assets/icons/icons.json +++ /dev/null @@ -1 +0,0 @@ -[{"name":"umb:activity","path":"icons/icon-activity.js"},{"name":"umb:add","path":"icons/icon-add.js"},{"name":"umb:addressbook","path":"icons/icon-addressbook.js"},{"name":"umb:alarm-clock","path":"icons/icon-alarm-clock.js"},{"name":"umb:alert-alt","path":"icons/icon-alert-alt.js"},{"name":"umb:alert","path":"icons/icon-alert.js"},{"name":"umb:alt","path":"icons/icon-alt.js"},{"name":"umb:anchor","path":"icons/icon-anchor.js"},{"name":"umb:app","path":"icons/icon-app.js"},{"name":"umb:application-error","path":"icons/icon-application-error.js"},{"name":"umb:application-window-alt","path":"icons/icon-application-window-alt.js"},{"name":"umb:application-window","path":"icons/icon-application-window.js"},{"name":"umb:arrivals","path":"icons/icon-arrivals.js"},{"name":"umb:arrow-down","path":"icons/icon-arrow-down.js"},{"name":"umb:arrow-left","path":"icons/icon-arrow-left.js"},{"name":"umb:arrow-right","path":"icons/icon-arrow-right.js"},{"name":"umb:arrow-up","path":"icons/icon-arrow-up.js"},{"name":"umb:art-easel","path":"icons/icon-art-easel.js"},{"name":"umb:article","path":"icons/icon-article.js"},{"name":"umb:attachment","path":"icons/icon-attachment.js"},{"name":"umb:auction-hammer","path":"icons/icon-auction-hammer.js"},{"name":"umb:autofill","path":"icons/icon-autofill.js"},{"name":"umb:award","path":"icons/icon-award.js"},{"name":"umb:axis-rotation-2","path":"icons/icon-axis-rotation-2.js"},{"name":"umb:axis-rotation-3","path":"icons/icon-axis-rotation-3.js"},{"name":"umb:axis-rotation","path":"icons/icon-axis-rotation.js"},{"name":"umb:baby-stroller","path":"icons/icon-baby-stroller.js"},{"name":"umb:backspace","path":"icons/icon-backspace.js"},{"name":"umb:badge-add","path":"icons/icon-badge-add.js"},{"name":"umb:badge-count","path":"icons/icon-badge-count.js"},{"name":"umb:badge-remove","path":"icons/icon-badge-remove.js"},{"name":"umb:badge-restricted","path":"icons/icon-badge-restricted.js"},{"name":"umb:ball","path":"icons/icon-ball.js"},{"name":"umb:band-aid","path":"icons/icon-band-aid.js"},{"name":"umb:bar-chart","path":"icons/icon-bar-chart.js"},{"name":"umb:barcode","path":"icons/icon-barcode.js"},{"name":"umb:bars","path":"icons/icon-bars.js"},{"name":"umb:battery-full","path":"icons/icon-battery-full.js"},{"name":"umb:battery-low","path":"icons/icon-battery-low.js"},{"name":"umb:beer-glass","path":"icons/icon-beer-glass.js"},{"name":"umb:bell-off","path":"icons/icon-bell-off.js"},{"name":"umb:bell","path":"icons/icon-bell.js"},{"name":"umb:bill-dollar","path":"icons/icon-bill-dollar.js"},{"name":"umb:bill-euro","path":"icons/icon-bill-euro.js"},{"name":"umb:bill-pound","path":"icons/icon-bill-pound.js"},{"name":"umb:bill-yen","path":"icons/icon-bill-yen.js"},{"name":"umb:bill","path":"icons/icon-bill.js"},{"name":"umb:billboard","path":"icons/icon-billboard.js"},{"name":"umb:bills-dollar","path":"icons/icon-bills-dollar.js"},{"name":"umb:bills-euro","path":"icons/icon-bills-euro.js"},{"name":"umb:bills-pound","path":"icons/icon-bills-pound.js"},{"name":"umb:bills-yen","path":"icons/icon-bills-yen.js"},{"name":"umb:bills","path":"icons/icon-bills.js"},{"name":"umb:binarycode","path":"icons/icon-binarycode.js"},{"name":"umb:binoculars","path":"icons/icon-binoculars.js"},{"name":"umb:bird","path":"icons/icon-bird.js"},{"name":"umb:birthday-cake","path":"icons/icon-birthday-cake.js"},{"name":"umb:block","path":"icons/icon-block.js"},{"name":"umb:blueprint","path":"icons/icon-blueprint.js"},{"name":"umb:bluetooth","path":"icons/icon-bluetooth.js"},{"name":"umb:boat-shipping","path":"icons/icon-boat-shipping.js"},{"name":"umb:bomb","path":"icons/icon-bomb.js"},{"name":"umb:bones","path":"icons/icon-bones.js"},{"name":"umb:book-alt-2","path":"icons/icon-book-alt-2.js"},{"name":"umb:book-alt","path":"icons/icon-book-alt.js"},{"name":"umb:book","path":"icons/icon-book.js"},{"name":"umb:bookmark","path":"icons/icon-bookmark.js"},{"name":"umb:books","path":"icons/icon-books.js"},{"name":"umb:box-alt","path":"icons/icon-box-alt.js"},{"name":"umb:box-open","path":"icons/icon-box-open.js"},{"name":"umb:box","path":"icons/icon-box.js"},{"name":"umb:brackets","path":"icons/icon-brackets.js"},{"name":"umb:brick","path":"icons/icon-brick.js"},{"name":"umb:briefcase","path":"icons/icon-briefcase.js"},{"name":"umb:browser-window","path":"icons/icon-browser-window.js"},{"name":"umb:brush-alt-2","path":"icons/icon-brush-alt-2.js"},{"name":"umb:brush-alt","path":"icons/icon-brush-alt.js"},{"name":"umb:brush","path":"icons/icon-brush.js"},{"name":"umb:bug","path":"icons/icon-bug.js"},{"name":"umb:bulleted-list","path":"icons/icon-bulleted-list.js"},{"name":"umb:burn","path":"icons/icon-burn.js"},{"name":"umb:bus","path":"icons/icon-bus.js"},{"name":"umb:calculator","path":"icons/icon-calculator.js"},{"name":"umb:calendar-alt","path":"icons/icon-calendar-alt.js"},{"name":"umb:calendar","path":"icons/icon-calendar.js"},{"name":"umb:camcorder","path":"icons/icon-camcorder.js"},{"name":"umb:camera-roll","path":"icons/icon-camera-roll.js"},{"name":"umb:candy","path":"icons/icon-candy.js"},{"name":"umb:caps-lock","path":"icons/icon-caps-lock.js"},{"name":"umb:car","path":"icons/icon-car.js"},{"name":"umb:cash-register","path":"icons/icon-cash-register.js"},{"name":"umb:categories","path":"icons/icon-categories.js"},{"name":"umb:certificate","path":"icons/icon-certificate.js"},{"name":"umb:chart-curve","path":"icons/icon-chart-curve.js"},{"name":"umb:chart","path":"icons/icon-chart.js"},{"name":"umb:chat-active","path":"icons/icon-chat-active.js"},{"name":"umb:chat","path":"icons/icon-chat.js"},{"name":"umb:check","path":"icons/icon-check.js"},{"name":"umb:checkbox-dotted-active","path":"icons/icon-checkbox-dotted-active.js"},{"name":"umb:checkbox-dotted","path":"icons/icon-checkbox-dotted.js"},{"name":"umb:checkbox-empty","path":"icons/icon-checkbox-empty.js"},{"name":"umb:checkbox","path":"icons/icon-checkbox.js"},{"name":"umb:chess","path":"icons/icon-chess.js"},{"name":"umb:chip-alt","path":"icons/icon-chip-alt.js"},{"name":"umb:chip","path":"icons/icon-chip.js"},{"name":"umb:cinema","path":"icons/icon-cinema.js"},{"name":"umb:circle-dotted-active","path":"icons/icon-circle-dotted-active.js"},{"name":"umb:circle-dotted","path":"icons/icon-circle-dotted.js"},{"name":"umb:circuits","path":"icons/icon-circuits.js"},{"name":"umb:circus","path":"icons/icon-circus.js"},{"name":"umb:client","path":"icons/icon-client.js"},{"name":"umb:clothes-hanger","path":"icons/icon-clothes-hanger.js"},{"name":"umb:cloud-drive","path":"icons/icon-cloud-drive.js"},{"name":"umb:cloud-upload","path":"icons/icon-cloud-upload.js"},{"name":"umb:cloud","path":"icons/icon-cloud.js"},{"name":"umb:cloudy","path":"icons/icon-cloudy.js"},{"name":"umb:clubs","path":"icons/icon-clubs.js"},{"name":"umb:cocktail","path":"icons/icon-cocktail.js"},{"name":"umb:code","path":"icons/icon-code.js"},{"name":"umb:coffee","path":"icons/icon-coffee.js"},{"name":"umb:coin-dollar","path":"icons/icon-coin-dollar.js"},{"name":"umb:coin-euro","path":"icons/icon-coin-euro.js"},{"name":"umb:coin-pound","path":"icons/icon-coin-pound.js"},{"name":"umb:coin-yen","path":"icons/icon-coin-yen.js"},{"name":"umb:coin","path":"icons/icon-coin.js"},{"name":"umb:coins-alt","path":"icons/icon-coins-alt.js"},{"name":"umb:coins-dollar-alt","path":"icons/icon-coins-dollar-alt.js"},{"name":"umb:coins-dollar","path":"icons/icon-coins-dollar.js"},{"name":"umb:coins-euro-alt","path":"icons/icon-coins-euro-alt.js"},{"name":"umb:coins-euro","path":"icons/icon-coins-euro.js"},{"name":"umb:coins-pound-alt","path":"icons/icon-coins-pound-alt.js"},{"name":"umb:coins-pound","path":"icons/icon-coins-pound.js"},{"name":"umb:coins-yen-alt","path":"icons/icon-coins-yen-alt.js"},{"name":"umb:coins-yen","path":"icons/icon-coins-yen.js"},{"name":"umb:coins","path":"icons/icon-coins.js"},{"name":"umb:color-bucket","path":"icons/icon-color-bucket.js"},{"name":"umb:colorpicker","path":"icons/icon-colorpicker.js"},{"name":"umb:columns","path":"icons/icon-columns.js"},{"name":"umb:comb","path":"icons/icon-comb.js"},{"name":"umb:combination-lock-open","path":"icons/icon-combination-lock-open.js"},{"name":"umb:combination-lock","path":"icons/icon-combination-lock.js"},{"name":"umb:command","path":"icons/icon-command.js"},{"name":"umb:company","path":"icons/icon-company.js"},{"name":"umb:compress","path":"icons/icon-compress.js"},{"name":"umb:connection","path":"icons/icon-connection.js"},{"name":"umb:console","path":"icons/icon-console.js"},{"name":"umb:contrast","path":"icons/icon-contrast.js"},{"name":"umb:conversation-alt","path":"icons/icon-conversation-alt.js"},{"name":"umb:conversation","path":"icons/icon-conversation.js"},{"name":"umb:coverflow","path":"icons/icon-coverflow.js"},{"name":"umb:credit-card-alt","path":"icons/icon-credit-card-alt.js"},{"name":"umb:credit-card","path":"icons/icon-credit-card.js"},{"name":"umb:crop","path":"icons/icon-crop.js"},{"name":"umb:crosshair","path":"icons/icon-crosshair.js"},{"name":"umb:crown-alt","path":"icons/icon-crown-alt.js"},{"name":"umb:crown","path":"icons/icon-crown.js"},{"name":"umb:cupcake","path":"icons/icon-cupcake.js"},{"name":"umb:curve","path":"icons/icon-curve.js"},{"name":"umb:cut","path":"icons/icon-cut.js"},{"name":"umb:dashboard","path":"icons/icon-dashboard.js"},{"name":"umb:defrag","path":"icons/icon-defrag.js"},{"name":"umb:delete-key","path":"icons/icon-delete-key.js"},{"name":"umb:delete","path":"icons/icon-delete.js"},{"name":"umb:departure","path":"icons/icon-departure.js"},{"name":"umb:desk","path":"icons/icon-desk.js"},{"name":"umb:desktop","path":"icons/icon-desktop.js"},{"name":"umb:diagnostics","path":"icons/icon-diagnostics.js"},{"name":"umb:diagonal-arrow-alt","path":"icons/icon-diagonal-arrow-alt.js"},{"name":"umb:diagonal-arrow","path":"icons/icon-diagonal-arrow.js"},{"name":"umb:diamond","path":"icons/icon-diamond.js"},{"name":"umb:diamonds","path":"icons/icon-diamonds.js"},{"name":"umb:dice","path":"icons/icon-dice.js"},{"name":"umb:diploma-alt","path":"icons/icon-diploma-alt.js"},{"name":"umb:diploma","path":"icons/icon-diploma.js"},{"name":"umb:directions-alt","path":"icons/icon-directions-alt.js"},{"name":"umb:directions","path":"icons/icon-directions.js"},{"name":"umb:disc","path":"icons/icon-disc.js"},{"name":"umb:disk-image","path":"icons/icon-disk-image.js"},{"name":"umb:display","path":"icons/icon-display.js"},{"name":"umb:dna","path":"icons/icon-dna.js"},{"name":"umb:dock-connector","path":"icons/icon-dock-connector.js"},{"name":"umb:document-dashed-line","path":"icons/icon-document-dashed-line.js"},{"name":"umb:document","path":"icons/icon-document.js"},{"name":"umb:documents","path":"icons/icon-documents.js"},{"name":"umb:dollar-bag","path":"icons/icon-dollar-bag.js"},{"name":"umb:donate","path":"icons/icon-donate.js"},{"name":"umb:door-open-alt","path":"icons/icon-door-open-alt.js"},{"name":"umb:door-open","path":"icons/icon-door-open.js"},{"name":"umb:download-alt","path":"icons/icon-download-alt.js"},{"name":"umb:download","path":"icons/icon-download.js"},{"name":"umb:drop","path":"icons/icon-drop.js"},{"name":"umb:eco","path":"icons/icon-eco.js"},{"name":"umb:economy","path":"icons/icon-economy.js"},{"name":"umb:edit","path":"icons/icon-edit.js"},{"name":"umb:eject","path":"icons/icon-eject.js"},{"name":"umb:employee","path":"icons/icon-employee.js"},{"name":"umb:energy-saving-bulb","path":"icons/icon-energy-saving-bulb.js"},{"name":"umb:enter","path":"icons/icon-enter.js"},{"name":"umb:equalizer","path":"icons/icon-equalizer.js"},{"name":"umb:escape","path":"icons/icon-escape.js"},{"name":"umb:ethernet","path":"icons/icon-ethernet.js"},{"name":"umb:euro-bag","path":"icons/icon-euro-bag.js"},{"name":"umb:exit-fullscreen","path":"icons/icon-exit-fullscreen.js"},{"name":"umb:eye","path":"icons/icon-eye.js"},{"name":"umb:facebook-like","path":"icons/icon-facebook-like.js"},{"name":"umb:factory","path":"icons/icon-factory.js"},{"name":"umb:favorite","path":"icons/icon-favorite.js"},{"name":"umb:female-symbol","path":"icons/icon-female-symbol.js"},{"name":"umb:file-cabinet","path":"icons/icon-file-cabinet.js"},{"name":"umb:files","path":"icons/icon-files.js"},{"name":"umb:filter-arrows","path":"icons/icon-filter-arrows.js"},{"name":"umb:filter","path":"icons/icon-filter.js"},{"name":"umb:fingerprint","path":"icons/icon-fingerprint.js"},{"name":"umb:fire","path":"icons/icon-fire.js"},{"name":"umb:firewall","path":"icons/icon-firewall.js"},{"name":"umb:firewire","path":"icons/icon-firewire.js"},{"name":"umb:flag-alt","path":"icons/icon-flag-alt.js"},{"name":"umb:flag","path":"icons/icon-flag.js"},{"name":"umb:flash","path":"icons/icon-flash.js"},{"name":"umb:flashlight","path":"icons/icon-flashlight.js"},{"name":"umb:flowerpot","path":"icons/icon-flowerpot.js"},{"name":"umb:folder-open","path":"icons/icon-folder-open.js"},{"name":"umb:folder-outline","path":"icons/icon-folder-outline.js"},{"name":"umb:folder","path":"icons/icon-folder.js"},{"name":"umb:folders","path":"icons/icon-folders.js"},{"name":"umb:font","path":"icons/icon-font.js"},{"name":"umb:food","path":"icons/icon-food.js"},{"name":"umb:footprints","path":"icons/icon-footprints.js"},{"name":"umb:forking","path":"icons/icon-forking.js"},{"name":"umb:frame-alt","path":"icons/icon-frame-alt.js"},{"name":"umb:frame","path":"icons/icon-frame.js"},{"name":"umb:fullscreen-alt","path":"icons/icon-fullscreen-alt.js"},{"name":"umb:fullscreen","path":"icons/icon-fullscreen.js"},{"name":"umb:game","path":"icons/icon-game.js"},{"name":"umb:geometry","path":"icons/icon-geometry.js"},{"name":"umb:gift","path":"icons/icon-gift.js"},{"name":"umb:glasses","path":"icons/icon-glasses.js"},{"name":"umb:globe-alt","path":"icons/icon-globe-alt.js"},{"name":"umb:globe-asia","path":"icons/icon-globe-asia.js"},{"name":"umb:globe-europe-africa","path":"icons/icon-globe-europe-africa.js"},{"name":"umb:globe-inverted-america","path":"icons/icon-globe-inverted-america.js"},{"name":"umb:globe-inverted-asia","path":"icons/icon-globe-inverted-asia.js"},{"name":"umb:globe-inverted-europe-africa","path":"icons/icon-globe-inverted-europe-africa.js"},{"name":"umb:globe","path":"icons/icon-globe.js"},{"name":"umb:gps","path":"icons/icon-gps.js"},{"name":"umb:graduate","path":"icons/icon-graduate.js"},{"name":"umb:grid","path":"icons/icon-grid.js"},{"name":"umb:hammer","path":"icons/icon-hammer.js"},{"name":"umb:hand-active-alt","path":"icons/icon-hand-active-alt.js"},{"name":"umb:hand-active","path":"icons/icon-hand-active.js"},{"name":"umb:hand-pointer-alt","path":"icons/icon-hand-pointer-alt.js"},{"name":"umb:hand-pointer","path":"icons/icon-hand-pointer.js"},{"name":"umb:handprint","path":"icons/icon-handprint.js"},{"name":"umb:handshake","path":"icons/icon-handshake.js"},{"name":"umb:handtool-alt","path":"icons/icon-handtool-alt.js"},{"name":"umb:handtool","path":"icons/icon-handtool.js"},{"name":"umb:hard-drive-alt","path":"icons/icon-hard-drive-alt.js"},{"name":"umb:hard-drive","path":"icons/icon-hard-drive.js"},{"name":"umb:hat","path":"icons/icon-hat.js"},{"name":"umb:hd","path":"icons/icon-hd.js"},{"name":"umb:headphones","path":"icons/icon-headphones.js"},{"name":"umb:headset","path":"icons/icon-headset.js"},{"name":"umb:hearts","path":"icons/icon-hearts.js"},{"name":"umb:height","path":"icons/icon-height.js"},{"name":"umb:help-alt","path":"icons/icon-help-alt.js"},{"name":"umb:help","path":"icons/icon-help.js"},{"name":"umb:home","path":"icons/icon-home.js"},{"name":"umb:hourglass","path":"icons/icon-hourglass.js"},{"name":"umb:imac","path":"icons/icon-imac.js"},{"name":"umb:inactive-line","path":"icons/icon-inactive-line.js"},{"name":"umb:inbox-full","path":"icons/icon-inbox-full.js"},{"name":"umb:inbox","path":"icons/icon-inbox.js"},{"name":"umb:indent","path":"icons/icon-indent.js"},{"name":"umb:infinity","path":"icons/icon-infinity.js"},{"name":"umb:info","path":"icons/icon-info.js"},{"name":"umb:invoice","path":"icons/icon-invoice.js"},{"name":"umb:ipad","path":"icons/icon-ipad.js"},{"name":"umb:iphone","path":"icons/icon-iphone.js"},{"name":"umb:item-arrangement","path":"icons/icon-item-arrangement.js"},{"name":"umb:junk","path":"icons/icon-junk.js"},{"name":"umb:key","path":"icons/icon-key.js"},{"name":"umb:keyboard","path":"icons/icon-keyboard.js"},{"name":"umb:keychain","path":"icons/icon-keychain.js"},{"name":"umb:keyhole","path":"icons/icon-keyhole.js"},{"name":"umb:lab","path":"icons/icon-lab.js"},{"name":"umb:laptop","path":"icons/icon-laptop.js"},{"name":"umb:layers-alt","path":"icons/icon-layers-alt.js"},{"name":"umb:layers","path":"icons/icon-layers.js"},{"name":"umb:layout","path":"icons/icon-layout.js"},{"name":"umb:left-double-arrow","path":"icons/icon-left-double-arrow.js"},{"name":"umb:legal","path":"icons/icon-legal.js"},{"name":"umb:lense","path":"icons/icon-lense.js"},{"name":"umb:library","path":"icons/icon-library.js"},{"name":"umb:light-down","path":"icons/icon-light-down.js"},{"name":"umb:light-up","path":"icons/icon-light-up.js"},{"name":"umb:lightbulb-active","path":"icons/icon-lightbulb-active.js"},{"name":"umb:lightbulb","path":"icons/icon-lightbulb.js"},{"name":"umb:lightning","path":"icons/icon-lightning.js"},{"name":"umb:link","path":"icons/icon-link.js"},{"name":"umb:linux-tux","path":"icons/icon-linux-tux.js"},{"name":"umb:list","path":"icons/icon-list.js"},{"name":"umb:load","path":"icons/icon-load.js"},{"name":"umb:loading","path":"icons/icon-loading.js"},{"name":"umb:locate","path":"icons/icon-locate.js"},{"name":"umb:location-near-me","path":"icons/icon-location-near-me.js"},{"name":"umb:location-nearby","path":"icons/icon-location-nearby.js"},{"name":"umb:lock","path":"icons/icon-lock.js"},{"name":"umb:log-out","path":"icons/icon-log-out.js"},{"name":"umb:logout","path":"icons/icon-logout.js"},{"name":"umb:loupe","path":"icons/icon-loupe.js"},{"name":"umb:magnet","path":"icons/icon-magnet.js"},{"name":"umb:mailbox","path":"icons/icon-mailbox.js"},{"name":"umb:male-and-female","path":"icons/icon-male-and-female.js"},{"name":"umb:male-symbol","path":"icons/icon-male-symbol.js"},{"name":"umb:map-alt","path":"icons/icon-map-alt.js"},{"name":"umb:map-location","path":"icons/icon-map-location.js"},{"name":"umb:map-marker","path":"icons/icon-map-marker.js"},{"name":"umb:map","path":"icons/icon-map.js"},{"name":"umb:medal","path":"icons/icon-medal.js"},{"name":"umb:medical-emergency","path":"icons/icon-medical-emergency.js"},{"name":"umb:medicine","path":"icons/icon-medicine.js"},{"name":"umb:meeting","path":"icons/icon-meeting.js"},{"name":"umb:megaphone","path":"icons/icon-megaphone.js"},{"name":"umb:merge","path":"icons/icon-merge.js"},{"name":"umb:message-open","path":"icons/icon-message-open.js"},{"name":"umb:message-unopened","path":"icons/icon-message-unopened.js"},{"name":"umb:message","path":"icons/icon-message.js"},{"name":"umb:microscope","path":"icons/icon-microscope.js"},{"name":"umb:mindmap","path":"icons/icon-mindmap.js"},{"name":"umb:mobile","path":"icons/icon-mobile.js"},{"name":"umb:molecular-network","path":"icons/icon-molecular-network.js"},{"name":"umb:molecular","path":"icons/icon-molecular.js"},{"name":"umb:mountain","path":"icons/icon-mountain.js"},{"name":"umb:mouse-cursor","path":"icons/icon-mouse-cursor.js"},{"name":"umb:mouse","path":"icons/icon-mouse.js"},{"name":"umb:movie-alt","path":"icons/icon-movie-alt.js"},{"name":"umb:movie","path":"icons/icon-movie.js"},{"name":"umb:multiple-credit-cards","path":"icons/icon-multiple-credit-cards.js"},{"name":"umb:multiple-windows","path":"icons/icon-multiple-windows.js"},{"name":"umb:music","path":"icons/icon-music.js"},{"name":"umb:name-badge","path":"icons/icon-name-badge.js"},{"name":"umb:navigation-bottom","path":"icons/icon-navigation-bottom.js"},{"name":"umb:navigation-down","path":"icons/icon-navigation-down.js"},{"name":"umb:navigation-first","path":"icons/icon-navigation-first.js"},{"name":"umb:navigation-horizontal","path":"icons/icon-navigation-horizontal.js"},{"name":"umb:navigation-last","path":"icons/icon-navigation-last.js"},{"name":"umb:navigation-left","path":"icons/icon-navigation-left.js"},{"name":"umb:navigation-right","path":"icons/icon-navigation-right.js"},{"name":"umb:navigation-road","path":"icons/icon-navigation-road.js"},{"name":"umb:navigation-top","path":"icons/icon-navigation-top.js"},{"name":"umb:navigation-up","path":"icons/icon-navigation-up.js"},{"name":"umb:navigation-vertical","path":"icons/icon-navigation-vertical.js"},{"name":"umb:navigation","path":"icons/icon-navigation.js"},{"name":"umb:navigational-arrow","path":"icons/icon-navigational-arrow.js"},{"name":"umb:network-alt","path":"icons/icon-network-alt.js"},{"name":"umb:newspaper-alt","path":"icons/icon-newspaper-alt.js"},{"name":"umb:newspaper","path":"icons/icon-newspaper.js"},{"name":"umb:next-media","path":"icons/icon-next-media.js"},{"name":"umb:next","path":"icons/icon-next.js"},{"name":"umb:nodes","path":"icons/icon-nodes.js"},{"name":"umb:notepad-alt","path":"icons/icon-notepad-alt.js"},{"name":"umb:notepad","path":"icons/icon-notepad.js"},{"name":"umb:old-key","path":"icons/icon-old-key.js"},{"name":"umb:old-phone","path":"icons/icon-old-phone.js"},{"name":"umb:operator","path":"icons/icon-operator.js"},{"name":"umb:ordered-list","path":"icons/icon-ordered-list.js"},{"name":"umb:os-x","path":"icons/icon-os-x.js"},{"name":"umb:out","path":"icons/icon-out.js"},{"name":"umb:outbox","path":"icons/icon-outbox.js"},{"name":"umb:outdent","path":"icons/icon-outdent.js"},{"name":"umb:page-add","path":"icons/icon-page-add.js"},{"name":"umb:page-down","path":"icons/icon-page-down.js"},{"name":"umb:page-remove","path":"icons/icon-page-remove.js"},{"name":"umb:page-restricted","path":"icons/icon-page-restricted.js"},{"name":"umb:page-up","path":"icons/icon-page-up.js"},{"name":"umb:paint-roller","path":"icons/icon-paint-roller.js"},{"name":"umb:palette","path":"icons/icon-palette.js"},{"name":"umb:panel-show","path":"icons/icon-panel-show.js"},{"name":"umb:pannel-close","path":"icons/icon-pannel-close.js"},{"name":"umb:pants","path":"icons/icon-pants.js"},{"name":"umb:paper-bag","path":"icons/icon-paper-bag.js"},{"name":"umb:paper-plane-alt","path":"icons/icon-paper-plane-alt.js"},{"name":"umb:paper-plane","path":"icons/icon-paper-plane.js"},{"name":"umb:parachute-drop","path":"icons/icon-parachute-drop.js"},{"name":"umb:parental-control","path":"icons/icon-parental-control.js"},{"name":"umb:partly-cloudy","path":"icons/icon-partly-cloudy.js"},{"name":"umb:paste-in","path":"icons/icon-paste-in.js"},{"name":"umb:path","path":"icons/icon-path.js"},{"name":"umb:pause","path":"icons/icon-pause.js"},{"name":"umb:pc","path":"icons/icon-pc.js"},{"name":"umb:people-alt-2","path":"icons/icon-people-alt-2.js"},{"name":"umb:people-alt","path":"icons/icon-people-alt.js"},{"name":"umb:people-female","path":"icons/icon-people-female.js"},{"name":"umb:people","path":"icons/icon-people.js"},{"name":"umb:phone-ring","path":"icons/icon-phone-ring.js"},{"name":"umb:phone","path":"icons/icon-phone.js"},{"name":"umb:photo-album","path":"icons/icon-photo-album.js"},{"name":"umb:picture","path":"icons/icon-picture.js"},{"name":"umb:pictures-alt-2","path":"icons/icon-pictures-alt-2.js"},{"name":"umb:pictures-alt","path":"icons/icon-pictures-alt.js"},{"name":"umb:pictures","path":"icons/icon-pictures.js"},{"name":"umb:pie-chart","path":"icons/icon-pie-chart.js"},{"name":"umb:piggy-bank","path":"icons/icon-piggy-bank.js"},{"name":"umb:pin-location","path":"icons/icon-pin-location.js"},{"name":"umb:piracy","path":"icons/icon-piracy.js"},{"name":"umb:plane","path":"icons/icon-plane.js"},{"name":"umb:planet","path":"icons/icon-planet.js"},{"name":"umb:play","path":"icons/icon-play.js"},{"name":"umb:playing-cards","path":"icons/icon-playing-cards.js"},{"name":"umb:playlist","path":"icons/icon-playlist.js"},{"name":"umb:plugin","path":"icons/icon-plugin.js"},{"name":"umb:podcast","path":"icons/icon-podcast.js"},{"name":"umb:poker-chip","path":"icons/icon-poker-chip.js"},{"name":"umb:poll","path":"icons/icon-poll.js"},{"name":"umb:post-it","path":"icons/icon-post-it.js"},{"name":"umb:pound-bag","path":"icons/icon-pound-bag.js"},{"name":"umb:power-outlet","path":"icons/icon-power-outlet.js"},{"name":"umb:power","path":"icons/icon-power.js"},{"name":"umb:presentation","path":"icons/icon-presentation.js"},{"name":"umb:previous-media","path":"icons/icon-previous-media.js"},{"name":"umb:previous","path":"icons/icon-previous.js"},{"name":"umb:price-dollar","path":"icons/icon-price-dollar.js"},{"name":"umb:price-euro","path":"icons/icon-price-euro.js"},{"name":"umb:price-pound","path":"icons/icon-price-pound.js"},{"name":"umb:price-yen","path":"icons/icon-price-yen.js"},{"name":"umb:print","path":"icons/icon-print.js"},{"name":"umb:printer-alt","path":"icons/icon-printer-alt.js"},{"name":"umb:projector","path":"icons/icon-projector.js"},{"name":"umb:pulse","path":"icons/icon-pulse.js"},{"name":"umb:pushpin","path":"icons/icon-pushpin.js"},{"name":"umb:qr-code","path":"icons/icon-qr-code.js"},{"name":"umb:quote","path":"icons/icon-quote.js"},{"name":"umb:radio-alt","path":"icons/icon-radio-alt.js"},{"name":"umb:radio-receiver","path":"icons/icon-radio-receiver.js"},{"name":"umb:radio","path":"icons/icon-radio.js"},{"name":"umb:rain","path":"icons/icon-rain.js"},{"name":"umb:rate","path":"icons/icon-rate.js"},{"name":"umb:re-post","path":"icons/icon-re-post.js"},{"name":"umb:readonly","path":"icons/icon-readonly.js"},{"name":"umb:receipt-alt","path":"icons/icon-receipt-alt.js"},{"name":"umb:receipt-dollar","path":"icons/icon-receipt-dollar.js"},{"name":"umb:receipt-euro","path":"icons/icon-receipt-euro.js"},{"name":"umb:receipt-pound","path":"icons/icon-receipt-pound.js"},{"name":"umb:receipt-yen","path":"icons/icon-receipt-yen.js"},{"name":"umb:reception","path":"icons/icon-reception.js"},{"name":"umb:record","path":"icons/icon-record.js"},{"name":"umb:redo","path":"icons/icon-redo.js"},{"name":"umb:refresh","path":"icons/icon-refresh.js"},{"name":"umb:remote","path":"icons/icon-remote.js"},{"name":"umb:remove","path":"icons/icon-remove.js"},{"name":"umb:repeat-one","path":"icons/icon-repeat-one.js"},{"name":"umb:repeat","path":"icons/icon-repeat.js"},{"name":"umb:reply-arrow","path":"icons/icon-reply-arrow.js"},{"name":"umb:resize","path":"icons/icon-resize.js"},{"name":"umb:return-to-top","path":"icons/icon-return-to-top.js"},{"name":"umb:right-double-arrow","path":"icons/icon-right-double-arrow.js"},{"name":"umb:road","path":"icons/icon-road.js"},{"name":"umb:roadsign","path":"icons/icon-roadsign.js"},{"name":"umb:rocket","path":"icons/icon-rocket.js"},{"name":"umb:rss","path":"icons/icon-rss.js"},{"name":"umb:ruler-alt","path":"icons/icon-ruler-alt.js"},{"name":"umb:ruler","path":"icons/icon-ruler.js"},{"name":"umb:safe","path":"icons/icon-safe.js"},{"name":"umb:safedial","path":"icons/icon-safedial.js"},{"name":"umb:sandbox-toys","path":"icons/icon-sandbox-toys.js"},{"name":"umb:satellite-dish","path":"icons/icon-satellite-dish.js"},{"name":"umb:save","path":"icons/icon-save.js"},{"name":"umb:scan","path":"icons/icon-scan.js"},{"name":"umb:school","path":"icons/icon-school.js"},{"name":"umb:screensharing","path":"icons/icon-screensharing.js"},{"name":"umb:script-alt","path":"icons/icon-script-alt.js"},{"name":"umb:script","path":"icons/icon-script.js"},{"name":"umb:scull","path":"icons/icon-scull.js"},{"name":"umb:search","path":"icons/icon-search.js"},{"name":"umb:security-camera","path":"icons/icon-security-camera.js"},{"name":"umb:sensor","path":"icons/icon-sensor.js"},{"name":"umb:server-alt","path":"icons/icon-server-alt.js"},{"name":"umb:server","path":"icons/icon-server.js"},{"name":"umb:settings-alt-2","path":"icons/icon-settings-alt-2.js"},{"name":"umb:settings-alt","path":"icons/icon-settings-alt.js"},{"name":"umb:settings","path":"icons/icon-settings.js"},{"name":"umb:share-alt-2","path":"icons/icon-share-alt-2.js"},{"name":"umb:share-alt","path":"icons/icon-share-alt.js"},{"name":"umb:share","path":"icons/icon-share.js"},{"name":"umb:sharing-iphone","path":"icons/icon-sharing-iphone.js"},{"name":"umb:shield","path":"icons/icon-shield.js"},{"name":"umb:shift","path":"icons/icon-shift.js"},{"name":"umb:shipping-box","path":"icons/icon-shipping-box.js"},{"name":"umb:shipping","path":"icons/icon-shipping.js"},{"name":"umb:shoe","path":"icons/icon-shoe.js"},{"name":"umb:shopping-basket-alt-2","path":"icons/icon-shopping-basket-alt-2.js"},{"name":"umb:shopping-basket-alt","path":"icons/icon-shopping-basket-alt.js"},{"name":"umb:shopping-basket","path":"icons/icon-shopping-basket.js"},{"name":"umb:shorts","path":"icons/icon-shorts.js"},{"name":"umb:shuffle","path":"icons/icon-shuffle.js"},{"name":"umb:sience","path":"icons/icon-sience.js"},{"name":"umb:simcard","path":"icons/icon-simcard.js"},{"name":"umb:single-note","path":"icons/icon-single-note.js"},{"name":"umb:sitemap","path":"icons/icon-sitemap.js"},{"name":"umb:sleep","path":"icons/icon-sleep.js"},{"name":"umb:slideshow","path":"icons/icon-slideshow.js"},{"name":"umb:smiley-inverted","path":"icons/icon-smiley-inverted.js"},{"name":"umb:smiley","path":"icons/icon-smiley.js"},{"name":"umb:snow","path":"icons/icon-snow.js"},{"name":"umb:sound-low","path":"icons/icon-sound-low.js"},{"name":"umb:sound-medium","path":"icons/icon-sound-medium.js"},{"name":"umb:sound-off","path":"icons/icon-sound-off.js"},{"name":"umb:sound-waves","path":"icons/icon-sound-waves.js"},{"name":"umb:sound","path":"icons/icon-sound.js"},{"name":"umb:spades","path":"icons/icon-spades.js"},{"name":"umb:speaker","path":"icons/icon-speaker.js"},{"name":"umb:speed-gauge","path":"icons/icon-speed-gauge.js"},{"name":"umb:split-alt","path":"icons/icon-split-alt.js"},{"name":"umb:split","path":"icons/icon-split.js"},{"name":"umb:sprout","path":"icons/icon-sprout.js"},{"name":"umb:squiggly-line","path":"icons/icon-squiggly-line.js"},{"name":"umb:ssd","path":"icons/icon-ssd.js"},{"name":"umb:stacked-disks","path":"icons/icon-stacked-disks.js"},{"name":"umb:stamp","path":"icons/icon-stamp.js"},{"name":"umb:stop-alt","path":"icons/icon-stop-alt.js"},{"name":"umb:stop-hand","path":"icons/icon-stop-hand.js"},{"name":"umb:stop","path":"icons/icon-stop.js"},{"name":"umb:store","path":"icons/icon-store.js"},{"name":"umb:stream","path":"icons/icon-stream.js"},{"name":"umb:sunny","path":"icons/icon-sunny.js"},{"name":"umb:sweatshirt","path":"icons/icon-sweatshirt.js"},{"name":"umb:sync","path":"icons/icon-sync.js"},{"name":"umb:t-shirt","path":"icons/icon-t-shirt.js"},{"name":"umb:tab-key","path":"icons/icon-tab-key.js"},{"name":"umb:tab","path":"icons/icon-tab.js"},{"name":"umb:tactics","path":"icons/icon-tactics.js"},{"name":"umb:tag","path":"icons/icon-tag.js"},{"name":"umb:tags","path":"icons/icon-tags.js"},{"name":"umb:takeaway-cup","path":"icons/icon-takeaway-cup.js"},{"name":"umb:target","path":"icons/icon-target.js"},{"name":"umb:temperatrure-alt","path":"icons/icon-temperatrure-alt.js"},{"name":"umb:temperature","path":"icons/icon-temperature.js"},{"name":"umb:terminal","path":"icons/icon-terminal.js"},{"name":"umb:theater","path":"icons/icon-theater.js"},{"name":"umb:theif","path":"icons/icon-theif.js"},{"name":"umb:thought-bubble","path":"icons/icon-thought-bubble.js"},{"name":"umb:thumb-down","path":"icons/icon-thumb-down.js"},{"name":"umb:thumb-up","path":"icons/icon-thumb-up.js"},{"name":"umb:thumbnail-list","path":"icons/icon-thumbnail-list.js"},{"name":"umb:thumbnails-small","path":"icons/icon-thumbnails-small.js"},{"name":"umb:thumbnails","path":"icons/icon-thumbnails.js"},{"name":"umb:ticket","path":"icons/icon-ticket.js"},{"name":"umb:time","path":"icons/icon-time.js"},{"name":"umb:timer","path":"icons/icon-timer.js"},{"name":"umb:tools","path":"icons/icon-tools.js"},{"name":"umb:top","path":"icons/icon-top.js"},{"name":"umb:traffic-alt","path":"icons/icon-traffic-alt.js"},{"name":"umb:trafic","path":"icons/icon-trafic.js"},{"name":"umb:train","path":"icons/icon-train.js"},{"name":"umb:trash-alt-2","path":"icons/icon-trash-alt-2.js"},{"name":"umb:trash-alt","path":"icons/icon-trash-alt.js"},{"name":"umb:trash","path":"icons/icon-trash.js"},{"name":"umb:tree","path":"icons/icon-tree.js"},{"name":"umb:trophy","path":"icons/icon-trophy.js"},{"name":"umb:truck","path":"icons/icon-truck.js"},{"name":"umb:tv-old","path":"icons/icon-tv-old.js"},{"name":"umb:tv","path":"icons/icon-tv.js"},{"name":"umb:umb-content","path":"icons/icon-umb-content.js"},{"name":"umb:umb-contour","path":"icons/icon-umb-contour.js"},{"name":"umb:umb-deploy","path":"icons/icon-umb-deploy.js"},{"name":"umb:umb-developer","path":"icons/icon-umb-developer.js"},{"name":"umb:umb-media","path":"icons/icon-umb-media.js"},{"name":"umb:umb-members","path":"icons/icon-umb-members.js"},{"name":"umb:umb-settings","path":"icons/icon-umb-settings.js"},{"name":"umb:umb-users","path":"icons/icon-umb-users.js"},{"name":"umb:umbraco","path":"icons/icon-umbraco.js"},{"name":"umb:umbrella","path":"icons/icon-umbrella.js"},{"name":"umb:undo","path":"icons/icon-undo.js"},{"name":"umb:universal","path":"icons/icon-universal.js"},{"name":"umb:unlocked","path":"icons/icon-unlocked.js"},{"name":"umb:untitled","path":"icons/icon-untitled.js"},{"name":"umb:usb-connector","path":"icons/icon-usb-connector.js"},{"name":"umb:usb","path":"icons/icon-usb.js"},{"name":"umb:user-female","path":"icons/icon-user-female.js"},{"name":"umb:user-females-alt","path":"icons/icon-user-females-alt.js"},{"name":"umb:user-females","path":"icons/icon-user-females.js"},{"name":"umb:user-glasses","path":"icons/icon-user-glasses.js"},{"name":"umb:user","path":"icons/icon-user.js"},{"name":"umb:users-alt","path":"icons/icon-users-alt.js"},{"name":"umb:users","path":"icons/icon-users.js"},{"name":"umb:utilities","path":"icons/icon-utilities.js"},{"name":"umb:vcard","path":"icons/icon-vcard.js"},{"name":"umb:video","path":"icons/icon-video.js"},{"name":"umb:voice","path":"icons/icon-voice.js"},{"name":"umb:wall-plug","path":"icons/icon-wall-plug.js"},{"name":"umb:wallet","path":"icons/icon-wallet.js"},{"name":"umb:wand","path":"icons/icon-wand.js"},{"name":"umb:war","path":"icons/icon-war.js"},{"name":"umb:weight","path":"icons/icon-weight.js"},{"name":"umb:width","path":"icons/icon-width.js"},{"name":"umb:wifi","path":"icons/icon-wifi.js"},{"name":"umb:window-popin","path":"icons/icon-window-popin.js"},{"name":"umb:window-sizes","path":"icons/icon-window-sizes.js"},{"name":"umb:windows","path":"icons/icon-windows.js"},{"name":"umb:wine-glass","path":"icons/icon-wine-glass.js"},{"name":"umb:wrench","path":"icons/icon-wrench.js"},{"name":"umb:wrong","path":"icons/icon-wrong.js"},{"name":"umb:yen-bag","path":"icons/icon-yen-bag.js"},{"name":"umb:zip","path":"icons/icon-zip.js"},{"name":"umb:zom-out","path":"icons/icon-zom-out.js"},{"name":"umb:zoom-in","path":"icons/icon-zoom-in.js"}] \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/rollup-libs.config.js b/src/Umbraco.Web.UI.Client/rollup-libs.config.js deleted file mode 100644 index 18f16539aa..0000000000 --- a/src/Umbraco.Web.UI.Client/rollup-libs.config.js +++ /dev/null @@ -1,33 +0,0 @@ -import esbuild from 'rollup-plugin-esbuild'; -import pluginJson from '@rollup/plugin-json'; -import { nodeResolve } from '@rollup/plugin-node-resolve'; -import dts from 'rollup-plugin-dts'; -import { readdirSync, lstatSync } from 'fs'; - -const libs = readdirSync('./libs').filter(lib => lstatSync(`libs/${lib}`).isDirectory()); -const outputDir = './dist/libs'; - -export default libs.map(lib => { - /** @type {import('rollup').RollupOptions[]} */ - return [ - { - input: `./libs/${lib}/index.ts`, - external: [/^@umbraco-cms\//], - output: { - file: `${outputDir}/${lib}.js`, - format: 'es', - sourcemap: true, - }, - plugins: [nodeResolve(), pluginJson(), esbuild()] - }, - { - input: `./libs/${lib}/index.ts`, - external: [/^@umbraco/, /^lit/, /^rxjs/, /^uuid/], - output: { - file: `${outputDir}/${lib}.d.ts`, - format: 'es' - }, - plugins: [dts({ respectExternal: true })], - } - ]; -}).flat(); diff --git a/src/Umbraco.Web.UI.Client/router-slot-2.0.0.tgz b/src/Umbraco.Web.UI.Client/router-slot-2.0.0.tgz deleted file mode 100644 index e2e34160de..0000000000 Binary files a/src/Umbraco.Web.UI.Client/router-slot-2.0.0.tgz and /dev/null differ diff --git a/src/Umbraco.Web.UI.Client/router-slot-2.2.0.tgz b/src/Umbraco.Web.UI.Client/router-slot-2.2.0.tgz new file mode 100644 index 0000000000..dac0dca447 Binary files /dev/null and b/src/Umbraco.Web.UI.Client/router-slot-2.2.0.tgz differ diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app-error.element.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app-error.element.ts index 4d88ad36a8..0b3391ba90 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app-error.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app-error.element.ts @@ -1,10 +1,6 @@ -import { css, html, nothing, unsafeCSS } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { css, html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import type { ProblemDetailsModel } from '@umbraco-cms/backoffice/backend-api'; - -import logoImg from '/umbraco_logomark_white.svg'; -import backgroundImg from '/umbraco_background.jpg'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; /** * A full page error element that can be used either solo or for instance as the error 500 page and BootFailed @@ -61,7 +57,7 @@ export class UmbAppErrorElement extends UmbLitElement {
@@ -87,7 +83,7 @@ export class UmbAppErrorElement extends UmbLitElement { background-position: 50%; background-repeat: no-repeat; background-size: cover; - background-image: url('${unsafeCSS(backgroundImg)}'); + background-image: url('/umbraco/backoffice/assets/umbraco_background.jpg'); width: 100vw; height: 100vh; } diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app.context.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app.context.ts index 4e37c346e0..42e314745d 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app.context.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app.context.ts @@ -1,4 +1,4 @@ -import { UmbAppContextConfig } from './app-context-config.interface'; +import { UmbAppContextConfig } from './app-context-config.interface.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export class UmbAppContext { diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts index a63df15c3e..ed09065f09 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts @@ -1,20 +1,12 @@ -import '@umbraco-ui/uui-css/dist/uui-css.css'; -import 'element-internals-polyfill'; - -import '../../shared/router/router-slot.element'; -import '../../shared/router/variant-router-slot.element'; - -import { UUIIconRegistryEssential } from '@umbraco-ui/uui'; -import { css, html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; - -import { UmbIconRegistry } from '../../shared/icon-registry/icon.registry'; -import type { UmbAppErrorElement } from './app-error.element'; -import { UmbAuthFlow } from './auth/auth-flow'; -import { UMB_APP, UmbAppContext } from './app.context'; +import type { UmbAppErrorElement } from './app-error.element.js'; +import { UmbAuthFlow } from './auth/index.js'; +import { UMB_APP, UmbAppContext } from './app.context.js'; +import { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUIIconRegistryEssential } from '@umbraco-cms/backoffice/external/uui'; +import { UmbIconRegistry } from '@umbraco-cms/backoffice/icon'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { Guard, UmbRoute } from '@umbraco-cms/backoffice/router'; import { pathWithoutBasePath } from '@umbraco-cms/backoffice/router'; -import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { tryExecute } from '@umbraco-cms/backoffice/resources'; import { OpenAPI, RuntimeLevelModel, ServerResource } from '@umbraco-cms/backoffice/backend-api'; import { contextData, umbDebugContextEventType } from '@umbraco-cms/backoffice/context-api'; @@ -50,16 +42,16 @@ export class UmbAppElement extends UmbLitElement { private _routes: UmbRoute[] = [ { path: 'install', - component: () => import('../installer/installer.element'), + component: () => import('../installer/installer.element.js'), }, { path: 'upgrade', - component: () => import('../upgrader/upgrader.element'), + component: () => import('../upgrader/upgrader.element.js'), guards: [this.#isAuthorizedGuard()], }, { path: '**', - component: () => import('../backoffice/backoffice.element'), + component: () => import('../backoffice/backoffice.element.js'), guards: [this.#isAuthorizedGuard()], }, ]; @@ -224,7 +216,7 @@ export class UmbAppElement extends UmbLitElement { this._routes = [ { path: '**', - component: () => import('./app-error.element'), + component: () => import('./app-error.element.js'), setup: (component) => { (component as UmbAppErrorElement).errorMessage = errorMsg; (component as UmbAppErrorElement).error = error; diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/auth/auth-flow.ts b/src/Umbraco.Web.UI.Client/src/apps/app/auth/auth-flow.ts index 3ba33d0c15..191a61aafa 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/auth/auth-flow.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/auth/auth-flow.ts @@ -19,17 +19,16 @@ import { FetchRequestor, LocalStorageBackend, RedirectRequestHandler, -} from '@openid/appauth'; -import { AuthorizationRequest } from '@openid/appauth/built/authorization_request'; -import { AuthorizationNotifier } from '@openid/appauth/built/authorization_request_handler'; -import { AuthorizationServiceConfiguration } from '@openid/appauth/built/authorization_service_configuration'; -import { + AuthorizationRequest, + AuthorizationNotifier, + AuthorizationServiceConfiguration, GRANT_TYPE_AUTHORIZATION_CODE, GRANT_TYPE_REFRESH_TOKEN, TokenRequest, -} from '@openid/appauth/built/token_request'; -import { TokenResponse } from '@openid/appauth/built/token_response'; -import { LocationLike, StringMap } from '@openid/appauth/built/types'; + TokenResponse, + LocationLike, + StringMap, +} from '@umbraco-cms/backoffice/external/openid'; const requestor = new FetchRequestor(); diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/auth/index.ts b/src/Umbraco.Web.UI.Client/src/apps/app/auth/index.ts new file mode 100644 index 0000000000..16f8c38e67 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/apps/app/auth/index.ts @@ -0,0 +1 @@ +export * from './auth-flow.js'; diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/index.ts b/src/Umbraco.Web.UI.Client/src/apps/app/index.ts new file mode 100644 index 0000000000..8eb4f65238 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/apps/app/index.ts @@ -0,0 +1,4 @@ +export * from './app-context-config.interface.js'; +export * from './app-error.element.js'; +export * from './app.context.js'; +export * from './app.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.element.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.element.ts index 81eb38f469..1c9be757c1 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.element.ts @@ -1,34 +1,39 @@ -import { defineElement } from '@umbraco-ui/uui-base/lib/registration'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { UmbExtensionInitializer } from '../../packages/packages/repository/server-extension.controller'; -import { UmbBackofficeContext, UMB_BACKOFFICE_CONTEXT_TOKEN } from './backoffice.context'; -import { UmbEntryPointExtensionInitializer } from '@umbraco-cms/backoffice/extension-api'; +import { UmbExtensionInitializer } from './extension.controller.js'; +import { UmbBackofficeContext, UMB_BACKOFFICE_CONTEXT_TOKEN } from './backoffice.context.js'; +import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import { UmbEntryPointExtensionInitializer } from '@umbraco-cms/backoffice/extension-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import './components/index.js'; + +// TODO: temp solution to load core packages const CORE_PACKAGES = [ - import('../../packages/core/umbraco-package'), - import('../../packages/settings/umbraco-package'), - import('../../packages/documents/umbraco-package'), - import('../../packages/media/umbraco-package'), - import('../../packages/members/umbraco-package'), - import('../../packages/translation/umbraco-package'), - import('../../packages/users/umbraco-package'), - import('../../packages/packages/umbraco-package'), - import('../../packages/search/umbraco-package'), - import('../../packages/templating/umbraco-package'), - import('../../packages/umbraco-news/umbraco-package'), - import('../../packages/tags/umbraco-package'), + import('../../packages/core/umbraco-package.js'), + import('../../packages/settings/umbraco-package.js'), + import('../../packages/documents/umbraco-package.js'), + import('../../packages/media/umbraco-package.js'), + import('../../packages/members/umbraco-package.js'), + import('../../packages/translation/umbraco-package.js'), + import('../../packages/users/umbraco-package.js'), + import('../../packages/packages/umbraco-package.js'), + import('../../packages/search/umbraco-package.js'), + import('../../packages/templating/umbraco-package.js'), + import('../../packages/umbraco-news/umbraco-package.js'), + import('../../packages/tags/umbraco-package.js'), ]; -@defineElement('umb-backoffice') +@customElement('umb-backoffice') export class UmbBackofficeElement extends UmbLitElement { + #extensionInitializer = new UmbExtensionInitializer(this, umbExtensionsRegistry); + constructor() { super(); this.provideContext(UMB_BACKOFFICE_CONTEXT_TOKEN, new UmbBackofficeContext()); new UmbEntryPointExtensionInitializer(this, umbExtensionsRegistry); - new UmbExtensionInitializer(this, umbExtensionsRegistry, CORE_PACKAGES); + new UmbExtensionInitializer(this, umbExtensionsRegistry); + this.#extensionInitializer.setLocalPackages(CORE_PACKAGES); } render() { diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.stories.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.stories.ts index 3fd59b80df..480b8cb7eb 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbBackofficeElement } from './backoffice.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbBackofficeElement } from './backoffice.element'; -import './backoffice.element'; +import './backoffice.element.js'; export default { title: 'Apps/Backoffice', diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header-apps.element.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header-apps.element.ts index b3b4bc7871..248f0b1da1 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header-apps.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header-apps.element.ts @@ -1,17 +1,12 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, CSSResultGroup, html, LitElement } from 'lit'; -import { customElement } from 'lit/decorators.js'; +import { css, CSSResultGroup, html, LitElement, customElement } from '@umbraco-cms/backoffice/external/lit'; @customElement('umb-backoffice-header-apps') export class UmbBackofficeHeaderAppsElement extends LitElement { - - render() { return html` `; } - + static styles: CSSResultGroup = [ - UUITextStyles, css` #apps { display: flex; diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header-sections.element.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header-sections.element.ts index 88e14b10a5..8a436f0d2c 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header-sections.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header-sections.element.ts @@ -1,9 +1,6 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, CSSResultGroup, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { when } from 'lit/directives/when.js'; -import { UMB_BACKOFFICE_CONTEXT_TOKEN } from '../backoffice.context'; -import type { UmbBackofficeContext } from '../backoffice.context'; +import { UMB_BACKOFFICE_CONTEXT_TOKEN } from '../backoffice.context.js'; +import type { UmbBackofficeContext } from '../backoffice.context.js'; +import { css, CSSResultGroup, html, when, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { ManifestSection } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -117,7 +114,6 @@ export class UmbBackofficeHeaderSectionsElement extends UmbLitElement { } static styles: CSSResultGroup = [ - UUITextStyles, css` #tabs { color: var(--uui-color-header-contrast); diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header.element.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header.element.ts index 9309244edf..d8f77e99ce 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header.element.ts @@ -1,11 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, CSSResultGroup, html } from 'lit'; -import { customElement } from 'lit/decorators.js'; +import { css, CSSResultGroup, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import logoImg from '/umbraco_logomark_white.svg'; - -import './backoffice-header-sections.element'; -import './backoffice-header-apps.element'; @customElement('umb-backoffice-header') export class UmbBackofficeHeaderElement extends UmbLitElement { @@ -13,7 +7,7 @@ export class UmbBackofficeHeaderElement extends UmbLitElement { return html`
@@ -23,7 +17,6 @@ export class UmbBackofficeHeaderElement extends UmbLitElement { } static styles: CSSResultGroup = [ - UUITextStyles, css` :host { width: 100%; diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts index 8f857de0e7..9ca94ec50b 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts @@ -1,19 +1,15 @@ -import { defineElement } from '@umbraco-ui/uui-base/lib/registration'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { state } from 'lit/decorators.js'; -import { UmbBackofficeContext, UMB_BACKOFFICE_CONTEXT_TOKEN } from '../backoffice.context'; +import { UmbBackofficeContext, UMB_BACKOFFICE_CONTEXT_TOKEN } from '../backoffice.context.js'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbSectionContext, UMB_SECTION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/section'; -import type { UmbRoute } from '@umbraco-cms/backoffice/router'; -import type { UmbRouterSlotChangeEvent } from '@umbraco-cms/internal/router'; +import type { UmbRoute, UmbRouterSlotChangeEvent } from '@umbraco-cms/backoffice/router'; import type { ManifestSection, UmbSectionExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; -import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { createExtensionElementOrFallback } from '@umbraco-cms/backoffice/extension-api'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -@defineElement('umb-backoffice-main') +@customElement('umb-backoffice-main') export class UmbBackofficeMainElement extends UmbLitElement { @state() - private _routes: Array = []; + private _routes: Array = []; @state() private _sections: Array = []; @@ -47,21 +43,31 @@ export class UmbBackofficeMainElement extends UmbLitElement { private _createRoutes() { if (!this._sections) return; - this._routes = []; + // TODO: Refactor this for re-use across the app where the routes are re-generated at any time. + // TODO: remove section-routes that does not exist anymore. this._routes = this._sections.map((section) => { - return { - path: this._routePrefix + section.meta.pathname, - component: () => createExtensionElementOrFallback(section, 'umb-section-default'), - setup: (component) => { - (component as UmbSectionExtensionElement).manifest = section; - }, - }; + const existingRoute = this._routes.find((r) => r.alias === section.alias); + if (existingRoute) { + return existingRoute; + } else { + return { + alias: section.alias, + path: this._routePrefix + section.meta.pathname, + component: () => createExtensionElementOrFallback(section, 'umb-section-default'), + setup: (component) => { + (component as UmbSectionExtensionElement).manifest = section; + }, + }; + } }); - this._routes.push({ - path: '**', - redirectTo: this._routePrefix + this._sections?.[0]?.meta.pathname, - }); + if (this._sections.length > 0) { + this._routes.push({ + alias: '__redirect', + path: '/', + redirectTo: 'section/content', + }); + } } private _onRouteChange = (event: UmbRouterSlotChangeEvent) => { @@ -82,11 +88,12 @@ export class UmbBackofficeMainElement extends UmbLitElement { } render() { - return html` `; + return this._routes.length > 0 + ? html`` + : ''; } static styles = [ - UUITextStyles, css` :host { background-color: var(--uui-color-background); diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/index.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/index.ts new file mode 100644 index 0000000000..267e575ab9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/index.ts @@ -0,0 +1,4 @@ +export * from './backoffice-header-apps.element.js'; +export * from './backoffice-header-sections.element.js'; +export * from './backoffice-header.element.js'; +export * from './backoffice-main.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/extension.controller.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/extension.controller.ts new file mode 100644 index 0000000000..95611d9782 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/extension.controller.ts @@ -0,0 +1,85 @@ +import { Subject } from '@umbraco-cms/backoffice/external/rxjs'; +import { PackageResource, OpenAPI } from '@umbraco-cms/backoffice/backend-api'; +import { UmbController, UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UmbBackofficeExtensionRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; +import { ManifestBase, isManifestJSType } from '@umbraco-cms/backoffice/extension-api'; + +export class UmbExtensionInitializer extends UmbController { + host: UmbControllerHostElement; + #extensionRegistry: UmbBackofficeExtensionRegistry; + #unobserve = new Subject(); + #localPackages: Array> = []; + #apiBaseUrl = OpenAPI.BASE; + + constructor(host: UmbControllerHostElement, extensionRegistry: UmbBackofficeExtensionRegistry) { + super(host, UmbExtensionInitializer.name); + this.host = host; + this.#extensionRegistry = extensionRegistry; + } + + setLocalPackages(localPackages: Array>) { + this.#localPackages = localPackages; + this.#loadLocalPackages(); + } + + hostConnected(): void { + this.#loadServerPackages(); + } + + hostDisconnected(): void { + this.#unobserve.next(); + this.#unobserve.complete(); + } + + async #loadLocalPackages() { + this.#localPackages.forEach(async (packageImport) => { + const packageModule = await packageImport; + this.#extensionRegistry.registerMany(packageModule.extensions); + }); + } + + async #loadServerPackages() { + /* TODO: we need a new endpoint here, to remove the dependency on the package repository, to get the modules available for the backoffice scope + / we will need a similar endpoint for the login, installer etc at some point. + We should expose more information about the packages when not authorized so the end point should only return a list of modules from the manifest with + with the correct scope. + + This code is copy pasted from the package repository. We probably don't need this is the package repository anymore. + */ + const { data: packages } = await tryExecuteAndNotify(this.host, PackageResource.getPackageManifest()); + + if (packages) { + // Append packages to the store but only if they have a name + //store.appendItems(packages.filter((p) => p.name?.length)); + const extensions: ManifestBase[] = []; + + packages.forEach((p) => { + p.extensions?.forEach((e) => { + // Crudely validate that the extension at least follows a basic manifest structure + // Idea: Use `Zod` to validate the manifest + if (this.isManifestBase(e)) { + /** + * Crude check to see if extension is of type "js" since it is safe to assume we do not + * need to load any other types of extensions in the backoffice (we need a js file to load) + */ + if (isManifestJSType(e)) { + // Add API base url if the js path is relative + if (!e.js.startsWith('http')) { + e.js = `${this.#apiBaseUrl}${e.js}`; + } + } + + extensions.push(e); + } + }); + }); + + this.#extensionRegistry.registerMany(extensions); + } + } + + private isManifestBase(x: unknown): x is ManifestBase { + return typeof x === 'object' && x !== null && 'alias' in x; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/index.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/index.ts new file mode 100644 index 0000000000..7defb5a8df --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/index.ts @@ -0,0 +1,3 @@ +export * from './components/index.js'; +export * from './backoffice.context.js'; +export * from './backoffice.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-consent.element.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-consent.element.ts index 93218628b3..5d81d1b77b 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-consent.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-consent.element.ts @@ -1,8 +1,6 @@ -import { css, CSSResultGroup, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { unsafeHTML } from 'lit/directives/unsafe-html.js'; +import { UmbInstallerContext, UMB_INSTALLER_CONTEXT_TOKEN } from '../installer.context.js'; +import { css, CSSResultGroup, html, customElement, state, unsafeHTML } from '@umbraco-cms/backoffice/external/lit'; -import { UmbInstallerContext, UMB_INSTALLER_CONTEXT_TOKEN } from '../installer.context'; import { ConsentLevelPresentationModel, TelemetryResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-consent.stories.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-consent.stories.ts index df99ad1c6c..4ef5d96528 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-consent.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-consent.stories.ts @@ -1,9 +1,9 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; -import { installerContextProvider } from '../shared/utils.story-helpers'; -import type { UmbInstallerConsentElement } from './installer-consent.element'; -import './installer-consent.element'; +import { installerContextProvider } from '../shared/utils.story-helpers.js'; +import type { UmbInstallerConsentElement } from './installer-consent.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; +import './installer-consent.element.js'; export default { title: 'Apps/Installer/Steps', diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-content.test.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-content.test.ts index 00690dfceb..49b15a2982 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-content.test.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-content.test.ts @@ -1,6 +1,6 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbInstallerConsentElement } from './installer-consent.element'; +import { UmbInstallerConsentElement } from './installer-consent.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; // TODO: Write tests diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.element.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.element.ts index 7b250a7962..d8a55435a2 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.element.ts @@ -1,8 +1,16 @@ -import { UUIButtonElement } from '@umbraco-ui/uui'; -import { css, CSSResultGroup, html, nothing } from 'lit'; -import { customElement, property, query, state } from 'lit/decorators.js'; +import { UmbInstallerContext, UMB_INSTALLER_CONTEXT_TOKEN } from '../installer.context.js'; +import { UUIButtonElement } from '@umbraco-cms/backoffice/external/uui'; +import { + css, + CSSResultGroup, + html, + nothing, + customElement, + property, + query, + state, +} from '@umbraco-cms/backoffice/external/lit'; -import { UmbInstallerContext, UMB_INSTALLER_CONTEXT_TOKEN } from '../installer.context'; import { ApiError, DatabaseInstallResponseModel, @@ -49,8 +57,24 @@ export class UmbInstallerDatabaseElement extends UmbLitElement { if (!this._installerContext) return; this.observe(this._installerContext.settings, (settings) => { + this._databases = settings?.databases ?? []; + // Sort the databases array if not empty and by sortOrder if it exists + if (this._databases.length > 0) { + const databasesCopy = [...this._databases]; + databasesCopy.sort((a, b) => { + if (a.sortOrder === undefined) { + return -1; + } + if (b.sortOrder === undefined) { + return 1; + } + return a.sortOrder - b.sortOrder; + }); + this._databases = databasesCopy; + } + // If there is an isConfigured database in the databases array then we can skip the database selection step // and just use that. this._preConfiguredDatabase = this._databases.find((x) => x.isConfigured); diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.stories.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.stories.ts index 3ff8d5b80b..4602674161 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.stories.ts @@ -1,12 +1,12 @@ -import './installer-database.element'; +import './installer-database.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import { html } from '@umbraco-cms/backoffice/external/lit'; const { rest } = window.MockServiceWorker; -import { installerContextProvider } from '../shared/utils.story-helpers'; +import { installerContextProvider } from '../shared/utils.story-helpers.js'; -import type { UmbInstallerDatabaseElement } from './installer-database.element'; +import type { UmbInstallerDatabaseElement } from './installer-database.element.js'; import type { InstallSettingsResponseModel } from '@umbraco-cms/backoffice/backend-api'; export default { title: 'Apps/Installer/Steps', diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.test.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.test.ts index 7ca91a12e3..8b3ac910e3 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.test.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.test.ts @@ -1,6 +1,6 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbInstallerDatabaseElement } from './installer-database.element'; +import { UmbInstallerDatabaseElement } from './installer-database.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; // TODO: Write tests diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.element.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.element.ts index 7c2bb46da9..75556a5aae 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.element.ts @@ -1,7 +1,5 @@ -import { css, CSSResultGroup, html, nothing } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; - -import { UmbInstallerContext, UMB_INSTALLER_CONTEXT_TOKEN } from '../installer.context'; +import { UmbInstallerContext, UMB_INSTALLER_CONTEXT_TOKEN } from '../installer.context.js'; +import { css, CSSResultGroup, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { ProblemDetailsModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.stories.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.stories.ts index 8583f1ec65..b741f96946 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.stories.ts @@ -1,11 +1,11 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; -import { installerContextProvider } from '../shared/utils.story-helpers'; -import { UmbInstallerContext } from '../installer.context'; -import type { UmbInstallerErrorElement } from './installer-error.element'; +import { installerContextProvider } from '../shared/utils.story-helpers.js'; +import { UmbInstallerContext } from '../installer.context.js'; +import type { UmbInstallerErrorElement } from './installer-error.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import './installer-error.element'; +import './installer-error.element.js'; const error = { type: 'validation', diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.test.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.test.ts index 2c065ea671..869c5994e6 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.test.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.test.ts @@ -1,6 +1,6 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbInstallerErrorElement } from './installer-error.element'; +import { UmbInstallerErrorElement } from './installer-error.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; // TODO: Write tests diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/index.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/index.ts index e122f942da..22c8abc513 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/index.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/index.ts @@ -1,7 +1,7 @@ -export * from './consent/installer-consent.element'; -export * from './database/installer-database.element'; -export * from './installing/installer-installing.element'; -export * from './user/installer-user.element'; -export * from './error/installer-error.element'; -export * from './installer.element'; -export * from './shared/layout/installer-layout.element'; +export * from './consent/installer-consent.element.js'; +export * from './database/installer-database.element.js'; +export * from './installing/installer-installing.element.js'; +export * from './user/installer-user.element.js'; +export * from './error/installer-error.element.js'; +export * from './installer.element.js'; +export * from './shared/layout/installer-layout.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/installer.context.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/installer.context.ts index f86701d737..d81b13b572 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/installer.context.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/installer.context.ts @@ -1,4 +1,4 @@ -import { Observable } from 'rxjs'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import { InstallVResponseModel, InstallResource, diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/installer.element.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/installer.element.ts index f7ec3b3927..3f5642cc9f 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/installer.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/installer.element.ts @@ -1,14 +1,13 @@ -import { css, CSSResultGroup, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbInstallerContext, UMB_INSTALLER_CONTEXT_TOKEN } from './installer.context'; +import { UmbInstallerContext, UMB_INSTALLER_CONTEXT_TOKEN } from './installer.context.js'; +import { css, CSSResultGroup, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import './consent/installer-consent.element'; -import './database/installer-database.element'; -import './error/installer-error.element'; -import './installing/installer-installing.element'; -import './shared/layout/installer-layout.element'; -import './user/installer-user.element'; +import './consent/installer-consent.element.js'; +import './database/installer-database.element.js'; +import './error/installer-error.element.js'; +import './installing/installer-installing.element.js'; +import './shared/layout/installer-layout.element.js'; +import './user/installer-user.element.js'; @customElement('umb-installer') export class UmbInstallerElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/installer.stories.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/installer.stories.ts index ee6dcf05da..a98d286b81 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/installer.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/installer.stories.ts @@ -1,7 +1,7 @@ import { Meta } from '@storybook/web-components'; -import { html } from 'lit'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import '.'; +import './index.js'; export default { title: 'Apps/Installer', diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/installer.test.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/installer.test.ts index 26048e713f..f9d4ec231c 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/installer.test.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/installer.test.ts @@ -1,6 +1,6 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbInstallerElement } from './installer.element'; +import { UmbInstallerElement } from './installer.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; // TODO: Write tests diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/installing/installer-installing.element.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/installing/installer-installing.element.ts index 92a6236e3c..6f64b22b77 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/installing/installer-installing.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/installing/installer-installing.element.ts @@ -1,17 +1,14 @@ -import { css, CSSResultGroup, html, LitElement } from 'lit'; -import { customElement } from 'lit/decorators.js'; +import { css, CSSResultGroup, html, LitElement, customElement } from '@umbraco-cms/backoffice/external/lit'; @customElement('umb-installer-installing') export class UmbInstallerInstallingElement extends LitElement { - - render() { return html`

Installing Umbraco

`; } - + static styles: CSSResultGroup = [ css` h1 { diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/installing/installer-installing.stories.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/installing/installer-installing.stories.ts index 679d66ef66..84843b9b02 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/installing/installer-installing.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/installing/installer-installing.stories.ts @@ -1,9 +1,9 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; -import { installerContextProvider } from '../shared/utils.story-helpers'; -import type { UmbInstallerInstallingElement } from './installer-installing.element'; -import './installer-installing.element'; +import { installerContextProvider } from '../shared/utils.story-helpers.js'; +import type { UmbInstallerInstallingElement } from './installer-installing.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; +import './installer-installing.element.js'; export default { title: 'Apps/Installer/Steps', diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/installing/installer-installing.test.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/installing/installer-installing.test.ts index d4f81e7aed..52ef025868 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/installing/installer-installing.test.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/installing/installer-installing.test.ts @@ -1,6 +1,6 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbInstallerInstallingElement } from './installer-installing.element'; +import { UmbInstallerInstallingElement } from './installer-installing.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; // TODO: Write tests diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/shared/layout/installer-layout.element.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/shared/layout/installer-layout.element.ts index 55560242b9..bb636f3a4d 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/shared/layout/installer-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/shared/layout/installer-layout.element.ts @@ -1,18 +1,13 @@ -import { css, CSSResultGroup, html, LitElement, unsafeCSS } from 'lit'; -import { customElement } from 'lit/decorators.js'; -import logoImg from '/umbraco_logomark_white.svg'; -import installerImg from '/installer.jpg'; +import { css, CSSResultGroup, html, LitElement, customElement } from '@umbraco-cms/backoffice/external/lit'; @customElement('umb-installer-layout') export class UmbInstallerLayoutElement extends LitElement { - - render() { return html`
@@ -22,7 +17,7 @@ export class UmbInstallerLayoutElement extends LitElement {
`; } - + static styles: CSSResultGroup = [ css` #background { @@ -31,7 +26,7 @@ export class UmbInstallerLayoutElement extends LitElement { background-position: 50%; background-repeat: no-repeat; background-size: cover; - background-image: url('${unsafeCSS(installerImg)}'); + background-image: url('/umbraco/backoffice/assets/installer.jpg'); width: 100vw; height: 100vh; } diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/shared/layout/installer-layout.stories.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/shared/layout/installer-layout.stories.ts index e84aab175e..97c6b4d8b3 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/shared/layout/installer-layout.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/shared/layout/installer-layout.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbInstallerLayoutElement } from './installer-layout.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbInstallerLayoutElement } from './installer-layout.element'; -import './installer-layout.element'; +import './installer-layout.element.js'; export default { title: 'Apps/Installer/Shared', diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/shared/layout/installer-layout.test.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/shared/layout/installer-layout.test.ts index 20871d6deb..620b5d3228 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/shared/layout/installer-layout.test.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/shared/layout/installer-layout.test.ts @@ -1,6 +1,6 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbInstallerLayoutElement } from './installer-layout.element'; +import { UmbInstallerLayoutElement } from './installer-layout.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; // TODO: Write tests diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/shared/utils.story-helpers.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/shared/utils.story-helpers.ts index 2f8e50f6ca..cd4ff83ea0 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/shared/utils.story-helpers.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/shared/utils.story-helpers.ts @@ -1,5 +1,5 @@ -import { html } from 'lit'; -import { UmbInstallerContext } from '../installer.context'; +import { UmbInstallerContext } from '../installer.context.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; export const installerContextProvider = (story: any, installerContext = new UmbInstallerContext()) => html` { diff --git a/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader.element.ts b/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader.element.ts index 71d2ac4a84..7d7073d692 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader.element.ts @@ -1,12 +1,11 @@ -import '../installer/shared/layout/installer-layout.element'; -import './upgrader-view.element'; - -import { html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; +import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UpgradeResource, UpgradeSettingsResponseModel, ApiError } from '@umbraco-cms/backoffice/backend-api'; import { tryExecute } from '@umbraco-cms/backoffice/resources'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import '../installer/shared/layout/installer-layout.element.js'; +import './upgrader-view.element.js'; + /** * @element umb-upgrader */ diff --git a/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader.stories.ts b/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader.stories.ts index 5363224718..15591c70b8 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader.stories.ts @@ -1,9 +1,9 @@ -import './upgrader-view.element'; +import './upgrader-view.element.js'; import type { Meta, StoryObj } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbUpgraderViewElement } from './upgrader-view.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbUpgraderViewElement } from './upgrader-view.element'; export default { title: 'Apps/Upgrader/States', diff --git a/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader.test.ts b/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader.test.ts index 24561b45ac..ed1cf7a0a4 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader.test.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader.test.ts @@ -1,6 +1,6 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbUpgraderElement } from './upgrader.element'; +import { UmbUpgraderElement } from './upgrader.element.js'; describe('UmbUpgrader', () => { let element: UmbUpgraderElement; diff --git a/src/Umbraco.Web.UI.Client/public/favicon.svg b/src/Umbraco.Web.UI.Client/src/assets/favicon.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/public/favicon.svg rename to src/Umbraco.Web.UI.Client/src/assets/favicon.svg diff --git a/src/Umbraco.Web.UI.Client/public/installer.jpg b/src/Umbraco.Web.UI.Client/src/assets/installer.jpg similarity index 100% rename from src/Umbraco.Web.UI.Client/public/installer.jpg rename to src/Umbraco.Web.UI.Client/src/assets/installer.jpg diff --git a/src/Umbraco.Web.UI.Client/public/umbraco_background.jpg b/src/Umbraco.Web.UI.Client/src/assets/umbraco_background.jpg similarity index 100% rename from src/Umbraco.Web.UI.Client/public/umbraco_background.jpg rename to src/Umbraco.Web.UI.Client/src/assets/umbraco_background.jpg diff --git a/src/Umbraco.Web.UI.Client/src/assets/umbraco_logo_white.svg b/src/Umbraco.Web.UI.Client/src/assets/umbraco_logo_white.svg new file mode 100644 index 0000000000..3de8e82ed3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/assets/umbraco_logo_white.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/public/umbraco_logomark_white.svg b/src/Umbraco.Web.UI.Client/src/assets/umbraco_logomark_white.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/public/umbraco_logomark_white.svg rename to src/Umbraco.Web.UI.Client/src/assets/umbraco_logomark_white.svg diff --git a/src/Umbraco.Web.UI.Client/src/shared/css/custom-properties.css b/src/Umbraco.Web.UI.Client/src/css/umb-css.css similarity index 75% rename from src/Umbraco.Web.UI.Client/src/shared/css/custom-properties.css rename to src/Umbraco.Web.UI.Client/src/css/umb-css.css index f33b370e2d..ad748718e4 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/css/custom-properties.css +++ b/src/Umbraco.Web.UI.Client/src/css/umb-css.css @@ -2,4 +2,5 @@ --uui-color-positive: #1c874c; --umb-footer-layout-height: 54px; --umb-header-layout-height: 70px; + --umb-section-sidebar-width: 300px; } diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/index.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/index.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/index.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/core/ApiError.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/core/ApiError.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/core/ApiError.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/core/ApiError.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/core/ApiRequestOptions.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/core/ApiRequestOptions.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/core/ApiRequestOptions.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/core/ApiRequestOptions.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/core/ApiResult.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/core/ApiResult.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/core/ApiResult.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/core/ApiResult.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/core/CancelablePromise.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/core/CancelablePromise.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/core/CancelablePromise.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/core/CancelablePromise.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/core/OpenAPI.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/core/OpenAPI.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/core/OpenAPI.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/core/OpenAPI.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/core/request.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/core/request.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/core/request.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/core/request.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/index.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts similarity index 99% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/index.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts index 1206b6c1c5..30a7c34aea 100644 --- a/src/Umbraco.Web.UI.Client/libs/backend-api/src/index.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts @@ -189,6 +189,7 @@ export type { PropertyTypeAppearanceModel } from './models/PropertyTypeAppearanc export type { PropertyTypeContainerResponseModelBaseModel } from './models/PropertyTypeContainerResponseModelBaseModel'; export type { PropertyTypeResponseModelBaseModel } from './models/PropertyTypeResponseModelBaseModel'; export type { PropertyTypeValidationModel } from './models/PropertyTypeValidationModel'; +export { PublishedStateModel } from './models/PublishedStateModel'; export type { RecycleBinItemResponseModel } from './models/RecycleBinItemResponseModel'; export { RedirectStatusModel } from './models/RedirectStatusModel'; export type { RedirectUrlResponseModel } from './models/RedirectUrlResponseModel'; @@ -277,6 +278,7 @@ export { UserStateModel } from './models/UserStateModel'; export type { ValueModelBaseModel } from './models/ValueModelBaseModel'; export type { VariantModelBaseModel } from './models/VariantModelBaseModel'; export type { VariantResponseModelBaseModel } from './models/VariantResponseModelBaseModel'; +export type { VariantTreeItemModel } from './models/VariantTreeItemModel'; export type { VersionResponseModel } from './models/VersionResponseModel'; export { AuditLogResource } from './services/AuditLogResource'; diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/AuditLogBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/AuditLogBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/AuditLogResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/AuditLogResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/AuditLogWithUsernameResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogWithUsernameResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/AuditLogWithUsernameResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogWithUsernameResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/AuditTypeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditTypeModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/AuditTypeModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditTypeModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ChangePasswordUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ChangePasswordUserRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ChangePasswordUserRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ChangePasswordUserRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ConsentLevelPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ConsentLevelPresentationModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ConsentLevelPresentationModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ConsentLevelPresentationModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ContentResponseModelBaseDocumentValueModelDocumentVariantResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentResponseModelBaseDocumentValueModelDocumentVariantResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ContentResponseModelBaseDocumentValueModelDocumentVariantResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentResponseModelBaseDocumentValueModelDocumentVariantResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ContentStateModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentStateModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ContentStateModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentStateModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ContentTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTreeItemResponseModel.ts similarity index 94% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ContentTreeItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTreeItemResponseModel.ts index 630fb6ae84..af60ce61d5 100644 --- a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ContentTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTreeItemResponseModel.ts @@ -8,5 +8,6 @@ export type ContentTreeItemResponseModel = (EntityTreeItemResponseModel & { $type: string; noAccess?: boolean; isTrashed?: boolean; + id?: string; }); diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ContentTypeCleanupModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCleanupModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ContentTypeCleanupModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCleanupModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ContentTypeCompositionModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ContentTypeCompositionModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ContentTypeCompositionTypeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionTypeModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ContentTypeCompositionTypeModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionTypeModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ContentTypeResponseModelBaseDocumentTypePropertyTypeResponseModelDocumentTypePropertyTypeContainerResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeResponseModelBaseDocumentTypePropertyTypeResponseModelDocumentTypePropertyTypeContainerResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ContentTypeResponseModelBaseDocumentTypePropertyTypeResponseModelDocumentTypePropertyTypeContainerResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeResponseModelBaseDocumentTypePropertyTypeResponseModelDocumentTypePropertyTypeContainerResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ContentTypeResponseModelBaseMediaTypePropertyTypeResponseModelMediaTypePropertyTypeContainerResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeResponseModelBaseMediaTypePropertyTypeResponseModelMediaTypePropertyTypeContainerResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ContentTypeResponseModelBaseMediaTypePropertyTypeResponseModelMediaTypePropertyTypeContainerResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeResponseModelBaseMediaTypePropertyTypeResponseModelMediaTypePropertyTypeContainerResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ContentTypeSortModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeSortModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ContentTypeSortModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeSortModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ContentUrlInfoModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentUrlInfoModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ContentUrlInfoModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentUrlInfoModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CopyDataTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDataTypeRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CopyDataTypeRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDataTypeRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CopyDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CopyDocumentRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateContentRequestModelBaseDocumentValueModelDocumentVariantRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentRequestModelBaseDocumentValueModelDocumentVariantRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateContentRequestModelBaseDocumentValueModelDocumentVariantRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentRequestModelBaseDocumentValueModelDocumentVariantRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateContentRequestModelBaseMediaValueModelMediaVariantRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentRequestModelBaseMediaValueModelMediaVariantRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateContentRequestModelBaseMediaValueModelMediaVariantRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentRequestModelBaseMediaValueModelMediaVariantRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateDataTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDataTypeRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateDataTypeRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDataTypeRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateDictionaryItemRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDictionaryItemRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateDictionaryItemRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDictionaryItemRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateDocumentRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateFolderRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateFolderRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateFolderRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateFolderRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateLanguageRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateLanguageRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateLanguageRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateLanguageRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateMediaRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateMediaRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreatePackageRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePackageRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreatePackageRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePackageRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreatePartialViewRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePartialViewRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreatePartialViewRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePartialViewRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreatePathFolderRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePathFolderRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreatePathFolderRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePathFolderRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateRelationTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateRelationTypeRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateRelationTypeRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateRelationTypeRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateScriptRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateScriptRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateScriptRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateScriptRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateStylesheetRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateStylesheetRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateStylesheetRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateStylesheetRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateTemplateRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateTemplateRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateTemplateRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateTemplateRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateTextFileViewModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateTextFileViewModelBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateTextFileViewModelBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateTextFileViewModelBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateUserGroupRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserGroupRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateUserGroupRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserGroupRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateUserRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateUserResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CreateUserResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CultureReponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CultureReponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/CultureReponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CultureReponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DataTypeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DataTypeItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DataTypeModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeModelBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DataTypeModelBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeModelBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DataTypePropertyPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyPresentationModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DataTypePropertyPresentationModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyPresentationModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DataTypePropertyReferenceModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyReferenceModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DataTypePropertyReferenceModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyReferenceModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DataTypeReferenceResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeReferenceResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DataTypeReferenceResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeReferenceResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DataTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DataTypeResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DatabaseInstallResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseInstallResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DatabaseInstallResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseInstallResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DatabaseSettingsPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseSettingsPresentationModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DatabaseSettingsPresentationModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseSettingsPresentationModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DictionaryItemItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DictionaryItemItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DictionaryItemModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemModelBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DictionaryItemModelBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemModelBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DictionaryItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DictionaryItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DictionaryItemTranslationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemTranslationModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DictionaryItemTranslationModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemTranslationModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DictionaryOverviewResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryOverviewResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DictionaryOverviewResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryOverviewResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DirectionModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DirectionModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DirectionModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DirectionModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DisableUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DisableUserRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DisableUserRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DisableUserRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentBlueprintResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentBlueprintResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentBlueprintTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintTreeItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentBlueprintTreeItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintTreeItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentItemResponseModel.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentItemResponseModel.ts index 3bf495dc8d..6fba4de084 100644 --- a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentItemResponseModel.ts @@ -6,5 +6,6 @@ import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; export type DocumentItemResponseModel = (ItemResponseModelBaseModel & { icon?: string | null; + contentTypeId?: string; }); diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentNotificationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentNotificationResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentNotificationResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentNotificationResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTreeItemResponseModel.ts similarity index 70% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentTreeItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTreeItemResponseModel.ts index d9d187c704..44a29c8b7c 100644 --- a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTreeItemResponseModel.ts @@ -3,11 +3,14 @@ /* eslint-disable */ import type { ContentTreeItemResponseModel } from './ContentTreeItemResponseModel'; +import type { VariantTreeItemModel } from './VariantTreeItemModel'; export type DocumentTreeItemResponseModel = (ContentTreeItemResponseModel & { $type: string; isProtected?: boolean; isPublished?: boolean; isEdited?: boolean; + contentTypeId?: string; + variants?: Array; }); diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentTypeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentTypeItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentTypePropertyTypeContainerResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeContainerResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentTypePropertyTypeContainerResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeContainerResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentTypePropertyTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentTypePropertyTypeResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentTypeResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentTypeTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeTreeItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentTypeTreeItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeTreeItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentValueModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentValueModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentValueModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentValueModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentVariantRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentVariantRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentVariantResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DocumentVariantResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DomainPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainPresentationModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DomainPresentationModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainPresentationModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DomainsPresentationModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsPresentationModelBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DomainsPresentationModelBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsPresentationModelBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DomainsResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/DomainsResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/EnableUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EnableUserRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/EnableUserRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EnableUserRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/EntityTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EntityTreeItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/EntityTreeItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EntityTreeItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ExtractRichTextStylesheetRulesRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ExtractRichTextStylesheetRulesRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ExtractRichTextStylesheetRulesRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ExtractRichTextStylesheetRulesRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ExtractRichTextStylesheetRulesResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ExtractRichTextStylesheetRulesResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ExtractRichTextStylesheetRulesResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ExtractRichTextStylesheetRulesResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/FieldPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FieldPresentationModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/FieldPresentationModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FieldPresentationModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/FileItemResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileItemResponseModelBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/FileItemResponseModelBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileItemResponseModelBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/FileSystemTreeItemPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemTreeItemPresentationModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/FileSystemTreeItemPresentationModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemTreeItemPresentationModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/FolderModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderModelBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/FolderModelBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderModelBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/FolderReponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderReponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/FolderReponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderReponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/FolderTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderTreeItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/FolderTreeItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderTreeItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/HealthCheckActionRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckActionRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/HealthCheckActionRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckActionRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/HealthCheckGroupPresentationBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/HealthCheckGroupPresentationBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/HealthCheckGroupPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/HealthCheckGroupPresentationModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/HealthCheckGroupResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/HealthCheckGroupResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/HealthCheckGroupWithResultResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupWithResultResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/HealthCheckGroupWithResultResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupWithResultResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/HealthCheckModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/HealthCheckModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/HealthCheckModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModelBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/HealthCheckModelBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModelBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/HealthCheckResultResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckResultResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/HealthCheckResultResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckResultResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/HealthCheckWithResultPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckWithResultPresentationModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/HealthCheckWithResultPresentationModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckWithResultPresentationModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/HealthStatusModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthStatusModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/HealthStatusModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthStatusModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/HelpPageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HelpPageResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/HelpPageResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HelpPageResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ImportDictionaryRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ImportDictionaryRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ImportDictionaryRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ImportDictionaryRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/IndexResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/IndexResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/IndexResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/IndexResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/InstallSettingsResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallSettingsResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/InstallSettingsResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallSettingsResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/InstallVResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallVResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/InstallVResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallVResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/InterpolateRichTextStylesheetRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InterpolateRichTextStylesheetRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/InterpolateRichTextStylesheetRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InterpolateRichTextStylesheetRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/InterpolateRichTextStylesheetResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InterpolateRichTextStylesheetResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/InterpolateRichTextStylesheetResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InterpolateRichTextStylesheetResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/InviteUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InviteUserRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/InviteUserRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InviteUserRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ItemResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemResponseModelBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ItemResponseModelBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemResponseModelBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/LanguageItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/LanguageItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/LanguageModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageModelBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/LanguageModelBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageModelBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/LanguageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/LanguageResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/LogLevelCountsReponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogLevelCountsReponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/LogLevelCountsReponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogLevelCountsReponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/LogLevelModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogLevelModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/LogLevelModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogLevelModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/LogMessagePropertyPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessagePropertyPresentationModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/LogMessagePropertyPresentationModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessagePropertyPresentationModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/LogMessageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessageResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/LogMessageResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessageResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/LogTemplateResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogTemplateResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/LogTemplateResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogTemplateResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/LoggerResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LoggerResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/LoggerResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LoggerResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/LoginRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LoginRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/LoginRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LoginRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MediaItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MediaItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MediaTypeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MediaTypeItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MediaTypePropertyTypeContainerResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeContainerResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MediaTypePropertyTypeContainerResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeContainerResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MediaTypePropertyTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MediaTypePropertyTypeResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MediaTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MediaTypeResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MediaValueModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaValueModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MediaValueModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaValueModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MediaVariantRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MediaVariantRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MediaVariantResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MediaVariantResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MemberGroupItemReponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberGroupItemReponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MemberGroupItemReponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberGroupItemReponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MemberItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MemberItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MemberTypeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MemberTypeItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ModelsBuilderResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ModelsBuilderResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ModelsBuilderResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ModelsBuilderResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ModelsModeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ModelsModeModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ModelsModeModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ModelsModeModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MoveDataTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDataTypeRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MoveDataTypeRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDataTypeRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MoveDictionaryRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDictionaryRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MoveDictionaryRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDictionaryRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MoveDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MoveDocumentRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MoveMediaRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/MoveMediaRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ObjectTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ObjectTypeResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ObjectTypeResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ObjectTypeResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/OkResultModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OkResultModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/OkResultModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OkResultModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/OperatorModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OperatorModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/OperatorModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OperatorModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/OutOfDateStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OutOfDateStatusResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/OutOfDateStatusResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OutOfDateStatusResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/OutOfDateTypeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OutOfDateTypeModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/OutOfDateTypeModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OutOfDateTypeModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PackageDefinitionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageDefinitionResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PackageDefinitionResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageDefinitionResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PackageManifestResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageManifestResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PackageManifestResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageManifestResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PackageMigrationStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageMigrationStatusResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PackageMigrationStatusResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageMigrationStatusResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PackageModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageModelBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PackageModelBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageModelBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedAuditLogResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedAuditLogResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedAuditLogWithUsernameResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogWithUsernameResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedAuditLogWithUsernameResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogWithUsernameResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedBooleanModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedBooleanModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedBooleanModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedBooleanModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedContentTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedContentTreeItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedContentTreeItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedContentTreeItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedCultureReponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedCultureReponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedCultureReponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedCultureReponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedDictionaryOverviewResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDictionaryOverviewResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedDictionaryOverviewResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDictionaryOverviewResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedDocumentBlueprintTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentBlueprintTreeItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedDocumentBlueprintTreeItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentBlueprintTreeItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedDocumentTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTreeItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedDocumentTreeItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTreeItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedDocumentTypeTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeTreeItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedDocumentTypeTreeItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeTreeItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedEntityTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedEntityTreeItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedEntityTreeItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedEntityTreeItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedFileSystemTreeItemPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedFileSystemTreeItemPresentationModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedFileSystemTreeItemPresentationModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedFileSystemTreeItemPresentationModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedFolderTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedFolderTreeItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedFolderTreeItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedFolderTreeItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedHealthCheckGroupResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHealthCheckGroupResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedHealthCheckGroupResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHealthCheckGroupResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedHelpPageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHelpPageResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedHelpPageResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHelpPageResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedIndexResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedIndexResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedIndexResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedIndexResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedLanguageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLanguageResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedLanguageResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLanguageResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedLogMessageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogMessageResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedLogMessageResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogMessageResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedLogTemplateResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogTemplateResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedLogTemplateResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogTemplateResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedLoggerResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLoggerResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedLoggerResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLoggerResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedObjectTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedObjectTypeResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedObjectTypeResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedObjectTypeResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedPackageDefinitionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageDefinitionResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedPackageDefinitionResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageDefinitionResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedPackageMigrationStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageMigrationStatusResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedPackageMigrationStatusResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageMigrationStatusResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedRecycleBinItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRecycleBinItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedRecycleBinItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRecycleBinItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedRedirectUrlResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRedirectUrlResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedRedirectUrlResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRedirectUrlResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedRelationItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedRelationItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedRelationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedRelationResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedSavedLogSearchResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSavedLogSearchResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedSavedLogSearchResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSavedLogSearchResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedSearchResultResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearchResultResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedSearchResultResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearchResultResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedSearcherResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearcherResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedSearcherResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearcherResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedSnippetItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSnippetItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedSnippetItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSnippetItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedStylesheetOverviewResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedStylesheetOverviewResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedStylesheetOverviewResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedStylesheetOverviewResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedTagResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTagResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedTagResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTagResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedTelemetryResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTelemetryResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedTelemetryResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTelemetryResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedUserGroupResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserGroupResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedUserGroupResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserGroupResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedUserResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PagedUserResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PartialViewItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PartialViewItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PartialViewResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PartialViewResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PartialViewSnippetResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewSnippetResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PartialViewSnippetResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewSnippetResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PartialViewUpdateModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewUpdateModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PartialViewUpdateModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewUpdateModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PathFolderModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PathFolderModelBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PathFolderModelBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PathFolderModelBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PathFolderResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PathFolderResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PathFolderResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PathFolderResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ProblemDetailsModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProblemDetailsModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ProblemDetailsModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProblemDetailsModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ProfilingStatusRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ProfilingStatusRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ProfilingStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ProfilingStatusResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PropertyTypeAppearanceModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeAppearanceModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PropertyTypeAppearanceModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeAppearanceModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PropertyTypeContainerResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeContainerResponseModelBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PropertyTypeContainerResponseModelBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeContainerResponseModelBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PropertyTypeResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeResponseModelBaseModel.ts similarity index 96% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PropertyTypeResponseModelBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeResponseModelBaseModel.ts index ad3a59bbbf..c8fe5753df 100644 --- a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PropertyTypeResponseModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeResponseModelBaseModel.ts @@ -8,6 +8,7 @@ import type { PropertyTypeValidationModel } from './PropertyTypeValidationModel' export type PropertyTypeResponseModelBaseModel = { id?: string; containerId?: string | null; + sortOrder?: number; alias?: string; name?: string; description?: string | null; diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PropertyTypeValidationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeValidationModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/PropertyTypeValidationModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeValidationModel.ts diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishedStateModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishedStateModel.ts new file mode 100644 index 0000000000..23d04c6dca --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishedStateModel.ts @@ -0,0 +1,10 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export enum PublishedStateModel { + PUBLISHED = 'Published', + UNPUBLISHED = 'Unpublished', + PUBLISHING = 'Publishing', + UNPUBLISHING = 'Unpublishing', +} diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RecycleBinItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RecycleBinItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RecycleBinItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RecycleBinItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RedirectStatusModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectStatusModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RedirectStatusModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectStatusModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RedirectUrlResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RedirectUrlResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RedirectUrlStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlStatusResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RedirectUrlStatusResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlStatusResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RelationItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RelationItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RelationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RelationResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RelationTypeBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RelationTypeBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RelationTypeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RelationTypeItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RelationTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RelationTypeResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RichTextRuleModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RichTextRuleModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RichTextRuleModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RichTextRuleModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RichTextStylesheetRulesResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RichTextStylesheetRulesResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RichTextStylesheetRulesResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RichTextStylesheetRulesResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RuntimeLevelModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RuntimeLevelModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/RuntimeLevelModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RuntimeLevelModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/SavedLogSearchPresenationBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchPresenationBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/SavedLogSearchPresenationBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchPresenationBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/SavedLogSearchRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/SavedLogSearchRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/SavedLogSearchResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/SavedLogSearchResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ScriptItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ScriptItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ScriptResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ScriptResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ScriptUpdateModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptUpdateModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ScriptUpdateModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptUpdateModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ScriptViewModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptViewModelBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ScriptViewModelBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptViewModelBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/SearchResultResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearchResultResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/SearchResultResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearchResultResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/SearcherResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearcherResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/SearcherResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearcherResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ServerStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerStatusResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ServerStatusResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerStatusResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/SetAvatarRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetAvatarRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/SetAvatarRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetAvatarRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/SnippetItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SnippetItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/SnippetItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SnippetItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/StaticFileItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StaticFileItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/StaticFileItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StaticFileItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/StatusResultTypeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StatusResultTypeModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/StatusResultTypeModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StatusResultTypeModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/StylesheetItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/StylesheetItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/StylesheetOverviewResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetOverviewResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/StylesheetOverviewResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetOverviewResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/StylesheetResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/StylesheetResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/StylesheetUpdateModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetUpdateModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/StylesheetUpdateModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetUpdateModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TagResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TagResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TagResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TagResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TelemetryLevelModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryLevelModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TelemetryLevelModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryLevelModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TelemetryRepresentationBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRepresentationBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TelemetryRepresentationBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRepresentationBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TelemetryRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TelemetryRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TelemetryResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TelemetryResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateModelBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateModelBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateModelBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateQueryExecuteFilterPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteFilterPresentationModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateQueryExecuteFilterPresentationModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteFilterPresentationModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateQueryExecuteModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateQueryExecuteModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateQueryExecuteSortModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteSortModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateQueryExecuteSortModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteSortModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateQueryOperatorModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryOperatorModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateQueryOperatorModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryOperatorModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateQueryPropertyPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryPropertyPresentationModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateQueryPropertyPresentationModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryPropertyPresentationModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateQueryPropertyTypeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryPropertyTypeModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateQueryPropertyTypeModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryPropertyTypeModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateQueryResultItemPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultItemPresentationModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateQueryResultItemPresentationModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultItemPresentationModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateQueryResultResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateQueryResultResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateQuerySettingsResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQuerySettingsResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateQuerySettingsResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQuerySettingsResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateScaffoldResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateScaffoldResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemplateScaffoldResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateScaffoldResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemporaryFileResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemporaryFileResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TemporaryFileResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemporaryFileResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TextFileResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TextFileResponseModelBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TextFileResponseModelBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TextFileResponseModelBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TextFileUpdateModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TextFileUpdateModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TextFileUpdateModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TextFileUpdateModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TextFileViewModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TextFileViewModelBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TextFileViewModelBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TextFileViewModelBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TreeItemPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TreeItemPresentationModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/TreeItemPresentationModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TreeItemPresentationModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UnlockUsersRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnlockUsersRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UnlockUsersRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnlockUsersRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateContentRequestModelBaseDocumentValueModelDocumentVariantRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentRequestModelBaseDocumentValueModelDocumentVariantRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateContentRequestModelBaseDocumentValueModelDocumentVariantRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentRequestModelBaseDocumentValueModelDocumentVariantRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateContentRequestModelBaseMediaValueModelMediaVariantRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentRequestModelBaseMediaValueModelMediaVariantRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateContentRequestModelBaseMediaValueModelMediaVariantRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentRequestModelBaseMediaValueModelMediaVariantRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateDataTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDataTypeRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateDataTypeRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDataTypeRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateDictionaryItemRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDictionaryItemRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateDictionaryItemRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDictionaryItemRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateDocumentNotificationsRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentNotificationsRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateDocumentNotificationsRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentNotificationsRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateDocumentRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateDomainsRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDomainsRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateDomainsRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDomainsRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateFolderReponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateFolderReponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateFolderReponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateFolderReponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateLanguageRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateLanguageRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateLanguageRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateLanguageRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateMediaRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateMediaRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdatePackageRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePackageRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdatePackageRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePackageRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdatePartialViewRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePartialViewRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdatePartialViewRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePartialViewRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateRelationTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateRelationTypeRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateRelationTypeRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateRelationTypeRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateScriptRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateScriptRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateScriptRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateScriptRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateStylesheetRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateStylesheetRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateStylesheetRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateStylesheetRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateTemplateRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateTemplateRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateTemplateRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateTemplateRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateTextFileViewModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateTextFileViewModelBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateTextFileViewModelBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateTextFileViewModelBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateUserGroupRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateUserGroupRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateUserGroupsOnUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupsOnUserRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateUserGroupsOnUserRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupsOnUserRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserRequestModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpdateUserRequestModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserRequestModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpgradeSettingsResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpgradeSettingsResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UpgradeSettingsResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpgradeSettingsResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UserGroupBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UserGroupBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UserGroupItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UserGroupItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UserGroupResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UserGroupResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UserInstallResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserInstallResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UserInstallResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserInstallResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UserItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserItemResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UserItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserItemResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UserOrderModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserOrderModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UserOrderModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserOrderModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UserPresentationBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPresentationBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UserPresentationBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPresentationBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UserResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UserResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UserSettingsModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserSettingsModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UserSettingsModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserSettingsModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UserStateModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserStateModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/UserStateModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserStateModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ValueModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ValueModelBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/ValueModelBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ValueModelBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/VariantModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantModelBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/VariantModelBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantModelBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/VariantResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantResponseModelBaseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/VariantResponseModelBaseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantResponseModelBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantTreeItemModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantTreeItemModel.ts new file mode 100644 index 0000000000..52256a8568 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantTreeItemModel.ts @@ -0,0 +1,12 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { PublishedStateModel } from './PublishedStateModel'; + +export type VariantTreeItemModel = { + name?: string; + culture?: string | null; + state?: PublishedStateModel; +}; + diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/models/VersionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VersionResponseModel.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/models/VersionResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VersionResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/AuditLogResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/AuditLogResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/AuditLogResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/AuditLogResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/CultureResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/CultureResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/CultureResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/CultureResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/DataTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/DataTypeResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/DictionaryResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/DictionaryResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/DocumentBlueprintResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentBlueprintResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/DocumentBlueprintResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentBlueprintResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/DocumentResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/DocumentResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/DocumentTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/DocumentTypeResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/HealthCheckResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HealthCheckResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/HealthCheckResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HealthCheckResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/HelpResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HelpResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/HelpResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HelpResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/IndexerResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/IndexerResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/IndexerResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/IndexerResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/InstallResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/InstallResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/InstallResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/InstallResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/LanguageResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LanguageResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/LanguageResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LanguageResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/LogViewerResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LogViewerResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/LogViewerResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LogViewerResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/MediaResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/MediaResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/MediaTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/MediaTypeResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/MemberGroupResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberGroupResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/MemberGroupResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberGroupResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/MemberResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/MemberResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/MemberTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberTypeResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/MemberTypeResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberTypeResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/ModelsBuilderResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ModelsBuilderResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/ModelsBuilderResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ModelsBuilderResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/ObjectTypesResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ObjectTypesResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/ObjectTypesResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ObjectTypesResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/PackageResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/PackageResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/PartialViewResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PartialViewResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/PartialViewResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PartialViewResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/ProfilingResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ProfilingResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/ProfilingResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ProfilingResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/PropertyTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PropertyTypeResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/PropertyTypeResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PropertyTypeResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/PublishedCacheResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PublishedCacheResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/PublishedCacheResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PublishedCacheResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/RedirectManagementResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RedirectManagementResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/RedirectManagementResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RedirectManagementResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/RelationResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/RelationResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/RelationTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationTypeResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/RelationTypeResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationTypeResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/ScriptResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ScriptResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/ScriptResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ScriptResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/SearcherResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SearcherResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/SearcherResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SearcherResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/SecurityResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SecurityResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/SecurityResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SecurityResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/ServerResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ServerResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/ServerResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ServerResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/StaticFileResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StaticFileResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/StaticFileResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StaticFileResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/StylesheetResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StylesheetResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/StylesheetResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StylesheetResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/TagResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TagResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/TagResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TagResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/TelemetryResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TelemetryResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/TelemetryResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TelemetryResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/TemplateResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/TemplateResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/TemporaryFileResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/TemporaryFileResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/TrackedReferenceResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TrackedReferenceResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/TrackedReferenceResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TrackedReferenceResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/UpgradeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UpgradeResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/UpgradeResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UpgradeResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/UserGroupResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserGroupResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/UserGroupResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserGroupResource.ts diff --git a/src/Umbraco.Web.UI.Client/libs/backend-api/src/services/UserResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/backend-api/src/services/UserResource.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts diff --git a/src/Umbraco.Web.UI.Client/src/external/lit/index.ts b/src/Umbraco.Web.UI.Client/src/external/lit/index.ts new file mode 100644 index 0000000000..9daf642cef --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/lit/index.ts @@ -0,0 +1,12 @@ +export * from 'lit'; +export * from 'lit/decorators.js'; +export * from 'lit/directives/class-map.js'; +export * from 'lit/directives/if-defined.js'; +export * from 'lit/directives/style-map.js'; +export * from 'lit/directives/repeat.js'; +export * from 'lit/directives/unsafe-html.js'; +export * from 'lit/directives/ref.js'; +export * from 'lit/directives/until.js'; + +export * from 'lit-html/directives/when.js'; +export * from 'lit-html/directives/map.js'; diff --git a/src/Umbraco.Web.UI.Client/src/external/lodash/index.ts b/src/Umbraco.Web.UI.Client/src/external/lodash/index.ts new file mode 100644 index 0000000000..85f5525d23 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/lodash/index.ts @@ -0,0 +1 @@ +export { debounce, clamp, groupBy } from 'lodash-es'; diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/index.ts b/src/Umbraco.Web.UI.Client/src/external/openid/index.ts new file mode 100644 index 0000000000..baaee116db --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/openid/index.ts @@ -0,0 +1,17 @@ +export { + BaseTokenRequestHandler, + BasicQueryStringUtils, + FetchRequestor, + LocalStorageBackend, + RedirectRequestHandler, +} from '@openid/appauth'; +export { AuthorizationRequest } from '@openid/appauth/built/authorization_request'; +export { AuthorizationNotifier } from '@openid/appauth/built/authorization_request_handler'; +export { AuthorizationServiceConfiguration } from '@openid/appauth/built/authorization_service_configuration'; +export { + GRANT_TYPE_AUTHORIZATION_CODE, + GRANT_TYPE_REFRESH_TOKEN, + TokenRequest, +} from '@openid/appauth/built/token_request'; +export { TokenResponse } from '@openid/appauth/built/token_response'; +export type { LocationLike, StringMap } from '@openid/appauth/built/types'; diff --git a/src/Umbraco.Web.UI.Client/libs/router/index.ts b/src/Umbraco.Web.UI.Client/src/external/router-slot/index.ts similarity index 57% rename from src/Umbraco.Web.UI.Client/libs/router/index.ts rename to src/Umbraco.Web.UI.Client/src/external/router-slot/index.ts index 850b56b590..226ba1ba27 100644 --- a/src/Umbraco.Web.UI.Client/libs/router/index.ts +++ b/src/Umbraco.Web.UI.Client/src/external/router-slot/index.ts @@ -1,14 +1,14 @@ +export * from 'router-slot'; export type { - PageComponent, Guard, + IRoute, IRoutingInfo, IComponentRoute, IRedirectRoute, IResolverRoute, + IRouterSlot, + PageComponent, + Component, Params, - Query, } from 'router-slot/model'; export * from 'router-slot/util'; -export * from './route.context'; -export * from './route.interface'; -export * from './generate-route-path-builder.function'; diff --git a/src/Umbraco.Web.UI.Client/src/external/rxjs/index.ts b/src/Umbraco.Web.UI.Client/src/external/rxjs/index.ts new file mode 100644 index 0000000000..66eddd1fb0 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/rxjs/index.ts @@ -0,0 +1,16 @@ +export { + ReplaySubject, + Subject, + Observable, + BehaviorSubject, + Subscription, + map, + distinctUntilChanged, + combineLatest, + shareReplay, + takeUntil, + debounceTime, + tap, + of, + lastValueFrom, +} from 'rxjs'; diff --git a/src/Umbraco.Web.UI.Client/src/external/uui/index.ts b/src/Umbraco.Web.UI.Client/src/external/uui/index.ts new file mode 100644 index 0000000000..ba21542d11 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/uui/index.ts @@ -0,0 +1 @@ +export * from '@umbraco-ui/uui'; diff --git a/src/Umbraco.Web.UI.Client/src/external/uuid/index.ts b/src/Umbraco.Web.UI.Client/src/external/uuid/index.ts new file mode 100644 index 0000000000..12531073f5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/uuid/index.ts @@ -0,0 +1 @@ +export { v4, validate } from 'uuid'; diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-consumer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.controller.ts similarity index 76% rename from src/Umbraco.Web.UI.Client/libs/context-api/consume/context-consumer.controller.ts rename to src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.controller.ts index aa275f11b6..0eb139f840 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-consumer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.controller.ts @@ -1,6 +1,6 @@ -import { UmbContextToken } from '../token/context-token'; -import { UmbContextConsumer } from './context-consumer'; -import { UmbContextCallback } from './context-request.event'; +import { UmbContextToken } from '../token/context-token.js'; +import { UmbContextConsumer } from './context-consumer.js'; +import { UmbContextCallback } from './context-request.event.js'; import type { UmbControllerHostElement, UmbControllerInterface } from '@umbraco-cms/backoffice/controller-api'; export class UmbContextConsumerController diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-consumer.test.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.test.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/libs/context-api/consume/context-consumer.test.ts rename to src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.test.ts index 09a575938f..0a6dff0dbd 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-consumer.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.test.ts @@ -1,7 +1,7 @@ import { expect, oneEvent } from '@open-wc/testing'; -import { UmbContextProvider } from '../provide/context-provider'; -import { UmbContextConsumer } from './context-consumer'; -import { UmbContextRequestEventImplementation, umbContextRequestEventType } from './context-request.event'; +import { UmbContextProvider } from '../provide/context-provider.js'; +import { UmbContextConsumer } from './context-consumer.js'; +import { UmbContextRequestEventImplementation, umbContextRequestEventType } from './context-request.event.js'; const testContextAlias = 'my-test-context'; diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-consumer.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.ts similarity index 94% rename from src/Umbraco.Web.UI.Client/libs/context-api/consume/context-consumer.ts rename to src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.ts index 32bc1781a8..528da94673 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-consumer.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.ts @@ -1,6 +1,6 @@ -import { UmbContextToken } from '../token/context-token'; -import { isUmbContextProvideEventType, umbContextProvideEventType } from '../provide/context-provide.event'; -import { UmbContextRequestEventImplementation, UmbContextCallback } from './context-request.event'; +import { UmbContextToken } from '../token/context-token.js'; +import { isUmbContextProvideEventType, umbContextProvideEventType } from '../provide/context-provide.event.js'; +import { UmbContextRequestEventImplementation, UmbContextCallback } from './context-request.event.js'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-request.event.test.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-request.event.test.ts similarity index 94% rename from src/Umbraco.Web.UI.Client/libs/context-api/consume/context-request.event.test.ts rename to src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-request.event.test.ts index 33859c6acd..19f17f929b 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-request.event.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-request.event.test.ts @@ -1,5 +1,5 @@ import { expect } from '@open-wc/testing'; -import { UmbContextRequestEventImplementation, UmbContextRequestEvent } from './context-request.event'; +import { UmbContextRequestEventImplementation, UmbContextRequestEvent } from './context-request.event.js'; describe('UmbContextRequestEvent', () => { const contextRequestCallback = () => { diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-request.event.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-request.event.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/libs/context-api/consume/context-request.event.ts rename to src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-request.event.ts index d1b630be4b..25b473e58c 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-request.event.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-request.event.ts @@ -1,4 +1,4 @@ -import { UmbContextToken } from '../token/context-token'; +import { UmbContextToken } from '../token/context-token.js'; export const umbContextRequestEventType = 'umb:context-request'; export const umbDebugContextEventType = 'umb:debug-contexts'; diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/consume/is-context-consumer-type.function.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/is-context-consumer-type.function.ts similarity index 78% rename from src/Umbraco.Web.UI.Client/libs/context-api/consume/is-context-consumer-type.function.ts rename to src/Umbraco.Web.UI.Client/src/libs/context-api/consume/is-context-consumer-type.function.ts index f6339ee4f6..74f4af6127 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/consume/is-context-consumer-type.function.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/is-context-consumer-type.function.ts @@ -1,4 +1,4 @@ -import { UmbContextConsumer } from './context-consumer'; +import { UmbContextConsumer } from './context-consumer.js'; export function isContextConsumerType(instance: unknown): instance is UmbContextConsumer { return ( diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/debug/context-data.function.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/debug/context-data.function.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/context-api/debug/context-data.function.ts rename to src/Umbraco.Web.UI.Client/src/libs/context-api/debug/context-data.function.ts diff --git a/src/Umbraco.Web.UI.Client/src/libs/context-api/index.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/index.ts new file mode 100644 index 0000000000..327d552aa3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/index.ts @@ -0,0 +1,9 @@ +export * from './consume/context-consumer.controller.js'; +export * from './consume/context-consumer.js'; +export * from './consume/context-request.event.js'; +export * from './provide/context-provider.controller.js'; +export * from './provide/context-provider.js'; +export * from './provide/context-provide.event.js'; +export * from './provide/context-provider.element.js'; +export * from './token/index.js'; +export * from './debug/context-data.function.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provide.event.test.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provide.event.test.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provide.event.test.ts rename to src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provide.event.test.ts index 0c7c158123..a7c3edfbe4 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provide.event.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provide.event.test.ts @@ -1,5 +1,5 @@ import { expect } from '@open-wc/testing'; -import { UmbContextProvideEventImplementation, UmbContextProvideEvent } from './context-provide.event'; +import { UmbContextProvideEventImplementation, UmbContextProvideEvent } from './context-provide.event.js'; describe('UmbContextProvideEvent', () => { const event: UmbContextProvideEvent = new UmbContextProvideEventImplementation('my-test-context-alias'); diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provide.event.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provide.event.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provide.event.ts rename to src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provide.event.ts index 9388743921..dddc16235e 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provide.event.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provide.event.ts @@ -1,4 +1,4 @@ -import { UmbContextToken } from '../token/context-token'; +import { UmbContextToken } from '../token/context-token.js'; export const umbContextProvideEventType = 'umb:context-provide'; diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.controller.test.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.controller.test.ts similarity index 96% rename from src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.controller.test.ts rename to src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.controller.test.ts index d09e43fb44..1accbd7eb7 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.controller.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.controller.test.ts @@ -1,7 +1,7 @@ import { expect, fixture, defineCE } from '@open-wc/testing'; +import { UmbContextConsumer } from '../consume/context-consumer.js'; +import { UmbContextProviderController } from './context-provider.controller.js'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbContextConsumer } from '../consume/context-consumer'; -import { UmbContextProviderController } from './context-provider.controller'; class UmbTestContextProviderControllerClass { prop = 'value from provider'; diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.controller.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.controller.ts rename to src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.controller.ts index c7f6999c79..6d7aef9cd5 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.controller.ts @@ -1,5 +1,5 @@ -import { UmbContextToken } from '../token/context-token'; -import { UmbContextProvider } from './context-provider'; +import { UmbContextToken } from '../token/context-token.js'; +import { UmbContextProvider } from './context-provider.js'; import type { UmbControllerHostElement, UmbControllerInterface } from '@umbraco-cms/backoffice/controller-api'; export class UmbContextProviderController diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.element.test.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.element.test.ts similarity index 91% rename from src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.element.test.ts rename to src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.element.test.ts index 543068746a..5dbf8821eb 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.element.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.element.test.ts @@ -1,7 +1,7 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { customElement } from 'lit/decorators.js'; -import { UmbContextConsumerController } from '../consume/context-consumer.controller'; -import { UmbContextProviderElement } from './context-provider.element'; +import { UmbContextConsumerController } from '../consume/context-consumer.controller.js'; +import { UmbContextProviderElement } from './context-provider.element.js'; +import { customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbControllerHostMixin } from '@umbraco-cms/backoffice/controller-api'; @customElement('umb-test-context') diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.element.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.element.ts rename to src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.element.ts diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.test.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.test.ts similarity index 91% rename from src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.test.ts rename to src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.test.ts index ce82bcb9b5..7b6638a657 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.test.ts @@ -1,7 +1,7 @@ import { expect } from '@open-wc/testing'; -import { UmbContextConsumer } from '../consume/context-consumer'; -import { UmbContextRequestEventImplementation } from '../consume/context-request.event'; -import { UmbContextProvider } from './context-provider'; +import { UmbContextConsumer } from '../consume/context-consumer.js'; +import { UmbContextRequestEventImplementation } from '../consume/context-request.event.js'; +import { UmbContextProvider } from './context-provider.js'; class UmbTestContextProviderClass { prop = 'value from provider'; diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.ts rename to src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.ts index efed204d3a..bd7632f47c 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.ts @@ -2,9 +2,9 @@ import { umbContextRequestEventType, isUmbContextRequestEvent, umbDebugContextEventType, -} from '../consume/context-request.event'; -import { UmbContextToken } from '../token/context-token'; -import { UmbContextProvideEventImplementation } from './context-provide.event'; +} from '../consume/context-request.event.js'; +import { UmbContextToken } from '../token/context-token.js'; +import { UmbContextProvideEventImplementation } from './context-provide.event.js'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/token/context-token.test.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/token/context-token.test.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/libs/context-api/token/context-token.test.ts rename to src/Umbraco.Web.UI.Client/src/libs/context-api/token/context-token.test.ts index 01cdf69427..2dda731bc9 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/token/context-token.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/token/context-token.test.ts @@ -1,7 +1,7 @@ import { expect } from '@open-wc/testing'; -import { UmbContextConsumer } from '../consume/context-consumer'; -import { UmbContextProvider } from '../provide/context-provider'; -import { UmbContextToken } from './context-token'; +import { UmbContextConsumer } from '../consume/context-consumer.js'; +import { UmbContextProvider } from '../provide/context-provider.js'; +import { UmbContextToken } from './context-token.js'; const testContextAlias = 'my-test-context'; diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/token/context-token.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/token/context-token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/context-api/token/context-token.ts rename to src/Umbraco.Web.UI.Client/src/libs/context-api/token/context-token.ts diff --git a/src/Umbraco.Web.UI.Client/src/libs/context-api/token/index.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/token/index.ts new file mode 100644 index 0000000000..14d4c186d7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/token/index.ts @@ -0,0 +1 @@ +export * from './context-token.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/controller-api/controller-host-initializer.element.ts b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host-initializer.element.ts similarity index 96% rename from src/Umbraco.Web.UI.Client/libs/controller-api/controller-host-initializer.element.ts rename to src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host-initializer.element.ts index b84bdf5492..567adf2ec4 100644 --- a/src/Umbraco.Web.UI.Client/libs/controller-api/controller-host-initializer.element.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host-initializer.element.ts @@ -1,4 +1,4 @@ -import { UmbControllerHostElement, UmbControllerHostMixin } from './controller-host.mixin'; +import { UmbControllerHostElement, UmbControllerHostMixin } from './controller-host.mixin.js'; export class UmbControllerHostInitializerElement extends UmbControllerHostMixin(HTMLElement) diff --git a/src/Umbraco.Web.UI.Client/libs/controller-api/controller-host-initializer.test.ts b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host-initializer.test.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/libs/controller-api/controller-host-initializer.test.ts rename to src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host-initializer.test.ts index ec7aa60a6f..635e6f5147 100644 --- a/src/Umbraco.Web.UI.Client/libs/controller-api/controller-host-initializer.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host-initializer.test.ts @@ -1,7 +1,7 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { customElement } from 'lit/decorators.js'; -import { UmbControllerHostInitializerElement } from './controller-host-initializer.element'; -import { UmbControllerHostElement, UmbControllerHostMixin } from './controller-host.mixin'; +import { UmbControllerHostInitializerElement } from './controller-host-initializer.element.js'; +import { UmbControllerHostElement, UmbControllerHostMixin } from './controller-host.mixin.js'; +import { customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbContextConsumerController, UmbContextProviderController } from '@umbraco-cms/backoffice/context-api'; @customElement('umb-test-controller-host-initializer-consumer') diff --git a/src/Umbraco.Web.UI.Client/libs/controller-api/controller-host.mixin.ts b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host.mixin.ts similarity index 89% rename from src/Umbraco.Web.UI.Client/libs/controller-api/controller-host.mixin.ts rename to src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host.mixin.ts index 566d87fccd..aff22afaff 100644 --- a/src/Umbraco.Web.UI.Client/libs/controller-api/controller-host.mixin.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host.mixin.ts @@ -1,4 +1,4 @@ -import { UmbControllerInterface } from './controller.interface'; +import type { UmbControllerInterface } from './controller.interface.js'; type HTMLElementConstructor = new (...args: any[]) => T; @@ -49,7 +49,9 @@ export const UmbControllerHostMixin = (superCl this.#controllers.push(ctrl); if (this.#attached) { - ctrl.hostConnected(); + // If a controller is created on a already attached element, then it will be added directly. This might not be optimal. As the controller it self has not finished its constructor method jet. therefor i postpone the call: + Promise.resolve().then(() => ctrl.hostConnected()); + //ctrl.hostConnected(); } } diff --git a/src/Umbraco.Web.UI.Client/libs/controller-api/controller.class.ts b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller.class.ts similarity index 87% rename from src/Umbraco.Web.UI.Client/libs/controller-api/controller.class.ts rename to src/Umbraco.Web.UI.Client/src/libs/controller-api/controller.class.ts index f461faf6fc..ba356055b2 100644 --- a/src/Umbraco.Web.UI.Client/libs/controller-api/controller.class.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller.class.ts @@ -1,5 +1,5 @@ -import { UmbControllerHostElement } from './controller-host.mixin'; -import { UmbControllerInterface } from './controller.interface'; +import { UmbControllerHostElement } from './controller-host.mixin.js'; +import type { UmbControllerInterface } from './controller.interface.js'; export abstract class UmbController implements UmbControllerInterface { protected host?: UmbControllerHostElement; diff --git a/src/Umbraco.Web.UI.Client/libs/controller-api/controller.interface.ts b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller.interface.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/controller-api/controller.interface.ts rename to src/Umbraco.Web.UI.Client/src/libs/controller-api/controller.interface.ts diff --git a/src/Umbraco.Web.UI.Client/libs/controller-api/controller.test.ts b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller.test.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/libs/controller-api/controller.test.ts rename to src/Umbraco.Web.UI.Client/src/libs/controller-api/controller.test.ts index deda6a09e1..b3dd76d18a 100644 --- a/src/Umbraco.Web.UI.Client/libs/controller-api/controller.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller.test.ts @@ -1,6 +1,6 @@ import { expect } from '@open-wc/testing'; -import { customElement } from 'lit/decorators.js'; -import { UmbControllerHostElement, UmbControllerHostMixin } from './controller-host.mixin'; +import { UmbControllerHostElement, UmbControllerHostMixin } from './controller-host.mixin.js'; +import { customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbContextProviderController } from '@umbraco-cms/backoffice/context-api'; class UmbTestContext { diff --git a/src/Umbraco.Web.UI.Client/src/libs/controller-api/index.ts b/src/Umbraco.Web.UI.Client/src/libs/controller-api/index.ts new file mode 100644 index 0000000000..245ba6e2a5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/libs/controller-api/index.ts @@ -0,0 +1,3 @@ +export * from './controller-host.mixin.js'; +export * from './controller.class.js'; +export * from './controller.interface.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/element-api/element.mixin.ts b/src/Umbraco.Web.UI.Client/src/libs/element-api/element.mixin.ts similarity index 83% rename from src/Umbraco.Web.UI.Client/libs/element-api/element.mixin.ts rename to src/Umbraco.Web.UI.Client/src/libs/element-api/element.mixin.ts index 2595b65f5f..0582586a0d 100644 --- a/src/Umbraco.Web.UI.Client/libs/element-api/element.mixin.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/element-api/element.mixin.ts @@ -1,6 +1,7 @@ -import { Observable } from 'rxjs'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { HTMLElementConstructor } from '@umbraco-cms/backoffice/extension-api'; -import { UmbControllerHostElement, UmbControllerHostMixin } from '@umbraco-cms/backoffice/controller-api'; +import { UmbControllerHostMixin } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken, UmbContextCallback, @@ -15,7 +16,11 @@ interface ResolvedContexts { } export declare class UmbElementMixinInterface extends UmbControllerHostElement { - observe(source: Observable, callback: (_value: T) => void, unique?: string): UmbObserverController; + observe( + source: Observable | { asObservable: () => Observable }, + callback: (_value: T) => void, + unique?: string + ): UmbObserverController; provideContext(alias: string | UmbContextToken, instance: R): UmbContextProviderController; consumeContext( alias: string | UmbContextToken, @@ -33,8 +38,17 @@ export const UmbElementMixin = (superClass: T) * @return {UmbObserverController} Reference to a Observer Controller instance * @memberof UmbElementMixin */ - observe(source: Observable, callback: (_value: T) => void, unique?: string): UmbObserverController { - return new UmbObserverController(this, source, callback, unique); + observe( + source: Observable | { asObservable: () => Observable }, + callback: (_value: T) => void, + unique?: string + ) { + return new UmbObserverController( + this, + (source as any).asObservable ? (source as any).asObservable() : source, + callback, + unique + ); } /** diff --git a/src/Umbraco.Web.UI.Client/src/libs/element-api/index.ts b/src/Umbraco.Web.UI.Client/src/libs/element-api/index.ts new file mode 100644 index 0000000000..9b02476fa4 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/libs/element-api/index.ts @@ -0,0 +1 @@ +export * from './element.mixin.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/extension-api/create-extension-class.function.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/create-extension-class.function.ts similarity index 74% rename from src/Umbraco.Web.UI.Client/libs/extension-api/create-extension-class.function.ts rename to src/Umbraco.Web.UI.Client/src/libs/extension-api/create-extension-class.function.ts index 45b7fde848..b772ec80f5 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-api/create-extension-class.function.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/create-extension-class.function.ts @@ -1,7 +1,7 @@ -import { hasDefaultExport } from './has-default-export.function'; -import { isManifestClassConstructorType } from './type-guards'; -import { loadExtension } from './load-extension.function'; -import type { ManifestClass, ClassConstructor } from './types'; +import { hasDefaultExport } from './has-default-export.function.js'; +import { isManifestClassConstructorType } from './type-guards/index.js'; +import { loadExtension } from './load-extension.function.js'; +import type { ManifestClass, ClassConstructor } from './types.js'; //TODO: Write tests for this method: export async function createExtensionClass( diff --git a/src/Umbraco.Web.UI.Client/libs/extension-api/create-extension-element-or-fallback.function.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/create-extension-element-or-fallback.function.ts similarity index 81% rename from src/Umbraco.Web.UI.Client/libs/extension-api/create-extension-element-or-fallback.function.ts rename to src/Umbraco.Web.UI.Client/src/libs/extension-api/create-extension-element-or-fallback.function.ts index 19fae25b4f..97760bd252 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-api/create-extension-element-or-fallback.function.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/create-extension-element-or-fallback.function.ts @@ -1,5 +1,5 @@ -import { createExtensionElement } from './create-extension-element.function'; -import { isManifestElementableType } from './type-guards'; +import { createExtensionElement } from './create-extension-element.function.js'; +import { isManifestElementableType } from './type-guards/index.js'; export async function createExtensionElementOrFallback( manifest: any, diff --git a/src/Umbraco.Web.UI.Client/libs/extension-api/create-extension-element.function.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/create-extension-element.function.ts similarity index 86% rename from src/Umbraco.Web.UI.Client/libs/extension-api/create-extension-element.function.ts rename to src/Umbraco.Web.UI.Client/src/libs/extension-api/create-extension-element.function.ts index 07a282bac4..d781554d59 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-api/create-extension-element.function.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/create-extension-element.function.ts @@ -1,7 +1,7 @@ -import { hasDefaultExport } from './has-default-export.function'; -import { isManifestElementNameType } from './type-guards'; -import { loadExtension } from './load-extension.function'; -import type { HTMLElementConstructor, ManifestElement } from './types'; +import { hasDefaultExport } from './has-default-export.function.js'; +import { isManifestElementNameType } from './type-guards/index.js'; +import { loadExtension } from './load-extension.function.js'; +import type { HTMLElementConstructor, ManifestElement } from './types.js'; export async function createExtensionElement( manifest: ManifestElement diff --git a/src/Umbraco.Web.UI.Client/libs/extension-api/entry-point-extension-initializer.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/entry-point-extension-initializer.ts similarity index 80% rename from src/Umbraco.Web.UI.Client/libs/extension-api/entry-point-extension-initializer.ts rename to src/Umbraco.Web.UI.Client/src/libs/extension-api/entry-point-extension-initializer.ts index c4dcc0a75a..fe5bbfa414 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-api/entry-point-extension-initializer.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/entry-point-extension-initializer.ts @@ -1,7 +1,7 @@ -import type { ManifestEntryPoint } from './types'; -import { hasInitExport } from './has-init-export.function'; -import { loadExtension } from './load-extension.function'; -import { UmbExtensionRegistry } from './registry/extension.registry'; +import type { ManifestEntryPoint } from './types.js'; +import { hasInitExport } from './has-init-export.function.js'; +import { loadExtension } from './load-extension.function.js'; +import { UmbExtensionRegistry } from './registry/extension.registry.js'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbEntryPointExtensionInitializer { @@ -16,6 +16,7 @@ export class UmbEntryPointExtensionInitializer { entryPoints.forEach((entryPoint) => { if (this.#entryPointMap.has(entryPoint.alias)) return; this.#entryPointMap.set(entryPoint.alias, entryPoint); + // TODO: Should we unInit a entry point if is removed? this.instantiateEntryPoint(entryPoint); }); }); diff --git a/src/Umbraco.Web.UI.Client/libs/extension-api/has-default-export.function.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/has-default-export.function.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/extension-api/has-default-export.function.ts rename to src/Umbraco.Web.UI.Client/src/libs/extension-api/has-default-export.function.ts diff --git a/src/Umbraco.Web.UI.Client/libs/extension-api/has-init-export.function.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/has-init-export.function.ts similarity index 97% rename from src/Umbraco.Web.UI.Client/libs/extension-api/has-init-export.function.ts rename to src/Umbraco.Web.UI.Client/src/libs/extension-api/has-init-export.function.ts index abcc3c9095..585b76ee99 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-api/has-init-export.function.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/has-init-export.function.ts @@ -1,4 +1,4 @@ -import type { UmbEntryPointModule } from './umb-lifecycle.interface'; +import type { UmbEntryPointModule } from './umb-lifecycle.interface.js'; /** * Validate if an ESModule exports a known init function called 'onInit' diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/index.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/index.ts new file mode 100644 index 0000000000..b1b67865e7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/index.ts @@ -0,0 +1,11 @@ +export * from './registry/extension.registry.js'; +export * from './type-guards/index.js'; +export * from './create-extension-element.function.js'; +export * from './has-default-export.function.js'; +export * from './has-init-export.function.js'; +export * from './load-extension.function.js'; +export * from './create-extension-element-or-fallback.function.js'; +export * from './create-extension-class.function.js'; +export * from './umb-lifecycle.interface.js'; +export * from './entry-point-extension-initializer.js'; +export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/extension-api/load-extension.function.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/load-extension.function.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/libs/extension-api/load-extension.function.ts rename to src/Umbraco.Web.UI.Client/src/libs/extension-api/load-extension.function.ts index 75d9615ffe..1607d396a9 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-api/load-extension.function.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/load-extension.function.ts @@ -1,5 +1,5 @@ -import { isManifestJSType, isManifestLoaderType } from './type-guards'; -import type { ManifestWithLoader } from './types'; +import { isManifestJSType, isManifestLoaderType } from './type-guards/index.js'; +import type { ManifestWithLoader } from './types.js'; export async function loadExtension(manifest: ManifestWithLoader): Promise { try { diff --git a/src/Umbraco.Web.UI.Client/libs/extension-api/registry/extension.registry.test.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.test.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/libs/extension-api/registry/extension.registry.test.ts rename to src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.test.ts index 477e41a54a..3901cab6ab 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-api/registry/extension.registry.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.test.ts @@ -1,6 +1,6 @@ import { expect } from '@open-wc/testing'; -import type { ManifestElementWithElementName, ManifestKind, ManifestWithMeta } from '../types'; -import { UmbExtensionRegistry } from './extension.registry'; +import type { ManifestElementWithElementName, ManifestKind, ManifestWithMeta } from '../types.js'; +import { UmbExtensionRegistry } from './extension.registry.js'; describe('UmbExtensionRegistry', () => { let extensionRegistry: UmbExtensionRegistry; diff --git a/src/Umbraco.Web.UI.Client/libs/extension-api/registry/extension.registry.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts similarity index 96% rename from src/Umbraco.Web.UI.Client/libs/extension-api/registry/extension.registry.ts rename to src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts index ab6193d188..1bbecf1ed2 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-api/registry/extension.registry.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts @@ -1,5 +1,11 @@ -import { BehaviorSubject, map, Observable, distinctUntilChanged, combineLatest } from 'rxjs'; -import type { ManifestTypeMap, ManifestBase, SpecificManifestTypeOrManifestBase, ManifestKind } from '../types'; +import type { ManifestTypeMap, ManifestBase, SpecificManifestTypeOrManifestBase, ManifestKind } from '../types.js'; +import { + BehaviorSubject, + map, + Observable, + distinctUntilChanged, + combineLatest, +} from '@umbraco-cms/backoffice/external/rxjs'; function extensionArrayMemoization( previousValue: Array, @@ -32,6 +38,8 @@ export class UmbExtensionRegistry< IncomingManifestTypes extends ManifestBase, ManifestTypes extends ManifestBase = IncomingManifestTypes | ManifestBase > { + readonly MANIFEST_TYPES: ManifestTypes = undefined as never; + // TODO: Use UniqueBehaviorSubject, as we don't want someone to edit data of extensions. private _extensions = new BehaviorSubject>([]); public readonly extensions = this._extensions.asObservable(); diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/type-guards/index.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/type-guards/index.ts new file mode 100644 index 0000000000..fb5cc49979 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/type-guards/index.ts @@ -0,0 +1,6 @@ +export * from './is-manifest-class-instance-type.function.js'; +export * from './is-manifest-classable-type.function.js'; +export * from './is-manifest-element-name-type.function.js'; +export * from './is-manifest-elementable-type.function.js'; +export * from './is-manifest-js-type.function.js'; +export * from './is-manifest-loader-type.function.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/extension-api/type-guards/is-manifest-class-instance-type.function.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/type-guards/is-manifest-class-instance-type.function.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/libs/extension-api/type-guards/is-manifest-class-instance-type.function.ts rename to src/Umbraco.Web.UI.Client/src/libs/extension-api/type-guards/is-manifest-class-instance-type.function.ts index 7472005e30..dc18c78b6b 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-api/type-guards/is-manifest-class-instance-type.function.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/type-guards/is-manifest-class-instance-type.function.ts @@ -1,4 +1,4 @@ -import type { ManifestClass, ManifestClassWithClassConstructor } from '../types'; +import type { ManifestClass, ManifestClassWithClassConstructor } from '../types.js'; export function isManifestClassConstructorType(manifest: unknown): manifest is ManifestClassWithClassConstructor { return typeof manifest === 'object' && manifest !== null && (manifest as ManifestClass).class !== undefined; diff --git a/src/Umbraco.Web.UI.Client/libs/extension-api/type-guards/is-manifest-classable-type.function.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/type-guards/is-manifest-classable-type.function.ts similarity index 78% rename from src/Umbraco.Web.UI.Client/libs/extension-api/type-guards/is-manifest-classable-type.function.ts rename to src/Umbraco.Web.UI.Client/src/libs/extension-api/type-guards/is-manifest-classable-type.function.ts index 04913b5d29..b5e83c4ba4 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-api/type-guards/is-manifest-classable-type.function.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/type-guards/is-manifest-classable-type.function.ts @@ -1,7 +1,7 @@ -import type { ManifestBase, ManifestClass } from '../types'; -import { isManifestJSType } from './is-manifest-js-type.function'; -import { isManifestLoaderType } from './is-manifest-loader-type.function'; -import { isManifestClassConstructorType } from './is-manifest-class-instance-type.function'; +import type { ManifestBase, ManifestClass } from '../types.js'; +import { isManifestJSType } from './is-manifest-js-type.function.js'; +import { isManifestLoaderType } from './is-manifest-loader-type.function.js'; +import { isManifestClassConstructorType } from './is-manifest-class-instance-type.function.js'; export function isManifestClassableType(manifest: ManifestBase): manifest is ManifestClass { return ( diff --git a/src/Umbraco.Web.UI.Client/libs/extension-api/type-guards/is-manifest-element-name-type.function.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/type-guards/is-manifest-element-name-type.function.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/libs/extension-api/type-guards/is-manifest-element-name-type.function.ts rename to src/Umbraco.Web.UI.Client/src/libs/extension-api/type-guards/is-manifest-element-name-type.function.ts index 2076793178..9c02956850 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-api/type-guards/is-manifest-element-name-type.function.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/type-guards/is-manifest-element-name-type.function.ts @@ -1,4 +1,4 @@ -import type { ManifestElement, ManifestElementWithElementName } from '../types'; +import type { ManifestElement, ManifestElementWithElementName } from '../types.js'; export function isManifestElementNameType(manifest: unknown): manifest is ManifestElementWithElementName { return typeof manifest === 'object' && manifest !== null && (manifest as ManifestElement).elementName !== undefined; diff --git a/src/Umbraco.Web.UI.Client/libs/extension-api/type-guards/is-manifest-elementable-type.function.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/type-guards/is-manifest-elementable-type.function.ts similarity index 81% rename from src/Umbraco.Web.UI.Client/libs/extension-api/type-guards/is-manifest-elementable-type.function.ts rename to src/Umbraco.Web.UI.Client/src/libs/extension-api/type-guards/is-manifest-elementable-type.function.ts index f0643d92f2..01ab3ca8a7 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-api/type-guards/is-manifest-elementable-type.function.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/type-guards/is-manifest-elementable-type.function.ts @@ -1,7 +1,7 @@ -import type { ManifestElement, ManifestBase } from '../types'; -import { isManifestElementNameType } from './is-manifest-element-name-type.function'; -import { isManifestJSType } from './is-manifest-js-type.function'; -import { isManifestLoaderType } from './is-manifest-loader-type.function'; +import type { ManifestElement, ManifestBase } from '../types.js'; +import { isManifestElementNameType } from './is-manifest-element-name-type.function.js'; +import { isManifestJSType } from './is-manifest-js-type.function.js'; +import { isManifestLoaderType } from './is-manifest-loader-type.function.js'; export function isManifestElementableType( manifest: ManifestBase diff --git a/src/Umbraco.Web.UI.Client/libs/extension-api/type-guards/is-manifest-js-type.function.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/type-guards/is-manifest-js-type.function.ts similarity index 77% rename from src/Umbraco.Web.UI.Client/libs/extension-api/type-guards/is-manifest-js-type.function.ts rename to src/Umbraco.Web.UI.Client/src/libs/extension-api/type-guards/is-manifest-js-type.function.ts index 27e9aefb1f..5220d57f83 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-api/type-guards/is-manifest-js-type.function.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/type-guards/is-manifest-js-type.function.ts @@ -1,4 +1,4 @@ -import type { ManifestBase, ManifestWithLoader } from '../types'; +import type { ManifestBase, ManifestWithLoader } from '../types.js'; export type ManifestJSType = ManifestWithLoader & { js: string }; export function isManifestJSType(manifest: ManifestBase | unknown): manifest is ManifestJSType { diff --git a/src/Umbraco.Web.UI.Client/libs/extension-api/type-guards/is-manifest-loader-type.function.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/type-guards/is-manifest-loader-type.function.ts similarity index 79% rename from src/Umbraco.Web.UI.Client/libs/extension-api/type-guards/is-manifest-loader-type.function.ts rename to src/Umbraco.Web.UI.Client/src/libs/extension-api/type-guards/is-manifest-loader-type.function.ts index 5ee9ef3411..bf607aa132 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-api/type-guards/is-manifest-loader-type.function.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/type-guards/is-manifest-loader-type.function.ts @@ -1,4 +1,4 @@ -import type { ManifestBase, ManifestWithLoader } from '../types'; +import type { ManifestBase, ManifestWithLoader } from '../types.js'; export type ManifestLoaderType = ManifestWithLoader & { loader: () => Promise; diff --git a/src/Umbraco.Web.UI.Client/libs/extension-api/types.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/types.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/extension-api/types.ts rename to src/Umbraco.Web.UI.Client/src/libs/extension-api/types.ts diff --git a/src/Umbraco.Web.UI.Client/libs/extension-api/umb-lifecycle.interface.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/umb-lifecycle.interface.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/libs/extension-api/umb-lifecycle.interface.ts rename to src/Umbraco.Web.UI.Client/src/libs/extension-api/umb-lifecycle.interface.ts index c2dd1f83a2..2057abf5f6 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-api/umb-lifecycle.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/umb-lifecycle.interface.ts @@ -1,5 +1,5 @@ -import type { UmbExtensionRegistry } from './registry/extension.registry'; -import { ManifestBase } from './types'; +import type { UmbExtensionRegistry } from './registry/extension.registry.js'; +import { ManifestBase } from './types.js'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export type UmbEntryPointOnInit = ( diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/append-to-frozen-array.function.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/append-to-frozen-array.function.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/observable-api/append-to-frozen-array.function.ts rename to src/Umbraco.Web.UI.Client/src/libs/observable-api/append-to-frozen-array.function.ts diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/array-state.test.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/array-state.test.ts similarity index 99% rename from src/Umbraco.Web.UI.Client/libs/observable-api/array-state.test.ts rename to src/Umbraco.Web.UI.Client/src/libs/observable-api/array-state.test.ts index 1a22dae157..13b92796c4 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/array-state.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/array-state.test.ts @@ -1,5 +1,5 @@ import { expect } from '@open-wc/testing'; -import { UmbArrayState } from './array-state'; +import { UmbArrayState } from './array-state.js'; describe('ArrayState', () => { type ObjectType = { key: string; another: string }; diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/array-state.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/array-state.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/libs/observable-api/array-state.ts rename to src/Umbraco.Web.UI.Client/src/libs/observable-api/array-state.ts index a4f67b2708..6e8dd84138 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/array-state.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/array-state.ts @@ -1,6 +1,6 @@ -import { UmbDeepState } from './deep-state'; -import { partialUpdateFrozenArray } from './partial-update-frozen-array.function'; -import { pushToUniqueArray } from './push-to-unique-array.function'; +import { UmbDeepState } from './deep-state.js'; +import { partialUpdateFrozenArray } from './partial-update-frozen-array.function.js'; +import { pushToUniqueArray } from './push-to-unique-array.function.js'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/basic-state.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/basic-state.ts similarity index 85% rename from src/Umbraco.Web.UI.Client/libs/observable-api/basic-state.ts rename to src/Umbraco.Web.UI.Client/src/libs/observable-api/basic-state.ts index 30972d0ef4..2090ed0a77 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/basic-state.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/basic-state.ts @@ -1,4 +1,4 @@ -import { BehaviorSubject } from 'rxjs'; +import { BehaviorSubject } from '@umbraco-cms/backoffice/external/rxjs'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/boolean-state.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/boolean-state.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/libs/observable-api/boolean-state.ts rename to src/Umbraco.Web.UI.Client/src/libs/observable-api/boolean-state.ts index 85a91d895d..d470484376 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/boolean-state.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/boolean-state.ts @@ -1,4 +1,4 @@ -import { UmbBasicState } from './basic-state'; +import { UmbBasicState } from './basic-state.js'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/class-state.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/class-state.ts similarity index 89% rename from src/Umbraco.Web.UI.Client/libs/observable-api/class-state.ts rename to src/Umbraco.Web.UI.Client/src/libs/observable-api/class-state.ts index 586710e38b..6196c31822 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/class-state.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/class-state.ts @@ -1,4 +1,4 @@ -import { BehaviorSubject } from 'rxjs'; +import { BehaviorSubject } from '@umbraco-cms/backoffice/external/rxjs'; interface UmbClassStateData { equal(otherClass: UmbClassStateData): boolean; diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/create-observable-part.function.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/create-observable-part.function.ts similarity index 81% rename from src/Umbraco.Web.UI.Client/libs/observable-api/create-observable-part.function.ts rename to src/Umbraco.Web.UI.Client/src/libs/observable-api/create-observable-part.function.ts index c795965a84..446f8517df 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/create-observable-part.function.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/create-observable-part.function.ts @@ -1,7 +1,7 @@ -import { distinctUntilChanged, map, Observable, shareReplay } from 'rxjs'; -import { MemoizationFunction } from './memoization-function'; -import { MappingFunction } from './mapping-function'; -import { defaultMemoization } from './default-memoization'; +import { MemoizationFunction } from './memoization-function.js'; +import { MappingFunction } from './mapping-function.js'; +import { defaultMemoization } from './default-memoization.js'; +import { distinctUntilChanged, map, Observable, shareReplay } from '@umbraco-cms/backoffice/external/rxjs'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/deep-freeze.function.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/deep-freeze.function.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/observable-api/deep-freeze.function.ts rename to src/Umbraco.Web.UI.Client/src/libs/observable-api/deep-freeze.function.ts diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/deep-state.test.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/deep-state.test.ts similarity index 96% rename from src/Umbraco.Web.UI.Client/libs/observable-api/deep-state.test.ts rename to src/Umbraco.Web.UI.Client/src/libs/observable-api/deep-state.test.ts index f1971dfa40..5930132097 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/deep-state.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/deep-state.test.ts @@ -1,5 +1,5 @@ import { expect } from '@open-wc/testing'; -import { UmbDeepState } from './deep-state'; +import { UmbDeepState } from './deep-state.js'; describe('UmbDeepState', () => { type ObjectType = { key: string; another: string }; diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/deep-state.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/deep-state.ts similarity index 83% rename from src/Umbraco.Web.UI.Client/libs/observable-api/deep-state.ts rename to src/Umbraco.Web.UI.Client/src/libs/observable-api/deep-state.ts index c67daa927c..ddc336675e 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/deep-state.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/deep-state.ts @@ -1,9 +1,9 @@ -import { BehaviorSubject } from 'rxjs'; -import { createObservablePart } from './create-observable-part.function'; -import { deepFreeze } from './deep-freeze.function'; -import type { MappingFunction } from './mapping-function'; -import type { MemoizationFunction } from './memoization-function'; -import { naiveObjectComparison } from './naive-object-comparison'; +import { createObservablePart } from './create-observable-part.function.js'; +import { deepFreeze } from './deep-freeze.function.js'; +import type { MappingFunction } from './mapping-function.js'; +import type { MemoizationFunction } from './memoization-function.js'; +import { naiveObjectComparison } from './naive-object-comparison.js'; +import { BehaviorSubject } from '@umbraco-cms/backoffice/external/rxjs'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/default-memoization.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/default-memoization.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/libs/observable-api/default-memoization.ts rename to src/Umbraco.Web.UI.Client/src/libs/observable-api/default-memoization.ts index f8811febad..e8e1522495 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/default-memoization.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/default-memoization.ts @@ -1,4 +1,4 @@ -import { naiveObjectComparison } from './naive-object-comparison'; +import { naiveObjectComparison } from './naive-object-comparison.js'; export function defaultMemoization(previousValue: any, currentValue: any): boolean { if (typeof previousValue === 'object' && typeof currentValue === 'object') { diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/filter-frozen-array.function.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/filter-frozen-array.function.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/observable-api/filter-frozen-array.function.ts rename to src/Umbraco.Web.UI.Client/src/libs/observable-api/filter-frozen-array.function.ts diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/index.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/index.ts new file mode 100644 index 0000000000..4a9aefbd0a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/index.ts @@ -0,0 +1,15 @@ +export * from './observer.controller.js'; +export * from './observer.js'; +export * from './basic-state.js'; +export * from './boolean-state.js'; +export * from './number-state.js'; +export * from './string-state.js'; +export * from './class-state.js'; +export * from './deep-state.js'; +export * from './array-state.js'; +export * from './object-state.js'; +export * from './create-observable-part.function.js'; +export * from './append-to-frozen-array.function.js'; +export * from './filter-frozen-array.function.js'; +export * from './partial-update-frozen-array.function.js'; +export * from './mapping-function.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/mapping-function.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/mapping-function.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/observable-api/mapping-function.ts rename to src/Umbraco.Web.UI.Client/src/libs/observable-api/mapping-function.ts diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/memoization-function.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/memoization-function.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/observable-api/memoization-function.ts rename to src/Umbraco.Web.UI.Client/src/libs/observable-api/memoization-function.ts diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/naive-object-comparison.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/naive-object-comparison.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/observable-api/naive-object-comparison.ts rename to src/Umbraco.Web.UI.Client/src/libs/observable-api/naive-object-comparison.ts diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/number-state.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/number-state.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/libs/observable-api/number-state.ts rename to src/Umbraco.Web.UI.Client/src/libs/observable-api/number-state.ts index 5556d8956c..ff8dce516f 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/number-state.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/number-state.ts @@ -1,4 +1,4 @@ -import { UmbBasicState } from './basic-state'; +import { UmbBasicState } from './basic-state.js'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/object-state.test.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/object-state.test.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/libs/observable-api/object-state.test.ts rename to src/Umbraco.Web.UI.Client/src/libs/observable-api/object-state.test.ts index 75b4d3bbe2..f5e39826ce 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/object-state.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/object-state.test.ts @@ -1,5 +1,5 @@ import { expect } from '@open-wc/testing'; -import { UmbObjectState } from './object-state'; +import { UmbObjectState } from './object-state.js'; describe('UmbObjectState', () => { type ObjectType = { key: string; another: string }; diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/object-state.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/object-state.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/libs/observable-api/object-state.ts rename to src/Umbraco.Web.UI.Client/src/libs/observable-api/object-state.ts index 6c4b32a115..d472bfde55 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/object-state.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/object-state.ts @@ -1,4 +1,4 @@ -import { UmbDeepState } from './deep-state'; +import { UmbDeepState } from './deep-state.js'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/observer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/observer.controller.ts similarity index 87% rename from src/Umbraco.Web.UI.Client/libs/observable-api/observer.controller.ts rename to src/Umbraco.Web.UI.Client/src/libs/observable-api/observer.controller.ts index dbe3b86166..d682afcafc 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/observer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/observer.controller.ts @@ -1,5 +1,5 @@ -import { Observable } from 'rxjs'; -import { UmbObserver } from './observer'; +import { UmbObserver } from './observer.js'; +import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbControllerInterface, UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbObserverController extends UmbObserver implements UmbControllerInterface { diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/observer.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/observer.ts similarity index 77% rename from src/Umbraco.Web.UI.Client/libs/observable-api/observer.ts rename to src/Umbraco.Web.UI.Client/src/libs/observable-api/observer.ts index 20eb7a0a34..68ff9088b3 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/observer.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/observer.ts @@ -1,4 +1,4 @@ -import { Observable, Subscription } from 'rxjs'; +import { Observable, Subscription, lastValueFrom } from '@umbraco-cms/backoffice/external/rxjs'; export class UmbObserver { #source!: Observable; @@ -10,6 +10,10 @@ export class UmbObserver { this.#subscription = source.subscribe(callback); } + public async asPromise() { + return await lastValueFrom(this.#source); + } + hostConnected() { if (this.#subscription.closed) { this.#subscription = this.#source.subscribe(this.#callback); diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/partial-update-frozen-array.function.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/partial-update-frozen-array.function.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/observable-api/partial-update-frozen-array.function.ts rename to src/Umbraco.Web.UI.Client/src/libs/observable-api/partial-update-frozen-array.function.ts diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/push-to-unique-array.function.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/push-to-unique-array.function.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/observable-api/push-to-unique-array.function.ts rename to src/Umbraco.Web.UI.Client/src/libs/observable-api/push-to-unique-array.function.ts diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/string-state.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/string-state.ts similarity index 87% rename from src/Umbraco.Web.UI.Client/libs/observable-api/string-state.ts rename to src/Umbraco.Web.UI.Client/src/libs/observable-api/string-state.ts index 632c28e1b1..fb08c7c89f 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/string-state.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/string-state.ts @@ -1,4 +1,4 @@ -import { UmbBasicState } from './basic-state'; +import { UmbBasicState } from './basic-state.js'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/browser-handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts similarity index 83% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/browser-handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts index 90578a10e5..a477b869cc 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/browser-handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts @@ -1,36 +1,36 @@ -import { handlers as dataTypeHandlers } from './handlers/data-type'; -import { handlers as relationTypeHandlers } from './handlers/relation-type.handlers'; -import { handlers as documentTypeHandlers } from './handlers/document-type.handlers'; -import { handlers as installHandlers } from './handlers/install.handlers'; -import * as manifestsHandlers from './handlers/manifests.handlers'; -import { handlers as publishedStatusHandlers } from './handlers/published-status.handlers'; -import * as serverHandlers from './handlers/server.handlers'; -import { handlers as upgradeHandlers } from './handlers/upgrade.handlers'; -import { handlers as userHandlers } from './handlers/user.handlers'; -import { handlers as telemetryHandlers } from './handlers/telemetry.handlers'; -import { handlers as userGroupsHandlers } from './handlers/user-group.handlers'; -import { handlers as examineManagementHandlers } from './handlers/examine-management.handlers'; -import { handlers as modelsBuilderHandlers } from './handlers/modelsbuilder.handlers'; -import { handlers as healthCheckHandlers } from './handlers/health-check.handlers'; -import { handlers as profilingHandlers } from './handlers/performance-profiling.handlers'; -import { handlers as documentHandlers } from './handlers/document.handlers'; -import { handlers as mediaHandlers } from './handlers/media.handlers'; -import { handlers as dictionaryHandlers } from './handlers/dictionary.handlers'; -import { handlers as mediaTypeHandlers } from './handlers/media-type.handlers'; -import { handlers as memberGroupHandlers } from './handlers/member-group.handlers'; -import { handlers as memberHandlers } from './handlers/member.handlers'; -import { handlers as memberTypeHandlers } from './handlers/member-type.handlers'; -import { handlers as templateHandlers } from './handlers/template.handlers'; -import { handlers as languageHandlers } from './handlers/language.handlers'; -import { handlers as cultureHandlers } from './handlers/culture.handlers'; -import { handlers as redirectManagementHandlers } from './handlers/redirect-management.handlers'; -import { handlers as logViewerHandlers } from './handlers/log-viewer.handlers'; -import { handlers as packageHandlers } from './handlers/package.handlers'; -import { handlers as rteEmbedHandlers } from './handlers/rte-embed.handlers'; -import { handlers as stylesheetHandlers } from './handlers/stylesheet.handlers'; -import { handlers as partialViewsHandlers } from './handlers/partial-views.handlers'; -import { handlers as tagHandlers } from './handlers/tag-handlers'; -import { handlers as configHandlers } from './handlers/config.handlers'; +import { handlers as dataTypeHandlers } from './handlers/data-type/index.js'; +import { handlers as relationTypeHandlers } from './handlers/relation-type.handlers.js'; +import { handlers as documentTypeHandlers } from './handlers/document-type.handlers.js'; +import { handlers as installHandlers } from './handlers/install.handlers.js'; +import * as manifestsHandlers from './handlers/manifests.handlers.js'; +import { handlers as publishedStatusHandlers } from './handlers/published-status.handlers.js'; +import * as serverHandlers from './handlers/server.handlers.js'; +import { handlers as upgradeHandlers } from './handlers/upgrade.handlers.js'; +import { handlers as userHandlers } from './handlers/user.handlers.js'; +import { handlers as telemetryHandlers } from './handlers/telemetry.handlers.js'; +import { handlers as userGroupsHandlers } from './handlers/user-group.handlers.js'; +import { handlers as examineManagementHandlers } from './handlers/examine-management.handlers.js'; +import { handlers as modelsBuilderHandlers } from './handlers/modelsbuilder.handlers.js'; +import { handlers as healthCheckHandlers } from './handlers/health-check.handlers.js'; +import { handlers as profilingHandlers } from './handlers/performance-profiling.handlers.js'; +import { handlers as documentHandlers } from './handlers/document.handlers.js'; +import { handlers as mediaHandlers } from './handlers/media.handlers.js'; +import { handlers as dictionaryHandlers } from './handlers/dictionary.handlers.js'; +import { handlers as mediaTypeHandlers } from './handlers/media-type.handlers.js'; +import { handlers as memberGroupHandlers } from './handlers/member-group.handlers.js'; +import { handlers as memberHandlers } from './handlers/member.handlers.js'; +import { handlers as memberTypeHandlers } from './handlers/member-type.handlers.js'; +import { handlers as templateHandlers } from './handlers/template.handlers.js'; +import { handlers as languageHandlers } from './handlers/language.handlers.js'; +import { handlers as cultureHandlers } from './handlers/culture.handlers.js'; +import { handlers as redirectManagementHandlers } from './handlers/redirect-management.handlers.js'; +import { handlers as logViewerHandlers } from './handlers/log-viewer.handlers.js'; +import { handlers as packageHandlers } from './handlers/package.handlers.js'; +import { handlers as rteEmbedHandlers } from './handlers/rte-embed.handlers.js'; +import { handlers as stylesheetHandlers } from './handlers/stylesheet.handlers.js'; +import { handlers as partialViewsHandlers } from './handlers/partial-views.handlers.js'; +import { handlers as tagHandlers } from './handlers/tag-handlers.js'; +import { handlers as configHandlers } from './handlers/config.handlers.js'; const handlers = [ serverHandlers.serverVersionHandler, diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/culture.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/culture.data.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/culture.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/culture.data.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/data-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type.data.ts similarity index 68% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/data-type.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/data-type.data.ts index fa181f4841..970d4b0b42 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/data-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type.data.ts @@ -1,6 +1,6 @@ -import { UmbEntityTreeData } from './entity-tree.data'; -import { UmbEntityData } from './entity.data'; -import { createFolderTreeItem } from './utils'; +import { UmbEntityTreeData } from './entity-tree.data.js'; +import { UmbEntityData } from './entity.data.js'; +import { createFolderTreeItem } from './utils.js'; import type { FolderTreeItemResponseModel, DataTypeResponseModel, @@ -25,7 +25,7 @@ export const data: Array = parentId: null, name: 'Textstring', propertyEditorAlias: 'Umbraco.TextBox', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.TextBox', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.TextBox', values: [], }, { @@ -35,7 +35,7 @@ export const data: Array = id: 'dt-textBox', parentId: null, propertyEditorAlias: 'Umbraco.TextBox', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.TextBox', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.TextBox', values: [ { alias: 'maxChars', @@ -50,7 +50,7 @@ export const data: Array = id: 'dt-textArea', parentId: null, propertyEditorAlias: 'Umbraco.TextArea', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.TextArea', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.TextArea', values: [], }, { @@ -70,7 +70,7 @@ export const data: Array = id: 'dt-colorPicker', parentId: null, propertyEditorAlias: 'Umbraco.ColorPicker', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.ColorPicker', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.ColorPicker', values: [ { alias: 'useLabel', @@ -126,7 +126,7 @@ export const data: Array = id: 'dt-contentPicker', parentId: null, propertyEditorAlias: 'Umbraco.ContentPicker', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.DocumentPicker', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.DocumentPicker', values: [ { alias: 'validationLimit', @@ -141,7 +141,7 @@ export const data: Array = id: 'dt-eyeDropper', parentId: null, propertyEditorAlias: 'Umbraco.ColorPicker.EyeDropper', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.EyeDropper', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.EyeDropper', values: [ { //showPalette @@ -178,7 +178,7 @@ export const data: Array = id: 'dt-multiUrlPicker', parentId: null, propertyEditorAlias: 'Umbraco.MultiUrlPicker', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.MultiUrlPicker', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.MultiUrlPicker', values: [ { alias: 'overlaySize', @@ -209,7 +209,7 @@ export const data: Array = id: 'dt-multiNodeTreePicker', parentId: null, propertyEditorAlias: 'Umbraco.MultiNodeTreePicker', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.TreePicker', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.TreePicker', values: [], }, { @@ -219,7 +219,7 @@ export const data: Array = id: 'dt-datePicker', parentId: null, propertyEditorAlias: 'Umbraco.DateTime', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.DatePicker', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.DatePicker', values: [ { alias: 'format', @@ -243,7 +243,6 @@ export const data: Array = id: 'dt-datePicker-time', parentId: null, propertyEditorAlias: 'Umbraco.DateTime', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.DatePicker', values: [ { alias: 'format', @@ -262,7 +261,7 @@ export const data: Array = id: 'dt-time', parentId: null, propertyEditorAlias: 'Umbraco.DateTime', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.DatePicker', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.DatePicker', values: [ { alias: 'format', @@ -281,7 +280,7 @@ export const data: Array = id: 'dt-email', parentId: null, propertyEditorAlias: 'Umbraco.EmailAddress', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.Email', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Email', values: [], }, { @@ -291,7 +290,7 @@ export const data: Array = id: 'dt-multipleTextString', parentId: null, propertyEditorAlias: 'Umbraco.MultipleTextString', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.MultipleTextString', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.MultipleTextString', values: [ { alias: 'minNumber', @@ -310,7 +309,7 @@ export const data: Array = id: 'dt-dropdown', parentId: null, propertyEditorAlias: 'Umbraco.DropDown.Flexible', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.Dropdown', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Dropdown', values: [], }, { @@ -320,7 +319,7 @@ export const data: Array = id: 'dt-slider', parentId: null, propertyEditorAlias: 'Umbraco.Slider', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.Slider', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Slider', values: [ { alias: 'enableRange', @@ -355,7 +354,7 @@ export const data: Array = id: 'dt-toggle', parentId: null, propertyEditorAlias: 'Umbraco.TrueFalse', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', values: [ { alias: 'default', @@ -382,7 +381,7 @@ export const data: Array = id: 'dt-tags', parentId: null, propertyEditorAlias: 'Umbraco.Tags', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.Tags', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Tags', values: [ { alias: 'group', @@ -401,7 +400,7 @@ export const data: Array = id: 'dt-markdownEditor', parentId: null, propertyEditorAlias: 'Umbraco.MarkdownEditor', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.MarkdownEditor', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.MarkdownEditor', values: [], }, { @@ -411,7 +410,7 @@ export const data: Array = id: 'dt-radioButtonList', parentId: null, propertyEditorAlias: 'Umbraco.RadioButtonList', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.RadioButtonList', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.RadioButtonList', values: [ { alias: 'items', @@ -430,7 +429,7 @@ export const data: Array = id: 'dt-checkboxList', parentId: null, propertyEditorAlias: 'Umbraco.CheckboxList', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.CheckboxList', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.CheckboxList', values: [ { alias: 'items', @@ -449,7 +448,7 @@ export const data: Array = id: 'dt-blockList', parentId: null, propertyEditorAlias: 'Umbraco.BlockList', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.BlockList', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.BlockList', values: [], }, { @@ -459,7 +458,7 @@ export const data: Array = id: 'dt-mediaPicker', parentId: null, propertyEditorAlias: 'Umbraco.MediaPicker3', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.MediaPicker', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.MediaPicker', values: [], }, { @@ -469,7 +468,7 @@ export const data: Array = id: 'dt-imageCropper', parentId: null, propertyEditorAlias: 'Umbraco.ImageCropper', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.ImageCropper', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.ImageCropper', values: [], }, { @@ -479,7 +478,7 @@ export const data: Array = id: 'dt-uploadField', parentId: null, propertyEditorAlias: 'Umbraco.UploadField', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.UploadField', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.UploadField', values: [ { alias: 'fileExtensions', @@ -498,7 +497,7 @@ export const data: Array = id: 'dt-blockGrid', parentId: null, propertyEditorAlias: 'Umbraco.BlockGrid', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.BlockGrid', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.BlockGrid', values: [], }, { @@ -508,7 +507,7 @@ export const data: Array = id: 'dt-collectionView', parentId: null, propertyEditorAlias: 'Umbraco.ListView', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.CollectionView', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.CollectionView', values: [], }, { @@ -518,7 +517,7 @@ export const data: Array = id: 'dt-iconPicker', parentId: null, propertyEditorAlias: 'Umbraco.IconPicker', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.IconPicker', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.IconPicker', values: [], }, { @@ -528,7 +527,7 @@ export const data: Array = id: 'dt-numberRange', parentId: null, propertyEditorAlias: 'Umbraco.JSON', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.NumberRange', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.NumberRange', values: [], }, { @@ -538,7 +537,7 @@ export const data: Array = id: 'dt-orderDirection', parentId: null, propertyEditorAlias: 'Umbraco.JSON', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.OrderDirection', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.OrderDirection', values: [], }, { @@ -548,7 +547,7 @@ export const data: Array = id: 'dt-overlaySize', parentId: null, propertyEditorAlias: 'Umbraco.JSON', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.OverlaySize', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.OverlaySize', values: [], }, { @@ -558,77 +557,8 @@ export const data: Array = id: 'dt-richTextEditor', parentId: null, propertyEditorAlias: 'Umbraco.TinyMCE', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.TinyMCE', - values: [ - { - alias: 'hideLabel', - value: true, - }, - { alias: 'dimensions', value: { height: 500 } }, - { alias: 'maxImageSize', value: 500 }, - { alias: 'ignoreUserStartNodes', value: false }, - { - alias: 'validElements', - value: - '+a[id|style|rel|data-id|data-udi|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],-strong/-b[class|style],-em/-i[class|style],-strike[class|style],-s[class|style],-u[class|style],#p[id|style|dir|class|align],-ol[class|reversed|start|style|type],-ul[class|style],-li[class|style],br[class],img[id|dir|lang|longdesc|usemap|style|class|src|onmouseover|onmouseout|border|alt=|title|hspace|vspace|width|height|align|umbracoorgwidth|umbracoorgheight|onresize|onresizestart|onresizeend|rel|data-id],-sub[style|class],-sup[style|class],-blockquote[dir|style|class],-table[border=0|cellspacing|cellpadding|width|height|class|align|summary|style|dir|id|lang|bgcolor|background|bordercolor],-tr[id|lang|dir|class|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor],tbody[id|class],thead[id|class],tfoot[id|class],#td[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor|scope],-th[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|scope],caption[id|lang|dir|class|style],-div[id|dir|class|align|style],-span[class|align|style],-pre[class|align|style],address[class|align|style],-h1[id|dir|class|align|style],-h2[id|dir|class|align|style],-h3[id|dir|class|align|style],-h4[id|dir|class|align|style],-h5[id|dir|class|align|style],-h6[id|style|dir|class|align|style],hr[class|style],small[class|style],dd[id|class|title|style|dir|lang],dl[id|class|title|style|dir|lang],dt[id|class|title|style|dir|lang],object[class|id|width|height|codebase|*],param[name|value|_value|class],embed[type|width|height|src|class|*],map[name|class],area[shape|coords|href|alt|target|class],bdo[class],button[class],iframe[*],figure,figcaption,video[*],audio[*],picture[*],source[*],canvas[*]', - }, - { alias: 'invalidElements', value: 'font' }, - // { alias: 'stylesheets', value: ['/css/rte-content.css'] }, - { - alias: 'toolbar', - value: [ - 'ace', - 'undo', - 'redo', - 'styles', - 'bold', - 'italic', - 'alignleft', - 'aligncenter', - 'alignright', - 'bullist', - 'numlist', - 'outdent', - 'indent', - 'link', - 'unlink', - 'anchor', - 'table', - 'umbmediapicker', - 'umbmacro', - 'umbembeddialog', - ], - }, - { - alias: 'plugins', - value: [ - { - name: 'anchor', - }, - { - name: 'charmap', - }, - { - name: 'table', - }, - { - name: 'lists', - }, - { - name: 'advlist', - }, - { - name: 'autolink', - }, - { - name: 'directionality', - }, - { - name: 'searchreplace', - }, - ], - }, - ], + propertyEditorUiAlias: 'Umb.PropertyEditorUi.TinyMCE', + values: [], }, { $type: '', @@ -637,7 +567,7 @@ export const data: Array = id: 'dt-label', parentId: null, propertyEditorAlias: 'Umbraco.Label', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.Label', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Label', values: [], }, { @@ -647,7 +577,7 @@ export const data: Array = id: 'dt-integer', parentId: null, propertyEditorAlias: 'Umbraco.Integer', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.Integer', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Integer', values: [], }, { @@ -657,7 +587,7 @@ export const data: Array = id: 'dt-decimal', parentId: null, propertyEditorAlias: 'Umbraco.Decimal', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.Decimal', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Decimal', values: [ { alias: 'step', @@ -672,7 +602,7 @@ export const data: Array = id: 'dt-userPicker', parentId: null, propertyEditorAlias: 'Umbraco.UserPicker', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.UserPicker', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.UserPicker', values: [], }, { @@ -682,7 +612,7 @@ export const data: Array = id: 'dt-memberPicker', parentId: null, propertyEditorAlias: 'Umbraco.MemberPicker', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.MemberPicker', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.MemberPicker', values: [], }, { @@ -692,7 +622,7 @@ export const data: Array = id: 'dt-memberGroupPicker', parentId: null, propertyEditorAlias: 'Umbraco.MemberGroupPicker', - propertyEditorUiAlias: 'Umb.PropertyEditorUI.MemberGroupPicker', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.MemberGroupPicker', values: [], }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/data.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/data.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/dictionary.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/dictionary.data.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/dictionary.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/dictionary.data.ts index aaf776a892..b0df1aaf16 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/dictionary.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/dictionary.data.ts @@ -1,5 +1,5 @@ -import { UmbEntityData } from './entity.data'; -import { createEntityTreeItem } from './utils'; +import { UmbEntityData } from './entity.data.js'; +import { createEntityTreeItem } from './utils.js'; import type { DictionaryItemResponseModel, EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export const data: Array = [ diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/document-blueprint.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document-blueprint.data.ts similarity index 85% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/document-blueprint.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/document-blueprint.data.ts index 7a3258640c..db98035c80 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/document-blueprint.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document-blueprint.data.ts @@ -1,5 +1,5 @@ -import type { DocumentBlueprintDetails } from '../../../packages/documents/document-blueprints/types'; -import { UmbEntityData } from './entity.data'; +import type { DocumentBlueprintDetails } from '../../packages/documents/document-blueprints/types.js'; +import { UmbEntityData } from './entity.data.js'; export const data: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/document-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type.data.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/document-type.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/document-type.data.ts index 1237b019c1..35c3459cca 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/document-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type.data.ts @@ -1,5 +1,5 @@ -import { UmbEntityData } from './entity.data'; -import { createDocumentTypeTreeItem } from './utils'; +import { UmbEntityData } from './entity.data.js'; +import { createDocumentTypeTreeItem } from './utils.js'; import { DocumentTypeTreeItemResponseModel, DocumentTypeResponseModel, @@ -152,6 +152,25 @@ export const data: Array = [ labelOnTop: false, }, }, + { + id: '7b', + containerId: 'all-properties-group-key', + alias: 'datePicker-b', + name: 'Date Picker With Time', + description: '', + dataTypeId: 'dt-datePicker-time', + variesByCulture: false, + variesBySegment: false, + validation: { + mandatory: true, + mandatoryMessage: null, + regEx: null, + regExMessage: null, + }, + appearance: { + labelOnTop: false, + }, + }, { id: '8', containerId: 'all-properties-group-key', diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/document.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts similarity index 99% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/document.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts index 3091e560c0..ce3c4bc567 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/document.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts @@ -1,5 +1,5 @@ -import { UmbEntityData } from './entity.data'; -import { createDocumentTreeItem } from './utils'; +import { UmbEntityData } from './entity.data.js'; +import { createDocumentTreeItem } from './utils.js'; import { ContentStateModel, DocumentResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/entity-tree.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/entity-tree.data.ts similarity index 97% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/entity-tree.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/entity-tree.data.ts index d309faa09c..ce2c3710f7 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/entity-tree.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/entity-tree.data.ts @@ -1,4 +1,4 @@ -import { UmbEntityData } from './entity.data'; +import { UmbEntityData } from './entity.data.js'; import { TreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbId } from '@umbraco-cms/backoffice/id'; diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/entity.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/entity.data.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/entity.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/entity.data.ts index 04fb1771b5..cbab9f2207 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/entity.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/entity.data.ts @@ -1,4 +1,4 @@ -import { UmbData } from './data'; +import { UmbData } from './data.js'; import type { UmbEntityBase } from '@umbraco-cms/backoffice/models'; // Temp mocked database diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/examine.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/examine.data.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/examine.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/examine.data.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/health-check.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/health-check.data.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/health-check.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/health-check.data.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/languages.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/languages.data.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/languages.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/languages.data.ts index 5d0be1a5f6..1e3c9aaed3 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/languages.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/languages.data.ts @@ -1,4 +1,4 @@ -import { UmbData } from './data'; +import { UmbData } from './data.js'; import { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; // Temp mocked database diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/log-viewer.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/log-viewer.data.ts similarity index 99% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/log-viewer.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/log-viewer.data.ts index 30ea41f140..3b147d743a 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/log-viewer.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/log-viewer.data.ts @@ -1,5 +1,5 @@ -import { logs } from './logs.data'; -import { UmbData } from './data'; +import { logs } from './logs.data.js'; +import { UmbData } from './data.js'; import { LogMessageResponseModel, LogTemplateResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/logs.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/logs.data.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/logs.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/logs.data.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/media-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media-type.data.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/media-type.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/media-type.data.ts index d8aa9fa56b..93ed60a5ca 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/media-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/media-type.data.ts @@ -1,6 +1,6 @@ -import type { MediaTypeDetails } from '../../../packages/media/media-types/types'; -import { UmbEntityData } from './entity.data'; -import { createFolderTreeItem } from './utils'; +import type { MediaTypeDetails } from '../../packages/media/media-types/types.js'; +import { UmbEntityData } from './entity.data.js'; +import { createFolderTreeItem } from './utils.js'; import { FolderTreeItemResponseModel, PagedFolderTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export const data: Array = [ diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/media.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media.data.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/media.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/media.data.ts index 40a3d705d4..a42801e05c 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/media.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/media.data.ts @@ -1,7 +1,7 @@ -import type { MediaDetails } from '../../../packages/media/media'; -import { UmbEntityTreeData } from './entity-tree.data'; -import { UmbEntityData } from './entity.data'; -import { createContentTreeItem } from './utils'; +import type { MediaDetails } from '../../packages/media/media/index.js'; +import { UmbEntityTreeData } from './entity-tree.data.js'; +import { UmbEntityData } from './entity.data.js'; +import { createContentTreeItem } from './utils.js'; import { ContentTreeItemResponseModel, PagedContentTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export const data: Array = [ diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/member-group.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/member-group.data.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/member-group.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/member-group.data.ts index daaf993973..0d4ea9747c 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/member-group.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/member-group.data.ts @@ -1,6 +1,6 @@ -import type { MemberGroupDetails } from '../../../packages/members/member-groups/types'; -import { UmbEntityData } from './entity.data'; -import { createEntityTreeItem } from './utils'; +import type { MemberGroupDetails } from '../../packages/members/member-groups/types.js'; +import { UmbEntityData } from './entity.data.js'; +import { createEntityTreeItem } from './utils.js'; import { EntityTreeItemResponseModel, PagedEntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export const data: Array = [ diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/member-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/member-type.data.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/member-type.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/member-type.data.ts index eec647ae53..69ba4f66d0 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/member-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/member-type.data.ts @@ -1,6 +1,6 @@ -import type { MemberTypeDetails } from '../../../packages/members/member-types/types'; -import { UmbData } from './data'; -import { createEntityTreeItem } from './utils'; +import type { MemberTypeDetails } from '../../packages/members/member-types/types.js'; +import { UmbData } from './data.js'; +import { createEntityTreeItem } from './utils.js'; import { EntityTreeItemResponseModel, PagedEntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export const data: Array = [ diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/member.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/member.data.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/member.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/member.data.ts index 5c700c0306..c89516a4e3 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/member.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/member.data.ts @@ -1,6 +1,6 @@ -import type { MemberDetails } from '../../../packages/members/members/types'; -import { UmbEntityData } from './entity.data'; -import { createEntityTreeItem } from './utils'; +import type { MemberDetails } from '../../packages/members/members/types.js'; +import { UmbEntityData } from './entity.data.js'; +import { createEntityTreeItem } from './utils.js'; import type { EntityTreeItemResponseModel, PagedEntityTreeItemResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/partial-views.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/partial-views.data.ts similarity index 96% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/partial-views.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/partial-views.data.ts index 0086e48c8a..003043d9fc 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/partial-views.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/partial-views.data.ts @@ -1,5 +1,5 @@ -import { UmbEntityData } from './entity.data'; -import { createFileSystemTreeItem } from './utils'; +import { UmbEntityData } from './entity.data.js'; +import { createFileSystemTreeItem } from './utils.js'; import { FileSystemTreeItemPresentationModel, PagedFileSystemTreeItemPresentationModel, diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/relation-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/relation-type.data.ts similarity index 97% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/relation-type.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/relation-type.data.ts index c39f9dc2e4..73c7061746 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/relation-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/relation-type.data.ts @@ -1,5 +1,5 @@ -import { UmbEntityData } from './entity.data'; -import { createEntityTreeItem } from './utils'; +import { UmbEntityData } from './entity.data.js'; +import { createEntityTreeItem } from './utils.js'; import type { EntityTreeItemResponseModel, RelationTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; // TODO: investigate why we don't get an entity type as part of the RelationTypeResponseModel diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/stylesheet.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet.data.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/stylesheet.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet.data.ts index f73ee09968..aa66e2935a 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/stylesheet.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet.data.ts @@ -1,5 +1,5 @@ -import { UmbEntityData } from './entity.data'; -import { createFileSystemTreeItem } from './utils'; +import { UmbEntityData } from './entity.data.js'; +import { createFileSystemTreeItem } from './utils.js'; import { FileSystemTreeItemPresentationModel, PagedFileSystemTreeItemPresentationModel, diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/template.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/template.data.ts similarity index 61% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/template.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/template.data.ts index 7509e0b331..74eba67876 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/template.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/template.data.ts @@ -1,5 +1,5 @@ -import { UmbEntityData } from './entity.data'; -import { createEntityTreeItem } from './utils'; +import { UmbEntityData } from './entity.data.js'; +import { createEntityTreeItem } from './utils.js'; import { UmbId } from '@umbraco-cms/backoffice/id'; import { EntityTreeItemResponseModel, @@ -7,6 +7,7 @@ import { TemplateResponseModel, TemplateScaffoldResponseModel, CreateTemplateRequestModel, + TemplateItemResponseModel, } from '@umbraco-cms/backoffice/backend-api'; type TemplateDBItem = TemplateResponseModel & EntityTreeItemResponseModel; @@ -21,6 +22,11 @@ const createTemplate = (dbItem: TemplateDBItem): TemplateResponseModel => { }; }; +const createTemplateItem = (dbItem: TemplateDBItem): TemplateItemResponseModel => ({ + name: dbItem.name, + id: dbItem.id, +}); + export const data: Array = [ { $type: '', @@ -72,16 +78,82 @@ export const data: Array = [ content: '@using Umbraco.Cms.Web.Common.PublishedModels;\n@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage\r\n@using ContentModels = Umbraco.Cms.Web.Common.PublishedModels;\r\n@{\r\n\tLayout = null;\r\n}', }, + { + $type: '', + id: '9a84c0b3-03b4-4dd4-84ac-706740acwerer0f72', + isContainer: false, + parentId: '9a84c0b3-03b4-4dd4-84ac-706740ac0f71', + name: 'Has Master Template', + type: 'template', + icon: 'umb:layout', + hasChildren: false, + alias: 'hasMasterTemplate', + content: + '@using Umbraco.Cms.Web.Common.PublishedModels;\n@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage\r\n@using ContentModels = Umbraco.Cms.Web.Common.PublishedModels;\r\n@{\r\n\tLayout = "some/path/to/a/template.cshtml";\r\n}', + }, ]; export const createTemplateScaffold = (masterTemplateAlias: string) => { return `Template Scaffold Mock for master template: ${masterTemplateAlias}`; }; +export const templateQuerySettings = { + contentTypeAliases: [], + properties: [ + { + alias: 'Id', + type: 'Integer', + }, + { + alias: 'Name', + type: 'String', + }, + { + alias: 'CreateDate', + type: 'DateTime', + }, + { + alias: 'UpdateDate', + type: 'DateTime', + }, + ], + operators: [ + { + operator: 'Equals', + applicableTypes: ['Integer', 'String'], + }, + { + operator: 'NotEquals', + applicableTypes: ['Integer', 'String'], + }, + { + operator: 'LessThan', + applicableTypes: ['Integer', 'DateTime'], + }, + { + operator: 'LessThanEqualTo', + applicableTypes: ['Integer', 'DateTime'], + }, + { + operator: 'GreaterThan', + applicableTypes: ['Integer', 'DateTime'], + }, + { + operator: 'GreaterThanEqualTo', + applicableTypes: ['Integer', 'DateTime'], + }, + { + operator: 'Contains', + applicableTypes: ['String'], + }, + { + operator: 'NotContains', + applicableTypes: ['String'], + }, + ], +}; + // Temp mocked database -// TODO: all properties are optional in the server schema. I don't think this is correct. -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore class UmbTemplateData extends UmbEntityData { constructor() { super(data); @@ -92,12 +164,25 @@ class UmbTemplateData extends UmbEntityData { return item ? createTemplate(item) : undefined; } - getScaffold(masterTemplateAlias: string): TemplateScaffoldResponseModel { + getItemById(id: string): TemplateItemResponseModel | null { + const item = this.data.find((item) => item.id === id); + return item ? createTemplateItem(item) : null; + } + + getScaffold(): TemplateScaffoldResponseModel { return { - content: `Template Scaffold Mock: Layout = ${masterTemplateAlias || null};`, + content: + '@using Umbraco.Cms.Web.Common.PublishedModels;\r\n@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage\r\n@{\r\n\tLayout = null;\r\n}', }; } + getItems(ids: string[]): TemplateItemResponseModel[] { + const items = ids.map((id) => this.getItemById(id)).filter((item) => item !== null) as TemplateItemResponseModel[]; + return items; + } + + getTemplateQuerySettings = () => templateQuerySettings; + create(templateData: CreateTemplateRequestModel) { const template = { $type: '', diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/user-groups.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/user-groups.data.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/user-groups.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/user-groups.data.ts index 9028024fdf..0ec4dbad02 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/user-groups.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/user-groups.data.ts @@ -1,4 +1,4 @@ -import { UmbEntityData } from './entity.data'; +import { UmbEntityData } from './entity.data.js'; import { PagedUserGroupResponseModel, UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; // Temp mocked database diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/users.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/users.data.ts similarity index 99% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/users.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/users.data.ts index d5ec8667e2..92dc6ef82b 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/users.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/users.data.ts @@ -1,4 +1,4 @@ -import { UmbData } from './data'; +import { UmbData } from './data.js'; import { PagedUserResponseModel, UserResponseModel, UserStateModel } from '@umbraco-cms/backoffice/backend-api'; // Temp mocked database diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/utils.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/data/utils.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts index 97cc81bfaf..f6a4e102ee 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/data/utils.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts @@ -1,4 +1,3 @@ -import { template } from 'lodash-es'; import type { ContentTreeItemResponseModel, DocumentTreeItemResponseModel, @@ -6,7 +5,6 @@ import type { EntityTreeItemResponseModel, FolderTreeItemResponseModel, DocumentTypeResponseModel, - DocumentResponseModel, FileSystemTreeItemPresentationModel, } from '@umbraco-cms/backoffice/backend-api'; @@ -42,7 +40,7 @@ export const createContentTreeItem = (item: any): ContentTreeItemResponseModel & // TODO: remove isTrashed type extension when we have found a solution to trashed items export const createDocumentTreeItem = ( - item: DocumentResponseModel + item: DocumentTreeItemResponseModel ): DocumentTreeItemResponseModel & { isTrashed: boolean } => { return { ...createContentTreeItem(item), diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/e2e-handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/e2e-handlers.ts similarity index 79% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/e2e-handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/e2e-handlers.ts index 9424e0a182..a80e0c937f 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/e2e-handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/e2e-handlers.ts @@ -1,20 +1,20 @@ -import { handlers as dataTypeHandlers } from './handlers/data-type'; -import { handlers as documentTypeHandlers } from './handlers/document-type.handlers'; -import { handlers as installHandlers } from './handlers/install.handlers'; -import * as manifestsHandlers from './handlers/manifests.handlers'; -import { handlers as publishedStatusHandlers } from './handlers/published-status.handlers'; -import * as serverHandlers from './handlers/server.handlers'; -import { handlers as upgradeHandlers } from './handlers/upgrade.handlers'; -import { handlers as userHandlers } from './handlers/user.handlers'; -import { handlers as telemetryHandlers } from './handlers/telemetry.handlers'; -import { handlers as examineManagementHandlers } from './handlers/examine-management.handlers'; -import { handlers as modelsBuilderHandlers } from './handlers/modelsbuilder.handlers'; -import { handlers as profileHandlers } from './handlers/performance-profiling.handlers'; -import { handlers as healthCheckHandlers } from './handlers/health-check.handlers'; -import { handlers as languageHandlers } from './handlers/language.handlers'; -import { handlers as redirectManagementHandlers } from './handlers/redirect-management.handlers'; -import { handlers as packageHandlers } from './handlers/package.handlers'; -import { handlers as configHandlers } from './handlers/config.handlers'; +import { handlers as dataTypeHandlers } from './handlers/data-type/index.js'; +import { handlers as documentTypeHandlers } from './handlers/document-type.handlers.js'; +import { handlers as installHandlers } from './handlers/install.handlers.js'; +import * as manifestsHandlers from './handlers/manifests.handlers.js'; +import { handlers as publishedStatusHandlers } from './handlers/published-status.handlers.js'; +import * as serverHandlers from './handlers/server.handlers.js'; +import { handlers as upgradeHandlers } from './handlers/upgrade.handlers.js'; +import { handlers as userHandlers } from './handlers/user.handlers.js'; +import { handlers as telemetryHandlers } from './handlers/telemetry.handlers.js'; +import { handlers as examineManagementHandlers } from './handlers/examine-management.handlers.js'; +import { handlers as modelsBuilderHandlers } from './handlers/modelsbuilder.handlers.js'; +import { handlers as profileHandlers } from './handlers/performance-profiling.handlers.js'; +import { handlers as healthCheckHandlers } from './handlers/health-check.handlers.js'; +import { handlers as languageHandlers } from './handlers/language.handlers.js'; +import { handlers as redirectManagementHandlers } from './handlers/redirect-management.handlers.js'; +import { handlers as packageHandlers } from './handlers/package.handlers.js'; +import { handlers as configHandlers } from './handlers/config.handlers.js'; export const handlers = [ serverHandlers.serverRunningHandler, diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/config.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/config.handlers.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/config.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/config.handlers.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/culture.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/culture.handlers.ts similarity index 82% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/culture.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/culture.handlers.ts index c74b4022cc..9a14ccfd49 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/culture.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/culture.handlers.ts @@ -1,6 +1,6 @@ const { rest } = window.MockServiceWorker; -import { umbCulturesData } from '../data/culture.data'; +import { umbCulturesData } from '../data/culture.data.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const handlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/data-type/copy.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/copy.handlers.ts similarity index 82% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/data-type/copy.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/copy.handlers.ts index 453c315b69..6ad52472c7 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/data-type/copy.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/copy.handlers.ts @@ -1,6 +1,6 @@ const { rest } = window.MockServiceWorker; -import { umbDataTypeData } from '../../data/data-type.data'; -import { slug } from './slug'; +import { umbDataTypeData } from '../../data/data-type.data.js'; +import { slug } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const copyHandlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/data-type/detail.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/detail.handlers.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/data-type/detail.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/detail.handlers.ts index 76fcb85055..dafffd6c67 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/data-type/detail.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/detail.handlers.ts @@ -1,6 +1,6 @@ const { rest } = window.MockServiceWorker; -import { umbDataTypeData } from '../../data/data-type.data'; -import { slug } from './slug'; +import { umbDataTypeData } from '../../data/data-type.data.js'; +import { slug } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const detailHandlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/data-type/folder.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/folder.handlers.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/data-type/folder.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/folder.handlers.ts index aef47899e2..b73e1f9fd0 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/data-type/folder.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/folder.handlers.ts @@ -1,6 +1,6 @@ const { rest } = window.MockServiceWorker; -import { umbDataTypeData } from '../../data/data-type.data'; -import { slug } from './slug'; +import { umbDataTypeData } from '../../data/data-type.data.js'; +import { slug } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; import { ProblemDetailsModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/index.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/index.ts new file mode 100644 index 0000000000..c74b54913d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/index.ts @@ -0,0 +1,15 @@ +import { folderHandlers } from './folder.handlers.js'; +import { treeHandlers } from './tree.handlers.js'; +import { detailHandlers } from './detail.handlers.js'; +import { itemHandlers } from './item.handlers.js'; +import { moveHandlers } from './move.handlers.js'; +import { copyHandlers } from './copy.handlers.js'; + +export const handlers = [ + ...treeHandlers, + ...itemHandlers, + ...folderHandlers, + ...moveHandlers, + ...copyHandlers, + ...detailHandlers, +]; diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/data-type/item.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/item.handlers.ts similarity index 78% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/data-type/item.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/item.handlers.ts index 79e58b270b..4f36e4cc15 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/data-type/item.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/item.handlers.ts @@ -1,6 +1,6 @@ const { rest } = window.MockServiceWorker; -import { umbDataTypeData } from '../../data/data-type.data'; -import { slug } from './slug'; +import { umbDataTypeData } from '../../data/data-type.data.js'; +import { slug } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const itemHandlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/data-type/move.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/move.handlers.ts similarity index 80% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/data-type/move.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/move.handlers.ts index dace7dc58c..ca9705f016 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/data-type/move.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/move.handlers.ts @@ -1,6 +1,6 @@ const { rest } = window.MockServiceWorker; -import { umbDataTypeData } from '../../data/data-type.data'; -import { slug } from './slug'; +import { umbDataTypeData } from '../../data/data-type.data.js'; +import { slug } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const moveHandlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/data-type/slug.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/slug.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/data-type/slug.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/slug.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/data-type/tree.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/tree.handlers.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/data-type/tree.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/tree.handlers.ts index 4bf6e34cba..ede1f89ed0 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/data-type/tree.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/tree.handlers.ts @@ -1,6 +1,6 @@ const { rest } = window.MockServiceWorker; -import { umbDataTypeData } from '../../data/data-type.data'; -import { slug } from './slug'; +import { umbDataTypeData } from '../../data/data-type.data.js'; +import { slug } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const treeHandlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/dictionary.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/dictionary.handlers.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/dictionary.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/dictionary.handlers.ts index 6da73c3b6c..c86c3d759d 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/dictionary.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/dictionary.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbDictionaryData } from '../data/dictionary.data'; +import { umbDictionaryData } from '../data/dictionary.data.js'; import { ImportDictionaryRequestModel, DictionaryOverviewResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/document-type.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type.handlers.ts similarity index 97% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/document-type.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type.handlers.ts index 160c10c95a..1eb99efaea 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/document-type.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbDocumentTypeData } from '../data/document-type.data'; +import { umbDocumentTypeData } from '../data/document-type.data.js'; import type { DocumentTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/document.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document.handlers.ts similarity index 96% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/document.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/document.handlers.ts index a3cf17408e..6f6837d350 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/document.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbDocumentData } from '../data/document.data'; +import { umbDocumentData } from '../data/document.data.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; // TODO: add schema diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/examine-management.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/examine-management.handlers.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/examine-management.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/examine-management.handlers.ts index bdaee86612..ae685ea406 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/examine-management.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/examine-management.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { searchResultMockData, getIndexByName, PagedIndexers } from '../data/examine.data'; +import { searchResultMockData, getIndexByName, PagedIndexers } from '../data/examine.data.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; import { diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/health-check.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/health-check.handlers.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/health-check.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/health-check.handlers.ts index d63bf914a6..eb98ebb25b 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/health-check.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/health-check.handlers.ts @@ -5,7 +5,7 @@ import { getGroupWithResultsByName, healthGroups, healthGroupsWithoutResult, -} from '../data/health-check.data'; +} from '../data/health-check.data.js'; import { HealthCheckActionRequestModel, diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/images.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/images.handlers.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/images.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/images.handlers.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/install.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/install.handlers.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/install.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/install.handlers.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/language.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/language.handlers.ts similarity index 97% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/language.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/language.handlers.ts index 6fa23b2f19..0f2582976f 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/language.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/language.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbLanguagesData } from '../data/languages.data'; +import { umbLanguagesData } from '../data/languages.data.js'; import { LanguageResponseModel, ProblemDetailsModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/log-viewer.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/log-viewer.handlers.ts similarity index 97% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/log-viewer.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/log-viewer.handlers.ts index 0d6550b4b3..836a4ae1ef 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/log-viewer.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/log-viewer.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbLogViewerData } from '../data/log-viewer.data'; +import { umbLogViewerData } from '../data/log-viewer.data.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; import { SavedLogSearchRequestModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/manifests.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/manifests.handlers.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/manifests.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/manifests.handlers.ts index 76fa373847..3a8b5d3891 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/manifests.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/manifests.handlers.ts @@ -1,6 +1,6 @@ const { rest } = window.MockServiceWorker; -import type { PackageManifestResponse } from '../../../packages/packages/types'; +import type { PackageManifestResponse } from '../../packages/packages/types.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const manifestDevelopmentHandler = rest.get(umbracoPath('/package/manifest'), (_req, res, ctx) => { @@ -25,7 +25,7 @@ export const manifestDevelopmentHandler = rest.get(umbracoPath('/package/manifes }, }, { - type: 'propertyEditorUI', + type: 'propertyEditorUi', alias: 'My.PropertyEditorUI.Custom', name: 'My Custom Property Editor UI', js: '/App_Plugins/property-editor.js', diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/media-type.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type.handlers.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/media-type.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type.handlers.ts index 8aed4ac44a..4c8850072e 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/media-type.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbMediaTypeData } from '../data/media-type.data'; +import { umbMediaTypeData } from '../data/media-type.data.js'; // TODO: add schema export const handlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/media.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media.handlers.ts similarity index 97% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/media.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/media.handlers.ts index 47c58dc6d5..04ad451af4 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/media.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbMediaData } from '../data/media.data'; +import { umbMediaData } from '../data/media.data.js'; // TODO: add schema export const handlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/member-group.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/member-group.handlers.ts similarity index 89% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/member-group.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/member-group.handlers.ts index ca07a8d28f..125929044d 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/member-group.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/member-group.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbMemberGroupData } from '../data/member-group.data'; +import { umbMemberGroupData } from '../data/member-group.data.js'; // TODO: add schema export const handlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/member-type.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/member-type.handlers.ts similarity index 89% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/member-type.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/member-type.handlers.ts index 097e7925f3..611b0d39a0 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/member-type.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/member-type.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbMemberTypeData } from '../data/member-type.data'; +import { umbMemberTypeData } from '../data/member-type.data.js'; // TODO: add schema export const handlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/member.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/member.handlers.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/member.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/member.handlers.ts index 4fa82dcef0..d4e0452bf0 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/member.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/member.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbMemberData } from '../data/member.data'; +import { umbMemberData } from '../data/member.data.js'; // TODO: add schema export const handlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/modelsbuilder.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/modelsbuilder.handlers.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/modelsbuilder.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/modelsbuilder.handlers.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/package.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/package.handlers.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/package.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/package.handlers.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/partial-views.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-views.handlers.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/partial-views.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-views.handlers.ts index 3d23bfbd6d..a4ab32e7c6 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/partial-views.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-views.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbPartialViewsData } from '../data/partial-views.data'; +import { umbPartialViewsData } from '../data/partial-views.data.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const handlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/performance-profiling.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/performance-profiling.handlers.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/performance-profiling.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/performance-profiling.handlers.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/published-status.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/published-status.handlers.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/published-status.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/published-status.handlers.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/redirect-management.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/redirect-management.handlers.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/redirect-management.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/redirect-management.handlers.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/relation-type.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/relation-type.handlers.ts similarity index 96% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/relation-type.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/relation-type.handlers.ts index cb4232e43d..8833ec3f4e 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/relation-type.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/relation-type.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbRelationTypeData } from '../data/relation-type.data'; +import { umbRelationTypeData } from '../data/relation-type.data.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; // TODO: add schema diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/rte-embed.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/rte-embed.handlers.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/rte-embed.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/rte-embed.handlers.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/server.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/server.handlers.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/server.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/server.handlers.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/stylesheet.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/stylesheet.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts index 40bf29bb87..b4f3c3caff 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/stylesheet.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbStylesheetData } from '../data/stylesheet.data'; +import { umbStylesheetData } from '../data/stylesheet.data.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const handlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/tag-handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/tag-handlers.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/tag-handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/tag-handlers.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/telemetry.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/telemetry.handlers.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/telemetry.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/telemetry.handlers.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/template.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/template.handlers.ts similarity index 65% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/template.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/template.handlers.ts index 6941bc1e31..41ed949c17 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/template.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/template.handlers.ts @@ -1,10 +1,10 @@ const { rest } = window.MockServiceWorker; -import { umbTemplateData } from '../data/template.data'; +import { umbTemplateData } from '../data/template.data.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; import { CreateTemplateRequestModel, UpdateTemplateRequestModel } from '@umbraco-cms/backoffice/backend-api'; -// TODO: add schema export const handlers = [ + //#region TREE rest.get(umbracoPath('/tree/template/root'), (req, res, ctx) => { const response = umbTemplateData.getTreeRoot(); return res(ctx.status(200), ctx.json(response)); @@ -26,11 +26,25 @@ export const handlers = [ return res(ctx.status(200), ctx.json(items)); }), - rest.get(umbracoPath('/template/scaffold'), (req, res, ctx) => { - const masterTemplateAlias = req.url.searchParams.get('masterTemplateAlias'); - if (!masterTemplateAlias) return; + //#endregion - const response = umbTemplateData.getScaffold(masterTemplateAlias); + //#region TEMPLATE + + rest.get(umbracoPath('/template/scaffold'), (req, res, ctx) => { + const response = umbTemplateData.getScaffold(); + return res(ctx.status(200), ctx.json(response)); + }), + + //This handler must come before the /template/:id handler otherwise it hits the wrong handler + rest.get(umbracoPath('/template/item'), (req, res, ctx) => { + const id = req.url.searchParams.getAll('id'); + if (!id) return; + const response = umbTemplateData.getItems(id); + return res(ctx.status(200), ctx.json(response)); + }), + + rest.get(umbracoPath('/template/query/settings'), (req, res, ctx) => { + const response = umbTemplateData.getTemplateQuerySettings(); return res(ctx.status(200), ctx.json(response)); }), @@ -58,4 +72,15 @@ export const handlers = [ const created = umbTemplateData.create(data); return res(ctx.status(200), ctx.json(created)); }), + + rest.delete(umbracoPath('/template/:id'), async (req, res, ctx) => { + const id = req.params.id as string; + const data = await req.json(); + if (!id) return; + + umbTemplateData.delete([data]); + return res(ctx.status(200)); + }), + + //#endregion ]; diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/tree-media.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/tree-media.handlers.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/tree-media.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/tree-media.handlers.ts index d2588557dc..afb81d1196 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/tree-media.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/tree-media.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbMediaData } from '../data/media.data'; +import { umbMediaData } from '../data/media.data.js'; // TODO: add schema export const handlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/upgrade.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/upgrade.handlers.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/upgrade.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/upgrade.handlers.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/user-group.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user-group.handlers.ts similarity index 89% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/user-group.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/user-group.handlers.ts index 05b37bcc69..571943d163 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/user-group.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user-group.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbUserGroupsData } from '../data/user-groups.data'; +import { umbUserGroupsData } from '../data/user-groups.data.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; const slug = '/user-group'; diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/user.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user.handlers.ts similarity index 97% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/user.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/user.handlers.ts index 5e5e28f1a9..267e035ab4 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/user.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user.handlers.ts @@ -1,6 +1,6 @@ const { rest } = window.MockServiceWorker; -import { umbUsersData } from '../data/users.data'; +import { umbUsersData } from '../data/users.data.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; let isAuthenticated = true; diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/index.ts b/src/Umbraco.Web.UI.Client/src/mocks/index.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/src/shared/mocks/index.ts rename to src/Umbraco.Web.UI.Client/src/mocks/index.ts index 72a5da0051..c744d9c71b 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/index.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/index.ts @@ -1,6 +1,6 @@ const { setupWorker } = window.MockServiceWorker; import type { MockedRequest, setupWorker as setupWorkType, rest } from 'msw'; -import { handlers } from './browser-handlers'; +import { handlers } from './browser-handlers.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; const worker = setupWorker(...handlers); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/action/action.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/action/action.interface.ts new file mode 100644 index 0000000000..3306f2868a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/action/action.interface.ts @@ -0,0 +1,7 @@ +import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; + +export interface UmbAction { + host: UmbControllerHostElement; + repository: RepositoryType; + execute(): Promise; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/action/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/action/index.ts new file mode 100644 index 0000000000..b9a260ce0b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/action/index.ts @@ -0,0 +1,2 @@ +export * from './repository-action.js'; +export * from './action.interface.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/action/repository-action.ts similarity index 87% rename from src/Umbraco.Web.UI.Client/libs/entity-action/action.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/action/repository-action.ts index ed77e73135..213aa5e2e4 100644 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/action/repository-action.ts @@ -3,12 +3,6 @@ import { createExtensionClass } from '@umbraco-cms/backoffice/extension-api'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; -export interface UmbAction { - host: UmbControllerHostElement; - repository: RepositoryType; - execute(): Promise; -} - export class UmbActionBase { host: UmbControllerHostElement; repository?: RepositoryType; diff --git a/src/Umbraco.Web.UI.Client/libs/collection/collection-filter-model.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-filter-model.interface.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/collection/collection-filter-model.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-filter-model.interface.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/collection/collection-selection-actions.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-selection-actions.element.ts similarity index 94% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/collection/collection-selection-actions.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-selection-actions.element.ts index 08d8a8b71a..06bd7ab183 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/collection/collection-selection-actions.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-selection-actions.element.ts @@ -1,7 +1,6 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html, nothing } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { map } from 'rxjs'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { map } from '@umbraco-cms/backoffice/external/rxjs'; import { UMB_COLLECTION_CONTEXT_TOKEN, UmbCollectionContext } from '@umbraco-cms/backoffice/collection'; import { ManifestEntityBulkAction, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/collection/collection-toolbar.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-toolbar.element.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/collection/collection-toolbar.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-toolbar.element.ts index 5194fbb48b..6cb1fe395b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/collection/collection-toolbar.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-toolbar.element.ts @@ -1,8 +1,7 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html, nothing } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { map } from 'rxjs'; -import type { TooltipMenuItem } from '../tooltip-menu'; +import type { TooltipMenuItem } from '../components/tooltip-menu/index.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { map } from '@umbraco-cms/backoffice/external/rxjs'; import { ManifestCollectionView, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/libs/collection/collection.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection.context.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/collection/collection.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/collection/collection.context.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/collection/collection.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection.element.ts similarity index 86% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/collection/collection.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/collection/collection.element.ts index ab4c9a964c..79d279ba2e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/collection/collection.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection.element.ts @@ -1,9 +1,6 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html, nothing } from 'lit'; -import { customElement, state, property } from 'lit/decorators.js'; -import { map } from 'rxjs'; -import './collection-selection-actions.element'; -import './collection-toolbar.element'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing, customElement, state, property } from '@umbraco-cms/backoffice/external/lit'; +import { map } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbCollectionContext, UMB_COLLECTION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/collection'; import { createExtensionElement } from '@umbraco-cms/backoffice/extension-api'; import { ManifestCollectionView, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @@ -11,6 +8,9 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; +import './collection-selection-actions.element.js'; +import './collection-toolbar.element.js'; + @customElement('umb-collection') export class UmbCollectionElement extends UmbLitElement { @state() @@ -78,7 +78,7 @@ export class UmbCollectionElement extends UmbLitElement { } this._routes.push({ - path: '**', + path: '', redirectTo: views?.[0]?.meta.pathName ?? '/', }); } @@ -89,7 +89,7 @@ export class UmbCollectionElement extends UmbLitElement { ${this._selection && this._selection.length > 0 - ? html`` + ? html`` : nothing} `; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/collection/dashboards/dashboard-collection.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/dashboards/dashboard-collection.element.ts similarity index 86% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/collection/dashboards/dashboard-collection.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/collection/dashboards/dashboard-collection.element.ts index e739df7e71..a6a4fd5ee2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/collection/dashboards/dashboard-collection.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/dashboards/dashboard-collection.element.ts @@ -1,13 +1,11 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UMB_COLLECTION_CONTEXT_TOKEN, UmbCollectionContext } from '@umbraco-cms/backoffice/collection'; import type { ManifestDashboardCollection } from '@umbraco-cms/backoffice/extension-registry'; import type { FolderTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import '../collection.element'; +import '../collection.element.js'; @customElement('umb-dashboard-collection') export class UmbDashboardCollectionElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/collection/dashboards/dashboard-collection.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/dashboards/dashboard-collection.stories.ts similarity index 77% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/collection/dashboards/dashboard-collection.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/collection/dashboards/dashboard-collection.stories.ts index 7a736b1f28..5feac03101 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/collection/dashboards/dashboard-collection.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/dashboards/dashboard-collection.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbDashboardCollectionElement } from './dashboard-collection.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbDashboardCollectionElement } from './dashboard-collection.element'; -import './dashboard-collection.element'; +import './dashboard-collection.element.js'; export default { title: 'Dashboards/Media Management', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/index.ts new file mode 100644 index 0000000000..8219924ada --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/index.ts @@ -0,0 +1,2 @@ +export * from './collection.context.js'; +export * from './collection-filter-model.interface.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-modal-container/backoffice-modal-container.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-modal-container/backoffice-modal-container.element.ts index 2d430b65f0..950825cb99 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-modal-container/backoffice-modal-container.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-modal-container/backoffice-modal-container.element.ts @@ -1,7 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, CSSResultGroup, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { repeat } from 'lit/directives/repeat.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, CSSResultGroup, html, repeat, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalHandler, UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts index 1125764ee2..fc7730958a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts @@ -1,7 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, CSSResultGroup, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { repeat } from 'lit/directives/repeat.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, CSSResultGroup, html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbNotificationHandler, UmbNotificationContext, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/body-layout/body-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/body-layout/body-layout.element.ts index 865ebaeb03..ce76d4a338 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/body-layout/body-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/body-layout/body-layout.element.ts @@ -1,14 +1,14 @@ -import { css, html, LitElement, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; +import { css, html, LitElement, nothing, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; /** * @element umb-body-layout * @description Layout element to arrange elements in a body layout. A general layout for most views. * @slot icon - Slot for icon * @slot name - Slot for name - * @slot footer - Slot for workspace footer - * @slot actions - Slot for workspace footer actions + * @slot footer - Slot for footer element + * @slot footer-info - Slot for info in the footer + * @slot actions - Slot for actions in the footer * @slot default - slot for main content * @export * @class UmbBodyLayout @@ -16,8 +16,6 @@ import { customElement, property, state } from 'lit/decorators.js'; */ @customElement('umb-body-layout') export class UmbBodyLayoutElement extends LitElement { - - /** * Renders a headline in the header. * @public @@ -28,6 +26,10 @@ export class UmbBodyLayoutElement extends LitElement { @property() public headline = ''; + /* + @property({ type: Boolean, attribute: 'no-scroll' }) + public noScroll = false; +*/ @state() private _headerSlotHasChildren = false; @@ -77,12 +79,20 @@ export class UmbBodyLayoutElement extends LitElement { this._actionsMenuSlotHasChildren = this.#hasNodes(e); }}>
- - - + ${ + //this.noScroll + //? html`` + //: + html` + + + + ` + } + { this._footerSlotHasChildren = this.#hasNodes(e); }}> @@ -95,7 +105,7 @@ export class UmbBodyLayoutElement extends LitElement { `; } - + static styles = [ UUITextStyles, css` @@ -107,6 +117,14 @@ export class UmbBodyLayoutElement extends LitElement { flex-direction: column; } + /* + :host([no-scroll]) slot:not([name]) { + position: relative; + display: block; + height: 100%; + } + */ + #header { display: flex; align-items: center; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/body-layout/body-layout.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/body-layout/body-layout.stories.ts index c64a31e715..305f5d9b4e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/body-layout/body-layout.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/body-layout/body-layout.stories.ts @@ -1,8 +1,8 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import { html } from 'lit'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import './body-layout.element'; -import type { UmbBodyLayoutElement } from './body-layout.element'; +import './body-layout.element.js'; +import type { UmbBodyLayoutElement } from './body-layout.element.js'; const meta: Meta = { title: 'Components/Workspace Layout', @@ -16,6 +16,6 @@ export const Overview: Story = { render: () => html`
Header slot
Main slot -
Footer slot
+
Footer slot
`, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/button-with-dropdown/button-with-dropdown.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/button-with-dropdown/button-with-dropdown.element.ts index a3240035b9..1d03749ea7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/button-with-dropdown/button-with-dropdown.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/button-with-dropdown/button-with-dropdown.element.ts @@ -1,14 +1,17 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html, LitElement } from 'lit'; -import { customElement, property, query } from 'lit/decorators.js'; -import { PopoverPlacement, UUIPopoverElement, UUISymbolExpandElement } from '@umbraco-ui/uui'; -import { InterfaceColor, InterfaceLook } from '@umbraco-ui/uui-base/lib/types'; +import { + UUITextStyles, + InterfaceColor, + InterfaceLook, + PopoverPlacement, + UUIPopoverElement, + UUISymbolExpandElement, +} from '@umbraco-cms/backoffice/external/uui'; +import { css, html, LitElement, customElement, property, query } from '@umbraco-cms/backoffice/external/lit'; // TODO: maybe this should go to UI library? It's a common pattern // TODO: consider not using this, but instead use dropdown, which is more generic shared component of backoffice. (this is at the movement only used in Log Viewer) @customElement('umb-button-with-dropdown') export class UmbButtonWithDropdownElement extends LitElement { - @property() label = ''; @@ -69,7 +72,7 @@ export class UmbButtonWithDropdownElement extends LitElement { `; } - + static styles = [ UUITextStyles, css` diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/button-with-dropdown/button-with-dropdown.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/button-with-dropdown/button-with-dropdown.stories.ts index f9b2f79643..7a52a8a1c9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/button-with-dropdown/button-with-dropdown.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/button-with-dropdown/button-with-dropdown.stories.ts @@ -1,6 +1,6 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; -import { UmbButtonWithDropdownElement } from './button-with-dropdown.element'; +import { UmbButtonWithDropdownElement } from './button-with-dropdown.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; export default { title: 'Components/Button with dropdown', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/code-block/code-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/code-block/code-block.element.ts index 67cac4678b..079515facf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/code-block/code-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/code-block/code-block.element.ts @@ -1,6 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, LitElement } from 'lit'; -import { customElement } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, LitElement, customElement } from '@umbraco-cms/backoffice/external/lit'; /** * A simple styled box for showing code-based error messages. @@ -9,8 +8,6 @@ import { customElement } from 'lit/decorators.js'; */ @customElement('umb-code-block') export class UmbCodeBlockElement extends LitElement { - - render() { return html`
@@ -22,7 +19,7 @@ export class UmbCodeBlockElement extends LitElement {
`; } - + static styles = [ UUITextStyles, css` diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/code-block/code-block.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/code-block/code-block.stories.ts index 46edd57d43..7b3547d696 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/code-block/code-block.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/code-block/code-block.stories.ts @@ -1,7 +1,7 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import { html } from 'lit'; -import './code-block.element'; -import type { UmbCodeBlockElement } from './code-block.element'; +import { html } from '@umbraco-cms/backoffice/external/lit'; +import './code-block.element.js'; +import type { UmbCodeBlockElement } from './code-block.element.js'; const meta: Meta = { title: 'Components/Code Block', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/code-block/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/code-block/index.ts new file mode 100644 index 0000000000..3220ce4149 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/code-block/index.ts @@ -0,0 +1 @@ +export * from './code-block.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/code-editor.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/code-editor.controller.ts index 525e4442ef..3e71e26889 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/code-editor.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/code-editor.controller.ts @@ -9,8 +9,8 @@ import { UmbCodeEditorHost, UmbCodeEditorRange, UmbCodeEditorSelection, -} from './code-editor.model'; -import themes from './themes'; +} from './code-editor.model.js'; +import themes from './themes/index.js'; import { UmbChangeEvent, UmbInputEvent } from '@umbraco-cms/backoffice/events'; //TODO - consider firing change event on blur diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/code-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/code-editor.element.ts index 8aae312e80..ab98c98d78 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/code-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/code-editor.element.ts @@ -1,10 +1,22 @@ -import { css, html, PropertyValues } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { createRef, Ref, ref } from 'lit/directives/ref.js'; -import { UMB_THEME_CONTEXT_TOKEN } from '../../../settings/themes/theme.context'; -import { UmbCodeEditorController } from './code-editor.controller'; -import { CodeEditorLanguage, CodeEditorTheme, UmbCodeEditorHost } from './code-editor.model'; -import { monacoEditorStyles, monacoJumpingCursorHack } from './styles'; +import { UMB_THEME_CONTEXT_TOKEN } from '../../../settings/themes/theme.context.js'; +import { UmbCodeEditorController } from './code-editor.controller.js'; +import { + CodeEditorLanguage, + CodeEditorSearchOptions, + CodeEditorTheme, + UmbCodeEditorHost, +} from './code-editor.model.js'; +import { monacoEditorStyles, monacoJumpingCursorHack } from './styles.js'; +import { + css, + html, + PropertyValues, + createRef, + Ref, + ref, + customElement, + property, +} from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; /** * A custom element that renders a code editor. Code editor is based on the Monaco Editor library. @@ -137,8 +149,8 @@ export class UmbCodeEditorElement extends UmbLitElement implements UmbCodeEditor * @return {*} * @memberof UmbCodeEditorElement */ - find(text: string) { - return this.#editor?.find(text); + find(text: string, searchOptions: CodeEditorSearchOptions = {}) { + return this.#editor?.find(text, searchOptions); } render() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/code-editor.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/code-editor.model.ts index e093a81084..b1f28f2fae 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/code-editor.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/code-editor.model.ts @@ -197,33 +197,33 @@ export interface CodeEditorSearchOptions { * @type {boolean} * @memberof CodeEditorSearchOptions */ - searchOnlyEditableRange: boolean; + searchOnlyEditableRange?: boolean; /** * Used to indicate that searchString is a regular expression. * * @type {boolean} * @memberof CodeEditorSearchOptions */ - isRegex: boolean; + isRegex?: boolean; /** * Force the matching to match lower/upper case exactly. * * @type {boolean} * @memberof CodeEditorSearchOptions */ - matchCase: boolean; + matchCase?: boolean; /** * Force the matching to match entire words only. Pass null otherwise. * * @type {string} * @memberof CodeEditorSearchOptions */ - wordSeparators: string | null; + wordSeparators?: string | null; /** * The result will contain the captured groups. * * @type {boolean} * @memberof CodeEditorSearchOptions */ - captureMatches: boolean; + captureMatches?: boolean; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/code-editor.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/code-editor.stories.ts index 5e3cea910c..49efd8542f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/code-editor.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/code-editor.stories.ts @@ -1,7 +1,7 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import { html } from 'lit'; -import { UmbCodeEditorElement } from './code-editor.element'; -import { CodeEditorLanguage, CodeEditorTheme } from './code-editor.model'; +import { UmbCodeEditorElement } from './code-editor.element.js'; +import { CodeEditorLanguage, CodeEditorTheme } from './code-editor.model.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; const meta: Meta = { title: 'Components/Code Editor', @@ -109,8 +109,8 @@ const codeSnippets: Record = { !!!!!! ???? ,, -- --- "Smartypants, double quotes" and 'single quotes'`, - typescript: `import { UmbTemplateRepository } from '../repository/template.repository'; - import { UmbWorkspaceContext } from '../../../shared/components/workspace/workspace-context/workspace-context'; + typescript: `import { UmbTemplateRepository } from '../repository/template.repository.js'; + import { UmbWorkspaceContext } from '../../../shared/components/workspace/workspace-context/workspace-context.js'; import { createObservablePart, UmbDeepState } from '@umbraco-cms/observable-api'; import { TemplateModel } from '@umbraco-cms/backend-api'; import { UmbControllerHostElement } from '@umbraco-cms/controller'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/index.ts index 36b9c2e5c2..f95558a55f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/index.ts @@ -1,7 +1,7 @@ -import * as initializeWorkers from './languageWorkers'; -import { UmbCodeEditorElement } from './code-editor.element'; -import { UmbCodeEditorController } from './code-editor.controller'; -import { monacoEditorStyles } from './styles'; +import * as initializeWorkers from './languageWorkers.js'; +import { UmbCodeEditorElement } from './code-editor.element.js'; +import { UmbCodeEditorController } from './code-editor.controller.js'; +import { monacoEditorStyles } from './styles.js'; export default UmbCodeEditorElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/styles.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/styles.ts index 00f7a55e4d..566fb9be7e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/styles.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/styles.ts @@ -1,5 +1,5 @@ -import { css, unsafeCSS } from 'lit'; import styles from 'monaco-editor/min/vs/editor/editor.main.css?inline'; +import { css, unsafeCSS } from '@umbraco-cms/backoffice/external/lit'; export const monacoEditorStyles = css` ${unsafeCSS(styles)} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/themes/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/themes/index.ts index 89c7798708..854e9e9f59 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/themes/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/code-editor/themes/index.ts @@ -1,9 +1,9 @@ import * as monaco from 'monaco-editor'; -import { CodeEditorTheme } from '../code-editor.model'; -import { UmbCodeEditorThemeHighContrastLight } from './code-editor.hc-light.theme'; -import { UmbCodeEditorThemeHighContrastDark } from './code-editor.hc-dark.theme'; -import { UmbCodeEditorThemeLight } from './code-editor.light.theme'; -import { UmbCodeEditorThemeDark } from './code-editor.dark.theme'; +import { CodeEditorTheme } from '../code-editor.model.js'; +import { UmbCodeEditorThemeHighContrastLight } from './code-editor.hc-light.theme.js'; +import { UmbCodeEditorThemeHighContrastDark } from './code-editor.hc-dark.theme.js'; +import { UmbCodeEditorThemeLight } from './code-editor.light.theme.js'; +import { UmbCodeEditorThemeDark } from './code-editor.dark.theme.js'; /** * 4 themes for the code editor. * diff --git a/src/Umbraco.Web.UI.Client/libs/data-type/data-type-property-collection.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/data-type/data-type-property-collection.class.ts similarity index 66% rename from src/Umbraco.Web.UI.Client/libs/data-type/data-type-property-collection.class.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/components/data-type/data-type-property-collection.class.ts index 2cb34f38f1..0446d85076 100644 --- a/src/Umbraco.Web.UI.Client/libs/data-type/data-type-property-collection.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/data-type/data-type-property-collection.class.ts @@ -8,11 +8,10 @@ export class UmbDataTypePropertyCollection extends Array = []) { super(...args); } - static get [Symbol.species](): ArrayConstructor { return Array; } - + getValueByAlias(alias: string): T | undefined { const property = this.getByAlias(alias); @@ -26,22 +25,4 @@ export class UmbDataTypePropertyCollection extends Array x.alias === alias); } - - /** - * Convert the underlying array to an object where - * the property value is keyed by its alias - * eg - * `[ - * { 'alias': 'myProperty', 'value': 27 }, - * { 'alias': 'anotherProperty', 'value': 'eleven' }, - * ]` - * is returned as - * `{ - * myProperty: 27, - * anotherProperty: 'eleven', - * }` - */ - toObject(): Record { - return Object.fromEntries(this.map(x => [x.alias, x.value])); - } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/data-type/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/data-type/index.ts new file mode 100644 index 0000000000..4ddb2e0bb7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/data-type/index.ts @@ -0,0 +1 @@ +export * from './data-type-property-collection.class.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/date-input/date-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/date-input/date-input.element.ts index 924d36720a..7d645530d8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/date-input/date-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/date-input/date-input.element.ts @@ -1,10 +1,6 @@ -import { css, html } from 'lit'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; -import type { UUIInputEvent } from '@umbraco-ui/uui'; -import { UmbConfigRepository } from '../../repositories/config/config.repository'; +import { UmbConfigRepository } from '../../repositories/config/config.repository.js'; +import { css, html, ifDefined, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles, FormControlMixin, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-date-input') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/date-input/date-input.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/date-input/date-input.stories.ts index 54c4cbe936..cbfd368c35 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/date-input/date-input.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/date-input/date-input.stories.ts @@ -1,7 +1,7 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import { html } from 'lit'; -import './date-input.element'; -import type { UmbDateInputElement } from './date-input.element'; +import { html } from '@umbraco-cms/backoffice/external/lit'; +import './date-input.element.js'; +import type { UmbDateInputElement } from './date-input.element.js'; const meta: Meta = { title: 'Components/Inputs/Date', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/date-input/date-input.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/date-input/date-input.test.ts index 53bbdda49e..45ddf3121c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/date-input/date-input.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/date-input/date-input.test.ts @@ -1,5 +1,5 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbDateInputElement } from './date-input.element'; +import { UmbDateInputElement } from './date-input.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbDateInputElement', () => { let element: UmbDateInputElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/date-input/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/date-input/index.ts new file mode 100644 index 0000000000..152cb2f39b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/date-input/index.ts @@ -0,0 +1 @@ +export * from './date-input.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/dropdown/dropdown.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/dropdown/dropdown.element.ts index 35ca453e15..1a2656ac93 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/dropdown/dropdown.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/dropdown/dropdown.element.ts @@ -1,6 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html, nothing } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; // TODO: maybe move this to UI Library. diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/dropdown/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/dropdown/index.ts new file mode 100644 index 0000000000..b63896f909 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/dropdown/index.ts @@ -0,0 +1 @@ +export * from './dropdown.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/empty-state.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/empty-state.element.ts index 60660ea40e..7845ea4b78 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/empty-state.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/empty-state.element.ts @@ -1,11 +1,8 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html, LitElement } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, LitElement, customElement, property } from '@umbraco-cms/backoffice/external/lit'; @customElement('umb-empty-state') export class UmbEmptyStateElement extends LitElement { - - /** * Set the text size */ @@ -23,7 +20,7 @@ export class UmbEmptyStateElement extends LitElement { render() { return html``; } - + static styles = [ UUITextStyles, css` diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/empty-state.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/empty-state.stories.ts index ddcd24e6fc..ca470e4e5c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/empty-state.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/empty-state.stories.ts @@ -1,7 +1,7 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import { html } from 'lit'; -import './empty-state.element'; -import type { UmbEmptyStateElement } from './empty-state.element'; +import { html } from '@umbraco-cms/backoffice/external/lit'; +import './empty-state.element.js'; +import type { UmbEmptyStateElement } from './empty-state.element.js'; const meta: Meta = { title: 'Components/Empty State', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/index.ts new file mode 100644 index 0000000000..f8e68ab179 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/index.ts @@ -0,0 +1 @@ +export * from './empty-state.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts new file mode 100644 index 0000000000..09e0bc6362 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts @@ -0,0 +1,82 @@ +import { css, html, nothing, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { map } from '@umbraco-cms/backoffice/external/rxjs'; +import { UmbSectionSidebarContext, UMB_SECTION_SIDEBAR_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/section'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; + +@customElement('umb-entity-actions-bundle') +export class UmbEntityActionsBundleElement extends UmbLitElement { + private _entityType?: string; + @property({ type: String, attribute: 'entity-type' }) + public get entityType() { + return this._entityType; + } + public set entityType(value: string | undefined) { + const oldValue = this._entityType; + if (oldValue === value) return; + + this._entityType = value; + this.#observeEntityActions(); + this.requestUpdate('entityType', oldValue); + } + + @property({ type: String }) + unique?: string | null; + + @property({ type: String }) + public label?: string; + + @state() + private _hasActions = false; + + #sectionSidebarContext?: UmbSectionSidebarContext; + + constructor() { + super(); + + this.consumeContext(UMB_SECTION_SIDEBAR_CONTEXT_TOKEN, (sectionContext) => { + this.#sectionSidebarContext = sectionContext; + }); + } + + #observeEntityActions() { + this.observe( + umbExtensionsRegistry + .extensionsOfType('entityAction') + .pipe(map((actions) => actions.filter((action) => action.conditions.entityTypes.includes(this.entityType!)))), + (actions) => { + this._hasActions = actions.length > 0; + }, + 'observeEntityAction' + ); + } + + private _openActions() { + if (!this.entityType) throw new Error('Entity type is not defined'); + if (this.unique === undefined) throw new Error('Unique is not defined'); + this.#sectionSidebarContext?.toggleContextMenu(this.entityType, this.unique, this.label); + } + + render() { + return html` + ${this._hasActions + ? html` + + + + + + ` + : nothing} + `; + } + + static styles = [UUITextStyles, css``]; +} + +declare global { + interface HTMLElementTagNameMap { + 'umb-entity-actions-bundle': UmbEntityActionsBundleElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/index.ts new file mode 100644 index 0000000000..1cdbce29f3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/index.ts @@ -0,0 +1 @@ +export * from './entity-actions-bundle.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.element.ts index 45fab5f28a..cfaa75b766 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.element.ts @@ -1,9 +1,14 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -import { css, nothing } from 'lit'; -import type { TemplateResult } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { map } from 'rxjs'; -import { repeat } from 'lit/directives/repeat.js'; +import { + css, + nothing, + repeat, + TemplateResult, + customElement, + property, + state, +} from '@umbraco-cms/backoffice/external/lit'; +import { map } from '@umbraco-cms/backoffice/external/rxjs'; import { createExtensionElement, isManifestElementableType } from '@umbraco-cms/backoffice/extension-api'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.test.ts index 98328db875..45d97f6ce9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.test.ts @@ -1,6 +1,6 @@ -import { customElement } from 'lit/decorators.js'; import { expect, fixture, html } from '@open-wc/testing'; -import { InitializedExtension, UmbExtensionSlotElement } from './extension-slot.element'; +import { InitializedExtension, UmbExtensionSlotElement } from './extension-slot.element.js'; +import { customElement } from '@umbraco-cms/backoffice/external/lit'; import { ManifestDashboard, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-test-extension-slot-manifest-element') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/index.ts new file mode 100644 index 0000000000..ff9c9ba2a8 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/index.ts @@ -0,0 +1 @@ +export * from './extension-slot.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/footer-layout/footer-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/footer-layout/footer-layout.element.ts index 40f7672b8c..9688555ab0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/footer-layout/footer-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/footer-layout/footer-layout.element.ts @@ -1,6 +1,5 @@ -import { css, html, LitElement, PropertyValueMap } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, state } from 'lit/decorators.js'; +import { css, html, LitElement, customElement } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; /** * @element umb-footer-layout @@ -13,15 +12,13 @@ import { customElement, state } from 'lit/decorators.js'; */ @customElement('umb-footer-layout') export class UmbFooterLayoutElement extends LitElement { - - render() { return html` `; } - + static styles = [ UUITextStyles, css` @@ -30,7 +27,7 @@ export class UmbFooterLayoutElement extends LitElement { align-items: center; justify-content: space-between; width: 100%; - height: 54px; /* TODO: missing var(--uui-size-18);*/ + height: var(--umb-footer-layout-height); border-top: 1px solid var(--uui-color-border); background-color: var(--uui-color-surface); box-sizing: border-box; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/footer-layout/footer-layout.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/footer-layout/footer-layout.stories.ts index c09a6d7fca..6656d782f9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/footer-layout/footer-layout.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/footer-layout/footer-layout.stories.ts @@ -1,9 +1,8 @@ -import './footer-layout.element'; +import './footer-layout.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; - -import type { UmbFooterLayoutElement } from './footer-layout.element'; +import type { UmbFooterLayoutElement } from './footer-layout.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; export default { title: 'Workspaces/Shared/Footer Layout', @@ -12,7 +11,7 @@ export default { } as Meta; export const AAAOverview: Story = () => html` -
+
Footer slotActions slot
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/footer-layout/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/footer-layout/index.ts new file mode 100644 index 0000000000..c5abf17f8d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/footer-layout/index.ts @@ -0,0 +1 @@ +export * from './footer-layout.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/header-app/header-app-button.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/header-app/header-app-button.element.ts index fb7130d801..44ef70ce80 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/header-app/header-app-button.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/header-app/header-app-button.element.ts @@ -1,7 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, CSSResultGroup, html, LitElement } from 'lit'; -import { customElement } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, CSSResultGroup, html, LitElement, customElement, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { ManifestHeaderAppButtonKind, UmbBackofficeManifestKind, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/header-app/header-app.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/header-app/header-app.stories.ts index d9a4cab61c..db52404cb5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/header-app/header-app.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/header-app/header-app.stories.ts @@ -1,6 +1,6 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import './header-app-button.element'; -import type { UmbHeaderAppButtonElement } from './header-app-button.element'; +import './header-app-button.element.js'; +import type { UmbHeaderAppButtonElement } from './header-app-button.element.js'; const meta: Meta = { title: 'Components/Header App Button', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/header-app/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/header-app/index.ts new file mode 100644 index 0000000000..bbc5f61011 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/header-app/index.ts @@ -0,0 +1 @@ +export * from './header-app-button.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/history/history-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/history/history-item.element.ts index 548195f157..f7a7fbcf23 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/history/history-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/history/history-item.element.ts @@ -1,6 +1,5 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property } from 'lit/decorators.js'; +import { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-history-item') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/history/history-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/history/history-list.element.ts index 955fe1b791..5b77f7ba8f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/history/history-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/history/history-list.element.ts @@ -1,6 +1,5 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement } from 'lit/decorators.js'; +import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-history-list') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/history/history-list.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/history/history-list.stories.ts index 5537f44735..60552615e5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/history/history-list.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/history/history-list.stories.ts @@ -1,11 +1,11 @@ -import './history-list.element'; -import './history-item.element'; +import './history-list.element.js'; +import './history-item.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; -import type { UmbHistoryListElement } from './history-list.element'; -import type { UmbHistoryItemElement } from './history-item.element'; +import type { UmbHistoryListElement } from './history-list.element.js'; +import type { UmbHistoryItemElement } from './history-item.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; export default { title: 'Components/History UI', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/history/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/history/index.ts new file mode 100644 index 0000000000..e47cb815c0 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/history/index.ts @@ -0,0 +1,2 @@ +export * from './history-item.element.js'; +export * from './history-list.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts index 0fca167fd4..13ad219610 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts @@ -1,83 +1,34 @@ -import { manifests as debugManifests } from './debug/manifests'; - // TODO: we need to figure out what components should be available for extensions and load them upfront // TODO: we need to move these files into their respective folders/silos. We then need a way for a silo to globally register a component -import './body-layout/body-layout.element'; -import './footer-layout/footer-layout.element'; - -// TODO: delete these two and change usage to umb-dropdown -import './button-with-dropdown/button-with-dropdown.element'; -import './tooltip-menu/tooltip-menu.element'; - -import './dropdown/dropdown.element'; -import './code-block/code-block.element'; -import './debug/debug.element'; -import './empty-state/empty-state.element'; -import './extension-slot/extension-slot.element'; -import './table/table.element'; - -import './entity-action/entity-action-list.element'; -import './entity-action/entity-action.element'; - -import './entity-bulk-action/entity-bulk-action.element'; - -import '../../../apps/backoffice/components/backoffice-header.element'; -import '../../../apps/backoffice/components/backoffice-main.element'; -import './backoffice-modal-container/backoffice-modal-container.element'; -import './backoffice-notification-container/backoffice-notification-container.element'; - -import './collection/collection.element'; -import './collection/collection-toolbar.element'; -import './collection/collection-selection-actions.element'; -import './input-checkbox-list/input-checkbox-list.element'; -import './date-input/date-input.element'; - -import './input-color-picker/input-color-picker.element'; -import './input-eye-dropper/input-eye-dropper.element'; -import './input-multi-url-picker/input-multi-url-picker.element'; -import './input-slider/input-slider.element'; +export * from './backoffice-modal-container/backoffice-modal-container.element.js'; +export * from './backoffice-notification-container/backoffice-notification-container.element.js'; +export * from './body-layout/body-layout.element.js'; +export * from './button-with-dropdown/button-with-dropdown.element.js'; // TODO: delete this and change usage to umb-dropdown +// export * from './code-block.js'; +export * from './data-type/index.js'; +export * from './date-input/index.js'; +export * from './dropdown/index.js'; +export * from './empty-state/index.js'; +export * from './entity-actions-bundle/index.js'; +export * from './extension-slot/index.js'; +export * from './footer-layout/index.js'; +export * from './header-app/index.js'; +export * from './history/index.js'; +export * from './input-checkbox-list/index.js'; +export * from './input-color-picker/index.js'; +export * from './input-eye-dropper/index.js'; +export * from './input-list-base/index.js'; +export * from './input-multi-url/index.js'; import './input-tiny-mce/input-tiny-mce.element'; -import './input-toggle/input-toggle.element'; -import './input-upload-field/input-upload-field.element'; - -import './property-type-based-property/property-type-based-property.element'; - -import './ref-property-editor-ui/ref-property-editor-ui.element'; -import './property-editor-config/property-editor-config.element'; - -import './section/section-main/section-main.element'; -import './section/section-sidebar/section-sidebar.element'; -import './section/section.element'; - -import './tree/tree.element'; -import './tree/entity-tree-item/entity-tree-item.element'; -import './tree/tree-menu-item/tree-menu-item.element'; - -import './menu/menu-item-base/menu-item-base.element'; - -import './variantable-property/variantable-property.element'; -import './property-creator/property-creator.element'; - -import './header-app/header-app-button.element'; - -import './history/history-list.element'; -import './history/history-item.element'; - -import './workspace/workspace-action/workspace-action.element'; -import './workspace/workspace-editor/workspace-editor.element'; -import './workspace/workspace-footer/workspace-footer.element'; -import './workspace/workspace-action-menu/workspace-action-menu.element'; -import './workspace/workspace-variant/workspace-variant.element'; -import './workspace-property/workspace-property.element'; - -import './variant-selector/variant-selector.element'; - -import './code-editor'; - -export * from './table'; -export * from './tree/tree.element'; -export * from './code-editor'; - -export * from './store'; - -export const manifests = [...debugManifests]; +export * from './input-number-range/index.js'; +export * from './input-radio-button-list/index.js'; +export * from './input-section/index.js'; +export * from './input-slider/index.js'; +export * from './input-toggle/index.js'; +export * from './input-upload-field/index.js'; +export * from './property-editor-config/index.js'; +export * from './property-type-based-property/index.js'; +export * from './ref-property-editor-ui/index.js'; +export * from './table/index.js'; +export * from './tooltip-menu/index.js'; +export * from './variant-selector/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-checkbox-list/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-checkbox-list/index.ts new file mode 100644 index 0000000000..9ee6c59669 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-checkbox-list/index.ts @@ -0,0 +1 @@ +export * from './input-checkbox-list.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-checkbox-list/input-checkbox-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-checkbox-list/input-checkbox-list.element.ts index 0fa3f028bf..6ce7a32cb3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-checkbox-list/input-checkbox-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-checkbox-list/input-checkbox-list.element.ts @@ -1,9 +1,5 @@ -import { css, html, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property } from 'lit/decorators.js'; -import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; -import { repeat } from 'lit/directives/repeat.js'; -import { UUIBooleanInputEvent } from '@umbraco-ui/uui'; +import { css, html, nothing, repeat, customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles, FormControlMixin, UUIBooleanInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-input-checkbox-list') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-checkbox-list/input-checkbox-list.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-checkbox-list/input-checkbox-list.stories.ts index cee98bed08..df5b3a41b3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-checkbox-list/input-checkbox-list.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-checkbox-list/input-checkbox-list.stories.ts @@ -1,6 +1,6 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import './input-checkbox-list.element'; -import type { UmbInputCheckboxListElement } from './input-checkbox-list.element'; +import './input-checkbox-list.element.js'; +import type { UmbInputCheckboxListElement } from './input-checkbox-list.element.js'; const meta: Meta = { title: 'Components/Inputs/Checkbox List', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color-picker/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color-picker/index.ts new file mode 100644 index 0000000000..3ab655ba9f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color-picker/index.ts @@ -0,0 +1 @@ +export * from './input-color-picker.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color-picker/input-color-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color-picker/input-color-picker.element.ts index 8546bcf864..d8ce9cb7b2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color-picker/input-color-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color-picker/input-color-picker.element.ts @@ -1,8 +1,5 @@ -import { html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property } from 'lit/decorators.js'; -import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; -import { UUIColorSwatchesEvent } from '@umbraco-ui/uui'; +import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles, FormControlMixin, UUIColorSwatchesEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbSwatchDetails } from '@umbraco-cms/backoffice/models'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color-picker/input-color-picker.mdx b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color-picker/input-color-picker.mdx index 01bf535439..d86f8308d8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color-picker/input-color-picker.mdx +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color-picker/input-color-picker.mdx @@ -3,20 +3,23 @@ import * as ColorPickerStories from './input-color-picker.stories'; - This color picker allows you to select a color from a palette. This shows how we can override the autogen docs from StoryBook to document a component how we want to exactly using [MDX doc blocks](https://storybook.js.org/docs/7.0/web-components/writing-docs/doc-blocks) ## Stories + ### Primary + <Story of={ColorPickerStories.Overview} /> <Source of={ColorPickerStories.Overview} /> ## Properties + <Controls of={ColorPickerStories.Overview} /> ### Without Labels + <Story of={ColorPickerStories.WithoutLabels} /> -<Source of={ColorPickerStories.WithoutLabels} dark /> \ No newline at end of file +<Source of={ColorPickerStories.WithoutLabels} dark /> diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color-picker/input-color-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color-picker/input-color-picker.stories.ts index daf4592007..3614ef75c8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color-picker/input-color-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color-picker/input-color-picker.stories.ts @@ -1,62 +1,62 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import './input-color-picker.element'; -import type { UmbInputColorPickerElement } from './input-color-picker.element'; +import './input-color-picker.element.js'; +import type { UmbInputColorPickerElement } from './input-color-picker.element.js'; const meta: Meta<UmbInputColorPickerElement> = { - title: 'Components/Inputs/Color Picker', - component: 'umb-input-color-picker' + title: 'Components/Inputs/Color Picker', + component: 'umb-input-color-picker', }; - + export default meta; type Story = StoryObj<UmbInputColorPickerElement>; - + export const Overview: Story = { - args: { - showLabels: true, - swatches: [ - { - label: "Red", - value: "#ff0000" - }, - { - label: "Green", - value: "#00ff00" - } - ] - } + args: { + showLabels: true, + swatches: [ + { + label: 'Red', + value: '#ff0000', + }, + { + label: 'Green', + value: '#00ff00', + }, + ], + }, }; export const WithoutLabels: Story = { - args: { - showLabels: false, - swatches: [ - { - label: "Red", - value: "#ff0000" - }, - { - label: "Green", - value: "#00ff00" - } - ] - } + args: { + showLabels: false, + swatches: [ + { + label: 'Red', + value: '#ff0000', + }, + { + label: 'Green', + value: '#00ff00', + }, + ], + }, }; // TODO: This doesn't check the correct swatch when the value is set // Perhaps a BUG ? export const WithValueLabels: Story = { - args: { - showLabels: true, - swatches: [ - { - label: "Red", - value: "#ff0000" - }, - { - label: "Green", - value: "#00ff00" - } - ], - value: "#00ff00" - } -}; \ No newline at end of file + args: { + showLabels: true, + swatches: [ + { + label: 'Red', + value: '#ff0000', + }, + { + label: 'Green', + value: '#00ff00', + }, + ], + value: '#00ff00', + }, +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color-picker/input-color-picker.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color-picker/input-color-picker.test.ts index 437f318e7f..cb6e2c004a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color-picker/input-color-picker.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color-picker/input-color-picker.test.ts @@ -1,5 +1,5 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbInputColorPickerElement } from './input-color-picker.element'; +import { UmbInputColorPickerElement } from './input-color-picker.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbInputColorPickerElement', () => { let element: UmbInputColorPickerElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-eye-dropper/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-eye-dropper/index.ts new file mode 100644 index 0000000000..d104164ff5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-eye-dropper/index.ts @@ -0,0 +1 @@ +export * from './input-eye-dropper.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-eye-dropper/input-eye-dropper.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-eye-dropper/input-eye-dropper.element.ts index c2ece6bfef..18409a947f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-eye-dropper/input-eye-dropper.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-eye-dropper/input-eye-dropper.element.ts @@ -1,8 +1,5 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property } from 'lit/decorators.js'; -import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; -import { UUIColorPickerChangeEvent } from '@umbraco-ui/uui'; +import { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles, FormControlMixin, UUIColorPickerChangeEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-input-eye-dropper') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-eye-dropper/input-eye-dropper.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-eye-dropper/input-eye-dropper.stories.ts index ab9d45aaff..d6a2916dd7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-eye-dropper/input-eye-dropper.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-eye-dropper/input-eye-dropper.stories.ts @@ -1,29 +1,27 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import './input-eye-dropper.element'; -import type { UmbInputEyeDropperElement } from './input-eye-dropper.element'; +import './input-eye-dropper.element.js'; +import type { UmbInputEyeDropperElement } from './input-eye-dropper.element.js'; const meta: Meta<UmbInputEyeDropperElement> = { - title: 'Components/Inputs/Eye Dropper', - component: 'umb-input-eye-dropper' + title: 'Components/Inputs/Eye Dropper', + component: 'umb-input-eye-dropper', }; - + export default meta; type Story = StoryObj<UmbInputEyeDropperElement>; - + export const Overview: Story = { - args: { - - } + args: {}, }; export const WithOpacity: Story = { - args: { - opacity: true, - } + args: { + opacity: true, + }, }; export const WithSwatches: Story = { - args: { - swatches: ['#000000', '#ffffff', '#ff0000', '#00ff00', '#0000ff'] - } + args: { + swatches: ['#000000', '#ffffff', '#ff0000', '#00ff00', '#0000ff'], + }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-eye-dropper/input-eye-dropper.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-eye-dropper/input-eye-dropper.test.ts index 78c8726490..ac434f3f71 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-eye-dropper/input-eye-dropper.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-eye-dropper/input-eye-dropper.test.ts @@ -1,5 +1,5 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbInputEyeDropperElement } from './input-eye-dropper.element'; +import { UmbInputEyeDropperElement } from './input-eye-dropper.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbInputEyeDropperElement', () => { let element: UmbInputEyeDropperElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-list-base/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-list-base/index.ts new file mode 100644 index 0000000000..da4405d401 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-list-base/index.ts @@ -0,0 +1 @@ +export * from './input-list-base.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-list-base/input-list-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-list-base/input-list-base.ts index 4c61990469..5e6036bd1e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-list-base/input-list-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-list-base/input-list-base.ts @@ -1,6 +1,5 @@ -import { html } from 'lit'; -import { property } from 'lit/decorators.js'; -import type { UUIModalSidebarSize } from '@umbraco-ui/uui'; +import { html, property } from '@umbraco-cms/backoffice/external/lit'; +import type { UUIModalSidebarSize } from '@umbraco-cms/backoffice/external/uui'; import { UmbModalContext, UmbModalToken, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url-picker/input-multi-url-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url-picker/input-multi-url-picker.stories.ts deleted file mode 100644 index 4e56a92845..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url-picker/input-multi-url-picker.stories.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Meta, StoryObj } from '@storybook/web-components'; -import './input-multi-url-picker.element'; -import type { UmbInputMultiUrlPickerElement } from './input-multi-url-picker.element'; - -const meta: Meta<UmbInputMultiUrlPickerElement> = { - title: 'Components/Inputs/Multi URL Picker', - component: 'umb-input-multi-url-picker' -}; - -export default meta; -type Story = StoryObj<UmbInputMultiUrlPickerElement>; - -export const Overview: Story = { - args: { - - } -}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url/index.ts new file mode 100644 index 0000000000..d197dc0c3d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url/index.ts @@ -0,0 +1 @@ +export * from './input-multi-url.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url-picker/input-multi-url-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url/input-multi-url.element.ts similarity index 86% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url-picker/input-multi-url-picker.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url/input-multi-url.element.ts index e5a1a37e89..c967597f9e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url-picker/input-multi-url-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url/input-multi-url.element.ts @@ -1,8 +1,7 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; -import type { UUIModalSidebarSize } from '@umbraco-ui/uui'; +import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles, FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIModalSidebarSize } from '@umbraco-cms/backoffice/external/uui'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import { UmbLinkPickerLink, @@ -10,28 +9,27 @@ import { UmbModalRouteRegistrationController, } from '@umbraco-cms/backoffice/modal'; import type { UmbModalRouteBuilder } from '@umbraco-cms/backoffice/modal'; -import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; /** - * @element umb-input-multi-url-picker + * @element umb-input-multi-url * @fires change - when the value of the input changes * @fires blur - when the input loses focus * @fires focus - when the input gains focus */ -@customElement('umb-input-multi-url-picker') -export class UmbInputMultiUrlPickerElement extends FormControlMixin(UmbLitElement) { +@customElement('umb-input-multi-url') +export class UmbInputMultiUrlElement extends FormControlMixin(UmbLitElement) { protected getFormElement() { return undefined; } @property() public set alias(value: string | undefined) { - this.myModalRegistration.setUniqueIdentifier('propertyAlias', value); + this.myModalRegistration.setUniquePathValue('propertyAlias', value); } @property() public set variantId(value: string | UmbVariantId | undefined) { - this.myModalRegistration.setUniqueIdentifier('variantId', value?.toString()); + this.myModalRegistration.setUniquePathValue('variantId', value?.toString()); } /** @@ -122,15 +120,9 @@ export class UmbInputMultiUrlPickerElement extends FormControlMixin(UmbLitElemen () => !!this.max && this.urls.length > this.max ); - this.myModalRegistration = new UmbModalRouteRegistrationController( - this, - UMB_LINK_PICKER_MODAL, - `:index`, - new Map([ - ['propertyAlias', undefined], - ['variantId', undefined], - ]) - ) + this.myModalRegistration = new UmbModalRouteRegistrationController(this, UMB_LINK_PICKER_MODAL) + .addAdditionalPath(`:index`) + .addUniquePaths(['propertyAlias', 'variantId']) .onSetup((params) => { // Get index: const indexParam = params.index; @@ -233,6 +225,6 @@ export class UmbInputMultiUrlPickerElement extends FormControlMixin(UmbLitElemen declare global { interface HTMLElementTagNameMap { - 'umb-input-multi-url-picker': UmbInputMultiUrlPickerElement; + 'umb-input-multi-url': UmbInputMultiUrlElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url/input-multi-url.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url/input-multi-url.stories.ts new file mode 100644 index 0000000000..8878178389 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url/input-multi-url.stories.ts @@ -0,0 +1,15 @@ +import { Meta, StoryObj } from '@storybook/web-components'; +import './input-multi-url.element.js'; +import type { UmbInputMultiUrlElement } from './input-multi-url.element.js'; + +const meta: Meta<UmbInputMultiUrlElement> = { + title: 'Components/Inputs/Multi URL', + component: 'umb-input-multi-url', +}; + +export default meta; +type Story = StoryObj<UmbInputMultiUrlElement>; + +export const Overview: Story = { + args: {}, +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/index.ts new file mode 100644 index 0000000000..8c61c8102d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/index.ts @@ -0,0 +1 @@ +export * from './input-number-range.element.js'; 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 840cc5b82a..010e5a19ba 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 @@ -1,7 +1,5 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; +import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles, FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; function getNumberOrUndefined(value: string) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.stories.ts index f8a473cd6a..d5e5cff103 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.stories.ts @@ -1,23 +1,22 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import './input-number-range.element'; -import type { UmbInputNumberRangeElement } from './input-number-range.element'; +import './input-number-range.element.js'; +import type { UmbInputNumberRangeElement } from './input-number-range.element.js'; const meta: Meta<UmbInputNumberRangeElement> = { - title: 'Components/Inputs/Number Range Picker', - component: 'umb-input-number-range' + title: 'Components/Inputs/Number Range Picker', + component: 'umb-input-number-range', }; - + export default meta; type Story = StoryObj<UmbInputNumberRangeElement>; - + export const Overview: Story = { - args: { - } + args: {}, }; export const WithMinMax: Story = { - args: { - minValue:0, - maxValue:40, - } + args: { + minValue: 0, + maxValue: 40, + }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.test.ts index 693933b07c..4d479c521d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.test.ts @@ -1,20 +1,18 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbInputNumberRangeElement } from './input-number-range.element'; +import { UmbInputNumberRangeElement } from './input-number-range.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUINumberRangeElement', () => { - let element: UmbInputNumberRangeElement; + let element: UmbInputNumberRangeElement; - beforeEach(async () => { - element = await fixture( - html` <umb-input-number-range></umb-input-number-range> ` - ); - }); + beforeEach(async () => { + element = await fixture(html` <umb-input-number-range></umb-input-number-range> `); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbInputNumberRangeElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbInputNumberRangeElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-radio-button-list/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-radio-button-list/index.ts new file mode 100644 index 0000000000..f63c342ea5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-radio-button-list/index.ts @@ -0,0 +1 @@ +export * from './input-radio-button-list.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-radio-button-list/input-radio-button-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-radio-button-list/input-radio-button-list.element.ts index 36bb9d38a0..ad9f485af8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-radio-button-list/input-radio-button-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-radio-button-list/input-radio-button-list.element.ts @@ -1,9 +1,5 @@ -import { css, html, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property } from 'lit/decorators.js'; -import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; -import { repeat } from 'lit/directives/repeat.js'; -import { UUIBooleanInputEvent } from '@umbraco-ui/uui'; +import { css, html, nothing, repeat, customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles, FormControlMixin, UUIBooleanInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-input-radio-button-list') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-radio-button-list/input-radio-button-list.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-radio-button-list/input-radio-button-list.stories.ts index 17ca8ddd83..a3eff6b851 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-radio-button-list/input-radio-button-list.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-radio-button-list/input-radio-button-list.stories.ts @@ -1,79 +1,79 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import './input-radio-button-list.element'; -import type { UmbInputRadioButtonListElement } from './input-radio-button-list.element'; +import './input-radio-button-list.element.js'; +import type { UmbInputRadioButtonListElement } from './input-radio-button-list.element.js'; const meta: Meta<UmbInputRadioButtonListElement> = { - title: 'Components/Inputs/Radio Button List', - component: 'umb-input-radio-button-list' + title: 'Components/Inputs/Radio Button List', + component: 'umb-input-radio-button-list', }; - + export default meta; type Story = StoryObj<UmbInputRadioButtonListElement>; - + export const Overview: Story = { - args: { - list: [ - { - key: '1', - sortOrder: 0, - value: 'One' - }, - { - key: '2', - sortOrder: 1, - value: 'Two' - }, - { - key: '3', - sortOrder: 2, - value: 'Three' - } - ] - } + args: { + list: [ + { + key: '1', + sortOrder: 0, + value: 'One', + }, + { + key: '2', + sortOrder: 1, + value: 'Two', + }, + { + key: '3', + sortOrder: 2, + value: 'Three', + }, + ], + }, }; export const WithSelectedValue: Story = { - args: { - list: [ - { - key: '1', - sortOrder: 0, - value: 'One' - }, - { - key: '2', - sortOrder: 1, - value: 'Two' - }, - { - key: '3', - sortOrder: 2, - value: 'Three' - } - ], - selected: '2', - value: 'Two' - } + args: { + list: [ + { + key: '1', + sortOrder: 0, + value: 'One', + }, + { + key: '2', + sortOrder: 1, + value: 'Two', + }, + { + key: '3', + sortOrder: 2, + value: 'Three', + }, + ], + selected: '2', + value: 'Two', + }, }; export const SortOrder: Story = { - args: { - list: [ - { - key: '1', - sortOrder: 4, - value: 'One' - }, - { - key: '2', - sortOrder: 1, - value: 'Two' - }, - { - key: '3', - sortOrder: 2, - value: 'Three' - } - ] - } + args: { + list: [ + { + key: '1', + sortOrder: 4, + value: 'One', + }, + { + key: '2', + sortOrder: 1, + value: 'Two', + }, + { + key: '3', + sortOrder: 2, + value: 'Three', + }, + ], + }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/index.ts new file mode 100644 index 0000000000..3070f7b892 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/index.ts @@ -0,0 +1 @@ +export * from './input-section.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.element.ts index a9bdeab461..afb3cfb190 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.element.ts @@ -1,7 +1,6 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html, nothing } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbInputListBaseElement } from '../input-list-base/input-list-base'; +import { UmbInputListBaseElement } from '../input-list-base/input-list-base.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UMB_SECTION_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; import { ManifestSection, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.stories.ts index 5144d7e765..30367b89ae 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.stories.ts @@ -1,44 +1,44 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import './input-section.element'; -import type { UmbInputPickerSectionElement } from './input-section.element'; +import './input-section.element.js'; +import type { UmbInputPickerSectionElement } from './input-section.element.js'; const meta: Meta<UmbInputPickerSectionElement> = { - title: 'Components/Inputs/Section', - component: 'umb-input-section', - argTypes: { - modalType: { - control: 'inline-radio', - options: ['dialog', 'sidebar'], - defaultValue: 'sidebar', - description: 'The type of modal to use when selecting sections', - }, - modalSize:{ - control: 'select', - options: ['small', 'medium', 'large', 'full'], - defaultValue: 'small', - description: 'The size of the modal to use when selecting sections, only applicable to sidebar not dialog', - } - } + title: 'Components/Inputs/Section', + component: 'umb-input-section', + argTypes: { + modalType: { + control: 'inline-radio', + options: ['dialog', 'sidebar'], + defaultValue: 'sidebar', + description: 'The type of modal to use when selecting sections', + }, + modalSize: { + control: 'select', + options: ['small', 'medium', 'large', 'full'], + defaultValue: 'small', + description: 'The size of the modal to use when selecting sections, only applicable to sidebar not dialog', + }, + }, }; - + export default meta; type Story = StoryObj<UmbInputPickerSectionElement>; - + export const Overview: Story = { - args: { - modalType: 'sidebar', - } + args: { + modalType: 'sidebar', + }, }; export const WithDialog: Story = { - args: { - modalType: 'dialog' - } + args: { + modalType: 'dialog', + }, }; export const WithFullSidebar: Story = { - args: { - modalType: 'sidebar', - modalSize: 'full' - } -}; \ No newline at end of file + args: { + modalType: 'sidebar', + modalSize: 'full', + }, +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.test.ts index 38973836c1..888dfb8f0f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.test.ts @@ -1,6 +1,6 @@ import { expect, fixture, html } from '@open-wc/testing'; //TODO: Test has been commented out while we figure out how to setup import maps for the test environment -// import { UmbPickerSectionElement } from './picker-section.element'; +// import { UmbPickerSectionElement } from './picker-section.element.js'; // import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; // describe('UmbPickerSectionElement', () => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-slider/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-slider/index.ts new file mode 100644 index 0000000000..b2a762425f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-slider/index.ts @@ -0,0 +1 @@ +export * from './input-slider.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-slider/input-slider.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-slider/input-slider.element.ts index 42834f37f6..c31350da7a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-slider/input-slider.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-slider/input-slider.element.ts @@ -1,8 +1,5 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; -import { UUISliderEvent } from '@umbraco-ui/uui'; +import { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles, FormControlMixin, UUISliderEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-input-slider') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-slider/input-slider.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-slider/input-slider.stories.ts index 01e52a100c..06afd560ff 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-slider/input-slider.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-slider/input-slider.stories.ts @@ -1,50 +1,49 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import './input-slider.element'; -import type { UmbInputSliderElement } from './input-slider.element'; +import './input-slider.element.js'; +import type { UmbInputSliderElement } from './input-slider.element.js'; const meta: Meta<UmbInputSliderElement> = { - title: 'Components/Inputs/Slider', - component: 'umb-input-slider', - + title: 'Components/Inputs/Slider', + component: 'umb-input-slider', }; - + export default meta; type Story = StoryObj<UmbInputSliderElement>; - + export const Overview: Story = { - args: { - min: 0, - max: 100, - step: 10, - initVal1: 20 - } + args: { + min: 0, + max: 100, + step: 10, + initVal1: 20, + }, }; export const WithRange: Story = { - args: { - min: 0, - max: 100, - step: 10, - initVal1: 20, - initVal2: 80, - enableRange: true - } + args: { + min: 0, + max: 100, + step: 10, + initVal1: 20, + initVal2: 80, + enableRange: true, + }, }; export const WithSmallStep: Story = { - args: { - min: 0, - max: 5, - step: 1, - initVal1: 4, - } + args: { + min: 0, + max: 5, + step: 1, + initVal1: 4, + }, }; export const WithLargeMinMax: Story = { - args: { - min: 0, - max: 100, - step: 1, - initVal1: 86 - } + args: { + min: 0, + max: 100, + step: 1, + initVal1: 86, + }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-toggle/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-toggle/index.ts new file mode 100644 index 0000000000..64ff234a91 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-toggle/index.ts @@ -0,0 +1 @@ +export * from './input-toggle.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-toggle/input-toggle.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-toggle/input-toggle.element.ts index f4a14d0984..184a771943 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-toggle/input-toggle.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-toggle/input-toggle.element.ts @@ -1,8 +1,5 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; -import { UUIBooleanInputEvent } from '@umbraco-ui/uui'; +import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles, FormControlMixin, UUIBooleanInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-input-toggle') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-toggle/input-toggle.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-toggle/input-toggle.stories.ts index fe52faabaf..7d33c2947a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-toggle/input-toggle.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-toggle/input-toggle.stories.ts @@ -1,37 +1,36 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import './input-toggle.element'; -import type { UmbInputToggleElement } from './input-toggle.element'; +import './input-toggle.element.js'; +import type { UmbInputToggleElement } from './input-toggle.element.js'; const meta: Meta<UmbInputToggleElement> = { - title: 'Components/Inputs/Toggle', - component: 'umb-input-toggle', - + title: 'Components/Inputs/Toggle', + component: 'umb-input-toggle', }; - + export default meta; type Story = StoryObj<UmbInputToggleElement>; - + export const Overview: Story = { - args: { - checked: true, - showLabels: true, - labelOn: 'On', - labelOff: 'Off' - } + args: { + checked: true, + showLabels: true, + labelOn: 'On', + labelOff: 'Off', + }, }; export const WithDifferentLabels: Story = { - args: { - checked: false, - showLabels: true, - labelOn: 'Hide the treasure', - labelOff: 'Show the way to the treasure' - } + args: { + checked: false, + showLabels: true, + labelOn: 'Hide the treasure', + labelOff: 'Show the way to the treasure', + }, }; export const WithNoLabels: Story = { - args: { - checked: true, - showLabels: false, - } + args: { + checked: true, + showLabels: false, + }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/index.ts new file mode 100644 index 0000000000..677b9c0fef --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/index.ts @@ -0,0 +1,2 @@ +export * from './input-upload-field-file.element.js'; +export * from './input-upload-field.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field-file.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field-file.element.ts index d055563477..622058876a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field-file.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field-file.element.ts @@ -1,6 +1,4 @@ -import { css, html, nothing } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { until } from 'lit/directives/until.js'; +import { css, html, nothing, until, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; type FileItem = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.element.ts index 386b9a6b12..88f288a1e1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.element.ts @@ -1,13 +1,19 @@ -import { css, html, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, query, state } from 'lit/decorators.js'; -import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { map } from 'lit/directives/map.js'; -import type { UUIFileDropzoneElement, UUIFileDropzoneEvent } from '@umbraco-ui/uui'; +import { + css, + html, + nothing, + map, + ifDefined, + customElement, + property, + query, + state, +} from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles, FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIFileDropzoneElement, UUIFileDropzoneEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import './input-upload-field-file.element'; +import './input-upload-field-file.element.js'; @customElement('umb-input-upload-field') export class UmbInputUploadFieldElement extends FormControlMixin(UmbLitElement) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.stories.ts index 02a1fdb44f..6e638cc010 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.stories.ts @@ -1,6 +1,6 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import './input-upload-field.element'; -import type { UmbInputUploadFieldElement } from './input-upload-field.element'; +import './input-upload-field.element.js'; +import type { UmbInputUploadFieldElement } from './input-upload-field.element.js'; const meta: Meta<UmbInputUploadFieldElement> = { title: 'Components/Inputs/Upload Field', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/menu/menu-item-base/menu-item-base.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/menu/menu-item-base/menu-item-base.element.ts deleted file mode 100644 index 9c9c4993eb..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/menu/menu-item-base/menu-item-base.element.ts +++ /dev/null @@ -1,125 +0,0 @@ -import { css, html, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { map } from 'rxjs'; -import { - UmbSectionSidebarContext, - UMB_SECTION_SIDEBAR_CONTEXT_TOKEN, - UmbSectionContext, - UMB_SECTION_CONTEXT_TOKEN, -} from '@umbraco-cms/backoffice/section'; -import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { ManifestEntityAction, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; -import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; - -@customElement('umb-menu-item-base') -export class UmbMenuItemBaseElement extends UmbLitElement { - private _entityType?: string; - @property({ type: String, attribute: 'entity-type' }) - public get entityType() { - return this._entityType; - } - public set entityType(value: string | undefined) { - this._entityType = value; - this.#observeEntityActions(); - } - - @property({ type: String, attribute: 'icon-name' }) - public iconName = ''; - - @property({ type: String }) - public label = ''; - - @property({ type: Boolean, attribute: 'has-children' }) - public hasChildren = false; - - @state() - private _href?: string; - - @state() - private _hasActions = false; - - #sectionContext?: UmbSectionContext; - #sectionSidebarContext?: UmbSectionSidebarContext; - #actionObserver?: UmbObserverController<Array<ManifestEntityAction>>; - - constructor() { - super(); - - this.consumeContext(UMB_SECTION_CONTEXT_TOKEN, (sectionContext) => { - this.#sectionContext = sectionContext; - this._observeSection(); - }); - - this.consumeContext(UMB_SECTION_SIDEBAR_CONTEXT_TOKEN, (sectionContext) => { - this.#sectionSidebarContext = sectionContext; - }); - } - - #observeEntityActions() { - if (this.#actionObserver) this.#actionObserver.destroy(); - - this.#actionObserver = this.observe( - umbExtensionsRegistry - .extensionsOfType('entityAction') - .pipe(map((actions) => actions.filter((action) => action.conditions.entityTypes.includes(this.entityType!)))), - (actions) => { - this._hasActions = actions.length > 0; - }, - 'entityAction' - ); - } - - private _observeSection() { - if (!this.#sectionContext) return; - - this.observe(this.#sectionContext?.pathname, (pathname) => { - if (!pathname) return; - this._href = this._constructPath(pathname); - }); - } - - // TODO: how do we handle this? - // TODO: use router context - private _constructPath(sectionPathname: string) { - return `section/${sectionPathname}/workspace/${this.entityType}`; - } - - private _openActions() { - if (!this.entityType) throw new Error('Entity type is not defined'); - this.#sectionSidebarContext?.toggleContextMenu(this.entityType, undefined, this.label); - } - - render() { - return html` <uui-menu-item href="${ifDefined(this._href)}" label=${this.label} ?has-children=${this.hasChildren} - >${this.#renderIcon()}${this.#renderActions()}<slot></slot - ></uui-menu-item>`; - } - - #renderIcon() { - return html` <uui-icon slot="icon" name=${this.iconName}></uui-icon> `; - } - - #renderActions() { - return html` - ${this._hasActions - ? html` - <uui-action-bar slot="actions"> - <uui-button @click=${this._openActions} label="Open actions menu"> - <uui-symbol-more></uui-symbol-more> - </uui-button> - </uui-action-bar> - ` - : nothing} - `; - } - - static styles = [UUITextStyles, css``]; -} - -declare global { - interface HTMLElementTagNameMap { - 'umb-menu-item-base': UmbMenuItemBaseElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/property-creator/property-creator.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/property-creator/property-creator.element.ts deleted file mode 100644 index b0c81d472f..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/property-creator/property-creator.element.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement } from 'lit/decorators.js'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, UMB_PROPERTY_SETTINGS_MODAL } from '@umbraco-cms/backoffice/modal'; -import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; - -@customElement('umb-property-creator') -export class UmbPropertyCreatorElement extends UmbLitElement { - #modalContext?: UmbModalContext; - - constructor() { - super(); - - this.consumeContext(UMB_MODAL_CONTEXT_TOKEN, (instance) => (this.#modalContext = instance)); - } - - #onAddProperty() { - const modalHandler = this.#modalContext?.open(UMB_PROPERTY_SETTINGS_MODAL); - - modalHandler?.onSubmit().then((result) => { - console.log('result', result); - }); - } - - render() { - return html` - <div>added properties goes here:</div> - <uui-button look="outline" @click=${this.#onAddProperty}> Add property </uui-button> - `; - } - - static styles = [UUITextStyles, css``]; -} - -export default UmbPropertyCreatorElement; - -declare global { - interface HTMLElementTagNameMap { - 'umb-property-creator': UmbPropertyCreatorElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/property-editor-config/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/property-editor-config/index.ts new file mode 100644 index 0000000000..a9a70ff6db --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/property-editor-config/index.ts @@ -0,0 +1 @@ +export * from './property-editor-config.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/property-editor-config/property-editor-config.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/property-editor-config/property-editor-config.element.ts index e039749a81..96d90a7779 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/property-editor-config/property-editor-config.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/property-editor-config/property-editor-config.element.ts @@ -1,7 +1,5 @@ -import { html } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { html, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { PropertyEditorConfigDefaultData, PropertyEditorConfigProperty, @@ -48,22 +46,22 @@ export class UmbPropertyEditorConfigElement extends UmbLitElement { private _properties: Array<PropertyEditorConfigProperty> = []; private _propertyEditorModelConfigDefaultData: Array<PropertyEditorConfigDefaultData> = []; - private _propertyEditorUIConfigDefaultData: Array<PropertyEditorConfigDefaultData> = []; + private _propertyEditorUISettingsDefaultData: Array<PropertyEditorConfigDefaultData> = []; private _configDefaultData?: Array<PropertyEditorConfigDefaultData>; private _propertyEditorModelConfigProperties: Array<PropertyEditorConfigProperty> = []; - private _propertyEditorUIConfigProperties: Array<PropertyEditorConfigProperty> = []; + private _propertyEditorUISettingsProperties: Array<PropertyEditorConfigProperty> = []; private _observePropertyEditorUIConfig() { if (!this._propertyEditorUiAlias) return; this.observe( - umbExtensionsRegistry.getByTypeAndAlias('propertyEditorUI', this.propertyEditorUiAlias), + umbExtensionsRegistry.getByTypeAndAlias('propertyEditorUi', this.propertyEditorUiAlias), (manifest) => { - this._observePropertyEditorModelConfig(manifest?.meta.propertyEditorModel); - this._propertyEditorUIConfigProperties = manifest?.meta.config?.properties || []; - this._propertyEditorUIConfigDefaultData = manifest?.meta.config?.defaultData || []; + this._observePropertyEditorModelConfig(manifest?.meta.propertyEditorAlias); + this._propertyEditorUISettingsProperties = manifest?.meta.settings?.properties || []; + this._propertyEditorUISettingsDefaultData = manifest?.meta.settings?.defaultData || []; this._mergeConfigProperties(); this._mergeConfigDefaultData(); } @@ -74,21 +72,21 @@ export class UmbPropertyEditorConfigElement extends UmbLitElement { if (!propertyEditorAlias) return; this.observe(umbExtensionsRegistry.getByTypeAndAlias('propertyEditorModel', propertyEditorAlias), (manifest) => { - this._propertyEditorModelConfigProperties = manifest?.meta.config?.properties || []; - this._propertyEditorModelConfigDefaultData = manifest?.meta.config?.defaultData || []; + this._propertyEditorModelConfigProperties = manifest?.meta.settings?.properties || []; + this._propertyEditorModelConfigDefaultData = manifest?.meta.settings?.defaultData || []; this._mergeConfigProperties(); this._mergeConfigDefaultData(); }); } private _mergeConfigProperties() { - this._properties = [...this._propertyEditorModelConfigProperties, ...this._propertyEditorUIConfigProperties]; + this._properties = [...this._propertyEditorModelConfigProperties, ...this._propertyEditorUISettingsProperties]; } private _mergeConfigDefaultData() { this._configDefaultData = [ ...this._propertyEditorModelConfigDefaultData, - ...this._propertyEditorUIConfigDefaultData, + ...this._propertyEditorUISettingsDefaultData, ]; } @@ -97,8 +95,9 @@ export class UmbPropertyEditorConfigElement extends UmbLitElement { */ private _getValue(property: PropertyEditorConfigProperty) { const value = this.data.find((data) => data.alias === property.alias)?.value; + if (value) return value; const defaultValue = this._configDefaultData?.find((data) => data.alias === property.alias)?.value; - return value ?? defaultValue ?? null; + return defaultValue ?? null; } render() { @@ -111,8 +110,9 @@ export class UmbPropertyEditorConfigElement extends UmbLitElement { label="${property.label}" description="${ifDefined(property.description)}" alias="${property.alias}" - property-editor-ui-alias="${property.propertyEditorUI}" - .value=${this._getValue(property)}></umb-workspace-property> + property-editor-ui-alias="${property.propertyEditorUiAlias}" + .value=${this._getValue(property)} + .config=${property.config}></umb-workspace-property> ` )} ` diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/property-editor-config/property-editor-config.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/property-editor-config/property-editor-config.stories.ts index d3457f26bd..07cfab1e0b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/property-editor-config/property-editor-config.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/property-editor-config/property-editor-config.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorConfigElement } from './property-editor-config.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorConfigElement } from './property-editor-config.element'; -import './property-editor-config.element'; +import './property-editor-config.element.js'; export default { title: 'Property Editors/Shared/Property Editor Config', @@ -19,6 +19,6 @@ const data = [ export const AAAOverview: Story<UmbPropertyEditorConfigElement> = () => html`<umb-property-editor-config - property-editor-ui-alias="Umb.PropertyEditorUI.TextBox" + property-editor-ui-alias="Umb.PropertyEditorUi.TextBox" .data="${data}"></umb-property-editor-config>`; AAAOverview.storyName = 'Overview'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/property-type-based-property/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/property-type-based-property/index.ts new file mode 100644 index 0000000000..2eac1fce0d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/property-type-based-property/index.ts @@ -0,0 +1 @@ +export * from './property-type-based-property.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/property-type-based-property/property-type-based-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/property-type-based-property/property-type-based-property.element.ts index 03290e2ae5..a5fec24cb1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/property-type-based-property/property-type-based-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/property-type-based-property/property-type-based-property.element.ts @@ -1,9 +1,7 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UmbDataTypeRepository } from '../../../settings/data-types/repository/data-type.repository'; -import { UmbDocumentWorkspaceContext } from '../../../documents/documents/workspace/document-workspace.context'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, ifDefined, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UmbDataTypeRepository } from '@umbraco-cms/backoffice/data-type'; +import { UmbDocumentWorkspaceContext } from '@umbraco-cms/backoffice/document'; import type { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import type { DataTypeResponseModel, @@ -12,8 +10,8 @@ import type { } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; - +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-property-type-based-property') export class UmbPropertyTypeBasedPropertyElement extends UmbLitElement { @property({ type: Object, attribute: false }) @@ -95,8 +93,21 @@ export class UmbPropertyTypeBasedPropertyElement extends UmbLitElement { (dataType) => { this._dataTypeData = dataType?.values || []; this._propertyEditorUiAlias = dataType?.propertyEditorUiAlias || undefined; + // If there is no UI, we will look up the Property editor model to find the default UI alias: + if (!this._propertyEditorUiAlias && dataType?.propertyEditorAlias) { + //use 'dataType.propertyEditorAlias' to look up the extension in the registry: + this.observe( + umbExtensionsRegistry.getByTypeAndAlias('propertyEditorModel', dataType.propertyEditorAlias), + (extension) => { + if (!extension) return; + this._propertyEditorUiAlias = extension?.meta.defaultPropertyEditorUiAlias; + this.removeControllerByUnique('_observePropertyEditorModel'); + }, + '_observePropertyEditorModel' + ); + } }, - 'observeDataType' + '_observeDataType' ); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/ref-property-editor-ui/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/ref-property-editor-ui/index.ts new file mode 100644 index 0000000000..4a573c6350 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/ref-property-editor-ui/index.ts @@ -0,0 +1 @@ +export * from './ref-property-editor-ui.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/ref-property-editor-ui/ref-property-editor-ui.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/ref-property-editor-ui/ref-property-editor-ui.element.ts index f28f91d5bb..d4c2e261a1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/ref-property-editor-ui/ref-property-editor-ui.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/ref-property-editor-ui/ref-property-editor-ui.element.ts @@ -1,6 +1,5 @@ -import { UUIRefNodeElement } from '@umbraco-ui/uui'; -import { html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; +import { UUIRefNodeElement } from '@umbraco-cms/backoffice/external/uui'; +import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; /** * @element umb-ref-property-editor-ui @@ -9,8 +8,6 @@ import { customElement, property } from 'lit/decorators.js'; */ @customElement('umb-ref-property-editor-ui') export class UmbRefPropertyEditorUIElement extends UUIRefNodeElement { - - protected fallbackIcon = '<svg xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M142.212 397.267l106.052-48.024L398.479 199.03l-26.405-26.442-90.519 90.517-15.843-15.891 90.484-90.486-16.204-16.217-150.246 150.243-47.534 106.513zm74.904-100.739l23.285-23.283 3.353 22.221 22.008 3.124-23.283 23.313-46.176 20.991 20.813-46.366zm257.6-173.71L416.188 64.3l-49.755 49.785 58.504 58.503 49.779-49.77zM357.357 300.227h82.826v116.445H68.929V300.227h88.719v-30.648H38.288v177.733h432.537V269.578H357.357v30.649z"></path></svg>'; @@ -30,7 +27,7 @@ export class UmbRefPropertyEditorUIElement extends UUIRefNodeElement { * @default '' */ @property({ type: String, attribute: 'property-editor-model-alias' }) - propertyEditorAlias = ''; + propertyEditorModelAlias = ''; protected renderDetail() { const details: string[] = []; @@ -39,8 +36,8 @@ export class UmbRefPropertyEditorUIElement extends UUIRefNodeElement { details.push(this.alias); } - if (this.propertyEditorAlias !== '') { - details.push(this.propertyEditorAlias); + if (this.propertyEditorModelAlias !== '') { + details.push(this.propertyEditorModelAlias); } else { details.push('Property Editor Missing'); } @@ -50,7 +47,7 @@ export class UmbRefPropertyEditorUIElement extends UUIRefNodeElement { } return html`<small id="detail">${details.join(' | ')}<slot name="detail"></slot></small>`; } - + static styles = [...UUIRefNodeElement.styles]; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/ref-property-editor-ui/ref-property-editor-ui.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/ref-property-editor-ui/ref-property-editor-ui.stories.ts index cf45fa130e..f64615e2ec 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/ref-property-editor-ui/ref-property-editor-ui.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/ref-property-editor-ui/ref-property-editor-ui.stories.ts @@ -1,7 +1,7 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import { html } from 'lit'; -import './ref-property-editor-ui.element'; -import type { UmbRefPropertyEditorUIElement } from './ref-property-editor-ui.element'; +import { html } from '@umbraco-cms/backoffice/external/lit'; +import './ref-property-editor-ui.element.js'; +import type { UmbRefPropertyEditorUIElement } from './ref-property-editor-ui.element.js'; const meta: Meta<UmbRefPropertyEditorUIElement> = { title: 'Components/Ref Property Editor UI', @@ -14,16 +14,16 @@ type Story = StoryObj<UmbRefPropertyEditorUIElement>; export const Overview: Story = { args: { name: 'Custom Property Editor UI', - alias: 'Umb.PropertyEditorUI.CustomUI', - propertyEditorAlias: 'Umbraco.JSON', + alias: 'Umb.PropertyEditorUi.CustomUI', + propertyEditorModelAlias: 'Umbraco.JSON', }, }; export const WithDetail: Story = { args: { name: 'Custom Property Editor UI', - alias: 'Umb.PropertyEditorUI.CustomUI', - propertyEditorAlias: 'Umbraco.JSON', + alias: 'Umb.PropertyEditorUi.CustomUI', + propertyEditorModelAlias: 'Umbraco.JSON', detail: 'With some custom details', }, }; @@ -31,15 +31,15 @@ export const WithDetail: Story = { export const WithSlots: Story = { args: { name: 'Custom Property Editor UI', - alias: 'Umb.PropertyEditorUI.CustomUI', - propertyEditorAlias: 'Umbraco.JSON', + alias: 'Umb.PropertyEditorUi.CustomUI', + propertyEditorModelAlias: 'Umbraco.JSON', detail: 'With some custom details', }, render: (args) => html` <umb-ref-property-editor-ui .name=${args.name} .alias=${args.alias} - .propertyEditorAlias=${args.propertyEditorAlias} + .propertyEditorAlias=${args.propertyEditorModelAlias} .detail=${args.detail}> <div slot="tag"><uui-tag color="positive">10</uui-tag></div> <div slot="actions"> diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/store/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/store/index.ts deleted file mode 100644 index 1b2c7b66e6..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/store/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './store-extension-initializer'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/table/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/table/index.ts index 56042b7a5f..0d58d39d7e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/table/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/table/index.ts @@ -1 +1 @@ -export * from './table.element'; +export * from './table.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/table/table.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/table/table.element.ts index 0faada0395..ce4cf2ead4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/table/table.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/table/table.element.ts @@ -1,9 +1,15 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html, LitElement } from 'lit'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { when } from 'lit/directives/when.js'; -import { customElement, property, state } from 'lit/decorators.js'; -import { repeat } from 'lit/directives/repeat.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { + css, + html, + LitElement, + ifDefined, + when, + customElement, + property, + state, + repeat, +} from '@umbraco-cms/backoffice/external/lit'; // TODO: move to UI Library - entity actions should NOT be moved to UI Library but stay in an UmbTable element export interface UmbTableItem { @@ -59,8 +65,6 @@ export class UmbTableOrderedEvent extends Event { */ @customElement('umb-table') export class UmbTableElement extends LitElement { - - /** * Table Items * @type {Array<UmbTableItem>} @@ -201,7 +205,7 @@ export class UmbTableElement extends LitElement { ?select-only=${this._selectionMode} ?selected=${this._isSelected(item.id)} @selected=${() => this._selectRow(item.id)} - @unselected=${() => this._deselectRow(item.id)}> + @deselected=${() => this._deselectRow(item.id)}> ${this._renderRowCheckboxCell(item)} ${this.columns.map((column) => this._renderRowCell(column, item))} </uui-table-row>`; }; @@ -242,13 +246,12 @@ export class UmbTableElement extends LitElement { return value; } - + static styles = [ UUITextStyles, css` :host { - height: 100%; - overflow: auto; + height: fit-content; padding: var(--uui-size-space-4); padding-top: 0; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/table/table.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/table/table.stories.ts index 8d11d99076..e8a9d14e3b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/table/table.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/table/table.stories.ts @@ -1,6 +1,6 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import './table.element'; -import type { UmbTableElement, UmbTableColumn, UmbTableConfig, UmbTableItem } from './table.element'; +import './table.element.js'; +import type { UmbTableElement, UmbTableColumn, UmbTableConfig, UmbTableItem } from './table.element.js'; import { UmbId } from '@umbraco-cms/backoffice/id'; const meta: Meta<UmbTableElement> = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/index.ts index d2aa52ac8c..2468243a90 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/index.ts @@ -1 +1 @@ -export * from './tooltip-menu.element'; +export * from './tooltip-menu.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/tooltip-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/tooltip-menu.element.ts index 616ac5b7cf..663557b286 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/tooltip-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/tooltip-menu.element.ts @@ -1,7 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html, LitElement, nothing } from 'lit'; -import { repeat } from 'lit/directives/repeat.js'; -import { customElement, property } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, LitElement, nothing, repeat, customElement, property } from '@umbraco-cms/backoffice/external/lit'; export interface TooltipMenuItem { label: string; @@ -11,8 +9,6 @@ export interface TooltipMenuItem { @customElement('umb-tooltip-menu') export class UmbTooltipMenuElement extends LitElement { - - @property({ type: Boolean, reflect: true, attribute: 'icon-only' }) public iconOnly = false; @@ -55,7 +51,7 @@ export class UmbTooltipMenuElement extends LitElement { (item) => this._renderItem(item) ); } - + static styles = [ UUITextStyles, css` diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/tooltip-menu.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/tooltip-menu.stories.ts index 1d963f4047..817bdbca88 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/tooltip-menu.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/tooltip-menu.stories.ts @@ -1,39 +1,38 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import './tooltip-menu.element'; -import type { UmbTooltipMenuElement, TooltipMenuItem } from './tooltip-menu.element' +import './tooltip-menu.element.js'; +import type { UmbTooltipMenuElement, TooltipMenuItem } from './tooltip-menu.element.js'; const meta: Meta<UmbTooltipMenuElement> = { - title: 'Components/Tooltip Menu', - component: 'umb-tooltip-menu', + title: 'Components/Tooltip Menu', + component: 'umb-tooltip-menu', }; - + export default meta; type Story = StoryObj<UmbTooltipMenuElement>; const items: Array<TooltipMenuItem> = [ - { - label: 'Item 1', - icon: 'umb:document', - action: () => alert('Item 1 clicked'), - }, - { - label: 'Item 2', - icon: 'umb:home', - action: () => alert('Item 2 clicked') - } + { + label: 'Item 1', + icon: 'umb:document', + action: () => alert('Item 1 clicked'), + }, + { + label: 'Item 2', + icon: 'umb:home', + action: () => alert('Item 2 clicked'), + }, ]; export const Overview: Story = { - args: { - items: items, - iconOnly: false, - } + args: { + items: items, + iconOnly: false, + }, }; export const WithIconsOnly: Story = { - args: { - items: items, - iconOnly: true, - } + args: { + items: items, + iconOnly: true, + }, }; - diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/tree/context-menu/tree-context-menu-page.service.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/tree/context-menu/tree-context-menu-page.service.ts deleted file mode 100644 index 2d51f9f46f..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/tree/context-menu/tree-context-menu-page.service.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, nothing, PropertyValueMap } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDeepState } from '@umbraco-cms/backoffice/observable-api'; -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; - -// TODO: Refactor this, its not a service and the data should be handled by a context api. -@customElement('umb-tree-context-menu-page-service') -export class UmbTreeContextMenuPageServiceElement extends UmbLitElement { - @property({ type: Object }) - public actionEntity: any = { key: '', name: '' }; - - #entity = new UmbDeepState({ key: '', name: '' } as any); - public readonly entity = this.#entity.asObservable(); - - @state() - private _pages: Array<HTMLElement> = []; - - connectedCallback() { - super.connectedCallback(); - this.provideContext(UMB_TREE_CONTEXT_MENU_PAGE_SERVICE_CONTEXT_TOKEN, this); - this.openFreshPage('umb-tree-context-menu-page-action-list'); - } - - protected updated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void { - super.updated(_changedProperties); - - if (_changedProperties.has('actionEntity')) { - this.#entity.next(this.actionEntity); - //TODO: Move back to first page - this.openFreshPage('umb-tree-context-menu-page-action-list'); - } - } - - public openPage(elementName: string) { - const element = document.createElement(elementName) as any; - this._pages.push(element); - this.requestUpdate('_pages'); - } - - public openFreshPage(elementName: string) { - this._pages = []; - this.openPage(elementName); - } - - public closeTopPage() { - this._pages.pop(); - this.requestUpdate('_pages'); - } - - private _renderTopPage() { - if (this._pages.length === 0) { - return nothing; - } - - return this._pages[this._pages.length - 1]; - } - - render() { - return this._renderTopPage(); - } - - static styles = [UUITextStyles, css``]; -} - -export const UMB_TREE_CONTEXT_MENU_PAGE_SERVICE_CONTEXT_TOKEN = - new UmbContextToken<UmbTreeContextMenuPageServiceElement>('UmbTreeContextMenuService'); - -declare global { - interface HTMLElementTagNameMap { - 'umb-tree-context-menu-page-service': UmbTreeContextMenuPageServiceElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/tree/context-menu/tree-context-menu.service.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/tree/context-menu/tree-context-menu.service.ts deleted file mode 100644 index 610bb96094..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/tree/context-menu/tree-context-menu.service.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html, nothing } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; - -@customElement('umb-tree-context-menu-service') -export class UmbTreeContextMenuServiceElement extends UmbLitElement { - @state() - private _modalOpen = false; - - @state() - private entity: { name: string; key: string } = { name: '', key: '' }; - - connectedCallback() { - super.connectedCallback(); - this.provideContext(UMB_TREE_CONTEXT_MENU_SERVICE_CONTEXT_TOKEN, this); - } - - public open(entity: any) { - this.entity = entity; - this._modalOpen = true; - } - - public close() { - this._modalOpen = false; - } - - private _renderBackdrop() { - // eslint-disable-next-line lit-a11y/click-events-have-key-events - return this._modalOpen ? html`<div id="backdrop" @click=${this.close}></div>` : nothing; - } - - private _renderModal() { - return this._modalOpen - ? html`<umb-tree-context-menu-page-service - id="action-modal" - .actionEntity=${this.entity}></umb-tree-context-menu-page-service>` - : nothing; - } - - render() { - return html` - ${this._renderBackdrop()} - <div id="relative-wrapper"> - <slot></slot> - ${this._renderModal()} - </div> - `; - } - - static styles = [ - UUITextStyles, - css` - :host { - display: block; - width: 100%; - height: 100%; - z-index: 1; - } - #backdrop { - content: ''; - position: absolute; - inset: 0px; - background-color: black; - opacity: 0.5; - width: 100vw; - height: 100vh; - z-index: -1; - } - #relative-wrapper { - background-color: var(--uui-color-surface); - position: relative; - display: flex; - flex-direction: column; - width: 100%; - height: 100%; - } - #action-modal { - position: absolute; - left: 300px; - height: 100%; - z-index: 1; - top: 0; - width: 300px; - border: none; - border-left: 1px solid var(--uui-color-border); - border-right: 1px solid var(--uui-color-border); - background-color: var(--uui-color-surface); - } - `, - ]; -} - -export const UMB_TREE_CONTEXT_MENU_SERVICE_CONTEXT_TOKEN = new UmbContextToken<UmbTreeContextMenuServiceElement>( - 'UmbTreeContextMenuService' -); - -declare global { - interface HTMLElementTagNameMap { - 'umb-tree-context-menu-service': UmbTreeContextMenuServiceElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/variant-selector/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/variant-selector/index.ts new file mode 100644 index 0000000000..71d7a0b546 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/variant-selector/index.ts @@ -0,0 +1 @@ +export * from './variant-selector.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/variant-selector/variant-selector.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/variant-selector/variant-selector.element.ts index 7bd64de046..68f20c532d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/variant-selector/variant-selector.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/variant-selector/variant-selector.element.ts @@ -1,13 +1,10 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, nothing } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UUIInputElement, UUIInputEvent } from '@umbraco-ui/uui'; -import { ifDefined } from 'lit/directives/if-defined.js'; +import { UUITextStyles , UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbWorkspaceVariantContext, UMB_WORKSPACE_VARIANT_CONTEXT_TOKEN, -} from '../workspace/workspace-variant/workspace-variant.context'; -import type { ActiveVariant } from '@umbraco-cms/backoffice/workspace'; + ActiveVariant, +} from '@umbraco-cms/backoffice/workspace'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { DocumentVariantResponseModel, ContentStateModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/variant-selector/variant-selector.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/variant-selector/variant-selector.stories.ts index 7aac088b20..c5e50500c7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/variant-selector/variant-selector.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/variant-selector/variant-selector.stories.ts @@ -1,6 +1,6 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import './variant-selector.element'; -import type { UmbVariantSelectorElement } from './variant-selector.element'; +import './variant-selector.element.js'; +import type { UmbVariantSelectorElement } from './variant-selector.element.js'; const meta: Meta<UmbVariantSelectorElement> = { title: 'Components/Variant Selector', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/variantable-property/variantable-property.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/variantable-property/variantable-property.stories.ts deleted file mode 100644 index abcf01e0e0..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/variantable-property/variantable-property.stories.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Meta, StoryObj } from '@storybook/web-components'; -import './variantable-property.element'; -import type { UmbVariantablePropertyElement } from './variantable-property.element' - -const meta: Meta<UmbVariantablePropertyElement> = { - title: 'Components/Variantable Property', - component: 'umb-variantable-property', -}; - -export default meta; -type Story = StoryObj<UmbVariantablePropertyElement>; - -export const Overview: Story = { - args: { - property: { - name: 'Header', - alias: 'headerAlias', - appearance: { - labelOnTop: false - }, - description: 'This is a description', - variesByCulture: true, - variesBySegment: true, - validation: { - mandatory: true, - mandatoryMessage: 'This is a mandatory message', - } - }, - - } -}; - diff --git a/src/Umbraco.Web.UI.Client/libs/content-type/content-type-container-structure-helper.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts similarity index 69% rename from src/Umbraco.Web.UI.Client/libs/content-type/content-type-container-structure-helper.class.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts index a617fb22ff..b754338ad5 100644 --- a/src/Umbraco.Web.UI.Client/libs/content-type/content-type-container-structure-helper.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts @@ -1,4 +1,7 @@ -import { PropertyContainerTypes, UmbContentTypePropertyStructureManager } from './content-type-structure-manager.class'; +import { + PropertyContainerTypes, + UmbContentTypePropertyStructureManager, +} from './content-type-structure-manager.class.js'; import { PropertyTypeContainerResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState, UmbBooleanState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; @@ -14,10 +17,11 @@ export class UmbContentTypeContainerStructureHelper { private _childType?: PropertyContainerTypes = 'Group'; private _isRoot = false; private _ownerName?: string; - private _ownerKey?: string; // Containers defined in data might be more than actual containers to display as we merge them by name. - // Owner containers are the containers defining the total of this container(Multiple containers with the same name and type) + // Direct containers are the containers defining the total of this container(Multiple containers with the same name and type) + private _directContainers: PropertyTypeContainerResponseModelBaseModel[] = []; + // Owner containers are containers owned by the owner Document Type (The specific one up for editing) private _ownerContainers: PropertyTypeContainerResponseModelBaseModel[] = []; // State containing the merged containers (only one pr. name): @@ -40,13 +44,13 @@ export class UmbContentTypeContainerStructureHelper { this.#structure = structure; this.#initResolver?.(undefined); this.#initResolver = undefined; - this._observeOwnerContainers(); + this._observeDirectContainers(); } public setType(value?: PropertyContainerTypes) { if (this._ownerType === value) return; this._ownerType = value; - this._observeOwnerContainers(); + this._observeDirectContainers(); } public getType() { return this._ownerType; @@ -55,7 +59,7 @@ export class UmbContentTypeContainerStructureHelper { public setContainerChildType(value?: PropertyContainerTypes) { if (this._childType === value) return; this._childType = value; - this._observeOwnerContainers(); + this._observeDirectContainers(); } public getContainerChildType() { return this._childType; @@ -64,7 +68,7 @@ export class UmbContentTypeContainerStructureHelper { public setName(value?: string) { if (this._ownerName === value) return; this._ownerName = value; - this._observeOwnerContainers(); + this._observeDirectContainers(); } public getName() { return this._ownerName; @@ -73,29 +77,38 @@ export class UmbContentTypeContainerStructureHelper { public setIsRoot(value: boolean) { if (this._isRoot === value) return; this._isRoot = value; - this._observeOwnerContainers(); + this._observeDirectContainers(); } public getIsRoot() { return this._isRoot; } - private _observeOwnerContainers() { - if (!this.#structure) return; + private _observeDirectContainers() { + if (!this.#structure || !this._ownerType) return; if (this._isRoot) { this.#containers.next([]); // We cannot have root properties currently, therefor we set it to false: this.#hasProperties.next(false); this._observeRootContainers(); - } else if (this._ownerName && this._ownerType) { + new UmbObserverController( + this.#host, + this.#structure.ownerContainersOf(this._ownerType), + (ownerContainers) => { + this._ownerContainers = ownerContainers || []; + }, + '_observeOwnerContainers' + ); + } else if (this._ownerName) { new UmbObserverController( this.#host, this.#structure.containersByNameAndType(this._ownerName, this._ownerType), (ownerContainers) => { this.#containers.next([]); this._ownerContainers = ownerContainers || []; - if (this._ownerContainers.length > 0) { - this._observeOwnerProperties(); + this._directContainers = ownerContainers || []; + if (this._directContainers.length > 0) { + this._observeChildContainerProperties(); this._observeChildContainers(); } }, @@ -104,10 +117,10 @@ export class UmbContentTypeContainerStructureHelper { } } - private _observeOwnerProperties() { + private _observeChildContainerProperties() { if (!this.#structure) return; - this._ownerContainers.forEach((container) => { + this._directContainers.forEach((container) => { new UmbObserverController( this.#host, this.#structure!.hasPropertyStructuresOf(container.id!), @@ -122,7 +135,7 @@ export class UmbContentTypeContainerStructureHelper { private _observeChildContainers() { if (!this.#structure || !this._ownerName || !this._childType) return; - this._ownerContainers.forEach((container) => { + this._directContainers.forEach((container) => { new UmbObserverController( this.#host, this.#structure!.containersOfParentKey(container.id, this._childType!), @@ -159,24 +172,27 @@ export class UmbContentTypeContainerStructureHelper { /** * Returns true if the container is an owner container. */ - isOwnerContainer(groupId?: string) { - if (!this.#structure || !groupId) return; + isOwnerContainer(containerId?: string) { + if (!this.#structure || !containerId) return; - return this._ownerContainers.find((x) => x.id === groupId) !== undefined; + return this._ownerContainers.find((x) => x.id === containerId) !== undefined; } /** Manipulate methods: */ - async addContainer(ownerId?: string, sortOrder?: number) { + async addContainer(parentContainerId?: string, sortOrder?: number) { if (!this.#structure) return; - await this.#structure.createContainer(null, ownerId, this._childType, sortOrder); + await this.#structure.createContainer(null, parentContainerId, this._childType, sortOrder); } - async partialUpdateContainer(groupId?: string, partialUpdate?: Partial<PropertyTypeContainerResponseModelBaseModel>) { + async partialUpdateContainer( + containerId?: string, + partialUpdate?: Partial<PropertyTypeContainerResponseModelBaseModel> + ) { await this.#init; - if (!this.#structure || !groupId || !partialUpdate) return; + if (!this.#structure || !containerId || !partialUpdate) return; - return await this.#structure.updateContainer(null, groupId, partialUpdate); + return await this.#structure.updateContainer(null, containerId, partialUpdate); } } diff --git a/src/Umbraco.Web.UI.Client/libs/content-type/content-type-property-structure-helper.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts similarity index 97% rename from src/Umbraco.Web.UI.Client/libs/content-type/content-type-property-structure-helper.class.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts index 5c9164708d..32efa3ce21 100644 --- a/src/Umbraco.Web.UI.Client/libs/content-type/content-type-property-structure-helper.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts @@ -1,4 +1,7 @@ -import { PropertyContainerTypes, UmbContentTypePropertyStructureManager } from './content-type-structure-manager.class'; +import { + PropertyContainerTypes, + UmbContentTypePropertyStructureManager, +} from './content-type-structure-manager.class.js'; import { DocumentTypePropertyTypeResponseModel, PropertyTypeResponseModelBaseModel, diff --git a/src/Umbraco.Web.UI.Client/libs/content-type/content-type-structure-manager.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts similarity index 81% rename from src/Umbraco.Web.UI.Client/libs/content-type/content-type-structure-manager.class.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts index 6aa6d708dd..d76840aea6 100644 --- a/src/Umbraco.Web.UI.Client/libs/content-type/content-type-structure-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts @@ -1,4 +1,4 @@ -import { UmbDetailRepository } from '../repository'; +import { UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; import { UmbId } from '@umbraco-cms/backoffice/id'; import { DocumentTypePropertyTypeResponseModel, @@ -27,7 +27,7 @@ export class UmbContentTypePropertyStructureManager<R extends UmbDetailRepositor #contentTypeRepository: R; - #rootDocumentTypeId?: string; + #ownerDocumentTypeId?: string; #documentTypeObservers = new Array<UmbControllerInterface>(); #documentTypes = new UmbArrayState<T>([], (x) => x.id); readonly documentTypes = this.#documentTypes.asObservable(); @@ -58,7 +58,7 @@ export class UmbContentTypePropertyStructureManager<R extends UmbDetailRepositor public async loadType(id?: string) { this._reset(); - this.#rootDocumentTypeId = id; + this.#ownerDocumentTypeId = id; const promiseResult = this._loadType(id); this.#init = promiseResult; @@ -66,21 +66,39 @@ export class UmbContentTypePropertyStructureManager<R extends UmbDetailRepositor return promiseResult; } - public async createScaffold(parentId: string) { + public async createScaffold(parentId: string | null) { this._reset(); - if (!parentId) return {}; + if (parentId === undefined) return {}; const { data } = await this.#contentTypeRepository.createScaffold(parentId); if (!data) return {}; - this.#rootDocumentTypeId = data.id; + this.#ownerDocumentTypeId = data.id; this.#init = this._observeDocumentType(data); await this.#init; return { data }; } + public async save() { + const documentType = this.getOwnerDocumentType(); + if (!documentType || !documentType.id) return false; + + await this.#contentTypeRepository.save(documentType.id, documentType); + + return true; + } + + public async create() { + const documentType = this.getOwnerDocumentType(); + if (!documentType || !documentType.id) return false; + + //const value = documentType as CreateDocumentTypeRequestModel & { id: string }; + await this.#contentTypeRepository.create(documentType); + return true; + } + private async _ensureType(id?: string) { if (!id) return; if (this.#documentTypes.getValue().find((x) => x.id === id)) return; @@ -132,14 +150,14 @@ export class UmbContentTypePropertyStructureManager<R extends UmbDetailRepositor /** Public methods for consuming structure: */ - rootDocumentType() { - return this.#documentTypes.getObservablePart((x) => x.find((y) => y.id === this.#rootDocumentTypeId)); + ownerDocumentType() { + return this.#documentTypes.getObservablePart((x) => x.find((y) => y.id === this.#ownerDocumentTypeId)); } - getRootDocumentType() { - return this.#documentTypes.getValue().find((y) => y.id === this.#rootDocumentTypeId); + getOwnerDocumentType() { + return this.#documentTypes.getValue().find((y) => y.id === this.#ownerDocumentTypeId); } - updateRootDocumentType(entry: T) { - this.#documentTypes.updateOne(this.#rootDocumentTypeId, entry); + updateOwnerDocumentType(entry: T) { + this.#documentTypes.updateOne(this.#ownerDocumentTypeId, entry); } // We could move the actions to another class? @@ -151,7 +169,7 @@ export class UmbContentTypePropertyStructureManager<R extends UmbDetailRepositor sortOrder?: number ) { await this.#init; - contentTypeId = contentTypeId ?? this.#rootDocumentTypeId!; + contentTypeId = contentTypeId ?? this.#ownerDocumentTypeId!; const container: PropertyTypeContainerResponseModelBaseModel = { id: UmbId.new(), @@ -175,7 +193,7 @@ export class UmbContentTypePropertyStructureManager<R extends UmbDetailRepositor partialUpdate: Partial<PropertyTypeContainerResponseModelBaseModel> ) { await this.#init; - documentTypeId = documentTypeId ?? this.#rootDocumentTypeId!; + documentTypeId = documentTypeId ?? this.#ownerDocumentTypeId!; const frozenContainers = this.#documentTypes.getValue().find((x) => x.id === documentTypeId)?.containers ?? []; @@ -186,7 +204,7 @@ export class UmbContentTypePropertyStructureManager<R extends UmbDetailRepositor async removeContainer(documentTypeKey: string | null, containerId: string | null = null) { await this.#init; - documentTypeKey = documentTypeKey ?? this.#rootDocumentTypeId!; + documentTypeKey = documentTypeKey ?? this.#ownerDocumentTypeId!; const frozenContainers = this.#documentTypes.getValue().find((x) => x.id === documentTypeKey)?.containers ?? []; const containers = frozenContainers.filter((x) => x.id !== containerId); @@ -196,13 +214,28 @@ export class UmbContentTypePropertyStructureManager<R extends UmbDetailRepositor async createProperty(documentTypeId: string | null, containerId: string | null = null, sortOrder?: number) { await this.#init; - documentTypeId = documentTypeId ?? this.#rootDocumentTypeId!; + documentTypeId = documentTypeId ?? this.#ownerDocumentTypeId!; const property: PropertyTypeResponseModelBaseModel = { id: UmbId.new(), containerId: containerId, - //sortOrder: sortOrder ?? 0, - }; + alias: '', + name: '', + description: '', + dataTypeId: '', + variesByCulture: false, + variesBySegment: false, + validation: { + mandatory: false, + mandatoryMessage: null, + regEx: null, + regExMessage: null, + }, + appearance: { + labelOnTop: false, + }, + sortOrder: sortOrder ?? 0, + } as any; // Sort order was not allowed when this was written. const properties = [...(this.#documentTypes.getValue().find((x) => x.id === documentTypeId)?.properties ?? [])]; properties.push(property); @@ -214,7 +247,7 @@ export class UmbContentTypePropertyStructureManager<R extends UmbDetailRepositor async insertProperty(documentTypeId: string | null, property: PropertyTypeResponseModelBaseModel) { await this.#init; - documentTypeId = documentTypeId ?? this.#rootDocumentTypeId!; + documentTypeId = documentTypeId ?? this.#ownerDocumentTypeId!; const frozenProperties = this.#documentTypes.getValue().find((x) => x.id === documentTypeId)?.properties ?? []; @@ -225,7 +258,7 @@ export class UmbContentTypePropertyStructureManager<R extends UmbDetailRepositor async removeProperty(documentTypeId: string | null, propertyId: string) { await this.#init; - documentTypeId = documentTypeId ?? this.#rootDocumentTypeId!; + documentTypeId = documentTypeId ?? this.#ownerDocumentTypeId!; const frozenProperties = this.#documentTypes.getValue().find((x) => x.id === documentTypeId)?.properties ?? []; @@ -240,7 +273,7 @@ export class UmbContentTypePropertyStructureManager<R extends UmbDetailRepositor partialUpdate: Partial<PropertyTypeResponseModelBaseModel> ) { await this.#init; - documentTypeId = documentTypeId ?? this.#rootDocumentTypeId!; + documentTypeId = documentTypeId ?? this.#ownerDocumentTypeId!; const frozenProperties = this.#documentTypes.getValue().find((x) => x.id === documentTypeId)?.properties ?? []; @@ -258,9 +291,9 @@ export class UmbContentTypePropertyStructureManager<R extends UmbDetailRepositor } */ - rootDocumentTypeObservablePart<PartResult>(mappingFunction: MappingFunction<T, PartResult>) { + ownerDocumentTypeObservablePart<PartResult>(mappingFunction: MappingFunction<T, PartResult>) { return this.#documentTypes.getObservablePart((docTypes) => { - const docType = docTypes.find((x) => x.id === this.#rootDocumentTypeId); + const docType = docTypes.find((x) => x.id === this.#ownerDocumentTypeId); return docType ? mappingFunction(docType) : undefined; }); } @@ -311,6 +344,10 @@ export class UmbContentTypePropertyStructureManager<R extends UmbDetailRepositor }); } + ownerContainersOf(containerType: PropertyContainerTypes) { + return this.ownerDocumentTypeObservablePart((x) => x.containers?.filter((x) => x.type === containerType) ?? []); + } + containersOfParentKey( parentId: PropertyTypeContainerResponseModelBaseModel['parentId'], containerType: PropertyContainerTypes @@ -320,7 +357,7 @@ export class UmbContentTypePropertyStructureManager<R extends UmbDetailRepositor }); } - // In future this might need to take parentName(parentId lookup) into account as well? otherwise containers that share same name and type will always be merged, but their position might be different and they should nto be merged. + // In future this might need to take parentName(parentId lookup) into account as well? otherwise containers that share same name and type will always be merged, but their position might be different and they should not be merged. containersByNameAndType(name: string, containerType: PropertyContainerTypes) { return this.#containers.getObservablePart((data) => { return data.filter((x) => x.name === name && x.type === containerType); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/index.ts new file mode 100644 index 0000000000..c587218a3d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/index.ts @@ -0,0 +1,3 @@ +export * from './content-type-container-structure-helper.class.js'; +export * from './content-type-property-structure-helper.class.js'; +export * from './content-type-structure-manager.class.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/debug/debug.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug.element.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/debug/debug.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/debug/debug.element.ts index 39e88d3e4a..f9e8b29621 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/debug/debug.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug.element.ts @@ -1,6 +1,13 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, nothing, TemplateResult } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { + css, + html, + nothing, + TemplateResult, + customElement, + property, + state, +} from '@umbraco-cms/backoffice/external/lit'; import { contextData, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/debug/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/debug/index.ts new file mode 100644 index 0000000000..018153cb82 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/debug/index.ts @@ -0,0 +1,2 @@ +export * from './debug.element.js'; +export * from './manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/debug/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/debug/manifests.ts similarity index 79% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/debug/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/debug/manifests.ts index 53cae6cf48..f1f7b08c1c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/debug/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/debug/manifests.ts @@ -5,7 +5,7 @@ const modals: Array<ManifestModal> = [ type: 'modal', alias: 'Umb.Modal.ContextDebugger', name: 'Context Debugger Modal', - loader: () => import('./modals/debug/debug-modal.element'), + loader: () => import('./modals/debug/debug-modal.element.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/debug/modals/debug/debug-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/debug/modals/debug/debug-modal.element.ts similarity index 91% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/debug/modals/debug/debug-modal.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/debug/modals/debug/debug-modal.element.ts index 7fbadd4eb0..8c02c9fa71 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/debug/modals/debug/debug-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/debug/modals/debug/debug-modal.element.ts @@ -1,6 +1,5 @@ -import { css, html } from 'lit'; -import { customElement } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css'; +import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbContextDebuggerModalData } from '@umbraco-cms/backoffice/modal'; import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/debug/stories/debug.mdx b/src/Umbraco.Web.UI.Client/src/packages/core/debug/stories/debug.mdx similarity index 95% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/debug/stories/debug.mdx rename to src/Umbraco.Web.UI.Client/src/packages/core/debug/stories/debug.mdx index 511a284cb4..bc1d5399d0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/debug/stories/debug.mdx +++ b/src/Umbraco.Web.UI.Client/src/packages/core/debug/stories/debug.mdx @@ -15,8 +15,10 @@ For example it will help you as a package developer or implementor to know you a This can help with the developer experience to quickly see what is available to use and how to use it. ### Usage + The `<umb-debug>` component can be used in two different ways, either as a button or as a dialog. By default it is rendered as a button and the debug information about available contexts is dissplayed inline to where the element is placed. -<img src={DebugImage} width="100%"/> + +<img src={DebugImage} width="100%" /> ```typescript // This will add a Debug button to the UI and once clicked the information about avilable contextes will slide down @@ -24,8 +26,10 @@ The `<umb-debug>` component can be used in two different ways, either as a butto ``` #### Dialog + This example uses an additional property/attribute `dialog` which adds a smaller badge to the UI as opposed to a button and will open the information in a small dialog/modal from the right hand side, this may be more useful to use when space is limited in the UI to add a button and pane of information directly to where the element is placed. -<img src={DebugDialogImage} width="100%"/> + +<img src={DebugDialogImage} width="100%" /> ```typescript // This will open the debug information in a small dialog/modal from the right hand side @@ -33,6 +37,7 @@ This example uses an additional property/attribute `dialog` which adds a smaller ``` #### Disable + You may wish to temporarily hide or disable the debug information but return to it later on in the development process. ```typescript diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/debug/stories/umb-debug-dialog.jpg b/src/Umbraco.Web.UI.Client/src/packages/core/debug/stories/umb-debug-dialog.jpg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/debug/stories/umb-debug-dialog.jpg rename to src/Umbraco.Web.UI.Client/src/packages/core/debug/stories/umb-debug-dialog.jpg diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/debug/stories/umb-debug.jpg b/src/Umbraco.Web.UI.Client/src/packages/core/debug/stories/umb-debug.jpg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/debug/stories/umb-debug.jpg rename to src/Umbraco.Web.UI.Client/src/packages/core/debug/stories/umb-debug.jpg diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/copy/copy.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/copy/copy.action.ts similarity index 84% rename from src/Umbraco.Web.UI.Client/libs/entity-action/actions/copy/copy.action.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/copy/copy.action.ts index 07bb5ac310..eca7e06460 100644 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/copy/copy.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/copy/copy.action.ts @@ -1,4 +1,4 @@ -import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; +import { UmbEntityActionBase } from '../../entity-action.js'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbCopyEntityAction<T extends { copy(): Promise<void> }> extends UmbEntityActionBase<T> { diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete-folder/delete-folder.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete-folder/delete-folder.action.ts similarity index 94% rename from src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete-folder/delete-folder.action.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete-folder/delete-folder.action.ts index ace6b8c564..c88392abfb 100644 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete-folder/delete-folder.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete-folder/delete-folder.action.ts @@ -1,4 +1,4 @@ -import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; +import { UmbEntityActionBase } from '../../entity-action.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts similarity index 94% rename from src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts index 07a65d3295..11d43207cd 100644 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/delete/delete.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts @@ -1,4 +1,4 @@ -import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; +import { UmbEntityActionBase } from '../../entity-action.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/folder-update/folder-update.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/libs/entity-action/actions/folder-update/folder-update.action.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts index fd59817219..cd3916541c 100644 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/folder-update/folder-update.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts @@ -1,4 +1,4 @@ -import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; +import { UmbEntityActionBase } from '../../entity-action.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbModalContext, UMB_FOLDER_MODAL, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/index.ts new file mode 100644 index 0000000000..bda8f87445 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/index.ts @@ -0,0 +1,7 @@ +export * from './copy/copy.action.js'; +export * from './delete/delete.action.js'; +export * from './delete-folder/delete-folder.action.js'; +export * from './folder-update/folder-update.action.js'; +export * from './move/move.action.js'; +export * from './sort-children-of/sort-children-of.action.js'; +export * from './trash/trash.action.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/move/move.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/move/move.action.ts similarity index 89% rename from src/Umbraco.Web.UI.Client/libs/entity-action/actions/move/move.action.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/move/move.action.ts index ef743a2a84..8f7f6c49a1 100644 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/move/move.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/move/move.action.ts @@ -1,4 +1,4 @@ -import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; +import { UmbEntityActionBase } from '../../entity-action.js'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; // TODO: investigate what we need to finish the generic move action. We would need to open a picker, which requires a modal token, diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/sort-children-of/sort-children-of.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/sort-children-of/sort-children-of.action.ts similarity index 85% rename from src/Umbraco.Web.UI.Client/libs/entity-action/actions/sort-children-of/sort-children-of.action.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/sort-children-of/sort-children-of.action.ts index 7a85c6041d..8e7c170aca 100644 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/sort-children-of/sort-children-of.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/sort-children-of/sort-children-of.action.ts @@ -1,4 +1,4 @@ -import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; +import { UmbEntityActionBase } from '../../entity-action.js'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbSortChildrenOfEntityAction< diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/trash/trash.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.ts similarity index 94% rename from src/Umbraco.Web.UI.Client/libs/entity-action/actions/trash/trash.action.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.ts index bf3715c421..0429e455d3 100644 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/actions/trash/trash.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.ts @@ -1,4 +1,4 @@ -import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; +import { UmbEntityActionBase } from '../../entity-action.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-action/entity-action-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action-list.element.ts similarity index 86% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/entity-action/entity-action-list.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action-list.element.ts index 4d35a17136..cac0afc1bb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-action/entity-action-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action-list.element.ts @@ -1,11 +1,10 @@ -import { html } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { map } from 'rxjs'; +import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { map } from '@umbraco-cms/backoffice/external/rxjs'; import { ManifestEntityAction, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-entity-action-list') -class UmbEntityActionListElement extends UmbLitElement { +export class UmbEntityActionListElement extends UmbLitElement { private _entityType = ''; @property({ type: String, attribute: 'entity-type' }) public get entityType() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-action/entity-action.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.element.ts similarity index 67% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/entity-action/entity-action.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.element.ts index 3e47636630..d03f19fe2e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-action/entity-action.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.element.ts @@ -1,20 +1,17 @@ -import { html, nothing } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { UUIMenuItemEvent } from '@umbraco-ui/uui'; +import { html, nothing, ifDefined, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUIMenuItemEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbExecutedEvent } from '@umbraco-cms/backoffice/events'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-entity-action') -class UmbEntityActionElement extends UmbLitElement { - private _unique?: string; +export class UmbEntityActionElement extends UmbLitElement { + private _unique?: string | null; @property({ type: String }) public get unique() { return this._unique; } - public set unique(value: string | undefined) { - if (!value) return; + public set unique(value: string | undefined | null) { const oldValue = this._unique; this._unique = value; if (oldValue !== this._unique) { @@ -38,16 +35,26 @@ class UmbEntityActionElement extends UmbLitElement { } } - #createApi() { + async #createApi() { if (!this._manifest?.meta.api) return; + if (this._unique === undefined) return; + // TODO: Could we provide the manifest to the api constructor? instead, to enable more flexibility. Mainly cause some actions knows their repository. some does not need a repository? this.#api = new this._manifest.meta.api(this, this._manifest.meta.repositoryAlias, this.unique); + + // TODO: Fix so when we use a HREF it does not refresh the page? + this._href = await this.#api.getHref?.(); } #api: any; + @state() + _href?: string; + async #onClickLabel(event: UUIMenuItemEvent) { - event.stopPropagation(); - await this.#api.execute(); + if (!this._href) { + event.stopPropagation(); + await this.#api.execute(); + } this.dispatchEvent(new UmbExecutedEvent()); } @@ -60,7 +67,8 @@ class UmbEntityActionElement extends UmbLitElement { render() { return html` <uui-menu-item - label="${ifDefined(this._manifest?.meta.label)}" + label=${ifDefined(this._manifest?.meta.label)} + href=${this._href} @click-label=${this.#onClickLabel} @click=${this.#onClick}> ${this._manifest?.meta.icon diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/entity-action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.ts similarity index 89% rename from src/Umbraco.Web.UI.Client/libs/entity-action/entity-action.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.ts index 3be52db3db..17ecb2eed6 100644 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/entity-action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.ts @@ -1,4 +1,4 @@ -import { UmbAction, UmbActionBase } from './action'; +import { UmbAction, UmbActionBase } from '../action/index.js'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export interface UmbEntityAction<RepositoryType> extends UmbAction<RepositoryType> { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/index.ts new file mode 100644 index 0000000000..3bc2e27029 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/index.ts @@ -0,0 +1,4 @@ +export * from './entity-action-list.element.js'; +export * from './entity-action.element.js'; +export * from './entity-action.js'; +export * from './common/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-bulk-action/entity-bulk-action.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-bulk-action/entity-bulk-action.element.ts similarity index 86% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/entity-bulk-action/entity-bulk-action.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/entity-bulk-action/entity-bulk-action.element.ts index 4b9c0acca4..b83fd56941 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-bulk-action/entity-bulk-action.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-bulk-action/entity-bulk-action.element.ts @@ -1,13 +1,11 @@ -import { html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { UmbEntityBulkAction } from '@umbraco-cms/backoffice/entity-action'; +import { UmbEntityBulkAction } from './entity-bulk-action.js'; +import { html, ifDefined, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbExecutedEvent } from '@umbraco-cms/backoffice/events'; -import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { ManifestEntityBulkAction } from '@umbraco-cms/backoffice/extension-registry'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-entity-bulk-action') -class UmbEntityBulkActionElement extends UmbLitElement { +export class UmbEntityBulkActionElement extends UmbLitElement { private _selection: Array<string> = []; @property({ type: Array, attribute: false }) public get selection() { diff --git a/src/Umbraco.Web.UI.Client/libs/entity-action/entity-bulk-action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-bulk-action/entity-bulk-action.ts similarity index 89% rename from src/Umbraco.Web.UI.Client/libs/entity-action/entity-bulk-action.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/entity-bulk-action/entity-bulk-action.ts index e2cae65052..19070ad6ae 100644 --- a/src/Umbraco.Web.UI.Client/libs/entity-action/entity-bulk-action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-bulk-action/entity-bulk-action.ts @@ -1,4 +1,4 @@ -import { UmbAction, UmbActionBase } from './action'; +import { UmbAction, UmbActionBase } from '@umbraco-cms/backoffice/action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export interface UmbEntityBulkAction<RepositoryType = unknown> extends UmbAction<RepositoryType> { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-bulk-action/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-bulk-action/index.ts new file mode 100644 index 0000000000..a78d03ebde --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-bulk-action/index.ts @@ -0,0 +1,2 @@ +export * from './entity-bulk-action.js'; +export * from './entity-bulk-action.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/extension-class-initializer.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/extension-class-initializer.ts new file mode 100644 index 0000000000..43b314088a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/extension-class-initializer.ts @@ -0,0 +1,52 @@ +import type { ManifestTypes } from './models/index.js'; +import { umbExtensionsRegistry } from './registry.js'; +import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import { + createExtensionClass, + ManifestBase, + ManifestClass, + SpecificManifestTypeOrManifestBase, +} from '@umbraco-cms/backoffice/extension-api'; +import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; + +export class UmbExtensionClassInitializer< + ExtensionType extends string = string, + ExtensionManifest extends ManifestBase = SpecificManifestTypeOrManifestBase<ManifestTypes, ExtensionType>, + ExtensionClassInterface = ExtensionManifest extends ManifestClass ? ExtensionManifest['CLASS_TYPE'] : unknown +> { + #observable; + #currentPromise?: Promise<ExtensionClassInterface | undefined>; + #currentPromiseResolver?: (value: ExtensionClassInterface | undefined) => void; + + constructor( + host: UmbControllerHostElement, + extensionType: ExtensionType, + extensionAlias: string, + callback: (extensionClass: ExtensionClassInterface | undefined) => void + ) { + const source = umbExtensionsRegistry.getByTypeAndAlias(extensionType, extensionAlias); + //TODO: The promise can probably be done in a cleaner way. + this.#observable = new UmbObserverController(host, source, async (manifest) => { + if (!manifest) return; + + try { + const initializedClass = await createExtensionClass<ExtensionClassInterface>(manifest, [host]); + callback(initializedClass); + if (this.#currentPromiseResolver) { + this.#currentPromiseResolver(initializedClass); + this.#currentPromise = undefined; + this.#currentPromiseResolver = undefined; + } + } catch (error) { + throw new Error(`Could not create class of extension type '${extensionType}' with alias '${extensionAlias}'`); + } + }); + } + + public asPromise() { + this.#currentPromise ??= new Promise((resolve) => { + this.#currentPromiseResolver = resolve; + }); + return this.#currentPromise; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/index.ts new file mode 100644 index 0000000000..d2e414594e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/index.ts @@ -0,0 +1,4 @@ +export * from './interfaces/index.js'; +export * from './models/index.js'; +export * from './registry.js'; +export * from './extension-class-initializer.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/dashboard-extension-element.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/dashboard-extension-element.interface.ts similarity index 62% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/dashboard-extension-element.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/dashboard-extension-element.interface.ts index a485d571da..98429212b7 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/dashboard-extension-element.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/dashboard-extension-element.interface.ts @@ -1,4 +1,4 @@ -import type { ManifestDashboard } from '../models'; +import type { ManifestDashboard } from '../models/index.js'; export interface UmbDashboardExtensionElement extends HTMLElement { manifest?: ManifestDashboard; diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/external-login-provider-extension-element.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/external-login-provider-extension-element.interface.ts similarity index 63% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/external-login-provider-extension-element.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/external-login-provider-extension-element.interface.ts index 92f856ebf1..583890c472 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/external-login-provider-extension-element.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/external-login-provider-extension-element.interface.ts @@ -1,4 +1,4 @@ -import type { ManifestExternalLoginProvider } from '../models'; +import type { ManifestExternalLoginProvider } from '../models/index.js'; export interface UmbExternalLoginProviderExtensionElement extends HTMLElement { manifest?: ManifestExternalLoginProvider; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/index.ts new file mode 100644 index 0000000000..1e8f290cfa --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/index.ts @@ -0,0 +1,10 @@ +export * from './dashboard-extension-element.interface.js'; +export * from './external-login-provider-extension-element.interface.js'; +export * from './menu-item-extension-element.interface.js'; +export * from './modal-extension-element.interface.js'; +export * from './property-editor-ui-extension-element.interface.js'; +export * from './section-extension-element.interface.js'; +export * from './section-sidebar-app-extension-element.interface.js'; +export * from './section-view-extension-element.interface.js'; +export * from './tree-item-extension-element.interface.js'; +export * from './workspace-editor-view-extension-element.interface.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/menu-item-extension-element.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/menu-item-extension-element.interface.ts similarity index 62% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/menu-item-extension-element.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/menu-item-extension-element.interface.ts index e962732f6f..e857d08114 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/menu-item-extension-element.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/menu-item-extension-element.interface.ts @@ -1,4 +1,4 @@ -import type { ManifestMenuItem } from '../models'; +import type { ManifestMenuItem } from '../models/index.js'; export interface UmbMenuItemExtensionElement extends HTMLElement { manifest?: ManifestMenuItem; diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/modal-extension-element.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/modal-extension-element.interface.ts similarity index 86% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/modal-extension-element.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/modal-extension-element.interface.ts index af019a8c5d..672d68c0c3 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/modal-extension-element.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/modal-extension-element.interface.ts @@ -1,4 +1,4 @@ -import type { ManifestModal } from '../models'; +import type { ManifestModal } from '../models/index.js'; import type { UmbModalHandler } from '@umbraco-cms/backoffice/modal'; export interface UmbModalExtensionElement< diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/property-editor-ui-extension-element.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/property-editor-ui-extension-element.interface.ts similarity index 60% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/property-editor-ui-extension-element.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/property-editor-ui-extension-element.interface.ts index 7757dc92e4..dd8f391cbd 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/property-editor-ui-extension-element.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/property-editor-ui-extension-element.interface.ts @@ -1,4 +1,4 @@ -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; export interface UmbPropertyEditorExtensionElement extends HTMLElement { value: unknown; diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/section-extension-element.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/section-extension-element.interface.ts similarity index 62% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/section-extension-element.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/section-extension-element.interface.ts index 653658e71f..8fc4785e24 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/section-extension-element.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/section-extension-element.interface.ts @@ -1,4 +1,4 @@ -import type { ManifestSection } from '../models'; +import type { ManifestSection } from '../models/index.js'; export interface UmbSectionExtensionElement extends HTMLElement { manifest?: ManifestSection; diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/section-sidebar-app-extension-element.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/section-sidebar-app-extension-element.interface.ts similarity index 63% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/section-sidebar-app-extension-element.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/section-sidebar-app-extension-element.interface.ts index ebb2c7adea..34e33f101b 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/section-sidebar-app-extension-element.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/section-sidebar-app-extension-element.interface.ts @@ -1,4 +1,4 @@ -import type { ManifestSectionSidebarApp } from '../models'; +import type { ManifestSectionSidebarApp } from '../models/index.js'; export interface UmbSectionSidebarAppExtensionElement extends HTMLElement { manifest?: ManifestSectionSidebarApp; diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/section-view-extension-element.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/section-view-extension-element.interface.ts similarity index 62% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/section-view-extension-element.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/section-view-extension-element.interface.ts index b3dc2123c7..74f4177eed 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/section-view-extension-element.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/section-view-extension-element.interface.ts @@ -1,4 +1,4 @@ -import type { ManifestSectionView } from '../models'; +import type { ManifestSectionView } from '../models/index.js'; export interface UmbSectionViewExtensionElement extends HTMLElement { manifest?: ManifestSectionView; diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/tree-item-extension-element.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/tree-item-extension-element.interface.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/tree-item-extension-element.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/tree-item-extension-element.interface.ts diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/workspace-editor-view-extension-element.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/workspace-editor-view-extension-element.interface.ts similarity index 63% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/workspace-editor-view-extension-element.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/workspace-editor-view-extension-element.interface.ts index 123d3bfa58..6189009254 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/interfaces/workspace-editor-view-extension-element.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/workspace-editor-view-extension-element.interface.ts @@ -1,4 +1,4 @@ -import type { ManifestWorkspaceEditorView } from '../models'; +import type { ManifestWorkspaceEditorView } from '../models/index.js'; export interface UmbWorkspaceEditorViewExtensionElement extends HTMLElement { manifest?: ManifestWorkspaceEditorView; diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/collection-view.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/collection-view.model.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/collection-view.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/collection-view.model.ts diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/dashboard-collection.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/dashboard-collection.model.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/dashboard-collection.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/dashboard-collection.model.ts diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/dashboard.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/dashboard.model.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/dashboard.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/dashboard.model.ts index aabed1b101..bb1509adb1 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/dashboard.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/dashboard.model.ts @@ -1,4 +1,4 @@ -import type { UmbDashboardExtensionElement } from '../interfaces'; +import type { UmbDashboardExtensionElement } from '../interfaces/index.js'; import type { ManifestElement, ManifestWithConditions } from '@umbraco-cms/backoffice/extension-api'; export interface ManifestDashboard diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/entity-action.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-action.model.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/entity-action.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-action.model.ts diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/entity-bulk-action.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-bulk-action.model.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/entity-bulk-action.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-bulk-action.model.ts diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/external-login-provider.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/external-login-provider.model.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/external-login-provider.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/external-login-provider.model.ts index 14773327d5..d8c3563058 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/external-login-provider.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/external-login-provider.model.ts @@ -1,4 +1,4 @@ -import type { UmbExternalLoginProviderExtensionElement } from '../interfaces/external-login-provider-extension-element.interface'; +import type { UmbExternalLoginProviderExtensionElement } from '../interfaces/external-login-provider-extension-element.interface.js'; import type { ManifestElement } from '@umbraco-cms/backoffice/extension-api'; export interface ManifestExternalLoginProvider extends ManifestElement<UmbExternalLoginProviderExtensionElement> { diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/header-app.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/header-app.model.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/header-app.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/header-app.model.ts diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/health-check.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/health-check.model.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/health-check.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/health-check.model.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/index.ts new file mode 100644 index 0000000000..d90a705168 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/index.ts @@ -0,0 +1,93 @@ +import type { ManifestCollectionView } from './collection-view.model.js'; +import type { ManifestDashboard } from './dashboard.model.js'; +import type { ManifestDashboardCollection } from './dashboard-collection.model.js'; +import type { ManifestEntityAction } from './entity-action.model.js'; +import type { ManifestEntityBulkAction } from './entity-bulk-action.model.js'; +import type { ManifestExternalLoginProvider } from './external-login-provider.model.js'; +import type { ManifestHeaderApp, ManifestHeaderAppButtonKind } from './header-app.model.js'; +import type { ManifestHealthCheck } from './health-check.model.js'; +import type { ManifestMenu } from './menu.model.js'; +import type { ManifestMenuItem, ManifestMenuItemTreeKind } from './menu-item.model.js'; +import type { ManifestModal } from './modal.model.js'; +import type { ManifestPackageView } from './package-view.model.js'; +import type { ManifestPropertyAction } from './property-action.model.js'; +import type { ManifestPropertyEditorUi, ManifestPropertyEditorModel } from './property-editor.model.js'; +import type { ManifestRepository } from './repository.model.js'; +import type { ManifestSection } from './section.model.js'; +import type { ManifestSectionSidebarApp, ManifestSectionSidebarAppMenuKind } from './section-sidebar-app.model.js'; +import type { ManifestSectionView } from './section-view.model.js'; +import type { ManifestStore, ManifestTreeStore, ManifestItemStore } from './store.model.js'; +import type { ManifestTheme } from './theme.model.js'; +import type { ManifestTree } from './tree.model.js'; +import type { ManifestTreeItem } from './tree-item.model.js'; +import type { ManifestUserProfileApp } from './user-profile-app.model.js'; +import type { ManifestWorkspace } from './workspace.model.js'; +import type { ManifestWorkspaceAction } from './workspace-action.model.js'; +import type { ManifestWorkspaceEditorView } from './workspace-editor-view.model.js'; +import type { ManifestWorkspaceViewCollection } from './workspace-view-collection.model.js'; +import type { ManifestBase, ManifestEntryPoint } from '@umbraco-cms/backoffice/extension-api'; + +export * from './collection-view.model.js'; +export * from './dashboard-collection.model.js'; +export * from './dashboard.model.js'; +export * from './entity-action.model.js'; +export * from './entity-bulk-action.model.js'; +export * from './external-login-provider.model.js'; +export * from './header-app.model.js'; +export * from './health-check.model.js'; +export * from './menu-item.model.js'; +export * from './menu.model.js'; +export * from './modal.model.js'; +export * from './package-view.model.js'; +export * from './property-action.model.js'; +export * from './property-editor.model.js'; +export * from './repository.model.js'; +export * from './section-sidebar-app.model.js'; +export * from './section-view.model.js'; +export * from './section.model.js'; +export * from './store.model.js'; +export * from './theme.model.js'; +export * from './tree-item.model.js'; +export * from './tree.model.js'; +export * from './user-profile-app.model.js'; +export * from './workspace-action.model.js'; +export * from './workspace-view-collection.model.js'; +export * from './workspace-editor-view.model.js'; +export * from './workspace.model.js'; + +export type ManifestTypes = + | ManifestCollectionView + | ManifestDashboard + | ManifestDashboardCollection + | ManifestEntityAction + | ManifestEntityBulkAction + | ManifestEntryPoint + | ManifestExternalLoginProvider + | ManifestHeaderApp + | ManifestHeaderAppButtonKind + | ManifestHealthCheck + | ManifestItemStore + | ManifestMenu + | ManifestMenuItem + | ManifestMenuItemTreeKind + | ManifestModal + | ManifestPackageView + | ManifestPropertyAction + | ManifestPropertyEditorModel + | ManifestPropertyEditorUi + | ManifestRepository + | ManifestSection + | ManifestSectionSidebarApp + | ManifestSectionSidebarAppMenuKind + | ManifestSectionView + | ManifestStore + | ManifestTheme + | ManifestTree + | ManifestTreeItem + | ManifestTreeStore + | ManifestUserProfileApp + | ManifestWorkspace + | ManifestWorkspaceAction + | ManifestWorkspaceEditorView + | ManifestWorkspaceViewCollection + | ManifestBase; diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/menu-item.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/menu-item.model.ts similarity index 94% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/menu-item.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/menu-item.model.ts index a589e9b187..ad72643eae 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/menu-item.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/menu-item.model.ts @@ -1,4 +1,4 @@ -import type { UmbMenuItemExtensionElement } from '../interfaces/menu-item-extension-element.interface'; +import type { UmbMenuItemExtensionElement } from '../interfaces/menu-item-extension-element.interface.js'; import type { ManifestElement } from '@umbraco-cms/backoffice/extension-api'; export interface ManifestMenuItem extends ManifestElement<UmbMenuItemExtensionElement> { diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/menu.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/menu.model.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/menu.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/menu.model.ts diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/modal.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/modal.model.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/modal.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/modal.model.ts diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/package-view.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/package-view.model.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/package-view.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/package-view.model.ts diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/property-action.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/property-action.model.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/property-action.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/property-action.model.ts diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/property-editor.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/property-editor.model.ts similarity index 51% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/property-editor.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/property-editor.model.ts index a44460b353..3ff0fe102e 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/property-editor.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/property-editor.model.ts @@ -1,17 +1,18 @@ -import type { UmbPropertyEditorExtensionElement } from '../interfaces'; +import type { UmbPropertyEditorExtensionElement } from '../interfaces/index.js'; +import { DataTypePropertyPresentationModel } from '@umbraco-cms/backoffice/backend-api'; import type { ManifestElement, ManifestBase } from '@umbraco-cms/backoffice/extension-api'; -export interface ManifestPropertyEditorUI extends ManifestElement<UmbPropertyEditorExtensionElement> { - type: 'propertyEditorUI'; - meta: MetaPropertyEditorUI; +export interface ManifestPropertyEditorUi extends ManifestElement<UmbPropertyEditorExtensionElement> { + type: 'propertyEditorUi'; + meta: MetaPropertyEditorUi; } -export interface MetaPropertyEditorUI { +export interface MetaPropertyEditorUi { label: string; - propertyEditorModel: string; + propertyEditorAlias: string; icon: string; group: string; - config?: PropertyEditorConfig; + settings?: PropertyEditorSettings; supportsReadOnly?: boolean; } @@ -22,12 +23,14 @@ export interface ManifestPropertyEditorModel extends ManifestBase { } export interface MetaPropertyEditorModel { - config?: PropertyEditorConfig; + defaultPropertyEditorUiAlias: string; + settings?: PropertyEditorSettings; } // Config -export interface PropertyEditorConfig { +export interface PropertyEditorSettings { properties: PropertyEditorConfigProperty[]; + // default data is kept separate from the properties, to give the ability for Property Editor UI to overwrite default values for the property editor settings. defaultData?: PropertyEditorConfigDefaultData[]; } @@ -35,10 +38,11 @@ export interface PropertyEditorConfigProperty { label: string; description?: string; alias: string; - propertyEditorUI: string; + propertyEditorUiAlias: string; + config?: Array<DataTypePropertyPresentationModel>; } export interface PropertyEditorConfigDefaultData { alias: string; - value: any; + value: unknown; } diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/repository.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/repository.model.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/repository.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/repository.model.ts diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/section-sidebar-app.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/section-sidebar-app.model.ts similarity index 54% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/section-sidebar-app.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/section-sidebar-app.model.ts index 0eba37c441..9a42fb38a8 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/section-sidebar-app.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/section-sidebar-app.model.ts @@ -1,4 +1,4 @@ -import type { UmbSectionSidebarAppExtensionElement } from '../interfaces/section-sidebar-app-extension-element.interface'; +import type { UmbSectionSidebarAppExtensionElement } from '../interfaces/section-sidebar-app-extension-element.interface.js'; import type { ManifestElement } from '@umbraco-cms/backoffice/extension-api'; export interface ManifestSectionSidebarApp extends ManifestElement<UmbSectionSidebarAppExtensionElement> { @@ -10,13 +10,27 @@ export interface ConditionsSectionSidebarApp { sections: Array<string>; } -export interface ManifestSectionSidebarAppMenuKind extends ManifestSectionSidebarApp { +export interface ManifestSectionSidebarAppBaseMenu extends ManifestSectionSidebarApp { + type: 'sectionSidebarApp'; + meta: MetaSectionSidebarAppMenuKind; +} + +export interface ManifestSectionSidebarAppMenuKind extends ManifestSectionSidebarAppBaseMenu { type: 'sectionSidebarApp'; kind: 'menu'; - meta: MetaSectionSidebarAppMenuKind; } export interface MetaSectionSidebarAppMenuKind { label: string; menu: string; } + +export interface ManifestSectionSidebarAppMenuWithEntityActionsKind extends ManifestSectionSidebarAppBaseMenu { + type: 'sectionSidebarApp'; + kind: 'menuWithEntityActions'; + meta: MetaSectionSidebarAppMenuWithEntityActionsKind; +} + +export interface MetaSectionSidebarAppMenuWithEntityActionsKind extends MetaSectionSidebarAppMenuKind { + entityType: string; +} diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/section-view.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/section-view.model.ts similarity index 91% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/section-view.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/section-view.model.ts index a7d605a554..41cedf109c 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/section-view.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/section-view.model.ts @@ -1,4 +1,4 @@ -import type { UmbSectionViewExtensionElement } from '../interfaces/section-view-extension-element.interface'; +import type { UmbSectionViewExtensionElement } from '../interfaces/section-view-extension-element.interface.js'; import type { ManifestElement, ManifestWithConditions } from '@umbraco-cms/backoffice/extension-api'; export interface ManifestSectionView diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/section.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/section.model.ts similarity index 78% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/section.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/section.model.ts index e741d5e4d3..69e7d01ffd 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/section.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/section.model.ts @@ -1,4 +1,4 @@ -import type { UmbSectionExtensionElement } from '../interfaces'; +import type { UmbSectionExtensionElement } from '../interfaces/index.js'; import type { ManifestElement } from '@umbraco-cms/backoffice/extension-api'; export interface ManifestSection extends ManifestElement<UmbSectionExtensionElement> { diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/store.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/store.model.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/store.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/store.model.ts diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/theme.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/theme.model.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/theme.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/theme.model.ts diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/tinymce-plugin.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/tinymce-plugin.model.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/tinymce-plugin.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/tinymce-plugin.model.ts diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/tree-item.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/tree-item.model.ts similarity index 80% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/tree-item.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/tree-item.model.ts index 55392ab0cf..4c728cadbf 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/tree-item.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/tree-item.model.ts @@ -1,4 +1,4 @@ -import { UmbTreeItemExtensionElement } from '../interfaces'; +import { UmbTreeItemExtensionElement } from '../interfaces/index.js'; import type { ManifestElement } from '@umbraco-cms/backoffice/extension-api'; export interface ManifestTreeItem extends ManifestElement<UmbTreeItemExtensionElement> { diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/tree.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/tree.model.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/tree.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/tree.model.ts diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/user-profile-app.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/user-profile-app.model.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/user-profile-app.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/user-profile-app.model.ts diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/workspace-action.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-action.model.ts similarity index 86% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/workspace-action.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-action.model.ts index 63bf3ec2a7..fd9b3449af 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/workspace-action.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-action.model.ts @@ -1,4 +1,4 @@ -import type { InterfaceColor, InterfaceLook } from '@umbraco-ui/uui-base/lib/types/index'; +import type { InterfaceColor, InterfaceLook } from '@umbraco-cms/backoffice/external/uui'; import type { ManifestElement, ClassConstructor } from '@umbraco-cms/backoffice/extension-api'; import { UmbWorkspaceAction } from '@umbraco-cms/backoffice/workspace'; diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/workspace-editor-view.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-editor-view.model.ts similarity index 85% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/workspace-editor-view.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-editor-view.model.ts index 03e14e583f..c2478cc6a4 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/workspace-editor-view.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-editor-view.model.ts @@ -1,4 +1,4 @@ -import type { UmbWorkspaceEditorViewExtensionElement } from '../interfaces/workspace-editor-view-extension-element.interface'; +import type { UmbWorkspaceEditorViewExtensionElement } from '../interfaces/workspace-editor-view-extension-element.interface.js'; import type { ManifestWithView } from '@umbraco-cms/backoffice/extension-api'; export interface ManifestWorkspaceEditorView extends ManifestWithView<UmbWorkspaceEditorViewExtensionElement> { diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/workspace-view-collection.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-view-collection.model.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/workspace-view-collection.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-view-collection.model.ts diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/models/workspace.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace.model.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/models/workspace.model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace.model.ts diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/registry.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/registry.ts similarity index 86% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/registry.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/registry.ts index 0e5f87386e..4006002fae 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/registry.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/registry.ts @@ -1,4 +1,4 @@ -import type { ManifestTypes } from './models'; +import type { ManifestTypes } from './models/index.js'; import { ManifestKind, UmbExtensionRegistry } from '@umbraco-cms/backoffice/extension-api'; export type UmbBackofficeManifestKind = ManifestKind<ManifestTypes>; diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/tiny-mce-plugin.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/tiny-mce-plugin.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/tiny-mce-plugin.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/tiny-mce-plugin.ts diff --git a/src/Umbraco.Web.UI.Client/libs/extension-registry/umbraco-package.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/umbraco-package.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/libs/extension-registry/umbraco-package.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/umbraco-package.ts index c594bada93..bc2d9b4a5c 100644 --- a/src/Umbraco.Web.UI.Client/libs/extension-registry/umbraco-package.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/umbraco-package.ts @@ -1,4 +1,4 @@ -import type { ManifestTypes } from './models'; +import type { ManifestTypes } from './models/index.js'; /** * Umbraco package manifest JSON diff --git a/src/Umbraco.Web.UI.Client/libs/id/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/id/index.ts similarity index 65% rename from src/Umbraco.Web.UI.Client/libs/id/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/id/index.ts index f5a65afed2..4b33a4564a 100644 --- a/src/Umbraco.Web.UI.Client/libs/id/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/id/index.ts @@ -1,4 +1,4 @@ -import { v4, validate } from 'uuid'; +import { v4, validate } from '@umbraco-cms/backoffice/external/uuid'; export class UmbId { public static new() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/index.ts index 7583ec5676..9e16654e9e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/index.ts @@ -1,11 +1,10 @@ -import { manifests as componentManifests, UmbStoreExtensionInitializer } from './components'; -import { manifests as propertyActionManifests } from './property-actions/manifests'; -import { manifests as propertyEditorManifests } from './property-editors/manifests'; +import { UmbBackofficeNotificationContainerElement, UmbBackofficeModalContainerElement } from './components/index.js'; +import { manifests as debugManifests } from './debug/manifests.js'; +import { manifests as propertyActionManifests } from './property-actions/manifests.js'; +import { manifests as propertyEditorManifests } from './property-editors/manifests.js'; import { manifests as tinyMcePluginManifests } from './property-editors/uis/tiny-mce/plugins/manifests'; -import { manifests as modalManifests } from './modals/manifests'; - -import { UmbBackofficeNotificationContainerElement } from './components/backoffice-notification-container/backoffice-notification-container.element'; -import { UmbBackofficeModalContainerElement } from './components/backoffice-modal-container/backoffice-modal-container.element'; +import { manifests as modalManifests } from './modal/common/manifests.js'; +import { UmbStoreExtensionInitializer } from './store/index.js'; import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; @@ -13,10 +12,30 @@ import { UmbContextProviderController } from '@umbraco-cms/backoffice/context-ap import type { UmbEntryPointOnInit } from '@umbraco-cms/backoffice/extension-api'; import { ManifestTypes, UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extension-registry'; -import './notification'; +export * from './action/index.js'; +export * from './collection/index.js'; +export * from './components/index.js'; +export * from './content-type/index.js'; +export * from './debug/index.js'; +export * from './entity-action/index.js'; +export * from './entity-bulk-action/index.js'; +export * from './extension-registry/index.js'; +export * from './id/index.js'; +export * from './menu/index.js'; +export * from './modal/index.js'; +export * from './notification/index.js'; +export * from './picker-input/index.js'; +export * from './property-actions/index.js'; +export * from './property-editors/index.js'; +export * from './section/index.js'; +export * from './sorter/index.js'; +export * from './store/index.js'; +export * from './tree/index.js'; +export * from './variant/index.js'; +export * from './workspace/index.js'; -export const manifests: Array<ManifestTypes | UmbBackofficeManifestKind> = [ - ...componentManifests, +const manifests: Array<ManifestTypes | UmbBackofficeManifestKind> = [ + ...debugManifests, ...propertyActionManifests, ...propertyEditorManifests, ...tinyMcePluginManifests, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/index.ts new file mode 100644 index 0000000000..6c662d70b0 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/index.ts @@ -0,0 +1,3 @@ +export * from './menu-item/index.js'; +export * from './menu-item-base/index.js'; +export * from './menu.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item-base/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item-base/index.ts new file mode 100644 index 0000000000..dbb51c75da --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item-base/index.ts @@ -0,0 +1 @@ +export * from './menu-item-base.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item-base/menu-item-base.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item-base/menu-item-base.element.ts new file mode 100644 index 0000000000..a8fac96b8b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item-base/menu-item-base.element.ts @@ -0,0 +1,75 @@ +import { html, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { UmbSectionContext, UMB_SECTION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/section'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; + +@customElement('umb-menu-item-base') +export class UmbMenuItemBaseElement extends UmbLitElement { + @property({ type: String, attribute: 'entity-type' }) + public entityType?: string; + + @property({ type: String, attribute: 'icon-name' }) + public iconName = ''; + + @property({ type: String }) + public label = ''; + + @property({ type: Boolean, attribute: 'has-children' }) + public hasChildren = false; + + @state() + private _href?: string; + + #sectionContext?: UmbSectionContext; + + constructor() { + super(); + + this.consumeContext(UMB_SECTION_CONTEXT_TOKEN, (sectionContext) => { + this.#sectionContext = sectionContext; + this._observeSection(); + }); + } + + private _observeSection() { + if (!this.#sectionContext) return; + + this.observe(this.#sectionContext?.pathname, (pathname) => { + if (!pathname) return; + this._href = this._constructPath(pathname); + }); + } + + // TODO: how do we handle this? + // TODO: use router context + private _constructPath(sectionPathname: string) { + return `section/${sectionPathname}/workspace/${this.entityType}`; + } + + render() { + return html`<uui-menu-item href="${ifDefined(this._href)}" label=${this.label} ?has-children=${this.hasChildren} + >${this.#renderIcon()}${this.#renderActions()}<slot></slot + ></uui-menu-item>`; + } + + #renderIcon() { + return html` <uui-icon slot="icon" name=${this.iconName}></uui-icon> `; + } + + #renderActions() { + return html`<umb-entity-actions-bundle + slot="actions" + entity-type=${this.entityType} + .unique=${null} + .label=${this.label}> + </umb-entity-actions-bundle>`; + } + + static styles = [UUITextStyles]; +} + +declare global { + interface HTMLElementTagNameMap { + 'umb-menu-item-base': UmbMenuItemBaseElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item/index.ts new file mode 100644 index 0000000000..f4d2d84014 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item/index.ts @@ -0,0 +1 @@ +export * from './menu-item.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/menu/menu-item/menu-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item/menu-item.element.ts similarity index 63% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/menu/menu-item/menu-item.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item/menu-item.element.ts index 74d7e84508..ca301ec75a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/menu/menu-item/menu-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item/menu-item.element.ts @@ -1,13 +1,7 @@ -import { html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; +import { html, ifDefined, customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { ManifestMenuItem } from '@umbraco-cms/backoffice/extension-registry'; - -export interface UmbMenuItemExtensionElement { - manifest: ManifestMenuItem; -} +import type { ManifestMenuItem, UmbMenuItemExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-menu-item') export class UmbMenuItemElement extends UmbLitElement implements UmbMenuItemExtensionElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/menu/menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.element.ts similarity index 76% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/menu/menu.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.element.ts index 073c18d987..116e324f28 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/menu/menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.element.ts @@ -1,10 +1,9 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { ManifestMenu, ManifestMenuItem } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import './menu-item/menu-item.element'; +import './menu-item/menu-item.element.js'; @customElement('umb-menu') export class UmbMenuElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modals/confirm/confirm-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.element.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/src/packages/core/modals/confirm/confirm-modal.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.element.ts index 2ddd8b9968..38a2ce02b9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modals/confirm/confirm-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.element.ts @@ -1,6 +1,5 @@ -import { html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property } from 'lit/decorators.js'; +import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbConfirmModalData, UmbConfirmModalResult, UmbModalHandler } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modals/confirm/confirm-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.stories.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/src/packages/core/modals/confirm/confirm-modal.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.stories.ts index 790bc96c46..2cf848d042 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modals/confirm/confirm-modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.stories.ts @@ -1,9 +1,9 @@ -import './confirm-modal.element'; +import './confirm-modal.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbConfirmModalElement } from './confirm-modal.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbConfirmModalElement } from './confirm-modal.element'; import type { UmbConfirmModalData } from '@umbraco-cms/backoffice/modal'; export default { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modals/embedded-media/embedded-media-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/embedded-media/embedded-media-modal.element.ts similarity index 96% rename from src/Umbraco.Web.UI.Client/src/packages/core/modals/embedded-media/embedded-media-modal.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/common/embedded-media/embedded-media-modal.element.ts index 1e37405618..f87ea69800 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modals/embedded-media/embedded-media-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/embedded-media/embedded-media-modal.element.ts @@ -1,8 +1,5 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { when } from 'lit-html/directives/when.js'; -import { unsafeHTML } from 'lit-html/directives/unsafe-html.js'; +import { css, html, unsafeHTML, when, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { OEmbedResult, OEmbedStatus, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modals/embedded-media/embedded-media-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/embedded-media/embedded-media-modal.stories.ts similarity index 80% rename from src/Umbraco.Web.UI.Client/src/packages/core/modals/embedded-media/embedded-media-modal.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/common/embedded-media/embedded-media-modal.stories.ts index 2638f0142c..04909e60fa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modals/embedded-media/embedded-media-modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/embedded-media/embedded-media-modal.stories.ts @@ -1,8 +1,8 @@ -import '../../components/body-layout/body-layout.element'; -import './embedded-media-modal.element'; +import '../../../components/body-layout/body-layout.element.js'; +import './embedded-media-modal.element.js'; import { Meta } from '@storybook/web-components'; -import { html } from 'lit'; +import { html } from '@umbraco-cms/backoffice/external/lit'; import { UmbEmbeddedMediaModalData } from '@umbraco-cms/backoffice/modal'; export default { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modals/folder/folder-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal.element.ts similarity index 96% rename from src/Umbraco.Web.UI.Client/src/packages/core/modals/folder/folder-modal.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal.element.ts index 8f21281f65..bd4937690c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modals/folder/folder-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal.element.ts @@ -1,6 +1,5 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, query, state } from 'lit/decorators.js'; +import { css, html, customElement, property, query, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbFolderModalData, UmbFolderModalResult, UmbModalHandler } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbFolderRepository } from '@umbraco-cms/backoffice/repository'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modals/icon-picker/icon-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.element.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/src/packages/core/modals/icon-picker/icon-picker-modal.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.element.ts index 8c42d0242b..8ee5c548d7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modals/icon-picker/icon-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.element.ts @@ -1,11 +1,9 @@ -import type { UUIColorSwatchesEvent } from '@umbraco-ui/uui'; +import icons from '../../../../../shared/icon-registry/icons/icons.json' assert { type: "json" }; +import type { UUIColorSwatchesEvent } from '@umbraco-cms/backoffice/external/uui'; -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, state } from 'lit/decorators.js'; -import { styleMap } from 'lit/directives/style-map.js'; +import { css, html, styleMap, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; -import icons from '../../../../../public-assets/icons/icons.json'; import { UmbIconPickerModalData, UmbIconPickerModalResult } from '@umbraco-cms/backoffice/modal'; import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modals/icon-picker/icon-picker-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.stories.ts similarity index 79% rename from src/Umbraco.Web.UI.Client/src/packages/core/modals/icon-picker/icon-picker-modal.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.stories.ts index 17de382faf..5ea7e4ef54 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modals/icon-picker/icon-picker-modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.stories.ts @@ -1,10 +1,10 @@ -import '../../components/body-layout/body-layout.element'; -import './icon-picker-modal.element'; +import '../../../components/body-layout/body-layout.element.js'; +import './icon-picker-modal.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbIconPickerModalElement } from './icon-picker-modal.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbIconPickerModalElement } from './icon-picker-modal.element'; import { UmbIconPickerModalData } from '@umbraco-cms/backoffice/modal'; export default { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.test.ts new file mode 100644 index 0000000000..70fab3a612 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.test.ts @@ -0,0 +1,20 @@ +// import { expect, fixture, html } from '@open-wc/testing'; +// import { UmbIconPickerModalElement } from './icon-picker-modal.element.js'; +// import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; + +// describe('umb-icon-picker-modal', () => { +// let element: UmbIconPickerModalElement; + +// beforeEach(async () => { +// element = await fixture(html` <umb-icon-picker-modal></umb-icon-picker-modal> `); +// }); + +// it('is defined with its own instance', () => { +// expect(element).to.be.instanceOf(UmbIconPickerModalElement); +// }); + +// // TODO: Reinstate this test when the a11y audit is fixed on uui-color-picker +// // it('passes the a11y audit', async () => { +// // await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); +// // }); +// }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modals/link-picker/link-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/link-picker/link-picker-modal.element.ts similarity index 94% rename from src/Umbraco.Web.UI.Client/src/packages/core/modals/link-picker/link-picker-modal.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/common/link-picker/link-picker-modal.element.ts index a9d87472ff..52cb177348 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modals/link-picker/link-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/link-picker/link-picker-modal.element.ts @@ -1,8 +1,6 @@ -import { css, html, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, query, state } from 'lit/decorators.js'; -import { UUIBooleanInputEvent, UUIInputElement } from '@umbraco-ui/uui'; -import { UmbTreeElement } from '../../components/tree/tree.element'; +import { UmbTreeElement } from '../../../tree/tree.element.js'; +import { css, html, nothing, customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles , UUIBooleanInputEvent, UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; import { UmbLinkPickerConfig, UmbLinkPickerLink, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modals/link-picker/link-picker-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/link-picker/link-picker-modal.stories.ts similarity index 74% rename from src/Umbraco.Web.UI.Client/src/packages/core/modals/link-picker/link-picker-modal.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/common/link-picker/link-picker-modal.stories.ts index 6408f338a7..6d721460d5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modals/link-picker/link-picker-modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/link-picker/link-picker-modal.stories.ts @@ -1,10 +1,10 @@ -import '../../components/body-layout/body-layout.element'; -import './link-picker-modal.element'; +import '../../../components/body-layout/body-layout.element.js'; +import './link-picker-modal.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbLinkPickerModalElement } from './link-picker-modal.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbLinkPickerModalElement } from './link-picker-modal.element'; export default { title: 'API/Modals/Layouts/Link Picker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/manifests.ts similarity index 74% rename from src/Umbraco.Web.UI.Client/src/packages/core/modals/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/common/manifests.ts index c7c5f4d5de..79cf7d4e6d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modals/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/manifests.ts @@ -5,43 +5,43 @@ const modals: Array<ManifestModal> = [ type: 'modal', alias: 'Umb.Modal.Confirm', name: 'Confirm Modal', - loader: () => import('./confirm/confirm-modal.element'), + loader: () => import('./confirm/confirm-modal.element.js'), }, { type: 'modal', alias: 'Umb.Modal.Folder', name: 'Folder Modal', - loader: () => import('./folder/folder-modal.element'), + loader: () => import('./folder/folder-modal.element.js'), }, { type: 'modal', alias: 'Umb.Modal.IconPicker', name: 'Icon Picker Modal', - loader: () => import('./icon-picker/icon-picker-modal.element'), + loader: () => import('./icon-picker/icon-picker-modal.element.js'), }, { type: 'modal', alias: 'Umb.Modal.LinkPicker', name: 'Link Picker Modal', - loader: () => import('./link-picker/link-picker-modal.element'), + loader: () => import('./link-picker/link-picker-modal.element.js'), }, { type: 'modal', alias: 'Umb.Modal.PropertySettings', name: 'Property Settings Modal', - loader: () => import('./property-settings/property-settings-modal.element'), + loader: () => import('./property-settings/property-settings-modal.element.js'), }, { type: 'modal', alias: 'Umb.Modal.SectionPicker', name: 'Section Picker Modal', - loader: () => import('./section-picker/section-picker-modal.element'), + loader: () => import('./section-picker/section-picker-modal.element.js'), }, { type: 'modal', alias: 'Umb.Modal.Template', name: 'Template Modal', - loader: () => import('./template/template-modal.element'), + loader: () => import('./template/template-modal.element.js'), }, { type: 'modal', @@ -53,13 +53,13 @@ const modals: Array<ManifestModal> = [ type: 'modal', alias: 'Umb.Modal.EmbeddedMedia', name: 'Embedded Media Modal', - loader: () => import('./embedded-media/embedded-media-modal.element'), + loader: () => import('./embedded-media/embedded-media-modal.element.js'), }, { type: 'modal', alias: 'Umb.Modal.TreePicker', name: 'Tree Picker Modal', - loader: () => import('./tree-picker/tree-picker-modal.element'), + loader: () => import('./tree-picker/tree-picker-modal.element.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modals/property-settings/property-settings-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts similarity index 53% rename from src/Umbraco.Web.UI.Client/src/packages/core/modals/property-settings/property-settings-modal.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts index 18553f3452..a0e28f3ce7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modals/property-settings/property-settings-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts @@ -1,92 +1,69 @@ -import { UUIBooleanInputEvent, UUIInputEvent, UUISelectEvent } from '@umbraco-ui/uui'; -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html, nothing } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { - UmbModalContext, - UMB_MODAL_CONTEXT_TOKEN, - UMB_PROPERTY_EDITOR_UI_PICKER_MODAL, - UmbPropertySettingsModalResult, -} from '@umbraco-cms/backoffice/modal'; -import { ManifestPropertyEditorUI, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import { UUIBooleanInputEvent, UUIInputEvent, UUISelectEvent , UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { PropertyValueMap, css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; - +import { UmbPropertySettingsModalResult, UmbPropertySettingsModalData } from '@umbraco-cms/backoffice/modal'; +import { generateAlias } from '@umbraco-cms/backoffice/utils'; @customElement('umb-property-settings-modal') -export class UmbPropertySettingsModalElement extends UmbModalBaseElement<object, UmbPropertySettingsModalResult> { - @state() private _selectedPropertyEditorUI?: ManifestPropertyEditorUI; - @state() private _selectedPropertyEditorUIAlias = ''; - - @state() private _appearanceIsTop = false; - @state() private _mandatory = false; - +// TODO: Could base take a token to get its types?. +export class UmbPropertySettingsModalElement extends UmbModalBaseElement< + UmbPropertySettingsModalData, + UmbPropertySettingsModalResult +> { //TODO: Should these options come from the server? @state() private _customValidationOptions = [ { name: 'No validation', - value: 'no-validation', + value: '', selected: true, }, { name: 'Validate as an email address', - value: 'email', - validation: '[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+', + value: '[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+', }, { name: 'Validate as a number', - value: 'number', - validation: '^[0-9]*$', + value: '^[0-9]*$', }, { name: 'Validate as an URL', - value: 'url', - validation: 'https?://[a-zA-Z0-9-.]+\\.[a-zA-Z]{2,}', + value: 'https?://[a-zA-Z0-9-.]+\\.[a-zA-Z]{2,}', }, { name: '...or enter a custom validation', - value: 'custom', + value: '', }, ]; - @state() private _customValidation = this._customValidationOptions[0]; @state() private _aliasLocked = true; - @state() private _name = ''; - @state() private _alias = ''; - #modalContext?: UmbModalContext; + @state() + protected _returnData!: UmbPropertySettingsModalResult; constructor() { super(); + } - this.consumeContext(UMB_MODAL_CONTEXT_TOKEN, (instance) => { - this.#modalContext = instance; + connectedCallback(): void { + super.connectedCallback(); + this._returnData = JSON.parse(JSON.stringify(this.data)); + + const regEx = this._returnData.validation?.regEx ?? ''; + const newlySelected = this._customValidationOptions.find((option) => { + option.selected = option.value === regEx; + return option.selected; }); - - this.#observePropertyEditorUI(); + if (newlySelected === undefined) { + this._customValidationOptions[4].selected = true; + } } - #observePropertyEditorUI() { - if (!this._selectedPropertyEditorUIAlias) return; + protected firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void { + super.firstUpdated(_changedProperties); - this.observe( - umbExtensionsRegistry.getByTypeAndAlias('propertyEditorUI', this._selectedPropertyEditorUIAlias), - (propertyEditorUI) => { - if (!propertyEditorUI) return; - - this._selectedPropertyEditorUI = propertyEditorUI; - } - ); - } - - #onCustomValidationChange(event: UUISelectEvent) { - const value = event.target.value; - - this._customValidation = - this._customValidationOptions.find((option) => option.value === value) ?? this._customValidationOptions[0]; - } - - #onMandatoryChange(event: UUIBooleanInputEvent) { - const value = event.target.checked; - this._mandatory = value; + // TODO: Make a general way to put focus on a input in a modal. (also make sure it only happens if its the top-most-modal.) + requestAnimationFrame(() => { + (this.shadowRoot!.querySelector('#nameInput') as HTMLElement).focus(); + }); } #onClose() { @@ -104,95 +81,100 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement<object, const formData = new FormData(form); - const label = this._name || ''; - const alias = this._alias || ''; - const description = formData.get('description')?.toString() || ''; - const propertyEditorUI = this._selectedPropertyEditorUIAlias || undefined; - const labelOnTop = this._appearanceIsTop; - const mandatory = this._mandatory; - const mandatoryMessage = formData.get('mandatory-message')?.toString() || ''; - const pattern = formData.get('pattern')?.toString() || ''; - const patternMessage = formData.get('pattern-message')?.toString() || ''; + this._returnData.validation!.mandatoryMessage = formData.get('mandatory-message')?.toString() || ''; - this.modalHandler?.submit({ - label, - alias, - description, - propertyEditorUI, - labelOnTop, - validation: { - mandatory, - mandatoryMessage, - pattern, - patternMessage, - }, - }); + this.modalHandler?.submit(this._returnData); } #onNameChange(event: UUIInputEvent) { - //TODO: Generate alias - this._name = event.target.value.toString(); + const oldName = this._returnData.name; + const oldAlias = this._returnData.alias; + this._returnData.name = event.target.value.toString(); if (this._aliasLocked) { - this._alias = this.#generateAlias(this._name); + const expectedOldAlias = generateAlias(oldName ?? ''); + // Only update the alias if the alias matches a generated alias of the old name (otherwise the alias is considered one written by the user.) + if (expectedOldAlias === oldAlias) { + this._returnData.alias = generateAlias(this._returnData.name); + this.requestUpdate('_returnData'); + } } } - // TODO: move this to a helper so we can reuse it across the app - #generateAlias(text: string) { - //replace all spaces characters with a dash and remove all non-alphanumeric characters, except underscore. Allow a maximum of 1 dashes or underscores in a row. - return text - .replace(/\s+/g, '-') - .replace(/[^a-zA-Z0-9_-]+/g, '') - .replace(/[-_]{2,}/g, (match) => match[0]) - .toLowerCase(); - } - #onAliasChange(event: UUIInputEvent) { - const alias = this.#generateAlias(event.target.value.toString()); + const alias = generateAlias(event.target.value.toString()); if (!this._aliasLocked) { - this._alias = alias; + this._returnData.alias = alias; } else { - event.target.value = this._alias; + this._returnData.alias = this.data?.alias; } + this.requestUpdate('_returnData'); } - #onAppearanceChange(event: MouseEvent) { - const target = event.target as HTMLElement; - const alreadySelected = target.classList.contains(this._appearanceIsTop ? 'top' : 'left'); - - if (alreadySelected) return; - - this._appearanceIsTop = !this._appearanceIsTop; + #onDataTypeIdChange(event: UUIInputEvent) { + const dataTypeId = event.target.value.toString(); + this._returnData.dataTypeId = dataTypeId; + this.requestUpdate('_returnData'); } - #onOpenPropertyEditorUIPicker() { - const modalHandler = this.#modalContext?.open(UMB_PROPERTY_EDITOR_UI_PICKER_MODAL, { - selection: [], - }); - - if (!modalHandler) return; - - modalHandler?.onSubmit().then(({ selection }) => { - if (selection.length === 0) return; - // TODO: we might should set the alias to null or empty string, if no selection. - this._selectedPropertyEditorUIAlias = selection[0]; - this.#observePropertyEditorUI(); - }); + #onCustomValidationChange(event: UUISelectEvent) { + const regEx = event.target.value.toString(); + this._returnData.validation!.regEx = regEx; + this.requestUpdate('_returnData'); + } + + #onMandatoryChange(event: UUIBooleanInputEvent) { + const value = event.target.checked; + this._returnData.validation!.mandatory = value; + this.requestUpdate('_returnData'); + } + + #onMandatoryMessageChange(event: UUIInputEvent) { + const value = event.target.value.toString(); + this._returnData.validation!.mandatoryMessage = value; + this.requestUpdate('_returnData'); + } + + #setAppearanceNormal() { + const currentValue = this._returnData.appearance?.labelOnTop; + if (currentValue !== true) return; + + this._returnData.appearance!.labelOnTop = false; + this.requestUpdate('_returnData'); + } + #setAppearanceTop() { + const currentValue = this._returnData.appearance?.labelOnTop; + if (currentValue === true) return; + + this._returnData.appearance!.labelOnTop = true; + this.requestUpdate('_returnData'); } - /* TODO: - From Github comment: We should not re-generate the alias when it gets locked again. - Generally the auto generation is not determined by the lock, but wether it has been changed or saved. - The experience in existing backoffice is: we only generate an alias when a property is new, once it has been saved it should never change unless the user actively does so. - On new properties, the alias auto-generates until the user has made a change to it. */ #onToggleAliasLock() { this._aliasLocked = !this._aliasLocked; if (this._aliasLocked) { - this._alias = this.#generateAlias(this._name); + this._returnData.alias = generateAlias(this._returnData.alias ?? ''); + this.requestUpdate('_returnData'); } } + #onValidationRegExChange(event: UUIInputEvent) { + const regEx = event.target.value.toString(); + const newlySelected = this._customValidationOptions.find((option) => { + option.selected = option.value === regEx; + return option.selected; + }); + if (newlySelected === undefined) { + this._customValidationOptions[4].selected = true; + } + this._returnData.validation!.regEx = regEx; + this.requestUpdate('_returnData'); + } + #onValidationMessageChange(event: UUIInputEvent) { + this._returnData.validation!.regExMessage = event.target.value.toString(); + this.requestUpdate('_returnData'); + } + render() { return html` <uui-form> @@ -202,24 +184,32 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement<object, <uui-box> <div class="container"> <uui-input + id="nameInput" name="name" @input=${this.#onNameChange} - .value=${this._name} + .value=${this._returnData.name} placeholder="Enter a name..."> + <!-- TODO: validation for bad characters --> </uui-input> <uui-input name="alias" @input=${this.#onAliasChange} - .value=${this._alias} + .value=${this._returnData.alias} placeholder="Enter alias..." ?disabled=${this._aliasLocked}> + <!-- TODO: validation for bad characters --> <div @click=${this.#onToggleAliasLock} @keydown=${() => ''} id="alias-lock" slot="prepend"> <uui-icon name=${this._aliasLocked ? 'umb:lock' : 'umb:unlocked'}></uui-icon> </div> </uui-input> - <uui-textarea name="description" placeholder="Enter description..."></uui-textarea> + <uui-textarea + name="description" + placeholder="Enter description..." + .value=${this._returnData.description}></uui-textarea> </div> - ${this.#renderPropertyUIPicker()} + <umb-data-type-flow-input + .value=${this._returnData.dataTypeId} + @change=${this.#onDataTypeIdChange}></umb-data-type-flow-input> <hr /> <div class="container"> <b>Validation</b> @@ -246,9 +236,9 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement<object, #renderAlignLeftIcon() { return html`<div - @click=${this.#onAppearanceChange} + @click=${this.#setAppearanceNormal} @keydown=${() => ''} - class="appearance left ${this._appearanceIsTop ? '' : 'selected'}"> + class="appearance left ${this._returnData.appearance?.labelOnTop ? '' : 'selected'}"> <svg width="260" height="32" viewBox="0 0 260 60" fill="none" xmlns="http://www.w3.org/2000/svg"> <rect width="89" height="14" rx="7" fill="currentColor" /> <rect x="121" width="139" height="10" rx="5" fill="currentColor" fill-opacity="0.4" /> @@ -262,9 +252,9 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement<object, #renderAlignTopIcon() { return html` <div - @click=${this.#onAppearanceChange} + @click=${this.#setAppearanceTop} @keydown=${() => ''} - class="appearance top ${this._appearanceIsTop ? 'selected' : ''}"> + class="appearance top ${this._returnData.appearance?.labelOnTop ? 'selected' : ''}"> <svg width="139" height="48" viewBox="0 0 139 90" fill="none" xmlns="http://www.w3.org/2000/svg"> <rect width="89" height="14" rx="7" fill="currentColor" /> <rect y="30" width="139" height="10" rx="5" fill="currentColor" fill-opacity="0.4" /> @@ -279,54 +269,40 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement<object, #renderMandatory() { return html`<div style="display: flex; justify-content: space-between"> <label for="mandatory">Field is mandatory</label> - <uui-toggle @change=${this.#onMandatoryChange} id="mandatory" slot="editor"></uui-toggle> + <uui-toggle + @change=${this.#onMandatoryChange} + id="mandatory" + value=${this._returnData.validation?.mandatory} + slot="editor"></uui-toggle> </div> - ${this._mandatory + ${this._returnData.validation?.mandatory ? html`<uui-input name="mandatory-message" + value=${this._returnData.validation?.mandatoryMessage} + @change=${this.#onMandatoryMessageChange} style="margin-top: var(--uui-size-space-1)" id="mandatory-message" placeholder="Enter a custom validation error message (optional)"></uui-input>` : ''}`; } - #renderPropertyUIPicker() { - return this._selectedPropertyEditorUI - ? html` - <umb-ref-property-editor-ui - name=${this._selectedPropertyEditorUI.meta.label} - alias=${this._selectedPropertyEditorUI.alias} - property-editor-model-alias=${this._selectedPropertyEditorUI.meta.propertyEditorModel} - border> - <uui-icon name="${this._selectedPropertyEditorUI.meta.icon}" slot="icon"></uui-icon> - <uui-action-bar slot="actions"> - <uui-button label="Change" @click=${this.#onOpenPropertyEditorUIPicker}></uui-button> - </uui-action-bar> - </umb-ref-property-editor-ui> - ` - : html` - <uui-button - id="property-editor-ui-picker" - label="Select Property Editor" - look="placeholder" - color="default" - @click=${this.#onOpenPropertyEditorUIPicker}></uui-button> - `; - } - #renderCustomValidation() { return html`<uui-select style="margin-top: var(--uui-size-space-1)" @change=${this.#onCustomValidationChange} .options=${this._customValidationOptions}></uui-select> - ${this._customValidation.value !== 'no-validation' + ${this._returnData.validation?.regEx !== '' ? html` <uui-input name="pattern" style="margin-bottom: var(--uui-size-space-1); margin-top: var(--uui-size-space-5);" - value=${this._customValidation.validation ?? ''}></uui-input> - <uui-textarea name="pattern-message"></uui-textarea> + @change=${this.#onValidationRegExChange} + .value=${this._returnData.validation?.regEx ?? ''}></uui-input> + <uui-textarea + name="pattern-message" + @change=${this.#onValidationMessageChange} + .value=${this._returnData.validation?.regExMessage ?? ''}></uui-textarea> ` : nothing} `; } @@ -411,11 +387,6 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement<object, #alias-lock uui-icon { margin-bottom: 2px; } - #property-editor-ui-picker { - width: 100%; - --uui-button-padding-top-factor: 4; - --uui-button-padding-bottom-factor: 4; - } .container { display: flex; flex-direction: column; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modals/section-picker/section-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/section-picker/section-picker-modal.element.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/src/packages/core/modals/section-picker/section-picker-modal.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/common/section-picker/section-picker-modal.element.ts index c44a276d0e..6b7d5ec5d6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modals/section-picker/section-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/section-picker/section-picker-modal.element.ts @@ -1,6 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbSelectionManagerBase } from '@umbraco-cms/backoffice/utils'; import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; import { ManifestSection, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @@ -50,7 +49,7 @@ export class UmbSectionPickerModalElement extends UmbModalBaseElement< selectable ?selected=${this.#selectionManager.isSelected(item.alias)} @selected=${() => this.#selectionManager.select(item.alias)} - @unselected=${() => this.#selectionManager.deselect(item.alias)}></uui-menu-item> + @deselected=${() => this.#selectionManager.deselect(item.alias)}></uui-menu-item> ` )} </uui-box> diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modals/section-picker/section-picker.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/section-picker/section-picker.test.ts similarity index 97% rename from src/Umbraco.Web.UI.Client/src/packages/core/modals/section-picker/section-picker.test.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/common/section-picker/section-picker.test.ts index 7ade1e4f09..71925784e1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modals/section-picker/section-picker.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/section-picker/section-picker.test.ts @@ -1,6 +1,6 @@ import { expect, fixture, html } from '@open-wc/testing'; //TODO: Test has been commented out while we figure out how to setup import maps for the test environment -// import { UmbPickerLayoutSectionElement } from './picker-layout-section.element'; +// import { UmbPickerLayoutSectionElement } from './picker-layout-section.element.js'; // import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; // describe('UmbPickerLayoutSectionElement', () => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modals/template/template-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/template/template-modal.element.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/src/packages/core/modals/template/template-modal.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/common/template/template-modal.element.ts index f1771e6a34..95b2aff809 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modals/template/template-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/template/template-modal.element.ts @@ -1,9 +1,6 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, query, state } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { UUIInputEvent } from '@umbraco-ui/uui'; -import { UmbCodeEditor } from '../../components/code-editor'; +import { UmbCodeEditor } from '../../../components/code-editor/index.js'; +import { css, html, ifDefined, customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles , UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbTemplateModalData, UmbTemplateModalResult } from '@umbraco-cms/backoffice/modal'; import { UmbInputEvent } from '@umbraco-cms/backoffice/events'; import { TemplateResource, TemplateResponseModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modals/tree-picker/tree-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/tree-picker/tree-picker-modal.element.ts similarity index 83% rename from src/Umbraco.Web.UI.Client/src/packages/core/modals/tree-picker/tree-picker-modal.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/common/tree-picker/tree-picker-modal.element.ts index b3487b5b15..5b2c6298be 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modals/tree-picker/tree-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/tree-picker/tree-picker-modal.element.ts @@ -1,7 +1,6 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, state } from 'lit/decorators.js'; -import type { UmbTreeElement } from '../../components/tree/tree.element'; +import type { UmbTreeElement } from '../../../tree/tree.element.js'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbTreePickerModalData, UmbPickerModalResult } from '@umbraco-cms/backoffice/modal'; import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; import { TreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; @@ -58,7 +57,14 @@ export class UmbTreePickerModalElement<TreeItemType extends TreeItemPresentation `; } - static styles = [UUITextStyles, css``]; + static styles = [ + UUITextStyles, + css` + uui-box { + margin: var(--uui-size-layout-1); + } + `, + ]; } export default UmbTreePickerModalElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/index.ts new file mode 100644 index 0000000000..5fc9eca21f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/index.ts @@ -0,0 +1,6 @@ +export * from './modal.context.js'; +export * from './modal-handler.js'; +export * from './modal-route-registration.js'; +export * from './modal-route-registration.controller.js'; +export * from './token/index.js'; +export * from './modal.interfaces.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-handler.ts similarity index 69% rename from src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-handler.ts index 543130b7be..2c040489dd 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal-handler.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-handler.ts @@ -1,17 +1,19 @@ +import { UmbModalConfig, UmbModalType } from './modal.context.js'; +import { UmbModalToken } from './token/modal-token.js'; +import type { IRouterSlot } from '@umbraco-cms/backoffice/external/router-slot'; import type { UUIDialogElement, UUIModalDialogElement, UUIModalSidebarElement, UUIModalSidebarSize, -} from '@umbraco-ui/uui'; -import { BehaviorSubject } from 'rxjs'; -import { UmbModalConfig, UmbModalType } from './modal.context'; -import { UmbModalToken } from './token/modal-token'; -import { UmbId } from '@umbraco-cms/backoffice/id'; -import { createExtensionElement } from '@umbraco-cms/backoffice/extension-api'; -import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +} from '@umbraco-cms/backoffice/external/uui'; +import { BehaviorSubject } from '@umbraco-cms/backoffice/external/rxjs'; import { ManifestModal, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbRouterSlotElement } from '@umbraco-cms/backoffice/router'; +import { createExtensionElement } from '@umbraco-cms/backoffice/extension-api'; +import { UmbController, UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UmbId } from '@umbraco-cms/backoffice/id'; +import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; /** * Type which omits the real submit method, and replaces it with a submit method which accepts an optional argument depending on the generic type. @@ -37,32 +39,35 @@ type OptionalSubmitArgumentIfUndefined<T> = T extends undefined submit: (arg: T) => void; }; -//TODO consider splitting this into two separate handlers -export class UmbModalHandlerClass<ModalData extends object = object, ModalResult = unknown> { +// TODO: consider splitting this into two separate handlers +// TODO: Rename to become a controller. +export class UmbModalHandlerClass<ModalData extends object = object, ModalResult = unknown> extends UmbController { private _submitPromise: Promise<ModalResult>; private _submitResolver?: (value: ModalResult) => void; private _submitRejecter?: () => void; - #host: UmbControllerHostElement; public modalElement: UUIModalDialogElement | UUIModalSidebarElement; + #modalRouterElement: UmbRouterSlotElement = document.createElement('umb-router-slot'); #innerElement = new BehaviorSubject<HTMLElement | undefined>(undefined); public readonly innerElement = this.#innerElement.asObservable(); - #modalElement?: UUIModalSidebarElement | UUIDialogElement; - public key: string; public type: UmbModalType = 'dialog'; public size: UUIModalSidebarSize = 'small'; + private modalAlias: string; //TEMP... TODO: Remove this. + constructor( host: UmbControllerHostElement, + router: IRouterSlot | null, modalAlias: string | UmbModalToken<ModalData, ModalResult>, data?: ModalData, config?: UmbModalConfig ) { - this.#host = host; + super(host); this.key = config?.key || UmbId.new(); + this.modalAlias = modalAlias.toString(); if (modalAlias instanceof UmbModalToken) { this.type = modalAlias.getDefaultConfig()?.type || this.type; @@ -82,16 +87,41 @@ export class UmbModalHandlerClass<ModalData extends object = object, ModalResult }); this.modalElement = this.#createContainerElement(); + this.modalElement.addEventListener('close', () => { + this._submitRejecter?.(); + }); + + /** + * + * Maybe we could just get a Modal Router Slot. But it needs to have the ability to actually inject via slot. so the modal inner element can be within. + * + */ + if (router) { + this.#modalRouterElement.routes = [ + { + path: '', + component: document.createElement('slot'), + }, + ]; + this.#modalRouterElement.parent = router; + } + this.modalElement.appendChild(this.#modalRouterElement); this.#observeModal(modalAlias.toString(), combinedData); } + public hostConnected() { + // Not much to do now..? + } + public hostDisconnected() { + // Not much to do now..? + } + #createContainerElement() { return this.type === 'sidebar' ? this.#createSidebarElement() : this.#createDialogElement(); } #createSidebarElement() { const sidebarElement = document.createElement('uui-modal-sidebar'); - this.#modalElement = sidebarElement; sidebarElement.size = this.size; return sidebarElement; } @@ -99,7 +129,6 @@ export class UmbModalHandlerClass<ModalData extends object = object, ModalResult #createDialogElement() { const modalDialogElement = document.createElement('uui-modal-dialog'); const dialogElement: UUIDialogElement = document.createElement('uui-dialog'); - this.#modalElement = dialogElement; modalDialogElement.appendChild(dialogElement); return modalDialogElement; } @@ -125,7 +154,6 @@ export class UmbModalHandlerClass<ModalData extends object = object, ModalResult } public reject() { - this._submitRejecter?.(); this.modalElement.close(); } @@ -138,32 +166,46 @@ export class UmbModalHandlerClass<ModalData extends object = object, ModalResult Now when the element is an observable it makes it more complex because this host needs to subscribe to updates to the element, instead of just having a reference to it. If we find a better generic solution to communicate between the modal and the implementor, then we can remove the element as part of the modalHandler. */ #observeModal(modalAlias: string, data?: ModalData) { - new UmbObserverController( - this.#host, - umbExtensionsRegistry.getByTypeAndAlias('modal', modalAlias), - async (manifest) => { - if (manifest) { - const innerElement = await this.#createInnerElement(manifest, data); - if (innerElement) { - this.#appendInnerElement(innerElement); - return; + if (this.host) { + new UmbObserverController( + this.host, + umbExtensionsRegistry.getByTypeAndAlias('modal', modalAlias), + async (manifest) => { + if (manifest) { + const innerElement = await this.#createInnerElement(manifest, data); + if (innerElement) { + this.#appendInnerElement(innerElement); + return; + } } + this.#removeInnerElement(); } - this.#removeInnerElement(); - } - ); + ); + } } #appendInnerElement(element: HTMLElement) { - this.#modalElement?.appendChild(element); + this.#modalRouterElement.appendChild(element); + /*this.#modalRouterElement.routes = [ + { + path: '', + component: element, + }, + ]; + this.#modalRouterElement.render();*/ this.#innerElement.next(element); } #removeInnerElement() { const innerElement = this.#innerElement.getValue(); if (innerElement) { - this.#modalElement?.removeChild(innerElement); + this.#modalRouterElement.removeChild(innerElement); this.#innerElement.next(undefined); } } + + public destroy() { + super.destroy(); + // TODO: Make sure to clean up.. + } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-route-registration.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-route-registration.controller.ts new file mode 100644 index 0000000000..551cd0af04 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-route-registration.controller.ts @@ -0,0 +1,170 @@ +// TODO: Be aware here we import a class from src! +import { UmbModalRouteRegistration } from './modal-route-registration.js'; +import { UmbModalToken } from './token/index.js'; +import { UmbModalConfig } from './modal.context.js'; +import { UMB_ROUTE_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/router'; +import type { UmbControllerHostElement, UmbControllerInterface } from '@umbraco-cms/backoffice/controller-api'; +import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; + +export class UmbModalRouteRegistrationController<D extends object = object, R = any> + extends UmbModalRouteRegistration<D, R> + implements UmbControllerInterface +{ + //#host: UmbControllerHostInterface; + #init; + + #additionalPath?: string; + #uniquePaths: Map<string, string | undefined> = new Map(); + + #routeContext?: typeof UMB_ROUTE_CONTEXT_TOKEN.TYPE; + #modalRegistration?: UmbModalRouteRegistration; + + public get unique() { + return undefined; + } + + /** + * Creates an instance of UmbModalRouteRegistrationController. + * @param {EventTarget} host - The host element of the modal, this is used to identify the modal. + * @param {UmbModalToken} alias - The alias of the modal, this is used to identify the modal. + * @param {UmbModalConfig} modalConfig - The configuration of the modal. + * @memberof UmbModalRouteRegistrationController + */ + constructor(host: UmbControllerHostElement, alias: UmbModalToken<D, R> | string, modalConfig?: UmbModalConfig) { + super(alias, null, modalConfig); + + this.#init = new UmbContextConsumerController(host, UMB_ROUTE_CONTEXT_TOKEN, (_routeContext) => { + this.#routeContext = _routeContext; + this.#registerModal(); + }).asPromise(); + } + + /** + * Appends an additional path to the modal route. + * + * This can help specify the URL for this modal, or used to add a parameter to the URL like this: "/modal/my-modal/:index/" + * A folder name starting with a colon ":" will be interpreted as a parameter. Then this modal can open with any value in that location. + * When modal is being setup the value of the parameter can be read from the route params. See the example: + * @param additionalPath + * @returns UmbModalRouteRegistrationController + * @memberof UmbContextConsumer + * @example <caption>Example of adding an additional path to the modal route</caption> + * const modalRegistration = new UmbModalRouteRegistrationController(this, MY_MODAL_TOKEN) + * modalRegistration.addAdditionalPath(':index') + * + * modalRegistration.onSetup((params) => { + * const index = params.index; + * // When entering the url of: "/modal/my-modal/hello-world/" + * // Then index will be "hello-world" + * } + */ + public addAdditionalPath(additionalPath: string) { + this.#additionalPath = additionalPath; + return this; + } + + /** + * Registerer one or more additional paths to the modal route, similar to addAdditionalPath. But without defining the actual path name. This enables this to be asynchronously defined and even changed later. + * This can be useful if your modal has to be unique for this registration, avoiding collision with other registrations. + * If you made a modal for editing one of multiple property, then you can add a unique path holding the property id. + * Making the URL unique to this modal registration: /modal/my-modal/my-unique-value/ + * + * Notice the modal will only be available when all unique paths have a value. + * @param {Array<string>} uniquePathNames + * @returns UmbModalRouteRegistrationController + * @memberof UmbContextConsumer + * @example <caption>Example of adding an additional unique path to the modal route</caption> + * const modalRegistration = new UmbModalRouteRegistrationController(this, MY_MODAL_TOKEN) + * modalRegistration.addUniquePaths(['myAliasForIdentifyingThisPartOfThePath']) + * + * // Later: + * modalRegistration.setUniquePathValue('myAliasForIdentifyingThisPartOfThePath', 'myValue'); + */ + public addUniquePaths(uniquePathNames: Array<string>) { + if (uniquePathNames) { + uniquePathNames.forEach((name) => { + this.#uniquePaths.set(name, undefined); + }); + } + return this; + } + + /** + * Set or change the value of a unique path part. + * @param {string} identifier + * @param {value | undefined} value + * @returns UmbModalRouteRegistrationController + * @memberof UmbContextConsumer + * @example <caption>Example of adding an additional unique path to the modal route</caption> + * const modalRegistration = new UmbModalRouteRegistrationController(this, MY_MODAL_TOKEN) + * modalRegistration.addUniquePaths(['first-one', 'another-one']) + * + * // Later: + * modalRegistration.setUniquePathValue('first-one', 'myValue'); + */ + setUniquePathValue(identifier: string, value: string | undefined) { + if (!this.#uniquePaths.has(identifier)) { + throw new Error( + `Identifier ${identifier} was not registered at the construction of the modal registration controller, it has to be.` + ); + } + this.#uniquePaths.set(identifier, value); + this.#registerModal(); + } + + async #registerModal() { + await this.#init; + if (!this.#routeContext) return; + + const pathParts = Array.from(this.#uniquePaths.values()); + + // Check if there is any undefined values of unique map: + if (pathParts.some((value) => value === undefined)) { + this.#unregisterModal(); + return; + } + + if (this.#additionalPath) { + // Add the configured part of the path: + pathParts.push(this.#additionalPath); + } + + const newPath = pathParts.join('/') ?? ''; + + //if no changes then break out: + if (this.path === newPath) { + return; + } + + this.#unregisterModal(); + + // Make this the path of the modal registration: + this._setPath(newPath); + + this.#modalRegistration = this.#routeContext.registerModal(this); + } + + async #unregisterModal() { + if (!this.#routeContext) return; + if (this.#modalRegistration) { + this.#routeContext.unregisterModal(this.#modalRegistration); + this.#modalRegistration = undefined; + } + } + + hostConnected() { + if (!this.#modalRegistration) { + this.#registerModal(); + } + } + hostDisconnected(): void { + if (this.#modalRegistration) { + this.#routeContext?.unregisterModal(this.#modalRegistration); + this.#modalRegistration = undefined; + } + } + + public destroy(): void { + this.hostDisconnected(); + } +} diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal-route-registration.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-route-registration.ts similarity index 80% rename from src/Umbraco.Web.UI.Client/libs/modal/modal-route-registration.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-route-registration.ts index debf0bd26b..d9a17ce870 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal-route-registration.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-route-registration.ts @@ -1,14 +1,16 @@ -import { UmbModalHandler } from './modal-handler'; -import { UmbModalConfig, UmbModalContext } from './modal.context'; -import { UmbModalToken } from './token/modal-token'; +import { UmbModalHandler } from './modal-handler.js'; +import { UmbModalConfig, UmbModalContext } from './modal.context.js'; +import { UmbModalToken } from './token/modal-token.js'; +import type { IRouterSlot } from '@umbraco-cms/backoffice/external/router-slot'; +import { encodeFolderName } from '@umbraco-cms/backoffice/router'; import { UmbId } from '@umbraco-cms/backoffice/id'; import type { Params } from '@umbraco-cms/backoffice/router'; -export type UmbModalRouteBuilder = (params: { [key: string]: string | number }) => string; +export type UmbModalRouteBuilder = (params: { [key: string]: string | number } | null) => string; export class UmbModalRouteRegistration<UmbModalTokenData extends object = object, UmbModalTokenResult = any> { #key: string; - #path: string; + #path: string | null; #modalAlias: UmbModalToken<UmbModalTokenData, UmbModalTokenResult> | string; #modalConfig?: UmbModalConfig; @@ -23,7 +25,7 @@ export class UmbModalRouteRegistration<UmbModalTokenData extends object = object // Notice i removed the key in the transferring to this class. constructor( modalAlias: UmbModalToken<UmbModalTokenData, UmbModalTokenResult> | string, - path: string, + path: string | null = null, modalConfig?: UmbModalConfig ) { this.#key = modalConfig?.key || UmbId.new(); @@ -40,11 +42,15 @@ export class UmbModalRouteRegistration<UmbModalTokenData extends object = object return this.#modalAlias; } + public generateModalPath() { + return `modal/${encodeFolderName(this.alias.toString())}${this.path && this.path !== '' ? `/${this.path}` : ''}`; + } + public get path() { return this.#path; } - protected _setPath(path: string) { + protected _setPath(path: string | null) { this.#path = path; } @@ -103,10 +109,13 @@ export class UmbModalRouteRegistration<UmbModalTokenData extends object = object this.#modalHandler = undefined; }; - routeSetup(modalContext: UmbModalContext, params: Params) { + routeSetup(router: IRouterSlot, modalContext: UmbModalContext, params: Params) { + // If already open, don't do anything: + if (this.active) return; + const modalData = this.#onSetupCallback ? this.#onSetupCallback(params) : undefined; if (modalData !== false) { - this.#modalHandler = modalContext.open(this.#modalAlias, modalData, this.modalConfig); + this.#modalHandler = modalContext.open(this.#modalAlias, modalData, this.modalConfig, router); this.#modalHandler.onSubmit().then(this.#onSubmit, this.#onReject); return this.#modalHandler; } diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.context.ts similarity index 51% rename from src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.context.ts index 510f9b9f94..d3dd5cadec 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.context.ts @@ -1,10 +1,9 @@ -// TODO: remove this import when the search hack is removed -import '../../src/packages/search/search-modal/search-modal.element'; - -import type { UUIModalDialogElement, UUIModalSidebarSize } from '@umbraco-ui/uui'; -import { BehaviorSubject } from 'rxjs'; -import { UmbModalHandler, UmbModalHandlerClass } from './modal-handler'; -import type { UmbModalToken } from './token/modal-token'; +import { UmbModalHandler, UmbModalHandlerClass } from './modal-handler.js'; +import type { UmbModalToken } from './token/modal-token.js'; +import type { IRouterSlot } from '@umbraco-cms/backoffice/external/router-slot'; +import type { UUIModalSidebarSize } from '@umbraco-cms/backoffice/external/uui'; +import { BehaviorSubject } from '@umbraco-cms/backoffice/external/rxjs'; +import { appendToFrozenArray } from '@umbraco-cms/backoffice/observable-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; @@ -28,45 +27,6 @@ export class UmbModalContext { this.host = host; } - // TODO: Remove this when the modal system is more flexible - public search() { - const modalHandler = new UmbModalHandlerClass(this.host, 'Umb.Modal.Search') as unknown as UmbModalHandler< - any, - any - >; - - //TODO START: This is a hack to get the search modal layout to look like i want it to. - //TODO: Remove from here to END when the modal system is more flexible - const topDistance = '50%'; - const margin = '16px'; - const maxHeight = '600px'; - const maxWidth = '500px'; - const dialog = document.createElement('dialog') as HTMLDialogElement; - dialog.style.top = `max(${margin}, calc(${topDistance} - ${maxHeight} / 2))`; - dialog.style.margin = '0 auto'; - dialog.style.transform = `translateY(${-maxHeight})`; - dialog.style.maxHeight = `min(${maxHeight}, calc(100% - ${margin}px * 2))`; - dialog.style.width = `min(${maxWidth}, calc(100vw - ${margin}))`; - dialog.style.boxSizing = 'border-box'; - dialog.style.background = 'none'; - dialog.style.border = 'none'; - dialog.style.padding = '0'; - dialog.style.boxShadow = 'var(--uui-shadow-depth-5)'; - dialog.style.borderRadius = '9px'; - const search = document.createElement('umb-search-modal'); - dialog.appendChild(search); - requestAnimationFrame(() => { - dialog.showModal(); - }); - modalHandler.modalElement = dialog as unknown as UUIModalDialogElement; - //TODO END - - modalHandler.modalElement.addEventListener('close-end', () => this.#onCloseEnd(modalHandler)); - - this.#modals.next([...this.#modals.getValue(), modalHandler]); - return modalHandler; - } - /** * Opens a modal or sidebar modal * @public @@ -78,16 +38,22 @@ export class UmbModalContext { public open<ModalData extends object = object, ModalResult = unknown>( modalAlias: string | UmbModalToken<ModalData, ModalResult>, data?: ModalData, - config?: UmbModalConfig + config?: UmbModalConfig, + router: IRouterSlot | null = null ) { - const modalHandler = new UmbModalHandlerClass(this.host, modalAlias, data, config) as unknown as UmbModalHandler< - ModalData, - ModalResult - >; + const modalHandler = new UmbModalHandlerClass( + this.host, + router, + modalAlias, + data, + config + ) as unknown as UmbModalHandler<ModalData, ModalResult>; modalHandler.modalElement.addEventListener('close-end', () => this.#onCloseEnd(modalHandler)); - this.#modals.next([...this.#modals.getValue(), modalHandler]); + this.#modals.next( + appendToFrozenArray(this.#modals.getValue(), modalHandler, (entry) => entry.key === modalHandler.key) + ); return modalHandler; } @@ -98,6 +64,7 @@ export class UmbModalContext { * @memberof UmbModalContext */ public close(key: string) { + console.log('close', key, this.#modals); const modal = this.#modals.getValue().find((modal) => modal.key === key); if (modal) { modal.reject(); diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.interfaces.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.interfaces.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/modal.interfaces.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.interfaces.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/allowed-document-types-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/allowed-document-types-modal.token.ts similarity index 89% rename from src/Umbraco.Web.UI.Client/libs/modal/token/allowed-document-types-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/allowed-document-types-modal.token.ts index c4f7631758..d2dc13448e 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/token/allowed-document-types-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/allowed-document-types-modal.token.ts @@ -1,7 +1,8 @@ import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbAllowedDocumentTypesModalData { - id: string | null; + parentId: string | null; + parentName?: string; } export interface UmbAllowedDocumentTypesModalResult { diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/change-password-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/change-password-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/token/change-password-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/change-password-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/code-editor-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/code-editor-modal.token.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/libs/modal/token/code-editor-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/code-editor-modal.token.ts index 346745913e..1003e9b6f5 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/token/code-editor-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/code-editor-modal.token.ts @@ -1,4 +1,4 @@ -import { UmbModalToken } from "./modal-token"; +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbCodeEditorModalData { headline: string; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/confirm-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/confirm-modal.token.ts similarity index 84% rename from src/Umbraco.Web.UI.Client/libs/modal/token/confirm-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/confirm-modal.token.ts index 612881bc26..ebecd345a0 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/token/confirm-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/confirm-modal.token.ts @@ -1,4 +1,4 @@ -import type { TemplateResult } from 'lit'; +import type { TemplateResult } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbConfirmModalData { diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/create-dictionary-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/create-dictionary-modal.token.ts similarity index 81% rename from src/Umbraco.Web.UI.Client/libs/modal/token/create-dictionary-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/create-dictionary-modal.token.ts index 3e635f2cc4..cd2823651e 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/token/create-dictionary-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/create-dictionary-modal.token.ts @@ -1,8 +1,6 @@ -import { Observable } from 'rxjs'; +import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; -// TODO: add interface for data -// PropertyTypeViewModelBaseModel export interface UmbCreateDictionaryModalData { unique: string | null; parentName?: Observable<string | undefined>; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/create-user-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/create-user-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/token/create-user-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/create-user-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/current-user-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/current-user-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/token/current-user-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/current-user-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/data-type-picker-flow-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/data-type-picker-flow-modal.token.ts new file mode 100644 index 0000000000..c5bab648a2 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/data-type-picker-flow-modal.token.ts @@ -0,0 +1,18 @@ +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; + +export interface UmbDataTypePickerFlowModalData { + selection?: Array<string>; + submitLabel?: string; +} + +export type UmbDataTypePickerFlowModalResult = { + selection: Array<string>; +}; + +export const UMB_DATA_TYPE_PICKER_FLOW_MODAL = new UmbModalToken< + UmbDataTypePickerFlowModalData, + UmbDataTypePickerFlowModalResult +>('Umb.Modal.DataTypePickerFlow', { + type: 'sidebar', + size: 'small', +}); diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/data-type-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/data-type-picker-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/token/data-type-picker-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/data-type-picker-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/debug-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/debug-modal.token.ts similarity index 81% rename from src/Umbraco.Web.UI.Client/libs/modal/token/debug-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/debug-modal.token.ts index 7e3f797a38..1809509830 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/token/debug-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/debug-modal.token.ts @@ -1,4 +1,4 @@ -import { TemplateResult } from 'lit'; +import { TemplateResult } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbContextDebuggerModalData { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/dictionary-item-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/dictionary-item-picker-modal.token.ts new file mode 100644 index 0000000000..5656c74717 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/dictionary-item-picker-modal.token.ts @@ -0,0 +1,21 @@ +import { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { UmbModalToken, UmbPickerModalResult, UmbTreePickerModalData } from '@umbraco-cms/backoffice/modal'; + +export type UmbDictionaryItemPickerModalData = UmbTreePickerModalData<EntityTreeItemResponseModel>; +export type UmbDictionaryItemPickerModalResult = UmbPickerModalResult; + +export const UMB_DICTIONARY_ITEM_PICKER_MODAL_ALIAS = 'Umb.Modal.DictionaryItemPicker'; + +export const UMB_DICTIONARY_ITEM_PICKER_MODAL = new UmbModalToken< + UmbDictionaryItemPickerModalData, + UmbDictionaryItemPickerModalResult +>( + 'Umb.Modal.TreePicker', + { + type: 'sidebar', + size: 'small', + }, + { + treeAlias: 'Umb.Tree.Dictionary', + } +); diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/document-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/document-picker-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/token/document-picker-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/document-picker-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/document-type-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/document-type-picker-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/token/document-type-picker-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/document-type-picker-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/embedded-media-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/embedded-media-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/token/embedded-media-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/embedded-media-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/examine-fields-settings-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/examine-fields-settings-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/token/examine-fields-settings-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/examine-fields-settings-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/export-dictionary-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/export-dictionary-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/token/export-dictionary-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/export-dictionary-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/folder-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/token/folder-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/icon-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/icon-picker-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/token/icon-picker-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/icon-picker-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/import-dictionary-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/import-dictionary-modal.token.ts similarity index 86% rename from src/Umbraco.Web.UI.Client/libs/modal/token/import-dictionary-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/import-dictionary-modal.token.ts index c420afa120..e800f673ba 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/token/import-dictionary-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/import-dictionary-modal.token.ts @@ -1,7 +1,5 @@ import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; -// TODO: add interface for data -// PropertyTypeViewModelBaseModel export interface UmbImportDictionaryModalData { unique: string | null; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts new file mode 100644 index 0000000000..e7b1cd82c9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts @@ -0,0 +1,32 @@ +export * from './modal-token.js'; +export * from './allowed-document-types-modal.token.js'; +export * from './change-password-modal.token.js'; +export * from './confirm-modal.token.js'; +export * from './create-dictionary-modal.token.js'; +export * from './create-user-modal.token.js'; +export * from './current-user-modal.token.js'; +export * from './debug-modal.token.js'; +export * from './document-picker-modal.token.js'; +export * from './document-type-picker-modal.token.js'; +export * from './embedded-media-modal.token.js'; +export * from './examine-fields-settings-modal.token.js'; +export * from './export-dictionary-modal.token.js'; +export * from './icon-picker-modal.token.js'; +export * from './import-dictionary-modal.token.js'; +export * from './invite-user-modal.token.js'; +export * from './language-picker-modal.token.js'; +export * from './link-picker-modal.token.js'; +export * from './media-tree-picker-modal.token.js'; +export * from './property-editor-ui-picker-modal.token.js'; +export * from './property-settings-modal.token.js'; +export * from './search-modal.token.js'; +export * from './section-picker-modal.token.js'; +export * from './template-modal.token.js'; +export * from './template-picker-modal.token.js'; +export * from './user-group-picker-modal.token.js'; +export * from './user-picker-modal.token.js'; +export * from './folder-modal.token.js'; +export * from './partial-view-picker-modal.token.js'; +export * from './dictionary-item-picker-modal.token.js'; +export * from './data-type-picker-modal.token.js'; +export * from './data-type-picker-flow-modal.token.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/invite-user-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/invite-user-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/token/invite-user-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/invite-user-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/language-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/language-picker-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/token/language-picker-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/language-picker-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/link-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/link-picker-modal.token.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/libs/modal/token/link-picker-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/link-picker-modal.token.ts index 025b5582cb..68358c0ed0 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/token/link-picker-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/link-picker-modal.token.ts @@ -1,4 +1,4 @@ -import type { UUIModalSidebarSize } from '@umbraco-ui/uui'; +import type { UUIModalSidebarSize } from '@umbraco-cms/backoffice/external/uui'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbLinkPickerModalData { diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/media-tree-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/media-tree-picker-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/token/media-tree-picker-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/media-tree-picker-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/modal-token.ts similarity index 96% rename from src/Umbraco.Web.UI.Client/libs/modal/token/modal-token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/modal-token.ts index 057ffe5508..0e7328b277 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/token/modal-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/modal-token.ts @@ -1,4 +1,4 @@ -import { UmbModalConfig } from '../modal.context'; +import { UmbModalConfig } from '../modal.context.js'; export class UmbModalToken<ModalDataType extends object = object, ModalResultType = unknown> { /** diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/partial-view-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/partial-view-picker-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/token/partial-view-picker-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/partial-view-picker-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/property-editor-ui-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/property-editor-ui-picker-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/token/property-editor-ui-picker-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/property-editor-ui-picker-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/property-settings-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/property-settings-modal.token.ts new file mode 100644 index 0000000000..56d13593cf --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/property-settings-modal.token.ts @@ -0,0 +1,13 @@ +import { PropertyTypeResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; + +export type UmbPropertySettingsModalData = PropertyTypeResponseModelBaseModel; +export type UmbPropertySettingsModalResult = PropertyTypeResponseModelBaseModel; + +export const UMB_PROPERTY_SETTINGS_MODAL = new UmbModalToken< + UmbPropertySettingsModalData, + UmbPropertySettingsModalResult +>('Umb.Modal.PropertySettings', { + type: 'sidebar', + size: 'small', +}); diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/search-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/search-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/token/search-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/search-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/section-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/section-picker-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/token/section-picker-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/section-picker-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/template-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/template-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/token/template-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/template-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/template-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/template-picker-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/token/template-picker-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/template-picker-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/user-group-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/user-group-picker-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/token/user-group-picker-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/user-group-picker-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/libs/modal/token/user-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/user-picker-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/modal/token/user-picker-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/modal/token/user-picker-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modals/icon-picker/icon-picker-modal.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modals/icon-picker/icon-picker-modal.test.ts deleted file mode 100644 index 9b226ca627..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modals/icon-picker/icon-picker-modal.test.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { expect, fixture, html } from '@open-wc/testing'; -import { UmbIconPickerModalElement } from './icon-picker-modal.element'; -import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; - -describe('umb-icon-picker-modal', () => { - let element: UmbIconPickerModalElement; - - beforeEach(async () => { - element = await fixture(html` <umb-icon-picker-modal></umb-icon-picker-modal> `); - }); - - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbIconPickerModalElement); - }); - - // TODO: Reinstate this test when the a11y audit is fixed on uui-color-picker - // it('passes the a11y audit', async () => { - // await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - // }); -}); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/notification/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/notification/index.ts index 294bdcf5c3..44692cbce0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/notification/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/notification/index.ts @@ -1 +1,4 @@ -import './layouts/default'; +import './layouts/default/index.js'; + +export * from './notification.context.js'; +export * from './notification-handler.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/index.ts index 4ba76b0af5..01ea9cd952 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/index.ts @@ -1 +1 @@ -export * from './notification-layout-default.element'; +export * from './notification-layout-default.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/notification-layout-default.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/notification-layout-default.element.ts index 50ff4d3824..27bf569d11 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/notification-layout-default.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/notification-layout-default.element.ts @@ -1,15 +1,11 @@ -import { html, LitElement } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css'; +import { html, LitElement, customElement, property, ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import type { UmbNotificationDefaultData, UmbNotificationHandler } from '@umbraco-cms/backoffice/notification'; export type { UmbNotificationDefaultData }; @customElement('umb-notification-layout-default') export class UmbNotificationLayoutDefaultElement extends LitElement { - - @property({ attribute: false }) notificationHandler!: UmbNotificationHandler; @@ -23,7 +19,7 @@ export class UmbNotificationLayoutDefaultElement extends LitElement { </uui-toast-notification-layout> `; } - + static styles = [UUITextStyles]; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/notification-layout-default.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/notification-layout-default.stories.ts index 6a10618626..ac6aad9785 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/notification-layout-default.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/notification-layout-default.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; -import type { UmbNotificationLayoutDefaultElement } from './notification-layout-default.element'; +import type { UmbNotificationLayoutDefaultElement } from './notification-layout-default.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import './notification-layout-default.element'; +import './notification-layout-default.element.js'; export default { title: 'API/Notifications/Layouts/Default', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/notification-layout-default.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/notification-layout-default.test.ts index bd9255136f..406d46cad4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/notification-layout-default.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/notification-layout-default.test.ts @@ -1,6 +1,9 @@ import { fixture, expect, html } from '@open-wc/testing'; -import { UUIToastNotificationLayoutElement } from '@umbraco-ui/uui'; -import { UmbNotificationLayoutDefaultElement, UmbNotificationDefaultData } from './notification-layout-default.element'; +import { + UmbNotificationLayoutDefaultElement, + UmbNotificationDefaultData, +} from './notification-layout-default.element.js'; +import { UUIToastNotificationLayoutElement } from '@umbraco-cms/backoffice/external/uui'; import { UmbNotificationHandler } from '@umbraco-cms/backoffice/notification'; describe('UmbNotificationLayoutDefault', () => { diff --git a/src/Umbraco.Web.UI.Client/libs/notification/notification-handler.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification-handler.test.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/libs/notification/notification-handler.test.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/notification/notification-handler.test.ts index 76c674f232..9cd99ad62a 100644 --- a/src/Umbraco.Web.UI.Client/libs/notification/notification-handler.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification-handler.test.ts @@ -1,6 +1,6 @@ import { assert, expect } from '@open-wc/testing'; -import { UmbNotificationHandler } from './notification-handler'; -import type { UmbNotificationOptions } from './notification.context'; +import { UmbNotificationHandler } from './notification-handler.js'; +import type { UmbNotificationOptions } from './notification.context.js'; import { UmbId } from '@umbraco-cms/backoffice/id'; describe('UmbNotificationHandler', () => { diff --git a/src/Umbraco.Web.UI.Client/libs/notification/notification-handler.ts b/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification-handler.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/libs/notification/notification-handler.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/notification/notification-handler.ts index f6af9a2bd0..cd698ca497 100644 --- a/src/Umbraco.Web.UI.Client/libs/notification/notification-handler.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification-handler.ts @@ -1,5 +1,9 @@ -import { UUIToastNotificationElement } from '@umbraco-ui/uui'; -import type { UmbNotificationOptions, UmbNotificationColor, UmbNotificationDefaultData } from './notification.context'; +import type { + UmbNotificationOptions, + UmbNotificationColor, + UmbNotificationDefaultData, +} from './notification.context.js'; +import { UUIToastNotificationElement } from '@umbraco-cms/backoffice/external/uui'; import { UmbId } from '@umbraco-cms/backoffice/id'; /** diff --git a/src/Umbraco.Web.UI.Client/libs/notification/notification.context.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification.context.test.ts similarity index 99% rename from src/Umbraco.Web.UI.Client/libs/notification/notification.context.test.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/notification/notification.context.test.ts index 6d0f32b897..4df03c16dd 100644 --- a/src/Umbraco.Web.UI.Client/libs/notification/notification.context.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification.context.test.ts @@ -1,6 +1,6 @@ import { expect } from '@open-wc/testing'; -import { UmbNotificationHandler, UmbNotificationContext } from '.'; +import { UmbNotificationHandler, UmbNotificationContext } from './index.js'; describe('UmbNotificationContext', () => { let notificationContext: UmbNotificationContext; diff --git a/src/Umbraco.Web.UI.Client/libs/notification/notification.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification.context.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/libs/notification/notification.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/notification/notification.context.ts index 1cf55a0525..2da666abf8 100644 --- a/src/Umbraco.Web.UI.Client/libs/notification/notification.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification.context.ts @@ -1,5 +1,5 @@ -import { BehaviorSubject } from 'rxjs'; -import { UmbNotificationHandler } from './notification-handler'; +import { UmbNotificationHandler } from './notification-handler.js'; +import { BehaviorSubject } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/notification.mdx b/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/notification.mdx index 0755521f77..ac7374f00c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/notification.mdx +++ b/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/notification.mdx @@ -19,7 +19,7 @@ Stays on the screen until dismissed by the user or custom code. Stay notificatio The UmbNotification context can be used to open notifications. ```ts -import { html, LitElement } from 'lit'; +import { html, LitElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/element'; import type { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_ALIAS } from '@umbraco-cms/notification'; @@ -42,8 +42,8 @@ class MyElement extends UmbLitElement { A notification is opened by calling one of the helper methods on the UmbNotificationContext. The methods will return an instance of UmbNotificationHandler. ```ts -import { html, LitElement } from 'lit'; -import { state } from 'lit/decorators.js'; +import { html, LitElement } from '@umbraco-cms/backoffice/external/lit'; +import { state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/element'; import type { UmbNotificationContext, @@ -85,9 +85,9 @@ The default layout will cover most cases, but there might be situations where we ### Custom layout element ```ts -import { html, LitElement } from 'lit'; -import { property } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css'; +import { html, LitElement } from '@umbraco-cms/backoffice/external/lit'; +import { property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import type { UmbNotificationHandler } from '@umbraco-cms/notification'; export interface UmbNotificationCustomData { @@ -124,14 +124,14 @@ export class UmbNotificationLayoutCustom extends LitElement { ### Open notification with custom layout ```ts -import { html, LitElement } from 'lit'; +import { html, LitElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbContextInjectMixin } from '@umbraco-cms/context-api'; import type { UmbNotificationContext, UmbNotificationOptions, UMB_NOTIFICATION_CONTEXT_ALIAS, } from '@umbraco-cms/notification'; -import type { UmbNotificationCustomData } from './custom-notification-layout'; +import type { UmbNotificationCustomData } from './custom-notification-layout.js'; class MyElement extends LitElement { private _notificationContext?: UmbNotificationContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/notification.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/notification.stories.ts index 6928ff210a..c8a9588ea9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/notification.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/notification.stories.ts @@ -1,8 +1,8 @@ -import './story-notification-default-example.element'; +import './story-notification-default-example.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; -import { UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import { UmbNotificationContext } from '../notification.context.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; export default { title: 'API/Notifications/Overview', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/story-notification-default-example.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/story-notification-default-example.element.ts index fc29c90356..236b1ac4d0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/story-notification-default-example.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/story-notification-default-example.element.ts @@ -1,5 +1,4 @@ -import { html } from 'lit'; -import { customElement } from 'lit/decorators.js'; +import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbNotificationColor, UmbNotificationOptions, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/index.ts new file mode 100644 index 0000000000..5aee89bb95 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/index.ts @@ -0,0 +1 @@ +export * from './picker-input.context.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/picker-input/picker-input.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/picker-input.context.ts similarity index 56% rename from src/Umbraco.Web.UI.Client/libs/picker-input/picker-input.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/picker-input/picker-input.context.ts index 3313f5ad45..2f6f163fe2 100644 --- a/src/Umbraco.Web.UI.Client/libs/picker-input/picker-input.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/picker-input.context.ts @@ -1,8 +1,5 @@ -import { UmbItemRepository } from '@umbraco-cms/backoffice/repository'; +import { UmbItemRepository, UmbRepositoryItemsManager } from '@umbraco-cms/backoffice/repository'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbArrayState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; -import { createExtensionClass } from '@umbraco-cms/backoffice/extension-api'; -import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UMB_CONFIRM_MODAL, UMB_MODAL_CONTEXT_TOKEN, @@ -26,13 +23,10 @@ export class UmbPickerInputContext<ItemType extends ItemResponseModelBaseModel> #init: Promise<unknown>; - #selection = new UmbArrayState<string>([]); - selection = this.#selection.asObservable(); + #itemManager; - #selectedItems = new UmbArrayState<ItemType>([]); - selectedItems = this.#selectedItems.asObservable(); - - #selectedItemsObserver?: UmbObserverController<ItemType[]>; + selection; + selectedItems; max = Infinity; min = 0; @@ -49,29 +43,13 @@ export class UmbPickerInputContext<ItemType extends ItemResponseModelBaseModel> this.modalAlias = modalAlias; this.#getUnique = getUniqueMethod || ((entry) => entry.id || ''); - //TODO: The promise can probably be done in a cleaner way. - const repositoryPromise: Promise<void> = new Promise((resolve) => { - new UmbObserverController( - this.host, + this.#itemManager = new UmbRepositoryItemsManager<ItemType>(host, repositoryAlias, this.#getUnique); - // TODO: this code is reused in multiple places, so it should be extracted to a function - umbExtensionsRegistry.getByTypeAndAlias('repository', repositoryAlias), - async (repositoryManifest) => { - if (!repositoryManifest) return; - - try { - const result = await createExtensionClass<UmbItemRepository<ItemType>>(repositoryManifest, [this.host]); - this.repository = result; - resolve(); - } catch (error) { - throw new Error('Could not create repository with alias: ' + repositoryAlias + ''); - } - } - ); - }); + this.selection = this.#itemManager.uniques; + this.selectedItems = this.#itemManager.items; this.#init = Promise.all([ - repositoryPromise, + this.#itemManager.init, new UmbContextConsumerController(this.host, UMB_MODAL_CONTEXT_TOKEN, (instance) => { this.modalContext = instance; }).asPromise(), @@ -79,14 +57,11 @@ export class UmbPickerInputContext<ItemType extends ItemResponseModelBaseModel> } getSelection() { - return this.#selection.value; + return this.#itemManager.getUniques(); } setSelection(selection: string[]) { - this.#selection.next(selection); - - //TODO: Check if it's safe to call requestItems here. - this.#requestItems(); + this.#itemManager.setUniques(selection); } // TODO: If modalAlias is a ModalToken, then via TS, we should get the correct type for pickerData. Otherwise fallback to unknown. @@ -112,7 +87,7 @@ export class UmbPickerInputContext<ItemType extends ItemResponseModelBaseModel> if (!this.repository) throw new Error('Repository is not initialized'); // TODO: id won't always be available on the model, so we need to get the unique property from somewhere. Maybe the repository? - const item = this.#selectedItems.value.find((item) => this.#getUnique(item) === unique); + const item = this.#itemManager.getItems().find((item) => this.#getUnique(item) === unique); if (!item) throw new Error('Could not find item with unique: ' + unique); const modalHandler = this.modalContext?.open(UMB_CONFIRM_MODAL, { @@ -126,26 +101,8 @@ export class UmbPickerInputContext<ItemType extends ItemResponseModelBaseModel> this.#removeItem(unique); } - async #requestItems() { - await this.#init; - if (!this.repository) throw new Error('Repository is not initialized'); - if (this.#selectedItemsObserver) this.#selectedItemsObserver.destroy(); - - const { asObservable } = await this.repository.requestItems(this.getSelection()); - - if (asObservable) { - this.#selectedItemsObserver = new UmbObserverController(this.host, asObservable(), (data) => - this.#selectedItems.next(data) - ); - } - } - #removeItem(unique: string) { const newSelection = this.getSelection().filter((value) => value !== unique); - this.#selection.next(newSelection); - // remove items items from selectedItems array - // TODO: id won't always be available on the model, so we need to get the unique property from somewhere. Maybe the repository? - const newSelectedItems = this.#selectedItems.value.filter((item) => this.#getUnique(item) !== unique); - this.#selectedItems.next(newSelectedItems); + this.setSelection(newSelection); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/clear/property-action-clear.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/common/clear/property-action-clear.element.ts similarity index 85% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-actions/clear/property-action-clear.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/property-actions/common/clear/property-action-clear.element.ts index 12357bb9e7..77b667137e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/clear/property-action-clear.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/common/clear/property-action-clear.element.ts @@ -1,10 +1,6 @@ -import { html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { UmbPropertyAction } from '../shared/property-action/property-action.model'; -import { - UmbWorkspacePropertyContext, - UMB_WORKSPACE_PROPERTY_CONTEXT_TOKEN, -} from '../../components/workspace-property/workspace-property.context'; +import { UmbPropertyAction } from '../../shared/property-action/property-action.model.js'; +import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UmbWorkspacePropertyContext, UMB_WORKSPACE_PROPERTY_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/workspace'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-property-action-clear') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/clear/property-action-clear.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/common/clear/property-action-clear.stories.ts similarity index 76% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-actions/clear/property-action-clear.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/property-actions/common/clear/property-action-clear.stories.ts index 45bb332668..b936910aba 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/clear/property-action-clear.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/common/clear/property-action-clear.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyActionClearElement } from './property-action-clear.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyActionClearElement } from './property-action-clear.element'; -import './property-action-clear.element'; +import './property-action-clear.element.js'; export default { title: 'Property Actions/Clear', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/copy/property-action-copy.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/common/copy/property-action-copy.element.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-actions/copy/property-action-copy.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/property-actions/common/copy/property-action-copy.element.ts index 1e7cc2136b..37478f2940 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/copy/property-action-copy.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/common/copy/property-action-copy.element.ts @@ -1,6 +1,5 @@ -import { html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import type { UmbPropertyAction } from '../shared/property-action/property-action.model'; +import type { UmbPropertyAction } from '../../shared/property-action/property-action.model.js'; +import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbNotificationDefaultData, UmbNotificationContext, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/copy/property-action-copy.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/common/copy/property-action-copy.stories.ts similarity index 76% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-actions/copy/property-action-copy.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/property-actions/common/copy/property-action-copy.stories.ts index 99c7fb230d..601dccc3ef 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/copy/property-action-copy.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/common/copy/property-action-copy.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyActionCopyElement } from './property-action-copy.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyActionCopyElement } from './property-action-copy.element'; -import './property-action-copy.element'; +import './property-action-copy.element.js'; export default { title: 'Property Actions/Copy', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/index.ts new file mode 100644 index 0000000000..4aac0d5288 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/index.ts @@ -0,0 +1 @@ +export * from './shared/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/manifests.ts index a950a56e49..9d9a8af73c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/manifests.ts @@ -5,18 +5,18 @@ export const manifests: Array<ManifestPropertyAction> = [ type: 'propertyAction', alias: 'Umb.PropertyAction.Copy', name: 'Copy Property Action', - loader: () => import('./copy/property-action-copy.element'), + loader: () => import('./common/copy/property-action-copy.element.js'), conditions: { - propertyEditors: ['Umb.PropertyEditorUI.TextBox'], + propertyEditors: ['Umb.PropertyEditorUi.TextBox'], }, }, { type: 'propertyAction', alias: 'Umb.PropertyAction.Clear', name: 'Clear Property Action', - loader: () => import('./clear/property-action-clear.element'), + loader: () => import('./common/clear/property-action-clear.element.js'), conditions: { - propertyEditors: ['Umb.PropertyEditorUI.TextBox'], + propertyEditors: ['Umb.PropertyEditorUi.TextBox'], }, }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/shared/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/shared/index.ts new file mode 100644 index 0000000000..96afbaf039 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/shared/index.ts @@ -0,0 +1,2 @@ +export * from './property-action/property-action.element.js'; +export * from './property-action-menu/property-action-menu.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/shared/property-action-menu/property-action-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/shared/property-action-menu/property-action-menu.element.ts index 94985f0109..46ce627581 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/shared/property-action-menu/property-action-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/shared/property-action-menu/property-action-menu.element.ts @@ -1,13 +1,12 @@ -import { css, CSSResultGroup, html } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { map } from 'rxjs'; -import { UUITextStyles } from '@umbraco-ui/uui'; -import { UmbPropertyActionMenuContext } from './property-action-menu.context'; +import { UmbPropertyActionMenuContext } from './property-action-menu.context.js'; +import { css, CSSResultGroup, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { map } from '@umbraco-cms/backoffice/external/rxjs'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { ManifestPropertyAction, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; -import '../property-action/property-action.element'; +import '../property-action/property-action.element.js'; @customElement('umb-property-action-menu') export class UmbPropertyActionMenuElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/shared/property-action/property-action.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/shared/property-action/property-action.element.ts index 605a6f60cb..422ba89bfc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/shared/property-action/property-action.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-actions/shared/property-action/property-action.element.ts @@ -1,7 +1,6 @@ -import { CSSResultGroup, html, LitElement } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui'; -import type { UmbPropertyAction } from './property-action.model'; +import type { UmbPropertyAction } from './property-action.model.js'; +import { CSSResultGroup, html, LitElement, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { createExtensionElement } from '@umbraco-cms/backoffice/extension-api'; import type { ManifestPropertyAction } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/manifests.ts index 38777fdc5c..b4c02695a5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/manifests.ts @@ -1,5 +1,4 @@ -import { manifests as propertyEditorModelManifests } from './models/manifests'; -import { manifests as propertyEditorUIManifests } from './uis/manifests'; -import { manifests as modalManifests } from './modals/manifests'; +import { manifests as propertyEditorModelManifests } from './models/manifests.js'; +import { manifests as propertyEditorUIManifests } from './uis/manifests.js'; -export const manifests = [...propertyEditorModelManifests, ...propertyEditorUIManifests, ...modalManifests]; +export const manifests = [...propertyEditorModelManifests, ...propertyEditorUIManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.BlockGrid.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.BlockGrid.ts index b0d195d3e8..01e8378822 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.BlockGrid.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.BlockGrid.ts @@ -5,36 +5,37 @@ export const manifest: ManifestPropertyEditorModel = { name: 'Block Grid', alias: 'Umbraco.BlockGrid', meta: { - config: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.BlockGrid', + settings: { properties: [ { alias: 'blocks', label: 'Blocks', description: 'Define Blocks based on Element Types. Use Groups to help organise their selection. Example Groups: Layout and Content', - propertyEditorUI: 'Umb.PropertyEditorUI.BlockGrid.BlockConfiguration', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.BlockGrid.BlockConfiguration', }, { alias: 'blockGroups', label: 'Block Groups', - propertyEditorUI: 'Umb.PropertyEditorUI.BlockGrid.GroupConfiguration', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.BlockGrid.GroupConfiguration', }, { alias: 'validationLimit', label: 'Amount', - propertyEditorUI: 'Umb.PropertyEditorUI.NumberRange', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.NumberRange', }, { alias: 'gridColumns', label: 'Grid Columns', description: 'Set the number of columns for the layout. (defaults to 12)', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, { alias: 'layoutStylesheet', label: 'Layout Stylesheet', description: 'Override default stylesheet for backoffice layout.', - propertyEditorUI: 'Umb.PropertyEditorUI.BlockGrid.StylesheetPicker', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.BlockGrid.StylesheetPicker', }, ], defaultData: [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.BlockList.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.BlockList.ts index d2999ef1d6..b610210ecf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.BlockList.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.BlockList.ts @@ -5,19 +5,20 @@ export const manifest: ManifestPropertyEditorModel = { name: 'Block List', alias: 'Umbraco.BlockList', meta: { - config: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.BlockList', + settings: { properties: [ { alias: 'blocks', label: 'Available Blocks', description: 'Define the available blocks.', - propertyEditorUI: 'Umb.PropertyEditorUI.BlockList.BlockConfiguration', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.BlockList.BlockConfiguration', }, { alias: 'validationLimit', label: 'Amount', description: 'Set a required range of blocks', - propertyEditorUI: 'Umb.PropertyEditorUI.NumberRange', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.NumberRange', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.CheckboxList.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.CheckboxList.ts index c5eda2f785..e3675129dc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.CheckboxList.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.CheckboxList.ts @@ -4,5 +4,7 @@ export const manifest: ManifestPropertyEditorModel = { type: 'propertyEditorModel', name: 'Checkbox List', alias: 'Umbraco.CheckboxList', - meta: {}, + meta: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.CheckboxList', + }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.ColorPicker.EyeDropper.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.ColorPicker.EyeDropper.ts index 03793b5410..abdb5ac0c7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.ColorPicker.EyeDropper.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.ColorPicker.EyeDropper.ts @@ -4,5 +4,7 @@ export const manifest: ManifestPropertyEditorModel = { type: 'propertyEditorModel', name: 'Eye Dropper Color Picker', alias: 'Umbraco.ColorPicker.EyeDropper', - meta: {}, + meta: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.EyeDropper', + }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.ColorPicker.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.ColorPicker.ts index b17c68c390..3374c860dc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.ColorPicker.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.ColorPicker.ts @@ -5,20 +5,21 @@ export const manifest: ManifestPropertyEditorModel = { name: 'Color Picker', alias: 'Umbraco.ColorPicker', meta: { - config: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.ColorPicker', + settings: { properties: [ { alias: 'useLabel', label: 'Include labels?', description: 'Stores colors as a Json object containing both the color hex string and label, rather than just the hex string.', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, { alias: 'items', label: 'Colors', description: 'Add, remove or sort colors', - propertyEditorUI: 'Umb.PropertyEditorUI.ColorPicker', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.ColorPicker', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.DateTime.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.DateTime.ts index 78e13d2191..6fdcd50854 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.DateTime.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.DateTime.ts @@ -6,14 +6,29 @@ export const manifest: ManifestPropertyEditorModel = { name: 'Date/Time', alias: 'Umbraco.DateTime', meta: { - config: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.DatePicker', + settings: { properties: [ { alias: 'offsetTime', label: 'Offset time', description: 'When enabled the time displayed will be offset with the servers timezone, this is useful for scenarios like scheduled publishing when an editor is in a different timezone than the hosted server', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', + config: [ + { + alias: 'labelOff', + value: 'Adjust to local time', + }, + { + alias: 'labelOn', + value: 'Adjust to local time', + }, + { + alias: 'showLabels', + value: true, + }, + ], }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Decimal.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Decimal.ts index f9d319ad55..01db533803 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Decimal.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Decimal.ts @@ -5,25 +5,26 @@ export const manifest: ManifestPropertyEditorModel = { name: 'Decimal', alias: 'Umbraco.Decimal', meta: { - config: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.Decimal', + settings: { properties: [ { alias: 'min', label: 'Minimum', description: 'Enter the minimum amount of number to be entered', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, { alias: 'max', label: 'Maximum', description: 'Enter the minimum amount of number to be entered', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, { alias: 'step', label: 'Step size', description: 'Enter the intervals amount between each step of number to be entered', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Dropdown.Flexible.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Dropdown.Flexible.ts index 3a864cb33e..fbff8e54e8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Dropdown.Flexible.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Dropdown.Flexible.ts @@ -5,5 +5,7 @@ export const manifest: ManifestPropertyEditorModel = { type: 'propertyEditorModel', name: 'Dropdown', alias: 'Umbraco.DropDown.Flexible', - meta: {}, + meta: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.DropDown.Flexible', + }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.EmailAddress.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.EmailAddress.ts index eb2d247a6f..da85ecf29b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.EmailAddress.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.EmailAddress.ts @@ -4,5 +4,7 @@ export const manifest: ManifestPropertyEditorModel = { type: 'propertyEditorModel', name: 'Email Address', alias: 'Umbraco.EmailAddress', - meta: {}, + meta: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.EmailAddress', + }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.IconPicker.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.IconPicker.ts new file mode 100644 index 0000000000..23af75f11f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.IconPicker.ts @@ -0,0 +1,10 @@ +import type { ManifestPropertyEditorModel } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifest: ManifestPropertyEditorModel = { + type: 'propertyEditorModel', + name: 'Icon Picker', + alias: 'Umbraco.IconPicker', + meta: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.IconPicker', + }, +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.ImageCropper.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.ImageCropper.ts index 7bf12aa25c..ad0d2788a7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.ImageCropper.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.ImageCropper.ts @@ -5,12 +5,13 @@ export const manifest: ManifestPropertyEditorModel = { name: 'Email Address', alias: 'Umbraco.ImageCropper', meta: { - config: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.ImageCropper', + settings: { properties: [ { alias: 'crops', label: 'Define Crops', - propertyEditorUI: 'Umb.PropertyEditorUI.ImageCropsConfiguration', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.ImageCropsConfiguration', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Integer.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Integer.ts index fa139b7ce3..f6d4ba9f9c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Integer.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Integer.ts @@ -5,25 +5,26 @@ export const manifest: ManifestPropertyEditorModel = { name: 'Decimal', alias: 'Umbraco.Integer', meta: { - config: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.Integer', + settings: { properties: [ { alias: 'min', label: 'Minimum', description: 'Enter the minimum amount of number to be entered', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, { alias: 'max', label: 'Maximum', description: 'Enter the minimum amount of number to be entered', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, { alias: 'step', label: 'Step size', description: 'Enter the intervals amount between each step of number to be entered', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.JSON.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.JSON.ts index 92ea5f1f54..0816b48da0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.JSON.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.JSON.ts @@ -4,5 +4,7 @@ export const manifest: ManifestPropertyEditorModel = { type: 'propertyEditorModel', name: 'JSON model', alias: 'Umbraco.JSON', - meta: {}, + meta: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.JSON', + }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Label.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Label.ts index b07aed98ae..ae577da600 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Label.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Label.ts @@ -5,13 +5,14 @@ export const manifest: ManifestPropertyEditorModel = { name: 'Label', alias: 'Umbraco.Label', meta: { - config: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.Label', + settings: { properties: [ { alias: 'umbracoDataValueType', label: 'Value type', description: 'The type of value to store', - propertyEditorUI: 'Umb.PropertyEditorUI.ValueType', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.ValueType', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.ListView.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.ListView.ts index 4b5a58c42a..a52179f025 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.ListView.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.ListView.ts @@ -5,36 +5,37 @@ export const manifest: ManifestPropertyEditorModel = { name: 'List View', alias: 'Umbraco.ListView', meta: { - config: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.ListView', + settings: { properties: [ { alias: 'pageSize', label: 'Page Size', description: 'Number of items per page.', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, { alias: 'orderDirection', label: 'Order Direction', - propertyEditorUI: 'Umb.PropertyEditorUI.OrderDirection', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.OrderDirection', }, { alias: 'includeProperties', label: 'Columns Displayed', description: 'The properties that will be displayed for each column', - propertyEditorUI: 'Umb.PropertyEditorUI.CollectionView.ColumnConfiguration', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.CollectionView.ColumnConfiguration', }, { alias: 'orderBy', label: 'Order By', description: 'The properties that will be displayed for each column', - propertyEditorUI: 'Umb.PropertyEditorUI.CollectionView.OrderBy', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.CollectionView.OrderBy', }, { alias: 'bulkActionPermissions', label: 'Bulk Action Permissions', description: 'The properties that will be displayed for each column', - propertyEditorUI: 'Umb.PropertyEditorUI.CollectionView.BulkActionPermissions', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.CollectionView.BulkActionPermissions', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MarkdownEditor.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MarkdownEditor.ts index ff42e6d856..44d0e760e6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MarkdownEditor.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MarkdownEditor.ts @@ -4,5 +4,7 @@ export const manifest: ManifestPropertyEditorModel = { type: 'propertyEditorModel', name: 'Markdown Editor', alias: 'Umbraco.MarkdownEditor', - meta: {}, + meta: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.MarkdownEditor', + }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MediaPicker3.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MediaPicker3.ts index 35c0e2457e..c95c71bce8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MediaPicker3.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MediaPicker3.ts @@ -5,47 +5,48 @@ export const manifest: ManifestPropertyEditorModel = { name: 'Media Picker 3', alias: 'Umbraco.MediaPicker3', meta: { - config: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.MediaPicker3', + settings: { properties: [ { alias: 'filter', label: 'Accepted types', description: 'Limit to specific types', - propertyEditorUI: 'Umb.PropertyEditorUI.TreePicker', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.TreePicker', }, { alias: 'multiple', label: 'Pick multiple items', description: 'Outputs a IEnumerable', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, { alias: 'validationLimit', label: 'Amount', description: 'Set a required range of medias', - propertyEditorUI: 'Umb.PropertyEditorUI.NumberRange', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.NumberRange', }, { alias: 'startNodeId', label: 'Start node', - propertyEditorUI: 'Umb.PropertyEditorUI.MediaPicker', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.MediaPicker', }, { alias: 'enableLocalFocalPoint', label: 'Enable Focal Point', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, { alias: 'crops', label: 'Image Crops', description: 'Local crops, stored on document', - propertyEditorUI: 'Umb.PropertyEditorUI.ImageCropsConfiguration', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.ImageCropsConfiguration', }, { alias: 'ignoreUserStartNodes', label: 'Ignore User Start Nodes', description: 'Selecting this option allows a user to choose nodes that they normally dont have access to.', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MemberGroupPicker.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MemberGroupPicker.ts index f811b9ae2f..d75f97872a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MemberGroupPicker.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MemberGroupPicker.ts @@ -4,5 +4,7 @@ export const manifest: ManifestPropertyEditorModel = { type: 'propertyEditorModel', name: 'Member Group Picker', alias: 'Umbraco.MemberGroupPicker', - meta: {}, + meta: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.MemberGroupPicker', + }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MemberPicker.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MemberPicker.ts index e1034d1564..2ab6c5f388 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MemberPicker.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MemberPicker.ts @@ -4,5 +4,7 @@ export const manifest: ManifestPropertyEditorModel = { type: 'propertyEditorModel', name: 'Member Picker', alias: 'Umbraco.MemberPicker', - meta: {}, + meta: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.MemberPicker', + }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MultiNodeTreePicker.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MultiNodeTreePicker.ts index 40911a4cc9..2d29b348e9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MultiNodeTreePicker.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MultiNodeTreePicker.ts @@ -5,25 +5,26 @@ export const manifest: ManifestPropertyEditorModel = { name: 'Multi Node Tree Picker', alias: 'Umbraco.MultiNodeTreePicker', meta: { - config: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.MultiNodeTreePicker', + settings: { properties: [ { alias: 'minNumber', label: 'Minimum number of items', description: '', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, { alias: 'maxNumber', label: 'Maximum number of items', description: '', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, { alias: 'ignoreUserStartNodes', label: 'Ignore user start nodes', description: 'Selecting this option allows a user to choose nodes that they normally dont have access to.', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, ], defaultData: [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MultiUrlPicker.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MultiUrlPicker.ts index 2eb60b7000..e73d108dc0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MultiUrlPicker.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MultiUrlPicker.ts @@ -5,25 +5,26 @@ export const manifest: ManifestPropertyEditorModel = { name: 'Multi URL Picker', alias: 'Umbraco.MultiUrlPicker', meta: { - config: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.MultiUrlPicker', + settings: { properties: [ { alias: 'minNumber', label: 'Minimum number of items', description: '', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, { alias: 'maxNumber', label: 'Maximum number of items', description: '', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, { alias: 'ignoreUserStartNodes', label: 'Ignore user start nodes', description: 'Selecting this option allows a user to choose nodes that they normally dont have access to.', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, ], defaultData: [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MultipleTextString.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MultipleTextString.ts index 6272806dea..fe4c6c8097 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MultipleTextString.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.MultipleTextString.ts @@ -5,19 +5,20 @@ export const manifest: ManifestPropertyEditorModel = { name: 'Multiple Text String', alias: 'Umbraco.MultipleTextString', meta: { - config: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.MultipleTextString', + settings: { properties: [ { alias: 'min', label: 'Minimum', description: 'Enter the minimum amount of text boxes to be displayed', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, { alias: 'max', label: 'Maximum', description: 'Enter the maximum amount of text boxes to be displayed, enter 0 for unlimited', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, ], defaultData: [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.RadioButtonList.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.RadioButtonList.ts index 928bc2008e..0db2abb135 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.RadioButtonList.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.RadioButtonList.ts @@ -4,5 +4,7 @@ export const manifest: ManifestPropertyEditorModel = { type: 'propertyEditorModel', name: 'Radio Button List', alias: 'Umbraco.RadioButtonList', - meta: {}, + meta: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.RadioButtonList', + }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Slider.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Slider.ts index 5c65837a27..6c5172b077 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Slider.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Slider.ts @@ -5,19 +5,20 @@ export const manifest: ManifestPropertyEditorModel = { name: 'Slider', alias: 'Umbraco.Slider', meta: { - config: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.Slider', + settings: { properties: [ { alias: 'minVal', label: 'Minimum value', description: '', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, { alias: 'maxVal', label: 'Maximum value', description: '', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, ], defaultData: [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Tags.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Tags.ts index 6de106c3da..b84532fb86 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Tags.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.Tags.ts @@ -5,19 +5,20 @@ export const manifest: ManifestPropertyEditorModel = { name: 'Tags', alias: 'Umbraco.Tags', meta: { - config: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.Tags', + settings: { properties: [ { alias: 'group', label: 'Define a tag group', description: '', - propertyEditorUI: 'Umb.PropertyEditorUI.TextBox', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.TextBox', }, { alias: 'storageType', label: 'Storage Type', description: '', - propertyEditorUI: 'Umb.PropertyEditorUI.Tags.StorageType', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Tags.StorageType', }, ], defaultData: [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.TextArea.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.TextArea.ts index c9bb352e85..be1525eb3c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.TextArea.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.TextArea.ts @@ -5,13 +5,14 @@ export const manifest: ManifestPropertyEditorModel = { name: 'Textarea', alias: 'Umbraco.TextArea', meta: { - config: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.TextArea', + settings: { properties: [ { alias: 'maxChars', label: 'Maximum allowed characters', description: 'If empty - no character limit', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.TextBox.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.TextBox.ts index 28dc24ed6e..2d631d5ec2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.TextBox.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.TextBox.ts @@ -5,13 +5,14 @@ export const manifest: ManifestPropertyEditorModel = { name: 'Text Box', alias: 'Umbraco.TextBox', meta: { - config: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.TextBox', + settings: { properties: [ { alias: 'maxChars', label: 'Maximum allowed characters', description: 'If empty, 512 character limit', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, ], defaultData: [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.TinyMCE.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.TinyMCE.ts index 74e3902859..8e953cb514 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.TinyMCE.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.TinyMCE.ts @@ -5,7 +5,8 @@ export const manifest: ManifestPropertyEditorModel = { name: 'Tiny MCE', alias: 'Umbraco.TinyMCE', meta: { - config: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.TinyMCE', + settings: { properties: [ { alias: 'toolbar', @@ -29,18 +30,18 @@ export const manifest: ManifestPropertyEditorModel = { alias: 'maxImageSize', label: 'Maximum size for inserted images', description: 'Maximum width or height - enter 0 to disable resizing', - propertyEditorUI: 'Umb.PropertyEditorUI.TinyMCE.MaxImageSizeConfiguration', + propertyEditorUi: 'Umb.PropertyEditorUI.TinyMCE.MaxImageSizeConfiguration', }, { alias: 'mediaParentId', label: 'Image Upload Folder', description: 'Choose the upload location of pasted images', - propertyEditorUI: 'Umb.PropertyEditorUI.TreePicker', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.TreePicker', }, { alias: 'ignoreUserStartNodes', label: 'Ignore User Start Nodes', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.TrueFalse.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.TrueFalse.ts index eeeb041f9e..699ed9d9cf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.TrueFalse.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.TrueFalse.ts @@ -5,5 +5,7 @@ export const manifest: ManifestPropertyEditorModel = { type: 'propertyEditorModel', name: 'Date/Time', alias: 'Umbraco.TrueFalse', - meta: {}, + meta: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.TrueFalse', + }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.UploadField.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.UploadField.ts index ca33391a90..4c3f651f5a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.UploadField.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.UploadField.ts @@ -6,12 +6,13 @@ export const manifest: ManifestPropertyEditorModel = { name: 'File upload', alias: 'Umbraco.UploadField', meta: { - config: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.UploadField', + settings: { properties: [ { alias: 'fileExtensions', label: 'Accepted file extensions', - propertyEditorUI: 'Umb.PropertyEditorUI.MultipleTextString', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.MultipleTextString', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.UserPicker.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.UserPicker.ts index 73c0660686..0e0d316c2f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.UserPicker.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/Umbraco.UserPicker.ts @@ -4,5 +4,7 @@ export const manifest: ManifestPropertyEditorModel = { type: 'propertyEditorModel', name: 'User Picker', alias: 'Umbraco.UserPicker', - meta: {}, + meta: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.UserPicker', + }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/manifests.ts index 2f2329cb63..a9409bf301 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/models/manifests.ts @@ -1,71 +1,67 @@ -import { manifest as colorPicker } from './Umbraco.ColorPicker'; -import { manifest as eyeDropper } from './Umbraco.ColorPicker.EyeDropper'; -import { manifest as json } from './Umbraco.JSON'; -import { manifest as multiUrlPicker } from './Umbraco.MultiUrlPicker'; -import { manifest as multiNodeTreePicker } from './Umbraco.MultiNodeTreePicker'; -import { manifest as dateTime } from './Umbraco.DateTime'; -import { manifest as emailAddress } from './Umbraco.EmailAddress'; -import { manifest as dropdownFlexible } from './Umbraco.Dropdown.Flexible'; -import { manifest as textBox } from './Umbraco.TextBox'; -import { manifest as multipleTextString } from './Umbraco.MultipleTextString'; -import { manifest as textArea } from './Umbraco.TextArea'; -import { manifest as slider } from './Umbraco.Slider'; -import { manifest as trueFalse } from './Umbraco.TrueFalse'; -import { manifest as tags } from './Umbraco.Tags'; -import { manifest as markdownEditor } from './Umbraco.MarkdownEditor'; -import { manifest as radioButtonList } from './Umbraco.RadioButtonList'; -import { manifest as blockList } from './Umbraco.BlockList'; -import { manifest as checkboxList } from './Umbraco.CheckboxList'; -import { manifest as mediaPicker } from './Umbraco.MediaPicker3'; -import { manifest as imageCropper } from './Umbraco.ImageCropper'; -import { manifest as uploadField } from './Umbraco.UploadField'; -import { manifest as blockGrid } from './Umbraco.BlockGrid'; -import { manifest as tinyMCE } from './Umbraco.TinyMCE'; -import { manifest as listView } from './Umbraco.ListView'; -import { manifest as label } from './Umbraco.Label'; -import { manifest as integer } from './Umbraco.Integer'; -import { manifest as decimal } from './Umbraco.Decimal'; -import { manifest as userPicker } from './Umbraco.UserPicker'; -import { manifest as memberPicker } from './Umbraco.MemberPicker'; -import { manifest as memberGroupPicker } from './Umbraco.MemberGroupPicker'; +import { manifest as blockGrid } from './Umbraco.BlockGrid.js'; +import { manifest as blockList } from './Umbraco.BlockList.js'; +import { manifest as checkboxList } from './Umbraco.CheckboxList.js'; +import { manifest as colorPicker } from './Umbraco.ColorPicker.js'; +import { manifest as dateTime } from './Umbraco.DateTime.js'; +import { manifest as decimal } from './Umbraco.Decimal.js'; +import { manifest as dropdownFlexible } from './Umbraco.Dropdown.Flexible.js'; +import { manifest as emailAddress } from './Umbraco.EmailAddress.js'; +import { manifest as eyeDropper } from './Umbraco.ColorPicker.EyeDropper.js'; +import { manifest as iconPicker } from './Umbraco.IconPicker.js'; +import { manifest as imageCropper } from './Umbraco.ImageCropper.js'; +import { manifest as integer } from './Umbraco.Integer.js'; +import { manifest as json } from './Umbraco.JSON.js'; +import { manifest as label } from './Umbraco.Label.js'; +import { manifest as listView } from './Umbraco.ListView.js'; +import { manifest as markdownEditor } from './Umbraco.MarkdownEditor.js'; +import { manifest as mediaPicker } from './Umbraco.MediaPicker3.js'; +import { manifest as memberGroupPicker } from './Umbraco.MemberGroupPicker.js'; +import { manifest as memberPicker } from './Umbraco.MemberPicker.js'; +import { manifest as multiNodeTreePicker } from './Umbraco.MultiNodeTreePicker.js'; +import { manifest as multipleTextString } from './Umbraco.MultipleTextString.js'; +import { manifest as multiUrlPicker } from './Umbraco.MultiUrlPicker.js'; +import { manifest as radioButtonList } from './Umbraco.RadioButtonList.js'; +import { manifest as slider } from './Umbraco.Slider.js'; +import { manifest as tags } from './Umbraco.Tags.js'; +import { manifest as textArea } from './Umbraco.TextArea.js'; +import { manifest as textBox } from './Umbraco.TextBox.js'; +import { manifest as tinyMCE } from './Umbraco.TinyMCE.js'; +import { manifest as trueFalse } from './Umbraco.TrueFalse.js'; +import { manifest as uploadField } from './Umbraco.UploadField.js'; +import { manifest as userPicker } from './Umbraco.UserPicker.js'; import type { ManifestPropertyEditorModel } from '@umbraco-cms/backoffice/extension-registry'; export const manifests: Array<ManifestPropertyEditorModel> = [ - colorPicker, - eyeDropper, - dateTime, - emailAddress, - json, - multiUrlPicker, - multiNodeTreePicker, - dropdownFlexible, - textBox, - multipleTextString, - textArea, - slider, - trueFalse, - tags, - markdownEditor, - radioButtonList, - checkboxList, - blockList, - mediaPicker, - imageCropper, - uploadField, blockGrid, - tinyMCE, - listView, - label, - integer, + blockList, + checkboxList, + colorPicker, + dateTime, decimal, - userPicker, - memberPicker, + dropdownFlexible, + emailAddress, + eyeDropper, + iconPicker, + imageCropper, + integer, + json, + label, + listView, + markdownEditor, + mediaPicker, memberGroupPicker, - { - type: 'propertyEditorModel', - name: 'Icon Picker', - alias: 'Umbraco.IconPicker', - meta: {}, - }, + memberPicker, + multiNodeTreePicker, + multipleTextString, + multiUrlPicker, + radioButtonList, + slider, + tags, + textArea, + textBox, + tinyMCE, + trueFalse, + uploadField, + userPicker, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/block-configuration/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/block-configuration/manifests.ts index f424940edf..43286756d4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/block-configuration/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/block-configuration/manifests.ts @@ -1,13 +1,13 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.BlockGrid.BlockConfiguration', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.BlockGrid.BlockConfiguration', name: 'Block Grid Block Configuration Property Editor UI', - loader: () => import('./property-editor-ui-block-grid-block-configuration.element'), + loader: () => import('./property-editor-ui-block-grid-block-configuration.element.js'), meta: { label: 'Block Grid Block Configuration', - propertyEditorModel: 'Umbraco.BlockGrid.BlockConfiguration', + propertyEditorAlias: 'Umbraco.BlockGrid.BlockConfiguration', icon: 'umb:autofill', group: 'blocks', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/block-configuration/property-editor-ui-block-grid-block-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/block-configuration/property-editor-ui-block-grid-block-configuration.element.ts index 37d7800239..51df62c839 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/block-configuration/property-editor-ui-block-grid-block-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/block-configuration/property-editor-ui-block-grid-block-configuration.element.ts @@ -1,6 +1,5 @@ -import { html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/block-configuration/property-editor-ui-block-grid-block-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/block-configuration/property-editor-ui-block-grid-block-configuration.stories.ts index 84a24b1a83..9e10fd0740 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/block-configuration/property-editor-ui-block-grid-block-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/block-configuration/property-editor-ui-block-grid-block-configuration.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIBlockGridBlockConfigurationElement } from './property-editor-ui-block-grid-block-configuration.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIBlockGridBlockConfigurationElement } from './property-editor-ui-block-grid-block-configuration.element'; -import './property-editor-ui-block-grid-block-configuration.element'; +import './property-editor-ui-block-grid-block-configuration.element.js'; export default { title: 'Property Editor UIs/Block Grid Block Configuration', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/block-configuration/property-editor-ui-block-grid-block-configuration.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/block-configuration/property-editor-ui-block-grid-block-configuration.test.ts index 3e06b77ca7..9416838460 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/block-configuration/property-editor-ui-block-grid-block-configuration.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/block-configuration/property-editor-ui-block-grid-block-configuration.test.ts @@ -1,21 +1,23 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIBlockGridBlockConfigurationElement } from './property-editor-ui-block-grid-block-configuration.element'; +import { UmbPropertyEditorUIBlockGridBlockConfigurationElement } from './property-editor-ui-block-grid-block-configuration.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIBlockGridBlockConfigurationElement', () => { - let element: UmbPropertyEditorUIBlockGridBlockConfigurationElement; + let element: UmbPropertyEditorUIBlockGridBlockConfigurationElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-block-grid-block-configuration></umb-property-editor-ui-block-grid-block-configuration> ` - ); - }); + beforeEach(async () => { + element = await fixture( + html` + <umb-property-editor-ui-block-grid-block-configuration></umb-property-editor-ui-block-grid-block-configuration> + ` + ); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUIBlockGridBlockConfigurationElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUIBlockGridBlockConfigurationElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/group-configuration/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/group-configuration/manifests.ts index efdca4b735..d7c9bd0209 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/group-configuration/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/group-configuration/manifests.ts @@ -1,13 +1,13 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.BlockGrid.GroupConfiguration', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.BlockGrid.GroupConfiguration', name: 'Block Grid Group Configuration Property Editor UI', - loader: () => import('./property-editor-ui-block-grid-group-configuration.element'), + loader: () => import('./property-editor-ui-block-grid-group-configuration.element.js'), meta: { label: 'Block Grid Group Configuration', - propertyEditorModel: 'Umbraco.BlockGrid.GroupConfiguration', + propertyEditorAlias: 'Umbraco.BlockGrid.GroupConfiguration', icon: 'umb:autofill', group: 'blocks', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/group-configuration/property-editor-ui-block-grid-group-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/group-configuration/property-editor-ui-block-grid-group-configuration.element.ts index 56b9d0c70e..61d419de36 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/group-configuration/property-editor-ui-block-grid-group-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/group-configuration/property-editor-ui-block-grid-group-configuration.element.ts @@ -1,6 +1,5 @@ -import { html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/group-configuration/property-editor-ui-block-grid-group-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/group-configuration/property-editor-ui-block-grid-group-configuration.stories.ts index dad33027be..191b714baf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/group-configuration/property-editor-ui-block-grid-group-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/group-configuration/property-editor-ui-block-grid-group-configuration.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIBlockGridGroupConfigurationElement } from './property-editor-ui-block-grid-group-configuration.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIBlockGridGroupConfigurationElement } from './property-editor-ui-block-grid-group-configuration.element'; -import './property-editor-ui-block-grid-group-configuration.element'; +import './property-editor-ui-block-grid-group-configuration.element.js'; export default { title: 'Property Editor UIs/Block Grid Group Configuration', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/group-configuration/property-editor-ui-block-grid-group-configuration.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/group-configuration/property-editor-ui-block-grid-group-configuration.test.ts index 303022bb25..de0ffc6d61 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/group-configuration/property-editor-ui-block-grid-group-configuration.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/group-configuration/property-editor-ui-block-grid-group-configuration.test.ts @@ -1,21 +1,23 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIBlockGridGroupConfigurationElement } from './property-editor-ui-block-grid-group-configuration.element'; +import { UmbPropertyEditorUIBlockGridGroupConfigurationElement } from './property-editor-ui-block-grid-group-configuration.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIBlockGridGroupConfigurationElement', () => { - let element: UmbPropertyEditorUIBlockGridGroupConfigurationElement; + let element: UmbPropertyEditorUIBlockGridGroupConfigurationElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-block-grid-group-configuration></umb-property-editor-ui-block-grid-group-configuration> ` - ); - }); + beforeEach(async () => { + element = await fixture( + html` + <umb-property-editor-ui-block-grid-group-configuration></umb-property-editor-ui-block-grid-group-configuration> + ` + ); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUIBlockGridGroupConfigurationElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUIBlockGridGroupConfigurationElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/manifests.ts index 1d30a7ff22..340b29287d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/manifests.ts @@ -1,13 +1,13 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.BlockGrid.StylesheetPicker', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.BlockGrid.StylesheetPicker', name: 'Block Grid Stylesheet Picker Property Editor UI', - loader: () => import('./property-editor-ui-block-grid-stylesheet-picker.element'), + loader: () => import('./property-editor-ui-block-grid-stylesheet-picker.element.js'), meta: { label: 'Block Grid Stylesheet Picker', - propertyEditorModel: '', + propertyEditorAlias: '', icon: 'umb:autofill', group: 'blocks', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/property-editor-ui-block-grid-stylesheet-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/property-editor-ui-block-grid-stylesheet-picker.element.ts index 77b82700c3..fd2513fc1b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/property-editor-ui-block-grid-stylesheet-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/property-editor-ui-block-grid-stylesheet-picker.element.ts @@ -1,6 +1,5 @@ -import { html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/property-editor-ui-block-grid-stylesheet-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/property-editor-ui-block-grid-stylesheet-picker.stories.ts index e66213c7f6..b267137b6a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/property-editor-ui-block-grid-stylesheet-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/property-editor-ui-block-grid-stylesheet-picker.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIBlockGridStylesheetPickerElement } from './property-editor-ui-block-grid-stylesheet-picker.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIBlockGridStylesheetPickerElement } from './property-editor-ui-block-grid-stylesheet-picker.element'; -import './property-editor-ui-block-grid-stylesheet-picker.element'; +import './property-editor-ui-block-grid-stylesheet-picker.element.js'; export default { title: 'Property Editor UIs/Block Grid Stylesheet Picker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/property-editor-ui-block-grid-stylesheet-picker.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/property-editor-ui-block-grid-stylesheet-picker.test.ts index 36dcddf30f..38d83b7886 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/property-editor-ui-block-grid-stylesheet-picker.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/property-editor-ui-block-grid-stylesheet-picker.test.ts @@ -1,21 +1,23 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIBlockGridStylesheetPickerElement } from './property-editor-ui-block-grid-stylesheet-picker.element'; +import { UmbPropertyEditorUIBlockGridStylesheetPickerElement } from './property-editor-ui-block-grid-stylesheet-picker.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIBlockGridStylesheetPickerElement', () => { - let element: UmbPropertyEditorUIBlockGridStylesheetPickerElement; + let element: UmbPropertyEditorUIBlockGridStylesheetPickerElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-block-grid-stylesheet-picker></umb-property-editor-ui-block-grid-stylesheet-picker> ` - ); - }); + beforeEach(async () => { + element = await fixture( + html` + <umb-property-editor-ui-block-grid-stylesheet-picker></umb-property-editor-ui-block-grid-stylesheet-picker> + ` + ); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUIBlockGridStylesheetPickerElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUIBlockGridStylesheetPickerElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/manifests.ts index 81fba87556..78e2890e1c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/manifests.ts @@ -1,43 +1,43 @@ -import { manifest as blockConfiguration } from './config/block-configuration/manifests'; -import { manifest as groupConfiguration } from './config/group-configuration/manifests'; -import { manifest as stylesheetPicker } from './config/stylesheet-picker/manifests'; -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import { manifest as blockConfiguration } from './config/block-configuration/manifests.js'; +import { manifest as groupConfiguration } from './config/group-configuration/manifests.js'; +import { manifest as stylesheetPicker } from './config/stylesheet-picker/manifests.js'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.BlockGrid', +const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.BlockGrid', name: 'Block Grid Property Editor UI', - loader: () => import('./property-editor-ui-block-grid.element'), + loader: () => import('./property-editor-ui-block-grid.element.js'), meta: { label: 'Block Grid', - propertyEditorModel: 'Umbraco.BlockGrid', + propertyEditorAlias: 'Umbraco.BlockGrid', icon: 'umb:icon-layout', group: 'richContent', - config: { + settings: { properties: [ { alias: 'useLiveEditing', label: 'Live editing mode', description: 'Live update content when editing in overlay', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, { alias: 'maxPropertyWidth', label: 'Editor width', description: 'Optional css overwrite. (example: 1200px or 100%)', - propertyEditorUI: 'Umb.PropertyEditorUI.TextBox', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.TextBox', }, { alias: 'createLabel', label: 'Create Button Label', description: 'Override the label text for adding a new block, Example Add Widget', - propertyEditorUI: 'Umb.PropertyEditorUI.TextBox', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.TextBox', }, ], }, }, }; -const config: Array<ManifestPropertyEditorUI> = [blockConfiguration, groupConfiguration, stylesheetPicker]; +const config: Array<ManifestPropertyEditorUi> = [blockConfiguration, groupConfiguration, stylesheetPicker]; export const manifests = [manifest, ...config]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/property-editor-ui-block-grid-inner-test.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/property-editor-ui-block-grid-inner-test.element.ts index 97e307d8fa..d482a6fae2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/property-editor-ui-block-grid-inner-test.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/property-editor-ui-block-grid-inner-test.element.ts @@ -1,9 +1,7 @@ -import { html } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import type { UmbRoute } from '@umbraco-cms/backoffice/router'; +import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/internal/router'; +import type { UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent, UmbRoute } from '@umbraco-cms/backoffice/router'; /** * @element umb-property-editor-ui-block-grid-inner-test @@ -24,7 +22,7 @@ export class UmbPropertyEditorUIBlockGridInnerTestElement extends UmbLitElement { path: 'inner-1', component: () => { - return import('./property-editor-ui-block-grid-inner-test.element'); + return import('./property-editor-ui-block-grid-inner-test.element.js'); }, setup: (component) => { if (component instanceof HTMLElement) { @@ -35,7 +33,7 @@ export class UmbPropertyEditorUIBlockGridInnerTestElement extends UmbLitElement { path: 'inner-2', component: () => { - return import('./property-editor-ui-block-grid-inner-test.element'); + return import('./property-editor-ui-block-grid-inner-test.element.js'); }, setup: (component) => { if (component instanceof HTMLElement) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/property-editor-ui-block-grid.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/property-editor-ui-block-grid.element.ts index ffb64ac61f..fcf5619117 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/property-editor-ui-block-grid.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/property-editor-ui-block-grid.element.ts @@ -1,14 +1,12 @@ -import { html } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { UMB_WORKSPACE_VARIANT_CONTEXT_TOKEN } from '../../../components/workspace/workspace-variant/workspace-variant.context'; -import { UMB_WORKSPACE_PROPERTY_CONTEXT_TOKEN } from '../../../components/workspace-property/workspace-property.context'; +import { UMB_WORKSPACE_VARIANT_CONTEXT_TOKEN } from '../../../workspace/workspace-variant/workspace-variant.context.js'; +import { UMB_WORKSPACE_PROPERTY_CONTEXT_TOKEN } from '../../../workspace/workspace-property/workspace-property.context.js'; +import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; -import type { UmbRoute } from '@umbraco-cms/backoffice/router'; -import type { UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/internal/router'; +import type { UmbRoute, UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-block-grid @@ -53,7 +51,7 @@ export class UmbPropertyEditorUIBlockGridElement extends UmbLitElement implement { path: 'modal-1', component: () => { - return import('./property-editor-ui-block-grid-inner-test.element'); + return import('./property-editor-ui-block-grid-inner-test.element.js'); }, setup: (component) => { if (component instanceof HTMLElement) { @@ -64,7 +62,7 @@ export class UmbPropertyEditorUIBlockGridElement extends UmbLitElement implement { path: 'modal-2', component: () => { - return import('./property-editor-ui-block-grid-inner-test.element'); + return import('./property-editor-ui-block-grid-inner-test.element.js'); }, setup: (component) => { if (component instanceof HTMLElement) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/property-editor-ui-block-grid.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/property-editor-ui-block-grid.stories.ts index 2e2536347b..c8e7db4f35 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/property-editor-ui-block-grid.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/property-editor-ui-block-grid.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIBlockGridElement } from './property-editor-ui-block-grid.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIBlockGridElement } from './property-editor-ui-block-grid.element'; -import './property-editor-ui-block-grid.element'; +import './property-editor-ui-block-grid.element.js'; export default { title: 'Property Editor UIs/Block Grid', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/property-editor-ui-block-grid.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/property-editor-ui-block-grid.test.ts index 370f9431e2..f614a6fded 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/property-editor-ui-block-grid.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-grid/property-editor-ui-block-grid.test.ts @@ -1,21 +1,19 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIBlockGridElement } from './property-editor-ui-block-grid.element'; +import { UmbPropertyEditorUIBlockGridElement } from './property-editor-ui-block-grid.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIBlockGridElement', () => { - let element: UmbPropertyEditorUIBlockGridElement; + let element: UmbPropertyEditorUIBlockGridElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-block-grid></umb-property-editor-ui-block-grid> ` - ); - }); + beforeEach(async () => { + element = await fixture(html` <umb-property-editor-ui-block-grid></umb-property-editor-ui-block-grid> `); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUIBlockGridElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUIBlockGridElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/config/block-configuration/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/config/block-configuration/manifests.ts index b87561c3b5..8580adc8fe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/config/block-configuration/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/config/block-configuration/manifests.ts @@ -1,13 +1,13 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.BlockList.BlockConfiguration', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.BlockList.BlockConfiguration', name: 'Block List Block Configuration Property Editor UI', - loader: () => import('./property-editor-ui-block-list-block-configuration.element'), + loader: () => import('./property-editor-ui-block-list-block-configuration.element.js'), meta: { label: 'Block List Block Configuration', - propertyEditorModel: '', + propertyEditorAlias: '', icon: 'umb:autofill', group: 'common', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/config/block-configuration/property-editor-ui-block-list-block-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/config/block-configuration/property-editor-ui-block-list-block-configuration.element.ts index d60f66d585..3605595e28 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/config/block-configuration/property-editor-ui-block-list-block-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/config/block-configuration/property-editor-ui-block-list-block-configuration.element.ts @@ -1,6 +1,5 @@ -import { html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/config/block-configuration/property-editor-ui-block-list-block-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/config/block-configuration/property-editor-ui-block-list-block-configuration.stories.ts index d4e2142c6b..67098c15de 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/config/block-configuration/property-editor-ui-block-list-block-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/config/block-configuration/property-editor-ui-block-list-block-configuration.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIBlockListBlockConfigurationElement } from './property-editor-ui-block-list-block-configuration.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIBlockListBlockConfigurationElement } from './property-editor-ui-block-list-block-configuration.element'; -import './property-editor-ui-block-list-block-configuration.element'; +import './property-editor-ui-block-list-block-configuration.element.js'; export default { title: 'Property Editor UIs/Block List Block Configuration', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/config/block-configuration/property-editor-ui-block-list-block-configuration.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/config/block-configuration/property-editor-ui-block-list-block-configuration.test.ts index 52ebebdceb..efd652ff62 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/config/block-configuration/property-editor-ui-block-list-block-configuration.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/config/block-configuration/property-editor-ui-block-list-block-configuration.test.ts @@ -1,21 +1,23 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIBlockListBlockConfigurationElement } from './property-editor-ui-block-list-block-configuration.element'; +import { UmbPropertyEditorUIBlockListBlockConfigurationElement } from './property-editor-ui-block-list-block-configuration.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIBlockListBlockConfigurationElement', () => { - let element: UmbPropertyEditorUIBlockListBlockConfigurationElement; + let element: UmbPropertyEditorUIBlockListBlockConfigurationElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-block-list-block-configuration></umb-property-editor-ui-block-list-block-configuration> ` - ); - }); + beforeEach(async () => { + element = await fixture( + html` + <umb-property-editor-ui-block-list-block-configuration></umb-property-editor-ui-block-list-block-configuration> + ` + ); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUIBlockListBlockConfigurationElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUIBlockListBlockConfigurationElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/manifests.ts index ff1a823fe4..f8a87af670 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/manifests.ts @@ -1,43 +1,43 @@ -import { manifest as blockConfiguration } from './config/block-configuration/manifests'; -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import { manifest as blockConfiguration } from './config/block-configuration/manifests.js'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.BlockList', +const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.BlockList', name: 'Block List Property Editor UI', - loader: () => import('./property-editor-ui-block-list.element'), + loader: () => import('./property-editor-ui-block-list.element.js'), meta: { label: 'Block List', - propertyEditorModel: 'Umbraco.BlockList', + propertyEditorAlias: 'Umbraco.BlockList', icon: 'umb:thumbnail-list', group: 'lists', - config: { + settings: { properties: [ { alias: 'useSingleBlockMode', label: 'Single block mode', description: 'When in Single block mode, the output will be BlockListItem<>, instead of BlockListModel.\n\n**NOTE:**\nSingle block mode requires a maximum of one available block, and an amount set to minimum 1 and maximum 1 blocks.', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, { alias: 'useLiveEditing', label: 'Live editing mode', description: 'Live editing in editor overlays for live updated custom views or labels using custom expression.', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, { alias: 'useInlineEditingAsDefault', label: 'Inline editing mode', description: 'Use the inline editor as the default block view.', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, { alias: 'maxPropertyWidth', label: 'Property editor width', description: 'Optional CSS override, example: 800px or 100%', - propertyEditorUI: 'Umb.PropertyEditorUI.TextBox', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.TextBox', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/property-editor-ui-block-list.element.ts index eecf325b63..8adc4ba290 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/property-editor-ui-block-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/property-editor-ui-block-list.element.ts @@ -1,9 +1,8 @@ -import { html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-block-list diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/property-editor-ui-block-list.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/property-editor-ui-block-list.stories.ts index 93b3d74e03..e1fb4b9cc3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/property-editor-ui-block-list.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/property-editor-ui-block-list.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIBlockListElement } from './property-editor-ui-block-list.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIBlockListElement } from './property-editor-ui-block-list.element'; -import './property-editor-ui-block-list.element'; +import './property-editor-ui-block-list.element.js'; export default { title: 'Property Editor UIs/Block List', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/property-editor-ui-block-list.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/property-editor-ui-block-list.test.ts index 29094233f0..76fa78f468 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/property-editor-ui-block-list.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/block-list/property-editor-ui-block-list.test.ts @@ -1,5 +1,5 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIBlockListElement } from './property-editor-ui-block-list.element'; +import { UmbPropertyEditorUIBlockListElement } from './property-editor-ui-block-list.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIBlockListElement', () => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/checkbox-list/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/checkbox-list/manifests.ts index f2b85406ed..df2ad411a2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/checkbox-list/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/checkbox-list/manifests.ts @@ -1,22 +1,22 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.CheckboxList', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.CheckboxList', name: 'Checkbox List Property Editor UI', - loader: () => import('./property-editor-ui-checkbox-list.element'), + loader: () => import('./property-editor-ui-checkbox-list.element.js'), meta: { label: 'Checkbox List', - propertyEditorModel: 'Umbraco.CheckboxList', + propertyEditorAlias: 'Umbraco.CheckboxList', icon: 'umb:bulleted-list', group: 'lists', - config: { + settings: { properties: [ { alias: 'items', label: 'Add option', description: 'Add, remove or sort options for the list.', - propertyEditorUI: 'Umb.PropertyEditorUI.MultipleTextString', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.MultipleTextString', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts index b6aef85d88..be4677381a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts @@ -1,11 +1,9 @@ -import { html } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { UmbInputCheckboxListElement } from '../../../components/input-checkbox-list/input-checkbox-list.element'; +import { UmbInputCheckboxListElement } from '../../../components/input-checkbox-list/input-checkbox-list.element.js'; +import { html , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { DataTypePropertyPresentationModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-checkbox-list diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/checkbox-list/property-editor-ui-checkbox-list.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/checkbox-list/property-editor-ui-checkbox-list.stories.ts index 123de52638..b674a231bb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/checkbox-list/property-editor-ui-checkbox-list.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/checkbox-list/property-editor-ui-checkbox-list.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUICheckboxListElement } from './property-editor-ui-checkbox-list.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUICheckboxListElement } from './property-editor-ui-checkbox-list.element'; -import './property-editor-ui-checkbox-list.element'; +import './property-editor-ui-checkbox-list.element.js'; export default { title: 'Property Editor UIs/Checkbox List', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/checkbox-list/property-editor-ui-checkbox-list.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/checkbox-list/property-editor-ui-checkbox-list.test.ts index 727175c5fe..a97844171f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/checkbox-list/property-editor-ui-checkbox-list.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/checkbox-list/property-editor-ui-checkbox-list.test.ts @@ -1,5 +1,5 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUICheckboxListElement } from './property-editor-ui-checkbox-list.element'; +import { UmbPropertyEditorUICheckboxListElement } from './property-editor-ui-checkbox-list.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUICheckboxListElement', () => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/manifests.ts index 73e5989ab2..aa9ba88bcc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/manifests.ts @@ -1,13 +1,13 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.CollectionView.BulkActionPermissions', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.CollectionView.BulkActionPermissions', name: 'Collection View Bulk Action Permissions Property Editor UI', - loader: () => import('./property-editor-ui-collection-view-bulk-action-permissions.element'), + loader: () => import('./property-editor-ui-collection-view-bulk-action-permissions.element.js'), meta: { label: 'Collection View Bulk Action Permissions', - propertyEditorModel: '', + propertyEditorAlias: '', icon: 'umb:autofill', group: 'lists', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/property-editor-ui-collection-view-bulk-action-permissions.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/property-editor-ui-collection-view-bulk-action-permissions.element.ts index ba030c9aed..b5fadf32fa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/property-editor-ui-collection-view-bulk-action-permissions.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/property-editor-ui-collection-view-bulk-action-permissions.element.ts @@ -1,6 +1,5 @@ -import { html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/property-editor-ui-collection-view-bulk-action-permissions.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/property-editor-ui-collection-view-bulk-action-permissions.stories.ts index c8d47e30af..d9756078b5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/property-editor-ui-collection-view-bulk-action-permissions.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/property-editor-ui-collection-view-bulk-action-permissions.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUICollectionViewBulkActionPermissionsElement } from './property-editor-ui-collection-view-bulk-action-permissions.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUICollectionViewBulkActionPermissionsElement } from './property-editor-ui-collection-view-bulk-action-permissions.element'; -import './property-editor-ui-collection-view-bulk-action-permissions.element'; +import './property-editor-ui-collection-view-bulk-action-permissions.element.js'; export default { title: 'Property Editor UIs/Collection View Bulk Action Permissions', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/property-editor-ui-collection-view-bulk-action-permissions.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/property-editor-ui-collection-view-bulk-action-permissions.test.ts index 969df9f36b..0b0dccec0d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/property-editor-ui-collection-view-bulk-action-permissions.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/property-editor-ui-collection-view-bulk-action-permissions.test.ts @@ -1,21 +1,23 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUICollectionViewBulkActionPermissionsElement } from './property-editor-ui-collection-view-bulk-action-permissions.element'; +import { UmbPropertyEditorUICollectionViewBulkActionPermissionsElement } from './property-editor-ui-collection-view-bulk-action-permissions.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUICollectionViewBulkActionPermissionsElement', () => { - let element: UmbPropertyEditorUICollectionViewBulkActionPermissionsElement; + let element: UmbPropertyEditorUICollectionViewBulkActionPermissionsElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-collection-view-bulk-action-permissions></umb-property-editor-ui-collection-view-bulk-action-permissions> ` - ); - }); + beforeEach(async () => { + element = await fixture( + html` + <umb-property-editor-ui-collection-view-bulk-action-permissions></umb-property-editor-ui-collection-view-bulk-action-permissions> + ` + ); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUICollectionViewBulkActionPermissionsElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUICollectionViewBulkActionPermissionsElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/column-configuration/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/column-configuration/manifests.ts index 2f949e08c9..971d393ac9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/column-configuration/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/column-configuration/manifests.ts @@ -1,13 +1,13 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.CollectionView.ColumnConfiguration', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.CollectionView.ColumnConfiguration', name: 'Collection View Column Configuration Property Editor UI', - loader: () => import('./property-editor-ui-collection-view-column-configuration.element'), + loader: () => import('./property-editor-ui-collection-view-column-configuration.element.js'), meta: { label: 'Collection View Column Configuration', - propertyEditorModel: '', + propertyEditorAlias: '', icon: 'umb:autofill', group: 'lists', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/column-configuration/property-editor-ui-collection-view-column-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/column-configuration/property-editor-ui-collection-view-column-configuration.element.ts index fae9d41d19..d89829ba6d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/column-configuration/property-editor-ui-collection-view-column-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/column-configuration/property-editor-ui-collection-view-column-configuration.element.ts @@ -1,6 +1,5 @@ -import { html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/column-configuration/property-editor-ui-collection-view-column-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/column-configuration/property-editor-ui-collection-view-column-configuration.stories.ts index 440113392e..44361a200d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/column-configuration/property-editor-ui-collection-view-column-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/column-configuration/property-editor-ui-collection-view-column-configuration.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUICollectionViewColumnConfigurationElement } from './property-editor-ui-collection-view-column-configuration.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUICollectionViewColumnConfigurationElement } from './property-editor-ui-collection-view-column-configuration.element'; -import './property-editor-ui-collection-view-column-configuration.element'; +import './property-editor-ui-collection-view-column-configuration.element.js'; export default { title: 'Property Editor UIs/Collection View Column Configuration', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/column-configuration/property-editor-ui-collection-view-column-configuration.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/column-configuration/property-editor-ui-collection-view-column-configuration.test.ts index bf93111b0f..e1c71e27cd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/column-configuration/property-editor-ui-collection-view-column-configuration.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/column-configuration/property-editor-ui-collection-view-column-configuration.test.ts @@ -1,21 +1,23 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUICollectionViewColumnConfigurationElement } from './property-editor-ui-collection-view-column-configuration.element'; +import { UmbPropertyEditorUICollectionViewColumnConfigurationElement } from './property-editor-ui-collection-view-column-configuration.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUICollectionViewColumnConfigurationElement', () => { - let element: UmbPropertyEditorUICollectionViewColumnConfigurationElement; + let element: UmbPropertyEditorUICollectionViewColumnConfigurationElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-collection-view-column-configuration></umb-property-editor-ui-collection-view-column-configuration> ` - ); - }); + beforeEach(async () => { + element = await fixture( + html` + <umb-property-editor-ui-collection-view-column-configuration></umb-property-editor-ui-collection-view-column-configuration> + ` + ); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUICollectionViewColumnConfigurationElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUICollectionViewColumnConfigurationElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/layout-configuration/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/layout-configuration/manifests.ts index 7048bf7a16..c24fa89c2c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/layout-configuration/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/layout-configuration/manifests.ts @@ -1,13 +1,13 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.CollectionView.LayoutConfiguration', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.CollectionView.LayoutConfiguration', name: 'Collection View Column Configuration Property Editor UI', - loader: () => import('./property-editor-ui-collection-view-layout-configuration.element'), + loader: () => import('./property-editor-ui-collection-view-layout-configuration.element.js'), meta: { label: 'Collection View Layout Configuration', - propertyEditorModel: '', + propertyEditorAlias: '', icon: 'umb:autofill', group: 'lists', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.element.ts index dcb1308cab..c2e3ccc6d8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.element.ts @@ -1,6 +1,5 @@ -import { html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.stories.ts index 745c9c6fa8..5b977568a8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUICollectionViewLayoutConfigurationElement } from './property-editor-ui-collection-view-layout-configuration.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUICollectionViewLayoutConfigurationElement } from './property-editor-ui-collection-view-layout-configuration.element'; -import './property-editor-ui-collection-view-layout-configuration.element'; +import './property-editor-ui-collection-view-layout-configuration.element.js'; export default { title: 'Property Editor UIs/Collection View Layout Configuration', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.test.ts index 0c2095d0df..3e305054c8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.test.ts @@ -1,21 +1,23 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUICollectionViewLayoutConfigurationElement } from './property-editor-ui-collection-view-layout-configuration.element'; +import { UmbPropertyEditorUICollectionViewLayoutConfigurationElement } from './property-editor-ui-collection-view-layout-configuration.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUICollectionViewLayoutConfigurationElement', () => { - let element: UmbPropertyEditorUICollectionViewLayoutConfigurationElement; + let element: UmbPropertyEditorUICollectionViewLayoutConfigurationElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-collection-view-layout-configuration></umb-property-editor-ui-collection-view-layout-configuration> ` - ); - }); + beforeEach(async () => { + element = await fixture( + html` + <umb-property-editor-ui-collection-view-layout-configuration></umb-property-editor-ui-collection-view-layout-configuration> + ` + ); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUICollectionViewLayoutConfigurationElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUICollectionViewLayoutConfigurationElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/order-by/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/order-by/manifests.ts index 86527e4627..9bd87faddb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/order-by/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/order-by/manifests.ts @@ -1,13 +1,13 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.CollectionView.OrderBy', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.CollectionView.OrderBy', name: 'Collection View Column Configuration Property Editor UI', - loader: () => import('./property-editor-ui-collection-view-order-by.element'), + loader: () => import('./property-editor-ui-collection-view-order-by.element.js'), meta: { label: 'Collection View Order By', - propertyEditorModel: '', + propertyEditorAlias: '', icon: 'umb:autofill', group: 'lists', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.element.ts index 7ab2384f7f..338ea1bcd0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.element.ts @@ -1,6 +1,5 @@ -import { html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.stories.ts index f599980509..1fa381b92a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUICollectionViewOrderByElement } from './property-editor-ui-collection-view-order-by.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUICollectionViewOrderByElement } from './property-editor-ui-collection-view-order-by.element'; -import './property-editor-ui-collection-view-order-by.element'; +import './property-editor-ui-collection-view-order-by.element.js'; export default { title: 'Property Editor UIs/Collection View Order By', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.test.ts index 2fd6fa348b..e76f78fa58 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.test.ts @@ -1,21 +1,21 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUICollectionViewOrderByElement } from './property-editor-ui-collection-view-order-by.element'; +import { UmbPropertyEditorUICollectionViewOrderByElement } from './property-editor-ui-collection-view-order-by.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUICollectionViewOrderByElement', () => { - let element: UmbPropertyEditorUICollectionViewOrderByElement; + let element: UmbPropertyEditorUICollectionViewOrderByElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-collection-view-order-by></umb-property-editor-ui-collection-view-order-by> ` - ); - }); + beforeEach(async () => { + element = await fixture( + html` <umb-property-editor-ui-collection-view-order-by></umb-property-editor-ui-collection-view-order-by> ` + ); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUICollectionViewOrderByElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUICollectionViewOrderByElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/manifests.ts index 1ae688c830..99f20c15d9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/manifests.ts @@ -1,57 +1,57 @@ -import { manifest as bulkActionPermissions } from './config/bulk-action-permissions/manifests'; -import { manifest as columnConfiguration } from './config/column-configuration/manifests'; -import { manifest as layoutConfiguration } from './config/layout-configuration/manifests'; -import { manifest as orderBy } from './config/order-by/manifests'; -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import { manifest as bulkActionPermissions } from './config/bulk-action-permissions/manifests.js'; +import { manifest as columnConfiguration } from './config/column-configuration/manifests.js'; +import { manifest as layoutConfiguration } from './config/layout-configuration/manifests.js'; +import { manifest as orderBy } from './config/order-by/manifests.js'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.CollectionView', +const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.CollectionView', name: 'Collection View Property Editor UI', - loader: () => import('./property-editor-ui-collection-view.element'), + loader: () => import('./property-editor-ui-collection-view.element.js'), meta: { label: 'Collection View', - propertyEditorModel: 'Umbraco.ListView', + propertyEditorAlias: 'Umbraco.ListView', icon: 'umb:bulleted-list', group: 'lists', - config: { + settings: { properties: [ { alias: 'layouts', label: 'Layouts', description: 'The properties that will be displayed for each column', - propertyEditorUI: 'Umb.PropertyEditorUI.CollectionView.LayoutConfiguration', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.CollectionView.LayoutConfiguration', }, { alias: 'icon', label: 'Content app icon', description: 'The icon of the listview content app', - propertyEditorUI: 'Umb.PropertyEditorUI.IconPicker', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.IconPicker', }, { alias: 'tabName', label: 'Content app name', description: 'The name of the listview content app (default if empty: Child Items)', - propertyEditorUI: 'Umb.PropertyEditorUI.TextBox', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.TextBox', }, { alias: 'showContentFirst', label: 'Show Content App First', description: 'Enable this to show the content app by default instead of the list view app', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, { alias: 'useInfiniteEditor', label: 'Edit in Infinite Editor', description: 'Enable this to use infinite editing to edit the content of the list view', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, ], }, }, }; -const config: Array<ManifestPropertyEditorUI> = [ +const config: Array<ManifestPropertyEditorUi> = [ bulkActionPermissions, columnConfiguration, layoutConfiguration, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/property-editor-ui-collection-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/property-editor-ui-collection-view.element.ts index 51aa6bf63e..19e1a7460f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/property-editor-ui-collection-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/property-editor-ui-collection-view.element.ts @@ -1,6 +1,5 @@ -import { html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/property-editor-ui-collection-view.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/property-editor-ui-collection-view.stories.ts index 69e743a8ab..ae8f96d923 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/property-editor-ui-collection-view.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/property-editor-ui-collection-view.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUICollectionViewElement } from './property-editor-ui-collection-view.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUICollectionViewElement } from './property-editor-ui-collection-view.element'; -import './property-editor-ui-collection-view.element'; +import './property-editor-ui-collection-view.element.js'; export default { title: 'Property Editor UIs/Collection View', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/property-editor-ui-collection-view.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/property-editor-ui-collection-view.test.ts index 4bbefb1018..1f580e0218 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/property-editor-ui-collection-view.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/collection-view/property-editor-ui-collection-view.test.ts @@ -1,21 +1,19 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUICollectionViewElement } from './property-editor-ui-collection-view.element'; +import { UmbPropertyEditorUICollectionViewElement } from './property-editor-ui-collection-view.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUICollectionViewElement', () => { - let element: UmbPropertyEditorUICollectionViewElement; + let element: UmbPropertyEditorUICollectionViewElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-collection-view></umb-property-editor-ui-collection-view> ` - ); - }); + beforeEach(async () => { + element = await fixture(html` <umb-property-editor-ui-collection-view></umb-property-editor-ui-collection-view> `); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUICollectionViewElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUICollectionViewElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/color-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/color-picker/manifests.ts index 8de09cac93..d64117c7dc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/color-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/color-picker/manifests.ts @@ -1,13 +1,13 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.ColorPicker', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.ColorPicker', name: 'Color Picker Property Editor UI', - loader: () => import('./property-editor-ui-color-picker.element'), + loader: () => import('./property-editor-ui-color-picker.element.js'), meta: { label: 'Color Picker', - propertyEditorModel: 'Umbraco.ColorPicker', + propertyEditorAlias: 'Umbraco.ColorPicker', icon: 'umb:colorpicker', group: 'pickers', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/color-picker/property-editor-ui-color-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/color-picker/property-editor-ui-color-picker.element.ts index 99daa8ea71..80a813a973 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/color-picker/property-editor-ui-color-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/color-picker/property-editor-ui-color-picker.element.ts @@ -1,11 +1,9 @@ -import { html } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { UUIColorSwatchesEvent } from '@umbraco-ui/uui'; +import { html , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles , UUIColorSwatchesEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbSwatchDetails } from '@umbraco-cms/backoffice/models'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-color-picker @@ -13,7 +11,7 @@ import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type @customElement('umb-property-editor-ui-color-picker') export class UmbPropertyEditorUIColorPickerElement extends UmbLitElement implements UmbPropertyEditorExtensionElement { #defaultShowLabels = false; - + @property() value = ''; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/color-picker/property-editor-ui-color-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/color-picker/property-editor-ui-color-picker.stories.ts index 64f562c20c..ef3382dcfa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/color-picker/property-editor-ui-color-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/color-picker/property-editor-ui-color-picker.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIColorPickerElement } from './property-editor-ui-color-picker.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIColorPickerElement } from './property-editor-ui-color-picker.element'; -import './property-editor-ui-color-picker.element'; +import './property-editor-ui-color-picker.element.js'; export default { title: 'Property Editor UIs/Color Picker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/color-picker/property-editor-ui-color-picker.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/color-picker/property-editor-ui-color-picker.test.ts index 2d896f684d..c5d2fba1b1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/color-picker/property-editor-ui-color-picker.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/color-picker/property-editor-ui-color-picker.test.ts @@ -1,5 +1,5 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIColorPickerElement } from './property-editor-ui-color-picker.element'; +import { UmbPropertyEditorUIColorPickerElement } from './property-editor-ui-color-picker.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIColorPickerElement', () => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/date-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/date-picker/manifests.ts index 65443ab37b..c967960016 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/date-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/date-picker/manifests.ts @@ -1,29 +1,22 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.DatePicker', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.DatePicker', name: 'Date Picker Property Editor UI', - loader: () => import('./property-editor-ui-date-picker.element'), + loader: () => import('./property-editor-ui-date-picker.element.js'), meta: { label: 'Date Picker', - propertyEditorModel: 'Umbraco.DateTime', + propertyEditorAlias: 'Umbraco.DateTime', icon: 'umb:time', group: 'pickers', - config: { + settings: { properties: [ { alias: 'format', label: 'Date format', description: 'If left empty then the format is YYYY-MM-DD', - propertyEditorUI: 'Umb.PropertyEditorUI.TextBox', - }, - { - alias: 'offsetTime', - label: 'Offset time', - description: - 'When enabled the time displayed will be offset with the servers timezone, this is useful for scenarios like scheduled publishing when an editor is in a different timezone than the hosted server', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.TextBox', }, ], defaultData: [ @@ -31,10 +24,6 @@ export const manifest: ManifestPropertyEditorUI = { alias: 'format', value: 'YYYY-MM-DD HH:mm:ss', }, - { - alias: 'offsetTime', - value: false, - }, ], }, }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/date-picker/property-editor-ui-date-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/date-picker/property-editor-ui-date-picker.element.ts index 59b583e105..26cde78939 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/date-picker/property-editor-ui-date-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/date-picker/property-editor-ui-date-picker.element.ts @@ -1,11 +1,9 @@ -import { html } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { InputType } from '@umbraco-ui/uui'; -import { UmbPropertyValueChangeEvent } from '../..'; +import { UmbPropertyValueChangeEvent } from '../../index.js'; +import { html , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles , InputType } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-date-picker diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/date-picker/property-editor-ui-date-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/date-picker/property-editor-ui-date-picker.stories.ts index 10f28078cd..35dccfc20c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/date-picker/property-editor-ui-date-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/date-picker/property-editor-ui-date-picker.stories.ts @@ -1,21 +1,21 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIDatePickerElement } from './property-editor-ui-date-picker.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIDatePickerElement } from './property-editor-ui-date-picker.element'; -import './property-editor-ui-date-picker.element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import './property-editor-ui-date-picker.element.js'; +import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; export default { title: 'Property Editor UIs/Date Picker', component: 'umb-property-editor-ui-date-picker', id: 'umb-property-editor-ui-date-picker', args: { - config: [ + config: new UmbDataTypePropertyCollection([ { alias: 'format', value: 'YYYY-MM-DD HH:mm:ss', }, - ], + ]), }, } as Meta<UmbPropertyEditorUIDatePickerElement>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/date-picker/property-editor-ui-date-picker.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/date-picker/property-editor-ui-date-picker.test.ts index 0120d829a4..c4f172831b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/date-picker/property-editor-ui-date-picker.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/date-picker/property-editor-ui-date-picker.test.ts @@ -1,8 +1,8 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbDateInputElement } from '../../../components/date-input/date-input.element'; -import { UmbPropertyEditorUIDatePickerElement } from './property-editor-ui-date-picker.element'; +import { UmbDateInputElement } from '../../../components/date-input/date-input.element.js'; +import { UmbPropertyEditorUIDatePickerElement } from './property-editor-ui-date-picker.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; describe('UmbPropertyEditorUIDatePickerElement', () => { let element: UmbPropertyEditorUIDatePickerElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/dropdown/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/dropdown/manifests.ts index 27620e1134..39018f8b2f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/dropdown/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/dropdown/manifests.ts @@ -1,26 +1,26 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.Dropdown', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.Dropdown', name: 'Dropdown Property Editor UI', - loader: () => import('./property-editor-ui-dropdown.element'), + loader: () => import('./property-editor-ui-dropdown.element.js'), meta: { label: 'Dropdown', - propertyEditorModel: 'Umbraco.Dropdown', + propertyEditorAlias: 'Umbraco.Dropdown', icon: 'umb:time', group: 'pickers', - config: { + settings: { properties: [ { alias: 'multiple', label: 'Enable multiple choice', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, { alias: 'items', label: 'Add options', - propertyEditorUI: 'Umb.PropertyEditorUI.MultipleTextString', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.MultipleTextString', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/dropdown/property-editor-ui-dropdown.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/dropdown/property-editor-ui-dropdown.element.ts index 084833f86b..e5502c7478 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/dropdown/property-editor-ui-dropdown.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/dropdown/property-editor-ui-dropdown.element.ts @@ -1,9 +1,8 @@ -import { html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-dropdown diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/dropdown/property-editor-ui-dropdown.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/dropdown/property-editor-ui-dropdown.stories.ts index e38867d3a6..741e784ecf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/dropdown/property-editor-ui-dropdown.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/dropdown/property-editor-ui-dropdown.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIDropdownElement } from './property-editor-ui-dropdown.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIDropdownElement } from './property-editor-ui-dropdown.element'; -import './property-editor-ui-dropdown.element'; +import './property-editor-ui-dropdown.element.js'; export default { title: 'Property Editor UIs/Dropdown', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/dropdown/property-editor-ui-dropdown.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/dropdown/property-editor-ui-dropdown.test.ts index c1e45b33ea..e14717c8bf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/dropdown/property-editor-ui-dropdown.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/dropdown/property-editor-ui-dropdown.test.ts @@ -1,21 +1,19 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIDropdownElement } from './property-editor-ui-dropdown.element'; +import { UmbPropertyEditorUIDropdownElement } from './property-editor-ui-dropdown.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIDropdownElement', () => { - let element: UmbPropertyEditorUIDropdownElement; + let element: UmbPropertyEditorUIDropdownElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-dropdown></umb-property-editor-ui-dropdown> ` - ); - }); + beforeEach(async () => { + element = await fixture(html` <umb-property-editor-ui-dropdown></umb-property-editor-ui-dropdown> `); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUIDropdownElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUIDropdownElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/eye-dropper/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/eye-dropper/manifests.ts index df2eae54eb..03ac68fd4a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/eye-dropper/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/eye-dropper/manifests.ts @@ -1,28 +1,28 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.EyeDropper', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.EyeDropper', name: 'Eye Dropper Color Picker Property Editor UI', - loader: () => import('./property-editor-ui-eye-dropper.element'), + loader: () => import('./property-editor-ui-eye-dropper.element.js'), meta: { label: 'Eye Dropper Color Picker', icon: 'umb:colorpicker', group: 'pickers', - propertyEditorModel: 'Umbraco.ColorPicker.EyeDropper', - config: { + propertyEditorAlias: 'Umbraco.ColorPicker.EyeDropper', + settings: { properties: [ { alias: 'showAlpha', label: 'Show alpha', description: 'Allow alpha transparency selection.', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, { alias: 'showPalette', label: 'Show palette', description: 'Show a palette next to the color picker.', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/eye-dropper/property-editor-ui-eye-dropper.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/eye-dropper/property-editor-ui-eye-dropper.element.ts index 6ab62b6248..ee7e085de0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/eye-dropper/property-editor-ui-eye-dropper.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/eye-dropper/property-editor-ui-eye-dropper.element.ts @@ -1,10 +1,8 @@ -import { html } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { UUIColorPickerChangeEvent } from '@umbraco-ui/uui'; +import { html , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles , UUIColorPickerChangeEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-eye-dropper diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/eye-dropper/property-editor-ui-eye-dropper.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/eye-dropper/property-editor-ui-eye-dropper.stories.ts index 6bc8746807..7f82af0c38 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/eye-dropper/property-editor-ui-eye-dropper.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/eye-dropper/property-editor-ui-eye-dropper.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIEyeDropperElement } from './property-editor-ui-eye-dropper.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIEyeDropperElement } from './property-editor-ui-eye-dropper.element'; -import './property-editor-ui-eye-dropper.element'; +import './property-editor-ui-eye-dropper.element.js'; export default { title: 'Property Editor UIs/Eye Dropper', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/eye-dropper/property-editor-ui-eye-dropper.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/eye-dropper/property-editor-ui-eye-dropper.test.ts index 0d0b82596a..f5056dc648 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/eye-dropper/property-editor-ui-eye-dropper.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/eye-dropper/property-editor-ui-eye-dropper.test.ts @@ -1,21 +1,19 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIEyeDropperElement } from './property-editor-ui-eye-dropper.element'; +import { UmbPropertyEditorUIEyeDropperElement } from './property-editor-ui-eye-dropper.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIEyeDropperElement', () => { - let element: UmbPropertyEditorUIEyeDropperElement; + let element: UmbPropertyEditorUIEyeDropperElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-eye-dropper></umb-property-editor-ui-eye-dropper> ` - ); - }); + beforeEach(async () => { + element = await fixture(html` <umb-property-editor-ui-eye-dropper></umb-property-editor-ui-eye-dropper> `); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUIEyeDropperElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUIEyeDropperElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/icon-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/icon-picker/manifests.ts index b10134de6f..bfdfe09949 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/icon-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/icon-picker/manifests.ts @@ -1,13 +1,13 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.IconPicker', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.IconPicker', name: 'Icon Picker Property Editor UI', - loader: () => import('./property-editor-ui-icon-picker.element'), + loader: () => import('./property-editor-ui-icon-picker.element.js'), meta: { label: 'Icon Picker', - propertyEditorModel: 'Umbraco.JSON', + propertyEditorAlias: 'Umbraco.JSON', icon: 'umb:autofill', group: 'common', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts index 7f9edea35d..f44416d188 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/icon-picker/property-editor-ui-icon-picker.element.ts @@ -1,10 +1,9 @@ -import { html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property } from 'lit/decorators.js'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, UMB_ICON_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-icon-picker diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/icon-picker/property-editor-ui-icon-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/icon-picker/property-editor-ui-icon-picker.stories.ts index 81faef2692..3d69a2c355 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/icon-picker/property-editor-ui-icon-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/icon-picker/property-editor-ui-icon-picker.stories.ts @@ -1,9 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbIconPickerModalElement } from '../../../modal/common/icon-picker/icon-picker-modal.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbIconPickerModalElement } from '../../../modals/icon-picker/icon-picker-modal.element'; -import type { UmbPropertyEditorUIIconPickerElement } from './property-editor-ui-icon-picker.element'; -import './property-editor-ui-icon-picker.element'; +import './property-editor-ui-icon-picker.element.js'; export default { title: 'Property Editor UIs/Icon Picker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/icon-picker/property-editor-ui-icon-picker.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/icon-picker/property-editor-ui-icon-picker.test.ts index 63917404d6..c199944f4c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/icon-picker/property-editor-ui-icon-picker.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/icon-picker/property-editor-ui-icon-picker.test.ts @@ -1,5 +1,5 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIIconPickerElement } from './property-editor-ui-icon-picker.element'; +import { UmbPropertyEditorUIIconPickerElement } from './property-editor-ui-icon-picker.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIIconPickerElement', () => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-cropper/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-cropper/manifests.ts index 12c02ee157..8e47b04edf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-cropper/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-cropper/manifests.ts @@ -1,14 +1,14 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.ImageCropper', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.ImageCropper', name: 'Image Cropper Property Editor UI', - loader: () => import('./property-editor-ui-image-cropper.element'), + loader: () => import('./property-editor-ui-image-cropper.element.js'), meta: { label: 'Image Cropper', icon: 'umb:colorpicker', group: 'pickers', - propertyEditorModel: 'Umbraco.ImageCropper', + propertyEditorAlias: 'Umbraco.ImageCropper', }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-cropper/property-editor-ui-image-cropper.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-cropper/property-editor-ui-image-cropper.element.ts index dab941f6d6..74a8991d60 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-cropper/property-editor-ui-image-cropper.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-cropper/property-editor-ui-image-cropper.element.ts @@ -1,9 +1,8 @@ -import { html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-image-cropper diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-cropper/property-editor-ui-image-cropper.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-cropper/property-editor-ui-image-cropper.stories.ts index 2f75d4945a..38824bc373 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-cropper/property-editor-ui-image-cropper.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-cropper/property-editor-ui-image-cropper.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIImageCropperElement } from './property-editor-ui-image-cropper.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIImageCropperElement } from './property-editor-ui-image-cropper.element'; -import './property-editor-ui-image-cropper.element'; +import './property-editor-ui-image-cropper.element.js'; export default { title: 'Property Editor UIs/Image Cropper', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-cropper/property-editor-ui-image-cropper.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-cropper/property-editor-ui-image-cropper.test.ts index c5574bfdad..bd91e22814 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-cropper/property-editor-ui-image-cropper.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-cropper/property-editor-ui-image-cropper.test.ts @@ -1,21 +1,19 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIImageCropperElement } from './property-editor-ui-image-cropper.element'; +import { UmbPropertyEditorUIImageCropperElement } from './property-editor-ui-image-cropper.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIImageCropperElement', () => { - let element: UmbPropertyEditorUIImageCropperElement; + let element: UmbPropertyEditorUIImageCropperElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-image-cropper></umb-property-editor-ui-image-cropper> ` - ); - }); + beforeEach(async () => { + element = await fixture(html` <umb-property-editor-ui-image-cropper></umb-property-editor-ui-image-cropper> `); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUIImageCropperElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUIImageCropperElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-crops-configuration/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-crops-configuration/manifests.ts index 7238ffeb60..8598edfe63 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-crops-configuration/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-crops-configuration/manifests.ts @@ -1,14 +1,14 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.ImageCropsConfiguration', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.ImageCropsConfiguration', name: 'Image Crops Configuration Property Editor UI', - loader: () => import('./property-editor-ui-image-crops-configuration.element'), + loader: () => import('./property-editor-ui-image-crops-configuration.element.js'), meta: { label: 'Image Crops Configuration', icon: 'umb:autofill', group: 'common', - propertyEditorModel: '', + propertyEditorAlias: '', }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-crops-configuration/property-editor-ui-image-crops-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-crops-configuration/property-editor-ui-image-crops-configuration.element.ts index 6ffd3aa822..9b077498ee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-crops-configuration/property-editor-ui-image-crops-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-crops-configuration/property-editor-ui-image-crops-configuration.element.ts @@ -1,9 +1,8 @@ -import { html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-image-crops-configuration diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-crops-configuration/property-editor-ui-image-crops-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-crops-configuration/property-editor-ui-image-crops-configuration.stories.ts index 811330e122..dc39cb14b1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-crops-configuration/property-editor-ui-image-crops-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-crops-configuration/property-editor-ui-image-crops-configuration.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIImageCropsConfigurationElement } from './property-editor-ui-image-crops-configuration.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIImageCropsConfigurationElement } from './property-editor-ui-image-crops-configuration.element'; -import './property-editor-ui-image-crops-configuration.element'; +import './property-editor-ui-image-crops-configuration.element.js'; export default { title: 'Property Editor UIs/Image Crops Configuration', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-crops-configuration/property-editor-ui-image-crops-configuration.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-crops-configuration/property-editor-ui-image-crops-configuration.test.ts index 5fb5a759ca..17c145a242 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-crops-configuration/property-editor-ui-image-crops-configuration.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/image-crops-configuration/property-editor-ui-image-crops-configuration.test.ts @@ -1,21 +1,21 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIImageCropsConfigurationElement } from './property-editor-ui-image-crops-configuration.element'; +import { UmbPropertyEditorUIImageCropsConfigurationElement } from './property-editor-ui-image-crops-configuration.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIImageCropsConfigurationElement', () => { - let element: UmbPropertyEditorUIImageCropsConfigurationElement; + let element: UmbPropertyEditorUIImageCropsConfigurationElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-image-crops-configuration></umb-property-editor-ui-image-crops-configuration> ` - ); - }); + beforeEach(async () => { + element = await fixture( + html` <umb-property-editor-ui-image-crops-configuration></umb-property-editor-ui-image-crops-configuration> ` + ); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUIImageCropsConfigurationElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUIImageCropsConfigurationElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/label/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/label/manifests.ts index f8be9d46e4..a342425827 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/label/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/label/manifests.ts @@ -1,14 +1,14 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.Label', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.Label', name: 'Label Property Editor UI', - loader: () => import('./property-editor-ui-label.element'), + loader: () => import('./property-editor-ui-label.element.js'), meta: { label: 'Label', icon: 'umb:readonly', group: 'pickers', - propertyEditorModel: 'Umbraco.Label', + propertyEditorAlias: 'Umbraco.Label', }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/label/property-editor-ui-label.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/label/property-editor-ui-label.element.ts index aeee096fc9..9ddb77f0c7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/label/property-editor-ui-label.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/label/property-editor-ui-label.element.ts @@ -1,9 +1,8 @@ -import { html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-label diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/label/property-editor-ui-label.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/label/property-editor-ui-label.stories.ts index 77beeb6727..41b814cab6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/label/property-editor-ui-label.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/label/property-editor-ui-label.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUILabelElement } from './property-editor-ui-label.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUILabelElement } from './property-editor-ui-label.element'; -import './property-editor-ui-label.element'; +import './property-editor-ui-label.element.js'; export default { title: 'Property Editor UIs/Label', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/label/property-editor-ui-label.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/label/property-editor-ui-label.test.ts index e5f813c4c9..38a24dc5d1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/label/property-editor-ui-label.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/label/property-editor-ui-label.test.ts @@ -1,21 +1,19 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUILabelElement } from './property-editor-ui-label.element'; +import { UmbPropertyEditorUILabelElement } from './property-editor-ui-label.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUILabelElement', () => { - let element: UmbPropertyEditorUILabelElement; + let element: UmbPropertyEditorUILabelElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-label></umb-property-editor-ui-label> ` - ); - }); + beforeEach(async () => { + element = await fixture(html` <umb-property-editor-ui-label></umb-property-editor-ui-label> `); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUILabelElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUILabelElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/manifests.ts index 007ed81085..8c120ed5fe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/manifests.ts @@ -1,38 +1,38 @@ -import { manifest as colorPicker } from './color-picker/manifests'; -import { manifest as datePicker } from './date-picker/manifests'; -import { manifest as eyeDropper } from './eye-dropper/manifests'; -import { manifest as multiUrlPicker } from './multi-url-picker/manifests'; -import { manifest as overlaySize } from './overlay-size/manifests'; -import { manifests as treePicker } from './tree-picker/manifests'; -import { manifests as textBoxes } from './text-box/manifests'; -import { manifest as dropdown } from './dropdown/manifests'; -import { manifest as multipleTextString } from './multiple-text-string/manifests'; -import { manifest as textArea } from './textarea/manifests'; -import { manifest as slider } from './slider/manifests'; -import { manifest as toggle } from './toggle/manifests'; -import { manifest as markdownEditor } from './markdown-editor/manifests'; -import { manifest as radioButtonList } from './radio-button-list/manifests'; -import { manifest as checkboxList } from './checkbox-list/manifests'; -import { manifests as blockList } from './block-list/manifests'; -import { manifest as numberRange } from './number-range/manifests'; -import { manifest as mediaPicker } from './media-picker/manifests'; -import { manifest as imageCropsConfiguration } from './image-crops-configuration/manifests'; -import { manifest as imageCropper } from './image-cropper/manifests'; -import { manifest as uploadField } from './upload-field/manifests'; -import { manifests as blockGrid } from './block-grid/manifests'; -import { manifest as orderDirection } from './order-direction/manifests'; -import { manifests as collectionView } from './collection-view/manifests'; -import { manifests as tinyMCE } from './tiny-mce/manifests'; -import { manifest as iconPicker } from './icon-picker/manifests'; -import { manifest as label } from './label/manifests'; -import { manifest as valueType } from './value-type/manifests'; -import { manifests as numbers } from './number/manifests'; -import { manifest as userPicker } from './user-picker/manifests'; -import { manifest as memberPicker } from './member-picker/manifests'; -import { manifest as memberGroupPicker } from './member-group-picker/manifests'; -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import { manifest as colorPicker } from './color-picker/manifests.js'; +import { manifest as datePicker } from './date-picker/manifests.js'; +import { manifest as eyeDropper } from './eye-dropper/manifests.js'; +import { manifest as multiUrlPicker } from './multi-url-picker/manifests.js'; +import { manifest as overlaySize } from './overlay-size/manifests.js'; +import { manifests as treePicker } from './tree-picker/manifests.js'; +import { manifests as textBoxes } from './text-box/manifests.js'; +import { manifest as dropdown } from './dropdown/manifests.js'; +import { manifest as multipleTextString } from './multiple-text-string/manifests.js'; +import { manifest as textArea } from './textarea/manifests.js'; +import { manifest as slider } from './slider/manifests.js'; +import { manifest as toggle } from './toggle/manifests.js'; +import { manifest as markdownEditor } from './markdown-editor/manifests.js'; +import { manifest as radioButtonList } from './radio-button-list/manifests.js'; +import { manifest as checkboxList } from './checkbox-list/manifests.js'; +import { manifests as blockList } from './block-list/manifests.js'; +import { manifest as numberRange } from './number-range/manifests.js'; +import { manifest as mediaPicker } from './media-picker/manifests.js'; +import { manifest as imageCropsConfiguration } from './image-crops-configuration/manifests.js'; +import { manifest as imageCropper } from './image-cropper/manifests.js'; +import { manifest as uploadField } from './upload-field/manifests.js'; +import { manifests as blockGrid } from './block-grid/manifests.js'; +import { manifest as orderDirection } from './order-direction/manifests.js'; +import { manifests as collectionView } from './collection-view/manifests.js'; +import { manifests as tinyMCE } from './tiny-mce/manifests.js'; +import { manifest as iconPicker } from './icon-picker/manifests.js'; +import { manifest as label } from './label/manifests.js'; +import { manifest as valueType } from './value-type/manifests.js'; +import { manifests as numbers } from './number/manifests.js'; +import { manifest as userPicker } from './user-picker/manifests.js'; +import { manifest as memberPicker } from './member-picker/manifests.js'; +import { manifest as memberGroupPicker } from './member-group-picker/manifests.js'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifests: Array<ManifestPropertyEditorUI> = [ +export const manifests: Array<ManifestPropertyEditorUi> = [ colorPicker, datePicker, eyeDropper, @@ -66,15 +66,15 @@ export const manifests: Array<ManifestPropertyEditorUI> = [ ...collectionView, ...tinyMCE, { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.Number', + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.Number', name: 'Number Property Editor UI', - loader: () => import('./number/property-editor-ui-number.element'), + loader: () => import('./number/property-editor-ui-number.element.js'), meta: { label: 'Number', icon: 'umb:autofill', group: 'common', - propertyEditorModel: 'Umbraco.Integer', + propertyEditorAlias: 'Umbraco.Integer', }, }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/markdown-editor/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/markdown-editor/manifests.ts index fc4fd76e84..8fb1db4358 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/markdown-editor/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/markdown-editor/manifests.ts @@ -1,34 +1,34 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.MarkdownEditor', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.MarkdownEditor', name: 'Markdown Editor Property Editor UI', - loader: () => import('./property-editor-ui-markdown-editor.element'), + loader: () => import('./property-editor-ui-markdown-editor.element.js'), meta: { label: 'Markdown Editor', - propertyEditorModel: 'Umbraco.MarkdownEditor', + propertyEditorAlias: 'Umbraco.MarkdownEditor', icon: 'umb:code', group: 'pickers', - config: { + settings: { properties: [ { alias: 'preview', label: 'Preview', description: 'Display a live preview', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, { alias: 'defaultValue', label: 'Default value', description: 'If value is blank, the editor will show this', - propertyEditorUI: 'Umb.PropertyEditorUI.TextArea', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.TextArea', }, { alias: 'overlaySize', label: 'Overlay Size', description: 'Select the width of the overlay.', - propertyEditorUI: 'Umb.PropertyEditorUI.OverlaySize', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.OverlaySize', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/markdown-editor/property-editor-ui-markdown-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/markdown-editor/property-editor-ui-markdown-editor.element.ts index a07c8bbdb1..65335f6972 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/markdown-editor/property-editor-ui-markdown-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/markdown-editor/property-editor-ui-markdown-editor.element.ts @@ -1,9 +1,8 @@ -import { html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-markdown-editor diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/markdown-editor/property-editor-ui-markdown-editor.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/markdown-editor/property-editor-ui-markdown-editor.stories.ts index 0e7ada92e4..b538323efb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/markdown-editor/property-editor-ui-markdown-editor.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/markdown-editor/property-editor-ui-markdown-editor.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIMarkdownEditorElement } from './property-editor-ui-markdown-editor.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIMarkdownEditorElement } from './property-editor-ui-markdown-editor.element'; -import './property-editor-ui-markdown-editor.element'; +import './property-editor-ui-markdown-editor.element.js'; export default { title: 'Property Editor UIs/Markdown Editor', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/markdown-editor/property-editor-ui-markdown-editor.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/markdown-editor/property-editor-ui-markdown-editor.test.ts index f712b6336f..8b45de2a09 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/markdown-editor/property-editor-ui-markdown-editor.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/markdown-editor/property-editor-ui-markdown-editor.test.ts @@ -1,21 +1,19 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIMarkdownEditorElement } from './property-editor-ui-markdown-editor.element'; +import { UmbPropertyEditorUIMarkdownEditorElement } from './property-editor-ui-markdown-editor.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIMarkdownEditorElement', () => { - let element: UmbPropertyEditorUIMarkdownEditorElement; + let element: UmbPropertyEditorUIMarkdownEditorElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-markdown-editor></umb-property-editor-ui-markdown-editor> ` - ); - }); + beforeEach(async () => { + element = await fixture(html` <umb-property-editor-ui-markdown-editor></umb-property-editor-ui-markdown-editor> `); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUIMarkdownEditorElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUIMarkdownEditorElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/media-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/media-picker/manifests.ts index 966c5267a8..28d621cc27 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/media-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/media-picker/manifests.ts @@ -1,13 +1,13 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.MediaPicker', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.MediaPicker', name: 'Markdown Editor Property Editor UI', - loader: () => import('./property-editor-ui-media-picker.element'), + loader: () => import('./property-editor-ui-media-picker.element.js'), meta: { label: 'Media Picker', - propertyEditorModel: 'Umbraco.MediaPicker3', + propertyEditorAlias: 'Umbraco.MediaPicker3', icon: 'umb:picture', group: 'pickers', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/media-picker/property-editor-ui-media-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/media-picker/property-editor-ui-media-picker.element.ts index 032c9c1f55..66388d5cc0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/media-picker/property-editor-ui-media-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/media-picker/property-editor-ui-media-picker.element.ts @@ -1,7 +1,6 @@ -import { html } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; -import { UmbInputMediaPickerElement } from '../../../../media/media/components/input-media-picker/input-media-picker.element'; +import { UmbInputMediaPickerElement } from '../../../../media/media/components/input-media-picker/input-media-picker.element.js'; +import { html , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/media-picker/property-editor-ui-media-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/media-picker/property-editor-ui-media-picker.stories.ts index 66e8ad7aa7..050381f9e8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/media-picker/property-editor-ui-media-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/media-picker/property-editor-ui-media-picker.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIMediaPickerElement } from './property-editor-ui-media-picker.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIMediaPickerElement } from './property-editor-ui-media-picker.element'; -import './property-editor-ui-media-picker.element'; +import './property-editor-ui-media-picker.element.js'; export default { title: 'Property Editor UIs/Media Picker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/media-picker/property-editor-ui-media-picker.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/media-picker/property-editor-ui-media-picker.test.ts index 3d99101920..3b68f220af 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/media-picker/property-editor-ui-media-picker.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/media-picker/property-editor-ui-media-picker.test.ts @@ -1,21 +1,19 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIMediaPickerElement } from './property-editor-ui-media-picker.element'; +import { UmbPropertyEditorUIMediaPickerElement } from './property-editor-ui-media-picker.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIMediaPickerElement', () => { - let element: UmbPropertyEditorUIMediaPickerElement; + let element: UmbPropertyEditorUIMediaPickerElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-media-picker></umb-property-editor-ui-media-picker> ` - ); - }); + beforeEach(async () => { + element = await fixture(html` <umb-property-editor-ui-media-picker></umb-property-editor-ui-media-picker> `); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUIMediaPickerElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUIMediaPickerElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-group-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-group-picker/manifests.ts index 996d43f8f9..199b601fcc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-group-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-group-picker/manifests.ts @@ -1,13 +1,13 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.MemberGroupPicker', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.MemberGroupPicker', name: 'Member Group Picker Property Editor UI', - loader: () => import('./property-editor-ui-member-group-picker.element'), + loader: () => import('./property-editor-ui-member-group-picker.element.js'), meta: { label: 'Member Group Picker', - propertyEditorModel: 'Umbraco.MemberGroupPicker', + propertyEditorAlias: 'Umbraco.MemberGroupPicker', icon: 'umb:users-alt', group: 'people', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-group-picker/property-editor-ui-member-group-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-group-picker/property-editor-ui-member-group-picker.element.ts index efd6b87fd2..48d6f62321 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-group-picker/property-editor-ui-member-group-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-group-picker/property-editor-ui-member-group-picker.element.ts @@ -1,9 +1,8 @@ -import { html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-member-group-picker diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-group-picker/property-editor-ui-member-group-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-group-picker/property-editor-ui-member-group-picker.stories.ts index abdf596558..afaeb95ef2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-group-picker/property-editor-ui-member-group-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-group-picker/property-editor-ui-member-group-picker.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIMemberGroupPickerElement } from './property-editor-ui-member-group-picker.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIMemberGroupPickerElement } from './property-editor-ui-member-group-picker.element'; -import './property-editor-ui-member-group-picker.element'; +import './property-editor-ui-member-group-picker.element.js'; export default { title: 'Property Editor UIs/Member Group Picker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-group-picker/property-editor-ui-member-group-picker.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-group-picker/property-editor-ui-member-group-picker.test.ts index f1e7944b14..3d3231e586 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-group-picker/property-editor-ui-member-group-picker.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-group-picker/property-editor-ui-member-group-picker.test.ts @@ -1,21 +1,21 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIMemberGroupPickerElement } from './property-editor-ui-member-group-picker.element'; +import { UmbPropertyEditorUIMemberGroupPickerElement } from './property-editor-ui-member-group-picker.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIMemberGroupPickerElement', () => { - let element: UmbPropertyEditorUIMemberGroupPickerElement; + let element: UmbPropertyEditorUIMemberGroupPickerElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-member-group-picker></umb-property-editor-ui-member-group-picker> ` - ); - }); + beforeEach(async () => { + element = await fixture( + html` <umb-property-editor-ui-member-group-picker></umb-property-editor-ui-member-group-picker> ` + ); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUIMemberGroupPickerElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUIMemberGroupPickerElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-picker/manifests.ts index 9e6fb6603c..18394c5e32 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-picker/manifests.ts @@ -1,13 +1,13 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.MemberPicker', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.MemberPicker', name: 'Member Picker Property Editor UI', - loader: () => import('./property-editor-ui-member-picker.element'), + loader: () => import('./property-editor-ui-member-picker.element.js'), meta: { label: 'Member Picker', - propertyEditorModel: 'Umbraco.MemberPicker', + propertyEditorAlias: 'Umbraco.MemberPicker', icon: 'umb:user', group: 'people', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-picker/property-editor-ui-member-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-picker/property-editor-ui-member-picker.element.ts index 17bc91e0f5..6d10563770 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-picker/property-editor-ui-member-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-picker/property-editor-ui-member-picker.element.ts @@ -1,9 +1,8 @@ -import { html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-member-picker diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-picker/property-editor-ui-member-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-picker/property-editor-ui-member-picker.stories.ts index a2da67c5d5..0f35b9212b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-picker/property-editor-ui-member-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-picker/property-editor-ui-member-picker.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIMemberPickerElement } from './property-editor-ui-member-picker.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIMemberPickerElement } from './property-editor-ui-member-picker.element'; -import './property-editor-ui-member-picker.element'; +import './property-editor-ui-member-picker.element.js'; export default { title: 'Property Editor UIs/Member Picker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-picker/property-editor-ui-member-picker.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-picker/property-editor-ui-member-picker.test.ts index 15a4447c59..3f64843b26 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-picker/property-editor-ui-member-picker.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/member-picker/property-editor-ui-member-picker.test.ts @@ -1,21 +1,19 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIMemberPickerElement } from './property-editor-ui-member-picker.element'; +import { UmbPropertyEditorUIMemberPickerElement } from './property-editor-ui-member-picker.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIMemberPickerElement', () => { - let element: UmbPropertyEditorUIMemberPickerElement; + let element: UmbPropertyEditorUIMemberPickerElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-member-picker></umb-property-editor-ui-member-picker> ` - ); - }); + beforeEach(async () => { + element = await fixture(html` <umb-property-editor-ui-member-picker></umb-property-editor-ui-member-picker> `); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUIMemberPickerElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUIMemberPickerElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multi-url-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multi-url-picker/manifests.ts index 312f3fb062..1844b8e0d8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multi-url-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multi-url-picker/manifests.ts @@ -1,28 +1,28 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.MultiUrlPicker', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.MultiUrlPicker', name: 'Multi URL Picker Property Editor UI', - loader: () => import('./property-editor-ui-multi-url-picker.element'), + loader: () => import('./property-editor-ui-multi-url-picker.element.js'), meta: { label: 'Multi URL Picker', - propertyEditorModel: 'Umbraco.MultiUrlPicker', + propertyEditorAlias: 'Umbraco.MultiUrlPicker', icon: 'umb:link', group: 'pickers', - config: { + settings: { properties: [ { alias: 'overlaySize', label: 'Overlay Size', description: 'Select the width of the overlay.', - propertyEditorUI: 'Umb.PropertyEditorUI.OverlaySize', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.OverlaySize', }, { alias: 'hideAnchor', label: 'Hide anchor/query string input', description: 'Selecting this hides the anchor/query string input field in the link picker overlay.', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts index 717e84ba75..3f37bcf852 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts @@ -1,13 +1,12 @@ -import { html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import type { UUIModalSidebarSize } from '@umbraco-ui/uui'; -import { UmbInputMultiUrlPickerElement } from '../../../components/input-multi-url-picker/input-multi-url-picker.element'; -import { UMB_WORKSPACE_PROPERTY_CONTEXT_TOKEN } from '../../../components/workspace-property/workspace-property.context'; +import { html , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIModalSidebarSize } from '@umbraco-cms/backoffice/external/uui'; +import { UmbInputMultiUrlElement } from '@umbraco-cms/backoffice/components'; +import { UMB_WORKSPACE_PROPERTY_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/workspace'; import { UmbLinkPickerLink } from '@umbraco-cms/backoffice/modal'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-multi-url-picker @@ -26,7 +25,7 @@ export class UmbPropertyEditorUIMultiUrlPickerElement this._hideAnchor = config.getValueByAlias('hideAnchor'); this._ignoreUserStartNodes = config.getValueByAlias('ignoreUserStartNodes'); this._minNumber = config.getValueByAlias('minNumber'); - this._maxNumber = config.getValueByAlias('maxNumber'); + this._maxNumber = config.getValueByAlias('maxNumber'); } @state() @@ -64,12 +63,12 @@ export class UmbPropertyEditorUIMultiUrlPickerElement } private _onChange(event: CustomEvent) { - this.value = (event.target as UmbInputMultiUrlPickerElement).urls; + this.value = (event.target as UmbInputMultiUrlElement).urls; this.dispatchEvent(new CustomEvent('property-value-change')); } render() { - return html`<umb-input-multi-url-picker + return html`<umb-input-multi-url .alias="${this._alias}" .variantId="${this._propertyVariantId}" @change="${this._onChange}" @@ -78,7 +77,7 @@ export class UmbPropertyEditorUIMultiUrlPickerElement .ignoreUserStartNodes=${this._ignoreUserStartNodes} .max=${this._maxNumber} .min=${this._minNumber} - .urls="${this.value}"></umb-input-multi-url-picker>`; + .urls="${this.value}"></umb-input-multi-url>`; } static styles = [UUITextStyles]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.stories.ts index cc86da68ca..147e496a8e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIMultiUrlPickerElement } from './property-editor-ui-multi-url-picker.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIMultiUrlPickerElement } from './property-editor-ui-multi-url-picker.element'; -import './property-editor-ui-multi-url-picker.element'; +import './property-editor-ui-multi-url-picker.element.js'; export default { title: 'Property Editor UIs/Multi Url Picker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.test.ts index c17522bf5e..0e504fb9fa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multi-url-picker/property-editor-ui-multi-url-picker.test.ts @@ -1,21 +1,21 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIMultiUrlPickerElement } from './property-editor-ui-multi-url-picker.element'; +import { UmbPropertyEditorUIMultiUrlPickerElement } from './property-editor-ui-multi-url-picker.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIMultiUrlPickerElement', () => { - let element: UmbPropertyEditorUIMultiUrlPickerElement; + let element: UmbPropertyEditorUIMultiUrlPickerElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-multi-url-picker></umb-property-editor-ui-multi-url-picker> ` - ); - }); + beforeEach(async () => { + element = await fixture( + html` <umb-property-editor-ui-multi-url-picker></umb-property-editor-ui-multi-url-picker> ` + ); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUIMultiUrlPickerElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUIMultiUrlPickerElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts index 9d3e3d5e3e..71dd28f03d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/input-multiple-text-string-item/input-multiple-text-string-item.element.ts @@ -1,9 +1,5 @@ -import { css, html, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, query } from 'lit/decorators.js'; -import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; -import { UUIInputEvent } from '@umbraco-ui/uui-input'; -import { UUIInputElement } from '@umbraco-ui/uui'; +import { css, html, nothing , customElement, property, query } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles, FormControlMixin, UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; import { UmbChangeEvent, UmbInputEvent, UmbDeleteEvent } from '@umbraco-cms/backoffice/events'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/input-multiple-text-string/input-multiple-text-string.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/input-multiple-text-string/input-multiple-text-string.element.ts index da4fe15c00..f9f9534836 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/input-multiple-text-string/input-multiple-text-string.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/input-multiple-text-string/input-multiple-text-string.element.ts @@ -1,9 +1,6 @@ -import { css, html, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { repeat } from 'lit/directives/repeat.js'; -import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; -import UmbInputMultipleTextStringItemElement from '../input-multiple-text-string-item/input-multiple-text-string-item.element'; +import UmbInputMultipleTextStringItemElement from '../input-multiple-text-string-item/input-multiple-text-string-item.element.js'; +import { css, html, nothing, repeat, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles, FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbInputEvent, UmbChangeEvent, UmbDeleteEvent } from '@umbraco-cms/backoffice/events'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/manifests.ts index b9ebadbab4..86db9a7d50 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/manifests.ts @@ -1,13 +1,13 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.MultipleTextString', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.MultipleTextString', name: 'Multiple Text String Property Editor UI', - loader: () => import('./property-editor-ui-multiple-text-string.element'), + loader: () => import('./property-editor-ui-multiple-text-string.element.js'), meta: { label: 'Multiple Text String', - propertyEditorModel: 'Umbraco.MultipleTextString', + propertyEditorAlias: 'Umbraco.MultipleTextString', icon: 'umb:ordered-list', group: '', supportsReadOnly: true, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/property-editor-ui-multiple-text-string.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/property-editor-ui-multiple-text-string.element.ts index e401f4952c..aa09ab9902 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/property-editor-ui-multiple-text-string.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/property-editor-ui-multiple-text-string.element.ts @@ -1,12 +1,10 @@ -import { html } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; -import { UmbPropertyValueChangeEvent } from '../..'; +import { UmbPropertyValueChangeEvent } from '../../index.js'; import { UmbInputMultipleTextStringElement, MultipleTextStringValue, -} from './input-multiple-text-string/input-multiple-text-string.element'; +} from './input-multiple-text-string/input-multiple-text-string.element.js'; +import { html , customElement, property, state , ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/events'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/property-editor-ui-multiple-text-string.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/property-editor-ui-multiple-text-string.stories.ts index 455f61bcea..1115a41457 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/property-editor-ui-multiple-text-string.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/property-editor-ui-multiple-text-string.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIMultipleTextStringElement } from './property-editor-ui-multiple-text-string.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIMultipleTextStringElement } from './property-editor-ui-multiple-text-string.element'; -import './property-editor-ui-multiple-text-string.element'; +import './property-editor-ui-multiple-text-string.element.js'; export default { title: 'Property Editor UIs/Multiple Text String', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/property-editor-ui-multiple-text-string.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/property-editor-ui-multiple-text-string.test.ts index bc30bc903f..d0cd5b339f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/property-editor-ui-multiple-text-string.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/multiple-text-string/property-editor-ui-multiple-text-string.test.ts @@ -1,21 +1,21 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIMultipleTextStringElement } from './property-editor-ui-multiple-text-string.element'; +import { UmbPropertyEditorUIMultipleTextStringElement } from './property-editor-ui-multiple-text-string.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIMultipleTextStringElement', () => { - let element: UmbPropertyEditorUIMultipleTextStringElement; + let element: UmbPropertyEditorUIMultipleTextStringElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-multiple-text-string></umb-property-editor-ui-multiple-text-string> ` - ); - }); + beforeEach(async () => { + element = await fixture( + html` <umb-property-editor-ui-multiple-text-string></umb-property-editor-ui-multiple-text-string> ` + ); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUIMultipleTextStringElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUIMultipleTextStringElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number-range/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number-range/manifests.ts index b20ef803e6..970f463008 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number-range/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number-range/manifests.ts @@ -1,13 +1,13 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.NumberRange', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.NumberRange', name: 'Number Range Property Editor UI', - loader: () => import('./property-editor-ui-number-range.element'), + loader: () => import('./property-editor-ui-number-range.element.js'), meta: { label: 'Number Range', - propertyEditorModel: '', + propertyEditorAlias: '', icon: 'umb:autofill', group: 'common', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number-range/property-editor-ui-number-range.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number-range/property-editor-ui-number-range.element.ts index c8082f27be..2b0d4f2a22 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number-range/property-editor-ui-number-range.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number-range/property-editor-ui-number-range.element.ts @@ -1,11 +1,11 @@ -import { html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import type { UmbInputNumberRangeElement } from '../../../components/input-number-range/input-number-range.element'; +import type { UmbInputNumberRangeElement } from '../../../components/input-number-range/input-number-range.element.js'; +import { html , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import '../../../components/input-number-range/input-number-range.element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; + +import '../../../components/input-number-range/input-number-range.element.js'; type ValueType = { min?: number; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number-range/property-editor-ui-number-range.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number-range/property-editor-ui-number-range.stories.ts index e562fe2603..17f53fd30c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number-range/property-editor-ui-number-range.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number-range/property-editor-ui-number-range.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUINumberRangeElement } from './property-editor-ui-number-range.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUINumberRangeElement } from './property-editor-ui-number-range.element'; -import './property-editor-ui-number-range.element'; +import './property-editor-ui-number-range.element.js'; export default { title: 'Property Editor UIs/Number Range', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number-range/property-editor-ui-number-range.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number-range/property-editor-ui-number-range.test.ts index 55f1baafd9..864e3037d6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number-range/property-editor-ui-number-range.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number-range/property-editor-ui-number-range.test.ts @@ -1,21 +1,19 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUINumberRangeElement } from './property-editor-ui-number-range.element'; +import { UmbPropertyEditorUINumberRangeElement } from './property-editor-ui-number-range.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUINumberRangeElement', () => { - let element: UmbPropertyEditorUINumberRangeElement; + let element: UmbPropertyEditorUINumberRangeElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-number-range></umb-property-editor-ui-number-range> ` - ); - }); + beforeEach(async () => { + element = await fixture(html` <umb-property-editor-ui-number-range></umb-property-editor-ui-number-range> `); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUINumberRangeElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUINumberRangeElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number/manifests.ts index a0532fc88b..f401fcb8cc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number/manifests.ts @@ -1,24 +1,24 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; // TODO: we don't really want this config value to be changed from the UI. We need a way to handle hidden config properties. const allowDecimalsConfig = { alias: 'allowDecimals', label: 'Allow decimals', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }; -export const manifests: Array<ManifestPropertyEditorUI> = [ +export const manifests: Array<ManifestPropertyEditorUi> = [ { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.Integer', + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.Integer', name: 'Integer Property Editor UI', - loader: () => import('./property-editor-ui-number.element'), + loader: () => import('./property-editor-ui-number.element.js'), meta: { label: 'Integer', - propertyEditorModel: 'Umbraco.Integer', + propertyEditorAlias: 'Umbraco.Integer', icon: 'umb:autofill', group: 'common', - config: { + settings: { properties: [allowDecimalsConfig], defaultData: [ { @@ -30,16 +30,16 @@ export const manifests: Array<ManifestPropertyEditorUI> = [ }, }, { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.Decimal', + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.Decimal', name: 'Decimal Property Editor UI', - loader: () => import('./property-editor-ui-number.element'), + loader: () => import('./property-editor-ui-number.element.js'), meta: { label: 'Decimal', - propertyEditorModel: 'Umbraco.Decimal', + propertyEditorAlias: 'Umbraco.Decimal', icon: 'umb:autofill', group: 'common', - config: { + settings: { properties: [allowDecimalsConfig], defaultData: [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number/property-editor-ui-number.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number/property-editor-ui-number.element.ts index 03d6917c33..a70e275240 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number/property-editor-ui-number.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number/property-editor-ui-number.element.ts @@ -1,10 +1,8 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; +import { css, html , customElement, property, state , ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; @customElement('umb-property-editor-ui-number') export class UmbPropertyEditorUINumberElement extends UmbLitElement implements UmbPropertyEditorExtensionElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number/property-editor-ui-number.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number/property-editor-ui-number.stories.ts index 0bb4c88e3b..d367ab8daa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number/property-editor-ui-number.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/number/property-editor-ui-number.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUINumberElement } from './property-editor-ui-number.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUINumberElement } from './property-editor-ui-number.element'; -import './property-editor-ui-number.element'; +import './property-editor-ui-number.element.js'; export default { title: 'Property Editor UIs/Number', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/order-direction/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/order-direction/manifests.ts index 04fbdd4ab0..ee17704ef3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/order-direction/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/order-direction/manifests.ts @@ -1,13 +1,13 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.OrderDirection', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.OrderDirection', name: 'Order Direction Property Editor UI', - loader: () => import('./property-editor-ui-order-direction.element'), + loader: () => import('./property-editor-ui-order-direction.element.js'), meta: { label: 'Order Direction', - propertyEditorModel: '', + propertyEditorAlias: '', icon: 'umb:autofill', group: 'common', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/order-direction/property-editor-ui-order-direction.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/order-direction/property-editor-ui-order-direction.element.ts index aef6a85bc5..f717c7839c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/order-direction/property-editor-ui-order-direction.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/order-direction/property-editor-ui-order-direction.element.ts @@ -1,9 +1,8 @@ -import { html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property } from 'lit/decorators.js'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-order-direction diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/order-direction/property-editor-ui-order-direction.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/order-direction/property-editor-ui-order-direction.stories.ts index 2db7f21592..37041fe85e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/order-direction/property-editor-ui-order-direction.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/order-direction/property-editor-ui-order-direction.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIOrderDirectionElement } from './property-editor-ui-order-direction.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIOrderDirectionElement } from './property-editor-ui-order-direction.element'; -import './property-editor-ui-order-direction.element'; +import './property-editor-ui-order-direction.element.js'; export default { title: 'Property Editor UIs/Order Direction', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/order-direction/property-editor-ui-order-direction.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/order-direction/property-editor-ui-order-direction.test.ts index 83cedc5faf..f205db79e6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/order-direction/property-editor-ui-order-direction.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/order-direction/property-editor-ui-order-direction.test.ts @@ -1,21 +1,19 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIOrderDirectionElement } from './property-editor-ui-order-direction.element'; +import { UmbPropertyEditorUIOrderDirectionElement } from './property-editor-ui-order-direction.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIOrderDirectionElement', () => { - let element: UmbPropertyEditorUIOrderDirectionElement; + let element: UmbPropertyEditorUIOrderDirectionElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-order-direction></umb-property-editor-ui-order-direction> ` - ); - }); + beforeEach(async () => { + element = await fixture(html` <umb-property-editor-ui-order-direction></umb-property-editor-ui-order-direction> `); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUIOrderDirectionElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUIOrderDirectionElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/overlay-size/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/overlay-size/manifests.ts index f1b601c41e..0300271f0e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/overlay-size/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/overlay-size/manifests.ts @@ -1,13 +1,13 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.OverlaySize', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.OverlaySize', name: 'Overlay Size Property Editor UI', - loader: () => import('./property-editor-ui-overlay-size.element'), + loader: () => import('./property-editor-ui-overlay-size.element.js'), meta: { label: 'Overlay Size', - propertyEditorModel: '', + propertyEditorAlias: '', icon: 'umb:document', group: '', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/overlay-size/property-editor-ui-overlay-size.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/overlay-size/property-editor-ui-overlay-size.element.ts index 43ef8f6544..4193283847 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/overlay-size/property-editor-ui-overlay-size.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/overlay-size/property-editor-ui-overlay-size.element.ts @@ -1,9 +1,8 @@ -import { html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property } from 'lit/decorators.js'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-overlay-size @@ -15,7 +14,7 @@ export class UmbPropertyEditorUIOverlaySizeElement extends UmbLitElement impleme @property({ type: Array, attribute: false }) public config = new UmbDataTypePropertyCollection(); - + render() { return html`<div>umb-property-editor-ui-overlay-size</div>`; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/overlay-size/property-editor-ui-overlay-size.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/overlay-size/property-editor-ui-overlay-size.stories.ts index 5a428f985c..ca66cec267 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/overlay-size/property-editor-ui-overlay-size.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/overlay-size/property-editor-ui-overlay-size.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIOverlaySizeElement } from './property-editor-ui-overlay-size.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIOverlaySizeElement } from './property-editor-ui-overlay-size.element'; -import './property-editor-ui-overlay-size.element'; +import './property-editor-ui-overlay-size.element.js'; export default { title: 'Property Editor UIs/Overlay Size', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/overlay-size/property-editor-ui-overlay-size.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/overlay-size/property-editor-ui-overlay-size.test.ts index 31993aef82..e60d71050a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/overlay-size/property-editor-ui-overlay-size.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/overlay-size/property-editor-ui-overlay-size.test.ts @@ -1,21 +1,19 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIOverlaySizeElement } from './property-editor-ui-overlay-size.element'; +import { UmbPropertyEditorUIOverlaySizeElement } from './property-editor-ui-overlay-size.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIOverlaySizeElement', () => { - let element: UmbPropertyEditorUIOverlaySizeElement; + let element: UmbPropertyEditorUIOverlaySizeElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-overlay-size></umb-property-editor-ui-overlay-size> ` - ); - }); + beforeEach(async () => { + element = await fixture(html` <umb-property-editor-ui-overlay-size></umb-property-editor-ui-overlay-size> `); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUIOverlaySizeElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUIOverlaySizeElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/radio-button-list/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/radio-button-list/manifests.ts index b791c89a01..28637d28f6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/radio-button-list/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/radio-button-list/manifests.ts @@ -1,22 +1,22 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.RadioButtonList', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.RadioButtonList', name: 'Radio Button List Property Editor UI', - loader: () => import('./property-editor-ui-radio-button-list.element'), + loader: () => import('./property-editor-ui-radio-button-list.element.js'), meta: { label: 'Radio Button List', - propertyEditorModel: 'Umbraco.RadioButtonList', + propertyEditorAlias: 'Umbraco.RadioButtonList', icon: 'umb:target', group: 'lists', - config: { + settings: { properties: [ { alias: 'items', label: 'Add option', description: 'Add, remove or sort options for the list.', - propertyEditorUI: 'Umb.PropertyEditorUI.MultipleTextString', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.MultipleTextString', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts index 4582c1eb2a..d08b4fadbc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts @@ -1,9 +1,8 @@ -import { html } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import '../../../components/input-radio-button-list/input-radio-button-list.element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; -import type { UmbInputRadioButtonListElement } from '../../../components/input-radio-button-list/input-radio-button-list.element'; +import { html , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import '../../../components/input-radio-button-list/input-radio-button-list.element.js'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; +import type { UmbInputRadioButtonListElement } from '../../../components/input-radio-button-list/input-radio-button-list.element.js'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/radio-button-list/property-editor-ui-radio-button-list.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/radio-button-list/property-editor-ui-radio-button-list.stories.ts index 67d1fde28d..d5a1fb8e75 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/radio-button-list/property-editor-ui-radio-button-list.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/radio-button-list/property-editor-ui-radio-button-list.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIRadioButtonListElement } from './property-editor-ui-radio-button-list.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIRadioButtonListElement } from './property-editor-ui-radio-button-list.element'; -import './property-editor-ui-radio-button-list.element'; +import './property-editor-ui-radio-button-list.element.js'; export default { title: 'Property Editor UIs/Radio Button List', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/radio-button-list/property-editor-ui-radio-button-list.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/radio-button-list/property-editor-ui-radio-button-list.test.ts index 9eb632c187..311bdb57cf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/radio-button-list/property-editor-ui-radio-button-list.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/radio-button-list/property-editor-ui-radio-button-list.test.ts @@ -1,21 +1,21 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIRadioButtonListElement } from './property-editor-ui-radio-button-list.element'; +import { UmbPropertyEditorUIRadioButtonListElement } from './property-editor-ui-radio-button-list.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIRadioButtonListElement', () => { - let element: UmbPropertyEditorUIRadioButtonListElement; + let element: UmbPropertyEditorUIRadioButtonListElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-radio-button-list></umb-property-editor-ui-radio-button-list> ` - ); - }); + beforeEach(async () => { + element = await fixture( + html` <umb-property-editor-ui-radio-button-list></umb-property-editor-ui-radio-button-list> ` + ); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUIRadioButtonListElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUIRadioButtonListElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/slider/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/slider/manifests.ts index 9d1566dc15..662200e610 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/slider/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/slider/manifests.ts @@ -1,40 +1,40 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.Slider', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.Slider', name: 'Slider Property Editor UI', - loader: () => import('./property-editor-ui-slider.element'), + loader: () => import('./property-editor-ui-slider.element.js'), meta: { label: 'Slider', - propertyEditorModel: 'Umbraco.Slider', + propertyEditorAlias: 'Umbraco.Slider', icon: 'umb:navigation-horizontal', group: 'common', - config: { + settings: { properties: [ { alias: 'enableRange', label: 'Enable range', description: '', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, { alias: 'initVal1', label: 'Initial value', description: '', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, { alias: 'initVal2', label: 'Initial value 2', description: 'Used when range is enabled', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, { alias: 'step', label: 'Step increments', description: '', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, ], defaultData: [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/slider/property-editor-ui-slider.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/slider/property-editor-ui-slider.element.ts index 0663c095e3..9dccaead3c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/slider/property-editor-ui-slider.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/slider/property-editor-ui-slider.element.ts @@ -1,10 +1,9 @@ -import { html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; +import UmbInputSliderElement from '../../../components/input-slider/input-slider.element.js'; +import { html , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; -import UmbInputSliderElement from '../../../components/input-slider/input-slider.element'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-slider diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/slider/property-editor-ui-slider.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/slider/property-editor-ui-slider.stories.ts index 3a1276d23f..5400e8d65b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/slider/property-editor-ui-slider.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/slider/property-editor-ui-slider.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUISliderElement } from './property-editor-ui-slider.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUISliderElement } from './property-editor-ui-slider.element'; -import './property-editor-ui-slider.element'; +import './property-editor-ui-slider.element.js'; export default { title: 'Property Editor UIs/Slider', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/slider/property-editor-ui-slider.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/slider/property-editor-ui-slider.test.ts index e4f5ebc5af..f28122f841 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/slider/property-editor-ui-slider.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/slider/property-editor-ui-slider.test.ts @@ -1,21 +1,19 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUISliderElement } from './property-editor-ui-slider.element'; +import { UmbPropertyEditorUISliderElement } from './property-editor-ui-slider.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUISliderElement', () => { - let element: UmbPropertyEditorUISliderElement; + let element: UmbPropertyEditorUISliderElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-slider></umb-property-editor-ui-slider> ` - ); - }); + beforeEach(async () => { + element = await fixture(html` <umb-property-editor-ui-slider></umb-property-editor-ui-slider> `); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUISliderElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUISliderElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/text-box/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/text-box/manifests.ts index c791936946..6059b3a2a7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/text-box/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/text-box/manifests.ts @@ -1,25 +1,25 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; // TODO: we don't really want this config value to be changed from the UI. We need a way to handle hidden config properties. const inputTypeConfig = { alias: 'inputType', label: 'Input type', description: 'Select input type', - propertyEditorUI: 'Umb.PropertyEditorUI.Dropdown', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Dropdown', }; -export const manifests: Array<ManifestPropertyEditorUI> = [ +export const manifests: Array<ManifestPropertyEditorUi> = [ { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.TextBox', + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.TextBox', name: 'Text Box Property Editor UI', - loader: () => import('./property-editor-ui-text-box.element'), + loader: () => import('./property-editor-ui-text-box.element.js'), meta: { label: 'Text Box', - propertyEditorModel: 'Umbraco.TextBox', + propertyEditorAlias: 'Umbraco.TextBox', icon: 'umb:autofill', group: 'common', - config: { + settings: { properties: [inputTypeConfig], defaultData: [ { @@ -31,16 +31,16 @@ export const manifests: Array<ManifestPropertyEditorUI> = [ }, }, { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.Email', + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.Email', name: 'Email Property Editor UI', - loader: () => import('./property-editor-ui-text-box.element'), + loader: () => import('./property-editor-ui-text-box.element.js'), meta: { label: 'Email', - propertyEditorModel: 'Umbraco.EmailAddress', + propertyEditorAlias: 'Umbraco.EmailAddress', icon: 'umb:message', group: 'common', - config: { + settings: { properties: [inputTypeConfig], defaultData: [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/text-box/property-editor-ui-text-box.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/text-box/property-editor-ui-text-box.element.ts index edb6b95684..3cf78c2d04 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/text-box/property-editor-ui-text-box.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/text-box/property-editor-ui-text-box.element.ts @@ -1,10 +1,8 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; +import { css, html , customElement, property, state , ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; @customElement('umb-property-editor-ui-text-box') export class UmbPropertyEditorUITextBoxElement extends UmbLitElement implements UmbPropertyEditorExtensionElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/text-box/property-editor-ui-text-box.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/text-box/property-editor-ui-text-box.stories.ts index f0ac712382..ac75587f3f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/text-box/property-editor-ui-text-box.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/text-box/property-editor-ui-text-box.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUITextBoxElement } from './property-editor-ui-text-box.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUITextBoxElement } from './property-editor-ui-text-box.element'; -import './property-editor-ui-text-box.element'; +import './property-editor-ui-text-box.element.js'; export default { title: 'Property Editor UIs/Text Box', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/textarea/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/textarea/manifests.ts index 7d5ccb9575..8d63aaf6a0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/textarea/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/textarea/manifests.ts @@ -1,34 +1,34 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.TextArea', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.TextArea', name: 'Text Area Property Editor UI', - loader: () => import('./property-editor-ui-textarea.element'), + loader: () => import('./property-editor-ui-textarea.element.js'), meta: { label: 'Text Area', - propertyEditorModel: 'Umbraco.TextArea', + propertyEditorAlias: 'Umbraco.TextArea', icon: 'umb:edit', group: 'common', - config: { + settings: { properties: [ { alias: 'rows', label: 'Number of rows', description: 'If empty the textarea is set to autoheight', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, { alias: 'minHeight', label: 'Min height (pixels)', description: 'Sets the minimum height of the textarea', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, { alias: 'maxHeight', label: 'Max height (pixels)', description: 'Sets the maximum height of the textarea', - propertyEditorUI: 'Umb.PropertyEditorUI.Number', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', }, ], defaultData: [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/textarea/property-editor-ui-textarea.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/textarea/property-editor-ui-textarea.element.ts index 3c0170458d..9becdc1548 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/textarea/property-editor-ui-textarea.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/textarea/property-editor-ui-textarea.element.ts @@ -1,12 +1,8 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UUITextareaElement } from '@umbraco-ui/uui'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { styleMap } from 'lit/directives/style-map.js'; +import { css, html , customElement, property, state , ifDefined , styleMap } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles , UUITextareaElement } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; @customElement('umb-property-editor-ui-textarea') export class UmbPropertyEditorUITextareaElement extends UmbLitElement implements UmbPropertyEditorExtensionElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/textarea/property-editor-ui-textarea.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/textarea/property-editor-ui-textarea.stories.ts index 389abbb0fe..84a3bda93c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/textarea/property-editor-ui-textarea.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/textarea/property-editor-ui-textarea.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUITextareaElement } from './property-editor-ui-textarea.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUITextareaElement } from './property-editor-ui-textarea.element'; -import './property-editor-ui-textarea.element'; +import './property-editor-ui-textarea.element.js'; export default { title: 'Property Editor UIs/Textarea', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tiny-mce/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tiny-mce/manifests.ts index 303ef2ae70..53ee6f11cc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tiny-mce/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tiny-mce/manifests.ts @@ -1,28 +1,33 @@ -import { manifests as configuration } from './config/manifests'; -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import { manifests as configuration } from './config/manifests.js'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.TinyMCE', +const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.TinyMCE', name: 'Rich Text Editor Property Editor UI', - loader: () => import('./property-editor-ui-tiny-mce.element'), + loader: () => import('./property-editor-ui-tiny-mce.element.js'), meta: { label: 'Rich Text Editor', - propertyEditorModel: 'Umbraco.TinyMCE', + propertyEditorAlias: 'Umbraco.TinyMCE', icon: 'umb:browser-window', group: 'richText', - config: { + settings: { properties: [ + { + alias: 'editor', + label: 'Editor', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.TinyMCE.Configuration', + }, { alias: 'overlaySize', label: 'Overlay Size', description: 'Select the width of the overlay (link picker)', - propertyEditorUI: 'Umb.PropertyEditorUI.OverlaySize', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.OverlaySize', }, { alias: 'hideLabel', label: 'Hide Label', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tiny-mce/property-editor-ui-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tiny-mce/property-editor-ui-tiny-mce.element.ts index c754ed2837..b431e4f129 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tiny-mce/property-editor-ui-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tiny-mce/property-editor-ui-tiny-mce.element.ts @@ -1,9 +1,9 @@ -import { html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property } from 'lit/decorators.js'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-tiny-mce diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tiny-mce/property-editor-ui-tiny-mce.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tiny-mce/property-editor-ui-tiny-mce.stories.ts index f3bff3d2f6..5e3dc40de5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tiny-mce/property-editor-ui-tiny-mce.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tiny-mce/property-editor-ui-tiny-mce.stories.ts @@ -1,5 +1,6 @@ import { Meta } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUITinyMceElement } from './property-editor-ui-tiny-mce.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; import './property-editor-ui-tiny-mce.element'; import { umbDataTypeData } from '../../../../../shared/mocks/data/data-type.data'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tiny-mce/property-editor-ui-tiny-mce.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tiny-mce/property-editor-ui-tiny-mce.test.ts index e6ad7abce6..07970418cc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tiny-mce/property-editor-ui-tiny-mce.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tiny-mce/property-editor-ui-tiny-mce.test.ts @@ -1,21 +1,19 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUITinyMceElement } from './property-editor-ui-tiny-mce.element'; +import { UmbPropertyEditorUITinyMceElement } from './property-editor-ui-tiny-mce.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUITinyMceElement', () => { - let element: UmbPropertyEditorUITinyMceElement; + let element: UmbPropertyEditorUITinyMceElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-tiny-mce></umb-property-editor-ui-tiny-mce> ` - ); - }); + beforeEach(async () => { + element = await fixture(html` <umb-property-editor-ui-tiny-mce></umb-property-editor-ui-tiny-mce> `); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUITinyMceElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUITinyMceElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/toggle/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/toggle/manifests.ts index 879b446c82..011906092a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/toggle/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/toggle/manifests.ts @@ -1,41 +1,41 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.Toggle', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.Toggle', name: 'Toggle Property Editor UI', - loader: () => import('./property-editor-ui-toggle.element'), + loader: () => import('./property-editor-ui-toggle.element.js'), meta: { label: 'Toggle', - propertyEditorModel: 'Umbraco.TrueFalse', + propertyEditorAlias: 'Umbraco.TrueFalse', icon: 'umb:checkbox', group: 'common', - config: { + settings: { properties: [ { alias: 'default', label: 'Initial State', description: 'The initial state for the toggle, when it is displayed for the first time in the backoffice, eg. for a new content item.', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, { alias: 'showLabels', label: 'Show toggle labels', description: 'Show labels next to toggle button.', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, { alias: 'labelOn', label: 'Label On', description: 'Label text when enabled.', - propertyEditorUI: 'Umb.PropertyEditorUI.TextBox', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.TextBox', }, { alias: 'labelOff', label: 'Label Off', description: 'Label text when disabled.', - propertyEditorUI: 'Umb.PropertyEditorUI.TextBox', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.TextBox', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/toggle/property-editor-ui-toggle.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/toggle/property-editor-ui-toggle.element.ts index ee4506b506..28e3836591 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/toggle/property-editor-ui-toggle.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/toggle/property-editor-ui-toggle.element.ts @@ -1,8 +1,7 @@ -import { html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; -import { UmbInputToggleElement } from '../../../components/input-toggle/input-toggle.element'; +import { UmbInputToggleElement } from '../../../components/input-toggle/input-toggle.element.js'; +import { html , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/toggle/property-editor-ui-toggle.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/toggle/property-editor-ui-toggle.stories.ts index 27b2a4a29f..d611b85c41 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/toggle/property-editor-ui-toggle.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/toggle/property-editor-ui-toggle.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIToggleElement } from './property-editor-ui-toggle.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIToggleElement } from './property-editor-ui-toggle.element'; -import './property-editor-ui-toggle.element'; +import './property-editor-ui-toggle.element.js'; export default { title: 'Property Editor UIs/Toggle', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/toggle/property-editor-ui-toggle.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/toggle/property-editor-ui-toggle.test.ts index 0df0a2b6d4..368d9ff4ba 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/toggle/property-editor-ui-toggle.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/toggle/property-editor-ui-toggle.test.ts @@ -1,5 +1,5 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIToggleElement } from './property-editor-ui-toggle.element'; +import { UmbPropertyEditorUIToggleElement } from './property-editor-ui-toggle.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIToggleElement', () => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/config/start-node/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/config/start-node/manifests.ts index b31ef32675..f569ee5504 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/config/start-node/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/config/start-node/manifests.ts @@ -1,14 +1,14 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.TreePicker.StartNode', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.TreePicker.StartNode', name: 'Tree Picker Start Node Property Editor UI', - loader: () => import('./property-editor-ui-tree-picker-start-node.element'), + loader: () => import('./property-editor-ui-tree-picker-start-node.element.js'), meta: { label: 'Tree Picker Start Node', icon: 'umb:page-add', group: 'pickers', - propertyEditorModel: '', + propertyEditorAlias: '', }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/config/start-node/property-editor-ui-tree-picker-start-node.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/config/start-node/property-editor-ui-tree-picker-start-node.element.ts index e21f85d89a..c107006c4e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/config/start-node/property-editor-ui-tree-picker-start-node.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/config/start-node/property-editor-ui-tree-picker-start-node.element.ts @@ -1,6 +1,5 @@ -import { html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property } from 'lit/decorators.js'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/config/start-node/property-editor-ui-tree-picker-start-node.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/config/start-node/property-editor-ui-tree-picker-start-node.stories.ts index 514000a8ea..dbd4d37ebb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/config/start-node/property-editor-ui-tree-picker-start-node.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/config/start-node/property-editor-ui-tree-picker-start-node.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUITreePickerStartNodeElement } from './property-editor-ui-tree-picker-start-node.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUITreePickerStartNodeElement } from './property-editor-ui-tree-picker-start-node.element'; -import './property-editor-ui-tree-picker-start-node.element'; +import './property-editor-ui-tree-picker-start-node.element.js'; export default { title: 'Property Editor UIs/Tree Picker Start Node', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/config/start-node/property-editor-ui-tree-picker-start-node.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/config/start-node/property-editor-ui-tree-picker-start-node.test.ts index 722f09ac07..55531a978c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/config/start-node/property-editor-ui-tree-picker-start-node.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/config/start-node/property-editor-ui-tree-picker-start-node.test.ts @@ -1,21 +1,21 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUITreePickerStartNodeElement } from './property-editor-ui-tree-picker-start-node.element'; +import { UmbPropertyEditorUITreePickerStartNodeElement } from './property-editor-ui-tree-picker-start-node.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUITreePickerStartNodeElement', () => { - let element: UmbPropertyEditorUITreePickerStartNodeElement; + let element: UmbPropertyEditorUITreePickerStartNodeElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-tree-picker-start-node></umb-property-editor-ui-tree-picker-start-node> ` - ); - }); + beforeEach(async () => { + element = await fixture( + html` <umb-property-editor-ui-tree-picker-start-node></umb-property-editor-ui-tree-picker-start-node> ` + ); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUITreePickerStartNodeElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUITreePickerStartNodeElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/manifests.ts index d1e813a6e5..d50b78f9af 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/manifests.ts @@ -1,41 +1,41 @@ -import { manifest as startNode } from './config/start-node/manifests'; -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import { manifest as startNode } from './config/start-node/manifests.js'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.TreePicker', +const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.TreePicker', name: 'Tree Picker Property Editor UI', - loader: () => import('./property-editor-ui-tree-picker.element'), + loader: () => import('./property-editor-ui-tree-picker.element.js'), meta: { label: 'Tree Picker', icon: 'umb:page-add', group: 'pickers', - propertyEditorModel: 'Umbraco.MultiNodeTreePicker', - config: { + propertyEditorAlias: 'Umbraco.MultiNodeTreePicker', + settings: { properties: [ { alias: 'startNode', label: 'Start node', description: '', - propertyEditorUI: 'Umb.PropertyEditorUI.TreePicker.StartNode', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.TreePicker.StartNode', }, { alias: 'filter', label: 'Allow items of type', description: '', - propertyEditorUI: 'Umb.PropertyEditorUI.TreePicker', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.TreePicker', }, { alias: 'showOpenButton', label: 'Show open button', description: 'Opens the node in a dialog', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, ], }, }, }; -const config: Array<ManifestPropertyEditorUI> = [startNode]; +const config: Array<ManifestPropertyEditorUi> = [startNode]; export const manifests = [manifest, ...config]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/property-editor-ui-tree-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/property-editor-ui-tree-picker.element.ts index e5ca533027..686718071a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/property-editor-ui-tree-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/property-editor-ui-tree-picker.element.ts @@ -1,9 +1,8 @@ -import { html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property } from 'lit/decorators.js'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-tree-picker diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/property-editor-ui-tree-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/property-editor-ui-tree-picker.stories.ts index cfc9ef64b2..12b8c7a980 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/property-editor-ui-tree-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/property-editor-ui-tree-picker.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUITreePickerElement } from './property-editor-ui-tree-picker.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUITreePickerElement } from './property-editor-ui-tree-picker.element'; -import './property-editor-ui-tree-picker.element'; +import './property-editor-ui-tree-picker.element.js'; export default { title: 'Property Editor UIs/Tree Picker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/property-editor-ui-tree-picker.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/property-editor-ui-tree-picker.test.ts index 46117fb197..378b119078 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/property-editor-ui-tree-picker.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/tree-picker/property-editor-ui-tree-picker.test.ts @@ -1,21 +1,19 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUITreePickerElement } from './property-editor-ui-tree-picker.element'; +import { UmbPropertyEditorUITreePickerElement } from './property-editor-ui-tree-picker.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUITreePickerElement', () => { - let element: UmbPropertyEditorUITreePickerElement; + let element: UmbPropertyEditorUITreePickerElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-tree-picker></umb-property-editor-ui-tree-picker> ` - ); - }); + beforeEach(async () => { + element = await fixture(html` <umb-property-editor-ui-tree-picker></umb-property-editor-ui-tree-picker> `); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUITreePickerElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUITreePickerElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/upload-field/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/upload-field/manifests.ts index 9171271be9..3cd6347dc5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/upload-field/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/upload-field/manifests.ts @@ -1,13 +1,13 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.UploadField', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.UploadField', name: 'Upload Field Property Editor UI', - loader: () => import('./property-editor-ui-upload-field.element'), + loader: () => import('./property-editor-ui-upload-field.element.js'), meta: { label: 'Upload Field', - propertyEditorModel: 'Umbraco.UploadField', + propertyEditorAlias: 'Umbraco.UploadField', icon: 'umb:download-alt', group: 'common', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/upload-field/property-editor-ui-upload-field.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/upload-field/property-editor-ui-upload-field.element.ts index 6120bed9d8..42d3d43306 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/upload-field/property-editor-ui-upload-field.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/upload-field/property-editor-ui-upload-field.element.ts @@ -1,10 +1,9 @@ -import { html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UmbInputUploadFieldElement } from '../../../components/input-upload-field/input-upload-field.element'; +import { UmbInputUploadFieldElement } from '../../../components/input-upload-field/input-upload-field.element.js'; +import { html , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import type { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-upload-field diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/upload-field/property-editor-ui-upload-field.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/upload-field/property-editor-ui-upload-field.stories.ts index 7729437b01..63614d49fc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/upload-field/property-editor-ui-upload-field.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/upload-field/property-editor-ui-upload-field.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIUploadFieldElement } from './property-editor-ui-upload-field.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIUploadFieldElement } from './property-editor-ui-upload-field.element'; -import './property-editor-ui-upload-field.element'; +import './property-editor-ui-upload-field.element.js'; export default { title: 'Property Editor UIs/Upload Field', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/upload-field/property-editor-ui-upload-field.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/upload-field/property-editor-ui-upload-field.test.ts index a430089aec..20ec7d860a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/upload-field/property-editor-ui-upload-field.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/upload-field/property-editor-ui-upload-field.test.ts @@ -1,21 +1,19 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIUploadFieldElement } from './property-editor-ui-upload-field.element'; +import { UmbPropertyEditorUIUploadFieldElement } from './property-editor-ui-upload-field.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIUploadFieldElement', () => { - let element: UmbPropertyEditorUIUploadFieldElement; + let element: UmbPropertyEditorUIUploadFieldElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-upload-field></umb-property-editor-ui-upload-field> ` - ); - }); + beforeEach(async () => { + element = await fixture(html` <umb-property-editor-ui-upload-field></umb-property-editor-ui-upload-field> `); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUIUploadFieldElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUIUploadFieldElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/user-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/user-picker/manifests.ts index fb3a8ce8e8..6fe35ba8de 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/user-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/user-picker/manifests.ts @@ -1,13 +1,13 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.UserPicker', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.UserPicker', name: 'User Picker Property Editor UI', - loader: () => import('./property-editor-ui-user-picker.element'), + loader: () => import('./property-editor-ui-user-picker.element.js'), meta: { label: 'User Picker', - propertyEditorModel: 'Umbraco.UserPicker', + propertyEditorAlias: 'Umbraco.UserPicker', icon: 'umb:user', group: 'people', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/user-picker/property-editor-ui-user-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/user-picker/property-editor-ui-user-picker.element.ts index 8f98f9d9a7..195a8bcf8d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/user-picker/property-editor-ui-user-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/user-picker/property-editor-ui-user-picker.element.ts @@ -1,9 +1,8 @@ -import { html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-user-picker diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/user-picker/property-editor-ui-user-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/user-picker/property-editor-ui-user-picker.stories.ts index b57a2e47f4..497ca5b084 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/user-picker/property-editor-ui-user-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/user-picker/property-editor-ui-user-picker.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIUserPickerElement } from './property-editor-ui-user-picker.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIUserPickerElement } from './property-editor-ui-user-picker.element'; -import './property-editor-ui-user-picker.element'; +import './property-editor-ui-user-picker.element.js'; export default { title: 'Property Editor UIs/User Picker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/user-picker/property-editor-ui-user-picker.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/user-picker/property-editor-ui-user-picker.test.ts index d9c269599c..16474612a0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/user-picker/property-editor-ui-user-picker.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/user-picker/property-editor-ui-user-picker.test.ts @@ -1,21 +1,19 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIUserPickerElement } from './property-editor-ui-user-picker.element'; +import { UmbPropertyEditorUIUserPickerElement } from './property-editor-ui-user-picker.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIUserPickerElement', () => { - let element: UmbPropertyEditorUIUserPickerElement; + let element: UmbPropertyEditorUIUserPickerElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-user-picker></umb-property-editor-ui-user-picker> ` - ); - }); + beforeEach(async () => { + element = await fixture(html` <umb-property-editor-ui-user-picker></umb-property-editor-ui-user-picker> `); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUIUserPickerElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUIUserPickerElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/value-type/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/value-type/manifests.ts index 50364b58a6..dadee77196 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/value-type/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/value-type/manifests.ts @@ -1,14 +1,14 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.ValueType', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.ValueType', name: 'Value Type Property Editor UI', - loader: () => import('./property-editor-ui-value-type.element'), + loader: () => import('./property-editor-ui-value-type.element.js'), meta: { label: 'Value Type', icon: 'umb:autofill', group: 'common', - propertyEditorModel: 'Umbraco.JSON', + propertyEditorAlias: 'Umbraco.JSON', }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/value-type/property-editor-ui-value-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/value-type/property-editor-ui-value-type.element.ts index ec779958ce..28cbd715c0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/value-type/property-editor-ui-value-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/value-type/property-editor-ui-value-type.element.ts @@ -1,10 +1,9 @@ -import { html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import type { UUISelectEvent } from '@umbraco-ui/uui'; -import { customElement, property, state } from 'lit/decorators.js'; +import { html , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import type { UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-value-type diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/value-type/property-editor-ui-value-type.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/value-type/property-editor-ui-value-type.stories.ts index f0ec7b357f..cd9d71020d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/value-type/property-editor-ui-value-type.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/value-type/property-editor-ui-value-type.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIValueTypeElement } from './property-editor-ui-value-type.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIValueTypeElement } from './property-editor-ui-value-type.element'; -import './property-editor-ui-value-type.element'; +import './property-editor-ui-value-type.element.js'; export default { title: 'Property Editor UIs/Value Type', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/value-type/property-editor-ui-value-type.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/value-type/property-editor-ui-value-type.test.ts index 4f79194650..88a4ae7279 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/value-type/property-editor-ui-value-type.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/uis/value-type/property-editor-ui-value-type.test.ts @@ -1,21 +1,19 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUIValueTypeElement } from './property-editor-ui-value-type.element'; +import { UmbPropertyEditorUIValueTypeElement } from './property-editor-ui-value-type.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUIValueTypeElement', () => { - let element: UmbPropertyEditorUIValueTypeElement; + let element: UmbPropertyEditorUIValueTypeElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-value-type></umb-property-editor-ui-value-type> ` - ); - }); + beforeEach(async () => { + element = await fixture(html` <umb-property-editor-ui-value-type></umb-property-editor-ui-value-type> `); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUIValueTypeElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUIValueTypeElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/index.ts new file mode 100644 index 0000000000..0f21409ca3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/index.ts @@ -0,0 +1,8 @@ +export * from './section-main/index.js'; +export * from './section-sidebar/index.js'; +export * from './section-sidebar-context-menu/index.js'; +export * from './section-sidebar-menu/index.js'; +export * from './section-sidebar-menu-with-entity-actions/index.js'; +export * from './section-views/index.js'; +export * from './section-default.element.js'; +export * from './section.context.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/section/section.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/section/section.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts index 040f680eab..71fc7c7743 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/section/section.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts @@ -1,9 +1,8 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, nothing } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { map } from 'rxjs'; -import type { UmbWorkspaceElement } from '../workspace/workspace.element'; -import type { UmbSectionViewsElement } from './section-views/section-views.element'; +import type { UmbWorkspaceElement } from '../workspace/workspace.element.js'; +import type { UmbSectionViewsElement } from './section-views/section-views.element.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { map } from '@umbraco-cms/backoffice/external/rxjs'; import { ManifestSection, ManifestSectionSidebarApp, @@ -13,8 +12,6 @@ import { import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import './section-sidebar-menu/section-sidebar-menu.element'; - /** * @export * @class UmbBaseSectionElement @@ -41,14 +38,14 @@ export class UmbSectionDefaultElement extends UmbLitElement implements UmbSectio this._routes = [ { path: 'workspace/:entityType', - component: () => import('../workspace/workspace.element'), + component: () => import('../workspace/workspace.element.js'), setup: (element, info) => { (element as UmbWorkspaceElement).entityType = info.match.params.entityType; }, }, { path: '**', - component: () => import('./section-views/section-views.element'), + component: () => import('./section-views/section-views.element.js'), setup: (element) => { (element as UmbSectionViewsElement).sectionAlias = this.manifest?.alias; }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-main/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-main/index.ts new file mode 100644 index 0000000000..1c494b2e60 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-main/index.ts @@ -0,0 +1 @@ +export * from './section-main.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-main/section-main.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-main/section-main.element.ts similarity index 69% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-main/section-main.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/section/section-main/section-main.element.ts index 3ff9f331a6..371071d4e5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-main/section-main.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-main/section-main.element.ts @@ -1,11 +1,8 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, LitElement } from 'lit'; -import { customElement } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, LitElement, customElement } from '@umbraco-cms/backoffice/external/lit'; @customElement('umb-section-main') export class UmbSectionMainElement extends LitElement { - - render() { return html` <main> @@ -13,7 +10,7 @@ export class UmbSectionMainElement extends LitElement { </main> `; } - + static styles = [ UUITextStyles, css` @@ -22,8 +19,8 @@ export class UmbSectionMainElement extends LitElement { height: 100%; } - main, - slot { + main { + position: relative; display: flex; flex-direction: column; height: 100%; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-main/section-main.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-main/section-main.stories.ts similarity index 79% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-main/section-main.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/section/section-main/section-main.stories.ts index 8f7ae070a8..51222d7c50 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-main/section-main.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-main/section-main.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbSectionMainElement } from './section-main.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbSectionMainElement } from './section-main.element'; -import './section-main.element'; +import './section-main.element.js'; export default { title: 'Sections/Shared/Section Main', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/index.ts new file mode 100644 index 0000000000..c1420f9b8a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/index.ts @@ -0,0 +1 @@ +export * from './section-sidebar-context-menu.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts similarity index 80% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts index da011111ce..dd5f6c1657 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts @@ -1,8 +1,6 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html, nothing } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { UmbSectionSidebarContext, UMB_SECTION_SIDEBAR_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/section'; +import { UmbSectionSidebarContext, UMB_SECTION_SIDEBAR_CONTEXT_TOKEN } from '../section-sidebar/index.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing, customElement, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-section-sidebar-context-menu') @@ -61,13 +59,13 @@ export class UmbSectionSidebarContextMenuElement extends UmbLitElement { // TODO: allow different views depending on left or right click #renderModal() { - return this._isOpen + return this._isOpen && this._unique !== undefined ? html`<div id="action-modal"> <h3>${this._headline}</h3> <umb-entity-action-list @executed=${this.#onActionExecuted} - entity-type=${ifDefined(this._entityType)} - unique=${ifDefined(this._unique)}></umb-entity-action-list> + .entityType=${this._entityType} + .unique=${this._unique}></umb-entity-action-list> </div>` : nothing; } @@ -101,16 +99,25 @@ export class UmbSectionSidebarContextMenuElement extends UmbLitElement { } #action-modal { position: absolute; - left: 300px; + left: var(--umb-section-sidebar-width); height: 100%; z-index: 1; top: 0; - width: 300px; + width: var(--umb-section-sidebar-width); border: none; border-left: 1px solid var(--uui-color-border); border-right: 1px solid var(--uui-color-border); background-color: var(--uui-color-surface); } + + #action-modal h3 { + padding: var(--uui-size-4) var(--uui-size-8); + margin: 0; + min-height: var(--umb-header-layout-height); + box-sizing: border-box; + display: flex; + align-items: center; + } `, ]; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu-with-entity-actions/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu-with-entity-actions/index.ts new file mode 100644 index 0000000000..7b46bb9e99 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu-with-entity-actions/index.ts @@ -0,0 +1 @@ +export * from './section-sidebar-menu-with-entity-actions.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.ts new file mode 100644 index 0000000000..bc64669b46 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.ts @@ -0,0 +1,58 @@ +import { UmbSectionSidebarMenuElement } from '../section-sidebar-menu/section-sidebar-menu.element.js'; +import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; +import { + ManifestSectionSidebarAppMenuWithEntityActionsKind, + UmbBackofficeManifestKind, + umbExtensionsRegistry, +} from '@umbraco-cms/backoffice/extension-registry'; + +import '../../menu/menu.element.js'; + +const manifestWithEntityActions: UmbBackofficeManifestKind = { + type: 'kind', + alias: 'Umb.Kind.Menu', + matchKind: 'menuWithEntityActions', + matchType: 'sectionSidebarApp', + manifest: { + type: 'sectionSidebarApp', + elementName: 'umb-section-sidebar-menu-with-entity-actions', + }, +}; +umbExtensionsRegistry.register(manifestWithEntityActions); + +@customElement('umb-section-sidebar-menu-with-entity-actions') +export class UmbSectionSidebarMenuWithEntityActionsElement extends UmbSectionSidebarMenuElement<ManifestSectionSidebarAppMenuWithEntityActionsKind> { + renderHeader() { + return html`<div id="header"> + <h3>${this.manifest?.meta?.label}</h3> + <umb-entity-actions-bundle + slot="actions" + .unique=${null} + entity-type=${this.manifest?.meta.entityType} + .label=${this.manifest?.meta.label}> + </umb-entity-actions-bundle> + </div> `; + } + + static styles = [ + ...UmbSectionSidebarMenuElement.styles, + css` + #header { + display: flex; + flex-direction: row; + align-items: center; + } + #header > :first-child { + flex-grow: 1; + } + `, + ]; +} + +export default UmbSectionSidebarMenuWithEntityActionsElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-section-sidebar-menu-with-entity-actions': UmbSectionSidebarMenuElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.stories.ts new file mode 100644 index 0000000000..2be90d9121 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.stories.ts @@ -0,0 +1,15 @@ +import { Meta, Story } from '@storybook/web-components'; +import { html } from 'lit'; + +import type { UmbSectionSidebarMenuWithEntityActionsElement } from './section-sidebar-menu-with-entity-actions.element.js'; +import './section-sidebar-menu-with-entity-actions.element.js'; + +export default { + title: 'Sections/Shared/Section Sidebar Menu With Entity Actions', + component: 'umb-section-sidebar-menu-with-entity-actions', + id: 'umb-section-sidebar-menu-with-entity-actions', +} as Meta; + +export const AAAOverview: Story<UmbSectionSidebarMenuWithEntityActionsElement> = () => + html` <umb-section-sidebar-menu-with-entity-actions></umb-section-sidebar-menu-with-entity-actions>`; +AAAOverview.storyName = 'Overview'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu/index.ts new file mode 100644 index 0000000000..2d3149a8d4 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu/index.ts @@ -0,0 +1 @@ +export * from './section-sidebar-menu.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-sidebar-menu/section-sidebar-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu/section-sidebar-menu.element.ts similarity index 69% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-sidebar-menu/section-sidebar-menu.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu/section-sidebar-menu.element.ts index b7939f8927..d06cd889b2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-sidebar-menu/section-sidebar-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu/section-sidebar-menu.element.ts @@ -1,16 +1,14 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { ManifestMenu, + ManifestSectionSidebarAppBaseMenu, ManifestSectionSidebarAppMenuKind, UmbBackofficeManifestKind, umbExtensionsRegistry, } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import '../../menu/menu.element'; - // TODO: Move to separate file: const manifest: UmbBackofficeManifestKind = { type: 'kind', @@ -25,13 +23,19 @@ const manifest: UmbBackofficeManifestKind = { umbExtensionsRegistry.register(manifest); @customElement('umb-section-sidebar-menu') -export class UmbSectionSidebarMenuElement extends UmbLitElement { +export class UmbSectionSidebarMenuElement< + ManifestType extends ManifestSectionSidebarAppBaseMenu = ManifestSectionSidebarAppMenuKind +> extends UmbLitElement { @property() - manifest?: ManifestSectionSidebarAppMenuKind; + manifest?: ManifestType; + + renderHeader() { + return html`<h3>${this.manifest?.meta?.label}</h3>`; + } render() { // TODO: link to dashboards when clicking on the menu item header - return html` <h3>${this.manifest?.meta?.label}</h3> + return html`${this.renderHeader()} <umb-extension-slot type="menu" .filter=${(menu: ManifestMenu) => menu.alias === this.manifest?.meta?.menu} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-sidebar-menu/section-sidebar-menu.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu/section-sidebar-menu.stories.ts similarity index 77% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-sidebar-menu/section-sidebar-menu.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu/section-sidebar-menu.stories.ts index 797b347e47..b0da353044 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-sidebar-menu/section-sidebar-menu.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu/section-sidebar-menu.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbSectionSidebarMenuElement } from './section-sidebar-menu.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbSectionSidebarMenuElement } from './section-sidebar-menu.element'; -import './section-sidebar-menu.element'; +import './section-sidebar-menu.element.js'; export default { title: 'Sections/Shared/Section Sidebar Menu', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/index.ts new file mode 100644 index 0000000000..dbb38f6093 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/index.ts @@ -0,0 +1,2 @@ +export * from './section-sidebar.context.js'; +export * from './section-sidebar.element.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/section/sidebar/section-sidebar.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.context.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/libs/section/sidebar/section-sidebar.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.context.ts index b903a4c06c..64e0f4d88e 100644 --- a/src/Umbraco.Web.UI.Client/libs/section/sidebar/section-sidebar.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.context.ts @@ -20,14 +20,13 @@ export class UmbSectionSidebarContext { this.#host = host; } - toggleContextMenu(entityType: string, unique: string | null | undefined, headline: string) { - console.log('open for ', entityType, unique, headline); + toggleContextMenu(entityType: string, unique: string | null | undefined, headline: string | undefined) { this.openContextMenu(entityType, unique, headline); } // TODO: we wont get notified about tree item name changes because we don't have a subscription // we need to figure out how we best can handle this when we only know the entity and unique id - openContextMenu(entityType: string, unique: string | null | undefined, headline: string) { + openContextMenu(entityType: string, unique: string | null | undefined, headline: string | undefined) { this.#entityType.next(entityType); this.#unique.next(unique); this.#headline.next(headline); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-sidebar/section-sidebar.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.element.ts similarity index 75% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-sidebar/section-sidebar.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.element.ts index 3b4795cc0c..3f84156ab8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-sidebar/section-sidebar.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.element.ts @@ -1,12 +1,8 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement } from 'lit/decorators.js'; -import { UmbSectionSidebarContext, UMB_SECTION_SIDEBAR_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/section'; +import { UmbSectionSidebarContext, UMB_SECTION_SIDEBAR_CONTEXT_TOKEN } from './section-sidebar.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import '../../tree/context-menu/tree-context-menu.service'; -import '../section-sidebar-context-menu/section-sidebar-context-menu.element'; - @customElement('umb-section-sidebar') export class UmbSectionSidebarElement extends UmbLitElement { #sectionSidebarContext = new UmbSectionSidebarContext(this); @@ -30,7 +26,7 @@ export class UmbSectionSidebarElement extends UmbLitElement { UUITextStyles, css` :host { - flex: 0 0 300px; + flex: 0 0 var(--umb-section-sidebar-width); background-color: var(--uui-color-surface); height: 100%; border-right: 1px solid var(--uui-color-border); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-sidebar/section-sidebar.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.stories.ts similarity index 79% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-sidebar/section-sidebar.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.stories.ts index 4b8c2a3fdd..9db14ee52d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-sidebar/section-sidebar.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbSectionSidebarElement } from './section-sidebar.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbSectionSidebarElement } from './section-sidebar.element'; -import './section-sidebar.element'; +import './section-sidebar.element.js'; export default { title: 'Sections/Shared/Section Sidebar', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-views/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-views/index.ts new file mode 100644 index 0000000000..10cbafcc82 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-views/index.ts @@ -0,0 +1 @@ +export * from './section-views.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-views/section-views.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-views/section-views.element.ts similarity index 81% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-views/section-views.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/section/section-views/section-views.element.ts index ef46c6e518..d13438bd04 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/section/section-views/section-views.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-views/section-views.element.ts @@ -1,10 +1,8 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html, nothing } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { map, of } from 'rxjs'; -import { UmbSectionContext, UMB_SECTION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/section'; -import type { UmbRoute } from '@umbraco-cms/backoffice/router'; -import type { UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/internal/router'; +import { UmbSectionContext, UMB_SECTION_CONTEXT_TOKEN } from '../section.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { map, of } from '@umbraco-cms/backoffice/external/rxjs'; +import type { UmbRoute, UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; import { ManifestDashboard, ManifestSectionView, @@ -73,7 +71,7 @@ export class UmbSectionViewsElement extends UmbLitElement { }); const routes = [...dashboardRoutes, ...viewRoutes]; - this._routes = routes?.length > 0 ? [...routes, { path: '**', redirectTo: routes?.[0]?.path }] : []; + this._routes = routes?.length > 0 ? [...routes, { path: '', redirectTo: routes?.[0]?.path }] : []; } private _observeSectionAlias() { @@ -124,16 +122,18 @@ export class UmbSectionViewsElement extends UmbLitElement { return html` ${this._routes.length > 0 ? html` - <div id="header">${this.#renderDashboards()} ${this.#renderViews()}</div> - <umb-router-slot - .routes=${this._routes} - @init=${(event: UmbRouterSlotInitEvent) => { - this._routerPath = event.target.absoluteRouterPath; - }} - @change=${(event: UmbRouterSlotChangeEvent) => { - this._activePath = event.target.localActiveViewPath; - }}> - </umb-router-slot> + <umb-body-layout> + <div id="header" slot="header">${this.#renderDashboards()} ${this.#renderViews()}</div> + <umb-router-slot + .routes=${this._routes} + @init=${(event: UmbRouterSlotInitEvent) => { + this._routerPath = event.target.absoluteRouterPath; + }} + @change=${(event: UmbRouterSlotChangeEvent) => { + this._activePath = event.target.localActiveViewPath; + }}> + </umb-router-slot> + </umb-body-layout> ` : nothing} `; @@ -177,6 +177,13 @@ export class UmbSectionViewsElement extends UmbLitElement { static styles = [ UUITextStyles, css` + :host { + position: relative; + display: flex; + flex-direction: column; + height: 100%; + } + #header { background-color: var(--uui-color-surface); border-bottom: 1px solid var(--uui-color-divider-standalone); diff --git a/src/Umbraco.Web.UI.Client/libs/section/section.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section.context.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/section/section.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/section/section.context.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/index.ts new file mode 100644 index 0000000000..70db439d67 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/index.ts @@ -0,0 +1 @@ +export * from './sorter.controller.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/sorter/sorter.angular.txt b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.angular.txt similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/sorter/sorter.angular.txt rename to src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.angular.txt diff --git a/src/Umbraco.Web.UI.Client/libs/sorter/sorter.controller.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.test.ts similarity index 94% rename from src/Umbraco.Web.UI.Client/libs/sorter/sorter.controller.test.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.test.ts index 99aaa06f40..d824111eb0 100644 --- a/src/Umbraco.Web.UI.Client/libs/sorter/sorter.controller.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.test.ts @@ -1,7 +1,7 @@ import { expect, fixture, html } from '@open-wc/testing'; +import { UmbSorterConfig, UmbSorterController } from './sorter.controller.js'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { customElement } from 'lit/decorators.js'; -import { UmbSorterConfig, UmbSorterController } from './sorter.controller'; +import { customElement } from '@umbraco-cms/backoffice/external/lit'; type SortEntryType = { id: string; diff --git a/src/Umbraco.Web.UI.Client/libs/sorter/sorter.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts similarity index 99% rename from src/Umbraco.Web.UI.Client/libs/sorter/sorter.controller.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts index b1ae784aa1..1d60278edc 100644 --- a/src/Umbraco.Web.UI.Client/libs/sorter/sorter.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts @@ -195,8 +195,6 @@ export class UmbSorterController<T> implements UmbControllerInterface { return this; }; - console.log('containerEl', this.#containerElement.shadowRoot ?? this.#containerElement); - // TODO: Clean up?? this.#observer.disconnect(); @@ -470,7 +468,7 @@ export class UmbSorterController<T> implements UmbControllerInterface { } } - let lastDistance = 99999; + let lastDistance = Infinity; let foundEl: Element | null = null; let foundElDragRect!: DOMRect; let placeAfter = false; diff --git a/src/Umbraco.Web.UI.Client/libs/store/entity-tree-store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-tree-store.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/libs/store/entity-tree-store.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/store/entity-tree-store.ts index 2d21320e45..681e9ec045 100644 --- a/src/Umbraco.Web.UI.Client/libs/store/entity-tree-store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-tree-store.ts @@ -1,6 +1,7 @@ +import { UmbStoreBase } from './store-base.js'; +import type { UmbTreeStore } from './tree-store.interface.js'; import { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; -import { UmbStoreBase, UmbTreeStore } from '@umbraco-cms/backoffice/store'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; /** diff --git a/src/Umbraco.Web.UI.Client/libs/store/file-system-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/file-system-tree.store.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/libs/store/file-system-tree.store.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/store/file-system-tree.store.ts index 5fa493f00e..e06c6b12bc 100644 --- a/src/Umbraco.Web.UI.Client/libs/store/file-system-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/file-system-tree.store.ts @@ -1,6 +1,7 @@ +import { UmbStoreBase } from './store-base.js'; +import { UmbTreeStore } from './tree-store.interface.js'; import { FileSystemTreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; -import { UmbStoreBase, UmbTreeStore } from '@umbraco-cms/backoffice/store'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/index.ts new file mode 100644 index 0000000000..843f8f5513 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/index.ts @@ -0,0 +1,8 @@ +export * from './entity-tree-store.js'; +export * from './file-system-tree.store.js'; +export * from './item-store.interface.js'; +export * from './store-base.js'; +export * from './store-extension-initializer.js'; +export * from './store.interface.js'; +export * from './store.js'; +export * from './tree-store.interface.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/item-store.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/item-store.interface.ts new file mode 100644 index 0000000000..87615b588f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/item-store.interface.ts @@ -0,0 +1,7 @@ +import { UmbStore } from './store.interface.js'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; +import { ItemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; + +export interface UmbItemStore<T extends ItemResponseModelBaseModel = any> extends UmbStore<T> { + items: (uniques: Array<string>) => Observable<Array<T>>; +} diff --git a/src/Umbraco.Web.UI.Client/libs/store/store-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/store-base.ts similarity index 96% rename from src/Umbraco.Web.UI.Client/libs/store/store-base.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/store/store-base.ts index 0fb14f8623..335882f808 100644 --- a/src/Umbraco.Web.UI.Client/libs/store/store-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/store-base.ts @@ -1,4 +1,4 @@ -import { UmbStore } from './store.interface'; +import { UmbStore } from './store.interface.js'; import { UmbContextProviderController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/store/store-extension-initializer.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/store-extension-initializer.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/store/store-extension-initializer.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/store/store-extension-initializer.ts diff --git a/src/Umbraco.Web.UI.Client/libs/store/store.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/store.interface.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/store/store.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/store/store.interface.ts diff --git a/src/Umbraco.Web.UI.Client/libs/store/store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/store.ts similarity index 94% rename from src/Umbraco.Web.UI.Client/libs/store/store.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/store/store.ts index b2c48aedde..03e73c7cc7 100644 --- a/src/Umbraco.Web.UI.Client/libs/store/store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/store.ts @@ -1,5 +1,5 @@ // TODO: delete when the last usages are gone -import type { Observable } from 'rxjs'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; export interface UmbDataStoreIdentifiers { key?: string; diff --git a/src/Umbraco.Web.UI.Client/libs/store/tree-store.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/tree-store.interface.ts similarity index 61% rename from src/Umbraco.Web.UI.Client/libs/store/tree-store.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/store/tree-store.interface.ts index cbe7b563d8..8be54ce6e7 100644 --- a/src/Umbraco.Web.UI.Client/libs/store/tree-store.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/tree-store.interface.ts @@ -1,6 +1,6 @@ -import type { Observable } from 'rxjs'; -import { TreeItemPresentationModel } from '../backend-api'; -import { UmbStore } from './store.interface'; +import { UmbStore } from './store.interface.js'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; +import { TreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; export interface UmbTreeStore<T extends TreeItemPresentationModel = any> extends UmbStore<T> { rootItems: Observable<Array<T>>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/tree/entity-tree-item/entity-tree-item.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-tree-item/entity-tree-item.context.ts similarity index 83% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/tree/entity-tree-item/entity-tree-item.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-tree-item/entity-tree-item.context.ts index 9ad0e517d1..8dbe286e3c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/tree/entity-tree-item/entity-tree-item.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-tree-item/entity-tree-item.context.ts @@ -1,4 +1,4 @@ -import { UmbTreeItemContextBase } from '@umbraco-cms/backoffice/tree'; +import { UmbTreeItemContextBase } from '../tree-item-base/tree-item-base.context.js'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/tree/entity-tree-item/entity-tree-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-tree-item/entity-tree-item.element.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/tree/entity-tree-item/entity-tree-item.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-tree-item/entity-tree-item.element.ts index fd4ec38e1a..9e017f7265 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/tree/entity-tree-item/entity-tree-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-tree-item/entity-tree-item.element.ts @@ -1,7 +1,6 @@ -import { css, html, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property } from 'lit/decorators.js'; -import { UmbEntityTreeItemContext } from './entity-tree-item.context'; +import { UmbEntityTreeItemContext } from './entity-tree-item.context.js'; +import { css, html, nothing , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-tree-item/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-tree-item/index.ts new file mode 100644 index 0000000000..bf4c1f015c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-tree-item/index.ts @@ -0,0 +1,2 @@ +export * from './entity-tree-item.context.js'; +export * from './entity-tree-item.element.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/tree/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/index.ts similarity index 55% rename from src/Umbraco.Web.UI.Client/libs/tree/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/index.ts index a63531e505..16b0419b9d 100644 --- a/src/Umbraco.Web.UI.Client/libs/tree/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/index.ts @@ -1,6 +1,9 @@ -export * from './tree.context'; -export * from './tree-item-base.context'; -export * from './tree-item.context.interface'; +export * from './entity-tree-item/index.js'; +export * from './tree-item/index.js'; +export * from './tree-item-base/index.js'; +export * from './tree-menu-item/index.js'; +export * from './tree.context.js'; +export * from './tree.element.js'; export interface UmbTreeRootModel { type: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/index.ts new file mode 100644 index 0000000000..8e2440f40d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/index.ts @@ -0,0 +1,2 @@ +export * from './tree-item-base.context.js'; +export * from './tree-item-base.element.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/tree/tree-item-base.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts similarity index 94% rename from src/Umbraco.Web.UI.Client/libs/tree/tree-item-base.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts index c5406e2c5f..aa93c42d40 100644 --- a/src/Umbraco.Web.UI.Client/libs/tree/tree-item-base.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts @@ -1,8 +1,8 @@ -import { map } from 'rxjs'; -import { UmbTreeItemContext } from './tree-item.context.interface'; +import { UmbTreeItemContext } from '../tree-item/tree-item.context.interface.js'; +import { UmbTreeContextBase } from '../tree.context.js'; +import { map } from '@umbraco-cms/backoffice/external/rxjs'; import { UMB_SECTION_CONTEXT_TOKEN, UMB_SECTION_SIDEBAR_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/section'; import type { UmbSectionContext, UmbSectionSidebarContext } from '@umbraco-cms/backoffice/section'; -import { UmbTreeContextBase } from '@umbraco-cms/backoffice/tree'; import { ManifestEntityAction, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbBooleanState, @@ -42,6 +42,9 @@ export class UmbTreeItemContextBase<TreeItemType extends TreeItemPresentationMod #isSelectable = new UmbBooleanState(false); isSelectable = this.#isSelectable.asObservable(); + #isSelectableContext = new UmbBooleanState(false); + isSelectableContext = this.#isSelectableContext.asObservable(); + #isSelected = new UmbBooleanState(false); isSelected = this.#isSelected.asObservable(); @@ -138,6 +141,8 @@ export class UmbTreeItemContextBase<TreeItemType extends TreeItemPresentationMod #observeIsSelectable() { if (!this.treeContext) return; new UmbObserverController(this.host, this.treeContext.selectable, (value) => { + this.#isSelectableContext.next(value); + // If the tree is selectable, check if this item is selectable if (value === true) { const isSelectable = this.treeContext?.selectableFilter?.(this.getTreeItem()!) ?? true; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/tree/tree-item-base/tree-item-base.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts similarity index 74% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/tree/tree-item-base/tree-item-base.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts index fc7017304c..4297852298 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/tree/tree-item-base/tree-item-base.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts @@ -1,9 +1,7 @@ -import { css, html, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, state } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { repeat } from 'lit/directives/repeat.js'; -import { UmbTreeItemContext, UMB_TREE_ITEM_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/tree'; +import type { UmbTreeItemContext } from '../tree-item/index.js'; +import { UMB_TREE_ITEM_CONTEXT_TOKEN } from './tree-item-base.context.js'; +import { css, html, nothing, customElement, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { TreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; @@ -21,15 +19,15 @@ export class UmbTreeItemBaseElement extends UmbLitElement { @state() private _isLoading = false; + @state() + private _isSelectableContext = false; + @state() private _isSelectable = false; @state() private _isSelected = false; - @state() - private _hasActions = false; - @state() private _hasChildren = false; @@ -48,19 +46,13 @@ export class UmbTreeItemBaseElement extends UmbLitElement { this.observe(this.#treeItemContext.treeItem, (value) => (this._item = value)); this.observe(this.#treeItemContext.hasChildren, (value) => (this._hasChildren = value)); this.observe(this.#treeItemContext.isLoading, (value) => (this._isLoading = value)); + this.observe(this.#treeItemContext.isSelectableContext, (value) => (this._isSelectableContext = value)); this.observe(this.#treeItemContext.isSelectable, (value) => (this._isSelectable = value)); this.observe(this.#treeItemContext.isSelected, (value) => (this._isSelected = value)); - this.observe(this.#treeItemContext.hasActions, (value) => (this._hasActions = value)); this.observe(this.#treeItemContext.path, (value) => (this._href = value)); }); } - connectedCallback(): void { - super.connectedCallback(); - this.addEventListener('selected', this._handleSelectedItem); - this.addEventListener('unselected', this._handleDeselectedItem); - } - private _handleSelectedItem(event: Event) { event.stopPropagation(); this.#treeItemContext?.select(); @@ -92,16 +84,21 @@ export class UmbTreeItemBaseElement extends UmbLitElement { this.#treeItemContext?.toggleContextMenu(); } + // Note: Currently we want to prevent opening when the item is in a selectable context, but this might change in the future. + // If we like to be able to open items in selectable context, then we might want to make it as a menu item action, so you have to click ... and chose an action called 'Edit' render() { return html` <uui-menu-item @show-children=${this._onShowChildren} + @selected=${this._handleSelectedItem} + @deselected=${this._handleDeselectedItem} + ?disabled=${this._isSelectableContext && !this._isSelectable} ?selectable=${this._isSelectable} ?selected=${this._isSelected} .loading=${this._isLoading} .hasChildren=${this._hasChildren} label="${ifDefined(this._item?.name)}" - href="${ifDefined(this._href)}"> + href="${ifDefined(this._isSelectableContext ? undefined : this._href)}"> ${this.#renderIcon()} ${this.#renderLabel()} ${this.#renderActions()} ${this.#renderChildItems()} <slot></slot> </uui-menu-item> @@ -131,17 +128,14 @@ export class UmbTreeItemBaseElement extends UmbLitElement { } #renderActions() { - return html` - ${this._hasActions - ? html` - <uui-action-bar slot="actions"> - <uui-button @click=${this._openActions} label="Open actions menu"> - <uui-symbol-more></uui-symbol-more> - </uui-button> - </uui-action-bar> - ` - : nothing} - `; + return this.#treeItemContext && this._item + ? html`<umb-entity-actions-bundle + slot="actions" + entity-type=${this.#treeItemContext.type} + .unique=${this.#treeItemContext.unique} + .label=${this._item.name}> + </umb-entity-actions-bundle>` + : ''; } #renderChildItems() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/tree/tree-item-base/tree-item-base.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.stories.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/tree/tree-item-base/tree-item-base.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.stories.ts index f81fe83f46..631a7abde8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/tree/tree-item-base/tree-item-base.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.stories.ts @@ -1,6 +1,6 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import './tree-item-base.element'; -import type { UmbTreeItemBaseElement } from './tree-item-base.element'; +import './tree-item-base.element.js'; +import type { UmbTreeItemBaseElement } from './tree-item-base.element.js'; // TODO: provide tree item context to make this element render properly const meta: Meta<UmbTreeItemBaseElement> = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/index.ts new file mode 100644 index 0000000000..1ee7965541 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/index.ts @@ -0,0 +1,2 @@ +export * from './tree-item.context.interface.js'; +export * from './tree-item.element.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/tree/tree-item.context.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item.context.interface.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/libs/tree/tree-item.context.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item.context.interface.ts index bafa484a6e..2d208cf3cf 100644 --- a/src/Umbraco.Web.UI.Client/libs/tree/tree-item.context.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item.context.interface.ts @@ -1,4 +1,4 @@ -import type { Observable } from 'rxjs'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import type { ProblemDetailsModel, TreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbPagedData } from '@umbraco-cms/backoffice/repository'; @@ -10,6 +10,7 @@ export interface UmbTreeItemContext<TreeItemType extends TreeItemPresentationMod treeItem: Observable<TreeItemType | undefined>; hasChildren: Observable<boolean>; isLoading: Observable<boolean>; + isSelectableContext: Observable<boolean>; isSelectable: Observable<boolean>; isSelected: Observable<boolean>; isActive: Observable<boolean>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/tree/tree-item/tree-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item.element.ts similarity index 83% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/tree/tree-item/tree-item.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item.element.ts index 2664f13835..2fd986404a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/tree/tree-item/tree-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item.element.ts @@ -1,6 +1,5 @@ -import { css, html, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property } from 'lit/decorators.js'; +import { css, html, nothing , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { TreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; import { ManifestTreeItem } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item/index.ts new file mode 100644 index 0000000000..c4d5f8a3f0 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item/index.ts @@ -0,0 +1 @@ +export * from './tree-menu-item.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/tree/tree-menu-item/tree-menu-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item/tree-menu-item.element.ts similarity index 91% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/tree/tree-menu-item/tree-menu-item.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item/tree-menu-item.element.ts index 5ef0c9b45b..1e577af40f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/tree/tree-menu-item/tree-menu-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item/tree-menu-item.element.ts @@ -1,5 +1,4 @@ -import { html, nothing } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; +import { html, nothing , customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { ManifestMenuItemTreeKind, diff --git a/src/Umbraco.Web.UI.Client/libs/tree/tree.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.context.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/libs/tree/tree.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.context.ts index a974eb1827..eb9b8dbbcc 100644 --- a/src/Umbraco.Web.UI.Client/libs/tree/tree.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.context.ts @@ -1,4 +1,4 @@ -import { Observable, map } from 'rxjs'; +import { Observable, map } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbPagedData, UmbTreeRepository } from '@umbraco-cms/backoffice/repository'; import { ManifestTree, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbBooleanState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/tree/tree.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.element.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/tree/tree.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.element.ts index c347737de6..94b1e6125a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/tree/tree.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.element.ts @@ -1,15 +1,11 @@ -import { html, nothing } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { repeat } from 'lit/directives/repeat.js'; -import { UmbTreeContextBase } from '@umbraco-cms/backoffice/tree'; -import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { UmbTreeContextBase } from './tree.context.js'; +import { html, nothing, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { TreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; -import './tree-item/tree-item.element'; -import './tree-item-base/tree-item-base.element'; -import './context-menu/tree-context-menu-page.service'; -import './context-menu/tree-context-menu.service'; +import './tree-item/tree-item.element.js'; +import './tree-item-base/tree-item-base.element.js'; @customElement('umb-tree') export class UmbTreeElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/tree/tree.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.stories.ts similarity index 81% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/tree/tree.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.stories.ts index 9b3c0aa66c..c664288a24 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/tree/tree.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.stories.ts @@ -1,6 +1,6 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import './tree.element'; -import type { UmbTreeElement } from './tree.element'; +import './tree.element.js'; +import type { UmbTreeElement } from './tree.element.js'; const meta: Meta<UmbTreeElement> = { title: 'Components/Tree/Tree', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/umbraco-package.ts b/src/Umbraco.Web.UI.Client/src/packages/core/umbraco-package.ts index 7b77239dc3..0d8c30b4a5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/umbraco-package.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/umbraco-package.ts @@ -5,6 +5,6 @@ export const extensions = [ name: 'Core Entry Point', alias: 'Umb.EntryPoint.Core', type: 'entryPoint', - loader: () => import('./index'), + loader: () => import('./index.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/variant/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/variant/index.ts new file mode 100644 index 0000000000..2155245d23 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/variant/index.ts @@ -0,0 +1 @@ +export * from './variant-id.class.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/variant/variant-id.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/variant/variant-id.class.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/variant/variant-id.class.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/variant/variant-id.class.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/index.ts new file mode 100644 index 0000000000..ae6add6c58 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/index.ts @@ -0,0 +1,9 @@ +export * from './workspace-action/index.js'; +export * from './workspace-action-menu/index.js'; +export * from './workspace-editor/index.js'; +export * from './workspace-footer/index.js'; +export * from './workspace-context/index.js'; +export * from './workspace-variant/index.js'; +export * from './workspace-split-view-manager.class.js'; +export * from './workspace-property/index.js'; +export * from './workspace-property-layout/workspace-property-layout.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action-menu/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action-menu/index.ts new file mode 100644 index 0000000000..02d1af5c38 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action-menu/index.ts @@ -0,0 +1 @@ +export * from './workspace-action-menu.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-action-menu/workspace-action-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action-menu/workspace-action-menu.element.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-action-menu/workspace-action-menu.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action-menu/workspace-action-menu.element.ts index 1a8bd5bd84..1487ee8fa1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-action-menu/workspace-action-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action-menu/workspace-action-menu.element.ts @@ -1,10 +1,8 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbExecutedEvent } from '@umbraco-cms/backoffice/events'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; - +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; @customElement('umb-workspace-action-menu') export class UmbWorkspaceActionMenuElement extends UmbLitElement { @state() diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/common/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/common/index.ts new file mode 100644 index 0000000000..b21a44dbd5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/common/index.ts @@ -0,0 +1 @@ +export * from './save/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/common/save/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/common/save/index.ts new file mode 100644 index 0000000000..068cf4b8c1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/common/save/index.ts @@ -0,0 +1 @@ +export * from './save.action.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/workspace/actions/save/save.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/common/save/save.action.ts similarity index 81% rename from src/Umbraco.Web.UI.Client/libs/workspace/actions/save/save.action.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/common/save/save.action.ts index 5a5d51bdb3..3569aeb3a1 100644 --- a/src/Umbraco.Web.UI.Client/libs/workspace/actions/save/save.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/common/save/save.action.ts @@ -1,5 +1,5 @@ -import { UmbWorkspaceContextInterface } from '../../context/workspace-context.interface'; -import { UmbWorkspaceActionBase } from '../workspace-action-base'; +import { UmbWorkspaceContextInterface } from '../../../workspace-context/workspace-context.interface.js'; +import { UmbWorkspaceActionBase } from '../../workspace-action-base.js'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; // TODO: add interface for repo/partial repo/save-repo diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/index.ts new file mode 100644 index 0000000000..54ce45d8a0 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/index.ts @@ -0,0 +1,3 @@ +export * from './workspace-action-base.js'; +export * from './workspace-action.element.js'; +export * from './common/index.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/workspace/actions/workspace-action-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/workspace-action-base.ts similarity index 82% rename from src/Umbraco.Web.UI.Client/libs/workspace/actions/workspace-action-base.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/workspace-action-base.ts index 7e3a27ae9d..ec350bfa41 100644 --- a/src/Umbraco.Web.UI.Client/libs/workspace/actions/workspace-action-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/workspace-action-base.ts @@ -1,6 +1,6 @@ -import { UmbWorkspaceContextInterface } from '../context'; +import { UmbWorkspaceContextInterface, UMB_ENTITY_WORKSPACE_CONTEXT } from '../workspace-context/index.js'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbContextConsumerController, UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; +import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; export interface UmbWorkspaceAction<WorkspaceType = unknown> { host: UmbControllerHostElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-action/workspace-action.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/workspace-action.element.ts similarity index 83% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-action/workspace-action.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/workspace-action.element.ts index 34dbe9ff0a..3d2e55a7f1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-action/workspace-action.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/workspace-action.element.ts @@ -1,8 +1,7 @@ -import { css, html } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import type { UUIButtonState } from '@umbraco-ui/uui'; -import { UmbWorkspaceAction } from '@umbraco-cms/backoffice/workspace'; +import { UmbWorkspaceAction } from './index.js'; +import { css, html , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; import { UmbExecutedEvent } from '@umbraco-cms/backoffice/events'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { ManifestWorkspaceAction } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-content/views/collection/workspace-view-collection.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-content/views/collection/workspace-view-collection.element.ts similarity index 89% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-content/views/collection/workspace-view-collection.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-content/views/collection/workspace-view-collection.element.ts index a792ae959d..ff791ed8e1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-content/views/collection/workspace-view-collection.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-content/views/collection/workspace-view-collection.element.ts @@ -1,14 +1,12 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; +import { css, html , customElement , ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbCollectionContext, UMB_COLLECTION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/collection'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { FolderTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import type { ManifestWorkspaceViewCollection } from '@umbraco-cms/backoffice/extension-registry'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; -import '../../../../collection/dashboards/dashboard-collection.element'; +import '../../../../collection/dashboards/dashboard-collection.element.js'; @customElement('umb-workspace-view-collection') export class UmbWorkspaceViewCollectionElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-context/entity-manager-controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/entity-manager-controller.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-context/entity-manager-controller.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/entity-manager-controller.ts diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/token/entity-workspace-context.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/entity-workspace-context.token.ts similarity index 56% rename from src/Umbraco.Web.UI.Client/libs/context-api/token/entity-workspace-context.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/entity-workspace-context.token.ts index b112693baf..e40eb8fcf3 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/token/entity-workspace-context.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/entity-workspace-context.token.ts @@ -1,5 +1,5 @@ -import { UmbEntityWorkspaceContextInterface } from '../../workspace/context/workspace-entity-context.interface'; -import { UmbContextToken } from './context-token'; +import { UmbEntityWorkspaceContextInterface } from './workspace-entity-context.interface.js'; +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbEntityBase } from '@umbraco-cms/backoffice/models'; export const UMB_ENTITY_WORKSPACE_CONTEXT = new UmbContextToken<UmbEntityWorkspaceContextInterface<UmbEntityBase>>( diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/index.ts new file mode 100644 index 0000000000..e56905b8ea --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/index.ts @@ -0,0 +1,7 @@ +export * from './entity-manager-controller.js'; +export * from './workspace-context.js'; +export * from './workspace-context.interface.js'; +export * from './workspace-entity-context.interface.js'; +export * from './workspace-invariantable-entity-context.interface.js'; +export * from './workspace-variable-entity-context.interface.js'; +export * from './entity-workspace-context.token.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/workspace/context/workspace-context.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-context.interface.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/libs/workspace/context/workspace-context.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-context.interface.ts index 0c3e6255ab..29d991ccc3 100644 --- a/src/Umbraco.Web.UI.Client/libs/workspace/context/workspace-context.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-context.interface.ts @@ -1,4 +1,4 @@ -import { Observable } from 'rxjs'; +import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export interface UmbWorkspaceContextInterface<DataType = unknown> { diff --git a/src/Umbraco.Web.UI.Client/libs/workspace/context/workspace-context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-context.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/libs/workspace/context/workspace-context.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-context.ts index 68a32c56dd..0362130fe2 100644 --- a/src/Umbraco.Web.UI.Client/libs/workspace/context/workspace-context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-context.ts @@ -1,8 +1,9 @@ -import { UmbEntityWorkspaceContextInterface } from './workspace-entity-context.interface'; -import { UmbContextProviderController, UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; +import { UmbEntityWorkspaceContextInterface } from './workspace-entity-context.interface.js'; +import { UmbContextProviderController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; import type { UmbEntityBase } from '@umbraco-cms/backoffice/models'; +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; /* diff --git a/src/Umbraco.Web.UI.Client/libs/workspace/context/workspace-entity-context.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-entity-context.interface.ts similarity index 82% rename from src/Umbraco.Web.UI.Client/libs/workspace/context/workspace-entity-context.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-entity-context.interface.ts index 878f050818..aebeb94036 100644 --- a/src/Umbraco.Web.UI.Client/libs/workspace/context/workspace-entity-context.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-entity-context.interface.ts @@ -1,4 +1,4 @@ -import type { UmbWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; +import type { UmbWorkspaceContextInterface } from './workspace-context.interface.js'; export interface UmbEntityWorkspaceContextInterface<EntityType = unknown> extends UmbWorkspaceContextInterface<EntityType> { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-context/workspace-invariantable-entity-context.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-invariantable-entity-context.interface.ts similarity index 74% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-context/workspace-invariantable-entity-context.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-invariantable-entity-context.interface.ts index f3034504ab..d36117b3ee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-context/workspace-invariantable-entity-context.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-invariantable-entity-context.interface.ts @@ -1,5 +1,5 @@ -import type { Observable } from 'rxjs'; -import type { UmbEntityWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; +import type { UmbEntityWorkspaceContextInterface } from './workspace-entity-context.interface.js'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { ValueModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; export interface UmbWorkspaceInvariantableEntityContextInterface<T = unknown> diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-context/workspace-variable-entity-context.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-variable-entity-context.interface.ts similarity index 77% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-context/workspace-variable-entity-context.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-variable-entity-context.interface.ts index 73b1ca155e..a7f2da15ac 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-context/workspace-variable-entity-context.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-variable-entity-context.interface.ts @@ -1,9 +1,7 @@ -import type { Observable } from 'rxjs'; +import type { UmbWorkspaceSplitViewManager } from '../workspace-split-view-manager.class.js'; +import type { UmbEntityWorkspaceContextInterface } from './workspace-entity-context.interface.js'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; -import type { - UmbEntityWorkspaceContextInterface, - UmbWorkspaceSplitViewManager, -} from '@umbraco-cms/backoffice/workspace'; import type { ValueModelBaseModel, VariantResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; export interface UmbWorkspaceVariableEntityContextInterface<T = unknown> extends UmbEntityWorkspaceContextInterface<T> { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-editor/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-editor/index.ts new file mode 100644 index 0000000000..c372e7e902 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-editor/index.ts @@ -0,0 +1 @@ +export * from './workspace-editor.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-editor/workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-editor/workspace-editor.element.ts similarity index 91% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-editor/workspace-editor.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-editor/workspace-editor.element.ts index ab36a7cf81..8277918c59 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-editor/workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-editor/workspace-editor.element.ts @@ -1,10 +1,12 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, nothing } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { map } from 'rxjs'; -import { repeat } from 'lit/directives/repeat.js'; -import type { PageComponent, UmbRoute } from '@umbraco-cms/backoffice/router'; -import type { UmbRouterSlotInitEvent, UmbRouterSlotChangeEvent } from '@umbraco-cms/internal/router'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { map } from '@umbraco-cms/backoffice/external/rxjs'; +import type { + PageComponent, + UmbRoute, + UmbRouterSlotInitEvent, + UmbRouterSlotChangeEvent, +} from '@umbraco-cms/backoffice/router'; import { ManifestWorkspaceEditorView, ManifestWorkspaceViewCollection, @@ -102,7 +104,7 @@ export class UmbWorkspaceEditorElement extends UmbLitElement { component: () => { if (manifest.type === 'workspaceViewCollection') { return import( - '../workspace-content/views/collection/workspace-view-collection.element' + '../workspace-content/views/collection/workspace-view-collection.element.js' ) as unknown as Promise<HTMLElement>; } return createExtensionElement(manifest); @@ -137,8 +139,8 @@ export class UmbWorkspaceEditorElement extends UmbLitElement { ${this.enforceNoFooter ? '' : html` - <umb-workspace-footer alias=${this.alias}> - <slot name="footer"></slot> + <umb-workspace-footer slot="footer" alias=${this.alias}> + <slot name="footer-info"></slot> <slot name="actions" slot="actions"></slot> </umb-workspace-footer> `} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-editor/workspace-editor.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-editor/workspace-editor.stories.ts similarity index 77% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-editor/workspace-editor.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-editor/workspace-editor.stories.ts index 734f874d9c..e1413712c5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-editor/workspace-editor.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-editor/workspace-editor.stories.ts @@ -1,9 +1,8 @@ -import './workspace-editor.element'; +import './workspace-editor.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; - -import type { UmbWorkspaceEditorElement } from './workspace-editor.element'; +import type { UmbWorkspaceEditorElement } from './workspace-editor.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; export default { title: 'Workspaces/Shared/Workspace Editor', @@ -14,7 +13,7 @@ export default { export const AAAOverview: Story<UmbWorkspaceEditorElement> = () => html` <umb-workspace-editor> <div slot="icon"><uui-button color="" look="placeholder">Icon slot</uui-button></div> <div slot="name"><uui-button color="" look="placeholder">Name slot</uui-button></div> - <div slot="footer"><uui-button color="" look="placeholder">Footer slot</uui-button></div> + <div slot="footer-info"><uui-button color="" look="placeholder">Footer slot</uui-button></div> <div slot="actions"><uui-button color="" look="placeholder">Actions slot</uui-button></div> <uui-button color="" look="placeholder">Default slot</uui-button> </umb-workspace-editor>`; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/index.ts new file mode 100644 index 0000000000..26bb6d556e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/index.ts @@ -0,0 +1 @@ +export * from './workspace-footer.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-footer/workspace-footer.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/workspace-footer.element.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-footer/workspace-footer.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/workspace-footer.element.ts index 6e353a9cfe..49ea30ac3d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-footer/workspace-footer.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/workspace-footer.element.ts @@ -1,6 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; import type { ManifestWorkspaceAction } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-footer/workspace-footer.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/workspace-footer.stories.ts similarity index 76% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-footer/workspace-footer.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/workspace-footer.stories.ts index 1dc0fbb9eb..96706a0d97 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-footer/workspace-footer.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/workspace-footer.stories.ts @@ -1,10 +1,10 @@ -import '../workspace-editor/workspace-editor.element'; -import './workspace-footer.element'; +import '../workspace-editor/workspace-editor.element.js'; +import './workspace-footer.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbWorkspaceFooterLayoutElement } from './workspace-footer.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbWorkspaceFooterLayoutElement } from './workspace-footer.element'; export default { title: 'Workspaces/Shared/Footer Layout', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-property-layout/workspace-property-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property-layout/workspace-property-layout.element.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-property-layout/workspace-property-layout.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property-layout/workspace-property-layout.element.ts index 0363bb948b..0dcb31aea0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-property-layout/workspace-property-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property-layout/workspace-property-layout.element.ts @@ -1,6 +1,5 @@ -import { css, html, LitElement } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property } from 'lit/decorators.js'; +import { css, html, LitElement , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; /** * @element umb-workspace-property-layout diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-property-layout/workspace-property-layout.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property-layout/workspace-property-layout.stories.ts similarity index 82% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-property-layout/workspace-property-layout.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property-layout/workspace-property-layout.stories.ts index acc53311bd..eeb0ff8842 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-property-layout/workspace-property-layout.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property-layout/workspace-property-layout.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbWorkspacePropertyLayoutElement } from './workspace-property-layout.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbWorkspacePropertyLayoutElement } from './workspace-property-layout.element'; -import './workspace-property-layout.element'; +import './workspace-property-layout.element.js'; export default { title: 'Workspaces/Shared/Editor Property Layout', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property/index.ts new file mode 100644 index 0000000000..e2f4580fb6 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property/index.ts @@ -0,0 +1,2 @@ +export * from './workspace-property.context.js'; +export * from './workspace-property.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace-property/workspace-property.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property/workspace-property.context.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/workspace-property/workspace-property.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property/workspace-property.context.ts index 5d0a7fa3fb..b8cd8f9ff4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace-property/workspace-property.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property/workspace-property.context.ts @@ -1,5 +1,5 @@ -import { UmbWorkspaceVariableEntityContextInterface } from '../workspace/workspace-context/workspace-variable-entity-context.interface'; -import { UMB_WORKSPACE_VARIANT_CONTEXT_TOKEN } from '../workspace/workspace-variant/workspace-variant.context'; +import { UmbWorkspaceVariableEntityContextInterface } from '../workspace-context/workspace-variable-entity-context.interface.js'; +import { UMB_WORKSPACE_VARIANT_CONTEXT_TOKEN, UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import type { DataTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; @@ -13,7 +13,6 @@ import { UmbContextConsumerController, UmbContextProviderController, UmbContextToken, - UMB_ENTITY_WORKSPACE_CONTEXT, } from '@umbraco-cms/backoffice/context-api'; // If we get this from the server then we can consider using TypeScripts Partial<> around the model from the Management-API. @@ -104,7 +103,7 @@ export class UmbWorkspacePropertyContext<ValueType = any> { this._workspaceContext?.setPropertyValue(alias, value, this.#variantId.getValue()); } } - public setConfig(config: WorkspacePropertyData<ValueType>['config']) { + public setConfig(config: WorkspacePropertyData<ValueType>['config'] | undefined) { this._data.update({ config }); } public setVariantId(variantId: UmbVariantId | undefined) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace-property/workspace-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property/workspace-property.element.ts similarity index 89% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/workspace-property/workspace-property.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property/workspace-property.element.ts index 01a55bb288..461a3cae5f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace-property/workspace-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property/workspace-property.element.ts @@ -1,18 +1,13 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { UmbWorkspacePropertyContext } from './workspace-property.context'; +import { UmbWorkspacePropertyContext } from './workspace-property.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import { createExtensionElement } from '@umbraco-cms/backoffice/extension-api'; -import { ManifestPropertyEditorUI, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import { ManifestPropertyEditorUi, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { DataTypePropertyPresentationModel } from '@umbraco-cms/backoffice/backend-api'; - -import '../../property-actions/shared/property-action-menu/property-action-menu.element'; -import '../workspace/workspace-property-layout/workspace-property-layout.element'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; /** * @element umb-workspace-property @@ -91,7 +86,7 @@ export class UmbWorkspacePropertyElement extends UmbLitElement { * @default '' */ @property({ type: Object, attribute: false }) - public set config(value: DataTypePropertyPresentationModel[]) { + public set config(value: DataTypePropertyPresentationModel[] | undefined) { this._propertyContext.setConfig(value); } @@ -112,7 +107,7 @@ export class UmbWorkspacePropertyElement extends UmbLitElement { private _variantDifference?: string; @state() - private _element?: ManifestPropertyEditorUI['ELEMENT_TYPE']; + private _element?: ManifestPropertyEditorUi['ELEMENT_TYPE']; @state() private _value?: unknown; @@ -128,7 +123,7 @@ export class UmbWorkspacePropertyElement extends UmbLitElement { private _propertyContext = new UmbWorkspacePropertyContext(this); - private propertyEditorUIObserver?: UmbObserverController<ManifestPropertyEditorUI | undefined>; + private propertyEditorUIObserver?: UmbObserverController<ManifestPropertyEditorUi | undefined>; private _valueObserver?: UmbObserverController<unknown>; private _configObserver?: UmbObserverController<DataTypePropertyPresentationModel[] | undefined>; @@ -161,14 +156,14 @@ export class UmbWorkspacePropertyElement extends UmbLitElement { private _observePropertyEditorUI() { this.propertyEditorUIObserver?.destroy(); this.propertyEditorUIObserver = this.observe( - umbExtensionsRegistry.getByTypeAndAlias('propertyEditorUI', this._propertyEditorUiAlias), + umbExtensionsRegistry.getByTypeAndAlias('propertyEditorUi', this._propertyEditorUiAlias), (manifest) => { this._gotEditorUI(manifest); } ); } - private _gotEditorUI(manifest?: ManifestPropertyEditorUI | null) { + private _gotEditorUI(manifest?: ManifestPropertyEditorUi | null) { if (!manifest) { // TODO: if propertyEditorUiAlias didn't exist in store, we should do some nice fail UI. return; @@ -180,7 +175,7 @@ export class UmbWorkspacePropertyElement extends UmbLitElement { oldValue?.removeEventListener('change', this._onPropertyEditorChange as any as EventListener); - this._element = el as ManifestPropertyEditorUI['ELEMENT_TYPE']; + this._element = el as ManifestPropertyEditorUi['ELEMENT_TYPE']; this._valueObserver?.destroy(); this._configObserver?.destroy(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace-property/workspace-property.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property/workspace-property.stories.ts similarity index 73% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/workspace-property/workspace-property.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property/workspace-property.stories.ts index ffe256bb60..1f57c64cad 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace-property/workspace-property.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property/workspace-property.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbWorkspacePropertyElement } from './workspace-property.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbWorkspacePropertyElement } from './workspace-property.element'; -import './workspace-property.element'; +import './workspace-property.element.js'; export default { title: 'Components/Entity Property', @@ -15,6 +15,6 @@ export const AAAOverview: Story<UmbWorkspacePropertyElement> = () => label="Property" description="Description" alias="textProperty" - property-editor-ui-alias="Umb.PropertyEditorUI.TextBox" + property-editor-ui-alias="Umb.PropertyEditorUi.TextBox" .value="${'Hello'}"></umb-workspace-property>`; AAAOverview.storyName = 'Overview'; diff --git a/src/Umbraco.Web.UI.Client/libs/workspace/workspace-split-view-manager.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view-manager.class.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/workspace/workspace-split-view-manager.class.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view-manager.class.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-variant/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-variant/index.ts new file mode 100644 index 0000000000..3bc643d7aa --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-variant/index.ts @@ -0,0 +1,3 @@ +export * from './variantable-property/variantable-property.element.js'; +export * from './workspace-variant.context.js'; +export * from './workspace-variant.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/variantable-property/variantable-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-variant/variantable-property/variantable-property.element.ts similarity index 91% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/variantable-property/variantable-property.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-variant/variantable-property/variantable-property.element.ts index 03349bfe85..788abcd49f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/variantable-property/variantable-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-variant/variantable-property/variantable-property.element.ts @@ -1,7 +1,6 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UMB_WORKSPACE_VARIANT_CONTEXT_TOKEN } from '../workspace/workspace-variant/workspace-variant.context'; +import { UMB_WORKSPACE_VARIANT_CONTEXT_TOKEN } from '../workspace-variant.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import type { PropertyTypeResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-variant/variantable-property/variantable-property.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-variant/variantable-property/variantable-property.stories.ts new file mode 100644 index 0000000000..9bb61ac331 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-variant/variantable-property/variantable-property.stories.ts @@ -0,0 +1,30 @@ +import { Meta, StoryObj } from '@storybook/web-components'; +import './variantable-property.element.js'; +import type { UmbVariantablePropertyElement } from './variantable-property.element.js'; + +const meta: Meta<UmbVariantablePropertyElement> = { + title: 'Components/Variantable Property', + component: 'umb-variantable-property', +}; + +export default meta; +type Story = StoryObj<UmbVariantablePropertyElement>; + +export const Overview: Story = { + args: { + property: { + name: 'Header', + alias: 'headerAlias', + appearance: { + labelOnTop: false, + }, + description: 'This is a description', + variesByCulture: true, + variesBySegment: true, + validation: { + mandatory: true, + mandatoryMessage: 'This is a mandatory message', + }, + }, + }, +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-variant/workspace-variant.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-variant/workspace-variant.context.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-variant/workspace-variant.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-variant/workspace-variant.context.ts index dae49b5a87..34d3e9329c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-variant/workspace-variant.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-variant/workspace-variant.context.ts @@ -1,13 +1,12 @@ -import { UmbDocumentWorkspaceContext } from '../../../../documents/documents/workspace/document-workspace.context'; -import { UmbWorkspaceVariableEntityContextInterface } from '../workspace-context/workspace-variable-entity-context.interface'; +import { UmbDocumentWorkspaceContext } from '../../../documents/documents/workspace/document-workspace.context.js'; +import { UmbWorkspaceVariableEntityContextInterface } from '../workspace-context/workspace-variable-entity-context.interface.js'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; -import { ActiveVariant } from '@umbraco-cms/backoffice/workspace'; import { UmbContextConsumerController, UmbContextProviderController, UmbContextToken, - UMB_ENTITY_WORKSPACE_CONTEXT, } from '@umbraco-cms/backoffice/context-api'; +import { UMB_ENTITY_WORKSPACE_CONTEXT, ActiveVariant } from '@umbraco-cms/backoffice/workspace'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbClassState, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-variant/workspace-variant.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-variant/workspace-variant.element.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-variant/workspace-variant.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-variant/workspace-variant.element.ts index 764c9e3610..2d25684892 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace-variant/workspace-variant.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-variant/workspace-variant.element.ts @@ -1,7 +1,6 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UmbWorkspaceVariantContext } from './workspace-variant.context'; +import { UmbWorkspaceVariantContext } from './workspace-variant.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace.element.ts similarity index 80% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace.element.ts index 8c97875823..3d1eb0a531 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/workspace/workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace.element.ts @@ -1,6 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, nothing } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing , customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/manifests.ts index 95a5289a80..64883e956f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/manifests.ts @@ -5,7 +5,7 @@ const dashboards: Array<ManifestDashboard> = [ type: 'dashboard', alias: 'Umb.Dashboard.RedirectManagement', name: 'Redirect Management Dashboard', - loader: () => import('./redirect-management/dashboard-redirect-management.element'), + loader: () => import('./redirect-management/dashboard-redirect-management.element.js'), weight: 10, meta: { label: 'Redirect Management', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts index 3a4fd0ee5b..69feeae261 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts @@ -1,7 +1,10 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, nothing } from 'lit'; -import { customElement, state, query, property } from 'lit/decorators.js'; -import { UUIButtonState, UUIPaginationElement, UUIPaginationEvent } from '@umbraco-ui/uui'; +import { + UUITextStyles, + UUIButtonState, + UUIPaginationElement, + UUIPaginationEvent, +} from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing, customElement, state, query, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { @@ -269,7 +272,7 @@ export class UmbDashboardRedirectManagementElement extends UmbLitElement { css` :host { display: block; - margin: var(--uui-size-layout-1); + padding: var(--uui-size-layout-1); } .actions { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.stories.ts index 5ca04fc51e..f7ea5549a7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.stories.ts @@ -1,9 +1,9 @@ -import './dashboard-redirect-management.element'; +import './dashboard-redirect-management.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbDashboardRedirectManagementElement } from './dashboard-redirect-management.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbDashboardRedirectManagementElement } from './dashboard-redirect-management.element'; export default { title: 'Dashboards/Redirect Management', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.test.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.test.ts index 48709103be..b1f1d27719 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.test.ts @@ -1,6 +1,6 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbDashboardRedirectManagementElement } from './dashboard-redirect-management.element'; +import { UmbDashboardRedirectManagementElement } from './dashboard-redirect-management.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbDashboardRedirectManagement', () => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/document-blueprint.detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/document-blueprint.detail.store.ts index 36a1cea37b..fb07fd0d28 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/document-blueprint.detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/document-blueprint.detail.store.ts @@ -1,4 +1,4 @@ -import type { DocumentBlueprintDetails } from './types'; +import type { DocumentBlueprintDetails } from './types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/manifests.ts index 38ebd8a70b..8298f72bec 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/manifests.ts @@ -1,7 +1,7 @@ -import { UmbDocumentBlueprintStore } from './document-blueprint.detail.store'; -import { UmbDocumentBlueprintTreeStore } from './document-blueprint.tree.store'; -import { manifests as menuItemManifests } from './menu-item/manifests'; -import { manifests as workspaceManifests } from './workspace/manifests'; +import { UmbDocumentBlueprintStore } from './document-blueprint.detail.store.js'; +import { UmbDocumentBlueprintTreeStore } from './document-blueprint.tree.store.js'; +import { manifests as menuItemManifests } from './menu-item/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; import type { ManifestStore, ManifestTreeStore } from '@umbraco-cms/backoffice/extension-registry'; export const DOCUMENT_BLUEPRINT_STORE_ALIAS = 'Umb.Store.DocumentBlueprint'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-root-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-root-workspace.element.ts index b1440f2681..26b2193564 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-root-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-root-workspace.element.ts @@ -1,5 +1,4 @@ -import { html, LitElement } from 'lit'; -import { customElement } from 'lit/decorators.js'; +import { html, LitElement , customElement } from '@umbraco-cms/backoffice/external/lit'; @customElement('umb-document-blueprint-root-workspace') export class UmbDocumentBlueprintRootWorkspaceElement extends LitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/manifests.ts index d0b4c75caf..944e219ec5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/manifests.ts @@ -8,7 +8,7 @@ const workspace: ManifestWorkspace = { type: 'workspace', alias: 'Umb.Workspace.DocumentBlueprint.Root', name: 'Document Blueprint Root Workspace', - loader: () => import('./document-blueprint-root-workspace.element'), + loader: () => import('./document-blueprint-root-workspace.element.js'), meta: { entityType: 'document-blueprint-root', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/index.ts index 528d05ed97..7f50f2e118 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/index.ts @@ -1 +1 @@ -import './input-document-type-picker/input-document-type-picker.element'; +import './input-document-type-picker/input-document-type-picker.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type-picker/input-document-type-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type-picker/input-document-type-picker.element.ts index 8fad412c29..0113e7f448 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type-picker/input-document-type-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type-picker/input-document-type-picker.element.ts @@ -1,20 +1,17 @@ -import { css, html, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { ifDefined } from 'lit-html/directives/if-defined.js'; -import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; import { UmbDocumentTypeTreeStore, UMB_DOCUMENT_TYPE_TREE_STORE_CONTEXT_TOKEN, -} from '../../repository/document-type.tree.store'; +} from '../../repository/document-type.tree.store.js'; +import { css, html, nothing, ifDefined, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles, FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; +import { DocumentTypeResponseModel, EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, UMB_CONFIRM_MODAL, - UMB_DOCUMENT_PICKER_MODAL, + UMB_DOCUMENT_TYPE_PICKER_MODAL, } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { DocumentTypeResponseModel, EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; @customElement('umb-input-document-type-picker') @@ -27,7 +24,7 @@ export class UmbInputDocumentTypePickerElement extends FormControlMixin(UmbLitEl } public set selectedIds(ids: Array<string>) { this._selectedIds = ids ?? []; - super.value = ids.join(','); + super.value = this._selectedIds.join(','); this._observePickedDocuments(); } @@ -73,7 +70,7 @@ export class UmbInputDocumentTypePickerElement extends FormControlMixin(UmbLitEl private _openPicker() { // We send a shallow copy(good enough as its just an array of ids) of our this._selectedIds, as we don't want the modal to manipulate our data: - const modalHandler = this._modalContext?.open(UMB_DOCUMENT_PICKER_MODAL, { + const modalHandler = this._modalContext?.open(UMB_DOCUMENT_TYPE_PICKER_MODAL, { multiple: true, selection: [...this._selectedIds], }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts new file mode 100644 index 0000000000..4a4a74014a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts @@ -0,0 +1,27 @@ +import { UmbDocumentTypeRepository } from '../../repository/document-type.repository.js'; +import { UMB_DOCUMENT_TYPE_CREATE_OPTIONS_MODAL } from './modal/index.js'; +import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; +import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; +import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; + +export class UmbCreateDataTypeEntityAction extends UmbEntityActionBase<UmbDocumentTypeRepository> { + #modalContext?: UmbModalContext; + + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { + super(host, repositoryAlias, unique); + + new UmbContextConsumerController(this.host, UMB_MODAL_CONTEXT_TOKEN, (instance) => { + this.#modalContext = instance; + }); + } + + async execute() { + if (!this.#modalContext) throw new Error('Modal context is not available'); + if (!this.repository) throw new Error('Repository is not available'); + + this.#modalContext?.open(UMB_DOCUMENT_TYPE_CREATE_OPTIONS_MODAL, { + parentKey: this.unique, + }); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/manifests.ts new file mode 100644 index 0000000000..c6f9fb21b6 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/manifests.ts @@ -0,0 +1,34 @@ +import { + DOCUMENT_TYPE_ENTITY_TYPE, + DOCUMENT_TYPE_FOLDER_ENTITY_TYPE, + DOCUMENT_TYPE_ROOT_ENTITY_TYPE, +} from '../../index.js'; +import { DOCUMENT_TYPE_REPOSITORY_ALIAS } from '../../repository/manifests.js'; +import { UmbCreateDataTypeEntityAction } from './create.action.js'; +import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; + +const entityActions: Array<ManifestTypes> = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.DocumentType.Create', + name: 'Create Document Type Entity Action', + weight: 1000, + meta: { + icon: 'umb:add', + label: 'Create...', + repositoryAlias: DOCUMENT_TYPE_REPOSITORY_ALIAS, + api: UmbCreateDataTypeEntityAction, + }, + conditions: { + entityTypes: [DOCUMENT_TYPE_ENTITY_TYPE, DOCUMENT_TYPE_ROOT_ENTITY_TYPE, DOCUMENT_TYPE_FOLDER_ENTITY_TYPE], + }, + }, + { + type: 'modal', + alias: 'Umb.Modal.DocumentTypeCreateOptions', + name: 'Document Type Create Options Modal', + loader: () => import('./modal/document-type-create-options-modal.element.js'), + }, +]; + +export const manifests = [...entityActions]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts new file mode 100644 index 0000000000..574a3fbe4b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts @@ -0,0 +1,76 @@ +import { DOCUMENT_TYPE_REPOSITORY_ALIAS } from '../../../repository/manifests.js'; +import { UmbDocumentTypeCreateOptionsModalData } from './index.js'; +import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { + UmbModalContext, + UmbModalHandler, + UMB_FOLDER_MODAL, + UMB_MODAL_CONTEXT_TOKEN, +} from '@umbraco-cms/backoffice/modal'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; + +@customElement('umb-document-type-create-options-modal') +export class UmbDataTypeCreateOptionsModalElement extends UmbLitElement { + @property({ attribute: false }) + modalHandler?: UmbModalHandler<UmbDocumentTypeCreateOptionsModalData>; + + @property({ type: Object }) + data?: UmbDocumentTypeCreateOptionsModalData; + + #modalContext?: UmbModalContext; + + constructor() { + super(); + this.consumeContext(UMB_MODAL_CONTEXT_TOKEN, (instance) => { + this.#modalContext = instance; + }); + } + + #onClick(event: PointerEvent) { + event.stopPropagation(); + const folderModalHandler = this.#modalContext?.open(UMB_FOLDER_MODAL, { + repositoryAlias: DOCUMENT_TYPE_REPOSITORY_ALIAS, + }); + folderModalHandler?.onSubmit().then(() => this.modalHandler?.submit()); + } + + // close the modal when navigating to data type + #onNavigate() { + this.modalHandler?.submit(); + } + + #onCancel() { + this.modalHandler?.reject(); + } + + render() { + return html` + <umb-body-layout headline="Create Document Type"> + <uui-box> + <!-- TODO: construct url --> + <uui-menu-item + href=${`section/settings/workspace/document-type/create/${this.data?.parentKey || 'null'}`} + label="New Document Type..." + @click=${this.#onNavigate}> + <uui-icon slot="icon" name="umb:autofill"></uui-icon>} + </uui-menu-item> + <uui-menu-item @click=${this.#onClick} label="New Folder..."> + <uui-icon slot="icon" name="umb:folder"></uui-icon>} + </uui-menu-item> + </uui-box> + <uui-button slot="actions" id="cancel" label="Cancel" @click="${this.#onCancel}">Cancel</uui-button> + </umb-body-layout> + `; + } + + static styles = [UUITextStyles]; +} + +export default UmbDataTypeCreateOptionsModalElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-document-type-create-options-modal': UmbDataTypeCreateOptionsModalElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/index.ts new file mode 100644 index 0000000000..25864e9b3b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/index.ts @@ -0,0 +1,13 @@ +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; + +export interface UmbDocumentTypeCreateOptionsModalData { + parentKey: string | null; +} + +export const UMB_DOCUMENT_TYPE_CREATE_OPTIONS_MODAL = new UmbModalToken<UmbDocumentTypeCreateOptionsModalData>( + 'Umb.Modal.DocumentTypeCreateOptions', + { + type: 'sidebar', + size: 'small', + } +); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/manifests.ts new file mode 100644 index 0000000000..7ab1073034 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/manifests.ts @@ -0,0 +1,76 @@ +import { DOCUMENT_TYPE_REPOSITORY_ALIAS } from '../repository/manifests.js'; +import { manifests as createManifests } from './create/manifests.js'; +import { + UmbCopyEntityAction, + UmbMoveEntityAction, + UmbTrashEntityAction, + UmbSortChildrenOfEntityAction, +} from '@umbraco-cms/backoffice/entity-action'; +import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; + +const entityType = 'document-type'; + +const entityActions: Array<ManifestEntityAction> = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.DocumentType.Trash', + name: 'Trash Document-Type Entity Action', + weight: 900, + meta: { + icon: 'umb:trash', + label: 'Trash', + repositoryAlias: DOCUMENT_TYPE_REPOSITORY_ALIAS, + api: UmbTrashEntityAction, + }, + conditions: { + entityTypes: [entityType], + }, + }, + { + type: 'entityAction', + alias: 'Umb.EntityAction.DocumentType.Move', + name: 'Move Document-Type Entity Action', + weight: 700, + meta: { + icon: 'umb:enter', + label: 'Move', + repositoryAlias: DOCUMENT_TYPE_REPOSITORY_ALIAS, + api: UmbMoveEntityAction, + }, + conditions: { + entityTypes: [entityType], + }, + }, + { + type: 'entityAction', + alias: 'Umb.EntityAction.DocumentType.Copy', + name: 'Copy Document-Type Entity Action', + weight: 600, + meta: { + icon: 'umb:documents', + label: 'Copy', + repositoryAlias: DOCUMENT_TYPE_REPOSITORY_ALIAS, + api: UmbCopyEntityAction, + }, + conditions: { + entityTypes: [entityType], + }, + }, + { + type: 'entityAction', + alias: 'Umb.EntityAction.DocumentType.Sort', + name: 'Sort Document-Type Entity Action', + weight: 500, + meta: { + icon: 'umb:navigation-vertical', + label: 'Sort', + repositoryAlias: DOCUMENT_TYPE_REPOSITORY_ALIAS, + api: UmbSortChildrenOfEntityAction, + }, + conditions: { + entityTypes: [entityType], + }, + }, +]; + +export const manifests = [...entityActions, ...createManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/index.ts new file mode 100644 index 0000000000..bc8d60f4ec --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/index.ts @@ -0,0 +1,5 @@ +import './components/index.js'; + +export const DOCUMENT_TYPE_ROOT_ENTITY_TYPE = 'document-type-root'; +export const DOCUMENT_TYPE_ENTITY_TYPE = 'document-type'; +export const DOCUMENT_TYPE_FOLDER_ENTITY_TYPE = 'document-type-folder'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/manifests.ts index 5a38adea8f..7a43201a06 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/manifests.ts @@ -1,13 +1,15 @@ -import { manifests as menuItemManifests } from './menu-item/manifests'; -import { manifests as treeManifests } from './tree/manifests'; -import { manifests as workspaceManifests } from './workspace/manifests'; -import { manifests as repositoryManifests } from './repository/manifests'; -import { manifests as modalManifests } from './modals/manifests'; +import { manifests as entityActionsManifests } from './entity-actions/manifests.js'; +import { manifests as menuItemManifests } from './menu-item/manifests.js'; +import { manifests as modalManifests } from './modals/manifests.js'; +import { manifests as repositoryManifests } from './repository/manifests.js'; +import { manifests as treeManifests } from './tree/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; export const manifests = [ + ...entityActionsManifests, ...menuItemManifests, - ...treeManifests, - ...repositoryManifests, - ...workspaceManifests, ...modalManifests, + ...repositoryManifests, + ...treeManifests, + ...workspaceManifests, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/modals/allowed-document-types/allowed-document-types-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/modals/allowed-document-types/allowed-document-types-modal.element.ts index f8a451d8b8..34019ecbf8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/modals/allowed-document-types/allowed-document-types-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/modals/allowed-document-types/allowed-document-types-modal.element.ts @@ -1,8 +1,6 @@ -import { html, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, state } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { UmbDocumentTypeRepository } from '../../repository/document-type.repository'; +import { UmbDocumentTypeRepository } from '../../repository/document-type.repository.js'; +import { html, nothing, customElement, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbAllowedDocumentTypesModalData, UmbAllowedDocumentTypesModalResult } from '@umbraco-cms/backoffice/modal'; import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; import { DocumentTypeTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -17,11 +15,28 @@ export class UmbAllowedDocumentTypesModalElement extends UmbModalBaseElement< @state() private _allowedDocumentTypes: DocumentTypeTreeItemResponseModel[] = []; - async firstUpdated() { - // TODO: show error - if (!this.data?.id) return; + @state() + private _headline?: string; - const { data } = await this.#documentTypeRepository.requestAllowedChildTypesOf(this.data.id); + public connectedCallback() { + super.connectedCallback(); + + const parentName = this.data?.parentName; + if (parentName) { + this._headline = `Create at '${parentName}'`; + } else { + this._headline = `Create`; + } + if (this.data?.parentId) { + // TODO: Support root aka. id of null? or maybe its an active prop, like 'atRoot'. + // TODO: show error + + this._retrieveAllowedChildrenOf(this.data.parentId); + } + } + + private async _retrieveAllowedChildrenOf(id: string) { + const { data } = await this.#documentTypeRepository.requestAllowedChildTypesOf(id); if (data) { this._allowedDocumentTypes = data; @@ -42,7 +57,7 @@ export class UmbAllowedDocumentTypesModalElement extends UmbModalBaseElement< render() { return html` - <umb-body-layout headline="Headline"> + <umb-body-layout headline=${this._headline}> <uui-box> ${this._allowedDocumentTypes.length === 0 ? html`<p>No allowed types</p>` : nothing} ${this._allowedDocumentTypes.map( diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/modals/manifests.ts index dfd8a19fd6..6d6ec7d251 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/modals/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/modals/manifests.ts @@ -5,7 +5,7 @@ const modals: Array<ManifestModal> = [ type: 'modal', alias: 'Umb.Modal.AllowedDocumentTypes', name: 'Allowed Document Types Modal', - loader: () => import('./allowed-document-types/allowed-document-types-modal.element'), + loader: () => import('./allowed-document-types/allowed-document-types-modal.element.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/document-type.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/document-type.repository.ts index a72dd3461d..bc7189bad8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/document-type.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/document-type.repository.ts @@ -1,7 +1,7 @@ -import { UmbDocumentTypeTreeServerDataSource } from './sources/document-type.tree.server.data'; -import { UmbDocumentTypeServerDataSource } from './sources/document-type.server.data'; -import { UmbDocumentTypeTreeStore, UMB_DOCUMENT_TYPE_TREE_STORE_CONTEXT_TOKEN } from './document-type.tree.store'; -import { UmbDocumentTypeStore, UMB_DOCUMENT_TYPE_STORE_CONTEXT_TOKEN } from './document-type.store'; +import { UmbDocumentTypeTreeServerDataSource } from './sources/document-type.tree.server.data.js'; +import { UmbDocumentTypeServerDataSource } from './sources/document-type.server.data.js'; +import { UmbDocumentTypeTreeStore, UMB_DOCUMENT_TYPE_TREE_STORE_CONTEXT_TOKEN } from './document-type.tree.store.js'; +import { UmbDocumentTypeStore, UMB_DOCUMENT_TYPE_STORE_CONTEXT_TOKEN } from './document-type.store.js'; import type { UmbTreeDataSource, UmbTreeRepository, UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; @@ -125,7 +125,13 @@ export class UmbDocumentTypeRepository async createScaffold(parentId: string | null) { if (parentId === undefined) throw new Error('Parent id is missing'); await this.#init; - return this.#detailDataSource.createScaffold(parentId); + + const { data } = await this.#detailDataSource.createScaffold(parentId); + + if (data) { + this.#detailStore?.append(data); + } + return { data }; } async requestById(id: string) { @@ -166,7 +172,7 @@ export class UmbDocumentTypeRepository const treeItem = createTreeItem(documentType); this.#treeStore?.appendItems([treeItem]); - const notification = { data: { message: `Document created` } }; + const notification = { data: { message: `Document Type created` } }; this.#notificationContext?.peek('positive', notification); // TODO: we currently don't use the detail store for anything. @@ -204,13 +210,13 @@ export class UmbDocumentTypeRepository // General: async delete(id: string) { - if (!id) throw new Error('Document id is missing'); + if (!id) throw new Error('Document Type id is missing'); await this.#init; const { error } = await this.#detailDataSource.delete(id); if (!error) { - const notification = { data: { message: `Document deleted` } }; + const notification = { data: { message: `Document Type deleted` } }; this.#notificationContext?.peek('positive', notification); // TODO: we currently don't use the detail store for anything. @@ -232,7 +238,7 @@ export const createTreeItem = (item: ItemType): FolderTreeItemResponseModel => { // TODO: needs parentID, this is missing in the current model. Should be good when updated to a createModel. return { $type: 'FolderTreeItemResponseModel', - type: 'data-type', + type: 'document-type', parentId: null, name: item.name, id: item.id, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/manifests.ts index eec5a28b5a..b5a3134cd9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/manifests.ts @@ -1,6 +1,6 @@ -import { UmbDocumentTypeRepository } from './document-type.repository'; -import { UmbDocumentTypeStore } from './document-type.store'; -import { UmbDocumentTypeTreeStore } from './document-type.tree.store'; +import { UmbDocumentTypeRepository } from './document-type.repository.js'; +import { UmbDocumentTypeStore } from './document-type.store.js'; +import { UmbDocumentTypeTreeStore } from './document-type.tree.store.js'; import { ManifestRepository, ManifestStore, ManifestTreeStore } from '@umbraco-cms/backoffice/extension-registry'; export const DOCUMENT_TYPE_REPOSITORY_ALIAS = 'Umb.Repository.DocumentType'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/sources/document-type.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/sources/document-type.server.data.ts index efb34fccf6..67d97db590 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/sources/document-type.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/sources/document-type.server.data.ts @@ -2,6 +2,7 @@ import type { UmbDataSource } from '@umbraco-cms/backoffice/repository'; import { DocumentTypeResource, DocumentTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; +import { UmbId } from '@umbraco-cms/backoffice/id'; /** * A data source for the Document Type that fetches data from the server @@ -48,7 +49,22 @@ export class UmbDocumentTypeServerDataSource implements UmbDataSource<any, any, */ async createScaffold(parentId: string | null) { const data: DocumentTypeResponseModel = { + id: UmbId.new(), + name: '', + alias: '', + description: '', + icon: 'umb:document', + allowedAsRoot: false, + variesByCulture: false, + variesBySegment: false, + isElement: false, + allowedContentTypes: [], + compositions: [], + allowedTemplateIds: [], + defaultTemplateId: null, + cleanup: undefined, properties: [], + containers: [], }; return { data }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/manifests.ts index c256217395..da4e1d0ea7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/manifests.ts @@ -1,4 +1,4 @@ -import { DOCUMENT_TYPE_REPOSITORY_ALIAS } from '../repository/manifests'; +import { DOCUMENT_TYPE_REPOSITORY_ALIAS } from '../repository/manifests.js'; import type { ManifestTree, ManifestTreeItem } from '@umbraco-cms/backoffice/extension-registry'; export const DOCUMENT_TYPE_TREE_ALIAS = 'Umb.Tree.DocumentTypes'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-editor.element.ts index 5ce19e0fe8..b9e423ee7e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-editor.element.ts @@ -1,12 +1,9 @@ -import { UUIInputElement, UUIInputEvent } from '@umbraco-ui/uui'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbDocumentTypeWorkspaceContext } from './document-type-workspace.context'; +import { UmbDocumentTypeWorkspaceContext } from './document-type-workspace.context.js'; +import { UUIInputElement, UUIInputEvent, UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, UMB_ICON_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; - +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; @customElement('umb-document-type-workspace-editor') export class UmbDocumentTypeWorkspaceEditorElement extends UmbLitElement { @state() @@ -95,7 +92,7 @@ export class UmbDocumentTypeWorkspaceEditorElement extends UmbLitElement { </uui-input> </div> - <div slot="footer"> + <div slot="footer-info"> <!-- TODO: Shortcuts Modal? --> <uui-button label="Show keyboard shortcuts"> Keyboard Shortcuts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts index f40556c424..f5120f953f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts @@ -1,4 +1,4 @@ -import { UmbDocumentTypeRepository } from '../repository/document-type.repository'; +import { UmbDocumentTypeRepository } from '../repository/document-type.repository.js'; import { UmbContentTypePropertyStructureManager } from '@umbraco-cms/backoffice/content-type'; import { UmbWorkspaceContext, UmbEntityWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; import type { @@ -42,26 +42,26 @@ export class UmbDocumentTypeWorkspaceContext this.structure = new UmbContentTypePropertyStructureManager(this.host, this.repository); // General for content types: - this.data = this.structure.rootDocumentType; - this.name = this.structure.rootDocumentTypeObservablePart((data) => data?.name); - this.alias = this.structure.rootDocumentTypeObservablePart((data) => data?.alias); - this.description = this.structure.rootDocumentTypeObservablePart((data) => data?.description); - this.icon = this.structure.rootDocumentTypeObservablePart((data) => data?.icon); - this.allowedAsRoot = this.structure.rootDocumentTypeObservablePart((data) => data?.allowedAsRoot); - this.variesByCulture = this.structure.rootDocumentTypeObservablePart((data) => data?.variesByCulture); - this.variesBySegment = this.structure.rootDocumentTypeObservablePart((data) => data?.variesBySegment); - this.isElement = this.structure.rootDocumentTypeObservablePart((data) => data?.isElement); - this.allowedContentTypes = this.structure.rootDocumentTypeObservablePart((data) => data?.allowedContentTypes); - this.compositions = this.structure.rootDocumentTypeObservablePart((data) => data?.compositions); + this.data = this.structure.ownerDocumentType; + this.name = this.structure.ownerDocumentTypeObservablePart((data) => data?.name); + this.alias = this.structure.ownerDocumentTypeObservablePart((data) => data?.alias); + this.description = this.structure.ownerDocumentTypeObservablePart((data) => data?.description); + this.icon = this.structure.ownerDocumentTypeObservablePart((data) => data?.icon); + this.allowedAsRoot = this.structure.ownerDocumentTypeObservablePart((data) => data?.allowedAsRoot); + this.variesByCulture = this.structure.ownerDocumentTypeObservablePart((data) => data?.variesByCulture); + this.variesBySegment = this.structure.ownerDocumentTypeObservablePart((data) => data?.variesBySegment); + this.isElement = this.structure.ownerDocumentTypeObservablePart((data) => data?.isElement); + this.allowedContentTypes = this.structure.ownerDocumentTypeObservablePart((data) => data?.allowedContentTypes); + this.compositions = this.structure.ownerDocumentTypeObservablePart((data) => data?.compositions); // Document type specific: - this.allowedTemplateIds = this.structure.rootDocumentTypeObservablePart((data) => data?.allowedTemplateIds); - this.defaultTemplateId = this.structure.rootDocumentTypeObservablePart((data) => data?.defaultTemplateId); - this.cleanup = this.structure.rootDocumentTypeObservablePart((data) => data?.defaultTemplateId); + this.allowedTemplateIds = this.structure.ownerDocumentTypeObservablePart((data) => data?.allowedTemplateIds); + this.defaultTemplateId = this.structure.ownerDocumentTypeObservablePart((data) => data?.defaultTemplateId); + this.cleanup = this.structure.ownerDocumentTypeObservablePart((data) => data?.defaultTemplateId); } getData() { - return this.structure.getRootDocumentType() || {}; + return this.structure.getOwnerDocumentType() || {}; } getEntityId() { @@ -73,54 +73,55 @@ export class UmbDocumentTypeWorkspaceContext } setName(name: string) { - this.structure.updateRootDocumentType({ name }); + this.structure.updateOwnerDocumentType({ name }); } setAlias(alias: string) { - this.structure.updateRootDocumentType({ alias }); + this.structure.updateOwnerDocumentType({ alias }); } setDescription(description: string) { - this.structure.updateRootDocumentType({ description }); + this.structure.updateOwnerDocumentType({ description }); } // TODO: manage setting icon color alias? setIcon(icon: string) { - this.structure.updateRootDocumentType({ icon }); + this.structure.updateOwnerDocumentType({ icon }); } setAllowedAsRoot(allowedAsRoot: boolean) { - this.structure.updateRootDocumentType({ allowedAsRoot }); + this.structure.updateOwnerDocumentType({ allowedAsRoot }); } setVariesByCulture(variesByCulture: boolean) { - this.structure.updateRootDocumentType({ variesByCulture }); + this.structure.updateOwnerDocumentType({ variesByCulture }); } setVariesBySegment(variesBySegment: boolean) { - this.structure.updateRootDocumentType({ variesBySegment }); + this.structure.updateOwnerDocumentType({ variesBySegment }); } setIsElement(isElement: boolean) { - this.structure.updateRootDocumentType({ isElement }); + this.structure.updateOwnerDocumentType({ isElement }); } setAllowedContentTypes(allowedContentTypes: Array<ContentTypeSortModel>) { - this.structure.updateRootDocumentType({ allowedContentTypes }); + this.structure.updateOwnerDocumentType({ allowedContentTypes }); } setCompositions(compositions: Array<ContentTypeCompositionModel>) { - this.structure.updateRootDocumentType({ compositions }); + this.structure.updateOwnerDocumentType({ compositions }); } // Document type specific: setAllowedTemplateIds(allowedTemplateIds: Array<string>) { - this.structure.updateRootDocumentType({ allowedTemplateIds }); + this.structure.updateOwnerDocumentType({ allowedTemplateIds }); } setDefaultTemplateId(defaultTemplateId: string) { - this.structure.updateRootDocumentType({ defaultTemplateId }); + this.structure.updateOwnerDocumentType({ defaultTemplateId }); } - async createScaffold(parentId: string) { + async createScaffold(parentId: string | null) { const { data } = await this.structure.createScaffold(parentId); if (!data) return undefined; this.setIsNew(true); //this.#draft.next(data); return data || undefined; + // TODO: Is this wrong? should we return { data }?? } async load(entityId: string) { @@ -130,12 +131,20 @@ export class UmbDocumentTypeWorkspaceContext this.setIsNew(false); //this.#draft.next(data); return data || undefined; + // TODO: Is this wrong? should we return { data }?? } + /** + * Save or creates the document type, based on wether its a new one or existing. + */ async save() { - const id = this.getEntityId(); - if (!id) throw new Error('Cannot save entity without id'); - this.repository.save(id, this.getData()); + if (this.getIsNew()) { + if ((await this.structure.create()) === true) { + this.setIsNew(false); + } + } else { + await this.structure.save(); + } } public destroy(): void { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.element.ts index 2493a26cd1..1c19c1fe59 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.element.ts @@ -1,8 +1,7 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbDocumentTypeWorkspaceContext } from './document-type-workspace.context'; -import { UmbDocumentTypeWorkspaceEditorElement } from './document-type-workspace-editor.element'; +import { UmbDocumentTypeWorkspaceContext } from './document-type-workspace.context.js'; +import { UmbDocumentTypeWorkspaceEditorElement } from './document-type-workspace-editor.element.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -13,10 +12,19 @@ export class UmbDocumentTypeWorkspaceElement extends UmbLitElement { @state() _routes: UmbRoute[] = [ + { + path: 'create/:parentId', + component: () => this.#element, + setup: (_component, info) => { + const parentId = info.match.params.parentId === 'null' ? null : info.match.params.parentId; + this.#workspaceContext.createScaffold(parentId); + }, + }, { path: 'edit/:id', component: () => this.#element, setup: (_component, info) => { + console.log('Setup for edit/id'); const id = info.match.params.id; this.#workspaceContext.load(id); }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.stories.ts index b4a173561f..a11dbead26 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.stories.ts @@ -1,9 +1,8 @@ -import './document-type-workspace-editor.element'; +import './document-type-workspace-editor.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { treeData } from '../../../../shared/mocks/data/document-type.data'; -import type { UmbDocumentTypeWorkspaceElement } from './document-type-workspace.element'; +import { treeData } from '../../../../mocks/data/document-type.data.js'; +import type { UmbDocumentTypeWorkspaceElement } from './document-type-workspace.element.js'; +import { html , ifDefined } from '@umbraco-cms/backoffice/external/lit'; export default { title: 'Workspaces/Document Type', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/manifests.ts index 41ec9b7c82..1188c3f5a2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/manifests.ts @@ -9,7 +9,7 @@ const workspace: ManifestWorkspace = { type: 'workspace', alias: 'Umb.Workspace.DocumentType', name: 'Document Type Workspace', - loader: () => import('./document-type-workspace.element'), + loader: () => import('./document-type-workspace.element.js'), meta: { entityType: 'document-type', }, @@ -20,7 +20,7 @@ const workspaceEditorViews: Array<ManifestWorkspaceEditorView> = [ type: 'workspaceEditorView', alias: 'Umb.WorkspaceView.DocumentType.Design', name: 'Document Type Workspace Design View', - loader: () => import('./views/design/document-type-workspace-view-edit.element'), + loader: () => import('./views/design/document-type-workspace-view-edit.element.js'), weight: 1000, meta: { label: 'Design', @@ -35,8 +35,8 @@ const workspaceEditorViews: Array<ManifestWorkspaceEditorView> = [ type: 'workspaceEditorView', alias: 'Umb.WorkspaceView.DocumentType.Structure', name: 'Document Type Workspace Structure View', - loader: () => import('./views/structure/document-type-workspace-view-structure.element'), - weight: 100, + loader: () => import('./views/structure/document-type-workspace-view-structure.element.js'), + weight: 800, meta: { label: 'Structure', pathname: 'structure', @@ -48,13 +48,13 @@ const workspaceEditorViews: Array<ManifestWorkspaceEditorView> = [ }, { type: 'workspaceEditorView', - alias: 'Umb.WorkspaceView.DocumentType.Permissions', - name: 'Document Type Workspace Permissions View', - loader: () => import('./views/details/document-type-workspace-view-details.element'), - weight: 100, + alias: 'Umb.WorkspaceView.DocumentType.Settings', + name: 'Document Type Workspace Settings View', + loader: () => import('./views/settings/document-type-workspace-view-settings.element.js'), + weight: 600, meta: { - label: 'Details', - pathname: 'details', + label: 'Settings', + pathname: 'settings', icon: 'umb:settings', }, conditions: { @@ -65,8 +65,8 @@ const workspaceEditorViews: Array<ManifestWorkspaceEditorView> = [ type: 'workspaceEditorView', alias: 'Umb.WorkspaceView.DocumentType.Templates', name: 'Document Type Workspace Templates View', - loader: () => import('./views/templates/document-type-workspace-view-templates.element'), - weight: 100, + loader: () => import('./views/templates/document-type-workspace-view-templates.element.js'), + weight: 400, meta: { label: 'Templates', pathname: 'templates', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-design.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-design.element.ts deleted file mode 100644 index 101d1f1b58..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-design.element.ts +++ /dev/null @@ -1,172 +0,0 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, state } from 'lit/decorators.js'; -import { repeat } from 'lit/directives/repeat.js'; -import { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context'; -import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; - -@customElement('umb-document-type-workspace-view-design') -export class UmbDocumentTypeWorkspaceViewDesignElement extends UmbLitElement { - private _workspaceContext?: UmbDocumentTypeWorkspaceContext; - - @state() - private _tabs: any[] = []; - - constructor() { - super(); - - // TODO: Figure out if this is the best way to consume the context or if it can be strongly typed with an UmbContextToken - this.consumeContext(UMB_ENTITY_WORKSPACE_CONTEXT, (documentTypeContext) => { - this._workspaceContext = documentTypeContext as UmbDocumentTypeWorkspaceContext; - this._observeDocumentType(); - }); - } - - private _observeDocumentType() { - if (!this._workspaceContext) return; - } - - render() { - return html` - <div id="workspace-tab-bar"> - ${this.renderTabBar()} - <div class="tab-actions"> - <uui-button label="Compositions" look="outline" compact> - <uui-icon name="umb:merge"></uui-icon> - Compositions - </uui-button> - <uui-button label="Recorder" look="outline" compact> - <uui-icon name="umb:navigation"></uui-icon> - Recorder - </uui-button> - </div> - </div> - <div id="wrapper"> - <uui-box class="group-wrapper"> - <div class="group-headline" slot="headline"> - <uui-input label="Group name" value="${''}" size="10"> - <uui-button slot="append" label="Delete group" compact><uui-icon name="umb:trash"></uui-icon></uui-button> - </uui-input> - </div> - <umb-property-creator></umb-property-creator> - </uui-box> - <uui-button label="Add group" id="add-group" look="placeholder">Add group</uui-button> - </div> - `; - } - - #remove(index: number) { - this._tabs.splice(index, 1); - this.requestUpdate(); - } - async #addTab() { - this._tabs = [...this._tabs, { name: 'Test' }]; - } - - renderTabBar() { - return html`<uui-tab-group> - ${repeat( - this._tabs, - (tab) => tab.name, - (tab, index) => { - //TODO: Should these tabs be part of routing? - return html`<uui-tab label=${tab.name!} .active="${false}"> - <div> - <uui-input label="${tab.name}" look="placeholder" value="" placeholder="Enter a name"> - <uui-button - label="Remove tab" - class="trash" - slot="append" - @click="${() => this.#remove(index)}" - compact> - <uui-icon name="umb:trash"></uui-icon> - </uui-button> - </uui-input> - </div> - </uui-tab>`; - } - )} - <uui-button id="add-tab" @click="${this.#addTab}" label="Add tab" compact> - <uui-icon name="umb:add"></uui-icon> - Add tab - </uui-button> - </uui-tab-group>`; - } - - static styles = [ - UUITextStyles, - css` - :host { - display: block; - } - /* TODO: This should be replaced with a general workspace bar — naming is hard */ - #workspace-tab-bar { - padding: 0 var(--uui-size-layout-1); - display: flex; - align-items: center; - justify-content: space-between; - background-color: var(--uui-color-surface); - flex-wrap: nowrap; - } - .tab-actions { - display: flex; - gap: var(--uui-size-space-4); - } - .tab-actions uui-button uui-icon { - padding-right: calc(-1 * var(--uui-size-space-4)); - } - - uui-tab { - display: flex; - flex-direction: row; - flex-wrap: nowrap; - } - - uui-tab .trash { - display: flex; - align-items: stretch; - } - - uui-tab uui-input { - flex-grow: 1; - } - - uui-input:not(:focus) { - border: 1px solid transparent; - } - - uui-input:not(:hover, :focus) .trash { - opacity: 0; - } - - /** Property Group Wrapper */ - - #wrapper { - margin: var(--uui-size-layout-1); - } - - #add-group { - margin-top: var(--uui-size-layout-1); - width: 100%; - --uui-button-height: var(--uui-size-layout-4); - } - - .group-headline { - display: flex; - gap: var(--uui-size-space-4); - } - .group-headline uui-input { - flex-grow: 1; - } - `, - ]; -} - -export default UmbDocumentTypeWorkspaceViewDesignElement; - -declare global { - interface HTMLElementTagNameMap { - 'umb-document-type-workspace-view-design': UmbDocumentTypeWorkspaceViewDesignElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-design.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-design.stories.ts deleted file mode 100644 index 9a9bd2290a..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-design.stories.ts +++ /dev/null @@ -1,27 +0,0 @@ -import './document-type-workspace-view-design.element'; - -import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; - -//import { data } from '../../../../../core/mocks/data/document-type.data'; -//import { UmbDocumentTypeContext } from '../../document-type.context'; - -import type { UmbDocumentTypeWorkspaceViewDesignElement } from './document-type-workspace-view-design.element'; - -export default { - title: 'Workspaces/Document Type/Views/Design', - component: 'umb-document-type-workspace-view-design', - id: 'umb-document-type-workspace-view-design', - decorators: [ - (story) => { - return html`TODO: make use of mocked workspace context??`; - /*html` <umb-context-provider key="umbDocumentTypeContext" .value=${new UmbDataTypeWorkspaceContext(data[0])}> - ${story()} - </umb-context-provider>`,*/ - }, - ], -} as Meta; - -export const AAAOverview: Story<UmbDocumentTypeWorkspaceViewDesignElement> = () => - html` <umb-document-type-workspace-view-design></umb-document-type-workspace-view-design>`; -AAAOverview.storyName = 'Overview'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts index 54ca9f9749..5967b66af0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts @@ -1,9 +1,6 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { repeat } from 'lit/directives/repeat.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context'; +import { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context.js'; +import { css, html , customElement, property, state , repeat , ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbContentTypePropertyStructureHelper, PropertyContainerTypes } from '@umbraco-cms/backoffice/content-type'; import { UmbSorterController, UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -12,9 +9,8 @@ import { PropertyTypeResponseModelBaseModel, } from '@umbraco-cms/backoffice/backend-api'; import { UMB_MODAL_CONTEXT_TOKEN, UMB_PROPERTY_SETTINGS_MODAL } from '@umbraco-cms/backoffice/modal'; -import './document-type-workspace-view-edit-property.element'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; - +import './document-type-workspace-view-edit-property.element.js'; +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; const SORTER_CONFIG: UmbSorterConfig<DocumentTypePropertyTypeResponseModel> = { compareElementToModel: (element: HTMLElement, model: DocumentTypePropertyTypeResponseModel) => { return element.getAttribute('data-umb-property-id') === model.id; @@ -105,14 +101,18 @@ export class UmbDocumentTypeWorkspaceViewEditPropertiesElement extends UmbLitEle const property = await this._propertyStructureHelper.addProperty(this._containerId); if (!property) return; + // TODO: Figure out how we from this location can get into the routeable modal.. + /* // Take id and parse to modal: - console.log('property id:', property.id!); + console.log('property id:', property.id!, property); + // TODO: route modal.. const modalHandler = this.#modalContext?.open(UMB_PROPERTY_SETTINGS_MODAL); modalHandler?.onSubmit().then((result) => { console.log(result); }); + */ } render() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts index fe56c18d60..095f1f0ff2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts @@ -1,7 +1,8 @@ -import { css, html, LitElement } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { PropertyTypeResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import { UMB_PROPERTY_SETTINGS_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; /** * @element document-type-workspace-view-edit-property @@ -9,7 +10,8 @@ import { PropertyTypeResponseModelBaseModel } from '@umbraco-cms/backoffice/back * @slot editor - Slot for rendering the Property Editor */ @customElement('document-type-workspace-view-edit-property') -export class UmbDocumentTypeWorkspacePropertyElement extends LitElement { +export class UmbDocumentTypeWorkspacePropertyElement extends UmbLitElement { + private _property?: PropertyTypeResponseModelBaseModel | undefined; /** * Property, the data object for the property. * @type {PropertyTypeResponseModelBaseModel} @@ -17,7 +19,15 @@ export class UmbDocumentTypeWorkspacePropertyElement extends LitElement { * @default undefined */ @property({ type: Object }) - public property?: PropertyTypeResponseModelBaseModel; + public get property(): PropertyTypeResponseModelBaseModel | undefined { + return this._property; + } + public set property(value: PropertyTypeResponseModelBaseModel | undefined) { + const oldValue = this._property; + this._property = value; + this.#modalRegistration.setUniquePathValue('propertyId', value?.id?.toString()); + this.requestUpdate('property', oldValue); + } /** * Inherited, Determines if the property is part of the main document type thats being edited. @@ -29,7 +39,32 @@ export class UmbDocumentTypeWorkspacePropertyElement extends LitElement { @property({ type: Boolean }) public inherited?: boolean; - _firePartialUpdate(propertyName: string, value: string | number | boolean | null | undefined) { + #modalRegistration; + + @state() + protected _modalRoute?: string; + + constructor() { + super(); + + this.#modalRegistration = new UmbModalRouteRegistrationController(this, UMB_PROPERTY_SETTINGS_MODAL) + .addUniquePaths(['propertyId']) + .onSetup(() => { + return this.property ?? false; + }) + .onSubmit((result) => { + this._partialUpdate(result); + }) + .observeRouteBuilder((routeBuilder) => { + this._modalRoute = routeBuilder(null); + }); + } + + _partialUpdate(partialObject: PropertyTypeResponseModelBaseModel) { + this.dispatchEvent(new CustomEvent('partial-property-update', { detail: partialObject })); + } + + _singleValueUpdate(propertyName: string, value: string | number | boolean | null | undefined) { const partialObject = {} as any; partialObject[propertyName] = value; @@ -56,23 +91,23 @@ export class UmbDocumentTypeWorkspacePropertyElement extends LitElement { <uui-input .value=${this.property.name} @input=${(e: CustomEvent) => { - if (e.target) this._firePartialUpdate('name', (e.target as HTMLInputElement).value); + if (e.target) this._singleValueUpdate('name', (e.target as HTMLInputElement).value); }}></uui-input> <uui-input-lock .value=${this.property.alias} @input=${(e: CustomEvent) => { - if (e.target) this._firePartialUpdate('alias', (e.target as HTMLInputElement).value); + if (e.target) this._singleValueUpdate('alias', (e.target as HTMLInputElement).value); }}></uui-input-lock> <slot name="property-action-menu"></slot> <p> <uui-textarea .value=${this.property.description} @input=${(e: CustomEvent) => { - if (e.target) this._firePartialUpdate('description', (e.target as HTMLInputElement).value); + if (e.target) this._singleValueUpdate('description', (e.target as HTMLInputElement).value); }}></uui-textarea> </p> </div> - <div id="editor"></div> + <uui-button id="editor" label="Edit property settings" href=${this._modalRoute}><b></b></uui-button> ` : ''; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-tab.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-tab.element.ts index cf7f2a26d7..f9a8342735 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-tab.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-tab.element.ts @@ -1,13 +1,12 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { repeat } from 'lit/directives/repeat.js'; +import { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context.js'; +import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { PropertyTypeContainerResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -import './document-type-workspace-view-edit-properties.element'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; -import { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context'; +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; + +import './document-type-workspace-view-edit-properties.element.js'; @customElement('umb-document-type-workspace-view-edit-tab') export class UmbDocumentTypeWorkspaceViewEditTabElement extends UmbLitElement { @@ -88,7 +87,7 @@ export class UmbDocumentTypeWorkspaceViewEditTabElement extends UmbLitElement { ${repeat( this._groups, (group) => group.name, - (group) => html`<uui-box .headline=${group.name || ''}> + (group) => html` <uui-box .headline=${group.name || ''}> <umb-document-type-workspace-view-edit-properties container-id=${group.id} container-type="Group" @@ -102,12 +101,18 @@ export class UmbDocumentTypeWorkspaceViewEditTabElement extends UmbLitElement { static styles = [ UUITextStyles, css` - uui-box { + :host { + display: block; margin: var(--uui-size-layout-1); + padding-bottom: var(--uui-size-layout-1); // To enforce some distance to the bottom of the scroll-container. + } + uui-box { + margin-top: var(--uui-size-layout-1); } #add { width: 100%; + margin-top: var(--uui-size-layout-1); } `, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts index 0c9b606d3d..3b7d116eda 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts @@ -1,14 +1,12 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, state } from 'lit/decorators.js'; -import { repeat } from 'lit/directives/repeat.js'; -import { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context'; -import type { UmbDocumentTypeWorkspaceViewEditTabElement } from './document-type-workspace-view-edit-tab.element'; +import { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context.js'; +import type { UmbDocumentTypeWorkspaceViewEditTabElement } from './document-type-workspace-view-edit-tab.element.js'; +import { css, html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type'; -import type { UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/internal/router'; +import { encodeFolderName, UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { PropertyTypeContainerResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbWorkspaceEditorViewExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; @@ -75,8 +73,8 @@ export class UmbDocumentTypeWorkspaceViewEditElement this._tabs?.forEach((tab) => { const tabName = tab.name; routes.push({ - path: `tab/${encodeURI(tabName || '').toString()}`, - component: () => import('./document-type-workspace-view-edit-tab.element'), + path: `tab/${encodeFolderName(tabName || '').toString()}`, + component: () => import('./document-type-workspace-view-edit-tab.element.js'), setup: (component) => { (component as UmbDocumentTypeWorkspaceViewEditTabElement).tabName = tabName ?? ''; (component as UmbDocumentTypeWorkspaceViewEditTabElement).ownerTabId = tab.id; @@ -88,7 +86,7 @@ export class UmbDocumentTypeWorkspaceViewEditElement if (this._hasRootGroups) { routes.push({ path: '', - component: () => import('./document-type-workspace-view-edit-tab.element'), + component: () => import('./document-type-workspace-view-edit-tab.element.js'), setup: (component) => { (component as UmbDocumentTypeWorkspaceViewEditTabElement).noTabName = true; }, @@ -97,7 +95,7 @@ export class UmbDocumentTypeWorkspaceViewEditElement if (routes.length !== 0) { routes.push({ - path: '**', + path: '', redirectTo: routes[0]?.path, }); } @@ -134,8 +132,7 @@ export class UmbDocumentTypeWorkspaceViewEditElement this._tabs, (tab) => tab.id! + tab.name, (tab) => { - // TODO: make better url folder name: - const path = this._routerPath + '/tab/' + encodeURI(tab.name || ''); + const path = this._routerPath + '/tab/' + encodeFolderName(tab.name || ''); return html`<uui-tab label=${tab.name!} .active=${path === this._activePath} href=${path}> ${path === this._activePath && this._tabsStructureHelper.isOwnerContainer(tab.id!) ? html` <uui-input @@ -150,7 +147,7 @@ export class UmbDocumentTypeWorkspaceViewEditElement }); // Update the current URL, so we are still on this specific tab: - window.history.replaceState(null, '', this._routerPath + '/tab/' + encodeURI(newName)); + window.history.replaceState(null, '', this._routerPath + '/tab/' + encodeFolderName(newName)); }}> <uui-button label="Remove tab" @@ -188,16 +185,17 @@ export class UmbDocumentTypeWorkspaceViewEditElement render() { return html` <div id="workspace-tab-bar">${this._routerPath ? this.renderTabsNavigation() : ''}${this.renderActions()}</div> - - <umb-router-slot - .routes=${this._routes} - @init=${(event: UmbRouterSlotInitEvent) => { - this._routerPath = event.target.absoluteRouterPath; - }} - @change=${(event: UmbRouterSlotChangeEvent) => { - this._activePath = event.target.absoluteActiveViewPath || ''; - }}> - </umb-router-slot> + <uui-scroll-container> + <umb-router-slot + .routes=${this._routes} + @init=${(event: UmbRouterSlotInitEvent) => { + this._routerPath = event.target.absoluteRouterPath; + }} + @change=${(event: UmbRouterSlotChangeEvent) => { + this._activePath = event.target.absoluteActiveViewPath || ''; + }}> + </umb-router-slot> + </uui-scroll-container> `; } @@ -205,7 +203,10 @@ export class UmbDocumentTypeWorkspaceViewEditElement UUITextStyles, css` :host { - display: block; + position: relative; + display: flex; + flex-direction: column; + height: 100%; --uui-tab-background: var(--uui-color-surface); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/details/document-type-workspace-view-details.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/settings/document-type-workspace-view-settings.element.ts similarity index 83% rename from src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/details/document-type-workspace-view-details.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/settings/document-type-workspace-view-settings.element.ts index 6034f4ca65..82e4c6a333 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/details/document-type-workspace-view-details.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/settings/document-type-workspace-view-settings.element.ts @@ -1,14 +1,13 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, state } from 'lit/decorators.js'; -import type { UUIToggleElement } from '@umbraco-ui/uui'; -import { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context'; +import { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context.js'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIToggleElement } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UmbWorkspaceEditorViewExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; -@customElement('umb-document-type-workspace-view-details') -export class UmbDocumentTypeWorkspaceViewDetailsElement +@customElement('umb-document-type-workspace-view-settings') +export class UmbDocumentTypeWorkspaceViewSettingsElement extends UmbLitElement implements UmbWorkspaceEditorViewExtensionElement { @@ -46,7 +45,7 @@ export class UmbDocumentTypeWorkspaceViewDetailsElement render() { return html` - <uui-box headline="Data configuration"> + <uui-box headline="Data variations"> <umb-workspace-property-layout alias="VaryByCulture" label="Allow vary by culture"> <div slot="description">Allow editors to create content of different languages.</div> <div slot="editor"> @@ -104,8 +103,13 @@ export class UmbDocumentTypeWorkspaceViewDetailsElement static styles = [ UUITextStyles, css` - uui-box { + :host { + display: block; margin: var(--uui-size-layout-1); + padding-bottom: var(--uui-size-layout-1); // To enforce some distance to the bottom of the scroll-container. + } + uui-box { + margin-top: var(--uui-size-layout-1); } uui-label, @@ -121,10 +125,10 @@ export class UmbDocumentTypeWorkspaceViewDetailsElement ]; } -export default UmbDocumentTypeWorkspaceViewDetailsElement; +export default UmbDocumentTypeWorkspaceViewSettingsElement; declare global { interface HTMLElementTagNameMap { - 'umb-document-type-workspace-view-details': UmbDocumentTypeWorkspaceViewDetailsElement; + 'umb-document-type-workspace-view-settings': UmbDocumentTypeWorkspaceViewSettingsElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts index a66f4755ba..5eaffe6831 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts @@ -1,11 +1,10 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, state } from 'lit/decorators.js'; -import type { UUIToggleElement } from '@umbraco-ui/uui'; -import { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context'; -import type { UmbInputDocumentTypePickerElement } from '../../../components/input-document-type-picker/input-document-type-picker.element'; +import { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context.js'; +import type { UmbInputDocumentTypePickerElement } from '../../../components/input-document-type-picker/input-document-type-picker.element.js'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIToggleElement } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UmbWorkspaceEditorViewExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-document-type-workspace-view-structure') @@ -38,7 +37,6 @@ export class UmbDocumentTypeWorkspaceViewStructureElement this._allowedContentTypeIDs = allowedContentTypes ?.map((x) => x.id) .filter((x) => x !== undefined) as Array<string>; - console.log('this._allowedContentTypeIDs', this._allowedContentTypeIDs); }); } @@ -78,12 +76,9 @@ export class UmbDocumentTypeWorkspaceViewStructureElement </umb-workspace-property-layout> </uui-box> <uui-box headline="Presentation"> - <umb-workspace-property-layout alias="Root" label="Collection"> - <div slot="description"> - Use this document as a collection, displaying its children in a Collection View. This could be a list or a - table. - </div> - <div slot="editor"><uui-toggle label="Present as a Collection"></uui-toggle></div> + <umb-workspace-property-layout alias="Root" label="Collection view"> + <div slot="description">Provides an overview of child content and hides it in the tree.</div> + <div slot="editor"><uui-toggle label="Display children in a Collection view"></uui-toggle></div> </umb-workspace-property-layout> </uui-box> `; @@ -92,10 +87,14 @@ export class UmbDocumentTypeWorkspaceViewStructureElement static styles = [ UUITextStyles, css` - uui-box { + :host { + display: block; margin: var(--uui-size-layout-1); + padding-bottom: var(--uui-size-layout-1); // To enforce some distance to the bottom of the scroll-container. + } + uui-box { + margin-top: var(--uui-size-layout-1); } - uui-label, umb-property-editor-ui-number { display: block; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/templates/document-type-workspace-view-templates.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/templates/document-type-workspace-view-templates.element.ts index 2fd020b997..89ba8e14cb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/templates/document-type-workspace-view-templates.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/templates/document-type-workspace-view-templates.element.ts @@ -1,10 +1,9 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context'; -import type { UmbInputTemplateElement } from '../../../../../templating/templates/components/input-template/input-template.element'; +import { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context.js'; +import type { UmbInputTemplateElement } from '../../../../../templating/templates/components/input-template/input-template.element.js'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UmbWorkspaceEditorViewExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-document-type-workspace-view-templates') @@ -35,13 +34,11 @@ export class UmbDocumentTypeWorkspaceViewTemplatesElement (defaultTemplateId) => (this._defaultTemplateId = defaultTemplateId) ); this.observe(this.#workspaceContext.allowedTemplateIds, (allowedTemplateIds) => { - console.log('allowedTemplateIds', allowedTemplateIds); this._allowedTemplateIds = allowedTemplateIds; }); } #templateInputChange(e: CustomEvent) { - console.log('change', e); // save new allowed ids const input = e.target as UmbInputTemplateElement; const idsWithoutRoot = input.selectedIds.filter((id) => id !== null) as Array<string>; @@ -68,7 +65,7 @@ export class UmbDocumentTypeWorkspaceViewTemplatesElement css` :host { display: block; - margin: var(--uui-size-layout-1); + padding: var(--uui-size-layout-1); } #templates { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/manifests.ts index 9a222d24a2..f2ce1925fb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/manifests.ts @@ -5,7 +5,7 @@ export const manifests: Array<ManifestCollectionView> = [ type: 'collectionView', alias: 'Umb.CollectionView.Document.Table', name: 'Document Table Collection View', - loader: () => import('./views/table/document-table-collection-view.element'), + loader: () => import('./views/table/document-table-collection-view.element.js'), weight: 200, conditions: { entityType: 'document', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/column-layouts/document-table-actions-column-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/column-layouts/document-table-actions-column-layout.element.ts index eec62e33ae..ea66970283 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/column-layouts/document-table-actions-column-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/column-layouts/document-table-actions-column-layout.element.ts @@ -1,7 +1,5 @@ -import { css, html, LitElement, nothing } from 'lit'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { customElement, property, state } from 'lit/decorators.js'; -import type { UmbTableColumn, UmbTableItem } from '@umbraco-cms/backoffice/core/components'; +import { css, html, LitElement, nothing , ifDefined , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import type { UmbTableColumn, UmbTableItem } from '@umbraco-cms/backoffice/components'; import { UmbExecutedEvent } from '@umbraco-cms/backoffice/events'; // TODO: this could be done more generic, but for now we just need it for the document table diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/document-table-collection-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/document-table-collection-view.element.ts index d3d5c13636..25b281dc25 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/document-table-collection-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/document-table-collection-view.element.ts @@ -1,6 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTableColumn, @@ -10,12 +9,12 @@ import { UmbTableItem, UmbTableOrderedEvent, UmbTableSelectedEvent, -} from '@umbraco-cms/backoffice/core/components'; +} from '@umbraco-cms/backoffice/components'; import { UMB_COLLECTION_CONTEXT_TOKEN, UmbCollectionContext } from '@umbraco-cms/backoffice/collection'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { DocumentTreeItemResponseModel, EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import './column-layouts/document-table-actions-column-layout.element'; +import './column-layouts/document-table-actions-column-layout.element.js'; type EntityType = DocumentTreeItemResponseModel; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/index.ts index 942241a3f0..82c1e96c4f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/index.ts @@ -1 +1 @@ -export * from './input-document-picker/input-document-picker.element'; +export * from './input-document-picker/input-document-picker.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker/input-document-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker/input-document-picker.element.ts index de5803d280..db3992298f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker/input-document-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker/input-document-picker.element.ts @@ -1,10 +1,7 @@ -import { css, html, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; -import { UMB_DOCUMENT_TREE_STORE_CONTEXT_TOKEN } from '../../repository/document.tree.store'; -import type { UmbDocumentTreeStore } from '../../repository/document.tree.store'; +import { UMB_DOCUMENT_TREE_STORE_CONTEXT_TOKEN } from '../../repository/document.tree.store.js'; +import type { UmbDocumentTreeStore } from '../../repository/document.tree.store.js'; +import { css, html, nothing, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles, FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker/input-document-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker/input-document-picker.stories.ts index 14ab53fa24..925fe717a4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker/input-document-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker/input-document-picker.stories.ts @@ -1,16 +1,15 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import './input-document-picker.element'; -import type { UmbInputDocumentPickerElement } from './input-document-picker.element'; +import './input-document-picker.element.js'; +import type { UmbInputDocumentPickerElement } from './input-document-picker.element.js'; const meta: Meta<UmbInputDocumentPickerElement> = { - title: 'Components/Inputs/Document Picker', - component: 'umb-input-document-picker' + title: 'Components/Inputs/Document Picker', + component: 'umb-input-document-picker', }; - + export default meta; type Story = StoryObj<UmbInputDocumentPickerElement>; - + export const Overview: Story = { - args: { - } + args: {}, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker/input-document-picker.test.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker/input-document-picker.test.ts index 4c20a6ec05..38792739e8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker/input-document-picker.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker/input-document-picker.test.ts @@ -1,5 +1,5 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbInputDocumentPickerElement } from './input-document-picker.element'; +import { UmbInputDocumentPickerElement } from './input-document-picker.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbInputDocumentPickerElement', () => { let element: UmbInputDocumentPickerElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create-blueprint.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create-blueprint.action.ts index b62a5488d8..88685471a5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create-blueprint.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create-blueprint.action.ts @@ -1,4 +1,4 @@ -import { UmbDocumentRepository } from '../repository/document.repository'; +import { UmbDocumentRepository } from '../repository/document.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts index 7ee338846b..8bf7982dc8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts @@ -1,4 +1,4 @@ -import type { UmbDocumentRepository } from '../../repository/document.repository'; +import type { UmbDocumentRepository } from '../../repository/document.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { @@ -20,20 +20,43 @@ export class UmbCreateDocumentEntityAction extends UmbEntityActionBase<UmbDocume } async execute() { + if (this.unique) { + await this._executeWithParent(); + } else { + await this._executeAtRoot(); + } + } + + private async _executeWithParent() { // TODO: what to do if modal service is not available? - if (!this.#modalContext) return; if (!this.repository) return; const { data } = await this.repository.requestById(this.unique); if (data && data.contentTypeId) { - const modalHandler = this.#modalContext?.open(UMB_ALLOWED_DOCUMENT_TYPES_MODAL, { - id: data.contentTypeId, - }); - - const { documentTypeKey } = await modalHandler.onSubmit(); - // TODO: how do we want to generate these urls? - history.pushState(null, '', `section/content/workspace/document/create/${this.unique}/${documentTypeKey}`); + // TODO: We need to get the APP language context, use its VariantId to retrieve the right variant. The variant of which we get the name from. + this._openModal(data.contentTypeId, data.variants?.[0]?.name); } } + + private async _executeAtRoot() { + this._openModal(null); + } + + private async _openModal(parentId: string | null, parentName?: string) { + if (!this.#modalContext) return; + const modalHandler = this.#modalContext.open(UMB_ALLOWED_DOCUMENT_TYPES_MODAL, { + parentId: parentId, + parentName: parentName, + }); + + const { documentTypeKey } = await modalHandler.onSubmit(); + + // TODO: how do we want to generate these urls? + history.pushState( + null, + '', + `section/content/workspace/document/create/${this.unique ?? 'null'}/${documentTypeKey}` + ); + } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames.action.ts index bcd4fa7303..01932ae60e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames.action.ts @@ -1,4 +1,4 @@ -import { UmbDocumentRepository } from '../repository/document.repository'; +import { UmbDocumentRepository } from '../repository/document.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/manifests.ts index c81f590803..039d4620cd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/manifests.ts @@ -1,12 +1,13 @@ -import { DOCUMENT_REPOSITORY_ALIAS } from '../repository/manifests'; -import { UmbCreateDocumentEntityAction } from './create/create.action'; -import { UmbPublishDocumentEntityAction } from './publish.action'; -import { UmbDocumentCultureAndHostnamesEntityAction } from './culture-and-hostnames.action'; -import { UmbCreateDocumentBlueprintEntityAction } from './create-blueprint.action'; -import { UmbDocumentPublicAccessEntityAction } from './public-access.action'; -import { UmbDocumentPermissionsEntityAction } from './permissions.action'; -import { UmbUnpublishDocumentEntityAction } from './unpublish.action'; -import { UmbRollbackDocumentEntityAction } from './rollback.action'; +import { DOCUMENT_REPOSITORY_ALIAS } from '../repository/manifests.js'; +import { DOCUMENT_ENTITY_TYPE, DOCUMENT_ROOT_ENTITY_TYPE } from '../index.js'; +import { UmbCreateDocumentEntityAction } from './create/create.action.js'; +import { UmbPublishDocumentEntityAction } from './publish.action.js'; +import { UmbDocumentCultureAndHostnamesEntityAction } from './culture-and-hostnames.action.js'; +import { UmbCreateDocumentBlueprintEntityAction } from './create-blueprint.action.js'; +import { UmbDocumentPublicAccessEntityAction } from './public-access.action.js'; +import { UmbDocumentPermissionsEntityAction } from './permissions.action.js'; +import { UmbUnpublishDocumentEntityAction } from './unpublish.action.js'; +import { UmbRollbackDocumentEntityAction } from './rollback.action.js'; import { UmbCopyEntityAction, UmbMoveEntityAction, @@ -15,8 +16,6 @@ import { } from '@umbraco-cms/backoffice/entity-action'; import { ManifestEntityAction, ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; -const entityType = 'document'; - const entityActions: Array<ManifestEntityAction> = [ { type: 'entityAction', @@ -30,7 +29,7 @@ const entityActions: Array<ManifestEntityAction> = [ api: UmbCreateDocumentEntityAction, }, conditions: { - entityTypes: [entityType], + entityTypes: [DOCUMENT_ROOT_ENTITY_TYPE, DOCUMENT_ENTITY_TYPE], }, }, { @@ -45,7 +44,7 @@ const entityActions: Array<ManifestEntityAction> = [ api: UmbTrashEntityAction, }, conditions: { - entityTypes: [entityType], + entityTypes: [DOCUMENT_ENTITY_TYPE], }, }, { @@ -60,7 +59,7 @@ const entityActions: Array<ManifestEntityAction> = [ api: UmbCreateDocumentBlueprintEntityAction, }, conditions: { - entityTypes: [entityType], + entityTypes: [DOCUMENT_ENTITY_TYPE], }, }, { @@ -75,7 +74,7 @@ const entityActions: Array<ManifestEntityAction> = [ api: UmbMoveEntityAction, }, conditions: { - entityTypes: [entityType], + entityTypes: [DOCUMENT_ENTITY_TYPE], }, }, { @@ -90,7 +89,7 @@ const entityActions: Array<ManifestEntityAction> = [ api: UmbCopyEntityAction, }, conditions: { - entityTypes: [entityType], + entityTypes: [DOCUMENT_ENTITY_TYPE], }, }, { @@ -105,7 +104,7 @@ const entityActions: Array<ManifestEntityAction> = [ api: UmbSortChildrenOfEntityAction, }, conditions: { - entityTypes: [entityType], + entityTypes: [DOCUMENT_ROOT_ENTITY_TYPE, DOCUMENT_ENTITY_TYPE], }, }, { @@ -120,7 +119,7 @@ const entityActions: Array<ManifestEntityAction> = [ api: UmbDocumentCultureAndHostnamesEntityAction, }, conditions: { - entityTypes: [entityType], + entityTypes: [DOCUMENT_ENTITY_TYPE], }, }, { @@ -134,7 +133,7 @@ const entityActions: Array<ManifestEntityAction> = [ api: UmbDocumentPermissionsEntityAction, }, conditions: { - entityTypes: [entityType], + entityTypes: [DOCUMENT_ENTITY_TYPE], }, }, { @@ -148,7 +147,7 @@ const entityActions: Array<ManifestEntityAction> = [ api: UmbDocumentPublicAccessEntityAction, }, conditions: { - entityTypes: [entityType], + entityTypes: [DOCUMENT_ENTITY_TYPE], }, }, { @@ -162,7 +161,7 @@ const entityActions: Array<ManifestEntityAction> = [ api: UmbPublishDocumentEntityAction, }, conditions: { - entityTypes: [entityType], + entityTypes: [DOCUMENT_ENTITY_TYPE], }, }, { @@ -176,7 +175,7 @@ const entityActions: Array<ManifestEntityAction> = [ api: UmbUnpublishDocumentEntityAction, }, conditions: { - entityTypes: [entityType], + entityTypes: [DOCUMENT_ENTITY_TYPE], }, }, { @@ -190,7 +189,7 @@ const entityActions: Array<ManifestEntityAction> = [ api: UmbRollbackDocumentEntityAction, }, conditions: { - entityTypes: [entityType], + entityTypes: [DOCUMENT_ENTITY_TYPE], }, }, ]; @@ -200,7 +199,7 @@ const modals: Array<ManifestModal> = [ type: 'modal', alias: 'Umb.Modal.CreateDocument', name: 'Create Document Modal', - loader: () => import('../../document-types/modals/allowed-document-types/allowed-document-types-modal.element'), + loader: () => import('../../document-types/modals/allowed-document-types/allowed-document-types-modal.element.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions.action.ts index d20e455a06..36f3549ca1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions.action.ts @@ -1,4 +1,4 @@ -import { UmbDocumentRepository } from '../repository/document.repository'; +import { UmbDocumentRepository } from '../repository/document.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access.action.ts index d01207c135..0d4b7eafda 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access.action.ts @@ -1,4 +1,4 @@ -import { UmbDocumentRepository } from '../repository/document.repository'; +import { UmbDocumentRepository } from '../repository/document.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/publish.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/publish.action.ts index c58e5dc3a3..fbdbcf7027 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/publish.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/publish.action.ts @@ -1,4 +1,4 @@ -import { UmbDocumentRepository } from '../repository/document.repository'; +import { UmbDocumentRepository } from '../repository/document.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/rollback.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/rollback.action.ts index 788880a725..d6c8e6ff2a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/rollback.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/rollback.action.ts @@ -1,4 +1,4 @@ -import { UmbDocumentRepository } from '../repository/document.repository'; +import { UmbDocumentRepository } from '../repository/document.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/unpublish.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/unpublish.action.ts index 188a362771..27d6aac68a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/unpublish.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/unpublish.action.ts @@ -1,4 +1,4 @@ -import { UmbDocumentRepository } from '../repository/document.repository'; +import { UmbDocumentRepository } from '../repository/document.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/copy/copy.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/copy/copy.action.ts index b527ebcb31..8c2f96b880 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/copy/copy.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/copy/copy.action.ts @@ -1,5 +1,5 @@ -import { UmbDocumentRepository } from '../../repository/document.repository'; -import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-action'; +import { UmbDocumentRepository } from '../../repository/document.repository.js'; +import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbDocumentCopyEntityBulkAction extends UmbEntityBulkActionBase<UmbDocumentRepository> { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/manifests.ts index 65148b1370..98d9ae831c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/manifests.ts @@ -1,6 +1,6 @@ -import { DOCUMENT_REPOSITORY_ALIAS } from '../repository/manifests'; -import { UmbDocumentMoveEntityBulkAction } from './move/move.action'; -import { UmbDocumentCopyEntityBulkAction } from './copy/copy.action'; +import { DOCUMENT_REPOSITORY_ALIAS } from '../repository/manifests.js'; +import { UmbDocumentMoveEntityBulkAction } from './move/move.action.js'; +import { UmbDocumentCopyEntityBulkAction } from './copy/copy.action.js'; import { ManifestEntityBulkAction } from '@umbraco-cms/backoffice/extension-registry'; const entityType = 'document'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/move/move.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/move/move.action.ts index 50307d8b1a..720342e56d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/move/move.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/move/move.action.ts @@ -1,5 +1,5 @@ -import { UmbDocumentRepository } from '../../repository/document.repository'; -import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-action'; +import { UmbDocumentRepository } from '../../repository/document.repository.js'; +import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbDocumentMoveEntityBulkAction extends UmbEntityBulkActionBase<UmbDocumentRepository> { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/index.ts new file mode 100644 index 0000000000..79edea5a02 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/index.ts @@ -0,0 +1,7 @@ +export * from './repository/index.js'; +export * from './workspace/index.js'; + +import './components/index.js'; + +export const DOCUMENT_ROOT_ENTITY_TYPE = 'document-root'; +export const DOCUMENT_ENTITY_TYPE = 'document'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/manifests.ts index 7e4ce1758a..ea4d0dc985 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/manifests.ts @@ -1,11 +1,11 @@ -import { manifests as collectionManifests } from './collection/manifests'; -import { manifests as menuItemManifests } from './menu-item/manifests'; -import { manifests as repositoryManifests } from './repository/manifests'; -import { manifests as treeManifests } from './tree/manifests'; -import { manifests as workspaceManifests } from './workspace/manifests'; -import { manifests as entityActionManifests } from './entity-actions/manifests'; -import { manifests as entityBulkActionManifests } from './entity-bulk-actions/manifests'; -import { manifests as propertyEditorManifests } from './property-editors/manifests'; +import { manifests as collectionManifests } from './collection/manifests.js'; +import { manifests as menuItemManifests } from './menu-item/manifests.js'; +import { manifests as repositoryManifests } from './repository/manifests.js'; +import { manifests as treeManifests } from './tree/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; +import { manifests as entityActionManifests } from './entity-actions/manifests.js'; +import { manifests as entityBulkActionManifests } from './entity-bulk-actions/manifests.js'; +import { manifests as propertyEditorManifests } from './property-editors/manifests.js'; export const manifests = [ ...collectionManifests, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu-item/document-menu-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu-item/document-menu-item.element.ts index 74197d3c8e..e0719ac3d5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu-item/document-menu-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu-item/document-menu-item.element.ts @@ -1,5 +1,4 @@ -import { html } from 'lit'; -import { customElement } from 'lit/decorators.js'; +import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-document-menu-item') diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu-item/manifests.ts index 9c89d287d4..06c3d78d57 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu-item/manifests.ts @@ -5,7 +5,7 @@ const menuItem: ManifestMenuItem = { alias: 'Umb.MenuItem.Documents', name: 'Documents Menu Item', weight: 100, - loader: () => import('./document-menu-item.element'), + loader: () => import('./document-menu-item.element.js'), meta: { label: 'Documents', icon: 'umb:folder', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/Umbraco.ContentPicker.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/Umbraco.ContentPicker.ts index 85ce5b428d..792d6b07fc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/Umbraco.ContentPicker.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/Umbraco.ContentPicker.ts @@ -5,13 +5,14 @@ export const manifest: ManifestPropertyEditorModel = { name: 'Content Picker', alias: 'Umbraco.ContentPicker', meta: { - config: { + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.ContentPicker', + settings: { properties: [ { alias: 'startNodeId', label: 'Start node', description: '', - propertyEditorUI: 'Umb.PropertyEditorUI.TreePicker', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.TreePicker', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/manifests.ts index 215e987add..09417384fc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/manifests.ts @@ -1,34 +1,34 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.DocumentPicker', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.DocumentPicker', name: 'Document Picker Property Editor UI', - loader: () => import('./property-editor-ui-document-picker.element'), + loader: () => import('./property-editor-ui-document-picker.element.js'), meta: { label: 'Document Picker', - propertyEditorModel: 'Umbraco.ContentPicker', + propertyEditorAlias: 'Umbraco.ContentPicker', icon: 'umb:document', group: 'common', - config: { + settings: { properties: [ { alias: 'showOpenButton', label: 'Show open button', description: 'Opens the node in a dialog', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, { alias: 'validationLimit', label: 'Amount of Documents', description: 'Require a certain amount of documents', - propertyEditorUI: 'Umb.PropertyEditorUI.NumberRange', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.NumberRange', }, { alias: 'ignoreUserStartNodes', label: 'Ignore User Start Nodes', description: 'Selecting this option allows a user to choose nodes that they normally dont have access to', - propertyEditorUI: 'Umb.PropertyEditorUI.Toggle', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/property-editor-ui-document-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/property-editor-ui-document-picker.element.ts index 38ab2e69e2..83249cd038 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/property-editor-ui-document-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/property-editor-ui-document-picker.element.ts @@ -1,10 +1,8 @@ -import { html } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import type { UmbInputDocumentPickerElement } from '../../components/input-document-picker/input-document-picker.element'; +import type { UmbInputDocumentPickerElement } from '../../components/input-document-picker/input-document-picker.element.js'; +import { html , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { DataTypePropertyPresentationModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; @customElement('umb-property-editor-ui-document-picker') export class UmbPropertyEditorUIContentPickerElement diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/property-editor-ui-document-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/property-editor-ui-document-picker.stories.ts index f4eed0d05b..311cad1a58 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/property-editor-ui-document-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/property-editor-ui-document-picker.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUIContentPickerElement } from './property-editor-ui-document-picker.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUIContentPickerElement } from './property-editor-ui-document-picker.element'; -import './property-editor-ui-document-picker.element'; +import './property-editor-ui-document-picker.element.js'; export default { title: 'Property Editor UIs/Content Picker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/manifests.ts index bcfffeb590..a9f08b9971 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/manifests.ts @@ -1,5 +1,5 @@ -import { manifest as documentPickerUI } from './document-picker/manifests'; -import { manifest as contentPicker } from './Umbraco.ContentPicker'; +import { manifest as documentPickerUI } from './document-picker/manifests.js'; +import { manifest as contentPicker } from './Umbraco.ContentPicker.js'; import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const manifests: Array<ManifestTypes> = [documentPickerUI, contentPicker]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts index dffdb3dba0..2f4e5a94ad 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts @@ -1,7 +1,7 @@ -import { UmbDocumentServerDataSource } from './sources/document.server.data'; -import { UmbDocumentStore, UMB_DOCUMENT_STORE_CONTEXT_TOKEN } from './document.store'; -import { UmbDocumentTreeStore, UMB_DOCUMENT_TREE_STORE_CONTEXT_TOKEN } from './document.tree.store'; -import { UmbDocumentTreeServerDataSource } from './sources/document.tree.server.data'; +import { UmbDocumentServerDataSource } from './sources/document.server.data.js'; +import { UmbDocumentStore, UMB_DOCUMENT_STORE_CONTEXT_TOKEN } from './document.store.js'; +import { UmbDocumentTreeStore, UMB_DOCUMENT_TREE_STORE_CONTEXT_TOKEN } from './document.tree.store.js'; +import { UmbDocumentTreeServerDataSource } from './sources/document.tree.server.data.js'; import type { UmbTreeDataSource, UmbTreeRepository, UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/index.ts new file mode 100644 index 0000000000..46200135da --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/index.ts @@ -0,0 +1 @@ +export { UmbDocumentRepository } from './document.repository.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/manifests.ts index 5e34ac9ba0..a66e493a3a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/manifests.ts @@ -1,6 +1,6 @@ -import { UmbDocumentRepository } from '../repository/document.repository'; -import { UmbDocumentStore } from './document.store'; -import { UmbDocumentTreeStore } from './document.tree.store'; +import { UmbDocumentRepository } from '../repository/document.repository.js'; +import { UmbDocumentStore } from './document.store.js'; +import { UmbDocumentTreeStore } from './document.tree.store.js'; import type { ManifestRepository, ManifestStore, ManifestTreeStore } from '@umbraco-cms/backoffice/extension-registry'; export const DOCUMENT_REPOSITORY_ALIAS = 'Umb.Repository.Document'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/manifests.ts index d881ee8955..70b91c8e33 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/manifests.ts @@ -1,4 +1,4 @@ -import { DOCUMENT_REPOSITORY_ALIAS } from '../repository/manifests'; +import { DOCUMENT_REPOSITORY_ALIAS } from '../repository/manifests.js'; import type { ManifestTree, ManifestTreeItem } from '@umbraco-cms/backoffice/extension-registry'; export const DOCUMENT_TREE_ALIAS = 'Umb.Tree.Documents'; @@ -16,7 +16,7 @@ const treeItem: ManifestTreeItem = { type: 'treeItem', alias: 'Umb.TreeItem.Document', name: 'Document Tree Item', - loader: () => import('./tree-item/document-tree-item.element'), + loader: () => import('./tree-item/document-tree-item.element.js'), conditions: { entityTypes: ['document-root', 'document'], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts index 883506410e..516cd26a9a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts @@ -1,7 +1,6 @@ -import { css, html, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property } from 'lit/decorators.js'; -import { UmbDocumentTreeItemContext } from './document-tree-item.context'; +import { UmbDocumentTreeItemContext } from './document-tree-item.context.js'; +import { css, html, nothing , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { DocumentTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbTreeItemExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save-and-preview.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save-and-preview.action.ts index f00088dc75..97dc4bdc0f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save-and-preview.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save-and-preview.action.ts @@ -1,4 +1,4 @@ -import { UmbDocumentWorkspaceContext } from '../document-workspace.context'; +import { UmbDocumentWorkspaceContext } from '../document-workspace.context.js'; import { UmbWorkspaceActionBase } from '@umbraco-cms/backoffice/workspace'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save-and-publish.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save-and-publish.action.ts index def8d24a94..13ec47b159 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save-and-publish.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save-and-publish.action.ts @@ -1,4 +1,4 @@ -import { UmbDocumentWorkspaceContext } from '../document-workspace.context'; +import { UmbDocumentWorkspaceContext } from '../document-workspace.context.js'; import { UmbWorkspaceActionBase } from '@umbraco-cms/backoffice/workspace'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save-and-schedule.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save-and-schedule.action.ts index 519680965b..4b201b7ac5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save-and-schedule.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save-and-schedule.action.ts @@ -1,4 +1,4 @@ -import { UmbDocumentWorkspaceContext } from '../document-workspace.context'; +import { UmbDocumentWorkspaceContext } from '../document-workspace.context.js'; import { UmbWorkspaceActionBase } from '@umbraco-cms/backoffice/workspace'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; 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 27eb5b64c3..ab8490cef4 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 @@ -1,16 +1,12 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbDocumentWorkspaceContext } from './document-workspace.context'; -import { UmbDocumentWorkspaceSplitViewElement } from './document-workspace-split-view.element'; +import { UmbDocumentWorkspaceSplitViewElement } from './document-workspace-split-view.element.js'; +import { UmbDocumentWorkspaceContext } from './document-workspace.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { customElement, state, css, html } from '@umbraco-cms/backoffice/external/lit'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; -import { ActiveVariant } from '@umbraco-cms/backoffice/workspace'; -import type { UmbRoute } from '@umbraco-cms/backoffice/router'; -import type { UmbRouterSlotInitEvent } from '@umbraco-cms/internal/router'; -import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import type { UmbRoute, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; import { VariantModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; - +import { UMB_ENTITY_WORKSPACE_CONTEXT, ActiveVariant } from '@umbraco-cms/backoffice/workspace'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-document-workspace-editor') export class UmbDocumentWorkspaceEditorElement extends UmbLitElement { //private _defaultVariant?: VariantViewModelBaseModel; @@ -101,7 +97,7 @@ export class UmbDocumentWorkspaceEditorElement extends UmbLitElement { if (routes.length !== 0) { // Using first single view as the default route for now (hence the math below): routes.push({ - path: '**', + path: '', redirectTo: routes[this._availableVariants.length * this._availableVariants.length]?.path, }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts index f60370b208..977ddf2aae 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts @@ -1,12 +1,8 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, nothing } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { repeat } from 'lit/directives/repeat.js'; -import { UmbDocumentWorkspaceContext } from './document-workspace.context'; -import { ActiveVariant } from '@umbraco-cms/backoffice/workspace'; +import { UmbDocumentWorkspaceContext } from './document-workspace.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { ActiveVariant, UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; - @customElement('umb-document-workspace-split-view') export class UmbDocumentWorkspaceSplitViewElement extends UmbLitElement { private _workspaceContext?: UmbDocumentWorkspaceContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts index 22ff08e27f..473d8746ec 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts @@ -1,9 +1,12 @@ -import { UmbDocumentRepository } from '../repository/document.repository'; -import { UmbDocumentTypeRepository } from '../../document-types/repository/document-type.repository'; -import { UmbWorkspaceVariableEntityContextInterface } from '../../../core/components/workspace/workspace-context/workspace-variable-entity-context.interface'; +import { UmbDocumentRepository } from '../repository/document.repository.js'; +import { UmbDocumentTypeRepository } from '../../document-types/repository/document-type.repository.js'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import { UmbContentTypePropertyStructureManager } from '@umbraco-cms/backoffice/content-type'; -import { UmbWorkspaceContext, UmbWorkspaceSplitViewManager } from '@umbraco-cms/backoffice/workspace'; +import { + UmbWorkspaceContext, + UmbWorkspaceSplitViewManager, + UmbWorkspaceVariableEntityContextInterface, +} from '@umbraco-cms/backoffice/workspace'; import type { CreateDocumentRequestModel, DocumentResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { partialUpdateFrozenArray, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts index 03d21bcd92..30c3797cd4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts @@ -1,11 +1,10 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbDocumentWorkspaceContext } from './document-workspace.context'; +import { UmbDocumentWorkspaceContext } from './document-workspace.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import './document-workspace-editor.element'; +import './document-workspace-editor.element.js'; @customElement('umb-document-workspace') export class UmbDocumentWorkspaceElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.stories.ts index e50ce69c05..c415da2f8a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.stories.ts @@ -1,7 +1,7 @@ -import './document-workspace-editor.element'; +import './document-workspace-editor.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; -import type { UmbDocumentWorkspaceElement } from './document-workspace.element'; +import type { UmbDocumentWorkspaceElement } from './document-workspace.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; export default { title: 'Workspaces/Document', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.test.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.test.ts index 3bf624e247..e2d9219676 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.test.ts @@ -1,5 +1,5 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbDocumentWorkspaceElement } from './document-workspace.element'; +import { UmbDocumentWorkspaceElement } from './document-workspace.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbDocumentWorkspaceElement', () => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/index.ts new file mode 100644 index 0000000000..2571e17006 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/index.ts @@ -0,0 +1 @@ +export { UmbDocumentWorkspaceContext } from './document-workspace.context.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/manifests.ts index c47cb92d16..56fc8cee5e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/manifests.ts @@ -1,6 +1,6 @@ -import { UmbDocumentSaveAndPublishWorkspaceAction } from './actions/save-and-publish.action'; -import { UmbDocumentSaveAndPreviewWorkspaceAction } from './actions/save-and-preview.action'; -import { UmbSaveAndScheduleDocumentWorkspaceAction } from './actions/save-and-schedule.action'; +import { UmbDocumentSaveAndPublishWorkspaceAction } from './actions/save-and-publish.action.js'; +import { UmbDocumentSaveAndPreviewWorkspaceAction } from './actions/save-and-preview.action.js'; +import { UmbSaveAndScheduleDocumentWorkspaceAction } from './actions/save-and-schedule.action.js'; import { UmbSaveWorkspaceAction } from '@umbraco-cms/backoffice/workspace'; import type { ManifestWorkspace, @@ -13,7 +13,7 @@ const workspace: ManifestWorkspace = { type: 'workspace', alias: 'Umb.Workspace.Document', name: 'Document Workspace', - loader: () => import('./document-workspace.element'), + loader: () => import('./document-workspace.element.js'), meta: { entityType: 'document', }, @@ -24,7 +24,7 @@ const workspaceEditorViews: Array<ManifestWorkspaceEditorView> = [ type: 'workspaceEditorView', alias: 'Umb.WorkspaceView.Document.Edit', name: 'Document Workspace Edit View', - loader: () => import('./views/edit/document-workspace-view-edit.element'), + loader: () => import('./views/edit/document-workspace-view-edit.element.js'), weight: 200, meta: { label: 'Content', @@ -39,7 +39,7 @@ const workspaceEditorViews: Array<ManifestWorkspaceEditorView> = [ type: 'workspaceEditorView', alias: 'Umb.WorkspaceView.Document.Info', name: 'Document Workspace Info View', - loader: () => import('./views/info/document-info-workspace-view.element'), + loader: () => import('./views/info/document-info-workspace-view.element.js'), weight: 100, meta: { label: 'Info', @@ -79,7 +79,7 @@ const workspaceActions: Array<ManifestWorkspaceAction> = [ type: 'workspaceAction', alias: 'Umb.WorkspaceAction.Document.SaveAndPublish', name: 'Save And Publish Document Workspace Action', - weight: 100, + weight: 70, meta: { label: 'Save And Publish', look: 'primary', @@ -94,7 +94,7 @@ const workspaceActions: Array<ManifestWorkspaceAction> = [ type: 'workspaceAction', alias: 'Umb.WorkspaceAction.Document.Save', name: 'Save Document Workspace Action', - weight: 90, + weight: 80, meta: { label: 'Save', look: 'secondary', @@ -108,7 +108,7 @@ const workspaceActions: Array<ManifestWorkspaceAction> = [ type: 'workspaceAction', alias: 'Umb.WorkspaceAction.Document.SaveAndPreview', name: 'Save And Preview Document Workspace Action', - weight: 80, + weight: 90, meta: { label: 'Save And Preview', api: UmbDocumentSaveAndPreviewWorkspaceAction, @@ -121,7 +121,7 @@ const workspaceActions: Array<ManifestWorkspaceAction> = [ type: 'workspaceAction', alias: 'Umb.WorkspaceAction.Document.SaveAndSchedule', name: 'Save And Schedule Document Workspace Action', - weight: 70, + weight: 100, meta: { label: 'Save And Schedule', api: UmbSaveAndScheduleDocumentWorkspaceAction, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-properties.element.ts index 68225c6b09..95d621fb29 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-properties.element.ts @@ -1,13 +1,10 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { repeat } from 'lit/directives/repeat.js'; -import { UmbDocumentWorkspaceContext } from '../../document-workspace.context'; +import { UmbDocumentWorkspaceContext } from '../../document-workspace.context.js'; +import { css, html , customElement, property, state , repeat } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbContentTypePropertyStructureHelper, PropertyContainerTypes } from '@umbraco-cms/backoffice/content-type'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { PropertyTypeResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; - +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; @customElement('umb-document-workspace-view-edit-properties') export class UmbDocumentWorkspaceViewEditPropertiesElement extends UmbLitElement { @property({ type: String, attribute: 'container-name', reflect: false }) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-tab.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-tab.element.ts index 721c251f8e..6379135630 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-tab.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-tab.element.ts @@ -1,14 +1,12 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { repeat } from 'lit/directives/repeat.js'; -import { UmbDocumentWorkspaceContext } from '../../document-workspace.context'; +import { UmbDocumentWorkspaceContext } from '../../document-workspace.context.js'; +import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { PropertyTypeContainerResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -import './document-workspace-view-edit-properties.element'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; +import './document-workspace-view-edit-properties.element.js'; @customElement('umb-document-workspace-view-edit-tab') export class UmbDocumentWorkspaceViewEditTabElement extends UmbLitElement { private _tabName?: string | undefined; @@ -81,8 +79,9 @@ export class UmbDocumentWorkspaceViewEditTabElement extends UmbLitElement { static styles = [ UUITextStyles, css` - uui-box { - margin: var(--uui-size-layout-1); + :host { + display: block; + padding: var(--uui-size-layout-1); } `, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts index 08274dcefc..2464635803 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts @@ -1,14 +1,16 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, state } from 'lit/decorators.js'; -import { repeat } from 'lit/directives/repeat.js'; -import { UmbDocumentWorkspaceContext } from '../../document-workspace.context'; +import { UmbDocumentWorkspaceContext } from '../../document-workspace.context.js'; +import { css, html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type'; -import type { UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/internal/router'; +import { + encodeFolderName, + UmbRoute, + UmbRouterSlotChangeEvent, + UmbRouterSlotInitEvent, +} from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { PropertyTypeContainerResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; -import { UmbRoute } from '@umbraco-cms/backoffice/router'; +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UmbWorkspaceEditorViewExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-document-workspace-view-edit') @@ -74,8 +76,8 @@ export class UmbDocumentWorkspaceViewEditElement this._tabs?.forEach((tab) => { const tabName = tab.name; routes.push({ - path: `tab/${encodeURI(tabName || '').toString()}`, - component: () => import('./document-workspace-view-edit-tab.element'), + path: `tab/${encodeFolderName(tabName || '').toString()}`, + component: () => import('./document-workspace-view-edit-tab.element.js'), setup: (component) => { (component as any).tabName = tabName; }, @@ -86,7 +88,7 @@ export class UmbDocumentWorkspaceViewEditElement if (this._hasRootGroups) { routes.push({ path: '', - component: () => import('./document-workspace-view-edit-tab.element'), + component: () => import('./document-workspace-view-edit-tab.element.js'), setup: (component) => { (component as any).noTabName = true; }, @@ -95,7 +97,7 @@ export class UmbDocumentWorkspaceViewEditElement if (routes.length !== 0) { routes.push({ - path: '**', + path: '', redirectTo: routes[0]?.path, }); } @@ -121,8 +123,7 @@ export class UmbDocumentWorkspaceViewEditElement this._tabs, (tab) => tab.name, (tab) => { - // TODO: make better url folder name: - const path = this._routerPath + '/tab/' + encodeURI(tab.name || ''); + const path = this._routerPath + '/tab/' + encodeFolderName(tab.name || ''); return html`<uui-tab label=${tab.name!} .active=${path === this._activePath} href=${path} >${tab.name}</uui-tab >`; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-info-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-info-workspace-view.element.ts index bb8a130955..420da52c53 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-info-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-info-workspace-view.element.ts @@ -1,11 +1,7 @@ -import { css, html, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { repeat } from 'lit/directives/repeat.js'; -import { customElement, state } from 'lit/decorators.js'; -import { UUIPaginationEvent } from '@umbraco-ui/uui'; +import { css, html, nothing, repeat, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles, UUIPaginationEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; - +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; interface HistoryNode { userId?: number; userAvatars?: []; @@ -241,7 +237,7 @@ export class UmbDocumentInfoWorkspaceViewElement extends UmbLitElement { :host { display: grid; gap: var(--uui-size-layout-1); - margin: var(--uui-size-layout-1); + padding: var(--uui-size-layout-1); grid-template-columns: 1fr 350px; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-info-workspace-view.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-info-workspace-view.stories.ts index 60431116de..601b2372cd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-info-workspace-view.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-info-workspace-view.stories.ts @@ -1,12 +1,12 @@ -import './document-info-workspace-view.element'; +import './document-info-workspace-view.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbDocumentInfoWorkspaceViewElement } from './document-info-workspace-view.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -// import { data } from '../../../../../../core/mocks/data/document.data'; -// import { UmbNodeContext } from '../../node.context'; +// import { data } from '../../../../../../core/mocks/data/document.data.js'; +// import { UmbNodeContext } from '../../node.context.js'; -import type { UmbDocumentInfoWorkspaceViewElement } from './document-info-workspace-view.element'; export default { title: 'Workspaces/Documents/Views/Info', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/index.ts index f5676e2798..b9cc5c0340 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/index.ts @@ -1,23 +1,4 @@ -import { manifests as dashboardManifests } from './dashboards/manifests'; -import { manifests as contentSectionManifests } from './section.manifests'; -import { manifests as contentMenuManifest } from './menu.manifests'; -import { manifests as documentBlueprintManifests } from './document-blueprints/manifests'; -import { manifests as documentTypeManifests } from './document-types/manifests'; -import { manifests as documentManifests } from './documents/manifests'; -import type { UmbEntryPointOnInit } from '@umbraco-cms/backoffice/extension-api'; +import './document-types/index.js'; +import './documents/index.js'; -import './document-types/components'; -import './documents/components'; - -export const manifests = [ - ...dashboardManifests, - ...contentSectionManifests, - ...contentMenuManifest, - ...documentBlueprintManifests, - ...documentTypeManifests, - ...documentManifests, -]; - -export const onInit: UmbEntryPointOnInit = (_host, extensionRegistry) => { - extensionRegistry.registerMany(manifests); -}; +export * from './manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/manifests.ts new file mode 100644 index 0000000000..17fc8e51b5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/manifests.ts @@ -0,0 +1,15 @@ +import { manifests as dashboardManifests } from './dashboards/manifests.js'; +import { manifests as contentSectionManifests } from './section.manifests.js'; +import { manifests as contentMenuManifest } from './menu.manifests.js'; +import { manifests as documentBlueprintManifests } from './document-blueprints/manifests.js'; +import { manifests as documentTypeManifests } from './document-types/manifests.js'; +import { manifests as documentManifests } from './documents/manifests.js'; + +export const manifests = [ + ...dashboardManifests, + ...contentSectionManifests, + ...contentMenuManifest, + ...documentBlueprintManifests, + ...documentTypeManifests, + ...documentManifests, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/package-entry-point.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/package-entry-point.ts new file mode 100644 index 0000000000..9b5ff0c59e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/package-entry-point.ts @@ -0,0 +1,6 @@ +import { manifests } from './manifests.js'; +import type { UmbEntryPointOnInit } from '@umbraco-cms/backoffice/extension-api'; + +export const onInit: UmbEntryPointOnInit = (_host, extensionRegistry) => { + extensionRegistry.registerMany(manifests); +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/section.manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/section.manifests.ts index a31b553e84..ae9612db76 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/section.manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/section.manifests.ts @@ -1,5 +1,8 @@ -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; -import { ManifestSectionSidebarAppMenuKind } from '@umbraco-cms/backoffice/extension-registry'; +import { DOCUMENT_ROOT_ENTITY_TYPE } from './documents/index.js'; +import type { + ManifestSectionSidebarAppMenuWithEntityActionsKind, + ManifestTypes, +} from '@umbraco-cms/backoffice/extension-registry'; const sectionAlias = 'Umb.Section.Content'; @@ -14,15 +17,16 @@ const section: ManifestTypes = { }, }; -const menuSectionSidebarApp: ManifestSectionSidebarAppMenuKind = { +const menuSectionSidebarApp: ManifestSectionSidebarAppMenuWithEntityActionsKind = { type: 'sectionSidebarApp', - kind: 'menu', + kind: 'menuWithEntityActions', alias: 'Umb.SidebarMenu.Content', name: 'Content Sidebar Menu', weight: 100, meta: { label: 'Content', menu: 'Umb.Menu.Content', + entityType: DOCUMENT_ROOT_ENTITY_TYPE, }, conditions: { sections: [sectionAlias], diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/umbraco-package.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/umbraco-package.ts index 5fd6d00768..a0b11b8baf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/umbraco-package.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/umbraco-package.ts @@ -4,6 +4,6 @@ export const extensions = [ name: 'Document Management Entry Point', alias: 'Umb.EntryPoint.DocumentManagement', type: 'entryPoint', - loader: () => import('./index'), + loader: () => import('./package-entry-point.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/index.ts index f740e699da..440238766c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/index.ts @@ -1,7 +1,7 @@ -import { manifests as mediaSectionManifests } from './section.manifests'; -import { manifests as mediaMenuManifests } from './menu.manifests'; -import { manifests as mediaManifests } from './media/manifests'; -import { manifests as mediaTypesManifests } from './media-types/manifests'; +import { manifests as mediaSectionManifests } from './section.manifests.js'; +import { manifests as mediaMenuManifests } from './menu.manifests.js'; +import { manifests as mediaManifests } from './media/manifests.js'; +import { manifests as mediaTypesManifests } from './media-types/manifests.js'; import type { UmbEntryPointOnInit } from '@umbraco-cms/backoffice/extension-api'; export const manifests = [...mediaSectionManifests, ...mediaMenuManifests, ...mediaManifests, ...mediaTypesManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create.action.ts index a20ab725eb..01cb440514 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create.action.ts @@ -1,4 +1,4 @@ -import { UmbMediaTypeRepository } from '../repository/media-type.repository'; +import { UmbMediaTypeRepository } from '../repository/media-type.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/manifests.ts index b179b6f252..6fdb415b77 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/manifests.ts @@ -1,6 +1,6 @@ -import { MEDIA_TYPE_REPOSITORY_ALIAS } from '../repository/manifests'; -import { UmbCreateMediaTypeEntityAction } from './create.action'; -import UmbReloadMediaTypeEntityAction from './reload.action'; +import { MEDIA_TYPE_REPOSITORY_ALIAS } from '../repository/manifests.js'; +import { UmbCreateMediaTypeEntityAction } from './create.action.js'; +import UmbReloadMediaTypeEntityAction from './reload.action.js'; import { UmbDeleteEntityAction, UmbMoveEntityAction, UmbCopyEntityAction } from '@umbraco-cms/backoffice/entity-action'; import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/reload.action.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/reload.action.ts index cb765b49e5..211ae419f6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/reload.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/reload.action.ts @@ -1,5 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { UmbMediaTypeRepository } from '../repository/media-type.repository'; +import { UmbMediaTypeRepository } from '../repository/media-type.repository.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/manifests.ts index 7e628554a5..ca7cd2be1b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/manifests.ts @@ -1,8 +1,8 @@ -import { manifests as menuItemManifests } from './menu-item/manifests'; -import { manifests as treeManifests } from './tree/manifests'; -import { manifests as workspaceManifests } from './workspace/manifests'; -import { manifests as repositoryManifests } from './repository/manifests'; -import { manifests as entityActionManifests } from './entity-actions/manifests'; +import { manifests as menuItemManifests } from './menu-item/manifests.js'; +import { manifests as treeManifests } from './tree/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; +import { manifests as repositoryManifests } from './repository/manifests.js'; +import { manifests as entityActionManifests } from './entity-actions/manifests.js'; export const manifests = [ ...menuItemManifests, diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/manifests.ts index ce521f6362..23b6b49d6e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/manifests.ts @@ -1,6 +1,6 @@ -import { UmbMediaTypeRepository } from './media-type.repository'; -import { UmbMediaTypeStore } from './media-type.detail.store'; -import { UmbMediaTypeTreeStore } from './media-type.tree.store'; +import { UmbMediaTypeRepository } from './media-type.repository.js'; +import { UmbMediaTypeStore } from './media-type.detail.store.js'; +import { UmbMediaTypeTreeStore } from './media-type.tree.store.js'; import type { ManifestStore, ManifestTreeStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const MEDIA_TYPE_REPOSITORY_ALIAS = 'Umb.Repository.MediaType'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/media-type.detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/media-type.detail.store.ts index 0c259c7fc7..b31691a6a6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/media-type.detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/media-type.detail.store.ts @@ -1,4 +1,4 @@ -import type { MediaTypeDetails } from '../types'; +import type { MediaTypeDetails } from '../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/media-type.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/media-type.repository.ts index 2bf6c57b2c..5d9b6ee37e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/media-type.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/media-type.repository.ts @@ -1,8 +1,8 @@ -import type { MediaTypeDetails } from '../types'; -import { UmbMediaTypeTreeStore, UMB_MEDIA_TYPE_TREE_STORE_CONTEXT_TOKEN } from './media-type.tree.store'; -import { UmbMediaTypeDetailServerDataSource } from './sources/media-type.detail.server.data'; -import { UmbMediaTypeStore, UMB_MEDIA_TYPE_STORE_CONTEXT_TOKEN } from './media-type.detail.store'; -import { UmbMediaTypeTreeServerDataSource } from './sources/media-type.tree.server.data'; +import type { MediaTypeDetails } from '../types.js'; +import { UmbMediaTypeTreeStore, UMB_MEDIA_TYPE_TREE_STORE_CONTEXT_TOKEN } from './media-type.tree.store.js'; +import { UmbMediaTypeDetailServerDataSource } from './sources/media-type.detail.server.data.js'; +import { UmbMediaTypeStore, UMB_MEDIA_TYPE_STORE_CONTEXT_TOKEN } from './media-type.detail.store.js'; +import { UmbMediaTypeTreeServerDataSource } from './sources/media-type.tree.server.data.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/sources/media-type.detail.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/sources/media-type.detail.server.data.ts index 4f1b47fe4b..19dcd97b19 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/sources/media-type.detail.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/sources/media-type.detail.server.data.ts @@ -1,5 +1,5 @@ -import type { MediaTypeDetails } from '../../types'; -import { MediaTypeDetailDataSource } from './media-type.details.server.data.interface'; +import type { MediaTypeDetails } from '../../types.js'; +import { MediaTypeDetailDataSource } from './media-type.details.server.data.interface.js'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/sources/media-type.details.server.data.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/sources/media-type.details.server.data.interface.ts index 535592c31b..5b3ea5faf1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/sources/media-type.details.server.data.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/sources/media-type.details.server.data.interface.ts @@ -1,4 +1,4 @@ -import type { MediaTypeDetails } from '../../types'; +import type { MediaTypeDetails } from '../../types.js'; import type { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; // TODO => Use models when they exist diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts index e6e0eb3db4..d7753670ec 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts @@ -1,4 +1,4 @@ -import { MEDIA_TYPE_REPOSITORY_ALIAS } from '../repository/manifests'; +import { MEDIA_TYPE_REPOSITORY_ALIAS } from '../repository/manifests.js'; import type { ManifestTree, ManifestTreeItem } from '@umbraco-cms/backoffice/extension-registry'; const tree: ManifestTree = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/manifests.ts index fdfbd67680..56fbe793be 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/manifests.ts @@ -9,7 +9,7 @@ const workspace: ManifestWorkspace = { type: 'workspace', alias: 'Umb.Workspace.MediaType', name: 'Media Type Workspace', - loader: () => import('./media-type-workspace.element'), + loader: () => import('./media-type-workspace.element.js'), meta: { entityType: 'media-type', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace-editor.element.ts similarity index 75% rename from src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace-edit.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace-editor.element.ts index f31c3b9475..04337151d6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace-editor.element.ts @@ -1,13 +1,10 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UUIInputElement, UUIInputEvent } from '@umbraco-ui/uui'; -import { UmbWorkspaceMediaTypeContext } from './media-type-workspace.context'; +import { UmbWorkspaceMediaTypeContext } from './media-type-workspace.context.js'; +import { UUITextStyles, UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; - -@customElement('umb-media-type-workspace-edit') -export class UmbMediaTypeWorkspaceEditElement extends UmbLitElement { +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; +@customElement('umb-media-type-workspace-editor') +export class UmbMediaTypeWorkspaceEditorElement extends UmbLitElement { @state() private _mediaTypeName?: string | null = ''; #workspaceContext?: UmbWorkspaceMediaTypeContext; @@ -61,10 +58,10 @@ export class UmbMediaTypeWorkspaceEditElement extends UmbLitElement { ]; } -export default UmbMediaTypeWorkspaceEditElement; +export default UmbMediaTypeWorkspaceEditorElement; declare global { interface HTMLElementTagNameMap { - 'umb-media-type-workspace-edit': UmbMediaTypeWorkspaceEditElement; + 'umb-media-type-workspace-editor': UmbMediaTypeWorkspaceEditorElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts index 43ce09cb32..739b0a6a51 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts @@ -1,5 +1,5 @@ -import { UmbMediaTypeRepository } from '../repository/media-type.repository'; -import type { MediaTypeDetails } from '../types'; +import { UmbMediaTypeRepository } from '../repository/media-type.repository.js'; +import type { MediaTypeDetails } from '../types.js'; import { UmbEntityWorkspaceContextInterface, UmbWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.element.ts index e21d13517b..e52824cf62 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.element.ts @@ -1,15 +1,14 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbWorkspaceMediaTypeContext } from './media-type-workspace.context'; -import { UmbMediaTypeWorkspaceEditElement } from './media-type-workspace-edit.element'; +import { UmbWorkspaceMediaTypeContext } from './media-type-workspace.context.js'; +import { UmbMediaTypeWorkspaceEditorElement } from './media-type-workspace-editor.element.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; @customElement('umb-media-type-workspace') export class UmbMediaTypeWorkspaceElement extends UmbLitElement { #workspaceContext = new UmbWorkspaceMediaTypeContext(this); - #element = new UmbMediaTypeWorkspaceEditElement(); + #element = new UmbMediaTypeWorkspaceEditorElement(); @state() _routes: UmbRoute[] = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/collection-view-media-test.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/collection-view-media-test.element.ts index fcc03093c9..1b1fe55061 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/collection-view-media-test.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/collection-view-media-test.element.ts @@ -1,11 +1,8 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html, LitElement } from 'lit'; -import { customElement } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, LitElement , customElement } from '@umbraco-cms/backoffice/external/lit'; @customElement('umb-collection-view-media-test') export class UmbCollectionViewMediaTestElement extends LitElement { - - render() { return html`umb-collection-view-media-test`; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/manifests.ts index bd044062ff..6280392860 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/manifests.ts @@ -5,7 +5,7 @@ export const manifests: Array<ManifestCollectionView> = [ type: 'collectionView', alias: 'Umb.CollectionView.MediaGrid', name: 'Media Grid Collection View', - loader: () => import('./media-grid-collection-view.element'), + loader: () => import('./media-grid-collection-view.element.js'), weight: 300, meta: { label: 'Grid', @@ -20,7 +20,7 @@ export const manifests: Array<ManifestCollectionView> = [ type: 'collectionView', alias: 'Umb.CollectionView.MediaTable', name: 'Media Table Collection View', - loader: () => import('./media-table-collection-view.element'), + loader: () => import('./media-table-collection-view.element.js'), weight: 200, meta: { label: 'Table', @@ -36,7 +36,7 @@ export const manifests: Array<ManifestCollectionView> = [ alias: 'Umb.CollectionView.Test', name: 'Test', elementName: 'umb-collection-view-media-test', - loader: () => import('./collection-view-media-test.element'), + loader: () => import('./collection-view-media-test.element.js'), weight: 100, meta: { label: 'Test', diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/media-grid-collection-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/media-grid-collection-view.element.ts index 157daab33e..e679907d9d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/media-grid-collection-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/media-grid-collection-view.element.ts @@ -1,7 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { repeat } from 'lit/directives/repeat.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, state , repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbCollectionContext, UMB_COLLECTION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/collection'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -92,7 +90,7 @@ export class UmbMediaGridCollectionViewElement extends UmbLitElement { ?selected=${this._isSelected(item)} @open=${() => this._handleOpenItem(item)} @selected=${() => this._handleSelect(item)} - @unselected=${() => this._handleDeselect(item)} + @deselected=${() => this._handleDeselect(item)} class="media-item" .fileExt=${item.hasChildren ? '' : 'image'} name=${name}></uui-card-media>`; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/media-table-collection-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/media-table-collection-view.element.ts index 551c2b45f2..963957d60a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/media-table-collection-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/media-table-collection-view.element.ts @@ -1,7 +1,6 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import type { MediaDetails } from '../'; +import type { MediaDetails } from '../index.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbTableColumn, UmbTableConfig, @@ -10,7 +9,7 @@ import type { UmbTableItem, UmbTableOrderedEvent, UmbTableSelectedEvent, -} from '@umbraco-cms/backoffice/core/components'; +} from '@umbraco-cms/backoffice/components'; import { UmbCollectionContext, UMB_COLLECTION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/collection'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/index.ts index 9186c4a7d0..4c82520e7c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/index.ts @@ -1 +1 @@ -import './input-media-picker/input-media-picker.element'; +import './input-media-picker/input-media-picker.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media-picker/input-media-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media-picker/input-media-picker.element.ts index 1305c0460e..9822455abe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media-picker/input-media-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media-picker/input-media-picker.element.ts @@ -1,9 +1,6 @@ -import { css, html, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; -import { UmbMediaRepository } from '../../repository/media.repository'; +import { UmbMediaRepository } from '../../repository/media.repository.js'; +import { css, html, nothing, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles, FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media-picker/input-media-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media-picker/input-media-picker.stories.ts index c760ca1f09..e4874e9c26 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media-picker/input-media-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media-picker/input-media-picker.stories.ts @@ -1,17 +1,15 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import './input-media-picker.element'; -import type { UmbInputMediaPickerElement } from './input-media-picker.element'; +import './input-media-picker.element.js'; +import type { UmbInputMediaPickerElement } from './input-media-picker.element.js'; const meta: Meta<UmbInputMediaPickerElement> = { - title: 'Components/Inputs/Media Picker', - component: 'umb-input-media-picker' + title: 'Components/Inputs/Media Picker', + component: 'umb-input-media-picker', }; - + export default meta; type Story = StoryObj<UmbInputMediaPickerElement>; - + export const Overview: Story = { - args: { - - } -}; \ No newline at end of file + args: {}, +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media-picker/input-media-picker.test.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media-picker/input-media-picker.test.ts index 157f18dc4e..deaf1d7be3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media-picker/input-media-picker.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media-picker/input-media-picker.test.ts @@ -1,5 +1,5 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbInputMediaPickerElement } from './input-media-picker.element'; +import { UmbInputMediaPickerElement } from './input-media-picker.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbInputMediaPickerElement', () => { let element: UmbInputMediaPickerElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/manifests.ts index 3002ed4e13..4af8ecff78 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/manifests.ts @@ -1,4 +1,4 @@ -import { MEDIA_REPOSITORY_ALIAS } from '../repository/manifests'; +import { MEDIA_REPOSITORY_ALIAS } from '../repository/manifests.js'; import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; import { UmbTrashEntityAction } from '@umbraco-cms/backoffice/entity-action'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/copy/copy.action.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/copy/copy.action.ts index 127056195a..8394a9c7e4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/copy/copy.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/copy/copy.action.ts @@ -1,5 +1,5 @@ -import type { UmbMediaRepository } from '../../repository/media.repository'; -import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-action'; +import type { UmbMediaRepository } from '../../repository/media.repository.js'; +import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbMediaCopyEntityBulkAction extends UmbEntityBulkActionBase<UmbMediaRepository> { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/manifests.ts index 8cf8e68045..45e37cb336 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/manifests.ts @@ -1,7 +1,7 @@ -import { MEDIA_REPOSITORY_ALIAS } from '../repository/manifests'; -import { UmbMediaMoveEntityBulkAction } from './move/move.action'; -import { UmbMediaCopyEntityBulkAction } from './copy/copy.action'; -import { UmbMediaTrashEntityBulkAction } from './trash/trash.action'; +import { MEDIA_REPOSITORY_ALIAS } from '../repository/manifests.js'; +import { UmbMediaMoveEntityBulkAction } from './move/move.action.js'; +import { UmbMediaCopyEntityBulkAction } from './copy/copy.action.js'; +import { UmbMediaTrashEntityBulkAction } from './trash/trash.action.js'; import { ManifestEntityBulkAction } from '@umbraco-cms/backoffice/extension-registry'; const entityType = 'media'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/move/move.action.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/move/move.action.ts index 8a5742875a..7cae823031 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/move/move.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/move/move.action.ts @@ -1,5 +1,5 @@ -import type { UmbMediaRepository } from '../../repository/media.repository'; -import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-action'; +import type { UmbMediaRepository } from '../../repository/media.repository.js'; +import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, UMB_MEDIA_TREE_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/trash/trash.action.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/trash/trash.action.ts index 6fa33da195..9b2f10d9d9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/trash/trash.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/trash/trash.action.ts @@ -1,6 +1,6 @@ -import { html } from 'lit'; -import type { UmbMediaRepository } from '../../repository/media.repository'; -import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-action'; +import type { UmbMediaRepository } from '../../repository/media.repository.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; +import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/manifests.ts index dba1d8b562..cf5eb52e5f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/manifests.ts @@ -1,10 +1,10 @@ -import { manifests as collectionViewManifests } from './collection-view/manifests'; -import { manifests as repositoryManifests } from './repository/manifests'; -import { manifests as menuItemManifests } from './menu-item/manifests'; -import { manifests as treeManifests } from './tree/manifests'; -import { manifests as workspaceManifests } from './workspace/manifests'; -import { manifests as entityActionsManifests } from './entity-actions/manifests'; -import { manifests as entityBulkActionsManifests } from './entity-bulk-actions/manifests'; +import { manifests as collectionViewManifests } from './collection-view/manifests.js'; +import { manifests as repositoryManifests } from './repository/manifests.js'; +import { manifests as menuItemManifests } from './menu-item/manifests.js'; +import { manifests as treeManifests } from './tree/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; +import { manifests as entityActionsManifests } from './entity-actions/manifests.js'; +import { manifests as entityBulkActionsManifests } from './entity-bulk-actions/manifests.js'; export const manifests = [ ...collectionViewManifests, diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/menu-item/manifests.ts index 98b91216bb..d8e8c311b1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/menu-item/manifests.ts @@ -5,7 +5,7 @@ const menuItem: ManifestMenuItem = { alias: 'Umb.MenuItem.Media', name: 'Media Menu Item', weight: 100, - loader: () => import('./media-menu-item.element'), + loader: () => import('./media-menu-item.element.js'), meta: { label: 'Media', icon: 'umb:folder', diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/menu-item/media-menu-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/menu-item/media-menu-item.element.ts index c69525c8b6..9682c39cd7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/menu-item/media-menu-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/menu-item/media-menu-item.element.ts @@ -1,5 +1,4 @@ -import { html } from 'lit'; -import { customElement } from 'lit/decorators.js'; +import { html , customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-media-menu-item') diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/manifests.ts index 77b394cb85..5e2530f6b1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/manifests.ts @@ -1,6 +1,6 @@ -import { UmbMediaRepository } from './media.repository'; -import { UmbMediaStore } from './media.store'; -import { UmbMediaTreeStore } from './media.tree.store'; +import { UmbMediaRepository } from './media.repository.js'; +import { UmbMediaStore } from './media.store.js'; +import { UmbMediaTreeStore } from './media.tree.store.js'; import type { ManifestStore, ManifestTreeStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const MEDIA_REPOSITORY_ALIAS = 'Umb.Repository.Media'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts index 974457aeab..7a380fcd7b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts @@ -1,8 +1,8 @@ -import type { MediaDetails } from '../'; -import { UmbMediaTreeServerDataSource } from './sources/media.tree.server.data'; -import { UmbMediaTreeStore, UMB_MEDIA_TREE_STORE_CONTEXT_TOKEN } from './media.tree.store'; -import { UmbMediaStore, UMB_MEDIA_STORE_CONTEXT_TOKEN } from './media.store'; -import { UmbMediaDetailServerDataSource } from './sources/media.detail.server.data'; +import type { MediaDetails } from '../index.js'; +import { UmbMediaTreeServerDataSource } from './sources/media.tree.server.data.js'; +import { UmbMediaTreeStore, UMB_MEDIA_TREE_STORE_CONTEXT_TOKEN } from './media.tree.store.js'; +import { UmbMediaStore, UMB_MEDIA_STORE_CONTEXT_TOKEN } from './media.store.js'; +import { UmbMediaDetailServerDataSource } from './sources/media.detail.server.data.js'; import type { UmbTreeRepository, UmbTreeDataSource } from '@umbraco-cms/backoffice/repository'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.store.ts index 153e6fd0a9..81dcac4e15 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.store.ts @@ -1,4 +1,4 @@ -import type { MediaDetails } from '../'; +import type { MediaDetails } from '../index.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/sources/media.detail.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/sources/media.detail.server.data.ts index ab6c102c32..d23feef673 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/sources/media.detail.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/sources/media.detail.server.data.ts @@ -1,4 +1,4 @@ -import type { MediaDetails } from '../../'; +import type { MediaDetails } from '../../index.js'; import type { UmbDataSource } from '@umbraco-cms/backoffice/repository'; import { CreateMediaRequestModel, UpdateMediaRequestModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/manifests.ts index ca74c4162b..a9e8803701 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/manifests.ts @@ -1,4 +1,4 @@ -import { MEDIA_REPOSITORY_ALIAS } from '../repository/manifests'; +import { MEDIA_REPOSITORY_ALIAS } from '../repository/manifests.js'; import type { ManifestTree, ManifestTreeItem } from '@umbraco-cms/backoffice/extension-registry'; const treeAlias = 'Umb.Tree.Media'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/manifests.ts index a62235d24b..b3634a29d5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/manifests.ts @@ -1,4 +1,4 @@ -import { MEDIA_REPOSITORY_ALIAS } from '../repository/manifests'; +import { MEDIA_REPOSITORY_ALIAS } from '../repository/manifests.js'; import { UmbSaveWorkspaceAction } from '@umbraco-cms/backoffice/workspace'; import type { ManifestWorkspace, @@ -11,7 +11,7 @@ const workspace: ManifestWorkspace = { type: 'workspace', alias: 'Umb.Workspace.Media', name: 'Media Workspace', - loader: () => import('./media-workspace.element'), + loader: () => import('./media-workspace.element.js'), meta: { entityType: 'media', }, @@ -22,7 +22,7 @@ const workspaceEditorViews: Array<ManifestWorkspaceEditorView> = [ type: 'workspaceEditorView', alias: 'Umb.WorkspaceView.Media.Edit', name: 'Media Workspace Edit View', - loader: () => import('./views/edit/media-edit-workspace-view.element'), + loader: () => import('./views/edit/media-edit-workspace-view.element.js'), weight: 200, meta: { label: 'Media', @@ -37,7 +37,7 @@ const workspaceEditorViews: Array<ManifestWorkspaceEditorView> = [ type: 'workspaceEditorView', alias: 'Umb.WorkspaceView.Media.Info', name: 'Media Workspace Info View', - loader: () => import('./views/info/media-info-workspace-view.element'), + loader: () => import('./views/info/media-info-workspace-view.element.js'), weight: 100, meta: { label: 'Info', diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts similarity index 75% rename from src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-edit.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts index d01a7853e7..f3166be056 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts @@ -1,12 +1,10 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, nothing } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbMediaWorkspaceContext } from './media-workspace.context'; +import { UmbMediaWorkspaceContext } from './media-workspace.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; - -@customElement('umb-media-workspace-edit') -export class UmbMediaWorkspaceEditElement extends UmbLitElement { +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; +@customElement('umb-media-workspace-editor') +export class UmbMediaWorkspaceEditorElement extends UmbLitElement { @state() _id?: string; @@ -58,10 +56,10 @@ export class UmbMediaWorkspaceEditElement extends UmbLitElement { ]; } -export default UmbMediaWorkspaceEditElement; +export default UmbMediaWorkspaceEditorElement; declare global { interface HTMLElementTagNameMap { - 'umb-media-workspace-edit': UmbMediaWorkspaceEditElement; + 'umb-media-workspace-editor': UmbMediaWorkspaceEditorElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts index f6e040f070..0ee1178950 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts @@ -1,5 +1,5 @@ -import { UmbMediaRepository } from '../repository/media.repository'; -import type { MediaDetails } from '../'; +import { UmbMediaRepository } from '../repository/media.repository.js'; +import type { MediaDetails } from '../index.js'; import { UmbEntityWorkspaceContextInterface, UmbWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; import { appendToFrozenArray, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.element.ts index 58ec3bbcef..c86b631b4d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.element.ts @@ -1,15 +1,14 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbMediaWorkspaceContext } from './media-workspace.context'; -import { UmbMediaWorkspaceEditElement } from './media-workspace-edit.element'; +import { UmbMediaWorkspaceContext } from './media-workspace.context.js'; +import { UmbMediaWorkspaceEditorElement } from './media-workspace-editor.element.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-media-workspace') export class UmbMediaWorkspaceElement extends UmbLitElement { #workspaceContext = new UmbMediaWorkspaceContext(this); - #element = new UmbMediaWorkspaceEditElement(); + #element = new UmbMediaWorkspaceEditorElement(); @state() _routes: UmbRoute[] = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.stories.ts index 12b1a26e7e..366213d2e8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.stories.ts @@ -1,9 +1,8 @@ -import './media-workspace.element'; +import './media-workspace.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { data as mediaNodes } from '../../../../shared/mocks/data/media.data'; -import type { UmbMediaWorkspaceElement } from './media-workspace.element'; +import { data as mediaNodes } from '../../../../mocks/data/media.data.js'; +import type { UmbMediaWorkspaceElement } from './media-workspace.element.js'; +import { html , ifDefined } from '@umbraco-cms/backoffice/external/lit'; export default { title: 'Workspaces/Media', diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/edit/media-edit-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/edit/media-edit-workspace-view.element.ts index 61249f0f32..229a70938b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/edit/media-edit-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/edit/media-edit-workspace-view.element.ts @@ -1,6 +1,5 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement } from 'lit/decorators.js'; +import { css, html , customElement } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbWorkspaceEditorViewExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/edit/media-edit-workspace-view.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/edit/media-edit-workspace-view.stories.ts index b0e7827cae..4fc1b68fc4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/edit/media-edit-workspace-view.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/edit/media-edit-workspace-view.stories.ts @@ -1,12 +1,12 @@ -import './media-edit-workspace-view.element'; +import './media-edit-workspace-view.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbMediaEditWorkspaceViewElement } from './media-edit-workspace-view.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -// import { data } from '../../../../../../core/mocks/data/media.data'; -// import { UmbNodeContext } from '../../node.context'; +// import { data } from '../../../../../../core/mocks/data/media.data.js'; +// import { UmbNodeContext } from '../../node.context.js'; -import type { UmbMediaEditWorkspaceViewElement } from './media-edit-workspace-view.element'; export default { title: 'Workspaces/Media/Views/Edit', diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/info/media-info-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/info/media-info-workspace-view.element.ts index 820f5f2262..f47de7ea1a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/info/media-info-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/info/media-info-workspace-view.element.ts @@ -1,6 +1,5 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement } from 'lit/decorators.js'; +import { css, html , customElement } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbWorkspaceEditorViewExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/info/media-info-workspace-view.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/info/media-info-workspace-view.stories.ts index b05665cbb3..854c89b4b9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/info/media-info-workspace-view.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/info/media-info-workspace-view.stories.ts @@ -1,12 +1,12 @@ -import './media-info-workspace-view.element'; +import './media-info-workspace-view.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbMediaInfoWorkspaceViewElement } from './media-info-workspace-view.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -// import { data } from '../../../../../../core/mocks/data/media.data'; -// import { UmbNodeContext } from '../../node.context'; +// import { data } from '../../../../../../core/mocks/data/media.data.js'; +// import { UmbNodeContext } from '../../node.context.js'; -import type { UmbMediaInfoWorkspaceViewElement } from './media-info-workspace-view.element'; export default { title: 'Workspaces/Media/Views/Info', diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/section.manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/section.manifests.ts index f2675c7d4c..35b15e206e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/section.manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/section.manifests.ts @@ -1,4 +1,4 @@ -import { MEDIA_REPOSITORY_ALIAS } from './media/repository/manifests'; +import { MEDIA_REPOSITORY_ALIAS } from './media/repository/manifests.js'; import type { ManifestDashboardCollection, ManifestSection, diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/umbraco-package.ts b/src/Umbraco.Web.UI.Client/src/packages/media/umbraco-package.ts index 995dea659a..b83b306e0e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/umbraco-package.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/umbraco-package.ts @@ -4,6 +4,6 @@ export const extensions = [ name: 'Media Management Entry Point', alias: 'Umb.EntryPoint.MediaManagement', type: 'entryPoint', - loader: () => import('./index'), + loader: () => import('./index.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/dashboards/welcome/dashboard-members-welcome.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/dashboards/welcome/dashboard-members-welcome.element.ts index 76b4e052c5..67af8ba4f2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/dashboards/welcome/dashboard-members-welcome.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/dashboards/welcome/dashboard-members-welcome.element.ts @@ -1,11 +1,8 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, LitElement } from 'lit'; -import { customElement } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, LitElement, customElement } from '@umbraco-cms/backoffice/external/lit'; @customElement('umb-dashboard-members-welcome') export class UmbDashboardMembersWelcomeElement extends LitElement { - - render() { return html` <uui-box> @@ -17,13 +14,13 @@ export class UmbDashboardMembersWelcomeElement extends LitElement { </uui-box> `; } - + static styles = [ UUITextStyles, css` :host { display: block; - margin: var(--uui-size-layout-1); + padding: var(--uui-size-layout-1); } `, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/dashboards/welcome/dashboard-members-welcome.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/members/dashboards/welcome/dashboard-members-welcome.stories.ts index 0f85b67184..4b089cfc52 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/dashboards/welcome/dashboard-members-welcome.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/dashboards/welcome/dashboard-members-welcome.stories.ts @@ -1,9 +1,9 @@ -import './dashboard-members-welcome.element'; +import './dashboard-members-welcome.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbDashboardMembersWelcomeElement } from './dashboard-members-welcome.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbDashboardMembersWelcomeElement } from './dashboard-members-welcome.element'; export default { title: 'Dashboards/Welcome', diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/index.ts b/src/Umbraco.Web.UI.Client/src/packages/members/index.ts index 61908afe6c..eab135eef0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/index.ts @@ -1,8 +1,8 @@ -import { manifests as memberSectionManifests } from './section.manifests'; -import { manifests as menuSectionManifests } from './menu.manifests'; -import { manifests as memberGroupManifests } from './member-groups/manifests'; -import { manifests as memberTypeManifests } from './member-types/manifests'; -import { manifests as memberManifests } from './members/manifests'; +import { manifests as memberSectionManifests } from './section.manifests.js'; +import { manifests as menuSectionManifests } from './menu.manifests.js'; +import { manifests as memberGroupManifests } from './member-groups/manifests.js'; +import { manifests as memberTypeManifests } from './member-types/manifests.js'; +import { manifests as memberManifests } from './members/manifests.js'; import type { UmbEntryPointOnInit } from '@umbraco-cms/backoffice/extension-api'; export const manifests = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/entity-actions/manifests.ts index 0f031a5353..97a3855013 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/entity-actions/manifests.ts @@ -1,4 +1,4 @@ -import { MEMBER_GROUP_REPOSITORY_ALIAS } from '../repository/manifests'; +import { MEMBER_GROUP_REPOSITORY_ALIAS } from '../repository/manifests.js'; import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/manifests.ts index bc9e01ae46..d4ef687a8c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/manifests.ts @@ -1,8 +1,8 @@ -import { manifests as repositoryManifests } from './repository/manifests'; -import { manifests as entityActionManifests } from './entity-actions/manifests'; -import { manifests as menuItemManifests } from './menu-item/manifests'; -import { manifests as treeManifests } from './tree/manifests'; -import { manifests as workspaceManifests } from './workspace/manifests'; +import { manifests as repositoryManifests } from './repository/manifests.js'; +import { manifests as entityActionManifests } from './entity-actions/manifests.js'; +import { manifests as menuItemManifests } from './menu-item/manifests.js'; +import { manifests as treeManifests } from './tree/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; export const manifests = [ ...repositoryManifests, diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/manifests.ts index 66a06048f3..b38a0b0fb6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/manifests.ts @@ -1,6 +1,6 @@ -import { UmbMemberGroupRepository } from './member-group.repository'; -import { UmbMemberGroupStore } from './member-group.store'; -import { UmbMemberGroupTreeStore } from './member-group.tree.store'; +import { UmbMemberGroupRepository } from './member-group.repository.js'; +import { UmbMemberGroupStore } from './member-group.store.js'; +import { UmbMemberGroupTreeStore } from './member-group.tree.store.js'; import type { ManifestStore, ManifestTreeStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const MEMBER_GROUP_REPOSITORY_ALIAS = 'Umb.Repository.MemberGroup'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/member-group.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/member-group.repository.ts index 95685dbc88..96abe0e64a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/member-group.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/member-group.repository.ts @@ -1,8 +1,8 @@ -import type { MemberGroupDetails } from '../types'; -import { UmbMemberGroupTreeStore, UMB_MEMBER_GROUP_TREE_STORE_CONTEXT_TOKEN } from './member-group.tree.store'; -import { UmbMemberGroupDetailServerDataSource } from './sources/member-group.detail.server.data'; -import { UmbMemberGroupStore, UMB_MEMBER_GROUP_STORE_CONTEXT_TOKEN } from './member-group.store'; -import { UmbMemberGroupTreeServerDataSource } from './sources/member-group.tree.server.data'; +import type { MemberGroupDetails } from '../types.js'; +import { UmbMemberGroupTreeStore, UMB_MEMBER_GROUP_TREE_STORE_CONTEXT_TOKEN } from './member-group.tree.store.js'; +import { UmbMemberGroupDetailServerDataSource } from './sources/member-group.detail.server.data.js'; +import { UmbMemberGroupStore, UMB_MEMBER_GROUP_STORE_CONTEXT_TOKEN } from './member-group.store.js'; +import { UmbMemberGroupTreeServerDataSource } from './sources/member-group.tree.server.data.js'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/member-group.store.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/member-group.store.ts index 3338d76658..c18689b8e3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/member-group.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/member-group.store.ts @@ -1,4 +1,4 @@ -import type { MemberGroupDetails } from '../types'; +import type { MemberGroupDetails } from '../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/sources/member-group.detail.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/sources/member-group.detail.server.data.ts index f03453cbef..ab05e741d5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/sources/member-group.detail.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/sources/member-group.detail.server.data.ts @@ -1,4 +1,4 @@ -import type { MemberGroupDetails } from '../../types'; +import type { MemberGroupDetails } from '../../types.js'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; import { UmbDataSource } from '@umbraco-cms/backoffice/repository'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/manifests.ts index 4a86cc9042..e5323268ee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/manifests.ts @@ -1,4 +1,4 @@ -import { MEMBER_GROUP_REPOSITORY_ALIAS } from '../repository/manifests'; +import { MEMBER_GROUP_REPOSITORY_ALIAS } from '../repository/manifests.js'; import type { ManifestTree, ManifestTreeItem } from '@umbraco-cms/backoffice/extension-registry'; const treeAlias = 'Umb.Tree.MemberGroups'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/manifests.ts index 5901d17848..9a1bc2c76a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/manifests.ts @@ -9,7 +9,7 @@ const workspace: ManifestWorkspace = { type: 'workspace', alias: 'Umb.Workspace.MemberGroup', name: 'Member Group Workspace', - loader: () => import('./member-group-workspace.element'), + loader: () => import('./member-group-workspace.element.js'), meta: { entityType: 'member-group', }, @@ -20,7 +20,7 @@ const workspaceViews: Array<ManifestWorkspaceEditorView> = [ type: 'workspaceEditorView', alias: 'Umb.WorkspaceView.MemberGroup.Info', name: 'Member Group Workspace Info View', - loader: () => import('./views/info/workspace-view-member-group-info.element'), + loader: () => import('./views/info/workspace-view-member-group-info.element.js'), weight: 90, meta: { label: 'Info', diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace-editor.element.ts similarity index 75% rename from src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace-edit.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace-editor.element.ts index 964bf53538..99d7a71195 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace-editor.element.ts @@ -1,18 +1,15 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UUIInputElement, UUIInputEvent } from '@umbraco-ui/uui'; -import type { MemberGroupDetails } from '../types'; -import { UmbWorkspaceMemberGroupContext } from './member-group-workspace.context'; +import type { MemberGroupDetails } from '../types.js'; +import { UmbWorkspaceMemberGroupContext } from './member-group-workspace.context.js'; +import { UUITextStyles, UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; - +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; /** * @element umb-member-group-edit-workspace * @description - Element for displaying a Member Group Workspace */ -@customElement('umb-member-group-workspace-edit') -export class UmbMemberGroupWorkspaceEditElement extends UmbLitElement { +@customElement('umb-member-group-workspace-editor') +export class UmbMemberGroupWorkspaceEditorElement extends UmbLitElement { #workspaceContext?: UmbWorkspaceMemberGroupContext; @state() @@ -74,10 +71,10 @@ export class UmbMemberGroupWorkspaceEditElement extends UmbLitElement { ]; } -export default UmbMemberGroupWorkspaceEditElement; +export default UmbMemberGroupWorkspaceEditorElement; declare global { interface HTMLElementTagNameMap { - 'umb-member-group-workspace-edit': UmbMemberGroupWorkspaceEditElement; + 'umb-member-group-workspace-editor': UmbMemberGroupWorkspaceEditorElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.context.ts index 4c5d0b41a8..5905241285 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.context.ts @@ -1,5 +1,5 @@ -import { UmbMemberGroupRepository } from '../repository/member-group.repository'; -import type { MemberGroupDetails } from '../types'; +import { UmbMemberGroupRepository } from '../repository/member-group.repository.js'; +import type { MemberGroupDetails } from '../types.js'; import { UmbEntityWorkspaceContextInterface, UmbWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.element.ts index 0b89249f04..a3f7dd6275 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.element.ts @@ -1,8 +1,7 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbWorkspaceMemberGroupContext } from './member-group-workspace.context'; -import { UmbMemberGroupWorkspaceEditElement } from './member-group-workspace-edit.element'; +import { UmbWorkspaceMemberGroupContext } from './member-group-workspace.context.js'; +import { UmbMemberGroupWorkspaceEditorElement } from './member-group-workspace-editor.element.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -13,7 +12,7 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-member-group-workspace') export class UmbMemberGroupWorkspaceElement extends UmbLitElement { #workspaceContext = new UmbWorkspaceMemberGroupContext(this); - #element = new UmbMemberGroupWorkspaceEditElement(); + #element = new UmbMemberGroupWorkspaceEditorElement(); @state() _routes: UmbRoute[] = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.stories.ts index d9f149e6d2..64cbe84fdb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.stories.ts @@ -1,11 +1,11 @@ -import './member-group-workspace.element'; +import './member-group-workspace.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; -import { data } from '../../../../shared/mocks/data/member-group.data'; +import { data } from '../../../../mocks/data/member-group.data.js'; -import type { UmbMemberGroupWorkspaceElement } from './member-group-workspace.element'; +import type { UmbMemberGroupWorkspaceElement } from './member-group-workspace.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; export default { title: 'Workspaces/Member Group', diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/views/info/workspace-view-member-group-info.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/views/info/workspace-view-member-group-info.element.ts index 7ef7baa0c9..0062cef4e0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/views/info/workspace-view-member-group-info.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/views/info/workspace-view-member-group-info.element.ts @@ -1,11 +1,9 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbWorkspaceMemberGroupContext } from '../../member-group-workspace.context'; -import type { MemberGroupDetails } from '../../../types'; +import { UmbWorkspaceMemberGroupContext } from '../../member-group-workspace.context.js'; +import type { MemberGroupDetails } from '../../../types.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; - +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; @customElement('umb-workspace-view-member-group-info') export class UmbWorkspaceViewMemberGroupInfoElement extends UmbLitElement { @state() diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/views/info/workspace-view-member-group-info.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/views/info/workspace-view-member-group-info.stories.ts index 97b745c4ad..f4acb793d2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/views/info/workspace-view-member-group-info.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/views/info/workspace-view-member-group-info.stories.ts @@ -1,12 +1,12 @@ -import './workspace-view-member-group-info.element'; +import './workspace-view-member-group-info.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbWorkspaceViewMemberGroupInfoElement } from './workspace-view-member-group-info.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -//import { data } from '../../../../../core/mocks/data/data-type.data'; -//import { UmbDataTypeContext } from '../../data-type.context'; +//import { data } from '../../../../../core/mocks/data/data-type.data.js'; +//import { UmbDataTypeContext } from '../../data-type.context.js'; -import type { UmbWorkspaceViewMemberGroupInfoElement } from './workspace-view-member-group-info.element'; export default { title: 'Workspaces/Data Type/Views/Info', diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/entity-actions/manifests.ts index 78fb2627b6..d3cd73f09e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/entity-actions/manifests.ts @@ -1,4 +1,4 @@ -import { MEMBER_TYPES_REPOSITORY_ALIAS } from '../repository/manifests'; +import { MEMBER_TYPES_REPOSITORY_ALIAS } from '../repository/manifests.js'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/manifests.ts index 430748aa0f..c2dbcfe939 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/manifests.ts @@ -1,8 +1,8 @@ -import { manifests as menuItemManifests } from './menu-item/manifests'; -import { manifests as treeManifests } from './tree/manifests'; -import { manifests as repositoryManifests } from './repository/manifests'; -import { manifests as workspaceManifests } from './workspace/manifests'; -import { manifests as entityActionManifests } from './entity-actions/manifests'; +import { manifests as menuItemManifests } from './menu-item/manifests.js'; +import { manifests as treeManifests } from './tree/manifests.js'; +import { manifests as repositoryManifests } from './repository/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; +import { manifests as entityActionManifests } from './entity-actions/manifests.js'; export const manifests = [ ...menuItemManifests, diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/manifests.ts index 19ad46d7fa..54633c101c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/manifests.ts @@ -1,6 +1,6 @@ -import { UmbMemberTypeRepository } from './member-type.repository'; -import { UmbMemberTypeStore } from './member-type.store'; -import { UmbMemberTypeTreeStore } from './member-type.tree.store'; +import { UmbMemberTypeRepository } from './member-type.repository.js'; +import { UmbMemberTypeStore } from './member-type.store.js'; +import { UmbMemberTypeTreeStore } from './member-type.tree.store.js'; import type { ManifestRepository, ManifestStore, ManifestTreeStore } from '@umbraco-cms/backoffice/extension-registry'; export const MEMBER_TYPES_REPOSITORY_ALIAS = 'Umb.Repository.MemberType'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.repository.ts index b925ac39a2..e61bb7e047 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.repository.ts @@ -1,8 +1,8 @@ -import type { MemberTypeDetails } from '../types'; -import { UmbMemberTypeTreeServerDataSource } from './sources/member-type.tree.server.data'; -import { UmbMemberTypeTreeStore, UMB_MEMBER_TYPE_TREE_STORE_CONTEXT_TOKEN } from './member-type.tree.store'; -import { UmbMemberTypeStore, UMB_MEMBER_TYPE_STORE_CONTEXT_TOKEN } from './member-type.store'; -import { UmbMemberTypeDetailServerDataSource } from './sources/member-type.detail.server.data'; +import type { MemberTypeDetails } from '../types.js'; +import { UmbMemberTypeTreeServerDataSource } from './sources/member-type.tree.server.data.js'; +import { UmbMemberTypeTreeStore, UMB_MEMBER_TYPE_TREE_STORE_CONTEXT_TOKEN } from './member-type.tree.store.js'; +import { UmbMemberTypeStore, UMB_MEMBER_TYPE_STORE_CONTEXT_TOKEN } from './member-type.store.js'; +import { UmbMemberTypeDetailServerDataSource } from './sources/member-type.detail.server.data.js'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbTreeDataSource, UmbDetailRepository, UmbTreeRepository } from '@umbraco-cms/backoffice/repository'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.store.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.store.ts index 415061bde2..ff8480118a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.store.ts @@ -1,4 +1,4 @@ -import type { MemberTypeDetails } from '../types'; +import type { MemberTypeDetails } from '../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/sources/member-type.detail.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/sources/member-type.detail.server.data.ts index 11e6649f20..5dba5bb09e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/sources/member-type.detail.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/sources/member-type.detail.server.data.ts @@ -1,4 +1,4 @@ -import type { MemberTypeDetails } from '../../types'; +import type { MemberTypeDetails } from '../../types.js'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; import { UmbDataSource } from '@umbraco-cms/backoffice/repository'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/manifests.ts index f8d4b4462b..d0ad657a02 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/manifests.ts @@ -1,4 +1,4 @@ -import { MEMBER_TYPES_REPOSITORY_ALIAS } from '../repository/manifests'; +import { MEMBER_TYPES_REPOSITORY_ALIAS } from '../repository/manifests.js'; import type { ManifestTree, ManifestTreeItem } from '@umbraco-cms/backoffice/extension-registry'; const treeAlias = 'Umb.Tree.MemberTypes'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/manifests.ts index 2b607d3932..b10ff49eea 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/manifests.ts @@ -8,7 +8,7 @@ const workspace: ManifestWorkspace = { type: 'workspace', alias: 'Umb.Workspace.MemberType', name: 'Member Type Workspace', - loader: () => import('./member-type-workspace.element'), + loader: () => import('./member-type-workspace.element.js'), meta: { entityType: 'member-type', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace-editor.element.ts similarity index 56% rename from src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace-edit.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace-editor.element.ts index 9b08c591b2..7bb8439240 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace-editor.element.ts @@ -1,10 +1,9 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -@customElement('umb-member-type-workspace-edit') -export class UmbMemberTypeWorkspaceEditElement extends UmbLitElement { +@customElement('umb-member-type-workspace-editor') +export class UmbMemberTypeWorkspaceEditorElement extends UmbLitElement { render() { return html` <umb-workspace-editor alias="Umb.Workspace.MemberType"> Member Type Workspace </umb-workspace-editor> @@ -29,10 +28,10 @@ export class UmbMemberTypeWorkspaceEditElement extends UmbLitElement { ]; } -export default UmbMemberTypeWorkspaceEditElement; +export default UmbMemberTypeWorkspaceEditorElement; declare global { interface HTMLElementTagNameMap { - 'umb-member-type-workspace-edit': UmbMemberTypeWorkspaceEditElement; + 'umb-member-type-workspace-editor': UmbMemberTypeWorkspaceEditorElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.context.ts index 44d7e81570..6b9eb90b08 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.context.ts @@ -1,4 +1,4 @@ -import { UmbMemberTypeRepository } from '../repository/member-type.repository'; +import { UmbMemberTypeRepository } from '../repository/member-type.repository.js'; import { UmbEntityWorkspaceContextInterface, UmbWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.element.ts index b860c5ad53..6ab543023f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.element.ts @@ -1,15 +1,14 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbMemberTypeWorkspaceEditElement } from './member-type-workspace-edit.element'; -import { UmbMemberTypeWorkspaceContext } from './member-type-workspace.context'; +import { UmbMemberTypeWorkspaceEditorElement } from './member-type-workspace-editor.element.js'; +import { UmbMemberTypeWorkspaceContext } from './member-type-workspace.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-member-type-workspace') export class UmbMemberTypeWorkspaceElement extends UmbLitElement { #workspaceContext = new UmbMemberTypeWorkspaceContext(this); - #element = new UmbMemberTypeWorkspaceEditElement(); + #element = new UmbMemberTypeWorkspaceEditorElement(); @state() _routes: UmbRoute[] = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/entity-actions/manifests.ts index e5cb011d63..5e7a2e70fa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/entity-actions/manifests.ts @@ -1,4 +1,4 @@ -import { MEMBER_REPOSITORY_ALIAS } from '../repository/manifests'; +import { MEMBER_REPOSITORY_ALIAS } from '../repository/manifests.js'; import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/manifests.ts index bc9e01ae46..d4ef687a8c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/manifests.ts @@ -1,8 +1,8 @@ -import { manifests as repositoryManifests } from './repository/manifests'; -import { manifests as entityActionManifests } from './entity-actions/manifests'; -import { manifests as menuItemManifests } from './menu-item/manifests'; -import { manifests as treeManifests } from './tree/manifests'; -import { manifests as workspaceManifests } from './workspace/manifests'; +import { manifests as repositoryManifests } from './repository/manifests.js'; +import { manifests as entityActionManifests } from './entity-actions/manifests.js'; +import { manifests as menuItemManifests } from './menu-item/manifests.js'; +import { manifests as treeManifests } from './tree/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; export const manifests = [ ...repositoryManifests, diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/member.detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/member.detail.store.ts index 48a82d2276..09a6a53b2c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/member.detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/member.detail.store.ts @@ -1,6 +1,6 @@ -import { Observable } from 'rxjs'; -import { umbMemberData } from '../../../shared/mocks/data/member.data'; -import type { MemberDetails } from './types'; +import { umbMemberData } from '../../../mocks/data/member.data.js'; +import type { MemberDetails } from './types.js'; +import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbArrayState, createObservablePart } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/manifests.ts index 17ccb751b8..58d66d72bf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/manifests.ts @@ -1,6 +1,6 @@ -import { UmbMemberRepository } from './member.repository'; -import { UmbMemberStore } from './member.store'; -import { UmbMemberTreeStore } from './member.tree.store'; +import { UmbMemberRepository } from './member.repository.js'; +import { UmbMemberStore } from './member.store.js'; +import { UmbMemberTreeStore } from './member.tree.store.js'; import type { ManifestStore, ManifestTreeStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const MEMBER_REPOSITORY_ALIAS = 'Umb.Repository.Member'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/member.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/member.repository.ts index c8ceaf1831..126986e698 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/member.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/member.repository.ts @@ -1,5 +1,5 @@ -import { UmbMemberTreeStore, UMB_MEMBER_TREE_STORE_CONTEXT_TOKEN } from './member.tree.store'; -import { UmbMemberTreeServerDataSource } from './sources/member.tree.server.data'; +import { UmbMemberTreeStore, UMB_MEMBER_TREE_STORE_CONTEXT_TOKEN } from './member.tree.store.js'; +import { UmbMemberTreeServerDataSource } from './sources/member.tree.server.data.js'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/member.store.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/member.store.ts index fbff828e9b..011b0529fc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/member.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/member.store.ts @@ -1,4 +1,4 @@ -import type { MemberDetails } from '../types'; +import type { MemberDetails } from '../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/sources/member.tree.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/sources/member.tree.server.data.ts index 029974bb06..8348c70143 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/sources/member.tree.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/sources/member.tree.server.data.ts @@ -1,4 +1,4 @@ -import { MemberTreeDataSource } from '.'; +import { MemberTreeDataSource } from './index.js'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/manifests.ts index e7b25e227d..9b365953b8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/manifests.ts @@ -1,4 +1,4 @@ -import { MEMBER_REPOSITORY_ALIAS } from '../repository/manifests'; +import { MEMBER_REPOSITORY_ALIAS } from '../repository/manifests.js'; import type { ManifestTree, ManifestTreeItem } from '@umbraco-cms/backoffice/extension-registry'; const tree: ManifestTree = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/manifests.ts index aedc6bffbe..b547fe9a67 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/manifests.ts @@ -8,7 +8,7 @@ const workspace: ManifestWorkspace = { type: 'workspace', alias: 'Umb.Workspace.Member', name: 'Member Workspace', - loader: () => import('./member-workspace.element'), + loader: () => import('./member-workspace.element.js'), meta: { entityType: 'member', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace-edit.element.ts deleted file mode 100644 index 99e31b5151..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace-edit.element.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, LitElement } from 'lit'; -import { customElement } from 'lit/decorators.js'; - -@customElement('umb-member-workspace-edit') -export class UmbMemberWorkspaceEditElement extends LitElement { - - - render() { - return html` <umb-workspace-editor alias="Umb.Workspace.Member">Member Workspace</umb-workspace-editor> `; - } - - static styles = [ - UUITextStyles, - css` - :host { - display: block; - width: 100%; - height: 100%; - } - `, - ]; -} - -export default UmbMemberWorkspaceEditElement; - -declare global { - interface HTMLElementTagNameMap { - 'umb-member-workspace-edit': UmbMemberWorkspaceEditElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace-editor.element.ts new file mode 100644 index 0000000000..bb3a9801c1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace-editor.element.ts @@ -0,0 +1,28 @@ +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, LitElement, customElement } from '@umbraco-cms/backoffice/external/lit'; + +@customElement('umb-member-workspace-editor') +export class UmbMemberWorkspaceEditorElement extends LitElement { + render() { + return html` <umb-workspace-editor alias="Umb.Workspace.Member">Member Workspace</umb-workspace-editor> `; + } + + static styles = [ + UUITextStyles, + css` + :host { + display: block; + width: 100%; + height: 100%; + } + `, + ]; +} + +export default UmbMemberWorkspaceEditorElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-member-workspace-editor': UmbMemberWorkspaceEditorElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.context.ts index 405302cd20..31e28acfd4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.context.ts @@ -1,5 +1,5 @@ -import { UmbMemberRepository } from '../repository/member.repository'; -import type { MemberDetails } from '../types'; +import { UmbMemberRepository } from '../repository/member.repository.js'; +import type { MemberDetails } from '../types.js'; import { UmbEntityWorkspaceContextInterface, UmbWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.element.ts index 5e4bec6ebe..2252bcdece 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.element.ts @@ -1,15 +1,14 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbMemberWorkspaceEditElement } from './member-workspace-edit.element'; -import { UmbMemberWorkspaceContext } from './member-workspace.context'; +import { UmbMemberWorkspaceEditorElement } from './member-workspace-editor.element.js'; +import { UmbMemberWorkspaceContext } from './member-workspace.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-member-workspace') export class UmbMemberWorkspaceElement extends UmbLitElement { #workspaceContext = new UmbMemberWorkspaceContext(this); - #element = new UmbMemberWorkspaceEditElement(); + #element = new UmbMemberWorkspaceEditorElement(); @state() _routes: UmbRoute[] = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.stories.ts index 969b0317a6..1c247360a1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.stories.ts @@ -1,11 +1,11 @@ -import './member-workspace.element'; +import './member-workspace.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; -import { data } from '../../../../shared/mocks/data/member.data'; +import { data } from '../../../../mocks/data/member.data.js'; -import type { UmbMemberWorkspaceElement } from './member-workspace.element'; +import type { UmbMemberWorkspaceElement } from './member-workspace.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; export default { title: 'Workspaces/Member', diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/section.manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/section.manifests.ts index 471fa9763f..590e6deb71 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/section.manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/section.manifests.ts @@ -6,7 +6,7 @@ const section: ManifestSection = { type: 'section', alias: sectionAlias, name: 'Members Section', - weight: 400, + weight: 300, meta: { label: 'Members', pathname: 'members', @@ -19,7 +19,7 @@ const dashboards: Array<ManifestDashboard> = [ alias: 'Umb.Dashboard.Members', name: 'Members Dashboard', weight: 10, - loader: () => import('./dashboards/welcome/dashboard-members-welcome.element'), + loader: () => import('./dashboards/welcome/dashboard-members-welcome.element.js'), meta: { label: 'Members', pathname: 'members', diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/umbraco-package.ts b/src/Umbraco.Web.UI.Client/src/packages/members/umbraco-package.ts index 5916f5d7ae..c4ce05c45a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/umbraco-package.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/umbraco-package.ts @@ -4,6 +4,6 @@ export const extensions = [ name: 'Member Management Entry Point', alias: 'Umb.EntryPoint.MemberManagement', type: 'entryPoint', - loader: () => import('./index'), + loader: () => import('./index.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/index.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/index.ts index f107b98a3a..34d49d9576 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/index.ts @@ -1,7 +1,7 @@ -import { manifests as repositoryManifests } from './repository/manifests'; -import { manifests as packageBuilderManifests } from './package-builder/manifests'; -import { manifests as packageRepoManifests } from './package-repo/manifests'; -import { manifests as packageSectionManifests } from './package-section/manifests'; +import { manifests as repositoryManifests } from './repository/manifests.js'; +import { manifests as packageBuilderManifests } from './package-builder/manifests.js'; +import { manifests as packageRepoManifests } from './package-repo/manifests.js'; +import { manifests as packageSectionManifests } from './package-section/manifests.js'; import type { UmbEntryPointOnInit } from '@umbraco-cms/backoffice/extension-api'; export const manifests = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/manifests.ts index a90097125e..960013f966 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/manifests.ts @@ -9,7 +9,7 @@ const workspace: ManifestWorkspace = { type: 'workspace', alias: 'Umb.Workspace.PackageBuilder', name: 'Package Builder Workspace', - loader: () => import('./workspace/workspace-package-builder.element'), + loader: () => import('./workspace/workspace-package-builder.element.js'), meta: { entityType: 'package-builder', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts index 94afd03b7a..8afcd54e0b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts @@ -1,12 +1,9 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { UUIBooleanInputEvent, UUIInputElement, UUIInputEvent } from '@umbraco-ui/uui'; -import { css, html, nothing } from 'lit'; -import { customElement, property, query, state } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; +import type { UmbInputDocumentPickerElement } from '../../../documents/documents/components/input-document-picker/input-document-picker.element.js'; +import type { UmbInputMediaPickerElement } from '../../../media/media/components/input-media-picker/input-media-picker.element.js'; +import type { UmbInputLanguagePickerElement } from '../../../settings/languages/components/input-language-picker/input-language-picker.element.js'; +import { UUITextStyles , UUIBooleanInputEvent, UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing , customElement, property, query, state , ifDefined } from '@umbraco-cms/backoffice/external/lit'; // TODO: update to module imports when ready -import type { UmbInputDocumentPickerElement } from '../../../documents/documents/components/input-document-picker/input-document-picker.element'; -import type { UmbInputMediaPickerElement } from '../../../media/media/components/input-media-picker/input-media-picker.element'; -import type { UmbInputLanguagePickerElement } from '../../../settings/languages/components/input-language-picker/input-language-picker.element'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { PackageDefinitionResponseModel, PackageResource } from '@umbraco-cms/backoffice/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-repo/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-repo/manifests.ts index 80b8bffd31..7ceb2f10d3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-repo/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-repo/manifests.ts @@ -9,7 +9,7 @@ const workspace: ManifestWorkspace = { type: 'workspace', alias: 'Umb.Workspace.Package', name: 'Package Workspace', - loader: () => import('./workspace/workspace-package.element'), + loader: () => import('./workspace/workspace-package.element.js'), meta: { entityType: 'package', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-repo/workspace/workspace-package.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-repo/workspace/workspace-package.element.ts index f33d0da6f6..93f999eb59 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-repo/workspace/workspace-package.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-repo/workspace/workspace-package.element.ts @@ -1,11 +1,8 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, LitElement } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, LitElement , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; @customElement('umb-workspace-package') export class UmbWorkspacePackageElement extends LitElement { - - @property() entityId?: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/manifests.ts index 9de571a6bb..d79bed63fe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/manifests.ts @@ -18,7 +18,7 @@ const sectionsViews: Array<ManifestSectionView> = [ type: 'sectionView', alias: 'Umb.SectionView.Packages.Repo', name: 'Packages Repo Section View', - loader: () => import('./views/market-place/packages-market-place-section-view.element'), + loader: () => import('./views/market-place/packages-market-place-section-view.element.js'), weight: 300, meta: { label: 'Packages', @@ -33,7 +33,7 @@ const sectionsViews: Array<ManifestSectionView> = [ type: 'sectionView', alias: 'Umb.SectionView.Packages.Installed', name: 'Installed Packages Section View', - loader: () => import('./views/installed/installed-packages-section-view.element'), + loader: () => import('./views/installed/installed-packages-section-view.element.js'), weight: 200, meta: { label: 'Installed', @@ -48,7 +48,7 @@ const sectionsViews: Array<ManifestSectionView> = [ type: 'sectionView', alias: 'Umb.SectionView.Packages.Builder', name: 'Packages Builder Section View', - loader: () => import('./views/created/created-packages-section-view.element'), + loader: () => import('./views/created/created-packages-section-view.element.js'), weight: 100, meta: { label: 'Created', diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/created-packages-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/created-packages-section-view.element.ts index 87c83c7f25..7ae885055b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/created-packages-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/created-packages-section-view.element.ts @@ -1,5 +1,4 @@ -import { html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; +import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { ManifestTree, @@ -31,7 +30,7 @@ export class UmbCreatedPackagesSectionViewElement extends UmbLitElement implemen const routes: UmbRoute[] = [ { path: 'overview', - component: () => import('./packages-created-overview.element'), + component: () => import('./packages-created-overview.element.js'), }, ]; @@ -53,7 +52,7 @@ export class UmbCreatedPackagesSectionViewElement extends UmbLitElement implemen }); routes.push({ - path: '**', + path: '', redirectTo: 'overview', }); this._routes = routes; diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/packages-created-overview.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/packages-created-overview.element.ts index f7493f1f9e..66e6c6e32a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/packages-created-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/packages-created-overview.element.ts @@ -1,8 +1,5 @@ -import { html, css, nothing } from 'lit'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { customElement, state } from 'lit/decorators.js'; -import { repeat } from 'lit/directives/repeat.js'; -import { UUIPaginationEvent } from '@umbraco-ui/uui'; +import { html, css, nothing, ifDefined, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { UUIPaginationEvent } from '@umbraco-cms/backoffice/external/uui'; import { PackageDefinitionResponseModel, PackageResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; @@ -127,7 +124,7 @@ export class UmbPackagesCreatedOverviewElement extends UmbLitElement { css` :host { display: block; - margin: var(--uui-size-layout-1); + padding: var(--uui-size-layout-1); } uui-box { margin: var(--uui-size-space-5) 0; diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view-item.element.ts index 93ec279469..d3af6e67c8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view-item.element.ts @@ -1,8 +1,6 @@ -import { html, css, nothing } from 'lit'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UUIButtonState } from '@umbraco-ui/uui'; -import { map } from 'rxjs'; +import { html, css, nothing , ifDefined , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; +import { map } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; import { createExtensionElement } from '@umbraco-cms/backoffice/extension-api'; import { ManifestPackageView, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view.element.ts index 9eeeb2054e..f069ad1966 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view.element.ts @@ -1,15 +1,13 @@ -import { html, css } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { repeat } from 'lit/directives/repeat.js'; -import { combineLatest } from 'rxjs'; -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { UmbPackageRepository } from '../../../repository/package.repository'; -import type { UmbPackageWithMigrationStatus } from '../../../types'; +import { UmbPackageRepository } from '../../../repository/package.repository.js'; +import type { UmbPackageWithMigrationStatus } from '../../../types.js'; +import { html, css, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { combineLatest } from '@umbraco-cms/backoffice/external/rxjs'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; - -import './installed-packages-section-view-item.element'; import { UmbSectionViewExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; +import './installed-packages-section-view-item.element.js'; + @customElement('umb-installed-packages-section-view') export class UmbInstalledPackagesSectionViewElement extends UmbLitElement implements UmbSectionViewExtensionElement { @state() @@ -114,7 +112,7 @@ export class UmbInstalledPackagesSectionViewElement extends UmbLitElement implem css` :host { display: block; - margin: var(--uui-size-layout-1); + padding: var(--uui-size-layout-1); } uui-box { margin-top: var(--uui-size-space-5); diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/market-place/packages-market-place-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/market-place/packages-market-place-section-view.element.ts index e835dc226d..74aa6b9604 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/market-place/packages-market-place-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/market-place/packages-market-place-section-view.element.ts @@ -1,5 +1,4 @@ -import { css, html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; +import { css, html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbSectionViewExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/repository/manifests.ts index 4e1ee39e4f..41e9e56ea4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/repository/manifests.ts @@ -1,5 +1,5 @@ -import { UmbPackageRepository } from './package.repository'; -import { UmbPackageStore } from './package.store'; +import { UmbPackageRepository } from './package.repository.js'; +import { UmbPackageStore } from './package.store.js'; import type { ManifestStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const PACKAGE_REPOSITORY_ALIAS = 'Umb.Repository.Package'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/repository/package.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/repository/package.repository.ts index be1081dc4b..8ff90cfc34 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/repository/package.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/repository/package.repository.ts @@ -1,5 +1,5 @@ -import { UmbPackageStore, UMB_PACKAGE_STORE_TOKEN } from './package.store'; -import { UmbPackageServerDataSource } from './sources/package.server.data'; +import { UmbPackageStore, UMB_PACKAGE_STORE_TOKEN } from './package.store.js'; +import { UmbPackageServerDataSource } from './sources/package.server.data.js'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { isManifestJSType, ManifestBase } from '@umbraco-cms/backoffice/extension-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/repository/package.store.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/repository/package.store.ts index 7268f60355..f3292bf5ee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/repository/package.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/repository/package.store.ts @@ -1,5 +1,5 @@ -import { ReplaySubject } from 'rxjs'; -import type { UmbPackage } from '../types'; +import type { UmbPackage } from '../types.js'; +import { ReplaySubject } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/repository/server-extension.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/repository/server-extension.controller.ts index 09f634d644..2a2d96da1e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/repository/server-extension.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/repository/server-extension.controller.ts @@ -1,5 +1,5 @@ -import { Subject, takeUntil } from 'rxjs'; -import { UmbPackageRepository } from './package.repository'; +import { UmbPackageRepository } from './package.repository.js'; +import { Subject, takeUntil } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbController, UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBackofficeExtensionRegistry } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/umbraco-package.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/umbraco-package.ts index 83ad4adb79..c7d6b9a313 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/umbraco-package.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/umbraco-package.ts @@ -4,6 +4,6 @@ export const extensions = [ name: 'Package Management Entry Point', alias: 'Umb.EntryPoint.PackageManagement', type: 'entryPoint', - loader: () => import('./index'), + loader: () => import('./index.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.element.ts b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.element.ts index f36768b6d0..0e8c3f1179 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.element.ts @@ -1,10 +1,7 @@ -import { html, css, nothing } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; - -import { UmbDashboardExamineIndexElement } from './views/section-view-examine-indexers'; -import { UmbDashboardExamineSearcherElement } from './views/section-view-examine-searchers'; -import type { UmbRoute } from '@umbraco-cms/backoffice/router'; -import type { UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/internal/router'; +import { UmbDashboardExamineIndexElement } from './views/section-view-examine-indexers.js'; +import { UmbDashboardExamineSearcherElement } from './views/section-view-examine-searchers.js'; +import { html, css, nothing , customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import type { UmbRoute, UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -14,7 +11,7 @@ export class UmbDashboardExamineManagementElement extends UmbLitElement { private _routes: UmbRoute[] = [ { path: `/index/:indexerName`, - component: () => import('./views/section-view-examine-indexers'), + component: () => import('./views/section-view-examine-indexers.js'), setup: (component, info) => { const element = component as UmbDashboardExamineIndexElement; element.indexName = info.match.params.indexerName; @@ -22,7 +19,7 @@ export class UmbDashboardExamineManagementElement extends UmbLitElement { }, { path: `/searcher/:searcherName`, - component: () => import('./views/section-view-examine-searchers'), + component: () => import('./views/section-view-examine-searchers.js'), setup: (component, info) => { const element = component as UmbDashboardExamineSearcherElement; element.searcherName = info.match.params.searcherName; @@ -30,7 +27,7 @@ export class UmbDashboardExamineManagementElement extends UmbLitElement { }, { path: ``, - component: () => import('./views/section-view-examine-overview'), + component: () => import('./views/section-view-examine-overview.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.stories.ts index 1631ca4528..ea47837579 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.stories.ts @@ -1,17 +1,17 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbDashboardExamineManagementElement } from './dashboard-examine-management.element'; -import './dashboard-examine-management.element'; +import type { UmbDashboardExamineManagementElement } from './dashboard-examine-management.element.js'; +import './dashboard-examine-management.element.js'; -import type { UmbDashboardExamineOverviewElement } from './views/section-view-examine-overview'; -import './views/section-view-examine-overview'; +import type { UmbDashboardExamineOverviewElement } from './views/section-view-examine-overview.js'; +import './views/section-view-examine-overview.js'; -import type { UmbDashboardExamineIndexElement } from './views/section-view-examine-indexers'; -import './views/section-view-examine-indexers'; +import type { UmbDashboardExamineIndexElement } from './views/section-view-examine-indexers.js'; +import './views/section-view-examine-indexers.js'; -import type { UmbDashboardExamineSearcherElement } from './views/section-view-examine-searchers'; -import './views/section-view-examine-searchers'; +import type { UmbDashboardExamineSearcherElement } from './views/section-view-examine-searchers.js'; +import './views/section-view-examine-searchers.js'; export default { title: 'Dashboards/Examine Management', diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/modal-views/fields-settings.element.ts b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/modal-views/fields-settings.element.ts index 79b59c93ab..f6f75bf486 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/modal-views/fields-settings.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/modal-views/fields-settings.element.ts @@ -1,6 +1,5 @@ -import { html, css } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, state } from 'lit/decorators.js'; +import { html, css , customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbCreateDocumentModalResultData, UmbExamineFieldsSettingsModalData } from '@umbraco-cms/backoffice/modal'; import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/modal-views/fields-viewer.element.ts b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/modal-views/fields-viewer.element.ts index 35c504e40f..456ccf5578 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/modal-views/fields-viewer.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/modal-views/fields-viewer.element.ts @@ -1,6 +1,5 @@ -import { html, css, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement } from 'lit/decorators.js'; +import { html, css, nothing , customElement } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; import type { SearchResultResponseModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-indexers.ts b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-indexers.ts index a91be5fa6d..bb89ff057f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-indexers.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-indexers.ts @@ -1,13 +1,11 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, nothing } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UUIButtonState } from '@umbraco-ui/uui-button'; +import { UUITextStyles, UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; import { HealthStatusModel, IndexResponseModel, IndexerResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import './section-view-examine-searchers'; +import './section-view-examine-searchers.js'; @customElement('umb-dashboard-examine-index') export class UmbDashboardExamineIndexElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-overview.ts b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-overview.ts index 2c99df6690..8e29b74d94 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-overview.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-overview.ts @@ -1,6 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, nothing } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { HealthStatusModel, @@ -119,7 +118,7 @@ export class UmbDashboardExamineOverviewElement extends UmbLitElement { css` :host { display: block; - margin: var(--uui-size-layout-1); + padding: var(--uui-size-layout-1); } uui-box + uui-box { diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-searchers.ts b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-searchers.ts index 5910ab2bcd..20c202422d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-searchers.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-searchers.ts @@ -1,6 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, nothing } from 'lit'; -import { customElement, state, query, property } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing , customElement, state, query, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, @@ -14,8 +13,8 @@ import { import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import './modal-views/fields-viewer.element'; -import './modal-views/fields-settings.element'; +import './modal-views/fields-viewer.element.js'; +import './modal-views/fields-settings.element.js'; interface ExposedSearchResultField { name?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/index.ts b/src/Umbraco.Web.UI.Client/src/packages/search/index.ts index fcdb184706..bc3f48d352 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/index.ts @@ -1,4 +1,4 @@ -import { manifests as searchManifests } from '../search/manifests'; +import { manifests as searchManifests } from '../search/manifests.js'; import type { UmbEntryPointOnInit } from '@umbraco-cms/backoffice/extension-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/search/manifests.ts index e5593e5ee2..eb5d196e7d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/manifests.ts @@ -5,7 +5,7 @@ export const manifests: Array<ManifestTypes> = [ type: 'headerApp', alias: 'Umb.HeaderApp.Search', name: 'Header App Search', - loader: () => import('./umb-search-header-app.element'), + loader: () => import('./umb-search-header-app.element.js'), weight: 900, meta: { label: 'Search', @@ -17,14 +17,14 @@ export const manifests: Array<ManifestTypes> = [ type: 'modal', alias: 'Umb.Modal.Search', name: 'Search Modal', - loader: () => import('./search-modal/search-modal.element'), + loader: () => import('./search-modal/search-modal.element.js'), }, { type: 'dashboard', alias: 'Umb.Dashboard.ExamineManagement', name: 'Examine Management Dashboard', elementName: 'umb-dashboard-examine-management', - loader: () => import('./examine-management-dashboard/dashboard-examine-management.element'), + loader: () => import('./examine-management-dashboard/dashboard-examine-management.element.js'), weight: 400, meta: { label: 'Examine Management', @@ -50,6 +50,6 @@ export const manifests: Array<ManifestTypes> = [ type: 'modal', alias: 'Umb.Modal.ExamineFieldsSettings', name: 'Examine Field Settings Modal', - loader: () => import('./examine-management-dashboard/views/modal-views/fields-settings.element'), + loader: () => import('./examine-management-dashboard/views/modal-views/fields-settings.element.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/search-modal/search-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/search/search-modal/search-modal.element.ts index 32b38f67ca..5f9595c96f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/search-modal/search-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/search-modal/search-modal.element.ts @@ -1,7 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html, LitElement, nothing } from 'lit'; -import { repeat } from 'lit/directives/repeat.js'; -import { customElement, query, state } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, LitElement, nothing , repeat , customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; export type SearchItem = { name: string; @@ -16,8 +14,6 @@ export type SearchGroupItem = { }; @customElement('umb-search-modal') export class UmbSearchModalElement extends LitElement { - - @query('input') private _input!: HTMLInputElement; @@ -178,7 +174,7 @@ export class UmbSearchModalElement extends LitElement { parent: 'Document Types', }, ]; - + static styles = [ UUITextStyles, css` diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/umb-search-header-app.element.ts b/src/Umbraco.Web.UI.Client/src/packages/search/umb-search-header-app.element.ts index ad6d024c3a..029422fc60 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/umb-search-header-app.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/umb-search-header-app.element.ts @@ -1,6 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, CSSResultGroup, html } from 'lit'; -import { customElement } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, CSSResultGroup, html , customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -17,7 +16,7 @@ export class UmbSearchHeaderAppElement extends UmbLitElement { } #onSearchClick() { - this._modalContext?.search(); + alert('implement search search modal'); } render() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/umbraco-package.ts b/src/Umbraco.Web.UI.Client/src/packages/search/umbraco-package.ts index 6834301777..cc195e5790 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/umbraco-package.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/umbraco-package.ts @@ -4,6 +4,6 @@ export const extensions = [ name: 'Search Entry Point', alias: 'Umb.EntryPoint.Search', type: 'entryPoint', - loader: () => import('./index'), + loader: () => import('./index.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/components/index.ts index 235415ae22..89534cfe03 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/components/index.ts @@ -1 +1 @@ -import './input-culture-select/input-culture-select.element'; +import './input-culture-select/input-culture-select.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/components/input-culture-select/input-culture-select.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/components/input-culture-select/input-culture-select.element.ts index e0ec732806..5193ae2857 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/components/input-culture-select/input-culture-select.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/components/input-culture-select/input-culture-select.element.ts @@ -1,11 +1,11 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { repeat } from 'lit/directives/repeat.js'; -import { UUIComboboxElement, UUIComboboxEvent } from '@umbraco-ui/uui'; -import { UmbCultureRepository } from '../../repository/culture.repository'; +import { UmbCultureRepository } from '../../repository/culture.repository.js'; +import { css, html, repeat, ifDefined, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { + UUITextStyles, + FormControlMixin, + UUIComboboxElement, + UUIComboboxEvent, +} from '@umbraco-cms/backoffice/external/uui'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/events'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { CultureReponseModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/components/input-culture-select/input-culture-select.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/components/input-culture-select/input-culture-select.stories.ts index 59084ad6fc..f85525cad6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/components/input-culture-select/input-culture-select.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/components/input-culture-select/input-culture-select.stories.ts @@ -1,56 +1,56 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import './input-culture-select.element'; -import type { UmbInputCultureSelectElement } from './input-culture-select.element'; +import './input-culture-select.element.js'; +import type { UmbInputCultureSelectElement } from './input-culture-select.element.js'; const meta: Meta<UmbInputCultureSelectElement> = { - title: 'Components/Inputs/Culture Select', - component: 'umb-input-culture-select' + title: 'Components/Inputs/Culture Select', + component: 'umb-input-culture-select', }; - + export default meta; type Story = StoryObj<UmbInputCultureSelectElement>; - + export const Overview: Story = { - args: { - readonly: false, - disabled: false - } + args: { + readonly: false, + disabled: false, + }, }; export const ReadOnly: Story = { - args: { - readonly: true, - disabled: false - } + args: { + readonly: true, + disabled: false, + }, }; export const Disabled: Story = { - args: { - readonly: false, - disabled: true - } + args: { + readonly: false, + disabled: true, + }, }; export const WithValue: Story = { - args: { - readonly: false, - disabled: false, - value: 'da-DK' - } + args: { + readonly: false, + disabled: false, + value: 'da-DK', + }, }; export const WithValueAndDisabled: Story = { - args: { - readonly: false, - disabled: true, - value: 'en-US' - } + args: { + readonly: false, + disabled: true, + value: 'en-US', + }, }; export const WithValueAndReadOnly: Story = { - args: { - readonly: true, - disabled: false, - value: 'en-GB' - } -}; \ No newline at end of file + args: { + readonly: true, + disabled: false, + value: 'en-GB', + }, +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/manifests.ts index 2bd802ce9c..4e1826b900 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/manifests.ts @@ -1,3 +1,3 @@ -import { manifests as repositoryManifests } from './repository/manifests'; +import { manifests as repositoryManifests } from './repository/manifests.js'; export const manifests = [...repositoryManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/repository/culture.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/repository/culture.repository.ts index c13d32c11e..bc1ad5f062 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/repository/culture.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/repository/culture.repository.ts @@ -1,4 +1,4 @@ -import { UmbCultureServerDataSource } from './sources/culture.server.data'; +import { UmbCultureServerDataSource } from './sources/culture.server.data.js'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/repository/manifests.ts index 957f6be6b7..3ef3e52787 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/repository/manifests.ts @@ -1,4 +1,4 @@ -import { UmbCultureRepository } from '../repository/culture.repository'; +import { UmbCultureRepository } from '../repository/culture.repository.js'; import { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const CULTURE_REPOSITORY_ALIAS = 'Umb.Repository.Culture'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/repository/sources/culture.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/repository/sources/culture.server.data.ts index bf160b0e9b..2d0e3c7bcc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/repository/sources/culture.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/cultures/repository/sources/culture.server.data.ts @@ -1,4 +1,4 @@ -import { UmbCultureDataSource } from '.'; +import { UmbCultureDataSource } from './index.js'; import { CultureResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/dashboard-health-check.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/dashboard-health-check.element.ts index 044b380976..b3b6d06761 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/dashboard-health-check.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/dashboard-health-check.element.ts @@ -1,16 +1,15 @@ -import { html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbDashboardHealthCheckGroupElement } from './views/health-check-group.element'; +import { UmbDashboardHealthCheckGroupElement } from './views/health-check-group.element.js'; import { UmbHealthCheckDashboardContext, UMB_HEALTHCHECK_DASHBOARD_CONTEXT_TOKEN, -} from './health-check-dashboard.context'; -import { UmbHealthCheckContext } from './health-check.context'; +} from './health-check-dashboard.context.js'; +import { UmbHealthCheckContext } from './health-check.context.js'; +import { html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { HealthCheckGroupResponseModel, HealthCheckResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { ManifestHealthCheck, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import { HealthCheckGroupResponseModel, HealthCheckResource } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-dashboard-health-check') export class UmbDashboardHealthCheckElement extends UmbLitElement { @@ -18,7 +17,7 @@ export class UmbDashboardHealthCheckElement extends UmbLitElement { private _routes: UmbRoute[] = [ { path: `/:groupName`, - component: () => import('./views/health-check-group.element'), + component: () => import('./views/health-check-group.element.js'), setup: (component, info) => { const element = component as UmbDashboardHealthCheckGroupElement; element.groupName = decodeURI(info.match.params.groupName); @@ -26,7 +25,7 @@ export class UmbDashboardHealthCheckElement extends UmbLitElement { }, { path: ``, - component: () => import('./views/health-check-overview.element'), + component: () => import('./views/health-check-overview.element.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/dashboard-health-check.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/dashboard-health-check.stories.ts index b45b7e3d99..39fc73ce8a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/dashboard-health-check.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/dashboard-health-check.stories.ts @@ -1,11 +1,11 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbDashboardHealthCheckOverviewElement } from './views/health-check-overview.element'; -import './views/health-check-overview.element'; +import type { UmbDashboardHealthCheckOverviewElement } from './views/health-check-overview.element.js'; +import './views/health-check-overview.element.js'; -import type { UmbDashboardHealthCheckGroupElement } from './views/health-check-group.element'; -import './views/health-check-group.element'; +import type { UmbDashboardHealthCheckGroupElement } from './views/health-check-group.element.js'; +import './views/health-check-group.element.js'; export default { title: 'Dashboards/Health Check', diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/health-check-dashboard.context.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/health-check-dashboard.context.ts index c9e8b0f39c..5f1e9c938a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/health-check-dashboard.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/health-check-dashboard.context.ts @@ -1,4 +1,4 @@ -import { UmbHealthCheckContext } from './health-check.context'; +import { UmbHealthCheckContext } from './health-check.context.js'; import type { ManifestHealthCheck } from '@umbraco-cms/backoffice/extension-registry'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/health-check.context.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/health-check.context.ts index 65b48913dd..ad1c9cff8b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/health-check.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/health-check.context.ts @@ -1,4 +1,4 @@ -import { BehaviorSubject } from 'rxjs'; +import { BehaviorSubject } from '@umbraco-cms/backoffice/external/rxjs'; import { HealthCheckGroupPresentationModel, HealthCheckGroupWithResultResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/views/health-check-action.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/views/health-check-action.element.ts index 77a78f4354..018782af53 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/views/health-check-action.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/views/health-check-action.element.ts @@ -1,8 +1,5 @@ -import { UUIButtonState } from '@umbraco-ui/uui'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, nothing } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; +import { UUIButtonState , UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing , customElement, property, state , ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { HealthCheckActionRequestModel, HealthCheckResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/views/health-check-group-box-overview.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/views/health-check-group-box-overview.element.ts index 39de5cf71b..53a2c5f14d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/views/health-check-group-box-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/views/health-check-group-box-overview.element.ts @@ -1,11 +1,10 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, nothing } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UmbHealthCheckContext } from '../health-check.context'; +import { UmbHealthCheckContext } from '../health-check.context.js'; import { UMB_HEALTHCHECK_DASHBOARD_CONTEXT_TOKEN, UmbHealthCheckDashboardContext, -} from '../health-check-dashboard.context'; +} from '../health-check-dashboard.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { ensureSlash, path } from '@umbraco-cms/backoffice/router'; import type { ManifestHealthCheck } from '@umbraco-cms/backoffice/extension-registry'; import { HealthCheckGroupWithResultResponseModel, StatusResultTypeModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/views/health-check-group.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/views/health-check-group.element.ts index ca528e77c1..c48cadd462 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/views/health-check-group.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/views/health-check-group.element.ts @@ -1,14 +1,11 @@ -import { UUIButtonState } from '@umbraco-ui/uui'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, nothing } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { unsafeHTML } from 'lit/directives/unsafe-html.js'; - -import { UmbHealthCheckContext } from '../health-check.context'; +import { UmbHealthCheckContext } from '../health-check.context.js'; import { UmbHealthCheckDashboardContext, UMB_HEALTHCHECK_DASHBOARD_CONTEXT_TOKEN, -} from '../health-check-dashboard.context'; +} from '../health-check-dashboard.context.js'; +import { UUIButtonState , UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing , customElement, property, state , unsafeHTML } from '@umbraco-cms/backoffice/external/lit'; + import { HealthCheckActionRequestModel, HealthCheckGroupPresentationModel, @@ -19,7 +16,7 @@ import { } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import './health-check-action.element'; +import './health-check-action.element.js'; @customElement('umb-dashboard-health-check-group') export class UmbDashboardHealthCheckGroupElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/views/health-check-overview.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/views/health-check-overview.element.ts index cd034505bf..8017581c9a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/views/health-check-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/health-check/views/health-check-overview.element.ts @@ -1,15 +1,13 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UUIButtonState } from '@umbraco-ui/uui'; - import { UmbHealthCheckDashboardContext, UMB_HEALTHCHECK_DASHBOARD_CONTEXT_TOKEN, -} from '../health-check-dashboard.context'; +} from '../health-check-dashboard.context.js'; +import { UUITextStyles, UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; + import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import './health-check-group-box-overview.element'; +import './health-check-group-box-overview.element.js'; @customElement('umb-dashboard-health-check-overview') export class UmbDashboardHealthCheckOverviewElement extends UmbLitElement { @@ -56,7 +54,7 @@ export class UmbDashboardHealthCheckOverviewElement extends UmbLitElement { css` :host { display: block; - margin: var(--uui-size-layout-1); + padding: var(--uui-size-layout-1); } uui-box + uui-box { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/manifests.ts index af87e16a66..bf2e1ebf30 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/manifests.ts @@ -6,7 +6,7 @@ const dashboards: Array<ManifestDashboard> = [ alias: 'Umb.Dashboard.SettingsWelcome', name: 'Welcome Settings Dashboard', elementName: 'umb-dashboard-settings-welcome', - loader: () => import('./settings-welcome/dashboard-settings-welcome.element'), + loader: () => import('./settings-welcome/dashboard-settings-welcome.element.js'), weight: 500, meta: { label: 'Welcome', @@ -21,7 +21,7 @@ const dashboards: Array<ManifestDashboard> = [ alias: 'Umb.Dashboard.ModelsBuilder', name: 'Models Builder Dashboard', elementName: 'umb-dashboard-models-builder', - loader: () => import('./models-builder/dashboard-models-builder.element'), + loader: () => import('./models-builder/dashboard-models-builder.element.js'), weight: 300, meta: { label: 'Models Builder', @@ -36,7 +36,7 @@ const dashboards: Array<ManifestDashboard> = [ alias: 'Umb.Dashboard.PublishedStatus', name: 'Published Status Dashboard', elementName: 'umb-dashboard-published-status', - loader: () => import('./published-status/dashboard-published-status.element'), + loader: () => import('./published-status/dashboard-published-status.element.js'), weight: 200, meta: { label: 'Published Status', @@ -51,7 +51,7 @@ const dashboards: Array<ManifestDashboard> = [ alias: 'Umb.Dashboard.HealthCheck', name: 'Health Check', elementName: 'umb-dashboard-health-check', - loader: () => import('./health-check/dashboard-health-check.element'), + loader: () => import('./health-check/dashboard-health-check.element.js'), weight: 102, meta: { label: 'Health Check', @@ -66,7 +66,7 @@ const dashboards: Array<ManifestDashboard> = [ alias: 'Umb.Dashboard.Profiling', name: 'Profiling', elementName: 'umb-dashboard-performance-profiling', - loader: () => import('./performance-profiling/dashboard-performance-profiling.element'), + loader: () => import('./performance-profiling/dashboard-performance-profiling.element.js'), weight: 101, meta: { label: 'Profiling', @@ -81,7 +81,7 @@ const dashboards: Array<ManifestDashboard> = [ alias: 'Umb.Dashboard.Telemetry', name: 'Telemetry', elementName: 'umb-dashboard-telemetry', - loader: () => import('./telemetry/dashboard-telemetry.element'), + loader: () => import('./telemetry/dashboard-telemetry.element.js'), weight: 100, meta: { label: 'Telemetry Data', diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/models-builder/dashboard-models-builder.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/models-builder/dashboard-models-builder.element.ts index 6361e4b2ec..5c1a79f561 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/models-builder/dashboard-models-builder.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/models-builder/dashboard-models-builder.element.ts @@ -1,7 +1,5 @@ -import { UUIButtonState } from '@umbraco-ui/uui'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, nothing } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; +import { UUIButtonState, UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { ModelsBuilderResponseModel, @@ -139,7 +137,7 @@ export class UmbDashboardModelsBuilderElement extends UmbLitElement { css` :host { display: block; - margin: var(--uui-size-layout-1); + padding: var(--uui-size-layout-1); } .headline { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/models-builder/dashboard-models-builder.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/models-builder/dashboard-models-builder.stories.ts index 98bc351222..3c75559663 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/models-builder/dashboard-models-builder.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/models-builder/dashboard-models-builder.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbDashboardModelsBuilderElement } from './dashboard-models-builder.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbDashboardModelsBuilderElement } from './dashboard-models-builder.element'; -import './dashboard-models-builder.element'; +import './dashboard-models-builder.element.js'; export default { title: 'Dashboards/Models Builder', diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/performance-profiling/dashboard-performance-profiling.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/performance-profiling/dashboard-performance-profiling.element.ts index 09958709c3..759692897b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/performance-profiling/dashboard-performance-profiling.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/performance-profiling/dashboard-performance-profiling.element.ts @@ -1,6 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { ProfilingResource } from '@umbraco-cms/backoffice/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; @@ -41,8 +40,8 @@ export class UmbDashboardPerformanceProfilingElement extends UmbLitElement { return this._isDebugMode ? html` <p> - Umbraco is running in debug mode. This means you can use the built-in performance profiler - to assess performance when rendering pages. + Umbraco is running in debug mode. This means you can use the built-in performance profiler to assess + performance when rendering pages. </p> <p> If you want to activate the profiler for a specific page rendering, simply add @@ -70,8 +69,8 @@ export class UmbDashboardPerformanceProfilingElement extends UmbLitElement { ` : html` <p> - Umbraco is not running in debug mode, so you can't use the built-in profiler. This is how it should - be for a production site. + Umbraco is not running in debug mode, so you can't use the built-in profiler. This is how it should be for a + production site. </p> <p> Debug mode is turned on by setting <strong>Umbraco:CMS:Hosting:Debug</strong> to <strong>true</strong> in @@ -94,7 +93,7 @@ export class UmbDashboardPerformanceProfilingElement extends UmbLitElement { css` :host { display: block; - margin: var(--uui-size-layout-1); + padding: var(--uui-size-layout-1); } uui-toggle { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/performance-profiling/dashboard-performance-profiling.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/performance-profiling/dashboard-performance-profiling.stories.ts index affb5f940b..0d3ac97708 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/performance-profiling/dashboard-performance-profiling.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/performance-profiling/dashboard-performance-profiling.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbDashboardPerformanceProfilingElement } from './dashboard-performance-profiling.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbDashboardPerformanceProfilingElement } from './dashboard-performance-profiling.element'; -import './dashboard-performance-profiling.element'; +import './dashboard-performance-profiling.element.js'; export default { title: 'Dashboards/Performance Profiling', diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.element.ts index 2d8b1b761d..d059a34dad 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.element.ts @@ -1,7 +1,5 @@ -import { UUIButtonState } from '@umbraco-ui/uui'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; +import { UUIButtonState, UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; import { PublishedCacheResource } from '@umbraco-cms/backoffice/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; @@ -191,7 +189,7 @@ export class UmbDashboardPublishedStatusElement extends UmbLitElement { css` :host { display: block; - margin: var(--uui-size-layout-1); + padding: var(--uui-size-layout-1); } uui-box + uui-box { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.stories.ts index 7c80cdeaa1..98e72d5b27 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbDashboardPublishedStatusElement } from './dashboard-published-status.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbDashboardPublishedStatusElement } from './dashboard-published-status.element'; -import './dashboard-published-status.element'; +import './dashboard-published-status.element.js'; export default { title: 'Dashboards/Published Status', diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.test.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.test.ts index ce625f94c8..f0b8176f23 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.test.ts @@ -1,6 +1,6 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbDashboardPublishedStatusElement } from './dashboard-published-status.element'; +import { UmbDashboardPublishedStatusElement } from './dashboard-published-status.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbDashboardPublishedStatus', () => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/settings-welcome/dashboard-settings-welcome.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/settings-welcome/dashboard-settings-welcome.element.ts index 89b31f7976..58b44ef44b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/settings-welcome/dashboard-settings-welcome.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/settings-welcome/dashboard-settings-welcome.element.ts @@ -1,11 +1,8 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, LitElement } from 'lit'; -import { customElement } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, LitElement, customElement } from '@umbraco-cms/backoffice/external/lit'; @customElement('umb-dashboard-settings-welcome') export class UmbDashboardSettingsWelcomeElement extends LitElement { - - render() { return html` <section id="settings-dashboard"> @@ -88,7 +85,7 @@ export class UmbDashboardSettingsWelcomeElement extends LitElement { </section> `; } - + static styles = [ UUITextStyles, css` @@ -96,7 +93,7 @@ export class UmbDashboardSettingsWelcomeElement extends LitElement { display: grid; grid-gap: var(--uui-size-7); grid-template-columns: repeat(3, 1fr); - margin: var(--uui-size-layout-1); + padding: var(--uui-size-layout-1); } @media (max-width: 1200px) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/settings-welcome/dashboard-settings-welcome.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/settings-welcome/dashboard-settings-welcome.stories.ts index 82f0475336..c555c14b78 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/settings-welcome/dashboard-settings-welcome.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/settings-welcome/dashboard-settings-welcome.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbDashboardSettingsWelcomeElement } from './dashboard-settings-welcome.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbDashboardSettingsWelcomeElement } from './dashboard-settings-welcome.element'; -import './dashboard-settings-welcome.element'; +import './dashboard-settings-welcome.element.js'; export default { title: 'Dashboards/Settings Welcome', diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/settings-welcome/dashboard-settings-welcome.test.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/settings-welcome/dashboard-settings-welcome.test.ts index 7cd3eee814..bed903dd30 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/settings-welcome/dashboard-settings-welcome.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/settings-welcome/dashboard-settings-welcome.test.ts @@ -1,6 +1,6 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbDashboardSettingsWelcomeElement } from './dashboard-settings-welcome.element'; +import { UmbDashboardSettingsWelcomeElement } from './dashboard-settings-welcome.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbDashboardSettingsWelcomeElement', () => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/telemetry/dashboard-telemetry.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/telemetry/dashboard-telemetry.element.ts index a18714b78e..7b7bf9ef29 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/telemetry/dashboard-telemetry.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/telemetry/dashboard-telemetry.element.ts @@ -1,8 +1,5 @@ -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { unsafeHTML } from 'lit/directives/unsafe-html.js'; -import { UUIButtonState } from '@umbraco-ui/uui'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { css, html, customElement, state, unsafeHTML } from '@umbraco-cms/backoffice/external/lit'; +import { UUIButtonState, UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { TelemetryResponseModel, TelemetryLevelModel, @@ -146,7 +143,7 @@ export class UmbDashboardTelemetryElement extends UmbLitElement { css` :host { display: block; - margin: var(--uui-size-layout-1); + padding: var(--uui-size-layout-1); } `, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/telemetry/dashboard-telemetry.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/telemetry/dashboard-telemetry.stories.ts index c101e73f41..2a8a380fb4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/telemetry/dashboard-telemetry.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/telemetry/dashboard-telemetry.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbDashboardTelemetryElement } from './dashboard-telemetry.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbDashboardTelemetryElement } from './dashboard-telemetry.element'; -import './dashboard-telemetry.element'; +import './dashboard-telemetry.element.js'; export default { title: 'Dashboards/Telemetry', diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/telemetry/dashboard-telemetry.test.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/telemetry/dashboard-telemetry.test.ts index a77fe00869..14dddb1b8a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/telemetry/dashboard-telemetry.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/telemetry/dashboard-telemetry.test.ts @@ -1,5 +1,5 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbDashboardTelemetryElement } from './dashboard-telemetry.element'; +import { UmbDashboardTelemetryElement } from './dashboard-telemetry.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbDashboardTelemetryElement', () => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/components/data-type-flow-input/data-type-flow-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/components/data-type-flow-input/data-type-flow-input.element.ts new file mode 100644 index 0000000000..4593633482 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/components/data-type-flow-input/data-type-flow-input.element.ts @@ -0,0 +1,116 @@ +import type { UmbDataTypeModel } from '../../models.js'; +import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles, FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { UmbModalRouteRegistrationController, UMB_DATA_TYPE_PICKER_FLOW_MODAL } from '@umbraco-cms/backoffice/modal'; +import { UmbRepositoryItemsManager } from '@umbraco-cms/backoffice/repository'; + +// Note: Does only support picking a single data type. But this could be developed later into this same component. To follow other picker input components. +/** + * Form control for picking or creating a data type. + * @element umb-data-type-flow-input + * @fires change - when the value of the input changes + * @fires blur - when the input loses focus + * @fires focus - when the input gains focus + */ +@customElement('umb-data-type-flow-input') +export class UmbInputDataTypeElement extends FormControlMixin(UmbLitElement) { + #itemsManager; + + protected getFormElement() { + return undefined; + } + + @state() + private _items?: Array<UmbDataTypeModel>; + + /** + * @param {string} dataTypeId + * @default [] + */ + @property({ attribute: false }) + get value(): string { + return super.value?.toString() ?? ''; + } + set value(dataTypeId: string) { + super.value = dataTypeId ?? ''; + this.#itemsManager.setUniques(super.value.split(',')); + } + + @state() + private _modalRoute?: string; + + constructor() { + super(); + + this.#itemsManager = new UmbRepositoryItemsManager<UmbDataTypeModel>(this, 'Umb.Repository.DataType'); + this.observe(this.#itemsManager.uniques, (uniques) => { + super.value = uniques.join(','); + }); + this.observe(this.#itemsManager.items, (items) => { + this._items = items; + }); + + new UmbModalRouteRegistrationController(this, UMB_DATA_TYPE_PICKER_FLOW_MODAL) + .onSetup(() => { + return { + selection: this.#itemsManager.getUniques(), + submitLabel: 'Submit', + }; + }) + .onSubmit((submitData) => { + // TODO: we might should set the alias to null or empty string, if no selection. + this.#itemsManager.setUniques(submitData.selection); + this.dispatchEvent(new CustomEvent('change', { composed: true, bubbles: true })); + }) + .observeRouteBuilder((routeBuilder) => { + this._modalRoute = routeBuilder(null); + this.requestUpdate('_modalRoute'); + }); + } + + render() { + return this._items && this._items.length > 0 + ? html` + <umb-ref-data-type + name=${this._items[0].name} + property-editor-ui-alias=${this._items[0].propertyEditorAlias} + property-editor-model-alias=${this._items[0].propertyEditorUiAlias} + @open=${() => { + console.warn('TO BE DONE..'); + }} + border> + <!-- TODO: Get the icon from property editor UI --> + <uui-icon name="${'document'}" slot="icon"></uui-icon> + <uui-action-bar slot="actions"> + <uui-button label="Change" .href=${this._modalRoute}></uui-button> + </uui-action-bar> + </umb-ref-data-type> + ` + : html` + <uui-button + id="empty-state-button" + label="Select Property Editor" + look="placeholder" + color="default" + .href=${this._modalRoute}></uui-button> + `; + } + + static styles = [ + UUITextStyles, + css` + #empty-state-button { + width: 100%; + --uui-button-padding-top-factor: 4; + --uui-button-padding-bottom-factor: 4; + } + `, + ]; +} + +declare global { + interface HTMLElementTagNameMap { + 'umb-data-type-flow-input': UmbInputDataTypeElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/components/data-type-input/data-type-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/components/data-type-input/data-type-input.element.ts index 8a5e055745..c04bad9d7a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/components/data-type-input/data-type-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/components/data-type-input/data-type-input.element.ts @@ -1,10 +1,8 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; -import { UmbDataTypePickerContext } from './data-type-input.context'; +import { UmbDataTypePickerContext } from './data-type-input.context.js'; +import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles, FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { DataTypeItemResponseModel, FolderTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DataTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-data-type-input') export class UmbDataTypeInputElement extends FormControlMixin(UmbLitElement) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/components/index.ts index c076c5f9a3..fdcc66c55a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/components/index.ts @@ -1 +1,3 @@ -import './data-type-input/data-type-input.element'; +import './data-type-input/data-type-input.element.js'; +import './data-type-flow-input/data-type-flow-input.element.js'; +import './ref-data-type/ref-data-type.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/components/ref-data-type/ref-data-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/components/ref-data-type/ref-data-type.element.ts new file mode 100644 index 0000000000..a217ce8918 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/components/ref-data-type/ref-data-type.element.ts @@ -0,0 +1,72 @@ +import { UUIRefNodeElement } from '@umbraco-cms/backoffice/external/uui'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; + +/** + * @element umb-ref-data-type + * @description - Component for displaying a reference to a Data Type + * @extends UUIRefNodeElement + */ +@customElement('umb-ref-data-type') +export class UmbRefDataTypeElement extends UUIRefNodeElement { + protected fallbackIcon = + '<svg xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M142.212 397.267l106.052-48.024L398.479 199.03l-26.405-26.442-90.519 90.517-15.843-15.891 90.484-90.486-16.204-16.217-150.246 150.243-47.534 106.513zm74.904-100.739l23.285-23.283 3.353 22.221 22.008 3.124-23.283 23.313-46.176 20.991 20.813-46.366zm257.6-173.71L416.188 64.3l-49.755 49.785 58.504 58.503 49.779-49.77zM357.357 300.227h82.826v116.445H68.929V300.227h88.719v-30.648H38.288v177.733h432.537V269.578H357.357v30.649z"></path></svg>'; + + /** + * Name + * @type {string} + * @attr + * @default '' + */ + @property({ type: String }) + name = ''; + + /** + * Property Editor UI Alias + * @type {string} + * @attr + * @default '' + */ + @property({ type: String, attribute: 'property-editor-ui-alias' }) + propertyEditorUiAlias = ''; + + /** + * Property Editor Model Alias + * @type {string} + * @attr + * @default '' + */ + @property({ type: String, attribute: 'property-editor-model-alias' }) + propertyEditorModelAlias = ''; + + protected renderDetail() { + const details: string[] = []; + + if (this.name !== '') { + details.push(this.name); + } + + if (this.propertyEditorUiAlias !== '') { + details.push(this.propertyEditorUiAlias); + } else { + details.push('Data Type Property Editor UI Missing'); + } + if (this.propertyEditorModelAlias !== '') { + details.push(this.propertyEditorModelAlias); + } else { + details.push('Data Type Property Editor Model Missing'); + } + + if (this.detail !== '') { + details.push(this.detail); + } + return html`<small id="detail">${details.join(' | ')}<slot name="detail"></slot></small>`; + } + + static styles = [...UUIRefNodeElement.styles]; +} + +declare global { + interface HTMLElementTagNameMap { + 'umb-ref-data-type': UmbRefDataTypeElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/components/ref-data-type/ref-data-type.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/components/ref-data-type/ref-data-type.stories.ts new file mode 100644 index 0000000000..379dead092 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/components/ref-data-type/ref-data-type.stories.ts @@ -0,0 +1,54 @@ +import { Meta, StoryObj } from '@storybook/web-components'; +import { html } from '@umbraco-cms/backoffice/external/lit'; +import './ref-data-type.element.js'; +import type { UmbRefDataTypeElement } from './ref-data-type.element.js'; + +const meta: Meta<UmbRefDataTypeElement> = { + title: 'Components/Ref Data Type', + component: 'umb-ref-property-editor-ui', +}; + +export default meta; +type Story = StoryObj<UmbRefDataTypeElement>; + +export const Overview: Story = { + args: { + name: 'Custom Data Type', + propertyEditorUiAlias: 'Umb.DataTypeInput.CustomUI', + propertyEditorModelAlias: 'Umbraco.JSON', + }, +}; + +export const WithDetail: Story = { + args: { + name: 'Custom Data Type', + propertyEditorUiAlias: 'Umb.DataType.CustomUI', + propertyEditorModelAlias: 'UmbracoInput.JSON', + detail: 'With some custom details', + }, +}; + +export const WithSlots: Story = { + args: { + name: 'Custom Data Type', + propertyEditorUiAlias: 'Umb.DataTypeInput.CustomUI', + propertyEditorModelAlias: 'Umbraco.JSON', + detail: 'With some custom details', + }, + render: (args) => html` + <umb-ref-data-type + .name=${args.name} + .propertyEditorUiAlias=${args.propertyEditorUiAlias} + .propertyEditorModelAlias=${args.propertyEditorModelAlias} + .detail=${args.detail}> + <div slot="tag"><uui-tag color="positive">10</uui-tag></div> + <div slot="actions"> + <uui-action-bar> + <uui-button label="delete" look="primary" color="danger" compact> + <uui-icon name="umb:delete"></uui-icon> + </uui-button> + </uui-action-bar> + </div> + </umb-ref-data-type> + `, +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entities.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entities.ts new file mode 100644 index 0000000000..24733b8a80 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entities.ts @@ -0,0 +1,3 @@ +export const DATA_TYPE_ROOT_ENTITY_TYPE = 'data-type-root'; +export const DATA_TYPE_ENTITY_TYPE = 'data-type'; +export const DATA_TYPE_FOLDER_ENTITY_TYPE = 'data-type-folder'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/copy/copy.action.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/copy/copy.action.ts index 5804757b83..2c1caf46f3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/copy/copy.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/copy/copy.action.ts @@ -1,4 +1,4 @@ -import { UmbDataTypeRepository } from '../../repository/data-type.repository'; +import { UmbDataTypeRepository } from '../../repository/data-type.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, UMB_DATA_TYPE_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/copy/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/copy/manifests.ts index 25d124edec..fc90a1c0d2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/copy/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/copy/manifests.ts @@ -1,6 +1,6 @@ -import { DATA_TYPE_ENTITY_TYPE } from '../..'; -import { DATA_TYPE_REPOSITORY_ALIAS } from '../../repository/manifests'; -import { UmbCopyDataTypeEntityAction } from './copy.action'; +import { DATA_TYPE_ENTITY_TYPE } from '../../entities.js'; +import { DATA_TYPE_REPOSITORY_ALIAS } from '../../repository/manifests.js'; +import { UmbCopyDataTypeEntityAction } from './copy.action.js'; import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array<ManifestTypes> = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/create/create.action.ts index b1e3630d09..64008eb5e7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/create/create.action.ts @@ -1,5 +1,5 @@ -import { UmbDataTypeRepository } from '../../repository/data-type.repository'; -import { UMB_DATA_TYPE_CREATE_OPTIONS_MODAL } from './modal'; +import { UmbDataTypeRepository } from '../../repository/data-type.repository.js'; +import { UMB_DATA_TYPE_CREATE_OPTIONS_MODAL } from './modal/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/create/manifests.ts index 1f02cc163e..c8e3a6254f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/create/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/create/manifests.ts @@ -1,6 +1,6 @@ -import { DATA_TYPE_ENTITY_TYPE, DATA_TYPE_FOLDER_ENTITY_TYPE, DATA_TYPE_ROOT_ENTITY_TYPE } from '../..'; -import { DATA_TYPE_REPOSITORY_ALIAS } from '../../repository/manifests'; -import { UmbCreateDataTypeEntityAction } from './create.action'; +import { DATA_TYPE_ENTITY_TYPE, DATA_TYPE_FOLDER_ENTITY_TYPE, DATA_TYPE_ROOT_ENTITY_TYPE } from '../../entities.js'; +import { DATA_TYPE_REPOSITORY_ALIAS } from '../../repository/manifests.js'; +import { UmbCreateDataTypeEntityAction } from './create.action.js'; import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array<ManifestTypes> = [ @@ -23,7 +23,7 @@ const entityActions: Array<ManifestTypes> = [ type: 'modal', alias: 'Umb.Modal.DataTypeCreateOptions', name: 'Data Type Create Options Modal', - loader: () => import('./modal/data-type-create-options-modal.element'), + loader: () => import('./modal/data-type-create-options-modal.element.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/create/modal/data-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/create/modal/data-type-create-options-modal.element.ts index 129556a051..857fd0fe49 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/create/modal/data-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/create/modal/data-type-create-options-modal.element.ts @@ -1,8 +1,7 @@ -import { html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property } from 'lit/decorators.js'; -import { DATA_TYPE_REPOSITORY_ALIAS } from '../../../repository/manifests'; -import { UmbDataTypeCreateOptionsModalData } from '.'; +import { DATA_TYPE_REPOSITORY_ALIAS } from '../../../repository/manifests.js'; +import { UmbDataTypeCreateOptionsModalData } from './index.js'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbModalContext, UmbModalHandler, diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/manifests.ts index 1f393c8032..576f180b4a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/manifests.ts @@ -1,8 +1,8 @@ -import { DATA_TYPE_FOLDER_ENTITY_TYPE, DATA_TYPE_ENTITY_TYPE } from '..'; -import { DATA_TYPE_REPOSITORY_ALIAS } from '../repository/manifests'; -import { manifests as createManifests } from './create/manifests'; -import { manifests as moveManifests } from './move/manifests'; -import { manifests as copyManifests } from './copy/manifests'; +import { DATA_TYPE_FOLDER_ENTITY_TYPE, DATA_TYPE_ENTITY_TYPE } from '../entities.js'; +import { DATA_TYPE_REPOSITORY_ALIAS } from '../repository/manifests.js'; +import { manifests as createManifests } from './create/manifests.js'; +import { manifests as moveManifests } from './move/manifests.js'; +import { manifests as copyManifests } from './copy/manifests.js'; import { UmbDeleteEntityAction, diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/move/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/move/manifests.ts index 3102ba26eb..a964e2d15b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/move/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/move/manifests.ts @@ -1,6 +1,6 @@ -import { DATA_TYPE_ENTITY_TYPE } from '../..'; -import { DATA_TYPE_REPOSITORY_ALIAS } from '../../repository/manifests'; -import { UmbMoveDataTypeEntityAction } from './move.action'; +import { DATA_TYPE_ENTITY_TYPE } from '../../entities.js'; +import { DATA_TYPE_REPOSITORY_ALIAS } from '../../repository/manifests.js'; +import { UmbMoveDataTypeEntityAction } from './move.action.js'; import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array<ManifestTypes> = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/move/move.action.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/move/move.action.ts index 629dfa9d37..30f6f4a5c1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/move/move.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/entity-actions/move/move.action.ts @@ -1,4 +1,4 @@ -import { UmbDataTypeRepository } from '../../repository/data-type.repository'; +import { UmbDataTypeRepository } from '../../repository/data-type.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, UMB_DATA_TYPE_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/index.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/index.ts index 6d3be16e23..10ee495e1d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/index.ts @@ -1,5 +1,5 @@ -import './components'; +import './components/index.js'; -export const DATA_TYPE_ROOT_ENTITY_TYPE = 'data-type-root'; -export const DATA_TYPE_ENTITY_TYPE = 'data-type'; -export const DATA_TYPE_FOLDER_ENTITY_TYPE = 'data-type-folder'; +export type { UmbDataTypeModel } from './models.js'; +export * from './entities.js'; +export * from './repository/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/manifests.ts index fac58d2628..0f768f4901 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/manifests.ts @@ -1,8 +1,9 @@ -import { manifests as entityActions } from './entity-actions/manifests'; -import { manifests as repositoryManifests } from './repository/manifests'; -import { manifests as menuItemManifests } from './menu-item/manifests'; -import { manifests as treeManifests } from './tree/manifests'; -import { manifests as workspaceManifests } from './workspace/manifests'; +import { manifests as entityActions } from './entity-actions/manifests.js'; +import { manifests as repositoryManifests } from './repository/manifests.js'; +import { manifests as menuItemManifests } from './menu-item/manifests.js'; +import { manifests as treeManifests } from './tree/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; +import { manifests as modalManifests } from './modals/manifests.js'; export const manifests = [ ...entityActions, @@ -10,4 +11,5 @@ export const manifests = [ ...menuItemManifests, ...treeManifests, ...workspaceManifests, + ...modalManifests, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts new file mode 100644 index 0000000000..31936de95b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts @@ -0,0 +1,278 @@ +import { UmbDataTypeRepository } from '../../repository/data-type.repository.js'; +import { css, html, repeat, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { groupBy } from '@umbraco-cms/backoffice/external/lodash'; +import type { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import { + UmbPropertyEditorUIPickerModalData, + UmbPropertyEditorUIPickerModalResult, + UmbModalHandler, +} from '@umbraco-cms/backoffice/modal'; +import { ManifestPropertyEditorUi, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import type { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; + +interface GroupedItems<T> { + [key: string]: Array<T>; +} +@customElement('umb-data-type-picker-flow-modal') +export class UmbDataTypePickerFlowModalElement extends UmbLitElement { + @property({ attribute: false }) + modalHandler?: UmbModalHandler<UmbPropertyEditorUIPickerModalData, UmbPropertyEditorUIPickerModalResult>; + + @property({ type: Object }) + public get data(): UmbPropertyEditorUIPickerModalData | undefined { + return this._data; + } + public set data(value: UmbPropertyEditorUIPickerModalData | undefined) { + this._data = value; + this._selection = this.data?.selection ?? []; + this._submitLabel = this.data?.submitLabel ?? this._submitLabel; + } + private _data?: UmbPropertyEditorUIPickerModalData | undefined; + + @state() + private _groupedDataTypes?: GroupedItems<EntityTreeItemResponseModel>; + + @state() + private _groupedPropertyEditorUIs: GroupedItems<ManifestPropertyEditorUi> = {}; + + @state() + private _selection: Array<string> = []; + + @state() + private _submitLabel = 'Select'; + + #repository; + #dataTypes: Array<EntityTreeItemResponseModel> = []; + #propertyEditorUIs: Array<ManifestPropertyEditorUi> = []; + #currentFilterQuery = ''; + + constructor() { + super(); + this.#repository = new UmbDataTypeRepository(this); + + this.#init(); + } + + async #init() { + // TODO: Get ALL items, or traverse the structure aka. multiple recursive calls. + this.observe( + (await this.#repository.requestRootTreeItems()).asObservable(), + (items) => { + this.#dataTypes = items; + this._performFiltering(); + }, + '_repositoryItemsObserver' + ); + + this.observe(umbExtensionsRegistry.extensionsOfType('propertyEditorUi'), (propertyEditorUIs) => { + this.#propertyEditorUIs = propertyEditorUIs; + this._performFiltering(); + }); + } + + private _handleUIClick(propertyEditorUi: ManifestPropertyEditorUi) { + alert('To BE DONE.'); + } + + private _handleDataTypeClick(dataType: EntityTreeItemResponseModel) { + if (dataType.id) { + this._select(dataType.id); + } + } + + private _select(id: string) { + this._selection = [id]; + } + + private _handleFilterInput(event: UUIInputEvent) { + const query = (event.target.value as string) || ''; + this.#currentFilterQuery = query.toLowerCase(); + this._performFiltering(); + } + private _performFiltering() { + if (this.#currentFilterQuery) { + this._groupedDataTypes = groupBy( + this.#dataTypes.filter((dataType) => { + return dataType.name?.toLowerCase().includes(this.#currentFilterQuery); + }), + 'meta.group' + ); + } else { + this._groupedDataTypes = undefined; + } + + const filteredUIs = !this.#currentFilterQuery + ? this.#propertyEditorUIs + : this.#propertyEditorUIs.filter((propertyEditorUI) => { + return ( + propertyEditorUI.name.toLowerCase().includes(this.#currentFilterQuery) || + propertyEditorUI.alias.toLowerCase().includes(this.#currentFilterQuery) + ); + }); + + this._groupedPropertyEditorUIs = groupBy(filteredUIs, 'meta.group'); + } + + private _close() { + this.modalHandler?.reject(); + } + + private _submit() { + this.modalHandler?.submit({ selection: this._selection }); + } + + render() { + return html` + <umb-body-layout headline="Select editor"> + <uui-box> ${this._renderFilter()} ${this._renderGrid()} </uui-box> + <div slot="actions"> + <uui-button label="Close" @click=${this._close}></uui-button> + <uui-button label="${this._submitLabel}" look="primary" color="positive" @click=${this._submit}></uui-button> + </div> + </umb-body-layout> + `; + } + + private _renderGrid() { + return this.#currentFilterQuery + ? html` + <h5>Available configurations</h5> + ${this._renderDataTypes()} + <h5>Create a new configuration</h5> + ${this._renderUIs()} + ` + : html`${this._renderUIs()}`; + } + + private _renderFilter() { + return html` <uui-input + id="filter" + @input="${this._handleFilterInput}" + placeholder="Type to filter..." + label="Type to filter icons"> + <uui-icon name="search" slot="prepend" id="filter-icon"></uui-icon> + </uui-input>`; + } + + private _renderDataTypes() { + return this._groupedDataTypes + ? html` ${Object.entries(this._groupedDataTypes).map( + ([key, value]) => + html` <h4>${key}</h4> + ${this._renderGroupDataTypes(value)}` + )}` + : ''; + } + + private _renderGroupDataTypes(dataTypes: Array<EntityTreeItemResponseModel>) { + return html` <ul id="item-grid"> + ${repeat( + dataTypes, + (dataType) => dataType.id, + (dataType) => html`<li class="item" ?selected=${this._selection.includes(dataType.id!)}> + <button type="button" @click="${() => this._handleDataTypeClick(dataType)}"> + <uui-icon name="${dataType.icon}" class="icon"></uui-icon> + ${dataType.name} + </button> + </li>` + )} + </ul>`; + } + + private _renderUIs() { + return html` ${Object.entries(this._groupedPropertyEditorUIs).map( + ([key, value]) => + html` <h4>${key}</h4> + ${this._renderGroupUIs(value)}` + )}`; + } + + private _renderGroupUIs(uis: Array<ManifestPropertyEditorUi>) { + return html` <ul id="item-grid"> + ${repeat( + uis, + (propertyEditorUI) => propertyEditorUI.alias, + (propertyEditorUI) => html` <li class="item"> + <button type="button" @click="${() => this._handleUIClick(propertyEditorUI)}"> + <uui-icon name="${propertyEditorUI.meta.icon}" class="icon"></uui-icon> + ${propertyEditorUI.meta.label || propertyEditorUI.name} + </button> + </li>` + )} + </ul>`; + } + + static styles = [ + UUITextStyles, + css` + #filter { + width: 100%; + margin-bottom: var(--uui-size-space-4); + } + + #filter-icon { + padding-left: var(--uui-size-space-2); + } + + #item-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(70px, 1fr)); + margin: 0; + padding: 0; + grid-gap: var(--uui-size-space-4); + } + + #item-grid .item { + display: flex; + align-items: flex-start; + justify-content: center; + list-style: none; + height: 100%; + border: 1px solid transparent; + border-radius: var(--uui-border-radius); + } + + #item-grid .item:hover { + background: var(--uui-color-surface-emphasis); + color: var(--uui-color-interactive-emphasis); + cursor: pointer; + } + + #item-grid .item[selected] button { + background: var(--uui-color-selected); + color: var(--uui-color-selected-contrast); + } + + #item-grid .item button { + background: none; + border: none; + cursor: pointer; + padding: var(--uui-size-space-3); + display: flex; + align-items: center; + flex-direction: column; + justify-content: center; + font-size: 0.8rem; + height: 100%; + width: 100%; + color: var(--uui-color-interactive); + border-radius: var(--uui-border-radius); + } + + #item-grid .item .icon { + font-size: 2em; + margin-bottom: var(--uui-size-space-2); + } + `, + ]; +} + +export default UmbDataTypePickerFlowModalElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-data-type-picker-flow-modal': UmbDataTypePickerFlowModalElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/modals/data-type-picker-flow/data-type-picker-flow-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/modals/data-type-picker-flow/data-type-picker-flow-modal.stories.ts new file mode 100644 index 0000000000..8e8e70e5c6 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/modals/data-type-picker-flow/data-type-picker-flow-modal.stories.ts @@ -0,0 +1,19 @@ +import { Meta, Story } from '@storybook/web-components'; +import type { UmbDataTypePickerFlowModalElement } from './data-type-picker-flow-modal.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; +import type { UmbPropertyEditorUIPickerModalData } from '@umbraco-cms/backoffice/modal'; + +import './data-type-picker-flow-modal.element.js'; +import '../../../../core/components/body-layout/body-layout.element.js'; + +export default { + title: 'API/Modals/Layouts/Data Type Picker Flow', + component: 'umb-data-type-picker-flow-modal', + id: 'umb-data-type-picker-flow-modal', +} as Meta; + +const data: UmbPropertyEditorUIPickerModalData = { selection: [] }; + +export const Overview: Story<UmbDataTypePickerFlowModalElement> = () => html` + <umb-data-type-picker-flow-modal .data=${data as any}></umb-data-type-picker-flow-modal> +`; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/modals/manifests.ts similarity index 59% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editors/modals/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/settings/data-types/modals/manifests.ts index bd7dc33169..f1fb7f9987 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/modals/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/modals/manifests.ts @@ -5,7 +5,13 @@ const modals: Array<ManifestModal> = [ type: 'modal', alias: 'Umb.Modal.PropertyEditorUIPicker', name: 'Property Editor UI Picker Modal', - loader: () => import('./property-editor-ui-picker/property-editor-ui-picker-modal.element'), + loader: () => import('./property-editor-ui-picker/property-editor-ui-picker-modal.element.js'), + }, + { + type: 'modal', + alias: 'Umb.Modal.DataTypePickerFlow', + name: 'Data Type Picker Flow Modal', + loader: () => import('./data-type-picker-flow/data-type-picker-flow-modal.element.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts similarity index 87% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/settings/data-types/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts index bda34eddbf..29f67cf412 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts @@ -1,19 +1,17 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { repeat } from 'lit/directives/repeat.js'; -import { groupBy } from 'lodash-es'; -import type { UUIInputEvent } from '@umbraco-ui/uui'; +import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { groupBy } from '@umbraco-cms/backoffice/external/lodash'; +import type { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbPropertyEditorUIPickerModalData, UmbPropertyEditorUIPickerModalResult, UmbModalHandler, } from '@umbraco-cms/backoffice/modal'; -import { ManifestPropertyEditorUI, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import { ManifestPropertyEditorUi, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; interface GroupedPropertyEditorUIs { - [key: string]: Array<ManifestPropertyEditorUI>; + [key: string]: Array<ManifestPropertyEditorUi>; } @customElement('umb-property-editor-ui-picker-modal') export class UmbPropertyEditorUIPickerModalElement extends UmbLitElement { @@ -24,7 +22,7 @@ export class UmbPropertyEditorUIPickerModalElement extends UmbLitElement { private _groupedPropertyEditorUIs: GroupedPropertyEditorUIs = {}; @state() - private _propertyEditorUIs: Array<ManifestPropertyEditorUI> = []; + private _propertyEditorUIs: Array<ManifestPropertyEditorUi> = []; @state() private _selection: Array<string> = []; @@ -44,14 +42,14 @@ export class UmbPropertyEditorUIPickerModalElement extends UmbLitElement { private _usePropertyEditorUIs() { if (!this.data) return; - this.observe(umbExtensionsRegistry.extensionsOfType('propertyEditorUI'), (propertyEditorUIs) => { + this.observe(umbExtensionsRegistry.extensionsOfType('propertyEditorUi'), (propertyEditorUIs) => { this._propertyEditorUIs = propertyEditorUIs; this._groupedPropertyEditorUIs = groupBy(propertyEditorUIs, 'meta.group'); }); } - private _handleClick(propertyEditorUI: ManifestPropertyEditorUI) { - this._select(propertyEditorUI.alias); + private _handleClick(propertyEditorUi: ManifestPropertyEditorUi) { + this._select(propertyEditorUi.alias); } private _select(alias: string) { @@ -86,13 +84,13 @@ export class UmbPropertyEditorUIPickerModalElement extends UmbLitElement { render() { return html` - <umb-workspace-editor headline="Select Property Editor UI"> + <umb-body-layout headline="Select Property Editor UI"> <uui-box> ${this._renderFilter()} ${this._renderGrid()} </uui-box> <div slot="actions"> <uui-button label="Close" @click=${this._close}></uui-button> <uui-button label="${this._submitLabel}" look="primary" color="positive" @click=${this._submit}></uui-button> </div> - </umb-workspace-editor> + </umb-body-layout> `; } @@ -114,7 +112,7 @@ export class UmbPropertyEditorUIPickerModalElement extends UmbLitElement { )}`; } - private _renderGroupItems(groupItems: Array<ManifestPropertyEditorUI>) { + private _renderGroupItems(groupItems: Array<ManifestPropertyEditorUi>) { return html` <ul id="item-grid"> ${repeat( groupItems, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts similarity index 73% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/settings/data-types/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts index fd6291ef18..8a28a9e4af 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editors/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts @@ -1,10 +1,10 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; -import type { UmbPropertyEditorUIPickerModalElement } from './property-editor-ui-picker-modal.element'; +import type { UmbPropertyEditorUIPickerModalElement } from './property-editor-ui-picker-modal.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; import type { UmbPropertyEditorUIPickerModalData } from '@umbraco-cms/backoffice/modal'; -import './property-editor-ui-picker-modal.element'; -import '../../../components/body-layout/body-layout.element'; +import './property-editor-ui-picker-modal.element.js'; +import '../../../../core/components/body-layout/body-layout.element.js'; export default { title: 'API/Modals/Layouts/Property Editor UI Picker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/types.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/models.ts similarity index 86% rename from src/Umbraco.Web.UI.Client/src/packages/settings/data-types/types.ts rename to src/Umbraco.Web.UI.Client/src/packages/settings/data-types/models.ts index 636a67cc81..33e35d560d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/models.ts @@ -1,5 +1,3 @@ -// Temp file for data type types - import { DataTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; export interface UmbDataTypeModel extends Omit<DataTypeResponseModel, '$type'> { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/data-type.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/data-type.repository.ts index b33472fe2c..aa5d7b81fe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/data-type.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/data-type.repository.ts @@ -1,13 +1,13 @@ -import { DATA_TYPE_ROOT_ENTITY_TYPE } from '..'; -import { UmbDataTypeTreeServerDataSource } from './sources/data-type.tree.server.data'; -import { UmbDataTypeMoveServerDataSource } from './sources/data-type-move.server.data'; -import { UmbDataTypeStore, UMB_DATA_TYPE_STORE_CONTEXT_TOKEN } from './data-type.store'; -import { UmbDataTypeServerDataSource } from './sources/data-type.server.data'; -import { UmbDataTypeTreeStore, UMB_DATA_TYPE_TREE_STORE_CONTEXT_TOKEN } from './data-type.tree.store'; -import { UmbDataTypeFolderServerDataSource } from './sources/data-type-folder.server.data'; -import { UmbDataTypeItemServerDataSource } from './sources/data-type-item.server.data'; -import { UMB_DATA_TYPE_ITEM_STORE_CONTEXT_TOKEN, UmbDataTypeItemStore } from './data-type-item.store'; -import { UmbDataTypeCopyServerDataSource } from './sources/data-type-copy.server.data'; +import { DATA_TYPE_ROOT_ENTITY_TYPE } from '../entities.js'; +import { UmbDataTypeTreeServerDataSource } from './sources/data-type.tree.server.data.js'; +import { UmbDataTypeMoveServerDataSource } from './sources/data-type-move.server.data.js'; +import { UmbDataTypeStore, UMB_DATA_TYPE_STORE_CONTEXT_TOKEN } from './data-type.store.js'; +import { UmbDataTypeServerDataSource } from './sources/data-type.server.data.js'; +import { UmbDataTypeTreeStore, UMB_DATA_TYPE_TREE_STORE_CONTEXT_TOKEN } from './data-type.tree.store.js'; +import { UmbDataTypeFolderServerDataSource } from './sources/data-type-folder.server.data.js'; +import { UmbDataTypeItemServerDataSource } from './sources/data-type-item.server.data.js'; +import { UMB_DATA_TYPE_ITEM_STORE_CONTEXT_TOKEN, UmbDataTypeItemStore } from './data-type-item.store.js'; +import { UmbDataTypeCopyServerDataSource } from './sources/data-type-copy.server.data.js'; import type { UmbTreeRepository, UmbDetailRepository, diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/data-type.store.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/data-type.store.ts index 4c5c36f7ce..76e2c0e20c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/data-type.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/data-type.store.ts @@ -12,7 +12,7 @@ export const UMB_DATA_TYPE_STORE_CONTEXT_TOKEN = new UmbContextToken<UmbDataType * @extends {UmbStoreBase} * @description - Data Store for Template Details */ -export class UmbDataTypeStore extends UmbStoreBase { +export class UmbDataTypeStore extends UmbStoreBase<DataTypeResponseModel> { /** * Creates an instance of UmbDataTypeStore. * @param {UmbControllerHostElement} host diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/index.ts new file mode 100644 index 0000000000..1d069d1139 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/index.ts @@ -0,0 +1 @@ +export { UmbDataTypeRepository } from './data-type.repository.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/manifests.ts index 8b5eb5bc97..9c112a8107 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/manifests.ts @@ -1,7 +1,7 @@ -import { UmbDataTypeRepository } from '../repository/data-type.repository'; -import { UmbDataTypeItemStore } from './data-type-item.store'; -import { UmbDataTypeStore } from './data-type.store'; -import { UmbDataTypeTreeStore } from './data-type.tree.store'; +import { UmbDataTypeRepository } from './data-type.repository.js'; +import { UmbDataTypeItemStore } from './data-type-item.store.js'; +import { UmbDataTypeStore } from './data-type.store.js'; +import { UmbDataTypeTreeStore } from './data-type.tree.store.js'; import type { ManifestStore, ManifestTreeStore, diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/tree/manifests.ts index 1bd3245b63..d32f25f65a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/tree/manifests.ts @@ -1,4 +1,4 @@ -import { DATA_TYPE_REPOSITORY_ALIAS } from '../repository/manifests'; +import { DATA_TYPE_REPOSITORY_ALIAS } from '../repository/manifests.js'; import type { ManifestTree, ManifestTreeItem } from '@umbraco-cms/backoffice/extension-registry'; const tree: ManifestTree = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace-editor.element.ts similarity index 76% rename from src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace-edit.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace-editor.element.ts index 5ed8184b7e..0fdd38475d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace-editor.element.ts @@ -1,18 +1,15 @@ -import { UUIInputElement, UUIInputEvent } from '@umbraco-ui/uui'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UmbDataTypeWorkspaceContext } from './data-type-workspace.context'; +import { UmbDataTypeWorkspaceContext } from './data-type-workspace.context.js'; +import { UUIInputElement, UUIInputEvent, UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; - +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; /** - * @element umb-data-type-workspace-edit-element + * @element umb-data-type-workspace-editor * @description - Element for displaying the Data Type Workspace edit route. */ -@customElement('umb-data-type-workspace-edit-element') -export class UmbDataTypeWorkspaceEditElement extends UmbLitElement { +@customElement('umb-data-type-workspace-editor') +export class UmbDataTypeWorkspaceEditorElement extends UmbLitElement { @property() manifest?: ManifestWorkspace; @@ -76,10 +73,10 @@ export class UmbDataTypeWorkspaceEditElement extends UmbLitElement { ]; } -export default UmbDataTypeWorkspaceEditElement; +export default UmbDataTypeWorkspaceEditorElement; declare global { interface HTMLElementTagNameMap { - 'umb-data-type-workspace-edit-element': UmbDataTypeWorkspaceEditElement; + 'umb-data-type-workspace-editor': UmbDataTypeWorkspaceEditorElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.context.ts index afcb56e7a4..e56e1bc889 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.context.ts @@ -1,4 +1,4 @@ -import { UmbDataTypeRepository } from '../repository/data-type.repository'; +import { UmbDataTypeRepository } from '../repository/data-type.repository.js'; import { UmbEntityWorkspaceContextInterface, UmbWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; import type { DataTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { appendToFrozenArray, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.element.ts index f67effa398..807a60aa58 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.element.ts @@ -1,17 +1,16 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbDataTypeWorkspaceContext } from './data-type-workspace.context'; +import { UmbDataTypeWorkspaceContext } from './data-type-workspace.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import './data-type-workspace-edit.element'; +import './data-type-workspace-editor.element.js'; @customElement('umb-data-type-workspace') export class UmbDataTypeWorkspaceElement extends UmbLitElement { #workspaceContext = new UmbDataTypeWorkspaceContext(this); - #element = document.createElement('umb-data-type-workspace-edit-element'); + #element = document.createElement('umb-data-type-workspace-editor'); @state() _routes: UmbRoute[] = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.stories.ts index 09323d2a4a..0ed8c2eb23 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.stories.ts @@ -1,12 +1,11 @@ -import './data-type-workspace.element'; +import './data-type-workspace.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import { data } from '../../../../mocks/data/data-type.data.js'; +import type { UmbDataTypeWorkspaceElement } from './data-type-workspace.element.js'; +import { html , ifDefined } from '@umbraco-cms/backoffice/external/lit'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { data } from '../../../../shared/mocks/data/data-type.data'; -import type { UmbDataTypeWorkspaceElement } from './data-type-workspace.element'; export default { title: 'Workspaces/Data Type', diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/manifests.ts index 127316e41e..6732de2659 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/manifests.ts @@ -11,7 +11,7 @@ const workspace: ManifestWorkspace = { type: 'workspace', alias: DATA_TYPE_WORKSPACE_ALIAS, name: 'Data Type Workspace', - loader: () => import('./data-type-workspace.element'), + loader: () => import('./data-type-workspace.element.js'), meta: { entityType: 'data-type', }, @@ -22,7 +22,7 @@ const workspaceViews: Array<ManifestWorkspaceEditorView> = [ type: 'workspaceEditorView', alias: 'Umb.WorkspaceView.DataType.Edit', name: 'Data Type Workspace Edit View', - loader: () => import('./views/details/data-type-details-workspace-view.element'), + loader: () => import('./views/details/data-type-details-workspace-view.element.js'), weight: 90, meta: { label: 'Details', @@ -37,7 +37,7 @@ const workspaceViews: Array<ManifestWorkspaceEditorView> = [ type: 'workspaceEditorView', alias: 'Umb.WorkspaceView.DataType.Info', name: 'Data Type Workspace Info View', - loader: () => import('./views/info/workspace-view-data-type-info.element'), + loader: () => import('./views/info/workspace-view-data-type-info.element.js'), weight: 90, meta: { label: 'Info', diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/views/details/data-type-details-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/views/details/data-type-details-workspace-view.element.ts index 15526df1a9..e166ab65d6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/views/details/data-type-details-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/views/details/data-type-details-workspace-view.element.ts @@ -1,8 +1,7 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, nothing } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbDataTypeWorkspaceContext } from '../../data-type-workspace.context'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; +import { UmbDataTypeWorkspaceContext } from '../../data-type-workspace.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, @@ -24,16 +23,16 @@ export class UmbDataTypeDetailsWorkspaceViewEditElement _dataType?: DataTypeResponseModel; @state() - private _propertyEditorUIIcon = ''; + private _propertyEditorUiIcon?: string; @state() - private _propertyEditorUIName = ''; + private _propertyEditorUiName?: string; @state() - private _propertyEditorUiAlias = ''; + private _propertyEditorUiAlias?: string; @state() - private _propertyEditorAlias = ''; + private _propertyEditorAlias?: string; @state() private _data: Array<any> = []; @@ -66,8 +65,23 @@ export class UmbDataTypeDetailsWorkspaceViewEditElement // TODO: handle if model is not of the type wanted. this._dataType = dataType; - if (this._dataType.propertyEditorUiAlias !== this._propertyEditorUiAlias) { - this._observePropertyEditorUI(this._dataType.propertyEditorUiAlias || undefined); + if (!this._dataType.propertyEditorUiAlias) { + if (this._dataType.propertyEditorAlias) { + // Get the property editor UI alias from the property editor alias: + this.observe( + umbExtensionsRegistry.getByTypeAndAlias('propertyEditorModel', this._dataType.propertyEditorAlias), + (propertyEditorModel) => { + // TODO: show error. We have stored a PropertyEditorModelAlias and can't find the PropertyEditorModel in the registry. + if (!propertyEditorModel) return; + this._setPropertyEditorUiAlias(propertyEditorModel.meta.defaultPropertyEditorUiAlias ?? undefined); + }, + '_observePropertyEditorModelForDefaultUI' + ); + } else { + this._setPropertyEditorUiAlias(undefined); + } + } else { + this._setPropertyEditorUiAlias(this._dataType.propertyEditorUiAlias); } if (this._dataType.values && this._dataType.values !== this._data) { @@ -76,22 +90,38 @@ export class UmbDataTypeDetailsWorkspaceViewEditElement }); } + private _setPropertyEditorUiAlias(value: string | undefined) { + const oldValue = this._propertyEditorUiAlias; + if (oldValue !== value) { + this._propertyEditorUiAlias = value; + this._observePropertyEditorUI(value || undefined); + } + } + private _observePropertyEditorUI(propertyEditorUiAlias?: string) { - if (!propertyEditorUiAlias) return; + if (!propertyEditorUiAlias) { + this._propertyEditorUiName = this._propertyEditorUiIcon = this._propertyEditorUiAlias = undefined; + this.removeControllerByUnique('_observePropertyEditorUI'); + return; + } + + // remove the '_observePropertyEditorModelForDefaultUI' controller, as we do not want to observe for default value anymore: + this.removeControllerByUnique('_observePropertyEditorModelForDefaultUI'); this.observe( - umbExtensionsRegistry.getByTypeAndAlias('propertyEditorUI', propertyEditorUiAlias), + umbExtensionsRegistry.getByTypeAndAlias('propertyEditorUi', propertyEditorUiAlias), (propertyEditorUI) => { // TODO: show error. We have stored a PropertyEditorUIAlias and can't find the PropertyEditorUI in the registry. if (!propertyEditorUI) return; - this._propertyEditorUIName = propertyEditorUI?.meta.label ?? propertyEditorUI?.name ?? ''; + this._propertyEditorUiName = propertyEditorUI?.meta.label ?? propertyEditorUI?.name ?? ''; this._propertyEditorUiAlias = propertyEditorUI?.alias ?? ''; - this._propertyEditorUIIcon = propertyEditorUI?.meta.icon ?? ''; - this._propertyEditorAlias = propertyEditorUI?.meta.propertyEditorModel ?? ''; + this._propertyEditorUiIcon = propertyEditorUI?.meta.icon ?? ''; + this._propertyEditorAlias = propertyEditorUI?.meta.propertyEditorAlias ?? ''; this._workspaceContext?.setPropertyEditorAlias(this._propertyEditorAlias); - } + }, + '_observePropertyEditorUI' ); } @@ -108,14 +138,12 @@ export class UmbDataTypeDetailsWorkspaceViewEditElement } private _selectPropertyEditorUI(propertyEditorUiAlias: string | undefined) { - if (!this._dataType || this._dataType.propertyEditorUiAlias === propertyEditorUiAlias) return; this._workspaceContext?.setPropertyEditorUiAlias(propertyEditorUiAlias); - this._observePropertyEditorUI(propertyEditorUiAlias); } render() { return html` - <uui-box style="margin-bottom: var(--uui-size-space-5);"> ${this._renderPropertyEditorUI()} </uui-box> + <uui-box> ${this._renderPropertyEditorUI()} </uui-box> ${this._renderConfig()} </uui-box> `; } @@ -128,11 +156,11 @@ export class UmbDataTypeDetailsWorkspaceViewEditElement <!-- TODO: border is a bit weird attribute name. Maybe single or standalone would be better? --> <umb-ref-property-editor-ui slot="editor" - name=${this._propertyEditorUIName} + name=${this._propertyEditorUiName} alias=${this._propertyEditorUiAlias} property-editor-model-alias=${this._propertyEditorAlias} border> - <uui-icon name="${this._propertyEditorUIIcon}" slot="icon"></uui-icon> + <uui-icon name="${this._propertyEditorUiIcon}" slot="icon"></uui-icon> <uui-action-bar slot="actions"> <uui-button label="Change" @click=${this._openPropertyEditorUIPicker}></uui-button> </uui-action-bar> @@ -154,7 +182,7 @@ export class UmbDataTypeDetailsWorkspaceViewEditElement return html` ${this._propertyEditorAlias && this._propertyEditorUiAlias ? html` - <uui-box headline="Config"> + <uui-box headline="Settings"> <umb-property-editor-config property-editor-ui-alias="${this._propertyEditorUiAlias}" .data="${this._data}"></umb-property-editor-config> @@ -169,7 +197,7 @@ export class UmbDataTypeDetailsWorkspaceViewEditElement css` :host { display: block; - margin: var(--uui-size-layout-1); + padding: var(--uui-size-layout-1); } `, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/views/details/data-type-details-workspace-view.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/views/details/data-type-details-workspace-view.stories.ts index 42cce1558e..a4d70beed0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/views/details/data-type-details-workspace-view.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/views/details/data-type-details-workspace-view.stories.ts @@ -1,12 +1,12 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbDataTypeDetailsWorkspaceViewEditElement } from './data-type-details-workspace-view.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -//import { data } from '../../../../../core/mocks/data/data-type.data'; +//import { data } from '../../../../../core/mocks/data/data-type.data.js'; -import type { UmbDataTypeDetailsWorkspaceViewEditElement } from './data-type-details-workspace-view.element'; -import './data-type-details-workspace-view.element'; -//import { UmbDataTypeWorkspaceContext } from '../../workspace-data-type.context'; +import './data-type-details-workspace-view.element.js'; +//import { UmbDataTypeWorkspaceContext } from '../../workspace-data-type.context.js'; export default { title: 'Workspaces/Data Type/Views/Edit', diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/views/info/workspace-view-data-type-info.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/views/info/workspace-view-data-type-info.element.ts index 2a784c7a9e..570457e037 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/views/info/workspace-view-data-type-info.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/views/info/workspace-view-data-type-info.element.ts @@ -1,9 +1,7 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbDataTypeWorkspaceContext } from '../../data-type-workspace.context'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; - +import { UmbDataTypeWorkspaceContext } from '../../data-type-workspace.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { DataTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbWorkspaceEditorViewExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; @@ -67,7 +65,7 @@ export class UmbWorkspaceViewDataTypeInfoElement css` :host { display: block; - margin: var(--uui-size-layout-1); + padding: var(--uui-size-layout-1); } `, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/views/info/workspace-view-data-type-info.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/views/info/workspace-view-data-type-info.stories.ts index b819c5c983..fac4a39401 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/views/info/workspace-view-data-type-info.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/views/info/workspace-view-data-type-info.stories.ts @@ -1,12 +1,12 @@ -import './workspace-view-data-type-info.element'; +import './workspace-view-data-type-info.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbWorkspaceViewDataTypeInfoElement } from './workspace-view-data-type-info.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -//import { data } from '../../../../../core/mocks/data/data-type.data'; -//import { UmbDataTypeContext } from '../../data-type.context'; +//import { data } from '../../../../../core/mocks/data/data-type.data.js'; +//import { UmbDataTypeContext } from '../../data-type.context.js'; -import type { UmbWorkspaceViewDataTypeInfoElement } from './workspace-view-data-type-info.element'; export default { title: 'Workspaces/Data Type/Views/Info', diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/manifests.ts index 5bee1cd866..ea4e6d7613 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/manifests.ts @@ -1,4 +1,4 @@ -import { manifests as menuItemManifests } from './menu-item/manifests'; -import { manifests as workspaceManifests } from './workspace/manifests'; +import { manifests as menuItemManifests } from './menu-item/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; export const manifests = [...menuItemManifests, ...workspaceManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/extension-root-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/extension-root-workspace.element.ts index 5d9735ab99..e82d909b07 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/extension-root-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/extension-root-workspace.element.ts @@ -1,6 +1,5 @@ -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { map } from 'rxjs'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { map } from '@umbraco-cms/backoffice/external/rxjs'; import { isManifestElementNameType } from '@umbraco-cms/backoffice/extension-api'; import { ManifestTypes, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/extension-root-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/extension-root-workspace.stories.ts index 55f8ef3fbd..b202a09031 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/extension-root-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/extension-root-workspace.stories.ts @@ -1,9 +1,9 @@ -import './extension-root-workspace.element'; +import './extension-root-workspace.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbExtensionRootWorkspaceElement } from './extension-root-workspace.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbExtensionRootWorkspaceElement } from './extension-root-workspace.element'; export default { title: 'Workspaces/Extensions', diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/manifests.ts index c2bb8c2bf9..02adb59cb3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/manifests.ts @@ -8,7 +8,7 @@ const workspace: ManifestWorkspace = { type: 'workspace', alias: 'Umb.Workspace.ExtensionRoot', name: 'Extension Root Workspace', - loader: () => import('./extension-root-workspace.element'), + loader: () => import('./extension-root-workspace.element.js'), meta: { entityType: 'extension-root', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/index.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/index.ts index c16d192fcd..027b561e24 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/index.ts @@ -1,37 +1,4 @@ -import { UmbThemeContext } from './themes/theme.context'; -import { manifests as settingsSectionManifests } from './section.manifests'; -import { manifests as settingsMenuManifests } from './menu.manifests'; -import { manifests as dashboardManifests } from './dashboards/manifests'; -import { manifests as dataTypeManifests } from './data-types/manifests'; -import { manifests as relationTypeManifests } from './relation-types/manifests'; -import { manifests as extensionManifests } from './extensions/manifests'; -import { manifests as cultureManifests } from './cultures/manifests'; -import { manifests as languageManifests } from './languages/manifests'; -import { manifests as logviewerManifests } from './logviewer/manifests'; -import { - UmbAppLanguageContext, - UMB_APP_LANGUAGE_CONTEXT_TOKEN, -} from './languages/app-language-select/app-language.context'; -import { UmbContextProviderController } from '@umbraco-cms/backoffice/context-api'; -import type { UmbEntryPointOnInit } from '@umbraco-cms/backoffice/extension-api'; +import './cultures/components/index.js'; +import './languages/components/index.js'; -import './cultures/components'; -import './languages/components'; - -export const manifests = [ - ...settingsSectionManifests, - ...settingsMenuManifests, - ...dashboardManifests, - ...dataTypeManifests, - ...extensionManifests, - ...cultureManifests, - ...languageManifests, - ...logviewerManifests, - ...relationTypeManifests, -]; - -export const onInit: UmbEntryPointOnInit = (host, extensionRegistry) => { - extensionRegistry.registerMany(manifests); - new UmbContextProviderController(host, UMB_APP_LANGUAGE_CONTEXT_TOKEN, new UmbAppLanguageContext(host)); - new UmbThemeContext(host); -}; +export * from './manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language-select.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language-select.element.ts index e3be06b599..4edb3393d1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language-select.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language-select.element.ts @@ -1,11 +1,7 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { repeat } from 'lit/directives/repeat.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { UUIMenuItemEvent } from '@umbraco-ui/uui'; -import { UmbLanguageRepository } from '../repository/language.repository'; -import { UMB_APP_LANGUAGE_CONTEXT_TOKEN, UmbAppLanguageContext } from './app-language.context'; +import { UmbLanguageRepository } from '../repository/language.repository.js'; +import { UMB_APP_LANGUAGE_CONTEXT_TOKEN, UmbAppLanguageContext } from './app-language.context.js'; +import { UUITextStyles, UUIMenuItemEvent } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, state, repeat, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -120,12 +116,11 @@ export class UmbAppLanguageSelectElement extends UmbLitElement { } #toggle { - display: block; - width: 100%; + width: var(--umb-section-sidebar-width); text-align: left; background: none; border: none; - height: 70px; + height: var(--umb-header-layout-height); padding: 0 var(--uui-size-8); border-bottom: 1px solid var(--uui-color-border); font-size: 14px; @@ -138,6 +133,10 @@ export class UmbAppLanguageSelectElement extends UmbLitElement { #toggle:hover { background-color: var(--uui-color-surface-emphasis); } + + [open] uui-symbol-expand { + transform: rotate(90deg); + } `, ]; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language.context.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language.context.ts index 1573e1cf1a..a3d009acdf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language.context.ts @@ -1,4 +1,4 @@ -import { UmbLanguageRepository } from '../repository/language.repository'; +import { UmbLanguageRepository } from '../repository/language.repository.js'; import { UmbObjectState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/manifests.ts index d77683f954..f2d351b8fa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/manifests.ts @@ -5,7 +5,7 @@ const entityActions: Array<ManifestSectionSidebarApp> = [ type: 'sectionSidebarApp', alias: 'Umb.SectionSidebarItem.LanguageSelect', name: 'App Language Select Section Sidebar Item', - loader: () => import('./app-language-select.element'), + loader: () => import('./app-language-select.element.js'), weight: 900, conditions: { sections: ['Umb.Section.Content'], diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/components/index.ts index 575cd228ad..257c2b8f4a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/components/index.ts @@ -1 +1 @@ -import './input-language-picker/input-language-picker.element'; +import './input-language-picker/input-language-picker.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/components/input-language-picker/input-language-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/components/input-language-picker/input-language-picker.element.ts index 2be4babdbd..00c9757564 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/components/input-language-picker/input-language-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/components/input-language-picker/input-language-picker.element.ts @@ -1,9 +1,6 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; -import { UmbLanguagePickerContext } from './input-language-picker.context'; +import { UmbLanguagePickerContext } from './input-language-picker.context.js'; +import { css, html, ifDefined, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles, FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/components/input-language-picker/input-language-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/components/input-language-picker/input-language-picker.stories.ts index 623c58db4a..986313829b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/components/input-language-picker/input-language-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/components/input-language-picker/input-language-picker.stories.ts @@ -1,17 +1,15 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import './input-language-picker.element'; -import type { UmbInputLanguagePickerElement } from './input-language-picker.element'; +import './input-language-picker.element.js'; +import type { UmbInputLanguagePickerElement } from './input-language-picker.element.js'; const meta: Meta<UmbInputLanguagePickerElement> = { - title: 'Components/Inputs/Language Picker', - component: 'umb-input-language-picker' + title: 'Components/Inputs/Language Picker', + component: 'umb-input-language-picker', }; - + export default meta; type Story = StoryObj<UmbInputLanguagePickerElement>; - + export const Overview: Story = { - args: { - - } + args: {}, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/entity-actions/language-create-entity-action.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/entity-actions/language-create-entity-action.ts new file mode 100644 index 0000000000..908018aa52 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/entity-actions/language-create-entity-action.ts @@ -0,0 +1,15 @@ +import { UmbLanguageRepository } from '../repository/language.repository.js'; +import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; +import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; + +export class UmbLanguageCreateEntityAction extends UmbEntityActionBase<UmbLanguageRepository> { + // TODO: Could EntityActions take the manifest instead, for more flexibility? + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { + super(host, repositoryAlias, unique); + } + + // TODO: Generate the href or retrieve it from something? + async getHref() { + return 'section/settings/workspace/language/create'; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/entity-actions/manifests.ts index a2318c8353..3c6e93c7ee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/entity-actions/manifests.ts @@ -1,9 +1,9 @@ -import { LANGUAGE_REPOSITORY_ALIAS } from '../repository/manifests'; +import { LANGUAGE_REPOSITORY_ALIAS } from '../repository/manifests.js'; +import { LANGUAGE_ENTITY_TYPE, LANGUAGE_ROOT_ENTITY_TYPE } from '../index.js'; +import { UmbLanguageCreateEntityAction } from './language-create-entity-action.js'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; -const entityType = 'language'; - const entityActions: Array<ManifestEntityAction> = [ { type: 'entityAction', @@ -16,7 +16,22 @@ const entityActions: Array<ManifestEntityAction> = [ api: UmbDeleteEntityAction, }, conditions: { - entityTypes: [entityType], + entityTypes: [LANGUAGE_ENTITY_TYPE], + }, + }, + { + type: 'entityAction', + alias: 'Umb.EntityAction.Language.Create', + name: 'Create Language Entity Action', + weight: 900, + meta: { + icon: 'umb:add', + label: 'Create', + repositoryAlias: LANGUAGE_REPOSITORY_ALIAS, + api: UmbLanguageCreateEntityAction, + }, + conditions: { + entityTypes: [LANGUAGE_ENTITY_TYPE, LANGUAGE_ROOT_ENTITY_TYPE], }, }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/index.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/index.ts new file mode 100644 index 0000000000..a990356c4d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/index.ts @@ -0,0 +1,4 @@ +import './components/index.js'; + +export const LANGUAGE_ROOT_ENTITY_TYPE = 'language-root'; +export const LANGUAGE_ENTITY_TYPE = 'language'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/manifests.ts index 92434c12ef..0678c3a24f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/manifests.ts @@ -1,9 +1,9 @@ -import { manifests as repositoryManifests } from './repository/manifests'; -import { manifests as treeManifests } from './menu-item/manifests'; -import { manifests as entityActions } from './entity-actions/manifests'; -import { manifests as workspaceManifests } from './workspace/manifests'; -import { manifests as appLanguageSelect } from './app-language-select/manifests'; -import { manifests as modalManifests } from './modals/manifests'; +import { manifests as repositoryManifests } from './repository/manifests.js'; +import { manifests as treeManifests } from './menu-item/manifests.js'; +import { manifests as entityActions } from './entity-actions/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; +import { manifests as appLanguageSelect } from './app-language-select/manifests.js'; +import { manifests as modalManifests } from './modals/manifests.js'; export const manifests = [ ...repositoryManifests, diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/modals/language-picker/language-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/modals/language-picker/language-picker-modal.element.ts index cbcff66eff..bf848d06ad 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/modals/language-picker/language-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/modals/language-picker/language-picker-modal.element.ts @@ -1,8 +1,6 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { repeat } from 'lit/directives/repeat.js'; -import { UmbLanguageRepository } from '../../repository/language.repository'; +import { UmbLanguageRepository } from '../../repository/language.repository.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, state , repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; import { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbSelectionManagerBase } from '@umbraco-cms/backoffice/utils'; @@ -57,7 +55,7 @@ export class UmbLanguagePickerModalElement extends UmbModalBaseElement< label=${item.name ?? ''} selectable @selected=${() => this.#selectionManager.select(item.isoCode!)} - @unselected=${() => this.#selectionManager.deselect(item.isoCode!)} + @deselected=${() => this.#selectionManager.deselect(item.isoCode!)} ?selected=${this.#selectionManager.isSelected(item.isoCode!)}> <uui-icon slot="icon" name="umb:globe"></uui-icon> </uui-menu-item> diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/modals/manifests.ts index d5e9a114dc..da1c68abcd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/modals/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/modals/manifests.ts @@ -5,7 +5,7 @@ const modals: Array<ManifestModal> = [ type: 'modal', alias: 'Umb.Modal.LanguagePicker', name: 'Language Picker Modal', - loader: () => import('./language-picker/language-picker-modal.element'), + loader: () => import('./language-picker/language-picker-modal.element.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.repository.ts index 8aeb73dbb7..3a88479f50 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.repository.ts @@ -1,7 +1,7 @@ -import { UmbLanguageServerDataSource } from './sources/language.server.data'; -import { UmbLanguageStore, UMB_LANGUAGE_STORE_CONTEXT_TOKEN } from './language.store'; -import { UmbLanguageItemServerDataSource } from './sources/language-item.server.data'; -import { UMB_LANGUAGE_ITEM_STORE_CONTEXT_TOKEN, UmbLanguageItemStore } from './language-item.store'; +import { UmbLanguageServerDataSource } from './sources/language.server.data.js'; +import { UmbLanguageStore, UMB_LANGUAGE_STORE_CONTEXT_TOKEN } from './language.store.js'; +import { UmbLanguageItemServerDataSource } from './sources/language-item.server.data.js'; +import { UMB_LANGUAGE_ITEM_STORE_CONTEXT_TOKEN, UmbLanguageItemStore } from './language-item.store.js'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/manifests.ts index fd718d2c40..610ec86096 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/manifests.ts @@ -1,6 +1,6 @@ -import { UmbLanguageRepository } from '../repository/language.repository'; -import { UmbLanguageStore } from './language.store'; -import { UmbLanguageItemStore } from './language-item.store'; +import { UmbLanguageRepository } from '../repository/language.repository.js'; +import { UmbLanguageStore } from './language.store.js'; +import { UmbLanguageItemStore } from './language-item.store.js'; import type { ManifestStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const LANGUAGE_REPOSITORY_ALIAS = 'Umb.Repository.Language'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/components/language-root-table-delete-column-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/components/language-root-table-delete-column-layout.element.ts index f583263d06..3f7f1de0f9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/components/language-root-table-delete-column-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/components/language-root-table-delete-column-layout.element.ts @@ -1,7 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html, nothing } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing , customElement, property, state , ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/components/language-root-table-name-column-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/components/language-root-table-name-column-layout.element.ts index ea3b3af485..7e855437be 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/components/language-root-table-name-column-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/components/language-root-table-name-column-layout.element.ts @@ -1,11 +1,8 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html, LitElement, nothing } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, LitElement, nothing , customElement, property } from '@umbraco-cms/backoffice/external/lit'; @customElement('umb-language-root-table-name-column-layout') export class UmbLanguageRootTableNameColumnLayoutElement extends LitElement { - - @property({ attribute: false }) value!: { isoCode: string; name: string }; @@ -14,7 +11,7 @@ export class UmbLanguageRootTableNameColumnLayoutElement extends LitElement { return html`<a href=${'section/settings/workspace/language/edit/' + this.value.isoCode}>${this.value.name}</a>`; } - + static styles = [UUITextStyles, css``]; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/language-root-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/language-root-workspace.element.ts index fcd8ff1ad0..fe777c3ea8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/language-root-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/language-root-workspace.element.ts @@ -1,13 +1,12 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbLanguageRepository } from '../../repository/language.repository'; -import { UmbTableColumn, UmbTableConfig, UmbTableItem } from '@umbraco-cms/backoffice/core/components'; +import { UmbLanguageRepository } from '../../repository/language.repository.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UmbTableColumn, UmbTableConfig, UmbTableItem } from '@umbraco-cms/backoffice/components'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import './components/language-root-table-delete-column-layout.element'; -import './components/language-root-table-name-column-layout.element'; +import './components/language-root-table-delete-column-layout.element.js'; +import './components/language-root-table-name-column-layout.element.js'; @customElement('umb-language-root-workspace') export class UmbLanguageRootWorkspaceElement extends UmbLitElement { @@ -37,7 +36,7 @@ export class UmbLanguageRootWorkspaceElement extends UmbLitElement { }, { name: 'Fallback', - alias: 'fallBackLanguage', + alias: 'fallbackLanguage', }, { name: '', @@ -91,7 +90,7 @@ export class UmbLanguageRootWorkspaceElement extends UmbLitElement { value: language.isMandatory, }, { - columnAlias: 'fallBackLanguage', + columnAlias: 'fallbackLanguage', value: languages.find((x) => x.isoCode === language.fallbackIsoCode)?.name, }, { @@ -103,6 +102,7 @@ export class UmbLanguageRootWorkspaceElement extends UmbLitElement { }); } + // TODO: Generate the href or retrieve it from something? render() { return html` <umb-body-layout headline="Languages"> diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/manifests.ts index c0de618004..ce8e2bc4ad 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/manifests.ts @@ -8,7 +8,7 @@ const workspace: ManifestWorkspace = { type: 'workspace', alias: 'Umb.Workspace.LanguageRoot', name: 'Language Root Workspace', - loader: () => import('./language-root-workspace.element'), + loader: () => import('./language-root-workspace.element.js'), meta: { entityType: 'language-root', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace-editor.element.ts similarity index 79% rename from src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace-edit.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace-editor.element.ts index 1f804883f3..a46b1d968e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace-editor.element.ts @@ -1,15 +1,11 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { UUIInputElement, UUIInputEvent } from '@umbraco-ui/uui'; -import { UmbLanguageWorkspaceContext } from './language-workspace.context'; +import { UmbLanguageWorkspaceContext } from './language-workspace.context.js'; +import { UUITextStyles, UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; - -@customElement('umb-language-workspace-edit') -export class UmbLanguageWorkspaceEditElement extends UmbLitElement { +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; +@customElement('umb-language-workspace-editor') +export class UmbLanguageWorkspaceEditorElement extends UmbLitElement { #workspaceContext?: UmbLanguageWorkspaceContext; @state() @@ -60,7 +56,7 @@ export class UmbLanguageWorkspaceEditElement extends UmbLitElement { value=${ifDefined(this._language?.name)} @input="${this.#handleInput}"></uui-input>`} </div> - <div slot="footer" id="footer"> + <div slot="footer-info" id="footer-into"> <a href="section/settings/workspace/language-root">Languages</a> / ${this._isNew ? 'Create' : this._language?.name} </div> @@ -86,7 +82,7 @@ export class UmbLanguageWorkspaceEditElement extends UmbLitElement { align-items: center; } - #footer { + #footer-into { padding: 0 var(--uui-size-layout-1); } @@ -97,10 +93,10 @@ export class UmbLanguageWorkspaceEditElement extends UmbLitElement { ]; } -export default UmbLanguageWorkspaceEditElement; +export default UmbLanguageWorkspaceEditorElement; declare global { interface HTMLElementTagNameMap { - 'umb-language-workspace-edit': UmbLanguageWorkspaceEditElement; + 'umb-language-workspace-editor': UmbLanguageWorkspaceEditorElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace.context.ts index 4090748726..f5c2169f92 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace.context.ts @@ -1,4 +1,4 @@ -import { UmbLanguageRepository } from '../../repository/language.repository'; +import { UmbLanguageRepository } from '../../repository/language.repository.js'; import { UmbEntityWorkspaceContextInterface, UmbWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; import { ApiError, LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace.element.ts index 04adbc7341..a5fb89a4d1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace.element.ts @@ -1,13 +1,11 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbLanguageWorkspaceContext } from './language-workspace.context'; -import type { UmbRoute } from '@umbraco-cms/backoffice/router'; -import { UmbRouterSlotInitEvent } from '@umbraco-cms/internal/router'; +import { UmbLanguageWorkspaceContext } from './language-workspace.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import type { UmbRoute, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; +import { generateRoutePathBuilder } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import './language-workspace-edit.element'; -import { generateRoutePathBuilder } from '@umbraco-cms/backoffice/router'; +import './language-workspace-editor.element.js'; @customElement('umb-language-workspace') export class UmbLanguageWorkspaceElement extends UmbLitElement { @@ -24,7 +22,7 @@ export class UmbLanguageWorkspaceElement extends UmbLitElement { if (this.#editorElement) { return this.#editorElement; } - this.#editorElement = new (await import('./language-workspace-edit.element')).default(); + this.#editorElement = new (await import('./language-workspace-editor.element.js')).default(); return this.#editorElement; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/manifests.ts index 0ad7cb6fdc..bb5bccd4e8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/manifests.ts @@ -9,7 +9,7 @@ const workspace: ManifestWorkspace = { type: 'workspace', alias: 'Umb.Workspace.Language', name: 'Language Workspace', - loader: () => import('./language-workspace.element'), + loader: () => import('./language-workspace.element.js'), meta: { entityType: 'language', }, @@ -20,7 +20,7 @@ const workspaceViews: Array<ManifestWorkspaceEditorView> = [ type: 'workspaceEditorView', alias: 'Umb.WorkspaceView.Language.Details', name: 'Language Workspace Details View', - loader: () => import('./views/details/language-details-workspace-view.element'), + loader: () => import('./views/details/language-details-workspace-view.element.js'), weight: 90, meta: { label: 'Details', diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/views/details/language-details-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/views/details/language-details-workspace-view.element.ts index 06c87f0e8a..9a3ce02b01 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/views/details/language-details-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/views/details/language-details-workspace-view.element.ts @@ -1,16 +1,13 @@ -import { UUIBooleanInputEvent, UUIToggleElement } from '@umbraco-ui/uui'; -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html, nothing } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { UmbLanguageWorkspaceContext } from '../../language-workspace.context'; +import { UmbLanguageWorkspaceContext } from '../../language-workspace.context.js'; +import type { UmbInputCultureSelectElement } from '../../../../../cultures/components/input-culture-select/input-culture-select.element.js'; +import type { UmbInputLanguagePickerElement } from '../../../../components/input-language-picker/input-language-picker.element.js'; +import { UUIBooleanInputEvent, UUIToggleElement , UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing , customElement, state , ifDefined } from '@umbraco-cms/backoffice/external/lit'; // TODO: set up import alias for these modules -import type { UmbInputCultureSelectElement } from '../../../../../cultures/components/input-culture-select/input-culture-select.element'; -import type { UmbInputLanguagePickerElement } from '../../../../components/input-language-picker/input-language-picker.element'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/events'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UmbWorkspaceEditorViewExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-language-details-workspace-view') diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/manifests.ts index c134e75372..958dd64504 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/manifests.ts @@ -1,4 +1,4 @@ -import { manifests as languageManifests } from './language/manifests'; -import { manifests as languageRootManifests } from './language-root/manifests'; +import { manifests as languageManifests } from './language/manifests.js'; +import { manifests as languageRootManifests } from './language-root/manifests.js'; export const manifests = [...languageManifests, ...languageRootManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/components/donut-chart/donut-chart.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/components/donut-chart/donut-chart.element.ts index 0ed41fd36d..a7ca90f98e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/components/donut-chart/donut-chart.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/components/donut-chart/donut-chart.element.ts @@ -1,8 +1,7 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html, LitElement, svg } from 'lit'; -import { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'; -import { clamp } from 'lodash-es'; -import { UmbDonutSliceElement } from './donut-slice.element'; +import { UmbDonutSliceElement } from './donut-slice.element.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, LitElement, svg , customElement, property, query, queryAssignedElements, state } from '@umbraco-cms/backoffice/external/lit'; +import { clamp } from '@umbraco-cms/backoffice/external/lodash'; export interface Circle { color: string; @@ -30,8 +29,6 @@ export class UmbDonutChartElement extends LitElement { return percent * 3.6; } - - /** * Circle radius in pixels * @@ -269,7 +266,7 @@ export class UmbDonutChartElement extends LitElement { </div> <slot @slotchange=${this.#printCircles} @slice-update=${this.#printCircles}></slot>`; } - + static styles = [ UUITextStyles, css` diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/components/donut-chart/donut-chart.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/components/donut-chart/donut-chart.stories.ts index 94a935efb6..61351f9134 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/components/donut-chart/donut-chart.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/components/donut-chart/donut-chart.stories.ts @@ -1,8 +1,8 @@ -import './donut-slice.element'; -import './donut-chart.element'; +import './donut-slice.element.js'; +import './donut-chart.element.js'; import { Meta } from '@storybook/web-components'; -import { html } from 'lit'; +import { html } from '@umbraco-cms/backoffice/external/lit'; export default { title: 'Components/Donut chart', diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/components/donut-chart/donut-slice.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/components/donut-chart/donut-slice.element.ts index b485803986..415b50223b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/components/donut-chart/donut-slice.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/components/donut-chart/donut-slice.element.ts @@ -1,5 +1,4 @@ -import { LitElement } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; +import { LitElement , customElement, property } from '@umbraco-cms/backoffice/external/lit'; /** * This component is used to display a single slice of a donut chart. It only makes sense insice the donut chart * diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/components/donut-chart/index.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/components/donut-chart/index.ts index b01b77e83f..d2f7e373c1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/components/donut-chart/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/components/donut-chart/index.ts @@ -1,2 +1,2 @@ -export * from './donut-chart.element'; -export * from './donut-slice.element'; +export * from './donut-chart.element.js'; +export * from './donut-slice.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/components/index.ts index 621c86386a..0faf257d88 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/components/index.ts @@ -1 +1 @@ -import './donut-chart'; +import './donut-chart/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/manifests.ts index 767c99acee..05be6d3978 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/manifests.ts @@ -1,4 +1,4 @@ -import { manifests as treeManifests } from './menu-item/manifests'; -import { manifests as workspaceManifests } from './workspace/manifests'; +import { manifests as treeManifests } from './menu-item/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; export const manifests = [...treeManifests, ...workspaceManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/repository/log-viewer.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/repository/log-viewer.repository.ts index 2c4e32caeb..eec26480d6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/repository/log-viewer.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/repository/log-viewer.repository.ts @@ -1,4 +1,4 @@ -import { UmbLogMessagesServerDataSource, UmbLogSearchesServerDataSource } from './sources/log-viewer.server.data'; +import { UmbLogMessagesServerDataSource, UmbLogSearchesServerDataSource } from './sources/log-viewer.server.data.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/repository/sources/log-viewer.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/repository/sources/log-viewer.server.data.ts index c4ba64ab7b..5f130feda6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/repository/sources/log-viewer.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/repository/sources/log-viewer.server.data.ts @@ -1,4 +1,4 @@ -import { LogMessagesDataSource, LogSearchDataSource } from '.'; +import { LogMessagesDataSource, LogSearchDataSource } from './index.js'; import { DirectionModel, LogLevelModel, diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/components/index.ts index e204c32424..cb7798c7a6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/components/index.ts @@ -1,3 +1,3 @@ -export * from './log-viewer-date-range-selector.element'; -export * from './log-viewer-level-tag.element'; -export * from './log-viewer-to-many-logs-warning.element'; \ No newline at end of file +export * from './log-viewer-date-range-selector.element.js'; +export * from './log-viewer-level-tag.element.js'; +export * from './log-viewer-to-many-logs-warning.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/components/log-viewer-date-range-selector.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/components/log-viewer-date-range-selector.element.ts index 10ca4d2af0..f73a2de4c9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/components/log-viewer-date-range-selector.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/components/log-viewer-date-range-selector.element.ts @@ -1,11 +1,10 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, property, queryAll, state } from 'lit/decorators.js'; import { LogViewerDateRange, UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, -} from '../../logviewer.context'; +} from '../../logviewer.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, property, queryAll, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { query as getQuery, path, toQueryString } from '@umbraco-cms/backoffice/router'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/components/log-viewer-level-tag.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/components/log-viewer-level-tag.element.ts index 863d4ce1ad..07b147586b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/components/log-viewer-level-tag.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/components/log-viewer-level-tag.element.ts @@ -1,8 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html, LitElement } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { InterfaceColor, InterfaceLook } from '@umbraco-ui/uui-base/lib/types'; +import { UUITextStyles, InterfaceColor, InterfaceLook } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, LitElement, ifDefined, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { LogLevelModel } from '@umbraco-cms/backoffice/backend-api'; interface LevelMapStyles { @@ -13,8 +10,6 @@ interface LevelMapStyles { @customElement('umb-log-viewer-level-tag') export class UmbLogViewerLevelTagElement extends LitElement { - - @property() level?: LogLevelModel; @@ -41,7 +36,7 @@ export class UmbLogViewerLevelTagElement extends LitElement { >${this.level}<slot></slot ></uui-tag>`; } - + static styles = [UUITextStyles, css``]; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/components/log-viewer-to-many-logs-warning.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/components/log-viewer-to-many-logs-warning.element.ts index d394d01513..5fad56ca6e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/components/log-viewer-to-many-logs-warning.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/components/log-viewer-to-many-logs-warning.element.ts @@ -1,10 +1,7 @@ -import { css, html, LitElement } from 'lit'; -import { customElement } from 'lit/decorators.js'; +import { css, html, LitElement , customElement } from '@umbraco-cms/backoffice/external/lit'; @customElement('umb-log-viewer-to-many-logs-warning') export class UmbLogViewerToManyLogsWarningElement extends LitElement { - - render() { return html`<uui-box id="to-many-logs-warning"> <h3>Unable to view logs</h3> @@ -12,7 +9,7 @@ export class UmbLogViewerToManyLogsWarningElement extends LitElement { <p>If you need to view the log files, narrow your date range or try opening them manually.</p> </uui-box>`; } - + static styles = [ css` :host { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/logviewer-root-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/logviewer-root-workspace.element.ts index 5444a96174..a07c59237e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/logviewer-root-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/logviewer-root-workspace.element.ts @@ -1,10 +1,16 @@ -import './components'; -import { map } from 'rxjs'; -import { PropertyValueMap, css, html, nothing } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { repeat } from 'lit/directives/repeat.js'; -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../logviewer.context'; +import './components/index.js'; +import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../logviewer.context.js'; +import { map } from '@umbraco-cms/backoffice/external/rxjs'; +import { + PropertyValueMap, + css, + html, + nothing, + customElement, + state, + repeat, +} from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { createExtensionElement } from '@umbraco-cms/backoffice/extension-api'; import { @@ -12,9 +18,8 @@ import { ManifestWorkspaceViewCollection, umbExtensionsRegistry, } from '@umbraco-cms/backoffice/extension-registry'; -import type { UmbRouterSlotInitEvent, UmbRouterSlotChangeEvent } from '@umbraco-cms/internal/router'; -import type { UmbRoute } from '@umbraco-cms/backoffice/router'; - +import type { UmbRouterSlotInitEvent, UmbRouterSlotChangeEvent, UmbRoute } from '@umbraco-cms/backoffice/router'; +import '../../components/index.js'; //TODO make uui-input accept min and max values @customElement('umb-logviewer-workspace') export class UmbLogViewerWorkspaceElement extends UmbLitElement { @@ -93,7 +98,7 @@ export class UmbLogViewerWorkspaceElement extends UmbLitElement { }); this._routes.push({ - path: '**', + path: '', redirectTo: `${this._workspaceViews[0].meta.pathname}`, }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/manifests.ts index d91c07ecb0..cc0e4f775a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer-root/manifests.ts @@ -11,7 +11,7 @@ const workspace: ManifestWorkspace = { type: 'workspace', alias: workspaceAlias, name: 'LogViewer Root Workspace', - loader: () => import('./logviewer-root-workspace.element'), + loader: () => import('./logviewer-root-workspace.element.js'), meta: { entityType: 'logviewer', }, @@ -22,7 +22,7 @@ const workspaceViews: Array<ManifestWorkspaceEditorView> = [ type: 'workspaceEditorView', alias: 'Umb.WorkspaceView.Logviewer.Overview', name: 'LogViewer Root Workspace Overview View', - loader: () => import('../views/overview/index'), + loader: () => import('../views/overview/index.js'), weight: 300, meta: { label: 'Overview', @@ -37,7 +37,7 @@ const workspaceViews: Array<ManifestWorkspaceEditorView> = [ type: 'workspaceEditorView', alias: 'Umb.WorkspaceView.Logviewer.Search', name: 'LogViewer Root Workspace Search View', - loader: () => import('../views/search/index'), + loader: () => import('../views/search/index.js'), weight: 200, meta: { label: 'Search', @@ -57,7 +57,7 @@ const modals: Array<ManifestModal> = [ type: 'modal', alias: 'Umb.Modal.LogViewer.SaveSearch', name: 'Saved Searches Modal', - loader: () => import('../views/search/components/log-viewer-search-input-modal.element'), + loader: () => import('../views/search/components/log-viewer-search-input-modal.element.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer.context.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer.context.ts index 32bfad7962..985939edef 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/logviewer.context.ts @@ -1,4 +1,4 @@ -import { UmbLogViewerRepository } from '../repository/log-viewer.repository'; +import { UmbLogViewerRepository } from '../repository/log-viewer.repository.js'; import { UmbBasicState, UmbArrayState, diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/manifests.ts index 5a8c3cc38d..d56752f4bd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/manifests.ts @@ -1,4 +1,3 @@ -import { manifests as logviewerRootManifests } from './logviewer-root/manifests'; - +import { manifests as logviewerRootManifests } from './logviewer-root/manifests.js'; export const manifests = [...logviewerRootManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/components/index.ts index 926372cc6e..6b4b0ab7e4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/components/index.ts @@ -1,4 +1,4 @@ -export * from './log-viewer-saved-searches-overview.element'; -export * from './log-viewer-message-templates-overview.element'; -export * from './log-viewer-log-types-chart.element'; -export * from './log-viewer-log-level-overview.element'; \ No newline at end of file +export * from './log-viewer-saved-searches-overview.element.js'; +export * from './log-viewer-message-templates-overview.element.js'; +export * from './log-viewer-log-types-chart.element.js'; +export * from './log-viewer-log-level-overview.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/components/log-viewer-log-level-overview.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/components/log-viewer-log-level-overview.element.ts index fecb77768c..239d1f2e6e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/components/log-viewer-log-level-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/components/log-viewer-log-level-overview.element.ts @@ -1,6 +1,5 @@ -import { html, nothing } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context'; +import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context.js'; +import { html, nothing , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { LoggerResponseModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/components/log-viewer-log-types-chart.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/components/log-viewer-log-types-chart.element.ts index aa6fafbcdc..a6334bb03d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/components/log-viewer-log-types-chart.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/components/log-viewer-log-types-chart.element.ts @@ -1,6 +1,5 @@ -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context'; +import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context.js'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { LogLevelCountsReponseModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/components/log-viewer-message-templates-overview.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/components/log-viewer-message-templates-overview.element.ts index c33f382059..23727c3197 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/components/log-viewer-message-templates-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/components/log-viewer-message-templates-overview.element.ts @@ -1,7 +1,6 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context'; +import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { PagedLogTemplateResponseModel, SavedLogSearchResponseModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/components/log-viewer-saved-searches-overview.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/components/log-viewer-saved-searches-overview.element.ts index b093239de7..9029d16bdf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/components/log-viewer-saved-searches-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/components/log-viewer-saved-searches-overview.element.ts @@ -1,7 +1,6 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context'; +import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { SavedLogSearchResponseModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/index.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/index.ts index cf7acfb3b9..6ba009fbf1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/index.ts @@ -1,4 +1,4 @@ -import './components'; -import { UmbLogViewerOverviewViewElement } from './log-overview-view.element'; +import './components/index.js'; +import { UmbLogViewerOverviewViewElement } from './log-overview-view.element.js'; export default UmbLogViewerOverviewViewElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/log-overview-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/log-overview-view.element.ts index 2d01b009de..410352aa41 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/log-overview-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/overview/log-overview-view.element.ts @@ -1,6 +1,5 @@ -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../logviewer.context'; +import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../logviewer.context.js'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { LogLevelCountsReponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/index.ts index 2157e5df73..74b566249e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/index.ts @@ -1,5 +1,5 @@ -export * from './log-viewer-log-level-filter-menu.element'; -export * from './log-viewer-message.element'; -export * from './log-viewer-messages-list.element'; -export * from './log-viewer-polling-button.element'; -export * from './log-viewer-search-input.element'; +export * from './log-viewer-log-level-filter-menu.element.js'; +export * from './log-viewer-message.element.js'; +export * from './log-viewer-messages-list.element.js'; +export * from './log-viewer-polling-button.element.js'; +export * from './log-viewer-search-input.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-log-level-filter-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-log-level-filter-menu.element.ts index c28a52370c..a9dcf950b2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-log-level-filter-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-log-level-filter-menu.element.ts @@ -1,9 +1,7 @@ -import { UUICheckboxElement } from '@umbraco-ui/uui'; -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, queryAll, state } from 'lit/decorators.js'; -import { debounce } from 'lodash-es'; -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context'; +import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context.js'; +import { UUICheckboxElement , UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, queryAll, state } from '@umbraco-cms/backoffice/external/lit'; +import { debounce } from '@umbraco-cms/backoffice/external/lodash'; import { LogLevelModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { path, query, toQueryString } from '@umbraco-cms/backoffice/router'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-message.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-message.element.ts index 3841324b7a..f822934e65 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-message.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-message.element.ts @@ -1,7 +1,6 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html, PropertyValueMap } from 'lit'; -import { customElement, property, query, state } from 'lit/decorators.js'; -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context'; +import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, PropertyValueMap , customElement, property, query, state } from '@umbraco-cms/backoffice/external/lit'; import { LogLevelModel, LogMessagePropertyPresentationModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { query as getQuery, toQueryString } from '@umbraco-cms/backoffice/router'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-messages-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-messages-list.element.ts index 6bc5e0fba8..7c2417e67b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-messages-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-messages-list.element.ts @@ -1,8 +1,6 @@ -import { UUIScrollContainerElement, UUIPaginationElement } from '@umbraco-ui/uui'; -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, query, state } from 'lit/decorators.js'; -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context'; +import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context.js'; +import { UUIScrollContainerElement, UUIPaginationElement , UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { DirectionModel, LogMessageResponseModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-polling-button.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-polling-button.element.ts index b443fba5a6..7799833a82 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-polling-button.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-polling-button.element.ts @@ -1,13 +1,11 @@ -import { UUIPopoverElement, UUISymbolExpandElement } from '@umbraco-ui/uui'; -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, query, state } from 'lit/decorators.js'; import { PoolingCOnfig, PoolingInterval, UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, -} from '../../../logviewer.context'; +} from '../../../logviewer.context.js'; +import { UUIPopoverElement, UUISymbolExpandElement , UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-log-viewer-polling-button') diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-search-input-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-search-input-modal.element.ts index 0eb57020d1..e19cf76c42 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-search-input-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-search-input-modal.element.ts @@ -1,7 +1,5 @@ -import { html, css } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, query, state } from 'lit/decorators.js'; -import { UUIInputElement } from '@umbraco-ui/uui'; +import { html, css , customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles , UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; import { SavedLogSearchPresenationBaseModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-search-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-search-input.element.ts index 7d867c4c7e..c445fc2c65 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-search-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/components/log-viewer-search-input.element.ts @@ -1,9 +1,7 @@ -import { UUIButtonElement, UUIInputElement, UUIPopoverElement, UUISymbolExpandElement } from '@umbraco-ui/uui'; -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, query, state } from 'lit/decorators.js'; -import { Subject, debounceTime, tap } from 'rxjs'; -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context'; +import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context.js'; +import { UUIButtonElement, UUIInputElement, UUIPopoverElement, UUISymbolExpandElement , UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; +import { Subject, debounceTime, tap } from '@umbraco-cms/backoffice/external/rxjs'; import { SavedLogSearchResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { query as getQuery, path, toQueryString } from '@umbraco-cms/backoffice/router'; @@ -14,7 +12,7 @@ import { UmbModalToken, } from '@umbraco-cms/backoffice/modal'; -import './log-viewer-search-input-modal.element'; +import './log-viewer-search-input-modal.element.js'; export interface UmbContextSaveSearchModalData { query: string; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/index.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/index.ts index 4760a61f5a..b25aea84a9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/index.ts @@ -1,4 +1,4 @@ -import './components'; -import { UmbLogViewerSearchViewElement } from './log-search-view.element'; +import './components/index.js'; +import { UmbLogViewerSearchViewElement } from './log-search-view.element.js'; export default UmbLogViewerSearchViewElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/log-search-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/log-search-view.element.ts index 7258faf17c..511a94a6cf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/log-search-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/logviewer/workspace/views/search/log-search-view.element.ts @@ -1,7 +1,6 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../logviewer.context'; +import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../logviewer.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/manifests.ts new file mode 100644 index 0000000000..3aee37b9e4 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/manifests.ts @@ -0,0 +1,21 @@ +import { manifests as settingsSectionManifests } from './section.manifests.js'; +import { manifests as settingsMenuManifests } from './menu.manifests.js'; +import { manifests as dashboardManifests } from './dashboards/manifests.js'; +import { manifests as dataTypeManifests } from './data-types/manifests.js'; +import { manifests as relationTypeManifests } from './relation-types/manifests.js'; +import { manifests as extensionManifests } from './extensions/manifests.js'; +import { manifests as cultureManifests } from './cultures/manifests.js'; +import { manifests as languageManifests } from './languages/manifests.js'; +import { manifests as logviewerManifests } from './logviewer/manifests.js'; + +export const manifests = [ + ...settingsSectionManifests, + ...settingsMenuManifests, + ...dashboardManifests, + ...dataTypeManifests, + ...extensionManifests, + ...cultureManifests, + ...languageManifests, + ...logviewerManifests, + ...relationTypeManifests, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/package-entry-point.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/package-entry-point.ts new file mode 100644 index 0000000000..0391778271 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/package-entry-point.ts @@ -0,0 +1,14 @@ +import { + UMB_APP_LANGUAGE_CONTEXT_TOKEN, + UmbAppLanguageContext, +} from './languages/app-language-select/app-language.context.js'; +import { UmbThemeContext } from './themes/theme.context.js'; +import { manifests } from './manifests.js'; +import type { UmbEntryPointOnInit } from '@umbraco-cms/backoffice/extension-api'; +import { UmbContextProviderController } from '@umbraco-cms/backoffice/context-api'; + +export const onInit: UmbEntryPointOnInit = (host, extensionRegistry) => { + extensionRegistry.registerMany(manifests); + new UmbContextProviderController(host, UMB_APP_LANGUAGE_CONTEXT_TOKEN, new UmbAppLanguageContext(host)); + new UmbThemeContext(host); +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/manifests.ts index ddaa4babdc..ebc952eb39 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/manifests.ts @@ -1,6 +1,6 @@ -import { manifests as repositoryManifests } from './repository/manifests'; -import { manifests as menuItemManifests } from './menu-item/manifests'; -import { manifests as treeManifests } from './tree/manifests'; -import { manifests as workspaceManifests } from './workspace/manifests'; +import { manifests as repositoryManifests } from './repository/manifests.js'; +import { manifests as menuItemManifests } from './menu-item/manifests.js'; +import { manifests as treeManifests } from './tree/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; export const manifests = [...repositoryManifests, ...menuItemManifests, ...treeManifests, ...workspaceManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/repository/manifests.ts index fd72f89840..c003396158 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/repository/manifests.ts @@ -1,6 +1,6 @@ -import { UmbRelationTypeRepository } from '../repository/relation-type.repository'; -import { UmbRelationTypeStore } from './relation-type.store'; -import { UmbRelationTypeTreeStore } from './relation-type.tree.store'; +import { UmbRelationTypeRepository } from '../repository/relation-type.repository.js'; +import { UmbRelationTypeStore } from './relation-type.store.js'; +import { UmbRelationTypeTreeStore } from './relation-type.tree.store.js'; import { ManifestStore, ManifestTreeStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const RELATION_TYPE_REPOSITORY_ALIAS = 'Umb.Repository.RelationType'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/repository/relation-type.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/repository/relation-type.repository.ts index 92276795c9..a2e840e157 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/repository/relation-type.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/repository/relation-type.repository.ts @@ -1,8 +1,8 @@ -import { UmbRelationTypeTreeStore, UMB_RELATION_TYPE_TREE_STORE_CONTEXT_TOKEN } from './relation-type.tree.store'; -import { UmbRelationTypeServerDataSource } from './sources/relation-type.server.data'; -import { UmbRelationTypeStore, UMB_RELATION_TYPE_STORE_CONTEXT_TOKEN } from './relation-type.store'; -import { UmbRelationTypeTreeServerDataSource } from './sources/relation-type.tree.server.data'; -import { UmbRelationTypeTreeDataSource } from './sources'; +import { UmbRelationTypeTreeStore, UMB_RELATION_TYPE_TREE_STORE_CONTEXT_TOKEN } from './relation-type.tree.store.js'; +import { UmbRelationTypeServerDataSource } from './sources/relation-type.server.data.js'; +import { UmbRelationTypeStore, UMB_RELATION_TYPE_STORE_CONTEXT_TOKEN } from './relation-type.store.js'; +import { UmbRelationTypeTreeServerDataSource } from './sources/relation-type.tree.server.data.js'; +import { UmbRelationTypeTreeDataSource } from './sources/index.js'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/repository/sources/relation-type.tree.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/repository/sources/relation-type.tree.server.data.ts index 1e7a94f801..3fb4de4f3f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/repository/sources/relation-type.tree.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/repository/sources/relation-type.tree.server.data.ts @@ -1,4 +1,4 @@ -import type { UmbRelationTypeTreeDataSource } from '.'; +import type { UmbRelationTypeTreeDataSource } from './index.js'; import { RelationTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/tree/manifests.ts index fde30ddbd8..e6c952fc8a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/tree/manifests.ts @@ -1,4 +1,4 @@ -import { RELATION_TYPE_REPOSITORY_ALIAS } from '../repository/manifests'; +import { RELATION_TYPE_REPOSITORY_ALIAS } from '../repository/manifests.js'; import type { ManifestTree, ManifestTreeItem } from '@umbraco-cms/backoffice/extension-registry'; const tree: ManifestTree = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/manifests.ts index 6109f206a4..967a577571 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/manifests.ts @@ -9,7 +9,7 @@ const workspace: ManifestWorkspace = { type: 'workspace', alias: 'Umb.Workspace.RelationType', name: 'Relation Type Workspace', - loader: () => import('./relation-type-workspace.element'), + loader: () => import('./relation-type-workspace.element.js'), meta: { entityType: 'relation-type', }, @@ -20,7 +20,7 @@ const workspaceViews: Array<ManifestWorkspaceEditorView> = [ type: 'workspaceEditorView', alias: 'Umb.WorkspaceView.RelationType.RelationType', name: 'Relation Type Workspace RelationType View', - loader: () => import('./views/relation-type/relation-type-workspace-view-relation-type.element'), + loader: () => import('./views/relation-type/relation-type-workspace-view-relation-type.element.js'), weight: 20, meta: { label: 'RelationType', @@ -35,7 +35,7 @@ const workspaceViews: Array<ManifestWorkspaceEditorView> = [ type: 'workspaceEditorView', alias: 'Umb.WorkspaceView.RelationType.Relation', name: 'Relation Type Workspace Relation View', - loader: () => import('./views/relation/workspace-view-relation-type-relation.element'), + loader: () => import('./views/relation/workspace-view-relation-type-relation.element.js'), weight: 10, meta: { label: 'Relation', diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace-editor.element.ts similarity index 77% rename from src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace-edit.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace-editor.element.ts index 0bb2af6019..dbc57311d9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace-editor.element.ts @@ -1,18 +1,15 @@ -import { UUIInputElement, UUIInputEvent } from '@umbraco-ui/uui'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbRelationTypeWorkspaceContext } from './relation-type-workspace.context'; +import { UmbRelationTypeWorkspaceContext } from './relation-type-workspace.context.js'; +import { UUIInputElement, UUIInputEvent, UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { RelationTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; - +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; /** - * @element umb-relation-type-workspace-edit-element + * @element umb-relation-type-workspace-editor * @description - Element for displaying a Relation Type Workspace */ -@customElement('umb-relation-type-workspace-edit-element') -export class UmbRelationTypeWorkspaceEditElement extends UmbLitElement { +@customElement('umb-relation-type-workspace-editor') +export class UmbRelationTypeWorkspaceEditorElement extends UmbLitElement { #workspaceContext?: UmbRelationTypeWorkspaceContext; @state() @@ -84,10 +81,10 @@ export class UmbRelationTypeWorkspaceEditElement extends UmbLitElement { ]; } -export default UmbRelationTypeWorkspaceEditElement; +export default UmbRelationTypeWorkspaceEditorElement; declare global { interface HTMLElementTagNameMap { - 'umb-relation-type-workspace-edit-element': UmbRelationTypeWorkspaceEditElement; + 'umb-relation-type-workspace-editor': UmbRelationTypeWorkspaceEditorElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.context.ts index b66dcd373b..6c682db91b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.context.ts @@ -1,4 +1,4 @@ -import { UmbRelationTypeRepository } from '../repository/relation-type.repository'; +import { UmbRelationTypeRepository } from '../repository/relation-type.repository.js'; import { UmbEntityWorkspaceContextInterface, UmbWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; import type { RelationTypeBaseModel, RelationTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.element.ts index 12ffb53eba..aff6facec8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.element.ts @@ -1,12 +1,10 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbRelationTypeWorkspaceContext } from './relation-type-workspace.context'; +import { UmbRelationTypeWorkspaceContext } from './relation-type-workspace.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { UmbRouterSlotInitEvent } from '@umbraco-cms/internal/router'; -import type { UmbRoute } from '@umbraco-cms/backoffice/router'; +import type { UmbRouterSlotInitEvent, UmbRoute } from '@umbraco-cms/backoffice/router'; -import './relation-type-workspace-edit.element'; +import './relation-type-workspace-editor.element.js'; /** * @element umb-relation-type-workspace @@ -18,7 +16,7 @@ export class UmbRelationTypeWorkspaceElement extends UmbLitElement { #routerPath? = ''; - #element = document.createElement('umb-relation-type-workspace-edit-element'); + #element = document.createElement('umb-relation-type-workspace-editor'); #key = ''; @state() diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.stories.ts index 7daa68ffe5..ec513df85a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.stories.ts @@ -1,12 +1,11 @@ -import './relation-type-workspace.element'; +import './relation-type-workspace.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import { data } from '../../../../mocks/data/relation-type.data.js'; +import type { UmbRelationTypeWorkspaceElement } from './relation-type-workspace.element.js'; +import { html , ifDefined } from '@umbraco-cms/backoffice/external/lit'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { data } from '../../../../shared/mocks/data/relation-type.data'; -import type { UmbRelationTypeWorkspaceElement } from './relation-type-workspace.element'; export default { title: 'Workspaces/Relation Type', diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/views/relation-type/relation-type-workspace-view-relation-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/views/relation-type/relation-type-workspace-view-relation-type.element.ts index bef0b3c7ba..90d3c8076d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/views/relation-type/relation-type-workspace-view-relation-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/views/relation-type/relation-type-workspace-view-relation-type.element.ts @@ -1,12 +1,9 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UUIBooleanInputEvent, UUIRadioGroupElement, UUIRadioGroupEvent, UUIToggleElement } from '@umbraco-ui/uui'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { UmbRelationTypeWorkspaceContext } from '../../relation-type-workspace.context'; +import { UmbRelationTypeWorkspaceContext } from '../../relation-type-workspace.context.js'; +import { UUITextStyles , UUIBooleanInputEvent, UUIRadioGroupElement, UUIRadioGroupEvent, UUIToggleElement } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, state , ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { RelationTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UmbWorkspaceEditorViewExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-relation-type-workspace-view-relation-type') diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/views/relation-type/relation-type-workspace-view-relation-type.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/views/relation-type/relation-type-workspace-view-relation-type.stories.ts index b7a59493e3..6a40670247 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/views/relation-type/relation-type-workspace-view-relation-type.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/views/relation-type/relation-type-workspace-view-relation-type.stories.ts @@ -1,12 +1,12 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbRelationTypeWorkspaceViewRelationTypeElement } from './relation-type-workspace-view-relation-type.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -//import { data } from '../../../../../core/mocks/data/relation-type.data'; +//import { data } from '../../../../../core/mocks/data/relation-type.data.js'; -import type { UmbRelationTypeWorkspaceViewRelationTypeElement } from './relation-type-workspace-view-relation-type.element'; -import './relation-type-workspace-view-relation-type.element'; -//import { UmbRelationTypeWorkspaceContext } from '../../workspace-relation-type.context'; +import './relation-type-workspace-view-relation-type.element.js'; +//import { UmbRelationTypeWorkspaceContext } from '../../workspace-relation-type.context.js'; export default { title: 'Workspaces/Relation Type/Views/RelationType', diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/views/relation/workspace-view-relation-type-relation.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/views/relation/workspace-view-relation-type-relation.element.ts index b9d99c786d..7bcae92be4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/views/relation/workspace-view-relation-type-relation.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/views/relation/workspace-view-relation-type-relation.element.ts @@ -1,7 +1,6 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbTableColumn, UmbTableConfig } from '@umbraco-cms/backoffice/core/components'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UmbTableColumn, UmbTableConfig } from '@umbraco-cms/backoffice/components'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { RelationResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbWorkspaceEditorViewExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/views/relation/workspace-view-relation-type-relation.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/views/relation/workspace-view-relation-type-relation.stories.ts index 486766b227..234bd630ef 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/views/relation/workspace-view-relation-type-relation.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/views/relation/workspace-view-relation-type-relation.stories.ts @@ -1,12 +1,12 @@ -import './workspace-view-relation-type-relation.element'; +import './workspace-view-relation-type-relation.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbWorkspaceViewRelationTypeRelationElement } from './workspace-view-relation-type-relation.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -//import { data } from '../../../../../core/mocks/data/relation-type.data'; -//import { UmbRelationTypeContext } from '../../relation-type.context'; +//import { data } from '../../../../../core/mocks/data/relation-type.data.js'; +//import { UmbRelationTypeContext } from '../../relation-type.context.js'; -import type { UmbWorkspaceViewRelationTypeRelationElement } from './workspace-view-relation-type-relation.element'; export default { title: 'Workspaces/Relation Type/Views/Relation', diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/section.manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/section.manifests.ts index 53db050cb5..ead4126481 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/section.manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/section.manifests.ts @@ -7,7 +7,7 @@ const section: ManifestSection = { type: 'section', alias: sectionAlias, name: 'Settings Section', - weight: 300, + weight: 400, meta: { label: 'Settings', pathname: 'settings', diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/themes/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/themes/manifests.ts index fd06f8dee2..c77d0f82fc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/themes/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/themes/manifests.ts @@ -11,14 +11,14 @@ export const themes: Array<ManifestTheme> = [ type: 'theme', alias: 'umb-dark-theme', name: 'Dark', - css: 'src/backoffice/themes/themes/dark.theme.css', + css: 'src/packages/settings/themes/themes/dark.theme.css', weight: 200, }, { type: 'theme', alias: 'umb-high-contrast-theme', name: 'High contrast', - css: 'src/backoffice/themes/themes/high-contrast.theme.css', + css: 'src/packages/settings/themes/themes/high-contrast.theme.css', weight: 100, }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/themes/theme.context.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/themes/theme.context.ts index 4b5a0979ef..dcb40d9629 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/themes/theme.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/themes/theme.context.ts @@ -1,5 +1,5 @@ -import { map } from 'rxjs'; -import { manifests } from './manifests'; +import { manifests } from './manifests.js'; +import { map } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbContextProviderController, UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbStringState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/umbraco-package.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/umbraco-package.ts index 66e08355bb..cbf922a5ab 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/umbraco-package.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/umbraco-package.ts @@ -4,6 +4,6 @@ export const extensions = [ name: 'Settings Entry Point', alias: 'Umb.EntryPoint.Settings', type: 'entryPoint', - loader: () => import('./index'), + loader: () => import('./package-entry-point.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/components/index.ts index a4fa49584b..38ae8bd471 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/components/index.ts @@ -1 +1 @@ -export * from './tags-input/tags-input.element'; +export * from './tags-input/tags-input.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/components/tags-input/tags-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/components/tags-input/tags-input.element.ts index 0d0b0fd37c..d1cc439387 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/components/tags-input/tags-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/components/tags-input/tags-input.element.ts @@ -1,10 +1,22 @@ -import { css, html, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, query, queryAll, state } from 'lit/decorators.js'; -import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; -import { repeat } from 'lit/directives/repeat.js'; -import { UUIInputElement, UUIInputEvent, UUITagElement } from '@umbraco-ui/uui'; -import { UmbTagRepository } from '../../repository/tag.repository'; +import { UmbTagRepository } from '../../repository/tag.repository.js'; +import { + css, + html, + nothing, + customElement, + property, + query, + queryAll, + state, + repeat, +} from '@umbraco-cms/backoffice/external/lit'; +import { + UUITextStyles, + FormControlMixin, + UUIInputElement, + UUIInputEvent, + UUITagElement, +} from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { TagResponseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -47,11 +59,6 @@ export class UmbTagsInputElement extends FormControlMixin(UmbLitElement) { #repository = new UmbTagRepository(this); - constructor() { - super(); - console.log('tags-input'); - } - public focus() { this._tagInput.focus(); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/components/tags-input/tags-input.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/components/tags-input/tags-input.stories.ts index 96a9cf4bd0..cdac94257a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/components/tags-input/tags-input.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/components/tags-input/tags-input.stories.ts @@ -1,6 +1,6 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import './tags-input.element'; -import type { UmbTagsInputElement } from './tags-input.element'; +import './tags-input.element.js'; +import type { UmbTagsInputElement } from './tags-input.element.js'; const meta: Meta<UmbTagsInputElement> = { title: 'Components/Inputs/Tags', diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/index.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/index.ts index 201267ad4f..fa1b7ed38d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/index.ts @@ -1,8 +1,8 @@ -import { manifests as repositoryManifests } from './repository/manifests'; -import { manifests as propertyEditorManifests } from './property-editors/manifests'; +import { manifests as repositoryManifests } from './repository/manifests.js'; +import { manifests as propertyEditorManifests } from './property-editors/manifests.js'; import { UmbEntryPointOnInit } from '@umbraco-cms/backoffice/extension-api'; -import './components'; +import './components/index.js'; export const manifests = [...repositoryManifests, ...propertyEditorManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/Umbraco.Tags.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/Umbraco.Tags.ts deleted file mode 100644 index a42fe3403b..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/Umbraco.Tags.ts +++ /dev/null @@ -1,19 +0,0 @@ -import type { ManifestPropertyEditorModel } from '@umbraco-cms/backoffice/extension-registry'; - -export const manifest: ManifestPropertyEditorModel = { - type: 'propertyEditorModel', - name: 'Tags', - alias: 'Umbraco.Tags', - meta: { - config: { - properties: [ - { - alias: 'startNodeId', - label: 'Start node', - description: '', - propertyEditorUI: 'Umb.PropertyEditorUI.Tags', - }, - ], - }, - }, -}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/manifests.ts index 41632edd64..67558a3376 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/manifests.ts @@ -1,4 +1,4 @@ -import { manifests as tagsUI } from './tags/manifests'; +import { manifests as tagsUI } from './tags/manifests.js'; import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const manifests: Array<ManifestTypes> = [...tagsUI]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/manifests.ts index 0a28b223a4..e695647031 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/manifests.ts @@ -1,13 +1,13 @@ -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -export const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.Tags.StorageType', +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.Tags.StorageType', name: 'Tags Storage Type Property Editor UI', - loader: () => import('./property-editor-ui-tags-storage-type.element'), + loader: () => import('./property-editor-ui-tags-storage-type.element.js'), meta: { label: 'Tags Storage Type', - propertyEditorModel: '', + propertyEditorAlias: '', icon: 'umb:autofill', group: 'common', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.element.ts index 969d455d73..7023ee1123 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.element.ts @@ -1,6 +1,5 @@ -import { html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property } from 'lit/decorators.js'; +import { html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.stories.ts index 2dde067661..468d9c1240 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUITagsStorageTypeElement } from './property-editor-ui-tags-storage-type.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUITagsStorageTypeElement } from './property-editor-ui-tags-storage-type.element'; -import './property-editor-ui-tags-storage-type.element'; +import './property-editor-ui-tags-storage-type.element.js'; export default { title: 'Property Editor UIs/Tags Storage Type', diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.test.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.test.ts index b37a82f97f..aefa7c2698 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.test.ts @@ -1,21 +1,21 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUITagsStorageTypeElement } from './property-editor-ui-tags-storage-type.element'; +import { UmbPropertyEditorUITagsStorageTypeElement } from './property-editor-ui-tags-storage-type.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUITagsStorageTypeElement', () => { - let element: UmbPropertyEditorUITagsStorageTypeElement; + let element: UmbPropertyEditorUITagsStorageTypeElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-tags-storage-type></umb-property-editor-ui-tags-storage-type> ` - ); - }); + beforeEach(async () => { + element = await fixture( + html` <umb-property-editor-ui-tags-storage-type></umb-property-editor-ui-tags-storage-type> ` + ); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUITagsStorageTypeElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUITagsStorageTypeElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/manifests.ts index 2abe1d8e2e..6288f41ee2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/manifests.ts @@ -1,19 +1,19 @@ -import { manifest as storageType } from './config/storage-type/manifests'; -import type { ManifestPropertyEditorUI } from '@umbraco-cms/backoffice/extension-registry'; +import { manifest as storageType } from './config/storage-type/manifests.js'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; -const manifest: ManifestPropertyEditorUI = { - type: 'propertyEditorUI', - alias: 'Umb.PropertyEditorUI.Tags', +const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.Tags', name: 'Tags Property Editor UI', - loader: () => import('./property-editor-ui-tags.element'), + loader: () => import('./property-editor-ui-tags.element.js'), meta: { label: 'Tags', - propertyEditorModel: 'Umbraco.Tags', + propertyEditorAlias: 'Umbraco.Tags', icon: 'umb:tags', group: 'common', }, }; -const config: Array<ManifestPropertyEditorUI> = [storageType]; +const config: Array<ManifestPropertyEditorUi> = [storageType]; export const manifests = [manifest, ...config]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.element.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.element.ts index c83d14da3a..c7efbea4d6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.element.ts @@ -1,10 +1,8 @@ -import { html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type'; -import { UmbTagsInputElement } from '../../components/tags-input/tags-input.element'; -import { UMB_WORKSPACE_PROPERTY_CONTEXT_TOKEN } from '../../../core/components/workspace-property/workspace-property.context'; +import { UmbTagsInputElement } from '../../components/tags-input/tags-input.element.js'; +import { html , customElement, property, state , ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { UMB_WORKSPACE_PROPERTY_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/workspace'; +import type { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/components'; import { UmbPropertyEditorExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.stories.ts index de47fda75b..59df42227d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.stories.ts @@ -1,8 +1,8 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbPropertyEditorUITagsElement } from './property-editor-ui-tags.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorUITagsElement } from './property-editor-ui-tags.element'; -import './property-editor-ui-tags.element'; +import './property-editor-ui-tags.element.js'; export default { title: 'Property Editor UIs/Tags', diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.test.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.test.ts index 42ca8bd847..50b0cdc14c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.test.ts @@ -1,21 +1,19 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbPropertyEditorUITagsElement } from './property-editor-ui-tags.element'; +import { UmbPropertyEditorUITagsElement } from './property-editor-ui-tags.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; describe('UmbPropertyEditorUITagsElement', () => { - let element: UmbPropertyEditorUITagsElement; + let element: UmbPropertyEditorUITagsElement; - beforeEach(async () => { - element = await fixture( - html` <umb-property-editor-ui-tags></umb-property-editor-ui-tags> ` - ); - }); + beforeEach(async () => { + element = await fixture(html` <umb-property-editor-ui-tags></umb-property-editor-ui-tags> `); + }); - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUITagsElement); - }); + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbPropertyEditorUITagsElement); + }); - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); + it('passes the a11y audit', async () => { + await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); + }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/repository/manifests.ts index 4e843ded44..ab6d02aad5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/repository/manifests.ts @@ -1,5 +1,5 @@ -import { UmbTagRepository } from './tag.repository'; -import { UmbTagStore } from './tag.store'; +import { UmbTagRepository } from './tag.repository.js'; +import { UmbTagStore } from './tag.store.js'; import type { ManifestStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const TAG_REPOSITORY_ALIAS = 'Umb.Repository.Tags'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.repository.ts index d2df51c93d..9c72e60885 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.repository.ts @@ -1,5 +1,5 @@ -import { UmbTagServerDataSource } from './sources/tag.server.data'; -import { UmbTagStore, UMB_TAG_STORE_CONTEXT_TOKEN } from './tag.store'; +import { UmbTagServerDataSource } from './sources/tag.server.data.js'; +import { UmbTagStore, UMB_TAG_STORE_CONTEXT_TOKEN } from './tag.store.js'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/umbraco-package.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/umbraco-package.ts index 6f6c4e8434..13f9a1d86e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/umbraco-package.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/umbraco-package.ts @@ -5,6 +5,6 @@ export const extensions = [ name: 'Tags Management Entry Point', alias: 'Umb.EntryPoint.TagsManagement', type: 'entryPoint', - loader: () => import('./index'), + loader: () => import('./index.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/components/file-system-tree-item/file-system-tree-item.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/components/file-system-tree-item/file-system-tree-item.context.ts index 69df5639d7..44a8a07834 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/components/file-system-tree-item/file-system-tree-item.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/components/file-system-tree-item/file-system-tree-item.context.ts @@ -1,4 +1,4 @@ -import { urlFriendlyPathFromServerFilePath } from '../../utils'; +import { urlFriendlyPathFromServerFilePath } from '../../utils.js'; import { UmbTreeItemContextBase } from '@umbraco-cms/backoffice/tree'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { FileSystemTreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/components/file-system-tree-item/file-system-tree-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/components/file-system-tree-item/file-system-tree-item.element.ts index 2aa7bb5b77..6a6d1e8e72 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/components/file-system-tree-item/file-system-tree-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/components/file-system-tree-item/file-system-tree-item.element.ts @@ -1,8 +1,7 @@ -import { css, html, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property } from 'lit/decorators.js'; -import { UmbTreeItemElement } from '../../../core/components/tree/tree-item/tree-item.element'; -import { UmbFileSystemTreeItemContext } from './file-system-tree-item.context'; +import { UmbFileSystemTreeItemContext } from './file-system-tree-item.context.js'; +import { css, html, nothing , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { UmbTreeItemElement } from '@umbraco-cms/backoffice/tree'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbBackofficeManifestKind, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { FileSystemTreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/components/index.ts index 1e8352bcf1..e4558cca4e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/components/index.ts @@ -1,2 +1,2 @@ -import './file-system-tree-item/file-system-tree-item.element'; -import './insert-menu/templating-insert-menu.element'; \ No newline at end of file +import './file-system-tree-item/file-system-tree-item.element.js'; +import './insert-menu/templating-insert-menu.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/templating-insert-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/templating-insert-menu.element.ts index b9cf26f696..87f5246c9b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/templating-insert-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/templating-insert-menu.element.ts @@ -1,14 +1,13 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { UMB_MODAL_TEMPLATING_INSERT_CHOOSE_TYPE_SIDEBAR_ALIAS } from '../../modals/manifests'; -import { UmbDictionaryRepository } from '../../../translation/dictionary/repository/dictionary.repository'; -import { getInsertDictionarySnippet, getInsertPartialSnippet } from '../../utils'; +import { UMB_MODAL_TEMPLATING_INSERT_CHOOSE_TYPE_SIDEBAR_ALIAS } from '../../modals/manifests.js'; +import { UmbDictionaryRepository } from '../../../translation/dictionary/repository/dictionary.repository.js'; +import { getInsertDictionarySnippet, getInsertPartialSnippet } from '../../utils.js'; import { ChooseInsertTypeModalResult, CodeSnippetType, UMB_MODAL_TEMPLATING_INSERT_FIELD_SIDEBAR_MODAL, -} from '../../modals/insert-choose-type-sidebar.element'; +} from '../../modals/insert-choose-type-sidebar.element.js'; +import { customElement, property , css, html } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UMB_DICTIONARY_ITEM_PICKER_MODAL, UMB_MODAL_CONTEXT_TOKEN, @@ -60,7 +59,9 @@ export class UmbTemplatingInsertMenuElement extends UmbLitElement { break; } case CodeSnippetType.dictionaryItem: { - this.#getDictionaryItemSnippet(value as UmbDictionaryItemPickerModalResult); + await this.#getDictionaryItemSnippet(value as UmbDictionaryItemPickerModalResult); + this.#dispatchInsertEvent(); + break; } case CodeSnippetType.macro: { @@ -78,6 +79,7 @@ export class UmbTemplatingInsertMenuElement extends UmbLitElement { #getUmbracoFieldValueSnippet = async (value: string) => { this.value = value; + this.#dispatchInsertEvent(); }; #getPartialViewSnippet = async (modalResult: UmbPartialViewPickerModalResult) => { @@ -111,7 +113,9 @@ export class UmbTemplatingInsertMenuElement extends UmbLitElement { } #openInsertDictionaryItemModal() { - this.#openModal = this._modalContext?.open(UMB_DICTIONARY_ITEM_PICKER_MODAL); + this.#openModal = this._modalContext?.open(UMB_DICTIONARY_ITEM_PICKER_MODAL, { + pickableFilter: (item) => item.id !== null, + }); this.#openModal?.onSubmit().then((value) => { this.#getDictionaryItemSnippet(value).then(() => { this.#dispatchInsertEvent(); @@ -120,7 +124,7 @@ export class UmbTemplatingInsertMenuElement extends UmbLitElement { } #dispatchInsertEvent() { - this.dispatchEvent(new CustomEvent('insert', { bubbles: true, cancelable: true, composed: false })); + this.dispatchEvent(new CustomEvent('insert', { bubbles: false, cancelable: true, composed: false })); } @property() @@ -139,25 +143,18 @@ export class UmbTemplatingInsertMenuElement extends UmbLitElement { id="insert-button" label="open insert menu"> <ul id="insert-menu" slot="dropdown"> + <!-- + TODO: uncomment when insert value has endpoint and is properly implemented <li> <uui-menu-item class="insert-menu-item" target="_blank" label="Value" title="Value" - @click=${this.#openInsertValueSidebar}> + > </uui-menu-item> - </li> - ${this.hidePartialView - ? '' - : html` <li> - <uui-menu-item - class="insert-menu-item" - label="Partial view" - title="Partial view" - @click=${this.#openInsertPartialViewSidebar}> - </uui-menu-item> - </li>`} + </li> --> + <li> <uui-menu-item class="insert-menu-item" @@ -166,18 +163,34 @@ export class UmbTemplatingInsertMenuElement extends UmbLitElement { @click=${this.#openInsertDictionaryItemModal}> </uui-menu-item> </li> - <li> + <!-- <li> <uui-menu-item class="insert-menu-item" label="Macro" title="Macro"> </uui-menu-item> - </li> + </li> --> </ul> </umb-button-with-dropdown> </uui-button-group> `; } + //TODO: put this back in when partial view is implemented + // ${this.hidePartialView + // ? '' + // : html` <li> + // <uui-menu-item + // class="insert-menu-item" + // label="Partial view" + // title="Partial view" + // @click=${this.#openInsertPartialViewSidebar}> + // </uui-menu-item> + // </li>`} + static styles = [ UUITextStyles, css` + :host { + --umb-header-layout-height: 70px; + } + #insert-menu { margin: 0; padding: 0; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/index.ts index 7ba4161475..ee3fc03b34 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/index.ts @@ -1,12 +1,12 @@ -import { manifests as menuManifests } from './menu.manifests'; -import { manifests as templateManifests } from './templates/manifests'; -import { manifests as stylesheetManifests } from './stylesheets/manifests'; -import { manifests as partialManifests } from './partial-views/manifests'; -import { manifests as modalManifests } from './modals/manifests'; +import { manifests as menuManifests } from './menu.manifests.js'; +import { manifests as templateManifests } from './templates/manifests.js'; +import { manifests as stylesheetManifests } from './stylesheets/manifests.js'; +import { manifests as partialManifests } from './partial-views/manifests.js'; +import { manifests as modalManifests } from './modals/manifests.js'; import type { UmbEntryPointOnInit } from '@umbraco-cms/backoffice/extension-api'; -import './components'; -import './templates/components'; +import './components/index.js'; +import './templates/index.js'; export const manifests = [ ...menuManifests, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-choose-type-sidebar.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-choose-type-sidebar.element.ts index 3d30a1e77d..0fbfd81a32 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-choose-type-sidebar.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-choose-type-sidebar.element.ts @@ -1,7 +1,6 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement } from 'lit/decorators.js'; -import { UMB_MODAL_TEMPLATING_INSERT_FIELD_SIDEBAR_ALIAS } from './manifests'; +import { UMB_MODAL_TEMPLATING_INSERT_FIELD_SIDEBAR_ALIAS } from './manifests.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; import { UMB_MODAL_CONTEXT_TOKEN, @@ -75,41 +74,44 @@ export default class UmbChooseInsertTypeModalElement extends UmbModalBaseElement } #openInsertDictionaryItemModal() { - this.#openModal = this._modalContext?.open(UMB_DICTIONARY_ITEM_PICKER_MODAL); + this.#openModal = this._modalContext?.open(UMB_DICTIONARY_ITEM_PICKER_MODAL, { + pickableFilter: (item) => item.id !== null, + }); this.#openModal?.onSubmit().then((dictionaryItemPickerModalResult) => { if (dictionaryItemPickerModalResult) this.modalHandler?.submit({ value: dictionaryItemPickerModalResult, type: CodeSnippetType.dictionaryItem }); }); } + //TODO: insert this when we have insert value implemented + #renderInsertValueButton() { + return html`<uui-button @click=${this.#openInsertValueSidebar} look="placeholder" label="Insert value" + ><h3>Value</h3> + <p> + Displays the value of a named field from the current page, with options to modify the value or fallback to + alternative values. + </p></uui-button + >`; + } + + //TODO: insert this when we have partial views + #renderInsertPartialViewButton() { + return html`${this.data?.hidePartialViews + ? '' + : html`<uui-button @click=${this.#openInsertPartialViewSidebar} look="placeholder" label="Insert value" + ><h3>Partial view</h3> + <p> + A partial view is a separate template file which can be rendered inside another template, it's great for + reusing markup or for separating complex templates into separate files. + </p></uui-button + >`}`; + } + render() { return html` <umb-body-layout headline="Insert"> <div id="main"> <uui-box> - <uui-button @click=${this.#openInsertValueSidebar} look="placeholder" label="Insert value" - ><h3>Value</h3> - <p> - Displays the value of a named field from the current page, with options to modify the value or fallback - to alternative values. - </p></uui-button - > - ${this.data?.hidePartialViews - ? '' - : html`<uui-button @click=${this.#openInsertPartialViewSidebar} look="placeholder" label="Insert value" - ><h3>Partial view</h3> - <p> - A partial view is a separate template file which can be rendered inside another template, it's great - for reusing markup or for separating complex templates into separate files. - </p></uui-button - >`} - <uui-button @click=${this._close} look="placeholder" label="Insert Macro" - ><h3>Macro</h3> - <p> - A Macro is a configurable component which is great for reusable parts of your design, where you need the - option to provide parameters, such as galleries, forms and lists. - </p></uui-button - > <uui-button @click=${this.#openInsertDictionaryItemModal} look="placeholder" label="Insert Dictionary item" ><h3>Dictionary item</h3> <p> @@ -132,6 +134,7 @@ export default class UmbChooseInsertTypeModalElement extends UmbModalBaseElement :host { display: block; color: var(--uui-color-text); + --umb-header-layout-height: 70px; } #main { @@ -153,6 +156,10 @@ export default class UmbChooseInsertTypeModalElement extends UmbModalBaseElement ]; } + + + + declare global { interface HTMLElementTagNameMap { 'umb-templating-choose-insert-type-modal': UmbChooseInsertTypeModalElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-section-modal/insert-section-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-section-modal/insert-section-input.element.ts index 77910962ae..11bfedf8be 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-section-modal/insert-section-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-section-modal/insert-section-input.element.ts @@ -1,8 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, property, query } from 'lit/decorators.js'; -import { UUIBooleanInputElement, UUIInputElement } from '@umbraco-ui/uui'; -import { getAddSectionSnippet, getRenderBodySnippet, getRenderSectionSnippet } from '../../utils'; +import { UUITextStyles , UUIBooleanInputElement, UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, property, query } from '@umbraco-cms/backoffice/external/lit'; @customElement('umb-insert-section-checkbox') export class UmbInsertSectionCheckboxElement extends UUIBooleanInputElement { @@ -25,6 +22,15 @@ export class UmbInsertSectionCheckboxElement extends UUIBooleanInputElement { @query('uui-checkbox') checkbox?: HTMLFormElement; + get snippet() { + if (!this.snippetMethod) return ''; + const snippet = this.snippetMethod(this.inputValue as string, this.isMandatory) ?? ''; + return snippet; + } + + @property({ attribute: false }) + snippetMethod?: (value: string, isMandatory: boolean) => string; + validate() { if (!this.form) return true; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-section-modal/insert-section-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-section-modal/insert-section-modal.element.ts index eafcaacab7..efe61c1e8e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-section-modal/insert-section-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-section-modal/insert-section-modal.element.ts @@ -1,14 +1,15 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, queryAll, state } from 'lit/decorators.js'; -import { UMB_MODAL_TEMPLATING_INSERT_SECTION_SIDEBAR_ALIAS } from '../manifests'; -import { getAddSectionSnippet, getRenderBodySnippet, getRenderSectionSnippet } from '../../utils'; -import UmbInsertSectionCheckboxElement from './insert-section-input.element'; -import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; +import { UMB_MODAL_TEMPLATING_INSERT_SECTION_SIDEBAR_ALIAS } from '../manifests.js'; +import { getAddSectionSnippet, getRenderBodySnippet, getRenderSectionSnippet } from '../../utils.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, queryAll, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; +import './insert-section-input.element.js'; +// eslint-disable-next-line local-rules/ensure-relative-import-use-js-extension +import type { UmbInsertSectionCheckboxElement } from './insert-section-input.element'; -export const UMB_MODAL_TEMPLATING_INSERT_SECTION_MODAL = new UmbModalToken( +export const UMB_MODAL_TEMPLATING_INSERT_SECTION_MODAL = new UmbModalToken<object, InsertSectionModalModalResult>( UMB_MODAL_TEMPLATING_INSERT_SECTION_SIDEBAR_ALIAS, { type: 'sidebar', @@ -35,7 +36,6 @@ export default class UmbTemplatingInsertSectionModalElement extends UmbModalBase snippet = ''; #chooseSection(event: Event) { - event.stopPropagation(); const target = event.target as UmbInsertSectionCheckboxElement; const checkboxes = Array.from(this.checkboxes); if (checkboxes.every((checkbox) => checkbox.checked === false)) { @@ -44,7 +44,7 @@ export default class UmbTemplatingInsertSectionModalElement extends UmbModalBase } if (target.checked) { this.selectedCheckbox = target; - this.snippet = this.snippetMethods[checkboxes.indexOf(target)](target?.inputValue as string, target?.isMandatory); + this.snippet = this.selectedCheckbox.snippet ?? ''; checkboxes.forEach((checkbox) => { if (checkbox !== target) { checkbox.checked = false; @@ -64,21 +64,31 @@ export default class UmbTemplatingInsertSectionModalElement extends UmbModalBase } #submit() { - if (this.selectedCheckbox?.validate()) this.modalHandler?.submit({ value: this.snippet ?? '' }); + const value = this.selectedCheckbox?.snippet; + if (this.selectedCheckbox?.validate()) this.modalHandler?.submit({ value: value ?? '' }); } render() { return html` <umb-body-layout headline="Insert"> <div id="main"> - <uui-box @change=${this.#chooseSection}> - <umb-insert-section-checkbox label="Render child template" checked> + <uui-box> + <umb-insert-section-checkbox + @change=${this.#chooseSection} + label="Render child template" + checked + .snippetMethod=${getRenderBodySnippet}> <p slot="description"> Renders the contents of a child template, by inserting a <code>@RenderBody()</code> placeholder. </p> </umb-insert-section-checkbox> - <umb-insert-section-checkbox label="Render a named section" show-mandatory show-input> + <umb-insert-section-checkbox + @change=${this.#chooseSection} + label="Render a named section" + show-mandatory + show-input + .snippetMethod=${getRenderSectionSnippet}> <p slot="description"> Renders a named area of a child template, by inserting a <code>@RenderSection(name)</code> placeholder. This renders an area of a child template which is wrapped in a corresponding @@ -86,7 +96,11 @@ export default class UmbTemplatingInsertSectionModalElement extends UmbModalBase </p> </umb-insert-section-checkbox> - <umb-insert-section-checkbox label="Define a named section" show-input> + <umb-insert-section-checkbox + @change=${this.#chooseSection} + label="Define a named section" + show-input + .snippetMethod=${getAddSectionSnippet}> <p slot="description"> Defines a part of your template as a named section by wrapping it in <code>@section { ... }</code>. This can be rendered in a specific area of the parent of this template, by using <code>@RenderSection</code>. @@ -108,6 +122,7 @@ export default class UmbTemplatingInsertSectionModalElement extends UmbModalBase :host { display: block; color: var(--uui-color-text); + --umb-header-layout-height: 70px; } #main { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-value-sidebar.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-value-sidebar.element.ts index 2431406194..65942d7606 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-value-sidebar.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-value-sidebar.element.ts @@ -1,8 +1,6 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UUIComboboxElement, UUIInputElement } from '@umbraco-ui/uui'; -import { getUmbracoFieldSnippet } from '../utils'; +import { getUmbracoFieldSnippet } from '../utils.js'; +import { UUITextStyles , UUIComboboxElement, UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; @customElement('umb-insert-value-sidebar') @@ -100,6 +98,7 @@ export default class UmbInsertValueSidebarElement extends UmbModalBaseElement<ob :host { display: block; color: var(--uui-color-text); + --umb-header-layout-height: 70px; } #main { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/manifests.ts index e4f463021a..0f38b14d4c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/manifests.ts @@ -10,25 +10,25 @@ const modals: Array<ManifestModal> = [ type: 'modal', alias: UMB_MODAL_TEMPLATING_INSERT_CHOOSE_TYPE_SIDEBAR_ALIAS, name: 'Choose insert type sidebar', - loader: () => import('./insert-choose-type-sidebar.element'), + loader: () => import('./insert-choose-type-sidebar.element.js'), }, { type: 'modal', alias: UMB_MODAL_TEMPLATING_INSERT_FIELD_SIDEBAR_ALIAS, name: 'Insert value type sidebar', - loader: () => import('./insert-value-sidebar.element'), + loader: () => import('./insert-value-sidebar.element.js'), }, { type: 'modal', alias: UMB_PARTIAL_VIEW_PICKER_MODAL_ALIAS, name: 'Partial View Picker Modal', - loader: () => import('../../templating/modals/partial-view-picker-modal.element'), + loader: () => import('../../templating/modals/partial-view-picker-modal.element.js'), }, { type: 'modal', alias: UMB_MODAL_TEMPLATING_INSERT_SECTION_SIDEBAR_ALIAS, name: 'Partial Insert Section Picker Modal', - loader: () => import('./insert-section-modal/insert-section-modal.element'), + loader: () => import('./insert-section-modal/insert-section-modal.element.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/partial-view-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/partial-view-picker-modal.element.ts index 824b2469bf..230237c499 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/partial-view-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/partial-view-picker-modal.element.ts @@ -1,9 +1,8 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbPartialViewPickerModalData, UmbPartialViewPickerModalResult } from '@umbraco-cms/backoffice/modal'; import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; -import { UmbTreeElement } from '@umbraco-cms/backoffice/core/components'; +import { UmbTreeElement } from '@umbraco-cms/backoffice/tree'; @customElement('umb-partial-view-picker-modal') export default class UmbPartialViewPickerModalElement extends UmbModalBaseElement< @@ -62,6 +61,7 @@ export default class UmbPartialViewPickerModalElement extends UmbModalBaseElemen :host { display: block; color: var(--uui-color-text); + --umb-header-layout-height: 70px; } #main { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/manifests.ts index cf1461f6bc..2c6b466a42 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/manifests.ts @@ -1,6 +1,6 @@ -import { PARTIAL_VIEW_ENTITY_TYPE, PARTIAL_VIEW_FOLDER_ENTITY_TYPE, PARTIAL_VIEW_REPOSITORY_ALIAS } from '../config'; -import { UmbCreateFromSnippetPartialViewAction } from './create/create-from-snippet.action'; -import { UmbCreateEmptyPartialViewAction } from './create/create-empty.action'; +import { PARTIAL_VIEW_ENTITY_TYPE, PARTIAL_VIEW_FOLDER_ENTITY_TYPE, PARTIAL_VIEW_REPOSITORY_ALIAS } from '../config.js'; +import { UmbCreateFromSnippetPartialViewAction } from './create/create-from-snippet.action.js'; +import { UmbCreateEmptyPartialViewAction } from './create/create-empty.action.js'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/manifests.ts index 84c48ea0b7..1f440270ba 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/manifests.ts @@ -1,8 +1,8 @@ -import { manifests as repositoryManifests } from './repository/manifests'; -import { manifests as menuItemManifests } from './menu-item/manifests'; -import { manifests as treeManifests } from './tree/manifests'; -import { manifests as entityActionsManifests } from './entity-actions/manifests'; -import { manifests as workspaceManifests } from './workspace/manifests'; +import { manifests as repositoryManifests } from './repository/manifests.js'; +import { manifests as menuItemManifests } from './menu-item/manifests.js'; +import { manifests as treeManifests } from './tree/manifests.js'; +import { manifests as entityActionsManifests } from './entity-actions/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; export const manifests = [ ...repositoryManifests, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/menu-item/manifests.ts index 2651c020a1..fe736a9b76 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/menu-item/manifests.ts @@ -1,4 +1,4 @@ -import { PARTIAL_VIEW_TREE_ALIAS } from '../config'; +import { PARTIAL_VIEW_TREE_ALIAS } from '../config.js'; import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; const menuItem: ManifestTypes = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/manifests.ts index 74ddb35130..00bb7da139 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/manifests.ts @@ -1,7 +1,7 @@ -import { UmbTemplateRepository } from '../repository/partial-views.repository'; -import { PARTIAL_VIEW_REPOSITORY_ALIAS } from '../config'; -import { UmbPartialViewsTreeStore } from './partial-views.tree.store'; -import { UmbPartialViewsStore } from './partial-views.store'; +import { UmbTemplateRepository } from '../repository/partial-views.repository.js'; +import { PARTIAL_VIEW_REPOSITORY_ALIAS } from '../config.js'; +import { UmbPartialViewsTreeStore } from './partial-views.tree.store.js'; +import { UmbPartialViewsStore } from './partial-views.store.js'; import { ManifestRepository, ManifestStore, ManifestTreeStore } from '@umbraco-cms/backoffice/extension-registry'; const repository: ManifestRepository = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.repository.ts index f992294396..50914ad489 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.repository.ts @@ -1,8 +1,8 @@ -import { Observable } from 'rxjs'; -import { UmbPartialViewDetailServerDataSource } from './sources/partial-views.detail.server.data'; -import { UmbPartialViewsTreeServerDataSource } from './sources/partial-views.tree.server.data'; -import { UmbPartialViewsStore, UMB_PARTIAL_VIEWS_STORE_CONTEXT_TOKEN } from './partial-views.store'; -import { UmbPartialViewsTreeStore, UMB_PARTIAL_VIEW_TREE_STORE_CONTEXT_TOKEN } from './partial-views.tree.store'; +import { UmbPartialViewDetailServerDataSource } from './sources/partial-views.detail.server.data.js'; +import { UmbPartialViewsTreeServerDataSource } from './sources/partial-views.tree.server.data.js'; +import { UmbPartialViewsStore, UMB_PARTIAL_VIEWS_STORE_CONTEXT_TOKEN } from './partial-views.store.js'; +import { UmbPartialViewsTreeStore, UMB_PARTIAL_VIEW_TREE_STORE_CONTEXT_TOKEN } from './partial-views.tree.store.js'; +import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.store.ts index f547deb650..f6ab056f85 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.store.ts @@ -1,4 +1,4 @@ -import { UMB_PARTIAL_VIEW_STORE_CONTEXT_TOKEN_ALIAS } from '../config'; +import { UMB_PARTIAL_VIEW_STORE_CONTEXT_TOKEN_ALIAS } from '../config.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.tree.store.ts index 07a2fa1dc8..4f8f98e127 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.tree.store.ts @@ -1,4 +1,4 @@ -import { UMB_PARTIAL_VIEW_TREE_STORE_CONTEXT_TOKEN_ALIAS } from '../config'; +import { UMB_PARTIAL_VIEW_TREE_STORE_CONTEXT_TOKEN_ALIAS } from '../config.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbFileSystemTreeStore } from '@umbraco-cms/backoffice/store'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-views.detail.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-views.detail.server.data.ts index 8d5cc66bd0..19f9f52d09 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-views.detail.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-views.detail.server.data.ts @@ -1,4 +1,4 @@ -import { PartialViewDetails } from '../../config'; +import { PartialViewDetails } from '../../config.js'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { DataSourceResponse, UmbDataSource } from '@umbraco-cms/backoffice/repository'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-views.tree.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-views.tree.server.data.ts index b67fd4e862..9abb91e1b0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-views.tree.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-views.tree.server.data.ts @@ -1,4 +1,4 @@ -import { PartialViewsTreeDataSource } from '.'; +import { PartialViewsTreeDataSource } from './index.js'; import { PartialViewResource, ProblemDetailsModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/manifests.ts index c8c2cb0217..0b1cc36d6b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/manifests.ts @@ -1,4 +1,4 @@ -import { PARTIAL_VIEW_ENTITY_TYPE, PARTIAL_VIEW_REPOSITORY_ALIAS, PARTIAL_VIEW_TREE_ALIAS } from '../config'; +import { PARTIAL_VIEW_ENTITY_TYPE, PARTIAL_VIEW_REPOSITORY_ALIAS, PARTIAL_VIEW_TREE_ALIAS } from '../config.js'; import type { ManifestTree, ManifestTreeItem } from '@umbraco-cms/backoffice/extension-registry'; const tree: ManifestTree = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/manifests.ts index a078370a0b..9fa4a099d4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/manifests.ts @@ -5,7 +5,7 @@ const workspace: ManifestWorkspace = { type: 'workspace', alias: 'Umb.Workspace.PartialView', name: 'Partial View Workspace', - loader: () => import('./partial-views-workspace.element'), + loader: () => import('./partial-views-workspace.element.js'), meta: { entityType: 'partial-view', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-views-workspace-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-views-workspace-edit.element.ts index 8f7c0a3c88..0e85274748 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-views-workspace-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-views-workspace-edit.element.ts @@ -1,9 +1,7 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, query, state } from 'lit/decorators.js'; -import { UUIInputElement } from '@umbraco-ui/uui'; -import { UmbCodeEditorElement } from '../../../core/components/code-editor'; -import { UmbPartialViewsWorkspaceContext } from './partial-views-workspace.context'; +import { UmbCodeEditorElement } from '../../../core/components/code-editor/index.js'; +import { UmbPartialViewsWorkspaceContext } from './partial-views-workspace.context.js'; +import { UUITextStyles , UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-partial-views-workspace-edit') @@ -35,7 +33,6 @@ export class UmbPartialViewsWorkspaceEditElement extends UmbLitElement { // this.observe(this.#partialViewsWorkspaceContext.isNew, (isNew) => { // this.#isNew = !!isNew; - // console.log(this.#isNew); // }); }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-views-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-views-workspace.context.ts index 8bcbf8fb2e..6372e0581a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-views-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-views-workspace.context.ts @@ -1,4 +1,4 @@ -import { UmbTemplateRepository } from '../repository/partial-views.repository'; +import { UmbTemplateRepository } from '../repository/partial-views.repository.js'; import { createObservablePart, UmbDeepState } from '@umbraco-cms/backoffice/observable-api'; import { TemplateResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-views-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-views-workspace.element.ts index f314361b77..4a5979ebf0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-views-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-views-workspace.element.ts @@ -1,12 +1,10 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbPartialViewsWorkspaceContext } from './partial-views-workspace.context'; -import { UmbRouterSlotInitEvent } from '@umbraco-cms/internal/router'; +import { UmbPartialViewsWorkspaceContext } from './partial-views-workspace.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { UmbRoute, IRoutingInfo, PageComponent, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; -import './partial-views-workspace-edit.element'; -import { UmbRoute, IRoutingInfo, PageComponent } from '@umbraco-cms/backoffice/router'; +import './partial-views-workspace-edit.element.js'; @customElement('umb-partial-views-workspace') export class UmbPartialViewsWorkspaceElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/manifests.ts index ddaa4babdc..ebc952eb39 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/manifests.ts @@ -1,6 +1,6 @@ -import { manifests as repositoryManifests } from './repository/manifests'; -import { manifests as menuItemManifests } from './menu-item/manifests'; -import { manifests as treeManifests } from './tree/manifests'; -import { manifests as workspaceManifests } from './workspace/manifests'; +import { manifests as repositoryManifests } from './repository/manifests.js'; +import { manifests as menuItemManifests } from './menu-item/manifests.js'; +import { manifests as treeManifests } from './tree/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; export const manifests = [...repositoryManifests, ...menuItemManifests, ...treeManifests, ...workspaceManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/menu-item/manifests.ts index c759909bc5..81fe0a0f44 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/menu-item/manifests.ts @@ -1,4 +1,4 @@ -import { STYLESHEET_TREE_ALIAS } from '../tree/manifests'; +import { STYLESHEET_TREE_ALIAS } from '../tree/manifests.js'; import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; const menuItem: ManifestTypes = { @@ -6,7 +6,7 @@ const menuItem: ManifestTypes = { kind: 'tree', alias: 'Umb.MenuItem.Stylesheets', name: 'Stylesheets Menu Item', - weight: 400, + weight: 20, meta: { label: 'Stylesheets', icon: 'umb:folder', diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts index 95425d80ff..ef28d9ac67 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts @@ -1,5 +1,5 @@ -import { UmbStylesheetRepository } from './stylesheet.repository'; -import { UmbStylesheetTreeStore } from './stylesheet.tree.store'; +import { UmbStylesheetRepository } from './stylesheet.repository.js'; +import { UmbStylesheetTreeStore } from './stylesheet.tree.store.js'; import { ManifestRepository, ManifestTreeStore } from '@umbraco-cms/backoffice/extension-registry'; export const STYLESHEET_REPOSITORY_ALIAS = 'Umb.Repository.Stylesheet'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.server.data.ts index 8f7c76e5d7..e0844ce428 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.server.data.ts @@ -1,4 +1,4 @@ -import { StylesheetDetails } from '../..'; +import type { StylesheetDetails } from '../../index.js'; import { DataSourceResponse, UmbDataSource } from '@umbraco-cms/backoffice/repository'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts index a1d7083a83..8f8bc13c6b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts @@ -1,6 +1,6 @@ -import { UmbStylesheetTreeStore, UMB_STYLESHEET_TREE_STORE_CONTEXT_TOKEN } from './stylesheet.tree.store'; -import { UmbStylesheetTreeServerDataSource } from './sources/stylesheet.tree.server.data'; -import { UmbStylesheetServerDataSource } from './sources/stylesheet.server.data'; +import { UmbStylesheetTreeStore, UMB_STYLESHEET_TREE_STORE_CONTEXT_TOKEN } from './stylesheet.tree.store.js'; +import { UmbStylesheetTreeServerDataSource } from './sources/stylesheet.tree.server.data.js'; +import { UmbStylesheetServerDataSource } from './sources/stylesheet.server.data.js'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/manifests.ts index 37afb9ac85..8e313eb003 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/manifests.ts @@ -1,5 +1,5 @@ -import { STYLESHEET_ENTITY_TYPE } from '..'; -import { STYLESHEET_REPOSITORY_ALIAS } from '../repository/manifests'; +import { STYLESHEET_ENTITY_TYPE } from '../index.js'; +import { STYLESHEET_REPOSITORY_ALIAS } from '../repository/manifests.js'; import type { ManifestTree, ManifestTreeItem } from '@umbraco-cms/backoffice/extension-registry'; export const STYLESHEET_TREE_ALIAS = 'Umb.Tree.Stylesheet'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts index c286af4b9c..f341fbee8f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts @@ -8,7 +8,7 @@ const workspace: ManifestWorkspace = { type: 'workspace', alias: 'Umb.Workspace.StyleSheet', name: 'Stylesheet Workspace', - loader: () => import('./stylesheet-workspace.element'), + loader: () => import('./stylesheet-workspace.element.js'), meta: { entityType: 'stylesheet', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-edit.element.ts index d8e0fda3ca..d8eeaca032 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-edit.element.ts @@ -1,11 +1,8 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, LitElement } from 'lit'; -import { customElement } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, LitElement , customElement } from '@umbraco-cms/backoffice/external/lit'; @customElement('umb-stylesheet-workspace-edit') export class UmbStylesheetWorkspaceEditElement extends LitElement { - - render() { return html` <umb-workspace-editor alias="Umb.Workspace.Stylesheet">Stylesheet workspace</umb-workspace-editor> `; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts index f5b3b08ba8..245f9fca54 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts @@ -1,5 +1,5 @@ -import { UmbStylesheetRepository } from '../repository/stylesheet.repository'; -import { StylesheetDetails } from '..'; +import { UmbStylesheetRepository } from '../repository/stylesheet.repository.js'; +import { StylesheetDetails } from '../index.js'; import { UmbWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.element.ts index 8a79c69d92..144b312f26 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.element.ts @@ -1,9 +1,8 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { serverFilePathFromUrlFriendlyPath } from '../../utils'; -import { UmbStylesheetWorkspaceEditElement } from './stylesheet-workspace-edit.element'; -import { UmbStylesheetWorkspaceContext } from './stylesheet-workspace.context'; +import { serverFilePathFromUrlFriendlyPath } from '../../utils.js'; +import { UmbStylesheetWorkspaceEditElement } from './stylesheet-workspace-edit.element.js'; +import { UmbStylesheetWorkspaceContext } from './stylesheet-workspace.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.stories.ts index 9642c1b6bb..c4d2a41930 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.stories.ts @@ -1,9 +1,9 @@ -import './stylesheet-workspace.element'; +import './stylesheet-workspace.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbStylesheetWorkspaceElement } from './stylesheet-workspace.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbStylesheetWorkspaceElement } from './stylesheet-workspace.element'; export default { title: 'Workspaces/Stylesheet', diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/alias-input/alias-input.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/alias-input/alias-input.ts new file mode 100644 index 0000000000..d7285766fa --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/alias-input/alias-input.ts @@ -0,0 +1,81 @@ +import { UUITextStyles } from '@umbraco-ui/uui-css'; +import { PropertyValueMap, css, customElement, html, property } from '@umbraco-cms/backoffice/external/lit'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { UmbChangeEvent } from '@umbraco-cms/backoffice/events'; + +@customElement('umb-template-alias-input') +export class UmbTemplateAliasInputElement extends UmbLitElement { + render() { + return html` + <uui-button compact @click=${this.#handleClick}> + <uui-symbol-lock .open=${this.isOpen} ></uui-symbol-lock> + </uui-button> + <input placeholder="Enter alias..." .value=${this.value} ?disabled=${!this.isOpen} @input=${ + this.#setValue + }></input> + + `; + } + + @property({ type: String, attribute: 'value' }) + value = ''; + + @property({ type: Boolean }) + isOpen = false; + + #setValue(event: Event) { + event.stopPropagation(); + this.value = (event.target as HTMLInputElement).value; + } + + #handleClick() { + this.isOpen = !this.isOpen; + if (!this.isOpen) { + this.dispatchEvent(new UmbChangeEvent()); + } + } + + static styles = [ + UUITextStyles, + css` + :host { + display: inline-flex; + align-items: center; + } + + :host(:focus-within) { + border-color: var(--uui-input-border-color-focus, var(--uui-color-border-emphasis, #a1a1a1)); + outline: calc(2px * var(--uui-show-focus-outline, 1)) solid var(--uui-color-focus, #3879ff); + } + + input { + background: transparent; + border-color: transparent; + font-family: inherit; + padding: var(--uui-size-1, 3px) var(--uui-size-space-3, 9px); + font-size: inherit; + color: inherit; + border-radius: 0px; + box-sizing: border-box; + border: none; + background: none; + width: 100%; + height: 100%; + text-align: inherit; + outline: none; + } + + input:disabled { + color: #a2a1a6; + } + `, + ]; +} + +export default UmbTemplateAliasInputElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-template-alias-input': UmbTemplateAliasInputElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/index.ts index 72cfc03eee..0ede5a73d7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/index.ts @@ -1,2 +1,3 @@ -import './template-card/template-card.element'; -import './input-template/input-template.element'; +import './template-card/template-card.element.js'; +import './input-template/input-template.element.js'; +import './alias-input/alias-input.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/input-template/input-template.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/input-template/input-template.element.ts index fed7292124..90d7186437 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/input-template/input-template.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/input-template/input-template.element.ts @@ -1,9 +1,7 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; -import { UmbTemplateCardElement } from '../template-card/template-card.element'; -import { UmbTemplateRepository } from '../../repository/template.repository'; +import { UmbTemplateCardElement } from '../template-card/template-card.element.js'; +import { UmbTemplateRepository } from '../../repository/template.repository.js'; +import { css, html , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles, FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UMB_TEMPLATE_PICKER_MODAL, UMB_TEMPLATE_MODAL, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/template-card/template-card.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/template-card/template-card.element.ts index aaebc484c6..8bf17ff8fb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/template-card/template-card.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/template-card/template-card.element.ts @@ -1,7 +1,5 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property } from 'lit/decorators.js'; -import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; +import { css, html , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles, FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; /** @@ -76,7 +74,6 @@ export class UmbTemplateCardElement extends FormControlMixin(UmbLitElement) { box-sizing: border-box; width: 100%; max-width: 180px; - //width: 200px; position: relative; display: flex; flex-direction: column; @@ -119,6 +116,7 @@ export class UmbTemplateCardElement extends FormControlMixin(UmbLitElement) { align-items: center; cursor: pointer; flex-grow: 1; + font-family: inherit; } #open-part, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/template-card/template-card.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/template-card/template-card.stories.ts index 464e9bc44b..6e7bb30ba4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/template-card/template-card.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/template-card/template-card.stories.ts @@ -1,7 +1,7 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import { html } from 'lit'; -import './template-card.element'; -import type { UmbTemplateCardElement } from './template-card.element'; +import { html } from '@umbraco-cms/backoffice/external/lit'; +import './template-card.element.js'; +import type { UmbTemplateCardElement } from './template-card.element.js'; const meta: Meta<UmbTemplateCardElement> = { title: 'Components/Template Card', diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/manifests.ts index 5137390fc1..427b681e80 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/manifests.ts @@ -1,5 +1,6 @@ -import { TEMPLATE_REPOSITORY_ALIAS } from '../repository/manifests'; -import { UmbCreateEntityAction } from './create/create.action'; +import { TEMPLATE_REPOSITORY_ALIAS } from '../repository/manifests.js'; +import { TEMPLATE_ENTITY_TYPE, TEMPLATE_ROOT_ENTITY_TYPE } from '../index.js'; +import { UmbCreateEntityAction } from './create/create.action.js'; import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; @@ -15,7 +16,7 @@ const entityActions: Array<ManifestEntityAction> = [ repositoryAlias: TEMPLATE_REPOSITORY_ALIAS, }, conditions: { - entityTypes: ['template'], + entityTypes: [TEMPLATE_ENTITY_TYPE, TEMPLATE_ROOT_ENTITY_TYPE], }, }, { @@ -29,7 +30,7 @@ const entityActions: Array<ManifestEntityAction> = [ repositoryAlias: TEMPLATE_REPOSITORY_ALIAS, }, conditions: { - entityTypes: ['template'], + entityTypes: [TEMPLATE_ENTITY_TYPE], }, }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/index.ts new file mode 100644 index 0000000000..5cd5ac9bb5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/index.ts @@ -0,0 +1,5 @@ +export const TEMPLATE_ROOT_ENTITY_TYPE = 'template-root'; +export const TEMPLATE_ENTITY_TYPE = 'template'; +export const TEMPLATE_FOLDER_ENTITY_TYPE = 'template-folder'; + +import './components/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/manifests.ts index 84c48ea0b7..1f440270ba 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/manifests.ts @@ -1,8 +1,8 @@ -import { manifests as repositoryManifests } from './repository/manifests'; -import { manifests as menuItemManifests } from './menu-item/manifests'; -import { manifests as treeManifests } from './tree/manifests'; -import { manifests as entityActionsManifests } from './entity-actions/manifests'; -import { manifests as workspaceManifests } from './workspace/manifests'; +import { manifests as repositoryManifests } from './repository/manifests.js'; +import { manifests as menuItemManifests } from './menu-item/manifests.js'; +import { manifests as treeManifests } from './tree/manifests.js'; +import { manifests as entityActionsManifests } from './entity-actions/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; export const manifests = [ ...repositoryManifests, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/manifests.ts index bd75b45444..042cbce709 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/manifests.ts @@ -1,6 +1,6 @@ -import { UmbTemplateRepository } from '../repository/template.repository'; -import { UmbTemplateTreeStore } from './template.tree.store'; -import { UmbTemplateStore } from './template.store'; +import { UmbTemplateRepository } from '../repository/template.repository.js'; +import { UmbTemplateTreeStore } from './template.tree.store.js'; +import { UmbTemplateStore } from './template.store.js'; import { ManifestStore, ManifestTreeStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const TEMPLATE_REPOSITORY_ALIAS = 'Umb.Repository.Template'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/template.detail.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/template.detail.server.data.ts index 616309a0f7..22f25b3496 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/template.detail.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/template.detail.server.data.ts @@ -1,4 +1,3 @@ -import { UmbId } from '@umbraco-cms/backoffice/id'; import { TemplateResponseModel, TemplateResource, @@ -16,7 +15,7 @@ import type { UmbDataSource } from '@umbraco-cms/backoffice/repository'; * @implements {TemplateDetailDataSource} */ export class UmbTemplateDetailServerDataSource - implements UmbDataSource<CreateTemplateRequestModel, any, UpdateTemplateRequestModel, TemplateResponseModel> + implements UmbDataSource<CreateTemplateRequestModel, string, UpdateTemplateRequestModel, TemplateResponseModel> { #host: UmbControllerHostElement; @@ -36,9 +35,21 @@ export class UmbTemplateDetailServerDataSource * @memberof UmbTemplateDetailServerDataSource */ get(id: string) { + if (!id) throw new Error('Id is missing'); return tryExecuteAndNotify(this.#host, TemplateResource.getTemplateById({ id })); } + /** + * Gets template item - you can get name and id from that + * @param {string} id + * @return {*} + * @memberof UmbTemplateDetailServerDataSource + */ + async getItem(id: string[]) { + if (!id) throw new Error('Id is missing'); + return await tryExecuteAndNotify(this.#host, TemplateResource.getTemplateItem({ id: id })); + } + /** * Creates a new Template scaffold * @param {(string | null)} parentId @@ -46,43 +57,18 @@ export class UmbTemplateDetailServerDataSource * @memberof UmbTemplateDetailServerDataSource */ async createScaffold() { - const error = undefined; - const data: TemplateResponseModel = { - $type: '', - id: UmbId.new(), - name: '', - alias: '', - content: '', - }; - - // TODO: update when backend is updated so we don't have to do two calls - /* - // TODO: Revisit template models, masterTemplateAlias is not here anymore? - const { data: scaffoldData, error: scaffoldError } = await tryExecuteAndNotify( - this.#host, - TemplateResource.getTemplateScaffold() - ); - */ - - //error = scaffoldError; - //data.content = scaffoldData?.content || ''; - - return { data, error }; + return await tryExecuteAndNotify(this.#host, TemplateResource.getTemplateScaffold()); } /** - * Inserts a new Template on the server + * Creates a new Template on the server * @param {Template} template * @return {*} * @memberof UmbTemplateDetailServerDataSource */ async insert(template: CreateTemplateRequestModel) { if (!template) throw new Error('Template is missing'); - - return tryExecuteAndNotify( - this.#host, - tryExecuteAndNotify(this.#host, TemplateResource.postTemplate({ requestBody: template })) - ); + return await tryExecuteAndNotify(this.#host, TemplateResource.postTemplate({ requestBody: template })); } /** @@ -92,9 +78,9 @@ export class UmbTemplateDetailServerDataSource * @memberof UmbTemplateDetailServerDataSource */ async update(id: string, template: UpdateTemplateRequestModel) { - if (!id) throw new Error('Id is missing'); + if (!id) throw new Error('You need to pass template id to update it'); if (!template) throw new Error('Template is missing'); - return tryExecuteAndNotify(this.#host, TemplateResource.putTemplateById({ id, requestBody: template })); + return await tryExecuteAndNotify(this.#host, TemplateResource.putTemplateById({ id, requestBody: template })); } /** @@ -104,7 +90,7 @@ export class UmbTemplateDetailServerDataSource * @memberof UmbTemplateDetailServerDataSource */ async delete(id: string) { - if (!id) throw new Error('Id is missing'); + if (!id) throw new Error('You need to pass template id to delete it'); return await tryExecuteAndNotify(this.#host, TemplateResource.deleteTemplateById({ id })); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/template.tree.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/template.tree.server.data.ts index 342db7f720..9ad0e96f23 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/template.tree.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/template.tree.server.data.ts @@ -1,4 +1,4 @@ -import type { TemplateTreeDataSource } from '.'; +import type { TemplateTreeDataSource } from './index.js'; import { TemplateResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template.repository.ts index e3f702c7aa..3ec8691bee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template.repository.ts @@ -1,10 +1,6 @@ -import { UmbTemplateDetailServerDataSource } from './sources/template.detail.server.data'; -import { UmbTemplateTreeServerDataSource } from './sources/template.tree.server.data'; -import { UmbTemplateStore, UMB_TEMPLATE_STORE_CONTEXT_TOKEN } from './template.store'; -import { UmbTemplateTreeStore, UMB_TEMPLATE_TREE_STORE_CONTEXT_TOKEN } from './template.tree.store'; import type { - UmbDataSource, UmbDetailRepository, + UmbItemRepository, UmbTreeDataSource, UmbTreeRepository, } from '@umbraco-cms/backoffice/repository'; @@ -14,20 +10,28 @@ import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-ap import { CreateTemplateRequestModel, EntityTreeItemResponseModel, + ItemResponseModelBaseModel, + TemplateItemResponseModel, TemplateResponseModel, UpdateTemplateRequestModel, } from '@umbraco-cms/backoffice/backend-api'; +import { UmbTemplateTreeStore, UMB_TEMPLATE_TREE_STORE_CONTEXT_TOKEN } from './template.tree.store.js'; +import { UmbTemplateStore, UMB_TEMPLATE_STORE_CONTEXT_TOKEN } from './template.store.js'; +import { UmbTemplateTreeServerDataSource } from './sources/template.tree.server.data.js'; +import { UmbTemplateDetailServerDataSource } from './sources/template.detail.server.data.js'; +import { Observable } from 'rxjs'; export class UmbTemplateRepository implements UmbTreeRepository<EntityTreeItemResponseModel>, - UmbDetailRepository<CreateTemplateRequestModel, any, UpdateTemplateRequestModel, TemplateResponseModel> + UmbDetailRepository<CreateTemplateRequestModel, string, UpdateTemplateRequestModel, TemplateResponseModel>, + UmbItemRepository<TemplateItemResponseModel> { #init; #host: UmbControllerHostElement; #treeDataSource: UmbTreeDataSource<EntityTreeItemResponseModel>; - #detailDataSource: UmbDataSource<CreateTemplateRequestModel, any, UpdateTemplateRequestModel, TemplateResponseModel>; + #detailDataSource: UmbTemplateDetailServerDataSource; #treeStore?: UmbTemplateTreeStore; #store?: UmbTemplateStore; @@ -37,7 +41,6 @@ export class UmbTemplateRepository constructor(host: UmbControllerHostElement) { this.#host = host; - // TODO: figure out how spin up get the correct data source this.#treeDataSource = new UmbTemplateTreeServerDataSource(this.#host); this.#detailDataSource = new UmbTemplateDetailServerDataSource(this.#host); @@ -56,7 +59,7 @@ export class UmbTemplateRepository ]); } - // TREE: + //#region TREE: async requestTreeRoot() { await this.#init; @@ -75,7 +78,6 @@ export class UmbTemplateRepository await this.#init; const { data, error } = await this.#treeDataSource.getRootItems(); - if (data) { this.#treeStore?.appendItems(data.items); } @@ -122,13 +124,13 @@ export class UmbTemplateRepository await this.#init; return this.#treeStore!.items(ids); } + //#endregion - // DETAILS: + //#region DETAILS: - async createScaffold(parentId: string | null) { - if (parentId === undefined) throw new Error('Parent id is missing'); + async createScaffold() { await this.#init; - return this.#detailDataSource.createScaffold(parentId); + return this.#detailDataSource.createScaffold(); } async requestById(id: string) { @@ -147,6 +149,21 @@ export class UmbTemplateRepository return { data, error }; } + + async requestItems(id: string[]) { + await this.#init; + + if (!id) { + throw new Error('Id is missing'); + } + const { data, error } = await this.#detailDataSource.getItem(id); + return { data, error }; + } + + async items(uniques: string[]): Promise<Observable<ItemResponseModelBaseModel[]>> { + throw new Error('items method is not implemented in UmbTemplateRepository'); + } + async byId(id: string) { if (!id) throw new Error('Key is missing'); await this.#init; @@ -155,10 +172,10 @@ export class UmbTemplateRepository // Could potentially be general methods: - async create(template: TemplateResponseModel) { + async create(template: CreateTemplateRequestModel) { await this.#init; - if (!template || !template.id) { + if (!template) { throw new Error('Template is missing'); } @@ -171,7 +188,7 @@ export class UmbTemplateRepository // TODO: we currently don't use the detail store for anything. // Consider to look up the data before fetching from the server - this.#store?.append(template); + //this.#store?.append({ ...template, $type: 'EntityTreeItemResponseModel' }); // TODO: Update tree store with the new item? or ask tree to request the new item? return { error }; @@ -221,7 +238,6 @@ export class UmbTemplateRepository // Consider notify a workspace if a template is deleted from the store while someone is editing it. this.#store?.remove([id]); this.#treeStore?.removeItem(id); - // TODO: would be nice to align the stores on methods/methodNames. return { error }; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template.store.ts index cfd1eb33c1..1cca318c59 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template.store.ts @@ -38,6 +38,10 @@ export class UmbTemplateStore extends UmbStoreBase { return this._data.getObservablePart((x) => x.find((y) => y.id === id)); } + items(uniques: string[]) { + return this._data.getObservablePart((x) => x.filter((y) => uniques.includes(y.id))); + } + /** * Removes templates in the store with the given uniques * @param {string[]} uniques diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/manifests.ts index 63bbc25a31..6c0a91cc0a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/manifests.ts @@ -1,4 +1,5 @@ -import { TEMPLATE_REPOSITORY_ALIAS } from '../repository/manifests'; +import { TEMPLATE_ENTITY_TYPE, TEMPLATE_ROOT_ENTITY_TYPE } from '../index.js'; +import { TEMPLATE_REPOSITORY_ALIAS } from '../repository/manifests.js'; import type { ManifestTree, ManifestTreeItem } from '@umbraco-cms/backoffice/extension-registry'; const tree: ManifestTree = { @@ -16,7 +17,7 @@ const treeItem: ManifestTreeItem = { alias: 'Umb.TreeItem.Template', name: 'Template Tree Item', conditions: { - entityTypes: ['template-root', 'template'], + entityTypes: [TEMPLATE_ROOT_ENTITY_TYPE, TEMPLATE_ENTITY_TYPE], }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/manifests.ts index 8967348b7c..61ef09f134 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/manifests.ts @@ -9,7 +9,7 @@ const workspace: ManifestWorkspace = { type: 'workspace', alias: 'Umb.Workspace.Template', name: 'Template Workspace', - loader: () => import('./template-workspace.element'), + loader: () => import('./template-workspace.element.js'), meta: { entityType: 'template', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-edit.element.ts deleted file mode 100644 index 12a410a67f..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-edit.element.ts +++ /dev/null @@ -1,178 +0,0 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, query, state } from 'lit/decorators.js'; -import { UUIInputElement } from '@umbraco-ui/uui'; -import { UmbTemplatingInsertMenuElement } from '../../components/insert-menu/templating-insert-menu.element'; -import { UMB_MODAL_TEMPLATING_INSERT_SECTION_MODAL } from '../../modals/insert-section-modal/insert-section-modal.element'; -import { UmbTemplateWorkspaceContext } from './template-workspace.context'; -import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_MODAL_CONTEXT_TOKEN, UmbModalContext } from '@umbraco-cms/backoffice/modal'; -import { UmbCodeEditorElement } from '@umbraco-cms/backoffice/core/components'; - -@customElement('umb-template-workspace-edit') -export class UmbTemplateWorkspaceEditElement extends UmbLitElement { - @state() - private _name?: string | null = ''; - - @state() - private _content?: string | null = ''; - - @query('umb-code-editor') - private _codeEditor?: UmbCodeEditorElement; - - #templateWorkspaceContext?: UmbTemplateWorkspaceContext; - #isNew = false; - - constructor() { - super(); - - this.consumeContext(UMB_MODAL_CONTEXT_TOKEN, (instance) => { - this._modalContext = instance; - }); - - this.consumeContext('UmbEntityWorkspaceContext', (workspaceContext: UmbTemplateWorkspaceContext) => { - this.#templateWorkspaceContext = workspaceContext; - this.observe(this.#templateWorkspaceContext.name, (name) => { - this._name = name; - }); - - this.observe(this.#templateWorkspaceContext.content, (content) => { - this._content = content; - }); - - this.observe(this.#templateWorkspaceContext.isNew, (isNew) => { - this.#isNew = !!isNew; - }); - }); - } - - // TODO: temp code for testing create and save - #onNameInput(event: Event) { - const target = event.target as UUIInputElement; - const value = target.value as string; - this.#templateWorkspaceContext?.setName(value); - } - - //TODO - debounce that - #onCodeEditorInput(event: Event) { - const target = event.target as UmbCodeEditorElement; - const value = target.code as string; - this.#templateWorkspaceContext?.setContent(value); - } - - #insertCode(event: Event) { - const target = event.target as UmbTemplatingInsertMenuElement; - const value = target.value as string; - - this._codeEditor?.insert(value); - } - - private _modalContext?: UmbModalContext; - - #openInsertSectionModal() { - const sectionModal = this._modalContext?.open(UMB_MODAL_TEMPLATING_INSERT_SECTION_MODAL); - sectionModal?.onSubmit().then((insertSectionModalResult) => { - console.log(insertSectionModalResult); - }); - } - - render() { - // TODO: add correct UI elements - return html`<umb-body-layout alias="Umb.Workspace.Template"> - <uui-input slot="header" .value=${this._name} @input=${this.#onNameInput}></uui-input> - <uui-box> - <div slot="header" id="code-editor-menu-container"> - <uui-button-group> - <uui-button look="secondary" id="master-template-button" label="Change Master template" - >Master template: something</uui-button - > - <uui-button look="secondary" id="save-button" label="Remove master template" compact - ><uui-icon name="umb:delete"></uui-icon - ></uui-button> - </uui-button-group> - <umb-templating-insert-menu @insert=${this.#insertCode}></umb-templating-insert-menu> - <uui-button look="secondary" id="query-builder-button" label="Query builder"> - <uui-icon name="umb:wand"></uui-icon>Query builder - </uui-button> - - <uui-button - look="secondary" - id="sections-button" - label="Query builder" - @click=${this.#openInsertSectionModal}> - <uui-icon name="umb:indent"></uui-icon>Sections - </uui-button> - </div> - - <umb-code-editor - language="razor" - id="content" - .code=${this._content ?? ''} - @input=${this.#onCodeEditorInput}></umb-code-editor> - </uui-box> - </umb-body-layout>`; - } - - static styles = [ - UUITextStyles, - css` - :host { - display: block; - width: 100%; - height: 100%; - } - - umb-code-editor { - --editor-height: calc(100vh - 300px); - } - - uui-box { - margin: 1em; - --uui-box-default-padding: 0; - } - - uui-input { - width: 100%; - margin: 1em; - } - - #code-editor-menu-container uui-icon { - margin-right: var(--uui-size-space-3); - } - - #insert-menu { - margin: 0; - padding: 0; - margin-top: var(--uui-size-space-3); - background-color: var(--uui-color-surface); - box-shadow: var(--uui-shadow-depth-3); - min-width: calc(100% + var(--uui-size-8, 24px)); - } - - #insert-menu > li, - ul { - padding: 0; - width: 100%; - list-style: none; - } - - .insert-menu-item { - width: 100%; - } - - #code-editor-menu-container { - display: flex; - justify-content: flex-end; - gap: var(--uui-size-space-3); - } - `, - ]; -} - -export default UmbTemplateWorkspaceEditElement; - -declare global { - interface HTMLElementTagNameMap { - 'umb-template-workspace-edit': UmbTemplateWorkspaceEditElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts new file mode 100644 index 0000000000..7e28459fc3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts @@ -0,0 +1,299 @@ +import camelCase from 'lodash-es/camelCase.js'; +import { UmbTemplatingInsertMenuElement } from '../../components/insert-menu/templating-insert-menu.element.js'; +import { UMB_MODAL_TEMPLATING_INSERT_SECTION_MODAL } from '../../modals/insert-section-modal/insert-section-modal.element.js'; +import type { UmbCodeEditorElement } from '../../../core/components/code-editor/code-editor.element.js'; +import { UmbTemplateWorkspaceContext } from './template-workspace.context.js'; +import { UUITextStyles, UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, query, state, nothing } from '@umbraco-cms/backoffice/external/lit'; +import { UMB_MODAL_CONTEXT_TOKEN, UMB_TEMPLATE_PICKER_MODAL, UmbModalContext } from '@umbraco-cms/backoffice/modal'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { Subject, debounceTime } from '@umbraco-cms/backoffice/external/rxjs'; + +@customElement('umb-template-workspace-editor') +export class UmbTemplateWorkspaceEditorElement extends UmbLitElement { + @state() + private _name?: string | null = ''; + + @state() + private _content?: string | null = ''; + + @state() + private _alias?: string | null = ''; + + @state() + private _ready?: boolean = false; + + @state() + private _masterTemplateName?: string | null = null; + + @query('umb-code-editor') + private _codeEditor?: UmbCodeEditorElement; + + #templateWorkspaceContext?: UmbTemplateWorkspaceContext; + #isNew = false; + + #masterTemplateId: string | null = null; + + private inputQuery$ = new Subject<string>(); + + constructor() { + super(); + + this.consumeContext(UMB_MODAL_CONTEXT_TOKEN, (instance) => { + this._modalContext = instance; + }); + + this.consumeContext('UmbEntityWorkspaceContext', (workspaceContext: UmbTemplateWorkspaceContext) => { + this.#templateWorkspaceContext = workspaceContext; + this.observe(this.#templateWorkspaceContext.name, (name) => { + this._name = name; + }); + + this.observe(this.#templateWorkspaceContext.alias, (alias) => { + this._alias = alias; + }); + + this.observe(this.#templateWorkspaceContext.content, (content) => { + this._content = content; + }); + + this.observe(this.#templateWorkspaceContext.masterTemplate, (masterTemplate) => { + this.#masterTemplateId = masterTemplate?.id ?? null; + this._masterTemplateName = masterTemplate?.name ?? null; + }); + + this.observe(this.#templateWorkspaceContext.isNew, (isNew) => { + this.#isNew = !!isNew; + }); + + this.observe(this.#templateWorkspaceContext.isCodeEditorReady, (isReady) => { + this._ready = isReady; + }); + + this.inputQuery$.pipe(debounceTime(250)).subscribe((nameInputValue) => { + this.#templateWorkspaceContext?.setName(nameInputValue); + if (this.#isNew && !this._alias) this.#templateWorkspaceContext?.setAlias(camelCase(nameInputValue)); + }); + }); + } + + #onNameInput(event: Event) { + const target = event.target as UUIInputElement; + const value = target.value as string; + this.inputQuery$.next(value); + } + + #onAliasInput(event: Event) { + const target = event.target as UUIInputElement; + const value = target.value as string; + this.#templateWorkspaceContext?.setAlias(value); + } + + #onCodeEditorInput(event: Event) { + const target = event.target as UmbCodeEditorElement; + const value = target.code as string; + this.#templateWorkspaceContext?.setContent(value); + } + + #insertSnippet(event: Event) { + const target = event.target as UmbTemplatingInsertMenuElement; + const value = target.value as string; + this._codeEditor?.insert(value); + } + + private _modalContext?: UmbModalContext; + + #openInsertSectionModal() { + const sectionModal = this._modalContext?.open(UMB_MODAL_TEMPLATING_INSERT_SECTION_MODAL); + sectionModal?.onSubmit().then((insertSectionModalResult) => { + if (insertSectionModalResult.value) this._codeEditor?.insert(insertSectionModalResult.value); + }); + } + + #resetMasterTemplate() { + this.#setMasterTemplateId(null); + } + + async #setMasterTemplateId(id: string | null) { + //root item selected + if (id === '') return; + + if (this._content === null || this._content === undefined) return; + const layoutBlockRegex = /(@{[\s\S][^if]*?Layout\s*?=\s*?)("[^"]*?"|null)(;[\s\S]*?})/gi; + const masterTemplate = await this.#templateWorkspaceContext?.setMasterTemplate(id); + + //Reset master template or is did not exist and the declaration exists + if (masterTemplate === null && layoutBlockRegex.test(this._content)) { + const string = this._content?.replace(layoutBlockRegex, `$1null$3`); + this.#templateWorkspaceContext?.setContent(string); + return; + } + + //No declaration and no valid id - do nothing + if (masterTemplate === null) return; + + //if has master template in the content + if (layoutBlockRegex.test(this._content)) { + const string = this._content?.replace(layoutBlockRegex, `$1"${masterTemplate?.name}.cshtml"$3`); + this.#templateWorkspaceContext?.setContent(string); + return; + } + + //if no master template in the content insert it at the beginning + const string = `@{ + Layout = "${masterTemplate?.name}.cshtml"; +} +${this._content}`; + this.#templateWorkspaceContext?.setContent(string); + } + + #openMasterTemplatePicker() { + const modalHandler = this._modalContext?.open(UMB_TEMPLATE_PICKER_MODAL, { + selection: [this.#masterTemplateId], + pickableFilter: (item) => { + return item.id !== null && item.id !== this.#templateWorkspaceContext?.getEntityId(); + }, + }); + + modalHandler?.onSubmit().then((data) => { + if (!data.selection) return; + this.#setMasterTemplateId(data.selection[0] ?? ''); + }); + } + + #renderMasterTemplatePicker() { + return html` + <uui-button-group> + <uui-button + @click=${this.#openMasterTemplatePicker} + look="secondary" + id="master-template-button" + label="Change Master template" + >${this._masterTemplateName + ? `Master template: ${this._masterTemplateName}` + : 'Set master template'}</uui-button + > + ${this._masterTemplateName + ? html` <uui-button look="secondary" id="save-button" label="Remove master template" compact + ><uui-icon name="umb:delete" @click=${this.#resetMasterTemplate}></uui-icon + ></uui-button>` + : nothing} + </uui-button-group> + `; + } + + #renderCodeEditor() { + return html`<umb-code-editor + language="razor" + id="content" + .code=${this._content ?? ''} + @input=${this.#onCodeEditorInput}></umb-code-editor>`; + } + + render() { + // TODO: add correct UI elements + return html`<umb-workspace-editor alias="Umb.Workspace.Template"> + <uui-input placeholder="Enter name..." slot="header" .value=${this._name} @input=${this.#onNameInput} + ><umb-template-alias-input + slot="append" + .value=${this._alias} + @change=${this.#onAliasInput}></umb-template-alias-input + ></uui-input> + <uui-box> + <div slot="header" id="code-editor-menu-container"> + ${this.#renderMasterTemplatePicker()} + <div> + <umb-templating-insert-menu @insert=${this.#insertSnippet}></umb-templating-insert-menu> + <!-- <uui-button look="secondary" id="query-builder-button" label="Query builder"> + <uui-icon name="umb:wand"></uui-icon>Query builder + </uui-button> --> + <uui-button + look="secondary" + id="sections-button" + label="Query builder" + @click=${this.#openInsertSectionModal}> + <uui-icon name="umb:indent"></uui-icon>Sections + </uui-button> + </div> + </div> + ${this._ready + ? this.#renderCodeEditor() + : html`<div id="loader-container"> + <uui-loader></uui-loader> + </div>`} + </uui-box> + </umb-workspace-editor>`; + } + + static styles = [ + UUITextStyles, + css` + :host { + display: block; + width: 100%; + height: 100%; + } + + #loader-container { + display: grid; + place-items: center; + min-height: calc(100dvh - 360px); + } + + umb-code-editor { + --editor-height: calc(100dvh - 300px); + } + + uui-box { + min-height: calc(100dvh - 300px); + margin: var(--uui-size-layout-1); + --uui-box-default-padding: 0; + /* remove header border bottom as code editor looks better in this box */ + --uui-color-divider-standalone: transparent; + } + + uui-input { + width: 100%; + margin: 1em; + } + + #code-editor-menu-container uui-icon:not([name='umb:delete']) { + margin-right: var(--uui-size-space-3); + } + + #insert-menu { + margin: 0; + padding: 0; + margin-top: var(--uui-size-space-3); + background-color: var(--uui-color-surface); + box-shadow: var(--uui-shadow-depth-3); + min-width: calc(100% + var(--uui-size-8, 24px)); + } + + #insert-menu > li, + ul { + padding: 0; + width: 100%; + list-style: none; + } + + .insert-menu-item { + width: 100%; + } + + #code-editor-menu-container { + display: flex; + justify-content: space-between; + gap: var(--uui-size-space-3); + } + `, + ]; +} + +export default UmbTemplateWorkspaceEditorElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-template-workspace-editor': UmbTemplateWorkspaceEditorElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts index ca8580f7ec..adc2413361 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts @@ -1,17 +1,39 @@ -import { UmbTemplateRepository } from '../repository/template.repository'; +import { UmbTemplateRepository } from '../repository/template.repository.js'; import { UmbWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; -import { createObservablePart, UmbDeepState } from '@umbraco-cms/backoffice/observable-api'; -import { TemplateResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { + createObservablePart, + UmbBooleanState, + UmbDeepState, + UmbObjectState, +} from '@umbraco-cms/backoffice/observable-api'; +import { TemplateItemResponseModel, TemplateResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbTemplateWorkspaceContext extends UmbWorkspaceContext<UmbTemplateRepository, TemplateResponseModel> { #data = new UmbDeepState<TemplateResponseModel | undefined>(undefined); data = this.#data.asObservable(); + #masterTemplate = new UmbObjectState<TemplateItemResponseModel | null>(null); + masterTemplate = this.#masterTemplate.asObservable(); name = createObservablePart(this.#data, (data) => data?.name); + alias = createObservablePart(this.#data, (data) => data?.alias); content = createObservablePart(this.#data, (data) => data?.content); + id = createObservablePart(this.#data, (data) => data?.id); + + #isCodeEditorReady = new UmbBooleanState(false); + isCodeEditorReady = this.#isCodeEditorReady.asObservable(); constructor(host: UmbControllerHostElement) { super(host, new UmbTemplateRepository(host)); + this.#loadCodeEditor(); + } + + async #loadCodeEditor() { + try { + await import('../../../core/components/code-editor/index.js'); + this.#isCodeEditorReady.next(true); + } catch (error) { + console.error(error); + } } getEntityType(): string { @@ -30,6 +52,10 @@ export class UmbTemplateWorkspaceContext extends UmbWorkspaceContext<UmbTemplate this.#data.next({ ...this.#data.value, $type: this.#data.value?.$type || '', name: value }); } + setAlias(value: string) { + this.#data.next({ ...this.#data.value, $type: this.#data.value?.$type || '', alias: value }); + } + setContent(value: string) { this.#data.next({ ...this.#data.value, $type: this.#data.value?.$type || '', content: value }); } @@ -39,18 +65,81 @@ export class UmbTemplateWorkspaceContext extends UmbWorkspaceContext<UmbTemplate if (data) { this.setIsNew(false); this.#data.next(data); + this.#getMasterTemplateFromContent(data.content ?? ''); } } - public async save() { - throw new Error('Save method not implemented.'); + #getMasterTemplateFromContent(content: string) { + if (!content) this.#masterTemplate.next(null); + const RegexString = /(@{[\s\S][^if]*?Layout\s*?=\s*?)("[^"]*?"|null)(;[\s\S]*?})/gi; + const match = RegexString.exec(content ?? ''); + + if (match) { + if (match[2] === 'null') { + this.#masterTemplate.next(null); + return null; + } + + this.#masterTemplate.next({ name: match[2].replace(/"/g, '').replace('.cshtml', '') }); + return match[2].replace(/"/g, ''); + } + this.#masterTemplate.next(null); + return null; } - async createScaffold(parentId: string | null) { - const { data } = await this.repository.createScaffold(parentId); + async setMasterTemplate(id: string | null) { + if (id === null) { + this.#masterTemplate.next(null); + return null; + } + + const { data } = await this.repository.requestItems([id]); + if (data) { + this.#masterTemplate.next(data[0]); + return data[0]; + } + return null; + } + + public async save() { + const template = this.#data.getValue(); + const isNew = this.getIsNew(); + + if (isNew && template) { + await this.repository.create({ + name: template.name, + content: template.content, + alias: template.alias, + }); + if (this.#masterTemplate.value?.id) { + this.repository.requestTreeItemsOf(this.#masterTemplate.value?.id ?? ''); + } else { + this.repository.requestRootTreeItems(); + } + } + + if (template?.id) { + await this.repository.save(template.id, { + name: template.name, + content: template.content, + alias: template.alias, + }); + } + } + + async createScaffold(parentId: string | null = null) { + const { data } = await this.repository.createScaffold(); if (!data) return; this.setIsNew(true); - this.#data.next(data as any); + this.#data.next({ ...data, id: '', name: '', alias: '', $type: 'TemplateResponseModel' }); + if (!parentId || parentId === 'root') return; + await this.setMasterTemplate(parentId); + const RegexString = /(@{[\s\S][^if]*?Layout\s*?=\s*?)("[^"]*?"|null)(;[\s\S]*?})/gi; + const content = this.#data.value?.content ?? ''; + const masterTemplateName = this.#masterTemplate.value?.name ?? ''; + const string = content.replace(RegexString, `$1"${masterTemplateName}.cshtml"$3`) ?? ''; + + this.setContent(string); } public destroy() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.element.ts index 4c6afaa6a8..3be7284fb8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.element.ts @@ -1,12 +1,9 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbTemplateWorkspaceContext } from './template-workspace.context'; -import { UmbRouterSlotInitEvent } from '@umbraco-cms/internal/router'; -import type { IRoutingInfo, PageComponent, UmbRoute } from '@umbraco-cms/backoffice/router'; +import { UmbTemplateWorkspaceContext } from './template-workspace.context.js'; +import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import type { IRoutingInfo, PageComponent, UmbRoute, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import './template-workspace-edit.element'; +import './template-workspace-editor.element.js'; @customElement('umb-template-workspace') export class UmbTemplateWorkspaceElement extends UmbLitElement { @@ -14,18 +11,11 @@ export class UmbTemplateWorkspaceElement extends UmbLitElement { this.#templateWorkspaceContext.load(entityId); } - @state() - private _name?: string | null = ''; - - @state() - private _content?: string | null = ''; - #templateWorkspaceContext = new UmbTemplateWorkspaceContext(this); #routerPath? = ''; - #element = document.createElement('umb-template-workspace-edit'); - #key = ''; + #element = document.createElement('umb-template-workspace-editor'); @state() _routes: UmbRoute[] = [ @@ -54,31 +44,6 @@ export class UmbTemplateWorkspaceElement extends UmbLitElement { this.#routerPath = event.target.absoluteRouterPath; }}></umb-router-slot>`; } - - static styles = [ - UUITextStyles, - css` - :host { - display: block; - width: 100%; - height: 100%; - } - - umb-code-editor { - --editor-height: calc(100vh - 300px); - } - - uui-box { - margin: 1em; - --uui-box-default-padding: 0; - } - - uui-input { - width: 100%; - margin: 1em; - } - `, - ]; } export default UmbTemplateWorkspaceElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/umbraco-package.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/umbraco-package.ts index ac55237077..f66d196515 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/umbraco-package.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/umbraco-package.ts @@ -4,6 +4,6 @@ export const extensions = [ name: 'Templating Entry Point', alias: 'Umb.EntryPoint.Templating', type: 'entryPoint', - loader: () => import('./index'), + loader: () => import('./index.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dashboards/dictionary/dashboard-translation-dictionary.element.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dashboards/dictionary/dashboard-translation-dictionary.element.ts index 326262d3d3..06e57b43b5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dashboards/dictionary/dashboard-translation-dictionary.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dashboards/dictionary/dashboard-translation-dictionary.element.ts @@ -1,9 +1,7 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { when } from 'lit/directives/when.js'; -import { UmbDictionaryRepository } from '../../dictionary/repository/dictionary.repository'; -import { UmbTableConfig, UmbTableColumn, UmbTableItem } from '@umbraco-cms/backoffice/core/components'; +import { UmbDictionaryRepository } from '../../dictionary/repository/dictionary.repository.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, state, when } from '@umbraco-cms/backoffice/external/lit'; +import { UmbTableConfig, UmbTableColumn, UmbTableItem } from '@umbraco-cms/backoffice/components'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { DictionaryOverviewResponseModel, LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, UMB_CREATE_DICTIONARY_MODAL } from '@umbraco-cms/backoffice/modal'; @@ -82,13 +80,16 @@ export class UmbDashboardTranslationDictionaryElement extends UmbLitElement { #setTableItems() { this.#tableItems = this.#dictionaryItems.map((dictionary) => { // id is set to name to allow filtering on the displayed value + // TODO: Generate URL for editing the dictionary item const tableItem: UmbTableItem = { id: dictionary.name ?? '', icon: 'umb:book-alt', data: [ { columnAlias: 'name', - value: html`<a style="font-weight:bold" href="/section/translation/dictionary-item/edit/${dictionary.id}"> + value: html`<a + style="font-weight:bold" + href="/section/translation/workspace/dictionary-item/edit/${dictionary.id}"> ${dictionary.name}</a > `, }, @@ -169,10 +170,8 @@ export class UmbDashboardTranslationDictionaryElement extends UmbLitElement { UUITextStyles, css` :host { - display: flex; - flex-direction: column; - height: 100%; - margin: var(--uui-size-layout-1); + display: block; + padding: var(--uui-size-layout-1); } #dictionary-top-bar { diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/create/create-dictionary-modal-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/create/create-dictionary-modal-layout.element.ts index 626b00c1a3..39344185ba 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/create/create-dictionary-modal-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/create/create-dictionary-modal-layout.element.ts @@ -1,7 +1,5 @@ -import { html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, query } from 'lit/decorators.js'; -import { when } from 'lit/directives/when.js'; +import { html , customElement, query , when } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbCreateDictionaryModalData, UmbCreateDictionaryModalResult } from '@umbraco-cms/backoffice/modal'; import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/create/create.action.ts index f89aa1ae0d..5443f38647 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/create/create.action.ts @@ -1,5 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { UmbDictionaryRepository } from '../../repository/dictionary.repository'; +import { UmbDictionaryRepository } from '../../repository/dictionary.repository.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbSectionSidebarContext, UMB_SECTION_SIDEBAR_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/section'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; @@ -7,7 +7,7 @@ import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-ap import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, UMB_CREATE_DICTIONARY_MODAL } from '@umbraco-cms/backoffice/modal'; // TODO: temp import -import './create-dictionary-modal-layout.element'; +import './create-dictionary-modal-layout.element.js'; export default class UmbCreateDictionaryEntityAction extends UmbEntityActionBase<UmbDictionaryRepository> { static styles = [UUITextStyles]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/export/export-dictionary-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/export/export-dictionary-modal.element.ts index 8ee911b0e5..f46eea765e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/export/export-dictionary-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/export/export-dictionary-modal.element.ts @@ -1,6 +1,5 @@ -import { html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, query } from 'lit/decorators.js'; +import { html , customElement, query } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbExportDictionaryModalData, UmbExportDictionaryModalResult } from '@umbraco-cms/backoffice/modal'; import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/export/export.action.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/export/export.action.ts index 672d3ab473..e949245429 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/export/export.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/export/export.action.ts @@ -1,11 +1,11 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { UmbDictionaryRepository } from '../../repository/dictionary.repository'; +import { UmbDictionaryRepository } from '../../repository/dictionary.repository.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, UMB_EXPORT_DICTIONARY_MODAL } from '@umbraco-cms/backoffice/modal'; -import './export-dictionary-modal.element'; +import './export-dictionary-modal.element.js'; export default class UmbExportDictionaryEntityAction extends UmbEntityActionBase<UmbDictionaryRepository> { static styles = [UUITextStyles]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/import/import-dictionary-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/import/import-dictionary-modal.element.ts index 22edcbff78..30e30810d8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/import/import-dictionary-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/import/import-dictionary-modal.element.ts @@ -1,8 +1,6 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, query, state } from 'lit/decorators.js'; -import { when } from 'lit/directives/when.js'; -import { UmbDictionaryRepository } from '../../repository/dictionary.repository'; +import { UmbDictionaryRepository } from '../../repository/dictionary.repository.js'; +import { css, html , customElement, query, state , when } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbImportDictionaryModalData, UmbImportDictionaryModalResult } from '@umbraco-cms/backoffice/modal'; import { ImportDictionaryRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/import/import.action.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/import/import.action.ts index d365b33b1d..9bdc8a3cc2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/import/import.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/import/import.action.ts @@ -1,11 +1,11 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { UmbDictionaryRepository } from '../../repository/dictionary.repository'; +import { UmbDictionaryRepository } from '../../repository/dictionary.repository.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, UMB_IMPORT_DICTIONARY_MODAL } from '@umbraco-cms/backoffice/modal'; -import './import-dictionary-modal.element'; +import './import-dictionary-modal.element.js'; export default class UmbImportDictionaryEntityAction extends UmbEntityActionBase<UmbDictionaryRepository> { static styles = [UUITextStyles]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/manifests.ts index 52e1ed1120..d281819bbd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/manifests.ts @@ -1,8 +1,8 @@ -import { DICTIONARY_REPOSITORY_ALIAS } from '../repository/manifests'; -import UmbReloadDictionaryEntityAction from './reload.action'; -import UmbImportDictionaryEntityAction from './import/import.action'; -import UmbExportDictionaryEntityAction from './export/export.action'; -import UmbCreateDictionaryEntityAction from './create/create.action'; +import { DICTIONARY_REPOSITORY_ALIAS } from '../repository/manifests.js'; +import UmbReloadDictionaryEntityAction from './reload.action.js'; +import UmbImportDictionaryEntityAction from './import/import.action.js'; +import UmbExportDictionaryEntityAction from './export/export.action.js'; +import UmbCreateDictionaryEntityAction from './create/create.action.js'; import { UmbDeleteEntityAction, UmbMoveEntityAction } from '@umbraco-cms/backoffice/entity-action'; import type { ManifestEntityAction, ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; @@ -107,19 +107,19 @@ const modals: Array<ManifestModal> = [ type: 'modal', alias: 'Umb.Modal.CreateDictionary', name: 'Create Dictionary Modal', - loader: () => import('./create/create-dictionary-modal-layout.element'), + loader: () => import('./create/create-dictionary-modal-layout.element.js'), }, { type: 'modal', alias: 'Umb.Modal.ExportDictionary', name: 'Export Dictionary Modal', - loader: () => import('./export/export-dictionary-modal.element'), + loader: () => import('./export/export-dictionary-modal.element.js'), }, { type: 'modal', alias: 'Umb.Modal.ImportDictionary', name: 'Import Dictionary Modal', - loader: () => import('./import/import-dictionary-modal.element'), + loader: () => import('./import/import-dictionary-modal.element.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/reload.action.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/reload.action.ts index 1d5e5fe65d..f0630282c0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/reload.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/entity-actions/reload.action.ts @@ -1,5 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { UmbDictionaryRepository } from '../repository/dictionary.repository'; +import { UmbDictionaryRepository } from '../repository/dictionary.repository.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/manifests.ts index 406f298371..73fd1c89dd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/manifests.ts @@ -1,9 +1,9 @@ -import { manifests as menuManifests } from './menu.manifests'; -import { manifests as menuItemManifests } from './menu-item/manifests'; -import { manifests as treeManifests } from './tree/manifests'; -import { manifests as repositoryManifests } from './repository/manifests'; -import { manifests as workspaceManifests } from './workspace/manifests'; -import { manifests as entityActionManifests } from './entity-actions/manifests'; +import { manifests as menuManifests } from './menu.manifests.js'; +import { manifests as menuItemManifests } from './menu-item/manifests.js'; +import { manifests as treeManifests } from './tree/manifests.js'; +import { manifests as repositoryManifests } from './repository/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; +import { manifests as entityActionManifests } from './entity-actions/manifests.js'; export const manifests = [ ...menuManifests, diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/menu-item/dictionary-menu-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/menu-item/dictionary-menu-item.element.ts index b3af10f851..eeaae77436 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/menu-item/dictionary-menu-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/menu-item/dictionary-menu-item.element.ts @@ -1,5 +1,4 @@ -import { html } from 'lit'; -import { customElement } from 'lit/decorators.js'; +import { html , customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-dictionary-menu-item') diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/menu-item/manifests.ts index f970726036..e352852271 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/menu-item/manifests.ts @@ -5,7 +5,7 @@ const menuItem: ManifestMenuItem = { alias: 'Umb.MenuItem.Dictionary', name: 'Dictionary Menu Item', weight: 400, - loader: () => import('./dictionary-menu-item.element'), + loader: () => import('./dictionary-menu-item.element.js'), meta: { label: 'Dictionary', icon: 'umb:book-alt', diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/repository/dictionary.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/repository/dictionary.repository.ts index 7d41e4ba1e..3e1d941674 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/repository/dictionary.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/repository/dictionary.repository.ts @@ -1,7 +1,7 @@ -import { UmbDictionaryStore, UMB_DICTIONARY_STORE_CONTEXT_TOKEN } from './dictionary.store'; -import { UmbDictionaryDetailServerDataSource } from './sources/dictionary.detail.server.data'; -import { UmbDictionaryTreeStore, UMB_DICTIONARY_TREE_STORE_CONTEXT_TOKEN } from './dictionary.tree.store'; -import { UmbDictionaryTreeServerDataSource } from './sources/dictionary.tree.server.data'; +import { UmbDictionaryStore, UMB_DICTIONARY_STORE_CONTEXT_TOKEN } from './dictionary.store.js'; +import { UmbDictionaryDetailServerDataSource } from './sources/dictionary.detail.server.data.js'; +import { UmbDictionaryTreeStore, UMB_DICTIONARY_TREE_STORE_CONTEXT_TOKEN } from './dictionary.tree.store.js'; +import { UmbDictionaryTreeServerDataSource } from './sources/dictionary.tree.server.data.js'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbTreeDataSource, UmbDetailRepository, UmbTreeRepository } from '@umbraco-cms/backoffice/repository'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/repository/manifests.ts index 041ae6c2b6..157a4d359a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/repository/manifests.ts @@ -1,6 +1,6 @@ -import { UmbDictionaryRepository } from '../repository/dictionary.repository'; -import { UmbDictionaryTreeStore } from './dictionary.tree.store'; -import { UmbDictionaryStore } from './dictionary.store'; +import { UmbDictionaryRepository } from '../repository/dictionary.repository.js'; +import { UmbDictionaryTreeStore } from './dictionary.tree.store.js'; +import { UmbDictionaryStore } from './dictionary.store.js'; import { ManifestStore, ManifestTreeStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const DICTIONARY_REPOSITORY_ALIAS = 'Umb.Repository.Dictionary'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/tree/manifests.ts index af21d1f46c..fbff5efabd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/tree/manifests.ts @@ -1,4 +1,4 @@ -import { DICTIONARY_REPOSITORY_ALIAS } from '../repository/manifests'; +import { DICTIONARY_REPOSITORY_ALIAS } from '../repository/manifests.js'; import type { ManifestTree, ManifestTreeItem } from '@umbraco-cms/backoffice/extension-registry'; const tree: ManifestTree = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/dictionary-workspace-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/dictionary-workspace-editor.element.ts similarity index 77% rename from src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/dictionary-workspace-edit.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/dictionary-workspace-editor.element.ts index 02f7388bd4..21551bbb6c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/dictionary-workspace-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/dictionary-workspace-editor.element.ts @@ -1,13 +1,10 @@ -import { UUIInputElement, UUIInputEvent } from '@umbraco-ui/uui'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbDictionaryWorkspaceContext } from './dictionary-workspace.context'; +import { UmbDictionaryWorkspaceContext } from './dictionary-workspace.context.js'; +import { UUIInputElement, UUIInputEvent, UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; - -@customElement('umb-dictionary-workspace-edit') -export class UmbDictionaryWorkspaceEditElement extends UmbLitElement { +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; +@customElement('umb-dictionary-workspace-editor') +export class UmbDictionaryWorkspaceEditorElement extends UmbLitElement { @state() private _name?: string | null = ''; @@ -67,10 +64,10 @@ export class UmbDictionaryWorkspaceEditElement extends UmbLitElement { ]; } -export default UmbDictionaryWorkspaceEditElement; +export default UmbDictionaryWorkspaceEditorElement; declare global { interface HTMLElementTagNameMap { - 'umb-dictionary-workspace-edit': UmbDictionaryWorkspaceEditElement; + 'umb-dictionary-workspace-editor': UmbDictionaryWorkspaceEditorElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/dictionary-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/dictionary-workspace.context.ts index 0a4de068eb..db2c269e2e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/dictionary-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/dictionary-workspace.context.ts @@ -1,4 +1,4 @@ -import { UmbDictionaryRepository } from '../repository/dictionary.repository'; +import { UmbDictionaryRepository } from '../repository/dictionary.repository.js'; import { UmbEntityWorkspaceContextInterface, UmbWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/dictionary-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/dictionary-workspace.element.ts index 25cfa618d9..b4d03a939e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/dictionary-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/dictionary-workspace.element.ts @@ -1,15 +1,14 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbDictionaryWorkspaceContext } from './dictionary-workspace.context'; -import { UmbDictionaryWorkspaceEditElement } from './dictionary-workspace-edit.element'; +import { UmbDictionaryWorkspaceContext } from './dictionary-workspace.context.js'; +import { UmbDictionaryWorkspaceEditorElement } from './dictionary-workspace-editor.element.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-dictionary-workspace') export class UmbWorkspaceDictionaryElement extends UmbLitElement { #workspaceContext = new UmbDictionaryWorkspaceContext(this); - #element = new UmbDictionaryWorkspaceEditElement(); + #element = new UmbDictionaryWorkspaceEditorElement(); @state() _routes: UmbRoute[] = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/dictionary-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/dictionary-workspace.stories.ts index 6df82b9529..f1e3f5d98f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/dictionary-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/dictionary-workspace.stories.ts @@ -1,9 +1,8 @@ -import './dictionary-workspace.element'; +import './dictionary-workspace.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { data } from '../../../../shared/mocks/data/dictionary.data'; -import type { UmbWorkspaceDictionaryElement } from './dictionary-workspace.element'; +import { data } from '../../../../mocks/data/dictionary.data.js'; +import type { UmbWorkspaceDictionaryElement } from './dictionary-workspace.element.js'; +import { html , ifDefined } from '@umbraco-cms/backoffice/external/lit'; export default { title: 'Workspaces/Dictionary', diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/manifests.ts index 11ed6bc7c3..182245960c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/manifests.ts @@ -1,4 +1,3 @@ -import { DICTIONARY_REPOSITORY_ALIAS } from '../repository/manifests'; import { UmbSaveWorkspaceAction } from '@umbraco-cms/backoffice/workspace'; import type { ManifestWorkspace, @@ -12,7 +11,7 @@ const workspace: ManifestWorkspace = { type: 'workspace', alias: workspaceAlias, name: 'Dictionary Workspace', - loader: () => import('./dictionary-workspace.element'), + loader: () => import('./dictionary-workspace.element.js'), meta: { entityType: 'dictionary-item', }, @@ -23,7 +22,7 @@ const workspaceViews: Array<ManifestWorkspaceEditorView> = [ type: 'workspaceEditorView', alias: 'Umb.WorkspaceView.Dictionary.Edit', name: 'Dictionary Workspace Edit View', - loader: () => import('./views/edit/workspace-view-dictionary-edit.element'), + loader: () => import('./views/editor/workspace-view-dictionary-editor.element.js'), weight: 100, meta: { label: 'Edit', diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/views/edit/workspace-view-dictionary-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/views/editor/workspace-view-dictionary-editor.element.ts similarity index 78% rename from src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/views/edit/workspace-view-dictionary-edit.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/views/editor/workspace-view-dictionary-editor.element.ts index 0985995a71..04981b05da 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/views/edit/workspace-view-dictionary-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/views/editor/workspace-view-dictionary-editor.element.ts @@ -1,17 +1,12 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { repeat } from 'lit/directives/repeat.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { UUITextareaElement, UUITextareaEvent } from '@umbraco-ui/uui'; -import { UmbDictionaryWorkspaceContext } from '../../dictionary-workspace.context'; -import { UmbDictionaryRepository } from '../../../repository/dictionary.repository'; +import { UmbDictionaryWorkspaceContext } from '../../dictionary-workspace.context.js'; +import { UmbDictionaryRepository } from '../../../repository/dictionary.repository.js'; +import { UUITextStyles, UUITextareaElement, UUITextareaEvent } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, state, repeat, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { DictionaryItemResponseModel, LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; - -@customElement('umb-workspace-view-dictionary-edit') -export class UmbWorkspaceViewDictionaryEditElement extends UmbLitElement { +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; +@customElement('umb-workspace-view-dictionary-editor') +export class UmbWorkspaceViewDictionaryEditorElement extends UmbLitElement { @state() private _dictionary?: DictionaryItemResponseModel; @@ -90,10 +85,10 @@ export class UmbWorkspaceViewDictionaryEditElement extends UmbLitElement { ]; } -export default UmbWorkspaceViewDictionaryEditElement; +export default UmbWorkspaceViewDictionaryEditorElement; declare global { interface HTMLElementTagNameMap { - 'umb-workspace-view-dictionary-edit': UmbWorkspaceViewDictionaryEditElement; + 'umb-workspace-view-dictionary-editor': UmbWorkspaceViewDictionaryEditorElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/views/edit/workspace-view-dictionary-edit.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/views/editor/workspace-view-dictionary-editor.stories.ts similarity index 51% rename from src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/views/edit/workspace-view-dictionary-edit.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/views/editor/workspace-view-dictionary-editor.stories.ts index f2afe0facf..e31a2f4b2b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/views/edit/workspace-view-dictionary-edit.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/views/editor/workspace-view-dictionary-editor.stories.ts @@ -1,14 +1,14 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; -//import { data } from '../../../../../core/mocks/data/dictionary.data'; -import type { UmbWorkspaceViewDictionaryEditElement } from './workspace-view-dictionary-edit.element'; -import './workspace-view-dictionary-edit.element'; -//import { UmbWorkspaceDictionaryContext } from '../../workspace-dictionary.context'; +import type { UmbWorkspaceViewDictionaryEditorElement } from './workspace-view-dictionary-editor.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; +//import { data } from '../../../../../core/mocks/data/dictionary.data.js'; +import './workspace-view-dictionary-editor.element.js'; +//import { UmbWorkspaceDictionaryContext } from '../../workspace-dictionary.context.js'; export default { title: 'Workspaces/Dictionary/Views/Edit', - component: 'umb-workspace-view-dictionary-edit', - id: 'umb-workspace-view-dictionary-edit', + component: 'umb-workspace-view-dictionary-editor', + id: 'umb-workspace-view-dictionary-editor', decorators: [ (story) => { return html`TODO: make use of mocked workspace context??`; @@ -19,7 +19,7 @@ export default { ], } as Meta; -export const AAAOverview: Story<UmbWorkspaceViewDictionaryEditElement> = () => - html` <umb-workspace-view-dictionary-edit></umb-workspace-view-dictionary-edit>`; +export const AAAOverview: Story<UmbWorkspaceViewDictionaryEditorElement> = () => + html` <umb-workspace-view-dictionary-editor></umb-workspace-view-dictionary-editor>`; AAAOverview.storyName = 'Overview'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/index.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/index.ts index 953cc4cc44..292ffef21b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/index.ts @@ -1,10 +1,9 @@ -import { manifests as translationSectionManifests } from './section.manifest'; -import { manifests as dictionaryManifests } from './dictionary/manifests'; -import { manifests as modalManifests } from './modals/manifests'; +import { manifests as translationSectionManifests } from './section.manifest.js'; +import { manifests as dictionaryManifests } from './dictionary/manifests.js'; import { UmbEntryPointOnInit } from '@umbraco-cms/backoffice/extension-api'; -export const manifests = [...modalManifests, ...translationSectionManifests, ...dictionaryManifests]; +export const manifests = [...translationSectionManifests, ...dictionaryManifests]; export const onInit: UmbEntryPointOnInit = (_host, extensionRegistry) => { extensionRegistry.registerMany(manifests); diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/modals/dictionary-item-picker/dictionary-item-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/modals/dictionary-item-picker/dictionary-item-picker-modal.element.ts deleted file mode 100644 index f79cec25cf..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/modals/dictionary-item-picker/dictionary-item-picker-modal.element.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbTreeElement } from '../../../core/components/tree/tree.element'; -import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; -import { UmbDictionaryItemPickerModalData, UmbDictionaryItemPickerModalResult } from '@umbraco-cms/backoffice/modal'; - -@customElement('umb-dictionary-item-picker-modal') -export default class UmbDictionaryItemPickerModalElement extends UmbModalBaseElement< - UmbDictionaryItemPickerModalData, - UmbDictionaryItemPickerModalResult -> { - @state() - _selection: Array<string | null> = []; - - @state() - _multiple = false; - - connectedCallback() { - super.connectedCallback(); - this._selection = this.data?.selection ?? []; - this._multiple = this.data?.multiple ?? true; - } - - private _handleSelectionChange(e: CustomEvent) { - e.stopPropagation(); - const element = e.target as UmbTreeElement; - this._selection = this._multiple ? element.selection : [element.selection[element.selection.length - 1]]; - this._submit(); - } - - private _submit() { - this.modalHandler?.submit({ selection: this._selection }); - } - - private _close() { - this.modalHandler?.reject(); - } - - render() { - return html` - <umb-body-layout headline="Dictionary item"> - <div id="main"> - <uui-box> - <umb-tree - alias="Umb.Tree.Dictionary" - @selected=${this._handleSelectionChange} - .selection=${this._selection} - selectable></umb-tree> - </uui-box> - </div> - <div slot="actions"> - <uui-button @click=${this._close} look="secondary">Close</uui-button> - </div> - </umb-body-layout> - `; - } - - static styles = [ - UUITextStyles, - css` - :host { - display: block; - color: var(--uui-color-text); - } - - #main { - box-sizing: border-box; - padding: var(--uui-size-space-5); - height: calc(100vh - 124px); - } - - #main uui-button { - width: 100%; - } - - h3, - p { - text-align: left; - } - `, - ]; -} - -declare global { - interface HTMLElementTagNameMap { - 'umb-dictionary-item-picker-modal': UmbDictionaryItemPickerModalElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/modals/manifests.ts deleted file mode 100644 index 206e621059..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/modals/manifests.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; -import { UMB_DICTIONARY_ITEM_PICKER_MODAL_ALIAS } from '@umbraco-cms/backoffice/modal'; - -const modals: Array<ManifestModal> = [ - { - type: 'modal', - alias: UMB_DICTIONARY_ITEM_PICKER_MODAL_ALIAS, - name: 'Dictionary Item Picker Modal', - loader: () => import('./dictionary-item-picker/dictionary-item-picker-modal.element'), - }, -]; - -export const manifests = [...modals]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/section.manifest.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/section.manifest.ts index 7c8adcfdca..b42f4333bb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/section.manifest.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/section.manifest.ts @@ -34,7 +34,7 @@ const dashboards: Array<ManifestDashboard> = [ alias: 'Umb.Dashboard.TranslationDictionary', name: 'Dictionary Translation Dashboard', elementName: 'umb-dashboard-translation-dictionary', - loader: () => import('./dashboards/dictionary/dashboard-translation-dictionary.element'), + loader: () => import('./dashboards/dictionary/dashboard-translation-dictionary.element.js'), meta: { label: 'Dictionary overview', pathname: '', diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/umbraco-package.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/umbraco-package.ts index 1bb22e40e6..7c2053b4b9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/umbraco-package.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/umbraco-package.ts @@ -4,6 +4,6 @@ export const extensions = [ name: 'Translation Entry Point', alias: 'Umb.EntryPoint.Translation', type: 'entryPoint', - loader: () => import('./index'), + loader: () => import('./index.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/index.ts b/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/index.ts index ca18a97cc6..48b3ef2446 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/index.ts @@ -5,7 +5,7 @@ const dashboard: ManifestDashboard = { type: 'dashboard', alias: 'Umb.Dashboard.UmbracoNews', name: 'Umbraco News Dashboard', - loader: () => import('./umbraco-news-dashboard.element'), + loader: () => import('./umbraco-news-dashboard.element.js'), weight: 20, meta: { label: 'Welcome', diff --git a/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-news-dashboard.element.ts b/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-news-dashboard.element.ts index 5f04bc0463..9596b05cf3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-news-dashboard.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-news-dashboard.element.ts @@ -1,6 +1,4 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, html, LitElement } from 'lit'; -import { customElement } from 'lit/decorators.js'; +import { css, html, LitElement, customElement } from '@umbraco-cms/backoffice/external/lit'; @customElement('umb-umbraco-news-dashboard') export class UmbUmbracoNewsDashboardElement extends LitElement { @@ -14,11 +12,10 @@ export class UmbUmbracoNewsDashboardElement extends LitElement { } static styles = [ - UUITextStyles, css` :host { display: block; - margin: var(--uui-size-layout-1); + padding: var(--uui-size-layout-1); } `, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-news-dashboard.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-news-dashboard.stories.ts index ff3205e00d..183727abbd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-news-dashboard.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-news-dashboard.stories.ts @@ -1,9 +1,9 @@ -import './umbraco-news-dashboard.element'; +import './umbraco-news-dashboard.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import type { UmbUmbracoNewsDashboardElement } from './umbraco-news-dashboard.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbUmbracoNewsDashboardElement } from './umbraco-news-dashboard.element'; export default { title: 'Dashboards/Umbraco News', diff --git a/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-package.ts b/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-package.ts index b58a7d782b..1331fd50f9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-package.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-package.ts @@ -4,6 +4,6 @@ export const extensions = [ name: 'Umbraco News Entry Point', alias: 'Umb.EntryPoint.UmbracoNews', type: 'entryPoint', - loader: () => import('./index'), + loader: () => import('./index.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/current-user-header-app.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/current-user-header-app.element.ts index b0d44f1d4e..f8f3569196 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/current-user-header-app.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/current-user-header-app.element.ts @@ -1,8 +1,7 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, CSSResultGroup, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import type { UmbLoggedInUser } from './types'; -import { UmbCurrentUserStore, UMB_CURRENT_USER_STORE_CONTEXT_TOKEN } from './current-user.store'; +import type { UmbLoggedInUser } from './types.js'; +import { UmbCurrentUserStore, UMB_CURRENT_USER_STORE_CONTEXT_TOKEN } from './current-user.store.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, CSSResultGroup, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, UMB_CURRENT_USER_MODAL } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/current-user.store.ts b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/current-user.store.ts index 53665ae826..d188a75ba4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/current-user.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/current-user.store.ts @@ -1,4 +1,4 @@ -import type { UmbLoggedInUser } from './types'; +import type { UmbLoggedInUser } from './types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/index.ts b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/index.ts new file mode 100644 index 0000000000..30f15ab9c5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/index.ts @@ -0,0 +1,4 @@ +export * from './types.js'; +// TODO:Do not export store, but instead export future repository +export * from './current-user.store.js'; +export * from './current-user-history.store.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/manifests.ts index 0e32854317..a0083ea129 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/manifests.ts @@ -1,5 +1,5 @@ -import { manifests as modalManifests } from './modals/manifests'; -import { manifests as userProfileAppsManifests } from './user-profile-apps/manifests'; +import { manifests as modalManifests } from './modals/manifests.js'; +import { manifests as userProfileAppsManifests } from './user-profile-apps/manifests.js'; import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const headerApps: Array<ManifestTypes> = [ @@ -7,7 +7,7 @@ export const headerApps: Array<ManifestTypes> = [ type: 'headerApp', alias: 'Umb.HeaderApp.CurrentUser', name: 'Current User', - loader: () => import('./current-user-header-app.element'), + loader: () => import('./current-user-header-app.element.js'), weight: 0, meta: { label: 'TODO: how should we enable this to not be set.', diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/modals/change-password/change-password-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/modals/change-password/change-password-modal.element.ts index c7c9bc0297..4772075cca 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/modals/change-password/change-password-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/modals/change-password/change-password-modal.element.ts @@ -1,6 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, CSSResultGroup, html, nothing } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, CSSResultGroup, html, nothing , customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalHandler, UmbChangePasswordModalData } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/modals/current-user/current-user-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/modals/current-user/current-user-modal.element.ts index cd0cc5a770..a8f567f82e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/modals/current-user/current-user-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/modals/current-user/current-user-modal.element.ts @@ -1,8 +1,7 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { css, CSSResultGroup, html } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import { UmbCurrentUserStore, UMB_CURRENT_USER_STORE_CONTEXT_TOKEN } from '../../current-user.store'; -import type { UmbLoggedInUser } from '../../types'; +import { UmbCurrentUserStore, UMB_CURRENT_USER_STORE_CONTEXT_TOKEN } from '../../current-user.store.js'; +import type { UmbLoggedInUser } from '../../types.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, CSSResultGroup, html , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalHandler } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/modals/manifests.ts index c9fc816008..01bfce620f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/modals/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/modals/manifests.ts @@ -5,7 +5,7 @@ const modals: Array<ManifestModal> = [ type: 'modal', alias: 'Umb.Modal.CurrentUser', name: 'Current User Modal', - loader: () => import('./current-user/current-user-modal.element'), + loader: () => import('./current-user/current-user-modal.element.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/user-profile-apps/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/user-profile-apps/manifests.ts index 7e66d6e315..7fd6433ee6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/user-profile-apps/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/user-profile-apps/manifests.ts @@ -5,7 +5,7 @@ export const userProfileApps: Array<ManifestUserProfileApp> = [ type: 'userProfileApp', alias: 'Umb.UserProfileApp.profile', name: 'Profile User Profile App', - loader: () => import('./user-profile-app-profile.element'), + loader: () => import('./user-profile-app-profile.element.js'), weight: 900, meta: { label: 'Profile User Profile App', @@ -16,7 +16,7 @@ export const userProfileApps: Array<ManifestUserProfileApp> = [ type: 'userProfileApp', alias: 'Umb.UserProfileApp.ExternalLoginProviders', name: 'External Login Providers User Profile App', - loader: () => import('./user-profile-app-external-login-providers.element'), + loader: () => import('./user-profile-app-external-login-providers.element.js'), weight: 800, meta: { label: 'External Login Providers User Profile App', @@ -27,7 +27,7 @@ export const userProfileApps: Array<ManifestUserProfileApp> = [ type: 'userProfileApp', alias: 'Umb.UserProfileApp.Themes', name: 'Themes User Profile App', - loader: () => import('./user-profile-app-themes.element'), + loader: () => import('./user-profile-app-themes.element.js'), weight: 200, meta: { label: 'Themes User Profile App', @@ -38,7 +38,7 @@ export const userProfileApps: Array<ManifestUserProfileApp> = [ type: 'userProfileApp', alias: 'Umb.UserProfileApp.History', name: 'History User Profile App', - loader: () => import('./user-profile-app-history.element'), + loader: () => import('./user-profile-app-history.element.js'), weight: 100, meta: { label: 'History User Profile App', diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/user-profile-apps/user-profile-app-external-login-providers.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/user-profile-apps/user-profile-app-external-login-providers.element.ts index fa14f2d93e..0c3bbe5c24 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/user-profile-apps/user-profile-app-external-login-providers.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/user-profile-apps/user-profile-app-external-login-providers.element.ts @@ -1,6 +1,5 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement } from 'lit/decorators.js'; +import { css, html , customElement } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-user-profile-app-external-login-providers') diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/user-profile-apps/user-profile-app-history.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/user-profile-apps/user-profile-app-history.element.ts index 4b2eba7caa..fdadb170eb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/user-profile-apps/user-profile-app-history.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/user-profile-apps/user-profile-app-history.element.ts @@ -1,11 +1,10 @@ -import { css, html, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, state } from 'lit/decorators.js'; import { UmbCurrentUserHistoryItem, UmbCurrentUserHistoryStore, UMB_CURRENT_USER_HISTORY_STORE_CONTEXT_TOKEN, -} from '../current-user-history.store'; +} from '../current-user-history.store.js'; +import { css, html, nothing , customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-user-profile-app-history') diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/user-profile-apps/user-profile-app-profile.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/user-profile-apps/user-profile-app-profile.element.ts index 09273f5e23..2573472d3c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/user-profile-apps/user-profile-app-profile.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/user-profile-apps/user-profile-app-profile.element.ts @@ -1,8 +1,7 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbCurrentUserStore, UMB_CURRENT_USER_STORE_CONTEXT_TOKEN } from '../current-user.store'; -import type { UmbLoggedInUser } from '../types'; +import { UmbCurrentUserStore, UMB_CURRENT_USER_STORE_CONTEXT_TOKEN } from '../current-user.store.js'; +import type { UmbLoggedInUser } from '../types.js'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbModalContext, UMB_CHANGE_PASSWORD_MODAL, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/user-profile-apps/user-profile-app-themes.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/user-profile-apps/user-profile-app-themes.element.ts index fe97d1a754..d60b2c9069 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/user-profile-apps/user-profile-app-themes.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/user-profile-apps/user-profile-app-themes.element.ts @@ -1,8 +1,6 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, state } from 'lit/decorators.js'; -import { UUISelectEvent } from '@umbraco-ui/uui'; -import { UmbThemeContext, UMB_THEME_CONTEXT_TOKEN } from '../../../settings/themes/theme.context'; +import { UmbThemeContext, UMB_THEME_CONTEXT_TOKEN } from '../../../settings/themes/theme.context.js'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles , UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { ManifestTheme, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/index.ts b/src/Umbraco.Web.UI.Client/src/packages/users/index.ts index 9a141ef242..2fe1593f81 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/index.ts @@ -1,20 +1,20 @@ -import { manifests as userGroupManifests } from './user-groups/manifests'; -import { manifests as userManifests } from './users/manifests'; -import { manifests as userSectionManifests } from './user-section/manifests'; -import { manifests as currentUserManifests } from './current-user/manifests'; +import { manifests as userGroupManifests } from './user-groups/manifests.js'; +import { manifests as userManifests } from './users/manifests.js'; +import { manifests as userSectionManifests } from './user-section/manifests.js'; +import { manifests as currentUserManifests } from './current-user/manifests.js'; -import { UmbCurrentUserStore, UMB_CURRENT_USER_STORE_CONTEXT_TOKEN } from './current-user/current-user.store'; +import { UmbCurrentUserStore, UMB_CURRENT_USER_STORE_CONTEXT_TOKEN } from './current-user/current-user.store.js'; import { UmbCurrentUserHistoryStore, UMB_CURRENT_USER_HISTORY_STORE_CONTEXT_TOKEN, -} from './current-user/current-user-history.store'; -import { UmbUserItemStore } from './users/repository/user-item.store'; -import { UmbUserGroupItemStore } from './user-groups/repository/user-group-item.store'; +} from './current-user/current-user-history.store.js'; +import { UmbUserItemStore } from './users/repository/user-item.store.js'; +import { UmbUserGroupItemStore } from './user-groups/repository/user-group-item.store.js'; import { UmbContextProviderController } from '@umbraco-cms/backoffice/context-api'; import { UmbEntryPointOnInit } from '@umbraco-cms/backoffice/extension-api'; -import './users/components'; -import './user-groups/components'; +import './users/components/index.js'; +import './user-groups/components/index.js'; export const manifests = [...userGroupManifests, ...userManifests, ...userSectionManifests, ...currentUserManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/umbraco-package.ts b/src/Umbraco.Web.UI.Client/src/packages/users/umbraco-package.ts index 9c89b478c0..b7745aca59 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/umbraco-package.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/umbraco-package.ts @@ -5,6 +5,6 @@ export const extensions = [ name: 'User Management Entry Point', alias: 'Umb.EntryPoint.UserManagement', type: 'entryPoint', - loader: () => import('./index'), + loader: () => import('./index.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-collection-header.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-collection-header.element.ts index 010073b580..acafe9148e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-collection-header.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-collection-header.element.ts @@ -1,8 +1,6 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement } from 'lit/decorators.js'; -import { UUIInputEvent } from '@umbraco-ui/uui'; -import { UmbUserGroupCollectionContext } from './user-group-collection.context'; +import { UmbUserGroupCollectionContext } from './user-group-collection.context.js'; +import { UUITextStyles , UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement } from '@umbraco-cms/backoffice/external/lit'; import { UMB_COLLECTION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/collection'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-collection-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-collection-view.element.ts index 06d5e8a7eb..5ba97446ae 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-collection-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-collection-view.element.ts @@ -1,13 +1,12 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbUserGroupCollectionContext } from './user-group-collection.context'; +import { UmbUserGroupCollectionContext } from './user-group-collection.context.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_COLLECTION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/collection'; import { UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import './user-group-table-name-column-layout.element'; -import './user-group-table-sections-column-layout.element'; +import './user-group-table-name-column-layout.element.js'; +import './user-group-table-sections-column-layout.element.js'; import { UmbTableColumn, UmbTableConfig, @@ -15,7 +14,7 @@ import { UmbTableElement, UmbTableItem, UmbTableSelectedEvent, -} from '@umbraco-cms/backoffice/core/components'; +} from '@umbraco-cms/backoffice/components'; @customElement('umb-user-group-collection-view') export class UmbUserGroupCollectionViewElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-collection.context.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-collection.context.ts index 99903738a6..5e34f817b6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-collection.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-collection.context.ts @@ -1,5 +1,5 @@ -import { USER_GROUP_REPOSITORY_ALIAS } from '../repository/manifests'; -import type { UmbUserGroupCollectionFilterModel } from '../types'; +import { USER_GROUP_REPOSITORY_ALIAS } from '../repository/manifests.js'; +import type { UmbUserGroupCollectionFilterModel } from '../types.js'; import { UmbCollectionContext } from '@umbraco-cms/backoffice/collection'; import type { UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-collection.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-collection.element.ts index a71fdc9e9e..e71ae5d934 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-collection.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-collection.element.ts @@ -1,12 +1,11 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement } from 'lit/decorators.js'; -import { UmbUserGroupCollectionContext } from './user-group-collection.context'; +import { UmbUserGroupCollectionContext } from './user-group-collection.context.js'; +import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UMB_COLLECTION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/collection'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import './user-group-collection-view.element'; -import './user-group-collection-header.element'; +import './user-group-collection-view.element.js'; +import './user-group-collection-header.element.js'; @customElement('umb-user-group-collection') export class UmbUserCollectionElement extends UmbLitElement { @@ -27,16 +26,7 @@ export class UmbUserCollectionElement extends UmbLitElement { `; } - static styles = [ - UUITextStyles, - css` - :host { - height: 100%; - display: flex; - flex-direction: column; - } - `, - ]; + static styles = [UUITextStyles, css``]; } export default UmbUserCollectionElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-table-name-column-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-table-name-column-layout.element.ts index 73e034d734..8126b122cf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-table-name-column-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-table-name-column-layout.element.ts @@ -1,6 +1,5 @@ -import { html, LitElement } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { UmbTableItem } from '@umbraco-cms/backoffice/core/components'; +import { html, LitElement , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UmbTableItem } from '@umbraco-cms/backoffice/components'; @customElement('umb-user-group-table-name-column-layout') export class UmbUserGroupTableNameColumnLayoutElement extends LitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-table-sections-column-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-table-sections-column-layout.element.ts index c70591e4dc..028a90f151 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-table-sections-column-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/collection/user-group-table-sections-column-layout.element.ts @@ -1,6 +1,5 @@ -import { html } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; -import type { UmbTableItem } from '@umbraco-cms/backoffice/core/components'; +import { html , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import type { UmbTableItem } from '@umbraco-cms/backoffice/components'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/components/index.ts index 830194fb3f..087396e3a3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/components/index.ts @@ -1 +1 @@ -import './input-user-group/user-group-input.element'; +import './input-user-group/user-group-input.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/components/input-user-group/user-group-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/components/input-user-group/user-group-input.element.ts index f3708533d4..484cf85461 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/components/input-user-group/user-group-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/components/input-user-group/user-group-input.element.ts @@ -1,8 +1,6 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; -import { UmbUserGroupPickerContext } from './user-group-input.context'; +import { UmbUserGroupPickerContext } from './user-group-input.context.js'; +import { css, html , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles, FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UserGroupItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/components/input-user-group/user-group-input.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/components/input-user-group/user-group-input.stories.ts index 7183422f23..df4a14f36e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/components/input-user-group/user-group-input.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/components/input-user-group/user-group-input.stories.ts @@ -1,6 +1,6 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import type { UmbUserGroupInputElement } from './user-group-input.element'; -import './user-group-input.element'; +import type { UmbUserGroupInputElement } from './user-group-input.element.js'; +import './user-group-input.element.js'; const meta: Meta<UmbUserGroupInputElement> = { title: 'User Group/Components/User Group Input', diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/components/input-user-group/user-group-input.test.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/components/input-user-group/user-group-input.test.ts index 365a8e50ec..adf885bbc1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/components/input-user-group/user-group-input.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/components/input-user-group/user-group-input.test.ts @@ -1,6 +1,6 @@ import { expect, fixture, html } from '@open-wc/testing'; //TODO: Test has been commented out while we figure out how to setup import maps for the test environment -// import { UmbPickerUserGroupElement } from './picker-user-group.element'; +// import { UmbPickerUserGroupElement } from './picker-user-group.element.js'; // import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; // describe('UmbPickerLayoutUserGroupElement', () => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/entity-bulk-actions/delete/delete.action.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/entity-bulk-actions/delete/delete.action.ts index 89382d2400..b53f564555 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/entity-bulk-actions/delete/delete.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/entity-bulk-actions/delete/delete.action.ts @@ -1,6 +1,6 @@ -import { html } from 'lit'; -import type { UmbUserGroupRepository } from '../../repository/user-group.repository'; -import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-action'; +import type { UmbUserGroupRepository } from '../../repository/user-group.repository.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; +import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/entity-bulk-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/entity-bulk-actions/manifests.ts index 3fcc3e40ac..7a73dba08c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/entity-bulk-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/entity-bulk-actions/manifests.ts @@ -1,5 +1,5 @@ -import { USER_GROUP_REPOSITORY_ALIAS } from '../repository/manifests'; -import { UmbDeleteUserGroupEntityBulkAction } from './delete/delete.action'; +import { USER_GROUP_REPOSITORY_ALIAS } from '../repository/manifests.js'; +import { UmbDeleteUserGroupEntityBulkAction } from './delete/delete.action.js'; import type { ManifestEntityBulkAction } from '@umbraco-cms/backoffice/extension-registry'; const entityType = 'user-group'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/index.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/index.ts index fcb073fefc..d4702960d5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/index.ts @@ -1 +1 @@ -export * from './types'; +export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/manifests.ts index 59c0a2fe23..7772c9b787 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/manifests.ts @@ -1,8 +1,8 @@ -import { manifests as repositoryManifests } from './repository/manifests'; -import { manifests as workspaceManifests } from './workspace/manifests'; -import { manifests as modalManifests } from './modals/manifests'; -import { manifests as sectionViewManifests } from './section-view/manifests'; -import { manifests as entityBulkActionManifests } from './entity-bulk-actions/manifests'; +import { manifests as repositoryManifests } from './repository/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; +import { manifests as modalManifests } from './modals/manifests.js'; +import { manifests as sectionViewManifests } from './section-view/manifests.js'; +import { manifests as entityBulkActionManifests } from './entity-bulk-actions/manifests.js'; export const manifests = [ ...repositoryManifests, diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/modals/manifests.ts index 6d98253400..3ca7f7c040 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/modals/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/modals/manifests.ts @@ -5,7 +5,7 @@ const modals: Array<ManifestModal> = [ type: 'modal', alias: 'Umb.Modal.UserGroupPicker', name: 'User Group Picker Modal', - loader: () => import('./user-group-picker/user-group-picker-modal.element'), + loader: () => import('./user-group-picker/user-group-picker-modal.element.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/modals/user-group-picker/user-group-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/modals/user-group-picker/user-group-picker-modal.element.ts index 5b167e2af3..4decd7b622 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/modals/user-group-picker/user-group-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/modals/user-group-picker/user-group-picker-modal.element.ts @@ -1,7 +1,6 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import type { UmbUserGroupRepository } from '../../repository/user-group.repository'; +import type { UmbUserGroupRepository } from '../../repository/user-group.repository.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbSelectionManagerBase } from '@umbraco-cms/backoffice/utils'; import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; @@ -72,7 +71,7 @@ export class UmbUserGroupPickerModalElement extends UmbModalBaseElement<any, any label=${item.name} selectable @selected=${() => this.#selectionManager.select(item.id!)} - @unselected=${() => this.#selectionManager.deselect(item.id!)} + @deselected=${() => this.#selectionManager.deselect(item.id!)} ?selected=${this.#selectionManager.isSelected(item.id!)}> <uui-icon .name=${item.icon} slot="icon"></uui-icon> </uui-menu-item> diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/modals/user-group-picker/user-group-picker-modal.test.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/modals/user-group-picker/user-group-picker-modal.test.ts index 0ca037bc6c..bd91f56c40 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/modals/user-group-picker/user-group-picker-modal.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/modals/user-group-picker/user-group-picker-modal.test.ts @@ -1,6 +1,6 @@ import { expect, fixture, html } from '@open-wc/testing'; //TODO: Test has been commented out while we figure out how to setup import maps for the test environment -// import { UmbPickerLayoutUserGroupElement } from './picker-layout-user-group.element'; +// import { UmbPickerLayoutUserGroupElement } from './picker-layout-user-group.element.js'; // import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; // describe('UmbPickerLayoutUserGroupElement', () => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/manifests.ts index 1efb542923..284f2eddfc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/manifests.ts @@ -1,5 +1,5 @@ -import { UmbUserGroupRepository } from '../repository/user-group.repository'; -import { UmbUserGroupStore } from './user-group.store'; +import { UmbUserGroupRepository } from '../repository/user-group.repository.js'; +import { UmbUserGroupStore } from './user-group.store.js'; import type { ManifestStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const USER_GROUP_REPOSITORY_ALIAS = 'Umb.Repository.UserGroup'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/sources/user-group-collection.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/sources/user-group-collection.server.data.ts index c4e8c864a3..16cc62733f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/sources/user-group-collection.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/sources/user-group-collection.server.data.ts @@ -1,4 +1,4 @@ -import type { UmbUserGroupCollectionFilterModel } from '../../types'; +import type { UmbUserGroupCollectionFilterModel } from '../../types.js'; import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/repository'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/sources/user-group.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/sources/user-group.server.data.ts index 9b6350479f..7ad04f728b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/sources/user-group.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/sources/user-group.server.data.ts @@ -1,4 +1,4 @@ -import { UmbUserGroupDetailDataSource } from '../../types'; +import { UmbUserGroupDetailDataSource } from '../../types.js'; import type { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; import { UserGroupResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/user-group.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/user-group.repository.ts index ebc9543fb1..758ec296a4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/user-group.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/user-group.repository.ts @@ -1,10 +1,10 @@ -import { Observable } from 'rxjs'; -import { UmbUserGroupCollectionFilterModel, UmbUserGroupDetailDataSource } from '../types'; -import { UmbUserGroupServerDataSource } from './sources/user-group.server.data'; -import { UmbUserGroupCollectionServerDataSource } from './sources/user-group-collection.server.data'; -import { UMB_USER_GROUP_ITEM_STORE_CONTEXT_TOKEN, UmbUserGroupItemStore } from './user-group-item.store'; -import { UMB_USER_GROUP_STORE_CONTEXT_TOKEN, UmbUserGroupStore } from './user-group.store'; -import { UmbUserGroupItemServerDataSource } from './sources/user-group-item.server.data'; +import { UmbUserGroupCollectionFilterModel, UmbUserGroupDetailDataSource } from '../types.js'; +import { UmbUserGroupServerDataSource } from './sources/user-group.server.data.js'; +import { UmbUserGroupCollectionServerDataSource } from './sources/user-group-collection.server.data.js'; +import { UMB_USER_GROUP_ITEM_STORE_CONTEXT_TOKEN, UmbUserGroupItemStore } from './user-group-item.store.js'; +import { UMB_USER_GROUP_STORE_CONTEXT_TOKEN, UmbUserGroupStore } from './user-group.store.js'; +import { UmbUserGroupItemServerDataSource } from './sources/user-group-item.server.data.js'; +import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import { CreateUserGroupRequestModel, UpdateUserGroupRequestModel, diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/user-group.store.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/user-group.store.ts index 0974d06f7f..a1c7bc0e00 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/user-group.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/user-group.store.ts @@ -1,4 +1,4 @@ -import type { UserGroupDetails } from '../types'; +import type { UserGroupDetails } from '../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/section-view/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/section-view/manifests.ts index 20bda788a6..8aff689b59 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/section-view/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/section-view/manifests.ts @@ -1,4 +1,4 @@ -import { UMB_USER_SECTION_ALIAS } from '../../user-section/manifests'; +import { UMB_USER_SECTION_ALIAS } from '../../user-section/manifests.js'; import type { ManifestSectionView } from '@umbraco-cms/backoffice/extension-registry'; const sectionsViews: Array<ManifestSectionView> = [ @@ -6,7 +6,7 @@ const sectionsViews: Array<ManifestSectionView> = [ type: 'sectionView', alias: 'Umb.SectionView.UserGroups', name: 'User Groups Section View', - loader: () => import('./user-groups-section-view.element'), + loader: () => import('./user-groups-section-view.element.js'), weight: 100, meta: { label: 'User Groups', diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/section-view/user-groups-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/section-view/user-groups-section-view.element.ts index ae5ea5a1bc..c27344bfc8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/section-view/user-groups-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/section-view/user-groups-section-view.element.ts @@ -1,6 +1,5 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement } from 'lit/decorators.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbRoute } from '@umbraco-cms/backoffice/router'; @@ -10,14 +9,14 @@ export class UmbUserGroupsSectionViewElement extends UmbLitElement { #routes: UmbRoute[] = [ { path: 'collection', - component: () => import('../collection/user-group-collection.element'), + component: () => import('../collection/user-group-collection.element.js'), }, { path: 'user-group', - component: () => import('../workspace/user-group-workspace.element'), + component: () => import('../workspace/user-group-workspace.element.js'), }, { - path: '**', + path: '', redirectTo: 'collection', }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/actions/workspace-action-user-group-save.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/actions/workspace-action-user-group-save.element.ts index 4949d85596..88212d32e6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/actions/workspace-action-user-group-save.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/actions/workspace-action-user-group-save.element.ts @@ -1,11 +1,9 @@ -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import type { UUIButtonState } from '@umbraco-ui/uui'; -import { UmbUserWorkspaceContext } from '../../../users/workspace/user-workspace.context'; +import { UmbUserWorkspaceContext } from '../../../users/workspace/user-workspace.context.js'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; - +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; @customElement('umb-workspace-action-user-group-save') export class UmbWorkspaceActionUserGroupSaveElement extends UmbLitElement { @state() diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/manifests.ts index 8a258147bd..bc64adb2e5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/manifests.ts @@ -9,7 +9,7 @@ const workspace: ManifestWorkspace = { type: 'workspace', alias: 'Umb.Workspace.UserGroup', name: 'User Group Workspace', - loader: () => import('./user-group-workspace.element'), + loader: () => import('./user-group-workspace.element.js'), meta: { entityType: 'user-group', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/user-group-workspace-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/user-group-workspace-editor.element.ts similarity index 87% rename from src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/user-group-workspace-edit.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/user-group-workspace-editor.element.ts index b53dd6ec8d..658a611590 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/user-group-workspace-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/user-group-workspace-editor.element.ts @@ -1,18 +1,16 @@ -import { UUIInputElement, UUIInputEvent } from '@umbraco-ui/uui'; -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html, nothing } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import UmbUserInputElement from '../../users/components/user-input/user-input.element'; -import { UmbUserGroupWorkspaceContext } from './user-group-workspace.context'; +import { UmbUserGroupWorkspaceContext } from './user-group-workspace.context.js'; +import { UUIInputElement, UUIInputEvent, UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +// TODO: import from package when available +//import { UmbUserInputElement } from '../../users/components/user-input/user-input.element.js'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import '../../../core/components/input-section/input-section.element'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UMB_CONFIRM_MODAL, UMB_MODAL_CONTEXT_TOKEN, UmbModalContext } from '@umbraco-cms/backoffice/modal'; -@customElement('umb-user-group-workspace-edit') -export class UmbUserGroupWorkspaceEditElement extends UmbLitElement { +@customElement('umb-user-group-workspace-editor') +export class UmbUserGroupWorkspaceEditorElement extends UmbLitElement { @state() private _userGroup?: UserGroupResponseModel; @@ -140,8 +138,9 @@ export class UmbUserGroupWorkspaceEditElement extends UmbLitElement { #renderRightColumn() { return html`<uui-box> <div slot="headline">Users</div> + <!-- change any to UmbUserInputElement when package is available --> <umb-user-input - @change=${(e: Event) => this.#onUsersChange((e.target as UmbUserInputElement).selectedIds)} + @change=${(e: Event) => this.#onUsersChange((e.target as any).selectedIds)} .selectedIds=${this._userKeys ?? []}></umb-user-input> </uui-box> <uui-box> @@ -197,10 +196,10 @@ export class UmbUserGroupWorkspaceEditElement extends UmbLitElement { ]; } -export default UmbUserGroupWorkspaceEditElement; +export default UmbUserGroupWorkspaceEditorElement; declare global { interface HTMLElementTagNameMap { - 'umb-user-group-workspace-edit': UmbUserGroupWorkspaceEditElement; + 'umb-user-group-workspace-editor': UmbUserGroupWorkspaceEditorElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/user-group-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/user-group-workspace.context.ts index 6a032c1870..cf72e7e863 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/user-group-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/user-group-workspace.context.ts @@ -1,5 +1,5 @@ -import { UmbUserGroupRepository } from '../repository/user-group.repository'; -import { UmbUserRepository } from '../../users/repository/user.repository'; +import { UmbUserGroupRepository } from '../repository/user-group.repository.js'; +import { UmbUserRepository } from '../../users/repository/user.repository.js'; import { UmbEntityWorkspaceContextInterface, UmbWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; import type { UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbArrayState, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/user-group-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/user-group-workspace.element.ts index 90ea50cd1a..99df04ce34 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/user-group-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/user-group-workspace.element.ts @@ -1,15 +1,14 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbUserGroupWorkspaceContext } from './user-group-workspace.context'; -import { UmbUserGroupWorkspaceEditElement } from './user-group-workspace-edit.element'; +import { UmbUserGroupWorkspaceContext } from './user-group-workspace.context.js'; +import { UmbUserGroupWorkspaceEditorElement } from './user-group-workspace-editor.element.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; @customElement('umb-user-group-workspace') export class UmbUserGroupWorkspaceElement extends UmbLitElement { #workspaceContext = new UmbUserGroupWorkspaceContext(this); - #element = new UmbUserGroupWorkspaceEditElement(); + #element = new UmbUserGroupWorkspaceEditorElement(); @state() _routes: UmbRoute[] = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/user-collection-header.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/user-collection-header.element.ts index ffe7482905..ecfcfe98d9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/user-collection-header.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/user-collection-header.element.ts @@ -1,9 +1,13 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UUIBooleanInputEvent, UUICheckboxElement, UUIRadioGroupElement, UUIRadioGroupEvent } from '@umbraco-ui/uui'; -import { UmbDropdownElement } from '../../../core/components/dropdown/dropdown.element'; -import { UmbUserCollectionContext } from './user-collection.context'; +import { UmbUserCollectionContext } from './user-collection.context.js'; +import { UUITextStyles , + UUIBooleanInputEvent, + UUICheckboxElement, + UUIRadioGroupElement, + UUIRadioGroupEvent, +} from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { UmbDropdownElement } from '@umbraco-cms/backoffice/components'; import { UMB_COLLECTION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/collection'; import { UMB_CREATE_USER_MODAL, @@ -11,13 +15,12 @@ import { UMB_MODAL_CONTEXT_TOKEN, UmbModalContext, } from '@umbraco-cms/backoffice/modal'; -import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UserOrderModel, UserStateModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-user-collection-header') export class UmbUserCollectionHeaderElement extends UmbLitElement { @state() - private _isCloud = true; //NOTE: Used to show either invite or create user buttons and views. + private _isCloud = false; //NOTE: Used to show either invite or create user buttons and views. @state() private _stateFilterOptions: Array<UserStateModel> = Object.values(UserStateModel); diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/user-collection.context.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/user-collection.context.ts index bebdf60885..2fb5d47281 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/user-collection.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/user-collection.context.ts @@ -1,5 +1,5 @@ -import { USER_REPOSITORY_ALIAS } from '../repository/manifests'; -import { UmbUserCollectionFilterModel } from '../types'; +import { USER_REPOSITORY_ALIAS } from '../repository/manifests.js'; +import { UmbUserCollectionFilterModel } from '../types.js'; import { UmbCollectionContext } from '@umbraco-cms/backoffice/collection'; import { UserOrderModel, UserResponseModel, UserStateModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/user-collection.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/user-collection.element.ts index cf7ab96194..5ea697f43d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/user-collection.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/user-collection.element.ts @@ -1,12 +1,11 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbUserCollectionContext } from './user-collection.context'; +import { UmbUserCollectionContext } from './user-collection.context.js'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UMB_COLLECTION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/collection'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; -import './user-collection-header.element'; +import './user-collection-header.element.js'; export type UsersViewType = 'list' | 'grid'; @customElement('umb-user-collection') @@ -17,14 +16,14 @@ export class UmbUserCollectionElement extends UmbLitElement { private _routes: UmbRoute[] = [ { path: 'grid', - component: () => import('./views/grid/user-collection-grid-view.element'), + component: () => import('./views/grid/user-collection-grid-view.element.js'), }, { path: 'list', - component: () => import('./views/table/user-collection-table-view.element'), + component: () => import('./views/table/user-collection-table-view.element.js'), }, { - path: '**', + path: '', redirectTo: 'grid', }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/views/grid/user-collection-grid-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/views/grid/user-collection-grid-view.element.ts index f3a1452c5f..d547f7b47e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/views/grid/user-collection-grid-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/views/grid/user-collection-grid-view.element.ts @@ -1,10 +1,7 @@ -import { css, html, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, state } from 'lit/decorators.js'; -import { repeat } from 'lit/directives/repeat.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { getLookAndColorFromUserStatus } from '../../../../utils'; -import { UmbUserCollectionContext } from '../../user-collection.context'; +import { getLookAndColorFromUserStatus } from '../../../../utils.js'; +import { UmbUserCollectionContext } from '../../user-collection.context.js'; +import { css, html, nothing , customElement, state , repeat , ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UMB_COLLECTION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/collection'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UserResponseModel, UserStateModel } from '@umbraco-cms/backoffice/backend-api'; @@ -54,7 +51,7 @@ export class UmbUserCollectionGridViewElement extends UmbLitElement { ?selected=${this.#collectionContext?.isSelected(user.id ?? '')} @open=${() => this._handleOpenCard(user.id ?? '')} @selected=${() => this.#onSelect(user)} - @unselected=${() => this.#onDeselect(user)}> + @deselected=${() => this.#onDeselect(user)}> ${this.#renderUserTag(user)} ${this.#renderUserLoginDate(user)} </uui-card-user> `; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/views/table/column-layouts/name/user-table-name-column-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/views/table/column-layouts/name/user-table-name-column-layout.element.ts index 09530ef602..cc4b6878ff 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/views/table/column-layouts/name/user-table-name-column-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/views/table/column-layouts/name/user-table-name-column-layout.element.ts @@ -1,6 +1,5 @@ -import { html, LitElement } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import type { UmbTableColumn, UmbTableItem } from '@umbraco-cms/backoffice/core/components'; +import { html, LitElement , customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import type { UmbTableColumn, UmbTableItem } from '@umbraco-cms/backoffice/components'; @customElement('umb-user-table-name-column-layout') export class UmbUserTableNameColumnLayoutElement extends LitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/views/table/column-layouts/status/user-table-status-column-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/views/table/column-layouts/status/user-table-status-column-layout.element.ts index 5ac48eced6..b79abfefc1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/views/table/column-layouts/status/user-table-status-column-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/views/table/column-layouts/status/user-table-status-column-layout.element.ts @@ -1,6 +1,5 @@ -import { html, LitElement, nothing } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { getLookAndColorFromUserStatus } from '../../../../../../utils'; +import { getLookAndColorFromUserStatus } from '../../../../../../utils.js'; +import { html, LitElement, nothing , customElement, property } from '@umbraco-cms/backoffice/external/lit'; @customElement('umb-user-table-status-column-layout') export class UmbUserTableStatusColumnLayoutElement extends LitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/views/table/user-collection-table-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/views/table/user-collection-table-view.element.ts index a006e86bb7..cc118d18ea 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/views/table/user-collection-table-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/collection/views/table/user-collection-table-view.element.ts @@ -1,11 +1,10 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbUserCollectionContext } from '../../user-collection.context'; +import { UmbUserCollectionContext } from '../../user-collection.context.js'; import { UmbUserGroupStore, UMB_USER_GROUP_STORE_CONTEXT_TOKEN, -} from '../../../../user-groups/repository/user-group.store'; +} from '../../../../user-groups/repository/user-group.store.js'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbTableElement, UmbTableColumn, @@ -14,14 +13,14 @@ import { UmbTableSelectedEvent, UmbTableConfig, UmbTableOrderedEvent, -} from '@umbraco-cms/backoffice/core/components'; +} from '@umbraco-cms/backoffice/components'; import type { UserGroupEntity } from '@umbraco-cms/backoffice/user-group'; import { UMB_COLLECTION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/collection'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UserResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import './column-layouts/name/user-table-name-column-layout.element'; -import './column-layouts/status/user-table-status-column-layout.element'; +import './column-layouts/name/user-table-name-column-layout.element.js'; +import './column-layouts/status/user-table-status-column-layout.element.js'; @customElement('umb-user-collection-table-view') export class UmbUserCollectionTableViewElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/components/index.ts index df0765ef5b..9166992fcc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/components/index.ts @@ -1 +1 @@ -import './user-input/user-input.element'; +import './user-input/user-input.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/components/user-input/user-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/components/user-input/user-input.element.ts index 167ab7e678..015fc91a71 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/components/user-input/user-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/components/user-input/user-input.element.ts @@ -1,8 +1,6 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, property, state } from 'lit/decorators.js'; -import { FormControlMixin } from '@umbraco-ui/uui-base/lib/mixins'; -import { UmbUserPickerContext } from './user-input.context'; +import { UmbUserPickerContext } from './user-input.context.js'; +import { css, html , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles, FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UserItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/components/user-input/user-input.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/components/user-input/user-input.stories.ts index 6ef641f6ef..4f3e686298 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/components/user-input/user-input.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/components/user-input/user-input.stories.ts @@ -1,6 +1,6 @@ import { Meta, StoryObj } from '@storybook/web-components'; -import './user-input.element'; -import type { UmbUserInputElement } from './user-input.element'; +import './user-input.element.js'; +import type { UmbUserInputElement } from './user-input.element.js'; const meta: Meta<UmbUserInputElement> = { title: 'Components/Inputs/User', diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/delete/delete.action.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/delete/delete.action.ts index c32c90557b..e798344bf1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/delete/delete.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/delete/delete.action.ts @@ -1,8 +1,9 @@ -import { UmbUserRepository } from '../../repository/user.repository'; -import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-action'; +import { UmbUserRepository } from '../../repository/user.repository.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; +import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; +import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; export class UmbUserDeleteEntityBulkAction extends UmbEntityBulkActionBase<UmbUserRepository> { #modalContext?: UmbModalContext; @@ -16,7 +17,22 @@ export class UmbUserDeleteEntityBulkAction extends UmbEntityBulkActionBase<UmbUs } async execute() { - //TODO: we need bulk actions on the server - alert('Bulk delete is not implemented yet'); + if (!this.#modalContext || this.selection.length === 0) return; + + const modalHandler = this.#modalContext.open(UMB_CONFIRM_MODAL, { + color: 'danger', + headline: `Delete users?`, + content: html`Are you sure you want to delete selected users?`, + confirmLabel: 'Delete', + }); + + await modalHandler.onSubmit(); + + //TODO: How should we handle bulk actions? right now we send a request per item we want to change. + //TODO: For now we have to reload the page to see the update + for (let index = 0; index < this.selection.length; index++) { + const element = this.selection[index]; + await this.repository?.delete(element); + } } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/disable/disable.action.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/disable/disable.action.ts index a3b0faf7d9..1a61e0590d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/disable/disable.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/disable/disable.action.ts @@ -1,6 +1,6 @@ -import { UmbUserRepository } from '../../repository/user.repository'; -import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-action'; +import { UmbUserRepository } from '../../repository/user.repository.js'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; export class UmbDisableUserEntityBulkAction extends UmbEntityBulkActionBase<UmbUserRepository> { constructor(host: UmbControllerHostElement, repositoryAlias: string, selection: Array<string>) { @@ -8,7 +8,6 @@ export class UmbDisableUserEntityBulkAction extends UmbEntityBulkActionBase<UmbU } async execute() { - //TODO: Implement - alert('Bulk disable is not implemented yet'); + await this.repository?.disable(this.selection); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/enable/enable.action.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/enable/enable.action.ts index 00eaf75896..8c13bb2f33 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/enable/enable.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/enable/enable.action.ts @@ -1,5 +1,5 @@ -import { UmbUserRepository } from '../../repository/user.repository'; -import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-action'; +import { UmbUserRepository } from '../../repository/user.repository.js'; +import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbEnableUserEntityBulkAction extends UmbEntityBulkActionBase<UmbUserRepository> { @@ -8,7 +8,6 @@ export class UmbEnableUserEntityBulkAction extends UmbEntityBulkActionBase<UmbUs } async execute() { - //TODO: Implement - alert('Bulk enable is not implemented yet'); + await this.repository?.enable(this.selection); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/manifests.ts index 9efa1517e9..3b847c792d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/manifests.ts @@ -1,8 +1,8 @@ -import { USER_REPOSITORY_ALIAS } from '../repository/manifests'; -import { UmbEnableUserEntityBulkAction } from './enable/enable.action'; -import { UmbSetGroupUserEntityBulkAction } from './set-group/set-group.action'; -import { UmbUnlockUserEntityBulkAction } from './unlock/unlock.action'; -import { UmbDisableUserEntityBulkAction } from './disable/disable.action'; +import { USER_REPOSITORY_ALIAS } from '../repository/manifests.js'; +import { UmbEnableUserEntityBulkAction } from './enable/enable.action.js'; +import { UmbSetGroupUserEntityBulkAction } from './set-group/set-group.action.js'; +import { UmbUnlockUserEntityBulkAction } from './unlock/unlock.action.js'; +import { UmbDisableUserEntityBulkAction } from './disable/disable.action.js'; import { ManifestEntityBulkAction } from '@umbraco-cms/backoffice/extension-registry'; const entityType = 'user'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/set-group/set-group.action.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/set-group/set-group.action.ts index 06d4a961cf..dc693f7d06 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/set-group/set-group.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/set-group/set-group.action.ts @@ -1,5 +1,5 @@ -import { UmbUserRepository } from '../../repository/user.repository'; -import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-action'; +import { UmbUserRepository } from '../../repository/user.repository.js'; +import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/unlock/unlock.action.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/unlock/unlock.action.ts index 114e8924e5..2d183d52ed 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/unlock/unlock.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/entity-bulk-actions/unlock/unlock.action.ts @@ -1,5 +1,5 @@ -import { UmbUserRepository } from '../../repository/user.repository'; -import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-action'; +import { UmbUserRepository } from '../../repository/user.repository.js'; +import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbUnlockUserEntityBulkAction extends UmbEntityBulkActionBase<UmbUserRepository> { @@ -8,7 +8,6 @@ export class UmbUnlockUserEntityBulkAction extends UmbEntityBulkActionBase<UmbUs } async execute() { - //TODO: Implement - alert('Bulk unlock is not implemented yet'); + await this.repository?.unlock(this.selection); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/index.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/index.ts new file mode 100644 index 0000000000..d4702960d5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/index.ts @@ -0,0 +1 @@ +export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/manifests.ts index 59c0a2fe23..7772c9b787 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/manifests.ts @@ -1,8 +1,8 @@ -import { manifests as repositoryManifests } from './repository/manifests'; -import { manifests as workspaceManifests } from './workspace/manifests'; -import { manifests as modalManifests } from './modals/manifests'; -import { manifests as sectionViewManifests } from './section-view/manifests'; -import { manifests as entityBulkActionManifests } from './entity-bulk-actions/manifests'; +import { manifests as repositoryManifests } from './repository/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; +import { manifests as modalManifests } from './modals/manifests.js'; +import { manifests as sectionViewManifests } from './section-view/manifests.js'; +import { manifests as entityBulkActionManifests } from './entity-bulk-actions/manifests.js'; export const manifests = [ ...repositoryManifests, diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/modals/create/user-create-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/modals/create/user-create-modal.element.ts index 4cc334ecce..166c12eaad 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/modals/create/user-create-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/modals/create/user-create-modal.element.ts @@ -1,10 +1,8 @@ -import { css, html, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, query, state } from 'lit/decorators.js'; -import { UUIInputPasswordElement } from '@umbraco-ui/uui'; +import { UmbUserGroupInputElement } from '../../../user-groups/components/input-user-group/user-group-input.element.js'; +import { UmbUserRepository } from '../../repository/user.repository.js'; +import { css, html, nothing , customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles , UUIInputPasswordElement } from '@umbraco-cms/backoffice/external/uui'; // TODO: we need to import this from the user group module when it is ready -import { UmbUserGroupInputElement } from '../../../user-groups/components/input-user-group/user-group-input.element'; -import { UmbUserRepository } from '../../repository/user.repository'; import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; import { UmbNotificationDefaultData, diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/modals/invite/user-invite-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/modals/invite/user-invite-modal.element.ts index 47fd7c568e..9008188fc5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/modals/invite/user-invite-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/modals/invite/user-invite-modal.element.ts @@ -1,8 +1,7 @@ -import { css, html, nothing } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, query, state } from 'lit/decorators.js'; -import { UmbUserGroupInputElement } from '../../../user-groups/components/input-user-group/user-group-input.element'; -import { UmbUserRepository } from '../../repository/user.repository'; +import { UmbUserGroupInputElement } from '../../../user-groups/components/input-user-group/user-group-input.element.js'; +import { UmbUserRepository } from '../../repository/user.repository.js'; +import { css, html, nothing , customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; import type { UserResponseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -40,18 +39,17 @@ export class UmbUserInviteModalElement extends UmbModalBaseElement { // TODO: figure out when to use email or username // TODO: invite request gives 500 error. - alert('Implement invite'); - // const { data } = await this.#userRepository.invite({ - // name, - // email, - // userName: email, - // message, - // userGroupIds, - // }); + const { data } = await this.#userRepository.invite({ + name, + email, + userName: email, + message, + userGroupIds, + }); - // if (data) { - // this._invitedUser = data; - // } + if (data) { + this._invitedUser = data; + } } private _submitForm() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/modals/manifests.ts index 87486b3cef..220a581f0b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/modals/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/modals/manifests.ts @@ -5,19 +5,19 @@ const modals: Array<ManifestModal> = [ type: 'modal', alias: 'Umb.Modal.CreateUser', name: 'Create User Modal', - loader: () => import('./create/user-create-modal.element'), + loader: () => import('./create/user-create-modal.element.js'), }, { type: 'modal', alias: 'Umb.Modal.InviteUser', name: 'Invite User Modal', - loader: () => import('./invite/user-invite-modal.element'), + loader: () => import('./invite/user-invite-modal.element.js'), }, { type: 'modal', alias: 'Umb.Modal.UserPicker', name: 'User Picker Modal', - loader: () => import('./user-picker/user-picker-modal.element'), + loader: () => import('./user-picker/user-picker-modal.element.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/modals/user-picker/user-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/modals/user-picker/user-picker-modal.element.ts index f909692d36..4ae644dc16 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/modals/user-picker/user-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/modals/user-picker/user-picker-modal.element.ts @@ -1,7 +1,6 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbUserRepository } from '../../repository/user.repository'; +import { UmbUserRepository } from '../../repository/user.repository.js'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbUserPickerModalData, UmbUserPickerModalResult } from '@umbraco-cms/backoffice/modal'; import { createExtensionClass } from '@umbraco-cms/backoffice/extension-api'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @@ -67,7 +66,7 @@ export class UmbUserPickerModalElement extends UmbModalBaseElement<UmbUserPicker label=${user.name} selectable @selected=${() => this.#selectionManager.select(user.id!)} - @unselected=${() => this.#selectionManager.deselect(user.id!)} + @deselected=${() => this.#selectionManager.deselect(user.id!)} ?selected=${this.#selectionManager.isSelected(user.id!)}> <uui-avatar slot="icon" name=${user.name}></uui-avatar> </uui-menu-item> diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/manifests.ts index c5dfe9ff57..91f6e33d3f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/manifests.ts @@ -1,5 +1,5 @@ -import { UmbUserRepository } from '../repository/user.repository'; -import { UmbUserStore } from './user.store'; +import { UmbUserRepository } from '../repository/user.repository.js'; +import { UmbUserStore } from './user.store.js'; import type { ManifestStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const USER_REPOSITORY_ALIAS = 'Umb.Repository.User'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-collection.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-collection.server.data.ts index 65513786be..4ccf557818 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-collection.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-collection.server.data.ts @@ -1,4 +1,4 @@ -import type { UmbUserCollectionFilterModel } from '../../types'; +import type { UmbUserCollectionFilterModel } from '../../types.js'; import { UmbCollectionDataSource } from '@umbraco-cms/backoffice/repository'; import { UserResponseModel, UserResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-disable.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-disable.server.data.ts new file mode 100644 index 0000000000..2b08017584 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-disable.server.data.ts @@ -0,0 +1,41 @@ +import { UmbUserDisableDataSource } from '../../types.js'; +import { UserResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +/** + * A data source for Data Type items that fetches data from the server + * @export + * @class UmbUserDisableServerDataSource + */ +export class UmbUserDisableServerDataSource implements UmbUserDisableDataSource { + #host: UmbControllerHostElement; + + /** + * Creates an instance of UmbUserDisableServerDataSource. + * @param {UmbControllerHostElement} host + * @memberof UmbUserDisableServerDataSource + */ + constructor(host: UmbControllerHostElement) { + this.#host = host; + } + + /** + * Set groups for users + * @param {Array<string>} id + * @return {*} + * @memberof UmbUserDisableServerDataSource + */ + async disable(userIds: string[]) { + if (!userIds) throw new Error('User ids are missing'); + + return tryExecuteAndNotify( + this.#host, + UserResource.postUserDisable({ + requestBody: { + userIds, + }, + }) + ); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-enable.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-enable.server.data.ts new file mode 100644 index 0000000000..d7a2680026 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-enable.server.data.ts @@ -0,0 +1,41 @@ +import { UmbUserEnableDataSource } from '../../types.js'; +import { UserResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +/** + * A data source for Data Type items that fetches data from the server + * @export + * @class UmbUserEnableServerDataSource + */ +export class UmbUserEnableServerDataSource implements UmbUserEnableDataSource { + #host: UmbControllerHostElement; + + /** + * Creates an instance of UmbUserEnableServerDataSource. + * @param {UmbControllerHostElement} host + * @memberof UmbUserEnableServerDataSource + */ + constructor(host: UmbControllerHostElement) { + this.#host = host; + } + + /** + * Set groups for users + * @param {Array<string>} id + * @return {*} + * @memberof UmbUserEnableServerDataSource + */ + async enable(userIds: string[]) { + if (!userIds) throw new Error('User ids are missing'); + + return tryExecuteAndNotify( + this.#host, + UserResource.postUserEnable({ + requestBody: { + userIds, + }, + }) + ); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-set-group.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-set-group.server.data.ts index 1d71c7bcf9..5fd00f9da9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-set-group.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-set-group.server.data.ts @@ -1,4 +1,4 @@ -import { UmbUserSetGroupDataSource } from '../../types'; +import { UmbUserSetGroupDataSource } from '../../types.js'; import { UserResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-unlock.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-unlock.server.data.ts new file mode 100644 index 0000000000..08e7aecb93 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-unlock.server.data.ts @@ -0,0 +1,41 @@ +import { UmbUserUnlockDataSource } from '../../types.js'; +import { UserResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +/** + * A data source for Data Type items that fetches data from the server + * @export + * @class UmbUserUnlockServerDataSource + */ +export class UmbUserUnlockServerDataSource implements UmbUserUnlockDataSource { + #host: UmbControllerHostElement; + + /** + * Creates an instance of UmbUserUnlockServerDataSource. + * @param {UmbControllerHostElement} host + * @memberof UmbUserUnlockServerDataSource + */ + constructor(host: UmbControllerHostElement) { + this.#host = host; + } + + /** + * unlock users + * @param {Array<string>} id + * @return {*} + * @memberof UmbUserUnlockServerDataSource + */ + async unlock(userIds: string[]) { + if (!userIds) throw new Error('User ids are missing'); + + return tryExecuteAndNotify( + this.#host, + UserResource.postUserUnlock({ + requestBody: { + userIds, + }, + }) + ); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user.server.data.ts index 4e5cbba292..69d217d89f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user.server.data.ts @@ -1,4 +1,4 @@ -import { UmbUserDetailDataSource } from '../../types'; +import { UmbUserDetailDataSource } from '../../types.js'; import { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; import { CreateUserRequestModel, @@ -66,16 +66,4 @@ export class UmbUserServerDataSource implements UmbUserDetailDataSource { if (!data) throw new Error('Invite data is missing'); return tryExecuteAndNotify(this.#host, UserResource.postUserInvite({ requestBody: data })); } - - // Enable - enable(data: EnableUserRequestModel) { - if (!data) throw new Error('enable data is missing'); - return tryExecuteAndNotify(this.#host, UserResource.postUserEnable({ requestBody: data })); - } - - // Disable - disable(data: DisableUserRequestModel) { - if (!data) throw new Error('disable data is missing'); - return tryExecuteAndNotify(this.#host, UserResource.postUserDisable({ requestBody: data })); - } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/user.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/user.repository.ts index 94e6063f7d..098c660587 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/user.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/user.repository.ts @@ -3,20 +3,25 @@ import { UmbUserDetailDataSource, UmbUserDetailRepository, UmbUserSetGroupDataSource, -} from '../types'; -import { UMB_USER_STORE_CONTEXT_TOKEN, UmbUserStore } from './user.store'; -import { UmbUserServerDataSource } from './sources/user.server.data'; -import { UmbUserCollectionServerDataSource } from './sources/user-collection.server.data'; -import { UmbUserItemServerDataSource } from './sources/user-item.server.data'; -import { UMB_USER_ITEM_STORE_CONTEXT_TOKEN, UmbUserItemStore } from './user-item.store'; -import { UmbUserSetGroupsServerDataSource } from './sources/user-set-group.server.data'; +} from '../types.js'; + +import { UMB_USER_STORE_CONTEXT_TOKEN, UmbUserStore } from './user.store.js'; +import { UmbUserServerDataSource } from './sources/user.server.data.js'; +import { UmbUserCollectionServerDataSource } from './sources/user-collection.server.data.js'; +import { UmbUserItemServerDataSource } from './sources/user-item.server.data.js'; +import { UMB_USER_ITEM_STORE_CONTEXT_TOKEN, UmbUserItemStore } from './user-item.store.js'; +import { UmbUserSetGroupsServerDataSource } from './sources/user-set-group.server.data.js'; +import { UmbUserEnableServerDataSource } from './sources/user-enable.server.data.js'; +import { UmbUserDisableServerDataSource } from './sources/user-disable.server.data.js'; +import { UmbUserUnlockServerDataSource } from './sources/user-unlock.server.data.js'; + +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbCollectionDataSource, UmbCollectionRepository, UmbItemDataSource, UmbItemRepository, } from '@umbraco-cms/backoffice/repository'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { CreateUserRequestModel, InviteUserRequestModel, @@ -39,6 +44,11 @@ export class UmbUserRepository #itemStore?: UmbUserItemStore; #setUserGroupsSource: UmbUserSetGroupDataSource; + //ACTIONS + #enableSource: UmbUserEnableServerDataSource; + #disableSource: UmbUserDisableServerDataSource; + #unlockSource: UmbUserUnlockServerDataSource; + #collectionSource: UmbCollectionDataSource<UserResponseModel>; #notificationContext?: UmbNotificationContext; @@ -48,6 +58,9 @@ export class UmbUserRepository this.#detailSource = new UmbUserServerDataSource(this.#host); this.#collectionSource = new UmbUserCollectionServerDataSource(this.#host); + this.#enableSource = new UmbUserEnableServerDataSource(this.#host); + this.#disableSource = new UmbUserDisableServerDataSource(this.#host); + this.#unlockSource = new UmbUserUnlockServerDataSource(this.#host); this.#itemSource = new UmbUserItemServerDataSource(this.#host); this.#setUserGroupsSource = new UmbUserSetGroupsServerDataSource(this.#host); @@ -199,12 +212,36 @@ export class UmbUserRepository async enable(ids: Array<string>) { if (ids.length === 0) throw new Error('User ids are missing'); - const { data, error } = await this.#detailSource.enable({ userIds: ids }); + const { error } = await this.#enableSource.enable(ids); + + if (!error) { + //TODO: UPDATE STORE + const notification = { data: { message: `${ids.length > 1 ? 'Users' : 'User'} enabled` } }; + this.#notificationContext?.peek('positive', notification); + } } async disable(ids: Array<string>) { if (ids.length === 0) throw new Error('User ids are missing'); - const { data, error } = await this.#detailSource.disable({ userIds: ids }); + const { error } = await this.#disableSource.disable(ids); + + if (!error) { + //TODO: UPDATE STORE + const notification = { data: { message: `${ids.length > 1 ? 'Users' : 'User'} disabled` } }; + this.#notificationContext?.peek('positive', notification); + } + } + + async unlock(ids: Array<string>) { + if (ids.length === 0) throw new Error('User ids are missing'); + + const { error } = await this.#unlockSource.unlock(ids); + + if (!error) { + //TODO: UPDATE STORE + const notification = { data: { message: `${ids.length > 1 ? 'Users' : 'User'} unlocked` } }; + this.#notificationContext?.peek('positive', notification); + } } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/section-view/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/section-view/manifests.ts index e182fc3978..d6434fb654 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/section-view/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/section-view/manifests.ts @@ -1,4 +1,4 @@ -import { UMB_USER_SECTION_ALIAS } from '../../user-section/manifests'; +import { UMB_USER_SECTION_ALIAS } from '../../user-section/manifests.js'; import type { ManifestSectionView } from '@umbraco-cms/backoffice/extension-registry'; const sectionsViews: Array<ManifestSectionView> = [ @@ -6,7 +6,7 @@ const sectionsViews: Array<ManifestSectionView> = [ type: 'sectionView', alias: 'Umb.SectionView.Users', name: 'Users Section View', - loader: () => import('./users-section-view.element'), + loader: () => import('./users-section-view.element.js'), weight: 200, meta: { label: 'Users', diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/section-view/users-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/section-view/users-section-view.element.ts index a48f009d46..6c2326f658 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/section-view/users-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/section-view/users-section-view.element.ts @@ -1,10 +1,9 @@ -import { css, html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement } from 'lit/decorators.js'; +import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; -import '../collection/views/table/user-collection-table-view.element'; -import '../collection/views/grid/user-collection-grid-view.element'; +import '../collection/views/table/user-collection-table-view.element.js'; +import '../collection/views/grid/user-collection-grid-view.element.js'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -13,14 +12,14 @@ export class UmbSectionViewUsersElement extends UmbLitElement { #routes: UmbRoute[] = [ { path: 'collection', - component: () => import('../collection/user-collection.element'), + component: () => import('../collection/user-collection.element.js'), }, { path: 'user', - component: () => import('../workspace/user-workspace.element'), + component: () => import('../workspace/user-workspace.element.js'), }, { - path: '**', + path: '', redirectTo: 'collection', }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/types.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/types.ts index 5faf7a45bd..e52348d32c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/types.ts @@ -2,8 +2,6 @@ import type { CreateUserRequestModel, CreateUserResponseModel, DirectionModel, - DisableUserRequestModel, - EnableUserRequestModel, InviteUserRequestModel, UpdateUserRequestModel, UserOrderModel, @@ -11,12 +9,7 @@ import type { UserStateModel, } from '@umbraco-cms/backoffice/backend-api'; -import { - DataSourceResponse, - UmbDataSource, - UmbDataSourceErrorResponse, - UmbDetailRepository, -} from '@umbraco-cms/backoffice/repository'; +import { UmbDataSource, UmbDataSourceErrorResponse, UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; export interface UmbCreateUserResponseModel { user: UserResponseModel; @@ -36,14 +29,22 @@ export interface UmbUserCollectionFilterModel { export interface UmbUserDetailDataSource extends UmbDataSource<CreateUserRequestModel, CreateUserResponseModel, UpdateUserRequestModel, UserResponseModel> { invite(data: InviteUserRequestModel): Promise<any>; - enable(data: EnableUserRequestModel): Promise<any>; - disable(data: DisableUserRequestModel): Promise<any>; } export interface UmbUserSetGroupDataSource { setGroups(userIds: string[], userGroupIds: string[]): Promise<UmbDataSourceErrorResponse>; } +export interface UmbUserDisableDataSource { + disable(userIds: string[]): Promise<UmbDataSourceErrorResponse>; +} +export interface UmbUserEnableDataSource { + enable(userIds: string[]): Promise<UmbDataSourceErrorResponse>; +} +export interface UmbUserUnlockDataSource { + unlock(userIds: string[]): Promise<UmbDataSourceErrorResponse>; +} + export interface UmbUserDetailRepository extends UmbDetailRepository< CreateUserRequestModel, diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/actions/user-workspace-action-save.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/actions/user-workspace-action-save.element.ts index 15e4700487..6638ef75d9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/actions/user-workspace-action-save.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/actions/user-workspace-action-save.element.ts @@ -1,11 +1,9 @@ -import { css, html } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import type { UUIButtonState } from '@umbraco-ui/uui'; -import { UmbUserWorkspaceContext } from '../user-workspace.context'; +import { UmbUserWorkspaceContext } from '../user-workspace.context.js'; +import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; - +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; @customElement('umb-user-workspace-action-save') export class UmbUserWorkspaceActionSaveElement extends UmbLitElement { @state() diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/manifests.ts index d3bc3c3502..df5094a53a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/manifests.ts @@ -9,7 +9,7 @@ const workspace: ManifestWorkspace = { type: 'workspace', alias: 'Umb.Workspace.User', name: 'User Workspace', - loader: () => import('./user-workspace.element'), + loader: () => import('./user-workspace.element.js'), meta: { entityType: 'user', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/user-workspace-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/user-workspace-editor.element.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/user-workspace-edit.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/user-workspace-editor.element.ts index 8082f2475d..9849a5d2dd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/user-workspace-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/user-workspace-editor.element.ts @@ -1,27 +1,32 @@ -import { UUIInputElement, UUIInputEvent } from '@umbraco-ui/uui'; -import { css, html, nothing, TemplateResult } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, state } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { repeat } from 'lit/directives/repeat.js'; +import { UmbCurrentUserStore, UMB_CURRENT_USER_STORE_CONTEXT_TOKEN } from '../../current-user/current-user.store.js'; +import { getLookAndColorFromUserStatus } from '../../utils.js'; +import { UmbUserRepository } from '../repository/user.repository.js'; +import { UmbUserGroupInputElement } from '../../user-groups/components/input-user-group/user-group-input.element.js'; +import { UmbUserWorkspaceContext } from './user-workspace.context.js'; +import { UUIInputElement, UUIInputEvent, UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { + css, + html, + nothing, + TemplateResult, + customElement, + state, + ifDefined, + repeat, +} from '@umbraco-cms/backoffice/external/lit'; -import { UmbCurrentUserStore, UMB_CURRENT_USER_STORE_CONTEXT_TOKEN } from '../../current-user/current-user.store'; -import { getLookAndColorFromUserStatus } from '../../utils'; -import { UmbUserRepository } from '../repository/user.repository'; -import UmbUserGroupInputElement from '../../user-groups/components/input-user-group/user-group-input.element'; -import { UmbUserWorkspaceContext } from './user-workspace.context'; import { UMB_CHANGE_PASSWORD_MODAL } from '@umbraco-cms/backoffice/modal'; import type { UmbModalContext } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; +import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UserResponseModel, UserStateModel } from '@umbraco-cms/backoffice/backend-api'; import { createExtensionClass } from '@umbraco-cms/backoffice/extension-api'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; -@customElement('umb-user-workspace-edit') -export class UmbUserWorkspaceEditElement extends UmbLitElement { +@customElement('umb-user-workspace-editor') +export class UmbUserWorkspaceEditorElement extends UmbLitElement { @state() private _currentUser?: any; @@ -374,10 +379,10 @@ export class UmbUserWorkspaceEditElement extends UmbLitElement { ]; } -export default UmbUserWorkspaceEditElement; +export default UmbUserWorkspaceEditorElement; declare global { interface HTMLElementTagNameMap { - 'umb-user-workspace-edit': UmbUserWorkspaceEditElement; + 'umb-user-workspace-editor': UmbUserWorkspaceEditorElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/user-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/user-workspace.context.ts index 5ec7e3ad72..2417ca9cc6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/user-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/user-workspace.context.ts @@ -1,4 +1,4 @@ -import { UmbUserRepository } from '../repository/user.repository'; +import { UmbUserRepository } from '../repository/user.repository.js'; import { UmbEntityWorkspaceContextInterface, UmbWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UpdateUserRequestModel, UserResponseModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/user-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/user-workspace.element.ts index ecbed62ac3..a95c6042a8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/user-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/user-workspace.element.ts @@ -1,15 +1,14 @@ -import { html } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; -import { customElement, state } from 'lit/decorators.js'; -import { UmbUserWorkspaceContext } from './user-workspace.context'; -import { UmbUserWorkspaceEditElement } from './user-workspace-edit.element'; +import { UmbUserWorkspaceContext } from './user-workspace.context.js'; +import { UmbUserWorkspaceEditorElement } from './user-workspace-editor.element.js'; +import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; @customElement('umb-user-workspace') export class UmbUserWorkspaceElement extends UmbLitElement { #workspaceContext = new UmbUserWorkspaceContext(this); - #element = new UmbUserWorkspaceEditElement(); + #element = new UmbUserWorkspaceEditorElement(); @state() _routes: UmbRoute[] = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/user-workspace.test.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/user-workspace.test.ts index 561054e141..95525953f4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/user-workspace.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/workspace/user-workspace.test.ts @@ -1,7 +1,7 @@ import { expect, fixture, html } from '@open-wc/testing'; //TODO: Test has been commented out while we figure out how to setup import maps for the test environment // import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; -// import UmbWorkspaceUserElement from './editor-user.element'; +// import UmbWorkspaceUserElement from './editor-user.element.js'; // describe('UmbWorkspaceUserElement', () => { // let element: UmbWorkspaceUserElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/utils.test.ts b/src/Umbraco.Web.UI.Client/src/packages/users/utils.test.ts index 56e8f0f197..29d0b8c150 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/utils.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/utils.test.ts @@ -1,6 +1,6 @@ import { expect } from '@open-wc/testing'; -import { InterfaceColor, InterfaceLook } from '@umbraco-ui/uui-base/lib/types'; -import { getLookAndColorFromUserStatus } from './utils'; +import { getLookAndColorFromUserStatus } from './utils.js'; +import { InterfaceColor, InterfaceLook } from '@umbraco-cms/backoffice/external/uui'; import { UserStateModel } from '@umbraco-cms/backoffice/backend-api'; describe('UmbUserExtensions', () => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/utils.ts b/src/Umbraco.Web.UI.Client/src/packages/users/utils.ts index 18bfa29ba1..c3a95ed99f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/utils.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/utils.ts @@ -1,4 +1,4 @@ -import { InterfaceColor, InterfaceLook } from '@umbraco-ui/uui-base/lib/types'; +import { InterfaceColor, InterfaceLook } from '@umbraco-cms/backoffice/external/uui'; import { UserStateModel } from '@umbraco-cms/backoffice/backend-api'; export const getLookAndColorFromUserStatus = ( diff --git a/src/Umbraco.Web.UI.Client/src/rollup.config.js b/src/Umbraco.Web.UI.Client/src/rollup.config.js new file mode 100644 index 0000000000..c88cc00caa --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/rollup.config.js @@ -0,0 +1,62 @@ +import esbuild from 'rollup-plugin-esbuild'; +import commonjs from '@rollup/plugin-commonjs'; +import { nodeResolve } from '@rollup/plugin-node-resolve'; +import { readdirSync, lstatSync, rmSync, cpSync, copyFileSync } from 'fs'; + +/* TODO Temp solution. I can't find a way for rollup to overwrite the external folder that is already created +by tsc. So I'm deleting it before the build.*/ +console.log('--- Deleting existing external folder ---'); +rmSync('./dist-cms/external', { recursive: true, force: true }); +console.log('--- Deleting existing external done ---'); + +// Copy assets +console.log('--- Copying assets ---'); +cpSync('./src/assets', './dist-cms/assets', { recursive: true }); +console.log('--- Copying assets done ---'); + +// Copy SRC CSS +console.log('--- Copying src CSS ---'); +cpSync('./src/css', './dist-cms/css', { recursive: true }); +console.log('--- Copying src CSS done ---'); + +// Copy UUI CSS +console.log('--- Copying UUI CSS ---'); +copyFileSync('./node_modules/@umbraco-ui/uui-css/dist/uui-css.css', './dist-cms/css/uui-css.css'); +console.log('--- Copying src UUI CSS done ---'); + +// Copy UUI FONTS +console.log('--- Copying UUI Fonts ---'); +cpSync('./node_modules/@umbraco-ui/uui-css/assets/fonts', './dist-cms/assets/fonts', { recursive: true }); +console.log('--- Copying src UUI Fonts done ---'); + +const readFolders = (path) => readdirSync(path).filter((folder) => lstatSync(`${path}/${folder}`).isDirectory()); +const createModuleDescriptors = (folderName) => + readFolders(`./src/${folderName}`).map((moduleName) => { + return { + name: moduleName, + file: `index.ts`, + root: `./src/${folderName}/${moduleName}`, + dist: `./dist-cms/${folderName}/${moduleName}`, + }; + }); + +const externals = createModuleDescriptors('external'); +const exclude = []; +const allowed = externals.filter((module) => !exclude.includes(module.name)); + +// TODO: Minify code +export default allowed + .map((module) => { + /** @type {import('rollup').RollupOptions[]} */ + return [ + { + input: `./src/external/${module.name}/index.ts`, + output: { + dir: `./dist-cms/external/${module.name}`, + format: 'es', + }, + plugins: [nodeResolve(), commonjs(), esbuild()], + }, + ]; + }) + .flat(); diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icon.registry.ts b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icon.registry.ts index 8c99469202..bd0dff6933 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icon.registry.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icon.registry.ts @@ -1,5 +1,5 @@ -import { UUIIconRegistry } from '@umbraco-ui/uui-icon-registry'; -import icons from '../../../public-assets/icons/icons.json'; +import icons from './icons/icons.json' assert { type: "json" }; +import { UUIIconRegistry } from '@umbraco-cms/backoffice/external/uui'; interface UmbIconDescriptor { name: string; @@ -23,8 +23,7 @@ export class UmbIconRegistry extends UUIIconRegistry { if (!iconManifest) return false; const icon = this.provideIcon(iconName); - - const iconPath = `${import.meta.env.BASE_URL}${iconManifest.path}`; + const iconPath = iconManifest.path; import(/* @vite-ignore */ iconPath) .then((iconModule) => { diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icon.stories.ts b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icon.stories.ts index 5e6ce9acbd..7fc4a67233 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icon.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icon.stories.ts @@ -1,7 +1,6 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; -import { repeat } from 'lit/directives/repeat.js'; -import icons from '../../../public-assets/icons/icons.json'; +import icons from '../../../src/shared/icon-registry/icons/icons.json'; +import { html , repeat } from '@umbraco-cms/backoffice/external/lit'; export default { title: 'API/Icons', diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-activity.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-activity.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-activity.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-activity.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-add.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-add.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-add.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-add.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-addressbook.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-addressbook.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-addressbook.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-addressbook.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-alarm-clock.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-alarm-clock.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-alarm-clock.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-alarm-clock.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-alert-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-alert-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-alert-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-alert-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-alert.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-alert.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-alert.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-alert.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-anchor.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-anchor.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-anchor.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-anchor.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-app.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-app.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-app.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-app.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-application-error.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-application-error.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-application-error.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-application-error.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-application-window-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-application-window-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-application-window-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-application-window-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-application-window.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-application-window.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-application-window.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-application-window.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-arrivals.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-arrivals.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-arrivals.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-arrivals.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-arrow-down.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-arrow-down.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-arrow-down.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-arrow-down.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-arrow-left.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-arrow-left.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-arrow-left.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-arrow-left.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-arrow-right.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-arrow-right.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-arrow-right.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-arrow-right.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-arrow-up.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-arrow-up.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-arrow-up.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-arrow-up.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-art-easel.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-art-easel.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-art-easel.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-art-easel.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-article.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-article.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-article.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-article.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-attachment.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-attachment.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-attachment.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-attachment.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-auction-hammer.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-auction-hammer.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-auction-hammer.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-auction-hammer.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-autofill.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-autofill.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-autofill.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-autofill.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-award.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-award.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-award.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-award.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-axis-rotation-2.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-axis-rotation-2.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-axis-rotation-2.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-axis-rotation-2.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-axis-rotation-3.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-axis-rotation-3.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-axis-rotation-3.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-axis-rotation-3.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-axis-rotation.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-axis-rotation.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-axis-rotation.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-axis-rotation.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-baby-stroller.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-baby-stroller.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-baby-stroller.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-baby-stroller.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-backspace.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-backspace.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-backspace.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-backspace.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-badge-add.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-badge-add.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-badge-add.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-badge-add.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-badge-count.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-badge-count.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-badge-count.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-badge-count.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-badge-remove.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-badge-remove.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-badge-remove.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-badge-remove.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-badge-restricted.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-badge-restricted.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-badge-restricted.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-badge-restricted.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-ball.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ball.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-ball.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ball.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-band-aid.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-band-aid.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-band-aid.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-band-aid.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-bar-chart.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bar-chart.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-bar-chart.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bar-chart.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-barcode.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-barcode.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-barcode.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-barcode.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-bars.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bars.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-bars.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bars.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-battery-full.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-battery-full.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-battery-full.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-battery-full.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-battery-low.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-battery-low.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-battery-low.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-battery-low.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-beer-glass.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-beer-glass.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-beer-glass.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-beer-glass.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-bell-off.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bell-off.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-bell-off.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bell-off.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-bell.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bell.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-bell.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bell.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-bill-dollar.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bill-dollar.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-bill-dollar.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bill-dollar.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-bill-euro.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bill-euro.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-bill-euro.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bill-euro.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-bill-pound.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bill-pound.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-bill-pound.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bill-pound.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-bill-yen.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bill-yen.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-bill-yen.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bill-yen.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-bill.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bill.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-bill.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bill.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-billboard.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-billboard.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-billboard.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-billboard.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-bills-dollar.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bills-dollar.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-bills-dollar.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bills-dollar.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-bills-euro.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bills-euro.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-bills-euro.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bills-euro.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-bills-pound.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bills-pound.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-bills-pound.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bills-pound.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-bills-yen.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bills-yen.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-bills-yen.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bills-yen.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-bills.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bills.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-bills.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bills.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-binarycode.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-binarycode.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-binarycode.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-binarycode.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-binoculars.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-binoculars.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-binoculars.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-binoculars.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-bird.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bird.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-bird.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bird.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-birthday-cake.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-birthday-cake.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-birthday-cake.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-birthday-cake.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-block.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-block.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-block.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-block.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-blueprint.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-blueprint.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-blueprint.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-blueprint.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-bluetooth.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bluetooth.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-bluetooth.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bluetooth.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-boat-shipping.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-boat-shipping.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-boat-shipping.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-boat-shipping.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-bomb.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bomb.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-bomb.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bomb.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-bones.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bones.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-bones.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bones.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-book-alt-2.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-book-alt-2.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-book-alt-2.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-book-alt-2.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-book-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-book-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-book-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-book-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-book.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-book.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-book.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-book.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-bookmark.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bookmark.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-bookmark.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bookmark.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-books.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-books.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-books.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-books.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-box-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-box-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-box-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-box-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-box-open.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-box-open.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-box-open.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-box-open.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-box.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-box.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-box.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-box.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-brackets.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-brackets.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-brackets.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-brackets.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-brick.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-brick.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-brick.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-brick.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-briefcase.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-briefcase.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-briefcase.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-briefcase.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-browser-window.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-browser-window.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-browser-window.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-browser-window.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-brush-alt-2.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-brush-alt-2.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-brush-alt-2.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-brush-alt-2.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-brush-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-brush-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-brush-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-brush-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-brush.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-brush.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-brush.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-brush.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-bug.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bug.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-bug.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bug.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-bulleted-list.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bulleted-list.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-bulleted-list.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bulleted-list.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-burn.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-burn.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-burn.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-burn.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-bus.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bus.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-bus.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-bus.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-calculator.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-calculator.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-calculator.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-calculator.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-calendar-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-calendar-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-calendar-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-calendar-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-calendar.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-calendar.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-calendar.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-calendar.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-camcorder.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-camcorder.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-camcorder.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-camcorder.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-camera-roll.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-camera-roll.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-camera-roll.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-camera-roll.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-candy.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-candy.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-candy.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-candy.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-caps-lock.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-caps-lock.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-caps-lock.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-caps-lock.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-car.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-car.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-car.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-car.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-cash-register.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cash-register.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-cash-register.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cash-register.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-categories.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-categories.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-categories.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-categories.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-certificate.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-certificate.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-certificate.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-certificate.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-chart-curve.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chart-curve.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-chart-curve.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chart-curve.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-chart.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chart.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-chart.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chart.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-chat-active.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chat-active.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-chat-active.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chat-active.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-chat.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chat.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-chat.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chat.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-check.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-check.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-check.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-check.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-checkbox-dotted-active.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-checkbox-dotted-active.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-checkbox-dotted-active.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-checkbox-dotted-active.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-checkbox-dotted.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-checkbox-dotted.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-checkbox-dotted.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-checkbox-dotted.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-checkbox-empty.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-checkbox-empty.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-checkbox-empty.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-checkbox-empty.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-checkbox.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-checkbox.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-checkbox.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-checkbox.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-chess.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chess.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-chess.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chess.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-chip-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chip-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-chip-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chip-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-chip.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chip.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-chip.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-chip.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-cinema.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cinema.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-cinema.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cinema.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-circle-dotted-active.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-circle-dotted-active.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-circle-dotted-active.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-circle-dotted-active.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-circle-dotted.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-circle-dotted.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-circle-dotted.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-circle-dotted.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-circuits.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-circuits.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-circuits.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-circuits.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-circus.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-circus.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-circus.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-circus.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-client.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-client.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-client.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-client.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-clothes-hanger.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-clothes-hanger.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-clothes-hanger.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-clothes-hanger.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-cloud-drive.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cloud-drive.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-cloud-drive.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cloud-drive.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-cloud-upload.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cloud-upload.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-cloud-upload.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cloud-upload.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-cloud.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cloud.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-cloud.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cloud.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-cloudy.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cloudy.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-cloudy.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cloudy.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-clubs.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-clubs.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-clubs.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-clubs.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-cocktail.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cocktail.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-cocktail.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cocktail.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-code.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-code.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-code.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-code.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-coffee.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coffee.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-coffee.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coffee.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-coin-dollar.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coin-dollar.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-coin-dollar.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coin-dollar.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-coin-euro.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coin-euro.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-coin-euro.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coin-euro.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-coin-pound.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coin-pound.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-coin-pound.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coin-pound.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-coin-yen.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coin-yen.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-coin-yen.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coin-yen.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-coin.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coin.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-coin.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coin.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-coins-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-coins-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-coins-dollar-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-dollar-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-coins-dollar-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-dollar-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-coins-dollar.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-dollar.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-coins-dollar.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-dollar.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-coins-euro-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-euro-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-coins-euro-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-euro-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-coins-euro.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-euro.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-coins-euro.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-euro.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-coins-pound-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-pound-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-coins-pound-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-pound-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-coins-pound.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-pound.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-coins-pound.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-pound.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-coins-yen-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-yen-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-coins-yen-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-yen-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-coins-yen.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-yen.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-coins-yen.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins-yen.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-coins.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-coins.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coins.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-color-bucket.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-color-bucket.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-color-bucket.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-color-bucket.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-colorpicker.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-colorpicker.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-colorpicker.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-colorpicker.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-columns.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-columns.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-columns.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-columns.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-comb.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-comb.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-comb.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-comb.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-combination-lock-open.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-combination-lock-open.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-combination-lock-open.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-combination-lock-open.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-combination-lock.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-combination-lock.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-combination-lock.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-combination-lock.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-command.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-command.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-command.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-command.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-company.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-company.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-company.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-company.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-compress.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-compress.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-compress.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-compress.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-connection.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-connection.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-connection.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-connection.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-console.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-console.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-console.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-console.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-contrast.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-contrast.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-contrast.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-contrast.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-conversation-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-conversation-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-conversation-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-conversation-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-conversation.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-conversation.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-conversation.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-conversation.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-coverflow.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coverflow.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-coverflow.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-coverflow.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-credit-card-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-credit-card-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-credit-card-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-credit-card-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-credit-card.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-credit-card.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-credit-card.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-credit-card.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-crop.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-crop.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-crop.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-crop.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-crosshair.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-crosshair.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-crosshair.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-crosshair.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-crown-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-crown-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-crown-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-crown-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-crown.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-crown.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-crown.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-crown.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-cupcake.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cupcake.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-cupcake.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cupcake.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-curve.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-curve.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-curve.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-curve.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-cut.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cut.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-cut.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-cut.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-dashboard.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-dashboard.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-dashboard.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-dashboard.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-defrag.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-defrag.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-defrag.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-defrag.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-delete-key.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-delete-key.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-delete-key.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-delete-key.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-delete.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-delete.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-delete.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-delete.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-departure.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-departure.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-departure.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-departure.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-desk.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-desk.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-desk.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-desk.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-desktop.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-desktop.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-desktop.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-desktop.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-diagnostics.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diagnostics.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-diagnostics.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diagnostics.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-diagonal-arrow-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diagonal-arrow-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-diagonal-arrow-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diagonal-arrow-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-diagonal-arrow.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diagonal-arrow.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-diagonal-arrow.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diagonal-arrow.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-diamond.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diamond.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-diamond.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diamond.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-diamonds.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diamonds.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-diamonds.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diamonds.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-dice.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-dice.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-dice.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-dice.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-diploma-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diploma-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-diploma-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diploma-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-diploma.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diploma.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-diploma.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-diploma.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-directions-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-directions-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-directions-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-directions-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-directions.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-directions.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-directions.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-directions.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-disc.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-disc.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-disc.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-disc.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-disk-image.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-disk-image.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-disk-image.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-disk-image.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-display.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-display.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-display.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-display.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-dna.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-dna.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-dna.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-dna.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-dock-connector.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-dock-connector.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-dock-connector.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-dock-connector.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-document-dashed-line.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-document-dashed-line.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-document-dashed-line.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-document-dashed-line.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-document.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-document.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-document.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-document.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-documents.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-documents.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-documents.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-documents.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-dollar-bag.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-dollar-bag.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-dollar-bag.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-dollar-bag.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-donate.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-donate.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-donate.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-donate.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-door-open-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-door-open-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-door-open-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-door-open-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-door-open.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-door-open.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-door-open.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-door-open.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-download-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-download-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-download-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-download-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-download.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-download.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-download.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-download.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-drop.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-drop.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-drop.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-drop.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-eco.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-eco.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-eco.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-eco.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-economy.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-economy.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-economy.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-economy.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-edit.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-edit.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-edit.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-edit.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-eject.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-eject.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-eject.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-eject.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-employee.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-employee.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-employee.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-employee.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-energy-saving-bulb.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-energy-saving-bulb.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-energy-saving-bulb.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-energy-saving-bulb.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-enter.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-enter.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-enter.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-enter.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-equalizer.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-equalizer.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-equalizer.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-equalizer.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-escape.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-escape.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-escape.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-escape.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-ethernet.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ethernet.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-ethernet.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ethernet.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-euro-bag.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-euro-bag.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-euro-bag.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-euro-bag.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-exit-fullscreen.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-exit-fullscreen.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-exit-fullscreen.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-exit-fullscreen.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-eye.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-eye.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-eye.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-eye.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-facebook-like.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-facebook-like.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-facebook-like.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-facebook-like.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-factory.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-factory.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-factory.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-factory.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-favorite.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-favorite.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-favorite.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-favorite.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-female-symbol.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-female-symbol.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-female-symbol.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-female-symbol.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-file-cabinet.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-file-cabinet.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-file-cabinet.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-file-cabinet.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-files.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-files.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-files.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-files.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-filter-arrows.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-filter-arrows.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-filter-arrows.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-filter-arrows.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-filter.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-filter.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-filter.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-filter.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-fingerprint.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-fingerprint.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-fingerprint.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-fingerprint.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-fire.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-fire.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-fire.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-fire.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-firewall.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-firewall.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-firewall.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-firewall.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-firewire.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-firewire.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-firewire.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-firewire.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-flag-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-flag-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-flag-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-flag-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-flag.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-flag.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-flag.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-flag.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-flash.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-flash.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-flash.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-flash.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-flashlight.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-flashlight.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-flashlight.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-flashlight.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-flowerpot.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-flowerpot.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-flowerpot.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-flowerpot.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-folder-open.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-folder-open.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-folder-open.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-folder-open.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-folder-outline.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-folder-outline.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-folder-outline.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-folder-outline.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-folder.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-folder.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-folder.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-folder.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-folders.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-folders.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-folders.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-folders.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-font.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-font.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-font.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-font.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-food.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-food.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-food.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-food.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-footprints.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-footprints.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-footprints.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-footprints.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-forking.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-forking.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-forking.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-forking.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-frame-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-frame-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-frame-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-frame-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-frame.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-frame.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-frame.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-frame.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-fullscreen-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-fullscreen-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-fullscreen-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-fullscreen-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-fullscreen.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-fullscreen.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-fullscreen.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-fullscreen.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-game.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-game.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-game.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-game.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-geometry.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-geometry.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-geometry.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-geometry.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-gift.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-gift.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-gift.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-gift.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-glasses.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-glasses.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-glasses.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-glasses.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-globe-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-globe-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-globe-asia.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-asia.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-globe-asia.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-asia.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-globe-europe-africa.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-europe-africa.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-globe-europe-africa.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-europe-africa.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-globe-inverted-america.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-inverted-america.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-globe-inverted-america.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-inverted-america.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-globe-inverted-asia.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-inverted-asia.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-globe-inverted-asia.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-inverted-asia.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-globe-inverted-europe-africa.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-inverted-europe-africa.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-globe-inverted-europe-africa.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe-inverted-europe-africa.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-globe.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-globe.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-globe.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-gps.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-gps.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-gps.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-gps.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-graduate.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-graduate.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-graduate.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-graduate.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-grid.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-grid.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-grid.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-grid.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-hammer.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hammer.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-hammer.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hammer.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-hand-active-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hand-active-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-hand-active-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hand-active-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-hand-active.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hand-active.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-hand-active.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hand-active.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-hand-pointer-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hand-pointer-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-hand-pointer-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hand-pointer-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-hand-pointer.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hand-pointer.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-hand-pointer.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hand-pointer.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-handprint.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-handprint.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-handprint.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-handprint.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-handshake.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-handshake.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-handshake.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-handshake.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-handtool-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-handtool-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-handtool-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-handtool-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-handtool.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-handtool.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-handtool.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-handtool.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-hard-drive-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hard-drive-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-hard-drive-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hard-drive-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-hard-drive.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hard-drive.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-hard-drive.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hard-drive.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-hat.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hat.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-hat.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hat.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-hd.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hd.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-hd.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hd.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-headphones.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-headphones.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-headphones.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-headphones.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-headset.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-headset.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-headset.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-headset.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-hearts.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hearts.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-hearts.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hearts.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-height.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-height.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-height.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-height.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-help-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-help-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-help-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-help-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-help.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-help.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-help.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-help.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-home.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-home.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-home.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-home.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-hourglass.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hourglass.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-hourglass.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-hourglass.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-imac.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-imac.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-imac.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-imac.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-inactive-line.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-inactive-line.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-inactive-line.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-inactive-line.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-inbox-full.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-inbox-full.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-inbox-full.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-inbox-full.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-inbox.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-inbox.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-inbox.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-inbox.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-indent.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-indent.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-indent.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-indent.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-infinity.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-infinity.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-infinity.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-infinity.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-info.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-info.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-info.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-info.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-invoice.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-invoice.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-invoice.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-invoice.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-ipad.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ipad.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-ipad.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ipad.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-iphone.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-iphone.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-iphone.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-iphone.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-item-arrangement.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-item-arrangement.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-item-arrangement.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-item-arrangement.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-junk.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-junk.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-junk.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-junk.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-key.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-key.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-key.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-key.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-keyboard.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-keyboard.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-keyboard.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-keyboard.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-keychain.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-keychain.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-keychain.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-keychain.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-keyhole.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-keyhole.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-keyhole.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-keyhole.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-lab.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lab.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-lab.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lab.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-laptop.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-laptop.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-laptop.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-laptop.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-layers-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-layers-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-layers-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-layers-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-layers.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-layers.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-layers.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-layers.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-layout.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-layout.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-layout.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-layout.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-left-double-arrow.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-left-double-arrow.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-left-double-arrow.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-left-double-arrow.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-legal.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-legal.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-legal.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-legal.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-lense.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lense.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-lense.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lense.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-library.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-library.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-library.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-library.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-light-down.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-light-down.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-light-down.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-light-down.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-light-up.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-light-up.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-light-up.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-light-up.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-lightbulb-active.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lightbulb-active.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-lightbulb-active.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lightbulb-active.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-lightbulb.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lightbulb.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-lightbulb.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lightbulb.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-lightning.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lightning.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-lightning.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lightning.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-link.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-link.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-link.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-link.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-linux-tux.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-linux-tux.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-linux-tux.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-linux-tux.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-list.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-list.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-list.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-list.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-load.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-load.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-load.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-load.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-loading.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-loading.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-loading.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-loading.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-locate.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-locate.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-locate.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-locate.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-location-near-me.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-location-near-me.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-location-near-me.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-location-near-me.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-location-nearby.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-location-nearby.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-location-nearby.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-location-nearby.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-lock.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lock.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-lock.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-lock.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-log-out.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-log-out.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-log-out.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-log-out.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-logout.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-logout.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-logout.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-logout.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-loupe.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-loupe.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-loupe.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-loupe.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-magnet.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-magnet.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-magnet.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-magnet.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-mailbox.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mailbox.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-mailbox.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mailbox.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-male-and-female.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-male-and-female.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-male-and-female.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-male-and-female.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-male-symbol.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-male-symbol.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-male-symbol.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-male-symbol.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-map-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-map-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-map-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-map-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-map-location.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-map-location.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-map-location.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-map-location.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-map-marker.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-map-marker.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-map-marker.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-map-marker.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-map.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-map.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-map.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-map.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-medal.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-medal.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-medal.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-medal.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-medical-emergency.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-medical-emergency.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-medical-emergency.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-medical-emergency.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-medicine.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-medicine.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-medicine.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-medicine.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-meeting.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-meeting.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-meeting.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-meeting.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-megaphone.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-megaphone.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-megaphone.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-megaphone.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-merge.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-merge.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-merge.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-merge.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-message-open.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-message-open.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-message-open.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-message-open.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-message-unopened.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-message-unopened.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-message-unopened.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-message-unopened.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-message.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-message.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-message.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-message.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-microscope.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-microscope.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-microscope.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-microscope.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-mindmap.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mindmap.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-mindmap.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mindmap.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-mobile.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mobile.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-mobile.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mobile.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-molecular-network.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-molecular-network.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-molecular-network.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-molecular-network.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-molecular.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-molecular.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-molecular.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-molecular.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-mountain.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mountain.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-mountain.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mountain.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-mouse-cursor.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mouse-cursor.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-mouse-cursor.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mouse-cursor.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-mouse.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mouse.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-mouse.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-mouse.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-movie-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-movie-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-movie-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-movie-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-movie.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-movie.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-movie.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-movie.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-multiple-credit-cards.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-multiple-credit-cards.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-multiple-credit-cards.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-multiple-credit-cards.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-multiple-windows.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-multiple-windows.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-multiple-windows.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-multiple-windows.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-music.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-music.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-music.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-music.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-name-badge.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-name-badge.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-name-badge.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-name-badge.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation-bottom.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-bottom.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation-bottom.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-bottom.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation-down.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-down.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation-down.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-down.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation-first.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-first.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation-first.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-first.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation-horizontal.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-horizontal.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation-horizontal.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-horizontal.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation-last.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-last.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation-last.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-last.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation-left.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-left.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation-left.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-left.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation-right.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-right.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation-right.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-right.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation-road.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-road.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation-road.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-road.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation-top.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-top.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation-top.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-top.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation-up.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-up.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation-up.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-up.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation-vertical.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-vertical.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation-vertical.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation-vertical.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigation.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigation.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigational-arrow.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigational-arrow.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-navigational-arrow.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-navigational-arrow.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-network-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-network-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-network-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-network-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-newspaper-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-newspaper-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-newspaper-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-newspaper-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-newspaper.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-newspaper.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-newspaper.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-newspaper.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-next-media.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-next-media.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-next-media.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-next-media.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-next.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-next.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-next.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-next.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-nodes.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-nodes.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-nodes.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-nodes.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-notepad-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-notepad-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-notepad-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-notepad-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-notepad.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-notepad.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-notepad.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-notepad.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-old-key.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-old-key.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-old-key.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-old-key.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-old-phone.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-old-phone.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-old-phone.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-old-phone.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-operator.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-operator.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-operator.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-operator.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-ordered-list.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ordered-list.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-ordered-list.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ordered-list.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-os-x.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-os-x.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-os-x.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-os-x.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-out.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-out.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-out.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-out.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-outbox.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-outbox.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-outbox.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-outbox.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-outdent.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-outdent.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-outdent.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-outdent.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-page-add.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-page-add.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-page-add.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-page-add.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-page-down.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-page-down.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-page-down.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-page-down.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-page-remove.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-page-remove.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-page-remove.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-page-remove.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-page-restricted.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-page-restricted.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-page-restricted.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-page-restricted.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-page-up.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-page-up.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-page-up.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-page-up.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-paint-roller.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-paint-roller.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-paint-roller.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-paint-roller.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-palette.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-palette.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-palette.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-palette.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-panel-show.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-panel-show.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-panel-show.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-panel-show.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-pannel-close.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pannel-close.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-pannel-close.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pannel-close.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-pants.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pants.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-pants.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pants.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-paper-bag.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-paper-bag.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-paper-bag.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-paper-bag.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-paper-plane-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-paper-plane-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-paper-plane-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-paper-plane-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-paper-plane.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-paper-plane.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-paper-plane.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-paper-plane.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-parachute-drop.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-parachute-drop.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-parachute-drop.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-parachute-drop.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-parental-control.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-parental-control.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-parental-control.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-parental-control.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-partly-cloudy.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-partly-cloudy.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-partly-cloudy.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-partly-cloudy.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-paste-in.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-paste-in.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-paste-in.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-paste-in.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-path.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-path.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-path.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-path.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-pause.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pause.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-pause.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pause.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-pc.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pc.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-pc.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pc.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-people-alt-2.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-people-alt-2.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-people-alt-2.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-people-alt-2.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-people-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-people-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-people-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-people-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-people-female.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-people-female.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-people-female.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-people-female.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-people.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-people.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-people.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-people.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-phone-ring.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-phone-ring.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-phone-ring.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-phone-ring.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-phone.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-phone.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-phone.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-phone.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-photo-album.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-photo-album.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-photo-album.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-photo-album.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-picture.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-picture.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-picture.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-picture.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-pictures-alt-2.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pictures-alt-2.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-pictures-alt-2.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pictures-alt-2.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-pictures-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pictures-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-pictures-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pictures-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-pictures.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pictures.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-pictures.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pictures.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-pie-chart.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pie-chart.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-pie-chart.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pie-chart.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-piggy-bank.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-piggy-bank.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-piggy-bank.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-piggy-bank.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-pin-location.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pin-location.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-pin-location.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pin-location.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-piracy.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-piracy.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-piracy.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-piracy.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-plane.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-plane.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-plane.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-plane.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-planet.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-planet.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-planet.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-planet.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-play.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-play.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-play.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-play.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-playing-cards.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-playing-cards.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-playing-cards.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-playing-cards.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-playlist.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-playlist.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-playlist.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-playlist.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-plugin.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-plugin.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-plugin.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-plugin.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-podcast.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-podcast.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-podcast.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-podcast.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-poker-chip.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-poker-chip.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-poker-chip.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-poker-chip.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-poll.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-poll.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-poll.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-poll.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-post-it.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-post-it.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-post-it.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-post-it.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-pound-bag.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pound-bag.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-pound-bag.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pound-bag.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-power-outlet.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-power-outlet.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-power-outlet.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-power-outlet.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-power.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-power.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-power.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-power.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-presentation.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-presentation.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-presentation.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-presentation.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-previous-media.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-previous-media.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-previous-media.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-previous-media.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-previous.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-previous.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-previous.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-previous.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-price-dollar.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-price-dollar.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-price-dollar.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-price-dollar.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-price-euro.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-price-euro.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-price-euro.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-price-euro.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-price-pound.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-price-pound.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-price-pound.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-price-pound.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-price-yen.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-price-yen.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-price-yen.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-price-yen.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-print.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-print.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-print.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-print.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-printer-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-printer-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-printer-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-printer-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-projector.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-projector.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-projector.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-projector.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-pulse.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pulse.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-pulse.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pulse.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-pushpin.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pushpin.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-pushpin.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-pushpin.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-qr-code.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-qr-code.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-qr-code.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-qr-code.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-quote.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-quote.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-quote.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-quote.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-radio-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-radio-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-radio-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-radio-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-radio-receiver.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-radio-receiver.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-radio-receiver.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-radio-receiver.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-radio.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-radio.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-radio.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-radio.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-rain.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-rain.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-rain.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-rain.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-rate.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-rate.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-rate.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-rate.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-re-post.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-re-post.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-re-post.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-re-post.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-readonly.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-readonly.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-readonly.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-readonly.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-receipt-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-receipt-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-receipt-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-receipt-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-receipt-dollar.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-receipt-dollar.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-receipt-dollar.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-receipt-dollar.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-receipt-euro.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-receipt-euro.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-receipt-euro.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-receipt-euro.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-receipt-pound.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-receipt-pound.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-receipt-pound.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-receipt-pound.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-receipt-yen.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-receipt-yen.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-receipt-yen.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-receipt-yen.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-reception.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-reception.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-reception.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-reception.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-record.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-record.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-record.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-record.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-redo.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-redo.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-redo.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-redo.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-refresh.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-refresh.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-refresh.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-refresh.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-remote.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-remote.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-remote.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-remote.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-remove.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-remove.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-remove.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-remove.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-repeat-one.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-repeat-one.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-repeat-one.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-repeat-one.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-repeat.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-repeat.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-repeat.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-repeat.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-reply-arrow.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-reply-arrow.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-reply-arrow.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-reply-arrow.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-resize.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-resize.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-resize.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-resize.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-return-to-top.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-return-to-top.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-return-to-top.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-return-to-top.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-right-double-arrow.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-right-double-arrow.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-right-double-arrow.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-right-double-arrow.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-road.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-road.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-road.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-road.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-roadsign.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-roadsign.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-roadsign.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-roadsign.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-rocket.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-rocket.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-rocket.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-rocket.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-rss.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-rss.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-rss.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-rss.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-ruler-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ruler-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-ruler-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ruler-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-ruler.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ruler.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-ruler.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ruler.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-safe.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-safe.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-safe.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-safe.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-safedial.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-safedial.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-safedial.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-safedial.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-sandbox-toys.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sandbox-toys.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-sandbox-toys.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sandbox-toys.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-satellite-dish.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-satellite-dish.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-satellite-dish.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-satellite-dish.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-save.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-save.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-save.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-save.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-scan.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-scan.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-scan.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-scan.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-school.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-school.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-school.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-school.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-screensharing.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-screensharing.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-screensharing.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-screensharing.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-script-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-script-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-script-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-script-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-script.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-script.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-script.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-script.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-scull.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-scull.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-scull.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-scull.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-search.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-search.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-search.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-search.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-security-camera.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-security-camera.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-security-camera.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-security-camera.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-sensor.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sensor.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-sensor.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sensor.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-server-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-server-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-server-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-server-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-server.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-server.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-server.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-server.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-settings-alt-2.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-settings-alt-2.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-settings-alt-2.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-settings-alt-2.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-settings-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-settings-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-settings-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-settings-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-settings.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-settings.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-settings.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-settings.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-share-alt-2.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-share-alt-2.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-share-alt-2.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-share-alt-2.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-share-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-share-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-share-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-share-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-share.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-share.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-share.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-share.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-sharing-iphone.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sharing-iphone.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-sharing-iphone.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sharing-iphone.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-shield.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shield.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-shield.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shield.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-shift.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shift.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-shift.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shift.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-shipping-box.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shipping-box.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-shipping-box.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shipping-box.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-shipping.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shipping.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-shipping.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shipping.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-shoe.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shoe.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-shoe.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shoe.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-shopping-basket-alt-2.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shopping-basket-alt-2.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-shopping-basket-alt-2.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shopping-basket-alt-2.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-shopping-basket-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shopping-basket-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-shopping-basket-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shopping-basket-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-shopping-basket.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shopping-basket.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-shopping-basket.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shopping-basket.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-shorts.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shorts.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-shorts.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shorts.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-shuffle.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shuffle.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-shuffle.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-shuffle.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-sience.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sience.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-sience.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sience.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-simcard.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-simcard.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-simcard.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-simcard.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-single-note.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-single-note.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-single-note.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-single-note.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-sitemap.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sitemap.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-sitemap.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sitemap.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-sleep.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sleep.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-sleep.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sleep.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-slideshow.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-slideshow.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-slideshow.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-slideshow.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-smiley-inverted.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-smiley-inverted.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-smiley-inverted.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-smiley-inverted.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-smiley.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-smiley.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-smiley.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-smiley.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-snow.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-snow.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-snow.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-snow.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-sound-low.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sound-low.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-sound-low.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sound-low.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-sound-medium.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sound-medium.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-sound-medium.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sound-medium.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-sound-off.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sound-off.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-sound-off.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sound-off.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-sound-waves.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sound-waves.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-sound-waves.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sound-waves.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-sound.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sound.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-sound.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sound.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-spades.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-spades.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-spades.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-spades.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-speaker.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-speaker.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-speaker.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-speaker.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-speed-gauge.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-speed-gauge.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-speed-gauge.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-speed-gauge.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-split-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-split-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-split-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-split-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-split.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-split.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-split.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-split.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-sprout.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sprout.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-sprout.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sprout.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-squiggly-line.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-squiggly-line.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-squiggly-line.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-squiggly-line.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-ssd.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ssd.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-ssd.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ssd.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-stacked-disks.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stacked-disks.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-stacked-disks.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stacked-disks.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-stamp.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stamp.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-stamp.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stamp.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-stop-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stop-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-stop-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stop-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-stop-hand.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stop-hand.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-stop-hand.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stop-hand.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-stop.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stop.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-stop.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stop.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-store.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-store.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-store.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-store.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-stream.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stream.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-stream.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-stream.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-sunny.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sunny.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-sunny.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sunny.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-sweatshirt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sweatshirt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-sweatshirt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sweatshirt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-sync.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sync.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-sync.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-sync.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-t-shirt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-t-shirt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-t-shirt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-t-shirt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-tab-key.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tab-key.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-tab-key.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tab-key.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-tab.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tab.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-tab.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tab.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-tactics.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tactics.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-tactics.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tactics.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-tag.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tag.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-tag.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tag.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-tags.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tags.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-tags.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tags.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-takeaway-cup.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-takeaway-cup.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-takeaway-cup.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-takeaway-cup.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-target.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-target.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-target.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-target.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-temperatrure-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-temperatrure-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-temperatrure-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-temperatrure-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-temperature.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-temperature.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-temperature.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-temperature.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-terminal.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-terminal.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-terminal.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-terminal.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-theater.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-theater.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-theater.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-theater.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-theif.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-theif.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-theif.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-theif.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-thought-bubble.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thought-bubble.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-thought-bubble.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thought-bubble.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-thumb-down.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thumb-down.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-thumb-down.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thumb-down.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-thumb-up.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thumb-up.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-thumb-up.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thumb-up.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-thumbnail-list.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thumbnail-list.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-thumbnail-list.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thumbnail-list.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-thumbnails-small.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thumbnails-small.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-thumbnails-small.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thumbnails-small.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-thumbnails.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thumbnails.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-thumbnails.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-thumbnails.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-ticket.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ticket.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-ticket.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-ticket.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-time.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-time.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-time.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-time.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-timer.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-timer.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-timer.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-timer.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-tools.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tools.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-tools.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tools.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-top.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-top.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-top.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-top.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-traffic-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-traffic-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-traffic-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-traffic-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-trafic.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-trafic.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-trafic.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-trafic.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-train.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-train.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-train.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-train.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-trash-alt-2.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-trash-alt-2.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-trash-alt-2.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-trash-alt-2.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-trash-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-trash-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-trash-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-trash-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-trash.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-trash.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-trash.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-trash.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-tree.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tree.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-tree.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tree.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-trophy.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-trophy.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-trophy.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-trophy.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-truck.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-truck.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-truck.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-truck.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-tv-old.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tv-old.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-tv-old.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tv-old.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-tv.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tv.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-tv.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-tv.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-umb-content.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-content.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-umb-content.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-content.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-umb-contour.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-contour.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-umb-contour.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-contour.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-umb-deploy.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-deploy.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-umb-deploy.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-deploy.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-umb-developer.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-developer.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-umb-developer.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-developer.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-umb-media.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-media.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-umb-media.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-media.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-umb-members.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-members.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-umb-members.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-members.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-umb-settings.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-settings.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-umb-settings.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-settings.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-umb-users.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-users.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-umb-users.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umb-users.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-umbraco.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umbraco.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-umbraco.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umbraco.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-umbrella.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umbrella.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-umbrella.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-umbrella.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-undo.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-undo.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-undo.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-undo.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-universal.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-universal.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-universal.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-universal.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-unlocked.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-unlocked.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-unlocked.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-unlocked.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-untitled.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-untitled.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-untitled.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-untitled.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-usb-connector.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-usb-connector.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-usb-connector.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-usb-connector.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-usb.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-usb.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-usb.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-usb.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-user-female.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-user-female.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-user-female.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-user-female.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-user-females-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-user-females-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-user-females-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-user-females-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-user-females.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-user-females.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-user-females.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-user-females.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-user-glasses.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-user-glasses.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-user-glasses.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-user-glasses.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-user.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-user.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-user.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-user.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-users-alt.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-users-alt.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-users-alt.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-users-alt.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-users.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-users.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-users.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-users.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-utilities.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-utilities.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-utilities.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-utilities.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-vcard.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-vcard.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-vcard.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-vcard.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-video.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-video.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-video.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-video.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-voice.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-voice.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-voice.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-voice.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-wall-plug.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wall-plug.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-wall-plug.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wall-plug.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-wallet.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wallet.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-wallet.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wallet.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-wand.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wand.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-wand.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wand.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-war.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-war.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-war.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-war.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-weight.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-weight.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-weight.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-weight.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-width.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-width.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-width.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-width.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-wifi.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wifi.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-wifi.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wifi.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-window-popin.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-window-popin.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-window-popin.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-window-popin.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-window-sizes.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-window-sizes.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-window-sizes.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-window-sizes.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-windows.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-windows.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-windows.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-windows.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-wine-glass.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wine-glass.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-wine-glass.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wine-glass.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-wrench.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wrench.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-wrench.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wrench.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-wrong.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wrong.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-wrong.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-wrong.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-yen-bag.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-yen-bag.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-yen-bag.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-yen-bag.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-zip.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-zip.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-zip.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-zip.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-zom-out.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-zom-out.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-zom-out.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-zom-out.js diff --git a/src/Umbraco.Web.UI.Client/public-assets/icons/icon-zoom-in.js b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-zoom-in.js similarity index 100% rename from src/Umbraco.Web.UI.Client/public-assets/icons/icon-zoom-in.js rename to src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icon-zoom-in.js diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icons.json b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icons.json new file mode 100644 index 0000000000..155fdf4646 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icons/icons.json @@ -0,0 +1 @@ +[{"name":"umb:activity","path":"./icons/icon-activity.js"},{"name":"umb:add","path":"./icons/icon-add.js"},{"name":"umb:addressbook","path":"./icons/icon-addressbook.js"},{"name":"umb:alarm-clock","path":"./icons/icon-alarm-clock.js"},{"name":"umb:alert-alt","path":"./icons/icon-alert-alt.js"},{"name":"umb:alert","path":"./icons/icon-alert.js"},{"name":"umb:alt","path":"./icons/icon-alt.js"},{"name":"umb:anchor","path":"./icons/icon-anchor.js"},{"name":"umb:app","path":"./icons/icon-app.js"},{"name":"umb:application-error","path":"./icons/icon-application-error.js"},{"name":"umb:application-window-alt","path":"./icons/icon-application-window-alt.js"},{"name":"umb:application-window","path":"./icons/icon-application-window.js"},{"name":"umb:arrivals","path":"./icons/icon-arrivals.js"},{"name":"umb:arrow-down","path":"./icons/icon-arrow-down.js"},{"name":"umb:arrow-left","path":"./icons/icon-arrow-left.js"},{"name":"umb:arrow-right","path":"./icons/icon-arrow-right.js"},{"name":"umb:arrow-up","path":"./icons/icon-arrow-up.js"},{"name":"umb:art-easel","path":"./icons/icon-art-easel.js"},{"name":"umb:article","path":"./icons/icon-article.js"},{"name":"umb:attachment","path":"./icons/icon-attachment.js"},{"name":"umb:auction-hammer","path":"./icons/icon-auction-hammer.js"},{"name":"umb:autofill","path":"./icons/icon-autofill.js"},{"name":"umb:award","path":"./icons/icon-award.js"},{"name":"umb:axis-rotation-2","path":"./icons/icon-axis-rotation-2.js"},{"name":"umb:axis-rotation-3","path":"./icons/icon-axis-rotation-3.js"},{"name":"umb:axis-rotation","path":"./icons/icon-axis-rotation.js"},{"name":"umb:baby-stroller","path":"./icons/icon-baby-stroller.js"},{"name":"umb:backspace","path":"./icons/icon-backspace.js"},{"name":"umb:badge-add","path":"./icons/icon-badge-add.js"},{"name":"umb:badge-count","path":"./icons/icon-badge-count.js"},{"name":"umb:badge-remove","path":"./icons/icon-badge-remove.js"},{"name":"umb:badge-restricted","path":"./icons/icon-badge-restricted.js"},{"name":"umb:ball","path":"./icons/icon-ball.js"},{"name":"umb:band-aid","path":"./icons/icon-band-aid.js"},{"name":"umb:bar-chart","path":"./icons/icon-bar-chart.js"},{"name":"umb:barcode","path":"./icons/icon-barcode.js"},{"name":"umb:bars","path":"./icons/icon-bars.js"},{"name":"umb:battery-full","path":"./icons/icon-battery-full.js"},{"name":"umb:battery-low","path":"./icons/icon-battery-low.js"},{"name":"umb:beer-glass","path":"./icons/icon-beer-glass.js"},{"name":"umb:bell-off","path":"./icons/icon-bell-off.js"},{"name":"umb:bell","path":"./icons/icon-bell.js"},{"name":"umb:bill-dollar","path":"./icons/icon-bill-dollar.js"},{"name":"umb:bill-euro","path":"./icons/icon-bill-euro.js"},{"name":"umb:bill-pound","path":"./icons/icon-bill-pound.js"},{"name":"umb:bill-yen","path":"./icons/icon-bill-yen.js"},{"name":"umb:bill","path":"./icons/icon-bill.js"},{"name":"umb:billboard","path":"./icons/icon-billboard.js"},{"name":"umb:bills-dollar","path":"./icons/icon-bills-dollar.js"},{"name":"umb:bills-euro","path":"./icons/icon-bills-euro.js"},{"name":"umb:bills-pound","path":"./icons/icon-bills-pound.js"},{"name":"umb:bills-yen","path":"./icons/icon-bills-yen.js"},{"name":"umb:bills","path":"./icons/icon-bills.js"},{"name":"umb:binarycode","path":"./icons/icon-binarycode.js"},{"name":"umb:binoculars","path":"./icons/icon-binoculars.js"},{"name":"umb:bird","path":"./icons/icon-bird.js"},{"name":"umb:birthday-cake","path":"./icons/icon-birthday-cake.js"},{"name":"umb:block","path":"./icons/icon-block.js"},{"name":"umb:blueprint","path":"./icons/icon-blueprint.js"},{"name":"umb:bluetooth","path":"./icons/icon-bluetooth.js"},{"name":"umb:boat-shipping","path":"./icons/icon-boat-shipping.js"},{"name":"umb:bomb","path":"./icons/icon-bomb.js"},{"name":"umb:bones","path":"./icons/icon-bones.js"},{"name":"umb:book-alt-2","path":"./icons/icon-book-alt-2.js"},{"name":"umb:book-alt","path":"./icons/icon-book-alt.js"},{"name":"umb:book","path":"./icons/icon-book.js"},{"name":"umb:bookmark","path":"./icons/icon-bookmark.js"},{"name":"umb:books","path":"./icons/icon-books.js"},{"name":"umb:box-alt","path":"./icons/icon-box-alt.js"},{"name":"umb:box-open","path":"./icons/icon-box-open.js"},{"name":"umb:box","path":"./icons/icon-box.js"},{"name":"umb:brackets","path":"./icons/icon-brackets.js"},{"name":"umb:brick","path":"./icons/icon-brick.js"},{"name":"umb:briefcase","path":"./icons/icon-briefcase.js"},{"name":"umb:browser-window","path":"./icons/icon-browser-window.js"},{"name":"umb:brush-alt-2","path":"./icons/icon-brush-alt-2.js"},{"name":"umb:brush-alt","path":"./icons/icon-brush-alt.js"},{"name":"umb:brush","path":"./icons/icon-brush.js"},{"name":"umb:bug","path":"./icons/icon-bug.js"},{"name":"umb:bulleted-list","path":"./icons/icon-bulleted-list.js"},{"name":"umb:burn","path":"./icons/icon-burn.js"},{"name":"umb:bus","path":"./icons/icon-bus.js"},{"name":"umb:calculator","path":"./icons/icon-calculator.js"},{"name":"umb:calendar-alt","path":"./icons/icon-calendar-alt.js"},{"name":"umb:calendar","path":"./icons/icon-calendar.js"},{"name":"umb:camcorder","path":"./icons/icon-camcorder.js"},{"name":"umb:camera-roll","path":"./icons/icon-camera-roll.js"},{"name":"umb:candy","path":"./icons/icon-candy.js"},{"name":"umb:caps-lock","path":"./icons/icon-caps-lock.js"},{"name":"umb:car","path":"./icons/icon-car.js"},{"name":"umb:cash-register","path":"./icons/icon-cash-register.js"},{"name":"umb:categories","path":"./icons/icon-categories.js"},{"name":"umb:certificate","path":"./icons/icon-certificate.js"},{"name":"umb:chart-curve","path":"./icons/icon-chart-curve.js"},{"name":"umb:chart","path":"./icons/icon-chart.js"},{"name":"umb:chat-active","path":"./icons/icon-chat-active.js"},{"name":"umb:chat","path":"./icons/icon-chat.js"},{"name":"umb:check","path":"./icons/icon-check.js"},{"name":"umb:checkbox-dotted-active","path":"./icons/icon-checkbox-dotted-active.js"},{"name":"umb:checkbox-dotted","path":"./icons/icon-checkbox-dotted.js"},{"name":"umb:checkbox-empty","path":"./icons/icon-checkbox-empty.js"},{"name":"umb:checkbox","path":"./icons/icon-checkbox.js"},{"name":"umb:chess","path":"./icons/icon-chess.js"},{"name":"umb:chip-alt","path":"./icons/icon-chip-alt.js"},{"name":"umb:chip","path":"./icons/icon-chip.js"},{"name":"umb:cinema","path":"./icons/icon-cinema.js"},{"name":"umb:circle-dotted-active","path":"./icons/icon-circle-dotted-active.js"},{"name":"umb:circle-dotted","path":"./icons/icon-circle-dotted.js"},{"name":"umb:circuits","path":"./icons/icon-circuits.js"},{"name":"umb:circus","path":"./icons/icon-circus.js"},{"name":"umb:client","path":"./icons/icon-client.js"},{"name":"umb:clothes-hanger","path":"./icons/icon-clothes-hanger.js"},{"name":"umb:cloud-drive","path":"./icons/icon-cloud-drive.js"},{"name":"umb:cloud-upload","path":"./icons/icon-cloud-upload.js"},{"name":"umb:cloud","path":"./icons/icon-cloud.js"},{"name":"umb:cloudy","path":"./icons/icon-cloudy.js"},{"name":"umb:clubs","path":"./icons/icon-clubs.js"},{"name":"umb:cocktail","path":"./icons/icon-cocktail.js"},{"name":"umb:code","path":"./icons/icon-code.js"},{"name":"umb:coffee","path":"./icons/icon-coffee.js"},{"name":"umb:coin-dollar","path":"./icons/icon-coin-dollar.js"},{"name":"umb:coin-euro","path":"./icons/icon-coin-euro.js"},{"name":"umb:coin-pound","path":"./icons/icon-coin-pound.js"},{"name":"umb:coin-yen","path":"./icons/icon-coin-yen.js"},{"name":"umb:coin","path":"./icons/icon-coin.js"},{"name":"umb:coins-alt","path":"./icons/icon-coins-alt.js"},{"name":"umb:coins-dollar-alt","path":"./icons/icon-coins-dollar-alt.js"},{"name":"umb:coins-dollar","path":"./icons/icon-coins-dollar.js"},{"name":"umb:coins-euro-alt","path":"./icons/icon-coins-euro-alt.js"},{"name":"umb:coins-euro","path":"./icons/icon-coins-euro.js"},{"name":"umb:coins-pound-alt","path":"./icons/icon-coins-pound-alt.js"},{"name":"umb:coins-pound","path":"./icons/icon-coins-pound.js"},{"name":"umb:coins-yen-alt","path":"./icons/icon-coins-yen-alt.js"},{"name":"umb:coins-yen","path":"./icons/icon-coins-yen.js"},{"name":"umb:coins","path":"./icons/icon-coins.js"},{"name":"umb:color-bucket","path":"./icons/icon-color-bucket.js"},{"name":"umb:colorpicker","path":"./icons/icon-colorpicker.js"},{"name":"umb:columns","path":"./icons/icon-columns.js"},{"name":"umb:comb","path":"./icons/icon-comb.js"},{"name":"umb:combination-lock-open","path":"./icons/icon-combination-lock-open.js"},{"name":"umb:combination-lock","path":"./icons/icon-combination-lock.js"},{"name":"umb:command","path":"./icons/icon-command.js"},{"name":"umb:company","path":"./icons/icon-company.js"},{"name":"umb:compress","path":"./icons/icon-compress.js"},{"name":"umb:connection","path":"./icons/icon-connection.js"},{"name":"umb:console","path":"./icons/icon-console.js"},{"name":"umb:contrast","path":"./icons/icon-contrast.js"},{"name":"umb:conversation-alt","path":"./icons/icon-conversation-alt.js"},{"name":"umb:conversation","path":"./icons/icon-conversation.js"},{"name":"umb:coverflow","path":"./icons/icon-coverflow.js"},{"name":"umb:credit-card-alt","path":"./icons/icon-credit-card-alt.js"},{"name":"umb:credit-card","path":"./icons/icon-credit-card.js"},{"name":"umb:crop","path":"./icons/icon-crop.js"},{"name":"umb:crosshair","path":"./icons/icon-crosshair.js"},{"name":"umb:crown-alt","path":"./icons/icon-crown-alt.js"},{"name":"umb:crown","path":"./icons/icon-crown.js"},{"name":"umb:cupcake","path":"./icons/icon-cupcake.js"},{"name":"umb:curve","path":"./icons/icon-curve.js"},{"name":"umb:cut","path":"./icons/icon-cut.js"},{"name":"umb:dashboard","path":"./icons/icon-dashboard.js"},{"name":"umb:defrag","path":"./icons/icon-defrag.js"},{"name":"umb:delete-key","path":"./icons/icon-delete-key.js"},{"name":"umb:delete","path":"./icons/icon-delete.js"},{"name":"umb:departure","path":"./icons/icon-departure.js"},{"name":"umb:desk","path":"./icons/icon-desk.js"},{"name":"umb:desktop","path":"./icons/icon-desktop.js"},{"name":"umb:diagnostics","path":"./icons/icon-diagnostics.js"},{"name":"umb:diagonal-arrow-alt","path":"./icons/icon-diagonal-arrow-alt.js"},{"name":"umb:diagonal-arrow","path":"./icons/icon-diagonal-arrow.js"},{"name":"umb:diamond","path":"./icons/icon-diamond.js"},{"name":"umb:diamonds","path":"./icons/icon-diamonds.js"},{"name":"umb:dice","path":"./icons/icon-dice.js"},{"name":"umb:diploma-alt","path":"./icons/icon-diploma-alt.js"},{"name":"umb:diploma","path":"./icons/icon-diploma.js"},{"name":"umb:directions-alt","path":"./icons/icon-directions-alt.js"},{"name":"umb:directions","path":"./icons/icon-directions.js"},{"name":"umb:disc","path":"./icons/icon-disc.js"},{"name":"umb:disk-image","path":"./icons/icon-disk-image.js"},{"name":"umb:display","path":"./icons/icon-display.js"},{"name":"umb:dna","path":"./icons/icon-dna.js"},{"name":"umb:dock-connector","path":"./icons/icon-dock-connector.js"},{"name":"umb:document-dashed-line","path":"./icons/icon-document-dashed-line.js"},{"name":"umb:document","path":"./icons/icon-document.js"},{"name":"umb:documents","path":"./icons/icon-documents.js"},{"name":"umb:dollar-bag","path":"./icons/icon-dollar-bag.js"},{"name":"umb:donate","path":"./icons/icon-donate.js"},{"name":"umb:door-open-alt","path":"./icons/icon-door-open-alt.js"},{"name":"umb:door-open","path":"./icons/icon-door-open.js"},{"name":"umb:download-alt","path":"./icons/icon-download-alt.js"},{"name":"umb:download","path":"./icons/icon-download.js"},{"name":"umb:drop","path":"./icons/icon-drop.js"},{"name":"umb:eco","path":"./icons/icon-eco.js"},{"name":"umb:economy","path":"./icons/icon-economy.js"},{"name":"umb:edit","path":"./icons/icon-edit.js"},{"name":"umb:eject","path":"./icons/icon-eject.js"},{"name":"umb:employee","path":"./icons/icon-employee.js"},{"name":"umb:energy-saving-bulb","path":"./icons/icon-energy-saving-bulb.js"},{"name":"umb:enter","path":"./icons/icon-enter.js"},{"name":"umb:equalizer","path":"./icons/icon-equalizer.js"},{"name":"umb:escape","path":"./icons/icon-escape.js"},{"name":"umb:ethernet","path":"./icons/icon-ethernet.js"},{"name":"umb:euro-bag","path":"./icons/icon-euro-bag.js"},{"name":"umb:exit-fullscreen","path":"./icons/icon-exit-fullscreen.js"},{"name":"umb:eye","path":"./icons/icon-eye.js"},{"name":"umb:facebook-like","path":"./icons/icon-facebook-like.js"},{"name":"umb:factory","path":"./icons/icon-factory.js"},{"name":"umb:favorite","path":"./icons/icon-favorite.js"},{"name":"umb:female-symbol","path":"./icons/icon-female-symbol.js"},{"name":"umb:file-cabinet","path":"./icons/icon-file-cabinet.js"},{"name":"umb:files","path":"./icons/icon-files.js"},{"name":"umb:filter-arrows","path":"./icons/icon-filter-arrows.js"},{"name":"umb:filter","path":"./icons/icon-filter.js"},{"name":"umb:fingerprint","path":"./icons/icon-fingerprint.js"},{"name":"umb:fire","path":"./icons/icon-fire.js"},{"name":"umb:firewall","path":"./icons/icon-firewall.js"},{"name":"umb:firewire","path":"./icons/icon-firewire.js"},{"name":"umb:flag-alt","path":"./icons/icon-flag-alt.js"},{"name":"umb:flag","path":"./icons/icon-flag.js"},{"name":"umb:flash","path":"./icons/icon-flash.js"},{"name":"umb:flashlight","path":"./icons/icon-flashlight.js"},{"name":"umb:flowerpot","path":"./icons/icon-flowerpot.js"},{"name":"umb:folder-open","path":"./icons/icon-folder-open.js"},{"name":"umb:folder-outline","path":"./icons/icon-folder-outline.js"},{"name":"umb:folder","path":"./icons/icon-folder.js"},{"name":"umb:folders","path":"./icons/icon-folders.js"},{"name":"umb:font","path":"./icons/icon-font.js"},{"name":"umb:food","path":"./icons/icon-food.js"},{"name":"umb:footprints","path":"./icons/icon-footprints.js"},{"name":"umb:forking","path":"./icons/icon-forking.js"},{"name":"umb:frame-alt","path":"./icons/icon-frame-alt.js"},{"name":"umb:frame","path":"./icons/icon-frame.js"},{"name":"umb:fullscreen-alt","path":"./icons/icon-fullscreen-alt.js"},{"name":"umb:fullscreen","path":"./icons/icon-fullscreen.js"},{"name":"umb:game","path":"./icons/icon-game.js"},{"name":"umb:geometry","path":"./icons/icon-geometry.js"},{"name":"umb:gift","path":"./icons/icon-gift.js"},{"name":"umb:glasses","path":"./icons/icon-glasses.js"},{"name":"umb:globe-alt","path":"./icons/icon-globe-alt.js"},{"name":"umb:globe-asia","path":"./icons/icon-globe-asia.js"},{"name":"umb:globe-europe-africa","path":"./icons/icon-globe-europe-africa.js"},{"name":"umb:globe-inverted-america","path":"./icons/icon-globe-inverted-america.js"},{"name":"umb:globe-inverted-asia","path":"./icons/icon-globe-inverted-asia.js"},{"name":"umb:globe-inverted-europe-africa","path":"./icons/icon-globe-inverted-europe-africa.js"},{"name":"umb:globe","path":"./icons/icon-globe.js"},{"name":"umb:gps","path":"./icons/icon-gps.js"},{"name":"umb:graduate","path":"./icons/icon-graduate.js"},{"name":"umb:grid","path":"./icons/icon-grid.js"},{"name":"umb:hammer","path":"./icons/icon-hammer.js"},{"name":"umb:hand-active-alt","path":"./icons/icon-hand-active-alt.js"},{"name":"umb:hand-active","path":"./icons/icon-hand-active.js"},{"name":"umb:hand-pointer-alt","path":"./icons/icon-hand-pointer-alt.js"},{"name":"umb:hand-pointer","path":"./icons/icon-hand-pointer.js"},{"name":"umb:handprint","path":"./icons/icon-handprint.js"},{"name":"umb:handshake","path":"./icons/icon-handshake.js"},{"name":"umb:handtool-alt","path":"./icons/icon-handtool-alt.js"},{"name":"umb:handtool","path":"./icons/icon-handtool.js"},{"name":"umb:hard-drive-alt","path":"./icons/icon-hard-drive-alt.js"},{"name":"umb:hard-drive","path":"./icons/icon-hard-drive.js"},{"name":"umb:hat","path":"./icons/icon-hat.js"},{"name":"umb:hd","path":"./icons/icon-hd.js"},{"name":"umb:headphones","path":"./icons/icon-headphones.js"},{"name":"umb:headset","path":"./icons/icon-headset.js"},{"name":"umb:hearts","path":"./icons/icon-hearts.js"},{"name":"umb:height","path":"./icons/icon-height.js"},{"name":"umb:help-alt","path":"./icons/icon-help-alt.js"},{"name":"umb:help","path":"./icons/icon-help.js"},{"name":"umb:home","path":"./icons/icon-home.js"},{"name":"umb:hourglass","path":"./icons/icon-hourglass.js"},{"name":"umb:imac","path":"./icons/icon-imac.js"},{"name":"umb:inactive-line","path":"./icons/icon-inactive-line.js"},{"name":"umb:inbox-full","path":"./icons/icon-inbox-full.js"},{"name":"umb:inbox","path":"./icons/icon-inbox.js"},{"name":"umb:indent","path":"./icons/icon-indent.js"},{"name":"umb:infinity","path":"./icons/icon-infinity.js"},{"name":"umb:info","path":"./icons/icon-info.js"},{"name":"umb:invoice","path":"./icons/icon-invoice.js"},{"name":"umb:ipad","path":"./icons/icon-ipad.js"},{"name":"umb:iphone","path":"./icons/icon-iphone.js"},{"name":"umb:item-arrangement","path":"./icons/icon-item-arrangement.js"},{"name":"umb:junk","path":"./icons/icon-junk.js"},{"name":"umb:key","path":"./icons/icon-key.js"},{"name":"umb:keyboard","path":"./icons/icon-keyboard.js"},{"name":"umb:keychain","path":"./icons/icon-keychain.js"},{"name":"umb:keyhole","path":"./icons/icon-keyhole.js"},{"name":"umb:lab","path":"./icons/icon-lab.js"},{"name":"umb:laptop","path":"./icons/icon-laptop.js"},{"name":"umb:layers-alt","path":"./icons/icon-layers-alt.js"},{"name":"umb:layers","path":"./icons/icon-layers.js"},{"name":"umb:layout","path":"./icons/icon-layout.js"},{"name":"umb:left-double-arrow","path":"./icons/icon-left-double-arrow.js"},{"name":"umb:legal","path":"./icons/icon-legal.js"},{"name":"umb:lense","path":"./icons/icon-lense.js"},{"name":"umb:library","path":"./icons/icon-library.js"},{"name":"umb:light-down","path":"./icons/icon-light-down.js"},{"name":"umb:light-up","path":"./icons/icon-light-up.js"},{"name":"umb:lightbulb-active","path":"./icons/icon-lightbulb-active.js"},{"name":"umb:lightbulb","path":"./icons/icon-lightbulb.js"},{"name":"umb:lightning","path":"./icons/icon-lightning.js"},{"name":"umb:link","path":"./icons/icon-link.js"},{"name":"umb:linux-tux","path":"./icons/icon-linux-tux.js"},{"name":"umb:list","path":"./icons/icon-list.js"},{"name":"umb:load","path":"./icons/icon-load.js"},{"name":"umb:loading","path":"./icons/icon-loading.js"},{"name":"umb:locate","path":"./icons/icon-locate.js"},{"name":"umb:location-near-me","path":"./icons/icon-location-near-me.js"},{"name":"umb:location-nearby","path":"./icons/icon-location-nearby.js"},{"name":"umb:lock","path":"./icons/icon-lock.js"},{"name":"umb:log-out","path":"./icons/icon-log-out.js"},{"name":"umb:logout","path":"./icons/icon-logout.js"},{"name":"umb:loupe","path":"./icons/icon-loupe.js"},{"name":"umb:magnet","path":"./icons/icon-magnet.js"},{"name":"umb:mailbox","path":"./icons/icon-mailbox.js"},{"name":"umb:male-and-female","path":"./icons/icon-male-and-female.js"},{"name":"umb:male-symbol","path":"./icons/icon-male-symbol.js"},{"name":"umb:map-alt","path":"./icons/icon-map-alt.js"},{"name":"umb:map-location","path":"./icons/icon-map-location.js"},{"name":"umb:map-marker","path":"./icons/icon-map-marker.js"},{"name":"umb:map","path":"./icons/icon-map.js"},{"name":"umb:medal","path":"./icons/icon-medal.js"},{"name":"umb:medical-emergency","path":"./icons/icon-medical-emergency.js"},{"name":"umb:medicine","path":"./icons/icon-medicine.js"},{"name":"umb:meeting","path":"./icons/icon-meeting.js"},{"name":"umb:megaphone","path":"./icons/icon-megaphone.js"},{"name":"umb:merge","path":"./icons/icon-merge.js"},{"name":"umb:message-open","path":"./icons/icon-message-open.js"},{"name":"umb:message-unopened","path":"./icons/icon-message-unopened.js"},{"name":"umb:message","path":"./icons/icon-message.js"},{"name":"umb:microscope","path":"./icons/icon-microscope.js"},{"name":"umb:mindmap","path":"./icons/icon-mindmap.js"},{"name":"umb:mobile","path":"./icons/icon-mobile.js"},{"name":"umb:molecular-network","path":"./icons/icon-molecular-network.js"},{"name":"umb:molecular","path":"./icons/icon-molecular.js"},{"name":"umb:mountain","path":"./icons/icon-mountain.js"},{"name":"umb:mouse-cursor","path":"./icons/icon-mouse-cursor.js"},{"name":"umb:mouse","path":"./icons/icon-mouse.js"},{"name":"umb:movie-alt","path":"./icons/icon-movie-alt.js"},{"name":"umb:movie","path":"./icons/icon-movie.js"},{"name":"umb:multiple-credit-cards","path":"./icons/icon-multiple-credit-cards.js"},{"name":"umb:multiple-windows","path":"./icons/icon-multiple-windows.js"},{"name":"umb:music","path":"./icons/icon-music.js"},{"name":"umb:name-badge","path":"./icons/icon-name-badge.js"},{"name":"umb:navigation-bottom","path":"./icons/icon-navigation-bottom.js"},{"name":"umb:navigation-down","path":"./icons/icon-navigation-down.js"},{"name":"umb:navigation-first","path":"./icons/icon-navigation-first.js"},{"name":"umb:navigation-horizontal","path":"./icons/icon-navigation-horizontal.js"},{"name":"umb:navigation-last","path":"./icons/icon-navigation-last.js"},{"name":"umb:navigation-left","path":"./icons/icon-navigation-left.js"},{"name":"umb:navigation-right","path":"./icons/icon-navigation-right.js"},{"name":"umb:navigation-road","path":"./icons/icon-navigation-road.js"},{"name":"umb:navigation-top","path":"./icons/icon-navigation-top.js"},{"name":"umb:navigation-up","path":"./icons/icon-navigation-up.js"},{"name":"umb:navigation-vertical","path":"./icons/icon-navigation-vertical.js"},{"name":"umb:navigation","path":"./icons/icon-navigation.js"},{"name":"umb:navigational-arrow","path":"./icons/icon-navigational-arrow.js"},{"name":"umb:network-alt","path":"./icons/icon-network-alt.js"},{"name":"umb:newspaper-alt","path":"./icons/icon-newspaper-alt.js"},{"name":"umb:newspaper","path":"./icons/icon-newspaper.js"},{"name":"umb:next-media","path":"./icons/icon-next-media.js"},{"name":"umb:next","path":"./icons/icon-next.js"},{"name":"umb:nodes","path":"./icons/icon-nodes.js"},{"name":"umb:notepad-alt","path":"./icons/icon-notepad-alt.js"},{"name":"umb:notepad","path":"./icons/icon-notepad.js"},{"name":"umb:old-key","path":"./icons/icon-old-key.js"},{"name":"umb:old-phone","path":"./icons/icon-old-phone.js"},{"name":"umb:operator","path":"./icons/icon-operator.js"},{"name":"umb:ordered-list","path":"./icons/icon-ordered-list.js"},{"name":"umb:os-x","path":"./icons/icon-os-x.js"},{"name":"umb:out","path":"./icons/icon-out.js"},{"name":"umb:outbox","path":"./icons/icon-outbox.js"},{"name":"umb:outdent","path":"./icons/icon-outdent.js"},{"name":"umb:page-add","path":"./icons/icon-page-add.js"},{"name":"umb:page-down","path":"./icons/icon-page-down.js"},{"name":"umb:page-remove","path":"./icons/icon-page-remove.js"},{"name":"umb:page-restricted","path":"./icons/icon-page-restricted.js"},{"name":"umb:page-up","path":"./icons/icon-page-up.js"},{"name":"umb:paint-roller","path":"./icons/icon-paint-roller.js"},{"name":"umb:palette","path":"./icons/icon-palette.js"},{"name":"umb:panel-show","path":"./icons/icon-panel-show.js"},{"name":"umb:pannel-close","path":"./icons/icon-pannel-close.js"},{"name":"umb:pants","path":"./icons/icon-pants.js"},{"name":"umb:paper-bag","path":"./icons/icon-paper-bag.js"},{"name":"umb:paper-plane-alt","path":"./icons/icon-paper-plane-alt.js"},{"name":"umb:paper-plane","path":"./icons/icon-paper-plane.js"},{"name":"umb:parachute-drop","path":"./icons/icon-parachute-drop.js"},{"name":"umb:parental-control","path":"./icons/icon-parental-control.js"},{"name":"umb:partly-cloudy","path":"./icons/icon-partly-cloudy.js"},{"name":"umb:paste-in","path":"./icons/icon-paste-in.js"},{"name":"umb:path","path":"./icons/icon-path.js"},{"name":"umb:pause","path":"./icons/icon-pause.js"},{"name":"umb:pc","path":"./icons/icon-pc.js"},{"name":"umb:people-alt-2","path":"./icons/icon-people-alt-2.js"},{"name":"umb:people-alt","path":"./icons/icon-people-alt.js"},{"name":"umb:people-female","path":"./icons/icon-people-female.js"},{"name":"umb:people","path":"./icons/icon-people.js"},{"name":"umb:phone-ring","path":"./icons/icon-phone-ring.js"},{"name":"umb:phone","path":"./icons/icon-phone.js"},{"name":"umb:photo-album","path":"./icons/icon-photo-album.js"},{"name":"umb:picture","path":"./icons/icon-picture.js"},{"name":"umb:pictures-alt-2","path":"./icons/icon-pictures-alt-2.js"},{"name":"umb:pictures-alt","path":"./icons/icon-pictures-alt.js"},{"name":"umb:pictures","path":"./icons/icon-pictures.js"},{"name":"umb:pie-chart","path":"./icons/icon-pie-chart.js"},{"name":"umb:piggy-bank","path":"./icons/icon-piggy-bank.js"},{"name":"umb:pin-location","path":"./icons/icon-pin-location.js"},{"name":"umb:piracy","path":"./icons/icon-piracy.js"},{"name":"umb:plane","path":"./icons/icon-plane.js"},{"name":"umb:planet","path":"./icons/icon-planet.js"},{"name":"umb:play","path":"./icons/icon-play.js"},{"name":"umb:playing-cards","path":"./icons/icon-playing-cards.js"},{"name":"umb:playlist","path":"./icons/icon-playlist.js"},{"name":"umb:plugin","path":"./icons/icon-plugin.js"},{"name":"umb:podcast","path":"./icons/icon-podcast.js"},{"name":"umb:poker-chip","path":"./icons/icon-poker-chip.js"},{"name":"umb:poll","path":"./icons/icon-poll.js"},{"name":"umb:post-it","path":"./icons/icon-post-it.js"},{"name":"umb:pound-bag","path":"./icons/icon-pound-bag.js"},{"name":"umb:power-outlet","path":"./icons/icon-power-outlet.js"},{"name":"umb:power","path":"./icons/icon-power.js"},{"name":"umb:presentation","path":"./icons/icon-presentation.js"},{"name":"umb:previous-media","path":"./icons/icon-previous-media.js"},{"name":"umb:previous","path":"./icons/icon-previous.js"},{"name":"umb:price-dollar","path":"./icons/icon-price-dollar.js"},{"name":"umb:price-euro","path":"./icons/icon-price-euro.js"},{"name":"umb:price-pound","path":"./icons/icon-price-pound.js"},{"name":"umb:price-yen","path":"./icons/icon-price-yen.js"},{"name":"umb:print","path":"./icons/icon-print.js"},{"name":"umb:printer-alt","path":"./icons/icon-printer-alt.js"},{"name":"umb:projector","path":"./icons/icon-projector.js"},{"name":"umb:pulse","path":"./icons/icon-pulse.js"},{"name":"umb:pushpin","path":"./icons/icon-pushpin.js"},{"name":"umb:qr-code","path":"./icons/icon-qr-code.js"},{"name":"umb:quote","path":"./icons/icon-quote.js"},{"name":"umb:radio-alt","path":"./icons/icon-radio-alt.js"},{"name":"umb:radio-receiver","path":"./icons/icon-radio-receiver.js"},{"name":"umb:radio","path":"./icons/icon-radio.js"},{"name":"umb:rain","path":"./icons/icon-rain.js"},{"name":"umb:rate","path":"./icons/icon-rate.js"},{"name":"umb:re-post","path":"./icons/icon-re-post.js"},{"name":"umb:readonly","path":"./icons/icon-readonly.js"},{"name":"umb:receipt-alt","path":"./icons/icon-receipt-alt.js"},{"name":"umb:receipt-dollar","path":"./icons/icon-receipt-dollar.js"},{"name":"umb:receipt-euro","path":"./icons/icon-receipt-euro.js"},{"name":"umb:receipt-pound","path":"./icons/icon-receipt-pound.js"},{"name":"umb:receipt-yen","path":"./icons/icon-receipt-yen.js"},{"name":"umb:reception","path":"./icons/icon-reception.js"},{"name":"umb:record","path":"./icons/icon-record.js"},{"name":"umb:redo","path":"./icons/icon-redo.js"},{"name":"umb:refresh","path":"./icons/icon-refresh.js"},{"name":"umb:remote","path":"./icons/icon-remote.js"},{"name":"umb:remove","path":"./icons/icon-remove.js"},{"name":"umb:repeat-one","path":"./icons/icon-repeat-one.js"},{"name":"umb:repeat","path":"./icons/icon-repeat.js"},{"name":"umb:reply-arrow","path":"./icons/icon-reply-arrow.js"},{"name":"umb:resize","path":"./icons/icon-resize.js"},{"name":"umb:return-to-top","path":"./icons/icon-return-to-top.js"},{"name":"umb:right-double-arrow","path":"./icons/icon-right-double-arrow.js"},{"name":"umb:road","path":"./icons/icon-road.js"},{"name":"umb:roadsign","path":"./icons/icon-roadsign.js"},{"name":"umb:rocket","path":"./icons/icon-rocket.js"},{"name":"umb:rss","path":"./icons/icon-rss.js"},{"name":"umb:ruler-alt","path":"./icons/icon-ruler-alt.js"},{"name":"umb:ruler","path":"./icons/icon-ruler.js"},{"name":"umb:safe","path":"./icons/icon-safe.js"},{"name":"umb:safedial","path":"./icons/icon-safedial.js"},{"name":"umb:sandbox-toys","path":"./icons/icon-sandbox-toys.js"},{"name":"umb:satellite-dish","path":"./icons/icon-satellite-dish.js"},{"name":"umb:save","path":"./icons/icon-save.js"},{"name":"umb:scan","path":"./icons/icon-scan.js"},{"name":"umb:school","path":"./icons/icon-school.js"},{"name":"umb:screensharing","path":"./icons/icon-screensharing.js"},{"name":"umb:script-alt","path":"./icons/icon-script-alt.js"},{"name":"umb:script","path":"./icons/icon-script.js"},{"name":"umb:scull","path":"./icons/icon-scull.js"},{"name":"umb:search","path":"./icons/icon-search.js"},{"name":"umb:security-camera","path":"./icons/icon-security-camera.js"},{"name":"umb:sensor","path":"./icons/icon-sensor.js"},{"name":"umb:server-alt","path":"./icons/icon-server-alt.js"},{"name":"umb:server","path":"./icons/icon-server.js"},{"name":"umb:settings-alt-2","path":"./icons/icon-settings-alt-2.js"},{"name":"umb:settings-alt","path":"./icons/icon-settings-alt.js"},{"name":"umb:settings","path":"./icons/icon-settings.js"},{"name":"umb:share-alt-2","path":"./icons/icon-share-alt-2.js"},{"name":"umb:share-alt","path":"./icons/icon-share-alt.js"},{"name":"umb:share","path":"./icons/icon-share.js"},{"name":"umb:sharing-iphone","path":"./icons/icon-sharing-iphone.js"},{"name":"umb:shield","path":"./icons/icon-shield.js"},{"name":"umb:shift","path":"./icons/icon-shift.js"},{"name":"umb:shipping-box","path":"./icons/icon-shipping-box.js"},{"name":"umb:shipping","path":"./icons/icon-shipping.js"},{"name":"umb:shoe","path":"./icons/icon-shoe.js"},{"name":"umb:shopping-basket-alt-2","path":"./icons/icon-shopping-basket-alt-2.js"},{"name":"umb:shopping-basket-alt","path":"./icons/icon-shopping-basket-alt.js"},{"name":"umb:shopping-basket","path":"./icons/icon-shopping-basket.js"},{"name":"umb:shorts","path":"./icons/icon-shorts.js"},{"name":"umb:shuffle","path":"./icons/icon-shuffle.js"},{"name":"umb:sience","path":"./icons/icon-sience.js"},{"name":"umb:simcard","path":"./icons/icon-simcard.js"},{"name":"umb:single-note","path":"./icons/icon-single-note.js"},{"name":"umb:sitemap","path":"./icons/icon-sitemap.js"},{"name":"umb:sleep","path":"./icons/icon-sleep.js"},{"name":"umb:slideshow","path":"./icons/icon-slideshow.js"},{"name":"umb:smiley-inverted","path":"./icons/icon-smiley-inverted.js"},{"name":"umb:smiley","path":"./icons/icon-smiley.js"},{"name":"umb:snow","path":"./icons/icon-snow.js"},{"name":"umb:sound-low","path":"./icons/icon-sound-low.js"},{"name":"umb:sound-medium","path":"./icons/icon-sound-medium.js"},{"name":"umb:sound-off","path":"./icons/icon-sound-off.js"},{"name":"umb:sound-waves","path":"./icons/icon-sound-waves.js"},{"name":"umb:sound","path":"./icons/icon-sound.js"},{"name":"umb:spades","path":"./icons/icon-spades.js"},{"name":"umb:speaker","path":"./icons/icon-speaker.js"},{"name":"umb:speed-gauge","path":"./icons/icon-speed-gauge.js"},{"name":"umb:split-alt","path":"./icons/icon-split-alt.js"},{"name":"umb:split","path":"./icons/icon-split.js"},{"name":"umb:sprout","path":"./icons/icon-sprout.js"},{"name":"umb:squiggly-line","path":"./icons/icon-squiggly-line.js"},{"name":"umb:ssd","path":"./icons/icon-ssd.js"},{"name":"umb:stacked-disks","path":"./icons/icon-stacked-disks.js"},{"name":"umb:stamp","path":"./icons/icon-stamp.js"},{"name":"umb:stop-alt","path":"./icons/icon-stop-alt.js"},{"name":"umb:stop-hand","path":"./icons/icon-stop-hand.js"},{"name":"umb:stop","path":"./icons/icon-stop.js"},{"name":"umb:store","path":"./icons/icon-store.js"},{"name":"umb:stream","path":"./icons/icon-stream.js"},{"name":"umb:sunny","path":"./icons/icon-sunny.js"},{"name":"umb:sweatshirt","path":"./icons/icon-sweatshirt.js"},{"name":"umb:sync","path":"./icons/icon-sync.js"},{"name":"umb:t-shirt","path":"./icons/icon-t-shirt.js"},{"name":"umb:tab-key","path":"./icons/icon-tab-key.js"},{"name":"umb:tab","path":"./icons/icon-tab.js"},{"name":"umb:tactics","path":"./icons/icon-tactics.js"},{"name":"umb:tag","path":"./icons/icon-tag.js"},{"name":"umb:tags","path":"./icons/icon-tags.js"},{"name":"umb:takeaway-cup","path":"./icons/icon-takeaway-cup.js"},{"name":"umb:target","path":"./icons/icon-target.js"},{"name":"umb:temperatrure-alt","path":"./icons/icon-temperatrure-alt.js"},{"name":"umb:temperature","path":"./icons/icon-temperature.js"},{"name":"umb:terminal","path":"./icons/icon-terminal.js"},{"name":"umb:theater","path":"./icons/icon-theater.js"},{"name":"umb:theif","path":"./icons/icon-theif.js"},{"name":"umb:thought-bubble","path":"./icons/icon-thought-bubble.js"},{"name":"umb:thumb-down","path":"./icons/icon-thumb-down.js"},{"name":"umb:thumb-up","path":"./icons/icon-thumb-up.js"},{"name":"umb:thumbnail-list","path":"./icons/icon-thumbnail-list.js"},{"name":"umb:thumbnails-small","path":"./icons/icon-thumbnails-small.js"},{"name":"umb:thumbnails","path":"./icons/icon-thumbnails.js"},{"name":"umb:ticket","path":"./icons/icon-ticket.js"},{"name":"umb:time","path":"./icons/icon-time.js"},{"name":"umb:timer","path":"./icons/icon-timer.js"},{"name":"umb:tools","path":"./icons/icon-tools.js"},{"name":"umb:top","path":"./icons/icon-top.js"},{"name":"umb:traffic-alt","path":"./icons/icon-traffic-alt.js"},{"name":"umb:trafic","path":"./icons/icon-trafic.js"},{"name":"umb:train","path":"./icons/icon-train.js"},{"name":"umb:trash-alt-2","path":"./icons/icon-trash-alt-2.js"},{"name":"umb:trash-alt","path":"./icons/icon-trash-alt.js"},{"name":"umb:trash","path":"./icons/icon-trash.js"},{"name":"umb:tree","path":"./icons/icon-tree.js"},{"name":"umb:trophy","path":"./icons/icon-trophy.js"},{"name":"umb:truck","path":"./icons/icon-truck.js"},{"name":"umb:tv-old","path":"./icons/icon-tv-old.js"},{"name":"umb:tv","path":"./icons/icon-tv.js"},{"name":"umb:umb-content","path":"./icons/icon-umb-content.js"},{"name":"umb:umb-contour","path":"./icons/icon-umb-contour.js"},{"name":"umb:umb-deploy","path":"./icons/icon-umb-deploy.js"},{"name":"umb:umb-developer","path":"./icons/icon-umb-developer.js"},{"name":"umb:umb-media","path":"./icons/icon-umb-media.js"},{"name":"umb:umb-members","path":"./icons/icon-umb-members.js"},{"name":"umb:umb-settings","path":"./icons/icon-umb-settings.js"},{"name":"umb:umb-users","path":"./icons/icon-umb-users.js"},{"name":"umb:umbraco","path":"./icons/icon-umbraco.js"},{"name":"umb:umbrella","path":"./icons/icon-umbrella.js"},{"name":"umb:undo","path":"./icons/icon-undo.js"},{"name":"umb:universal","path":"./icons/icon-universal.js"},{"name":"umb:unlocked","path":"./icons/icon-unlocked.js"},{"name":"umb:untitled","path":"./icons/icon-untitled.js"},{"name":"umb:usb-connector","path":"./icons/icon-usb-connector.js"},{"name":"umb:usb","path":"./icons/icon-usb.js"},{"name":"umb:user-female","path":"./icons/icon-user-female.js"},{"name":"umb:user-females-alt","path":"./icons/icon-user-females-alt.js"},{"name":"umb:user-females","path":"./icons/icon-user-females.js"},{"name":"umb:user-glasses","path":"./icons/icon-user-glasses.js"},{"name":"umb:user","path":"./icons/icon-user.js"},{"name":"umb:users-alt","path":"./icons/icon-users-alt.js"},{"name":"umb:users","path":"./icons/icon-users.js"},{"name":"umb:utilities","path":"./icons/icon-utilities.js"},{"name":"umb:vcard","path":"./icons/icon-vcard.js"},{"name":"umb:video","path":"./icons/icon-video.js"},{"name":"umb:voice","path":"./icons/icon-voice.js"},{"name":"umb:wall-plug","path":"./icons/icon-wall-plug.js"},{"name":"umb:wallet","path":"./icons/icon-wallet.js"},{"name":"umb:wand","path":"./icons/icon-wand.js"},{"name":"umb:war","path":"./icons/icon-war.js"},{"name":"umb:weight","path":"./icons/icon-weight.js"},{"name":"umb:width","path":"./icons/icon-width.js"},{"name":"umb:wifi","path":"./icons/icon-wifi.js"},{"name":"umb:window-popin","path":"./icons/icon-window-popin.js"},{"name":"umb:window-sizes","path":"./icons/icon-window-sizes.js"},{"name":"umb:windows","path":"./icons/icon-windows.js"},{"name":"umb:wine-glass","path":"./icons/icon-wine-glass.js"},{"name":"umb:wrench","path":"./icons/icon-wrench.js"},{"name":"umb:wrong","path":"./icons/icon-wrong.js"},{"name":"umb:yen-bag","path":"./icons/icon-yen-bag.js"},{"name":"umb:zip","path":"./icons/icon-zip.js"},{"name":"umb:zom-out","path":"./icons/icon-zom-out.js"},{"name":"umb:zoom-in","path":"./icons/icon-zoom-in.js"}] \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/index.ts b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/index.ts new file mode 100644 index 0000000000..bfae467f5a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/index.ts @@ -0,0 +1 @@ +export * from './icon.registry.js'; diff --git a/src/Umbraco.Web.UI.Client/src/shared/lit-element/index.ts b/src/Umbraco.Web.UI.Client/src/shared/lit-element/index.ts index d9bbccafa3..c0b5f9cb8e 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/lit-element/index.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/lit-element/index.ts @@ -1 +1 @@ -export * from './lit-element.element'; +export * from './lit-element.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/shared/lit-element/lit-element.element.ts b/src/Umbraco.Web.UI.Client/src/shared/lit-element/lit-element.element.ts index 8d0ef87d45..43266c07aa 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/lit-element/lit-element.element.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/lit-element/lit-element.element.ts @@ -1,4 +1,4 @@ -import { LitElement } from 'lit'; +import { LitElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api'; export class UmbLitElement extends UmbElementMixin(LitElement) {} diff --git a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/data-type/index.ts b/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/data-type/index.ts deleted file mode 100644 index 706757b33e..0000000000 --- a/src/Umbraco.Web.UI.Client/src/shared/mocks/handlers/data-type/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { folderHandlers } from './folder.handlers'; -import { treeHandlers } from './tree.handlers'; -import { detailHandlers } from './detail.handlers'; -import { itemHandlers } from './item.handlers'; -import { moveHandlers } from './move.handlers'; -import { copyHandlers } from './copy.handlers'; - -export const handlers = [ - ...treeHandlers, - ...itemHandlers, - ...folderHandlers, - ...moveHandlers, - ...copyHandlers, - ...detailHandlers, -]; diff --git a/src/Umbraco.Web.UI.Client/src/shared/modal/index.ts b/src/Umbraco.Web.UI.Client/src/shared/modal/index.ts index c7e8968e3a..7d5dc05a16 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/modal/index.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/modal/index.ts @@ -1 +1 @@ -export * from './modal-element.element'; +export * from './modal-element.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/shared/modal/modal-element.element.ts b/src/Umbraco.Web.UI.Client/src/shared/modal/modal-element.element.ts index e667a8ee2f..e65bb261b8 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/modal/modal-element.element.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/modal/modal-element.element.ts @@ -1,4 +1,4 @@ -import { property } from 'lit/decorators.js'; +import { property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbModalHandler } from '@umbraco-cms/backoffice/modal'; import type { ManifestModal, UmbModalExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/shared/modal/stories/modal.mdx b/src/Umbraco.Web.UI.Client/src/shared/modal/stories/modal.mdx index e04cdacc9e..0810be6f75 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/modal/stories/modal.mdx +++ b/src/Umbraco.Web.UI.Client/src/shared/modal/stories/modal.mdx @@ -23,7 +23,7 @@ A modal is a popup that darkens the background and has focus lock. There are two The UmbModal context can be used to open modals. ```ts -import { LitElement } from 'lit'; +import { LitElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbElementMixin } from '@umbraco-cms/element'; import { UmbModalContext, UMB_MODAL_CONTEXT_ALIAS } from '@umbraco-cms/modal'; @@ -89,12 +89,12 @@ descripe the addional features of the route Registration: @property() public set alias(value: string | undefined) { - this.myModalRegistration.setUniqueIdentifier('propertyAlias', value); + this.myModalRegistration.setUniquePathValue('propertyAlias', value); } @property() public set variantId(value: string | UmbVariantId | undefined) { - this.myModalRegistration.setUniqueIdentifier('variantId', value?.toString()); + this.myModalRegistration.setUniquePathValue('variantId', value?.toString()); } private _items = [ @@ -109,13 +109,10 @@ descripe the addional features of the route Registration: this.myModalRegistration = new UmbModalRouteRegistrationController( this, - MY_MODAL_TOKEN, - `:index`, - new Map([ - ['propertyAlias', undefined], - ['variantId', undefined], - ]) + MY_MODAL_TOKEN ) + .addAdditionalPath(`:index`) + .addUniquePaths(['propertyAlias', 'variantId']) .onSetup((params) => { // Get item index: const indexParam = params.index; @@ -176,7 +173,7 @@ Notice the Property Editor registration will add the property alias and variant A modal can be opened by calling the open method on the UmbModalContext. The methods will accept a modal token (or extension alias), an optional dataset, and optional modal options. It returns an instance of UmbModalHandler. ```ts -import { html, LitElement } from 'lit'; +import { html, LitElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbElementMixin } from '@umbraco-cms/element'; import { UmbModalContext, UMB_MODAL_CONTEXT_ALIAS } from '@umbraco-cms/modal'; class MyElement extends UmbElementMixin(LitElement) { @@ -244,7 +241,7 @@ const MY_MODAL_TOKEN = new ModalToken<MyModalData, MyModalResult>('My.Modal', { The Modal element ```ts -import { html, LitElement } from 'lit'; +import { html, LitElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbElementMixin } from '@umbraco-cms/element'; import type { UmbModalHandler } from '@umbraco-cms/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/shared/modal/stories/modal.stories.ts b/src/Umbraco.Web.UI.Client/src/shared/modal/stories/modal.stories.ts index b80cd203b5..958d0f7072 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/modal/stories/modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/modal/stories/modal.stories.ts @@ -1,5 +1,5 @@ import { Meta, Story } from '@storybook/web-components'; -import { html } from 'lit'; +import { html } from '@umbraco-cms/backoffice/external/lit'; export default { title: 'API/Modals', diff --git a/src/Umbraco.Web.UI.Client/src/shared/modal/stories/story-modal-service-example.element.ts b/src/Umbraco.Web.UI.Client/src/shared/modal/stories/story-modal-service-example.element.ts index 4e0580a122..06cb8c52f1 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/modal/stories/story-modal-service-example.element.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/modal/stories/story-modal-service-example.element.ts @@ -1,5 +1,4 @@ -import { html } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; +import { html , customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_MODAL_CONTEXT_TOKEN, UmbModalContext } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/libs/models/index.ts b/src/Umbraco.Web.UI.Client/src/shared/models/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/models/index.ts rename to src/Umbraco.Web.UI.Client/src/shared/models/index.ts diff --git a/src/Umbraco.Web.UI.Client/libs/repository/collection-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/shared/repository/collection-repository.interface.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/repository/collection-repository.interface.ts rename to src/Umbraco.Web.UI.Client/src/shared/repository/collection-repository.interface.ts diff --git a/src/Umbraco.Web.UI.Client/libs/repository/copy-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/shared/repository/copy-repository.interface.ts similarity index 94% rename from src/Umbraco.Web.UI.Client/libs/repository/copy-repository.interface.ts rename to src/Umbraco.Web.UI.Client/src/shared/repository/copy-repository.interface.ts index f9621e0c30..a59608100d 100644 --- a/src/Umbraco.Web.UI.Client/libs/repository/copy-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/repository/copy-repository.interface.ts @@ -1,4 +1,4 @@ -import { UmbRepositoryResponse } from './detail-repository.interface'; +import { UmbRepositoryResponse } from './detail-repository.interface.js'; export interface UmbCopyRepository { copy(unique: string, targetUnique: string): Promise<UmbRepositoryResponse<string>>; diff --git a/src/Umbraco.Web.UI.Client/libs/repository/data-source/collection-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/shared/repository/data-source/collection-data-source.interface.ts similarity index 65% rename from src/Umbraco.Web.UI.Client/libs/repository/data-source/collection-data-source.interface.ts rename to src/Umbraco.Web.UI.Client/src/shared/repository/data-source/collection-data-source.interface.ts index 92ac7cba1e..3251f64946 100644 --- a/src/Umbraco.Web.UI.Client/libs/repository/data-source/collection-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/repository/data-source/collection-data-source.interface.ts @@ -1,5 +1,5 @@ -import type { UmbPagedData } from '../tree-repository.interface'; -import type { DataSourceResponse } from '../../repository'; +import type { UmbPagedData } from '../tree-repository.interface.js'; +import type { DataSourceResponse } from '../index.js'; export interface UmbCollectionDataSource<ItemType = any, PagedItemType = UmbPagedData<ItemType>> { getCollection(): Promise<DataSourceResponse<PagedItemType>>; diff --git a/src/Umbraco.Web.UI.Client/libs/repository/data-source/copy-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/shared/repository/data-source/copy-data-source.interface.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/repository/data-source/copy-data-source.interface.ts rename to src/Umbraco.Web.UI.Client/src/shared/repository/data-source/copy-data-source.interface.ts diff --git a/src/Umbraco.Web.UI.Client/libs/repository/data-source/data-source-response.interface.ts b/src/Umbraco.Web.UI.Client/src/shared/repository/data-source/data-source-response.interface.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/repository/data-source/data-source-response.interface.ts rename to src/Umbraco.Web.UI.Client/src/shared/repository/data-source/data-source-response.interface.ts diff --git a/src/Umbraco.Web.UI.Client/libs/repository/data-source/data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/shared/repository/data-source/data-source.interface.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/repository/data-source/data-source.interface.ts rename to src/Umbraco.Web.UI.Client/src/shared/repository/data-source/data-source.interface.ts diff --git a/src/Umbraco.Web.UI.Client/libs/repository/data-source/folder-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/shared/repository/data-source/folder-data-source.interface.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/libs/repository/data-source/folder-data-source.interface.ts rename to src/Umbraco.Web.UI.Client/src/shared/repository/data-source/folder-data-source.interface.ts index 0998583c9f..d7d8b7b462 100644 --- a/src/Umbraco.Web.UI.Client/libs/repository/data-source/folder-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/repository/data-source/folder-data-source.interface.ts @@ -1,4 +1,4 @@ -import { DataSourceResponse } from './data-source-response.interface'; +import { DataSourceResponse } from './data-source-response.interface.js'; import { CreateFolderRequestModel, FolderReponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/shared/repository/data-source/index.ts b/src/Umbraco.Web.UI.Client/src/shared/repository/data-source/index.ts new file mode 100644 index 0000000000..33f1ddf6bc --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/shared/repository/data-source/index.ts @@ -0,0 +1,8 @@ +export * from './data-source-response.interface.js'; +export * from './data-source.interface.js'; +export * from './folder-data-source.interface.js'; +export * from './tree-data-source.interface.js'; +export * from './item-data-source.interface.js'; +export * from './move-data-source.interface.js'; +export * from './copy-data-source.interface.js'; +export * from './collection-data-source.interface.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/repository/data-source/item-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/shared/repository/data-source/item-data-source.interface.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/repository/data-source/item-data-source.interface.ts rename to src/Umbraco.Web.UI.Client/src/shared/repository/data-source/item-data-source.interface.ts diff --git a/src/Umbraco.Web.UI.Client/libs/repository/data-source/move-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/shared/repository/data-source/move-data-source.interface.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/repository/data-source/move-data-source.interface.ts rename to src/Umbraco.Web.UI.Client/src/shared/repository/data-source/move-data-source.interface.ts diff --git a/src/Umbraco.Web.UI.Client/libs/repository/data-source/tree-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/shared/repository/data-source/tree-data-source.interface.ts similarity index 84% rename from src/Umbraco.Web.UI.Client/libs/repository/data-source/tree-data-source.interface.ts rename to src/Umbraco.Web.UI.Client/src/shared/repository/data-source/tree-data-source.interface.ts index 3865b21650..c089256cb9 100644 --- a/src/Umbraco.Web.UI.Client/libs/repository/data-source/tree-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/repository/data-source/tree-data-source.interface.ts @@ -1,5 +1,5 @@ -import type { UmbPagedData } from '../tree-repository.interface'; -import type { DataSourceResponse } from './data-source-response.interface'; +import type { UmbPagedData } from '../tree-repository.interface.js'; +import type { DataSourceResponse } from './data-source-response.interface.js'; export interface UmbTreeDataSource<ItemType = any, PagedItemType = UmbPagedData<ItemType>> { getRootItems(): Promise<DataSourceResponse<PagedItemType>>; diff --git a/src/Umbraco.Web.UI.Client/libs/repository/detail-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/shared/repository/detail-repository.interface.ts similarity index 83% rename from src/Umbraco.Web.UI.Client/libs/repository/detail-repository.interface.ts rename to src/Umbraco.Web.UI.Client/src/shared/repository/detail-repository.interface.ts index 83b475b52c..4a6319e296 100644 --- a/src/Umbraco.Web.UI.Client/libs/repository/detail-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/repository/detail-repository.interface.ts @@ -1,4 +1,4 @@ -import { Observable } from 'rxjs'; +import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { ProblemDetailsModel } from '@umbraco-cms/backoffice/backend-api'; export interface UmbRepositoryErrorResponse { @@ -15,8 +15,8 @@ export interface UmbDetailRepository< ResponseType = any > { createScaffold(parentId: string | null): Promise<UmbRepositoryResponse<CreateRequestType>>; - requestById(id: string): Promise<UmbRepositoryResponse<ResponseType>>; - byId(id: string): Promise<Observable<ResponseType>>; + requestById(id: string): Promise<UmbRepositoryResponse<ResponseType | undefined>>; + byId(id: string): Promise<Observable<ResponseType | undefined>>; create(data: CreateRequestType): Promise<UmbRepositoryResponse<CreateResponseType>>; save(id: string, data: UpdateRequestType): Promise<UmbRepositoryErrorResponse>; delete(id: string): Promise<UmbRepositoryErrorResponse>; diff --git a/src/Umbraco.Web.UI.Client/libs/repository/folder-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/shared/repository/folder-repository.interface.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/repository/folder-repository.interface.ts rename to src/Umbraco.Web.UI.Client/src/shared/repository/folder-repository.interface.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/repository/index.ts b/src/Umbraco.Web.UI.Client/src/shared/repository/index.ts new file mode 100644 index 0000000000..a11ca47da5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/shared/repository/index.ts @@ -0,0 +1,9 @@ +export * from './data-source/index.js'; +export * from './detail-repository.interface.js'; +export * from './tree-repository.interface.js'; +export * from './folder-repository.interface.js'; +export * from './collection-repository.interface.js'; +export * from './item-repository.interface.js'; +export * from './move-repository.interface.js'; +export * from './copy-repository.interface.js'; +export * from './repository-items.manager.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/repository/item-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/shared/repository/item-repository.interface.ts similarity index 85% rename from src/Umbraco.Web.UI.Client/libs/repository/item-repository.interface.ts rename to src/Umbraco.Web.UI.Client/src/shared/repository/item-repository.interface.ts index 3f92cb70e8..68093be25c 100644 --- a/src/Umbraco.Web.UI.Client/libs/repository/item-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/repository/item-repository.interface.ts @@ -1,4 +1,4 @@ -import type { Observable } from 'rxjs'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import { ItemResponseModelBaseModel, ProblemDetailsModel } from '@umbraco-cms/backoffice/backend-api'; export interface UmbItemRepository<ItemType extends ItemResponseModelBaseModel> { diff --git a/src/Umbraco.Web.UI.Client/libs/repository/move-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/shared/repository/move-repository.interface.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/libs/repository/move-repository.interface.ts rename to src/Umbraco.Web.UI.Client/src/shared/repository/move-repository.interface.ts index f8e5889300..32097d5c34 100644 --- a/src/Umbraco.Web.UI.Client/libs/repository/move-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/repository/move-repository.interface.ts @@ -1,4 +1,4 @@ -import { UmbRepositoryErrorResponse } from './detail-repository.interface'; +import { UmbRepositoryErrorResponse } from './detail-repository.interface.js'; export interface UmbMoveRepository { move(unique: string, targetUnique: string): Promise<UmbRepositoryErrorResponse>; diff --git a/src/Umbraco.Web.UI.Client/src/shared/repository/repository-items.manager.ts b/src/Umbraco.Web.UI.Client/src/shared/repository/repository-items.manager.ts new file mode 100644 index 0000000000..b3b2b9319f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/shared/repository/repository-items.manager.ts @@ -0,0 +1,78 @@ +import { UmbItemRepository } from '@umbraco-cms/backoffice/repository'; +import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UmbArrayState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import { UmbExtensionClassInitializer } from '@umbraco-cms/backoffice/extension-registry'; +import { ItemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; + +export class UmbRepositoryItemsManager<ItemType extends ItemResponseModelBaseModel> { + host: UmbControllerHostElement; + repository?: UmbItemRepository<ItemType>; + #getUnique: (entry: ItemType) => string | undefined; + + init: Promise<unknown>; + + #uniques = new UmbArrayState<string>([]); + uniques = this.#uniques.asObservable(); + + #items = new UmbArrayState<ItemType>([]); + items = this.#items.asObservable(); + + itemsObserver?: UmbObserverController<ItemType[]>; + + /* TODO: find a better way to have a getUniqueMethod. If we want to support trees/items of different types, + then it need to be bound to the type and can't be a generic method we pass in. */ + constructor( + host: UmbControllerHostElement, + repositoryAlias: string, + getUniqueMethod?: (entry: ItemType) => string | undefined + ) { + this.host = host; + this.#getUnique = getUniqueMethod || ((entry) => entry.id || ''); + + this.init = new UmbExtensionClassInitializer(host, 'repository', repositoryAlias, (repository) => { + // TODO: Some test that this repository is a items repository? + this.repository = repository as UmbItemRepository<ItemType>; + }).asPromise(); + } + + getUniques() { + return this.#uniques.value; + } + + setUniques(uniques: string[]) { + this.#uniques.next(uniques); + + //TODO: Check if it's safe to call requestItems here. + this.#requestItems(); + } + + getItems() { + return this.#items.value; + } + + async #requestItems() { + await this.init; + if (!this.repository) throw new Error('Repository is not initialized'); + if (this.itemsObserver) this.itemsObserver.destroy(); + + // TODO: Test if its just some items that is gone now, if so then just filter them out. (maybe use code from #removeItem) + // This is where this.#getUnique comes in play. Unless that can come from the repository, but that collides with the idea of having a multi-type repository. If that happens. + + const { asObservable } = await this.repository.requestItems(this.getUniques()); + + if (asObservable) { + this.itemsObserver = new UmbObserverController(this.host, asObservable(), (data) => this.#items.next(data)); + } + } + + /* + #removeItem(unique: string) { + const newSelection = this.getSelection().filter((value) => value !== unique); + this.#selection.next(newSelection); + // remove items items from selectedItems array + // TODO: id won't always be available on the model, so we need to get the unique property from somewhere. Maybe the repository? + const newSelectedItems = this.#selectedItems.value.filter((item) => this.#getUnique(item) !== unique); + this.#selectedItems.next(newSelectedItems); + } + */ +} diff --git a/src/Umbraco.Web.UI.Client/libs/repository/tree-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/shared/repository/tree-repository.interface.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/libs/repository/tree-repository.interface.ts rename to src/Umbraco.Web.UI.Client/src/shared/repository/tree-repository.interface.ts index edb3221f33..981a3caed1 100644 --- a/src/Umbraco.Web.UI.Client/libs/repository/tree-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/repository/tree-repository.interface.ts @@ -1,4 +1,4 @@ -import type { Observable } from 'rxjs'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { UmbTreeRootEntityModel, UmbTreeRootModel } from '@umbraco-cms/backoffice/tree'; import { ProblemDetailsModel, TreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/shared/resources/index.ts b/src/Umbraco.Web.UI.Client/src/shared/resources/index.ts new file mode 100644 index 0000000000..b90a821514 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/shared/resources/index.ts @@ -0,0 +1,3 @@ +export * from './resource.controller.js'; +export * from './tryExecute.function.js'; +export * from './tryExecuteAndNotify.function.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/resources/resource.controller.ts b/src/Umbraco.Web.UI.Client/src/shared/resources/resource.controller.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/libs/resources/resource.controller.ts rename to src/Umbraco.Web.UI.Client/src/shared/resources/resource.controller.ts index eb4ea54308..3b73d69660 100644 --- a/src/Umbraco.Web.UI.Client/libs/resources/resource.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/resources/resource.controller.ts @@ -66,7 +66,13 @@ export class UmbResourceController extends UmbController { return {}; } else { // ApiError - body could hold a ProblemDetailsModel from the server - (error as any).body = typeof error.body === 'string' ? JSON.parse(error.body) : error.body; + if (typeof error.body !== 'undefined' && !!error.body) { + try { + (error as any).body = typeof error.body === 'string' ? JSON.parse(error.body) : error.body; + } catch (e) { + console.error('Error parsing error body (expected JSON)', e); + } + } // Go through the error status codes and act accordingly switch (error.status ?? 0) { diff --git a/src/Umbraco.Web.UI.Client/libs/resources/tryExecute.function.ts b/src/Umbraco.Web.UI.Client/src/shared/resources/tryExecute.function.ts similarity index 62% rename from src/Umbraco.Web.UI.Client/libs/resources/tryExecute.function.ts rename to src/Umbraco.Web.UI.Client/src/shared/resources/tryExecute.function.ts index a65503d760..cb0882fb46 100644 --- a/src/Umbraco.Web.UI.Client/libs/resources/tryExecute.function.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/resources/tryExecute.function.ts @@ -1,4 +1,4 @@ -import { UmbResourceController } from './resource.controller'; +import { UmbResourceController } from './resource.controller.js'; export function tryExecute<T>(promise: Promise<T>) { return UmbResourceController.tryExecute<T>(promise); diff --git a/src/Umbraco.Web.UI.Client/libs/resources/tryExecuteAndNotify.function.ts b/src/Umbraco.Web.UI.Client/src/shared/resources/tryExecuteAndNotify.function.ts similarity index 87% rename from src/Umbraco.Web.UI.Client/libs/resources/tryExecuteAndNotify.function.ts rename to src/Umbraco.Web.UI.Client/src/shared/resources/tryExecuteAndNotify.function.ts index 78be397110..e7c0e632e9 100644 --- a/src/Umbraco.Web.UI.Client/libs/resources/tryExecuteAndNotify.function.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/resources/tryExecuteAndNotify.function.ts @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -import { UmbResourceController } from './resource.controller'; +import { UmbResourceController } from './resource.controller.js'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import type { UmbNotificationOptions } from '@umbraco-cms/backoffice/notification'; diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/encode-folder-name.function.ts b/src/Umbraco.Web.UI.Client/src/shared/router/encode-folder-name.function.ts new file mode 100644 index 0000000000..d7e1e42419 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/shared/router/encode-folder-name.function.ts @@ -0,0 +1,10 @@ +export const encodeFolderName = (path: string) => + encodeURIComponent(path.toLowerCase().replace(/\s+/g, '-')) + .replace(/_/g, '-') + .replace(/\./g, '-') + .replace(/!/g, '-') + .replace(/~/g, '-') + .replace(/\*/g, '-') + .replace(/'/g, '') + .replace(/\(/g, '-') + .replace(/\)/g, '-'); diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/generate-route-path-builder.function.ts b/src/Umbraco.Web.UI.Client/src/shared/router/generate-route-path-builder.function.ts new file mode 100644 index 0000000000..5ad4606f83 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/shared/router/generate-route-path-builder.function.ts @@ -0,0 +1,15 @@ +/* eslint-disable */ +import { stripSlash } from '@umbraco-cms/backoffice/external/router-slot'; // This must only include the util to avoid side effects of registering the route element. + +const PARAM_IDENTIFIER = /:([^\\/]+)/g; + +export function generateRoutePathBuilder(path: string) { + return (params: { [key: string]: string | number } | null) => + params + ? stripSlash( + path.replace(PARAM_IDENTIFIER, (substring: string, ...args: string[]) => { + return params[args[0]].toString(); + }) + ) + : path; +} diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/index.ts b/src/Umbraco.Web.UI.Client/src/shared/router/index.ts index fbbe29d96c..548bb725cc 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/router/index.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/router/index.ts @@ -1,4 +1,9 @@ -export * from './router-slot.element'; -export * from './router-slot-change.event'; -export * from './router-slot-init.event'; -export * from './variant-router-slot.element'; +export * from './router-slot.element.js'; +export * from './router-slot-change.event.js'; +export * from './router-slot-init.event.js'; +export * from './variant-router-slot.element.js'; +export * from '@umbraco-cms/backoffice/external/router-slot'; +export * from './route.context.js'; +export * from './route.interface.js'; +export * from './generate-route-path-builder.function.js'; +export * from './encode-folder-name.function.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/router/route.context.ts b/src/Umbraco.Web.UI.Client/src/shared/router/route.context.ts similarity index 73% rename from src/Umbraco.Web.UI.Client/libs/router/route.context.ts rename to src/Umbraco.Web.UI.Client/src/shared/router/route.context.ts index 45b90b7932..2fbd0d28f4 100644 --- a/src/Umbraco.Web.UI.Client/libs/router/route.context.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/router/route.context.ts @@ -1,7 +1,6 @@ -// eslint-disable-next-line local-rules/no-external-imports -import type { IRoutingInfo } from 'router-slot/model'; -import type { UmbRoute } from './route.interface'; -import { generateRoutePathBuilder } from './generate-route-path-builder.function'; +import type { UmbRoute } from './route.interface.js'; +import { generateRoutePathBuilder } from './generate-route-path-builder.function.js'; +import type { IRoutingInfo, IRouterSlot } from '@umbraco-cms/backoffice/external/router-slot'; import { UmbContextConsumerController, UmbContextProviderController, @@ -13,13 +12,18 @@ import { UMB_MODAL_CONTEXT_TOKEN, UmbModalRouteRegistration } from '@umbraco-cms const EmptyDiv = document.createElement('div'); export class UmbRouteContext { + #mainRouter: IRouterSlot; + #modalRouter: IRouterSlot; #modalRegistrations: UmbModalRouteRegistration[] = []; #modalContext?: typeof UMB_MODAL_CONTEXT_TOKEN.TYPE; #contextRoutes: UmbRoute[] = []; #routerBasePath?: string; + #routerActiveLocalPath?: string; #activeModalPath?: string; - constructor(host: UmbControllerHostElement, private _onGotModals: (contextRoutes: any) => void) { + constructor(host: UmbControllerHostElement, mainRouter: IRouterSlot, modalRouter: IRouterSlot) { + this.#mainRouter = mainRouter; + this.#modalRouter = modalRouter; new UmbContextProviderController(host, UMB_ROUTE_CONTEXT_TOKEN, this); new UmbContextConsumerController(host, UMB_MODAL_CONTEXT_TOKEN, (context) => { this.#modalContext = context; @@ -41,17 +45,13 @@ export class UmbRouteContext { this.#generateContextRoutes(); } - #getModalRoutePath(modalRegistration: UmbModalRouteRegistration) { - return `/modal/${modalRegistration.alias.toString()}/${modalRegistration.path}`; - } - #generateRoute(modalRegistration: UmbModalRouteRegistration): UmbRoute { return { - path: this.#getModalRoutePath(modalRegistration), + path: '/' + modalRegistration.generateModalPath(), component: EmptyDiv, setup: (component, info) => { if (!this.#modalContext) return; - const modalHandler = modalRegistration.routeSetup(this.#modalContext, info.match.params); + const modalHandler = modalRegistration.routeSetup(this.#modalRouter, this.#modalContext, info.match.params); if (modalHandler) { modalHandler.onSubmit().then( () => { @@ -84,7 +84,8 @@ export class UmbRouteContext { }); // TODO: Should we await one frame, to ensure we don't call back too much?. - this._onGotModals(this.#contextRoutes); + this.#modalRouter.routes = this.#contextRoutes; + this.#modalRouter.render(); } public _internal_routerGotBasePath(routerBasePath: string) { @@ -93,14 +94,20 @@ export class UmbRouteContext { this.#generateNewUrlBuilders(); } + public _internal_routerGotActiveLocalPath(routerActiveLocalPath: string | undefined) { + if (this.#routerActiveLocalPath === routerActiveLocalPath) return; + this.#routerActiveLocalPath = routerActiveLocalPath; + this.#generateNewUrlBuilders(); + } + // Also notice each registration should now hold its handler when its active. public _internal_modalRouterChanged(activeModalPath: string | undefined) { if (this.#activeModalPath === activeModalPath) return; if (this.#activeModalPath) { // If if there is a modal using the old path. - const activeModal = this.#modalRegistrations.find( - (registration) => this.#getModalRoutePath(registration) === this.#activeModalPath - ); + const activeModal = this.#modalRegistrations.find((registration) => { + return '/' + registration.generateModalPath() === this.#activeModalPath; + }); if (activeModal) { this.#modalContext?.close(activeModal.key); } @@ -116,7 +123,12 @@ export class UmbRouteContext { if (!this.#routerBasePath) return; const routeBasePath = this.#routerBasePath.endsWith('/') ? this.#routerBasePath : this.#routerBasePath + '/'; - const localPath = routeBasePath + `modal/${modalRegistration.alias.toString()}/${modalRegistration.path}`; + const routeActiveLocalPath = this.#routerActiveLocalPath + ? this.#routerActiveLocalPath.endsWith('/') + ? this.#routerActiveLocalPath + : this.#routerActiveLocalPath + '/' + : ''; + const localPath = routeBasePath + routeActiveLocalPath + modalRegistration.generateModalPath(); const urlBuilder = generateRoutePathBuilder(localPath); diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/route.interface.ts b/src/Umbraco.Web.UI.Client/src/shared/router/route.interface.ts new file mode 100644 index 0000000000..71ffa95728 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/shared/router/route.interface.ts @@ -0,0 +1 @@ +export type { IRoute as UmbRoute } from '@umbraco-cms/backoffice/external/router-slot'; diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/router-slot-change.event.ts b/src/Umbraco.Web.UI.Client/src/shared/router/router-slot-change.event.ts index 5b9c9bd806..d82bfaa4e7 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/router/router-slot-change.event.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/router/router-slot-change.event.ts @@ -1,5 +1,5 @@ -import { UUIEvent } from '@umbraco-ui/uui-base/lib/events'; -import type { UmbRouterSlotElement } from './router-slot.element'; +import type { UmbRouterSlotElement } from './router-slot.element.js'; +import { UUIEvent } from '@umbraco-cms/backoffice/external/uui'; export class UmbRouterSlotChangeEvent extends UUIEvent<never, UmbRouterSlotElement> { static readonly CHANGE = 'change'; constructor() { diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/router-slot-init.event.ts b/src/Umbraco.Web.UI.Client/src/shared/router/router-slot-init.event.ts index 0a4895e968..bf359ae9f4 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/router/router-slot-init.event.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/router/router-slot-init.event.ts @@ -1,5 +1,5 @@ -import { UUIEvent } from '@umbraco-ui/uui-base/lib/events'; -import type { UmbRouterSlotElement } from './router-slot.element'; +import type { UmbRouterSlotElement } from './router-slot.element.js'; +import { UUIEvent } from '@umbraco-cms/backoffice/external/uui'; export class UmbRouterSlotInitEvent extends UUIEvent<never, UmbRouterSlotElement> { static readonly INIT = 'init'; constructor() { diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/router-slot.element.ts b/src/Umbraco.Web.UI.Client/src/shared/router/router-slot.element.ts index 3120a5d02b..5df9d5d27a 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/router/router-slot.element.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/router/router-slot.element.ts @@ -1,11 +1,9 @@ -// eslint-disable-next-line local-rules/no-external-imports -import { RouterSlot } from 'router-slot/router-slot'; -import { css, html, PropertyValueMap } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { UmbLitElement } from '../lit-element'; -import { UmbRouterSlotInitEvent } from './router-slot-init.event'; -import { UmbRouterSlotChangeEvent } from './router-slot-change.event'; -import { UmbRouteContext, UmbRoute } from '@umbraco-cms/backoffice/router'; +import '@umbraco-cms/backoffice/external/router-slot'; +import { UmbRouterSlotInitEvent } from './router-slot-init.event.js'; +import { UmbRouterSlotChangeEvent } from './router-slot-change.event.js'; +import { css, html, PropertyValueMap, customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { UmbRouteContext, UmbRoute, IRouterSlot } from '@umbraco-cms/backoffice/router'; /** * @element umb-router-slot @@ -16,10 +14,8 @@ import { UmbRouteContext, UmbRoute } from '@umbraco-cms/backoffice/router'; */ @customElement('umb-router-slot') export class UmbRouterSlotElement extends UmbLitElement { - - - #router: RouterSlot = new RouterSlot(); - #modalRouter: RouterSlot = new RouterSlot(); + #router: IRouterSlot = document.createElement('router-slot') as IRouterSlot; + #modalRouter: IRouterSlot = document.createElement('router-slot') as IRouterSlot; #listening = false; @property() @@ -30,6 +26,14 @@ export class UmbRouterSlotElement extends UmbLitElement { this.#router.routes = value || []; } + @property() + public get parent(): IRouterSlot | null | undefined { + return this.#router.parent; + } + public set parent(parent: IRouterSlot | null | undefined) { + this.#router.parent = parent; + } + private _routerPath?: string; public get absoluteRouterPath() { return this._routerPath; @@ -44,18 +48,13 @@ export class UmbRouterSlotElement extends UmbLitElement { return this._routerPath + '/' + this._activeLocalPath; } - #routeContext = new UmbRouteContext(this, (contextRoutes) => { - this.#modalRouter.routes = contextRoutes; - // Force a render? - this.#modalRouter.render(); - }); + #routeContext = new UmbRouteContext(this, this.#router, this.#modalRouter); constructor() { super(); this.#modalRouter.parent = this.#router; this.#modalRouter.style.display = 'none'; this.#router.addEventListener('changestate', this._updateRouterPath.bind(this)); - //this.#router.appendChild(this.#modalRouter); this.#router.appendChild(document.createElement('slot')); } @@ -97,6 +96,7 @@ export class UmbRouterSlotElement extends UmbLitElement { const newActiveLocalPath = this.#router.match?.route.path; if (this._activeLocalPath !== newActiveLocalPath) { this._activeLocalPath = newActiveLocalPath; + this.#routeContext._internal_routerGotActiveLocalPath(this._activeLocalPath); this.dispatchEvent(new UmbRouterSlotChangeEvent()); } } @@ -105,6 +105,7 @@ export class UmbRouterSlotElement extends UmbLitElement { private _onNavigationChanged = (event?: any) => { if (event.detail.slot === this.#router) { this._activeLocalPath = event.detail.match.route.path; + this.#routeContext._internal_routerGotActiveLocalPath(this._activeLocalPath); this.dispatchEvent(new UmbRouterSlotChangeEvent()); } else if (event.detail.slot === this.#modalRouter) { const newActiveModalLocalPath = event.detail.match.route.path; @@ -115,12 +116,11 @@ export class UmbRouterSlotElement extends UmbLitElement { render() { return html`${this.#router}${this.#modalRouter}`; } - + static styles = [ css` :host { - display: flex; - flex-direction: column; + position: relative; height: 100%; } diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/variant-router-slot.element.ts b/src/Umbraco.Web.UI.Client/src/shared/router/variant-router-slot.element.ts index 60012997bc..5082053103 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/router/variant-router-slot.element.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/router/variant-router-slot.element.ts @@ -1,5 +1,5 @@ -import { customElement, property } from 'lit/decorators.js'; -import { UmbRouterSlotElement } from './router-slot.element'; +import { UmbRouterSlotElement } from './router-slot.element.js'; +import { customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import { UmbRoute } from '@umbraco-cms/backoffice/router'; diff --git a/src/Umbraco.Web.UI.Client/libs/umb-events/change.event.ts b/src/Umbraco.Web.UI.Client/src/shared/umb-events/change.event.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/umb-events/change.event.ts rename to src/Umbraco.Web.UI.Client/src/shared/umb-events/change.event.ts diff --git a/src/Umbraco.Web.UI.Client/libs/umb-events/delete.event.ts b/src/Umbraco.Web.UI.Client/src/shared/umb-events/delete.event.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/umb-events/delete.event.ts rename to src/Umbraco.Web.UI.Client/src/shared/umb-events/delete.event.ts diff --git a/src/Umbraco.Web.UI.Client/libs/umb-events/executed.event.ts b/src/Umbraco.Web.UI.Client/src/shared/umb-events/executed.event.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/umb-events/executed.event.ts rename to src/Umbraco.Web.UI.Client/src/shared/umb-events/executed.event.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/umb-events/index.ts b/src/Umbraco.Web.UI.Client/src/shared/umb-events/index.ts new file mode 100644 index 0000000000..3bcae218c6 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/shared/umb-events/index.ts @@ -0,0 +1,4 @@ +export * from './input.event.js'; +export * from './change.event.js'; +export * from './delete.event.js'; +export * from './executed.event.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/umb-events/input.event.ts b/src/Umbraco.Web.UI.Client/src/shared/umb-events/input.event.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/umb-events/input.event.ts rename to src/Umbraco.Web.UI.Client/src/shared/umb-events/input.event.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/generate-umbraco-alias.function.ts b/src/Umbraco.Web.UI.Client/src/shared/utils/generate-umbraco-alias.function.ts new file mode 100644 index 0000000000..597f562c24 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/shared/utils/generate-umbraco-alias.function.ts @@ -0,0 +1,8 @@ +export function generateAlias(text: string) { + //replace all spaces characters with a dash and remove all non-alphanumeric characters, except underscore. Allow a maximum of 1 dashes or underscores in a row. + return text + .replace(/\s+/g, '-') + .replace(/[^a-zA-Z0-9_-]+/g, '') + .replace(/[-_]{2,}/g, (match) => match[0]) + .toLowerCase(); +} diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/index.ts b/src/Umbraco.Web.UI.Client/src/shared/utils/index.ts new file mode 100644 index 0000000000..4d8ef0542b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/shared/utils/index.ts @@ -0,0 +1,4 @@ +export * from './generate-umbraco-alias.function.js'; +export * from './umbraco-path.js'; +export * from './udi-service.js'; +export * from './selection-manager.js'; diff --git a/src/Umbraco.Web.UI.Client/libs/utils/media-helper.service.ts b/src/Umbraco.Web.UI.Client/src/shared/utils/media-helper.service.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/utils/media-helper.service.ts rename to src/Umbraco.Web.UI.Client/src/shared/utils/media-helper.service.ts diff --git a/src/Umbraco.Web.UI.Client/libs/utils/selection-manager.ts b/src/Umbraco.Web.UI.Client/src/shared/utils/selection-manager.ts similarity index 91% rename from src/Umbraco.Web.UI.Client/libs/utils/selection-manager.ts rename to src/Umbraco.Web.UI.Client/src/shared/utils/selection-manager.ts index 606dc98bcd..9929a75430 100644 --- a/src/Umbraco.Web.UI.Client/libs/utils/selection-manager.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/utils/selection-manager.ts @@ -1,5 +1,5 @@ -import { Observable } from 'rxjs'; -import { UmbArrayState, UmbBooleanState } from '../observable-api'; +import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; +import { UmbArrayState, UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; export interface UmbSelectionManager { selection: Observable<Array<string | null>>; diff --git a/src/Umbraco.Web.UI.Client/libs/utils/udi-service.ts b/src/Umbraco.Web.UI.Client/src/shared/utils/udi-service.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/utils/udi-service.ts rename to src/Umbraco.Web.UI.Client/src/shared/utils/udi-service.ts diff --git a/src/Umbraco.Web.UI.Client/libs/utils/umbraco-path.ts b/src/Umbraco.Web.UI.Client/src/shared/utils/umbraco-path.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/utils/umbraco-path.ts rename to src/Umbraco.Web.UI.Client/src/shared/utils/umbraco-path.ts diff --git a/src/Umbraco.Web.UI.Client/src/tsconfig.json b/src/Umbraco.Web.UI.Client/src/tsconfig.json new file mode 100644 index 0000000000..5ed32856b3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "allowJs": true, + "noEmit": false, + "outDir": "../dist-cms", + "rootDir": "./", + "composite": true, + "resolveJsonModule": true, + }, + "include": ["./**/*.ts", "./**/*.json", "./**/*.js"], + "exclude": ["./**/*.test.ts", "./**/*.stories.ts", "tsconfig.json", "rollup.config.js"], +} diff --git a/src/Umbraco.Web.UI.Client/storybook/stories/extending/entity-actions.mdx b/src/Umbraco.Web.UI.Client/storybook/stories/extending/entity-actions.mdx index 6d814db657..0643e04625 100644 --- a/src/Umbraco.Web.UI.Client/storybook/stories/extending/entity-actions.mdx +++ b/src/Umbraco.Web.UI.Client/storybook/stories/extending/entity-actions.mdx @@ -86,7 +86,31 @@ interface UmbEntityActionElement {} ### The Entity Action Class -As part of the Extension Manifest you can attach a class that will be instanciated as part of the action. It will have access to the host element, a repository with the given alias and the unique (key etc) of the entity. When the action is clicked the `execute` method on the api class will be run. When the action is completed, an event on the host element will be dispatched to notify any surrounding elements. +As part of the Extension Manifest you can attach a class that will be instanciated as part of the action. +It will have access to the host element, a repository with the given alias and the unique (key etc) of the entity. + +The class either provides a getHref method, or an execute method. If the getHref method is provided, the action will use the link. Otherwise the `execute` method will be used. +When the action is clicked the `execute` method on the api class will be run. When the action is completed, an event on the host element will be dispatched to notify any surrounding elements. + +Example of providing a `getHref` method: + +```ts +import { UmbEntityActionBase } from '@umbraco-cms/entity-action'; +import { UmbControllerHostElement } from '@umbraco-cms/controller'; +import type { MyRepository } from './my-repository'; + +export class MyEntityAction extends UmbEntityActionBase<MyRepository> { + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { + super(host, repositoryAlias, unique); + } + + async getHref() { + return 'my-link/path-to-something'; + } +} +``` + +Example of providing a `execute` method: ```ts import { UmbEntityActionBase } from '@umbraco-cms/entity-action'; diff --git a/src/Umbraco.Web.UI.Client/storybook/stories/extending/property-editors.mdx b/src/Umbraco.Web.UI.Client/storybook/stories/extending/property-editors.mdx index 849adeac35..d12816ef8d 100644 --- a/src/Umbraco.Web.UI.Client/storybook/stories/extending/property-editors.mdx +++ b/src/Umbraco.Web.UI.Client/storybook/stories/extending/property-editors.mdx @@ -37,7 +37,7 @@ import { Meta } from '@storybook/addon-docs'; ```json { "type": "propertyEditorUI", - "alias": "Umb.PropertyEditorUI.TextBox", + "alias": "Umb.PropertyEditorUi.TextBox", "name": "Text Box Property Editor UI", "elementName": "my-text-box", "js": "./my-text-box.element.js", @@ -75,7 +75,7 @@ If no Property Editor is specified in the manifest, the Propety Editor will use "alias": "rows", "label": "Number of rows", "description": "If empty - 10 rows would be set as the default value", - "propertyEditorUI": "Umb.PropertyEditorUI.Number", + "propertyEditorUI": "Umb.PropertyEditorUi.Number", }, ], "defaultData": [ diff --git a/src/Umbraco.Web.UI.Client/storybook/stories/extending/workspaces/actions.mdx b/src/Umbraco.Web.UI.Client/storybook/stories/extending/workspaces/actions.mdx index d9ff5db436..6865e19005 100644 --- a/src/Umbraco.Web.UI.Client/storybook/stories/extending/workspaces/actions.mdx +++ b/src/Umbraco.Web.UI.Client/storybook/stories/extending/workspaces/actions.mdx @@ -39,7 +39,9 @@ extensionRegistry.register(manifest); ### The Workspace Action Class -As part of the Extension Manifest you can attach a class that will be instanciated as part of the action. It will have access to the host element and the Workspace Context. When the action is clicked the `execute` method on the api class will be run. When the action is completed, an event on the host element will be dispatched to notify any surrounding elements. +As part of the Extension Manifest you can attach a class that will be instanciated as part of the action. It will have access to the host element and the Workspace Context. +When the action is clicked the `execute` method on the api class will be run. +When the action is completed, an event on the host element will be dispatched to notify any surrounding elements. ```ts import { UmbEntityBulkActionBase } from '@umbraco-cms/entity-action'; diff --git a/src/Umbraco.Web.UI.Client/tsconfig.json b/src/Umbraco.Web.UI.Client/tsconfig.json index 2a4b4f6515..6aa564d2ea 100644 --- a/src/Umbraco.Web.UI.Client/tsconfig.json +++ b/src/Umbraco.Web.UI.Client/tsconfig.json @@ -18,47 +18,72 @@ "resolveJsonModule": true, "baseUrl": ".", "paths": { - "@umbraco-cms/backoffice/backend-api": ["libs/backend-api"], - "@umbraco-cms/backoffice/content-type": ["libs/content-type"], - "@umbraco-cms/backoffice/context-api": ["libs/context-api"], - "@umbraco-cms/backoffice/controller-api": ["libs/controller-api"], - "@umbraco-cms/backoffice/css": ["libs/css/custom-properties.css"], - "@umbraco-cms/backoffice/data-type": ["libs/data-type"], - "@umbraco-cms/backoffice/element-api": ["libs/element-api"], - "@umbraco-cms/backoffice/entity-action": ["libs/entity-action"], - "@umbraco-cms/backoffice/events": ["libs/umb-events"], - "@umbraco-cms/backoffice/extension-api": ["libs/extension-api"], - "@umbraco-cms/backoffice/extension-registry": ["libs/extension-registry"], - "@umbraco-cms/backoffice/macro": ["libs/macro"], - "@umbraco-cms/backoffice/modal": ["libs/modal"], - "@umbraco-cms/backoffice/models": ["libs/models"], - "@umbraco-cms/backoffice/notification": ["libs/notification"], - "@umbraco-cms/backoffice/observable-api": ["libs/observable-api"], - "@umbraco-cms/backoffice/property-editor": ["libs/property-editor"], - "@umbraco-cms/backoffice/repository": ["libs/repository"], - "@umbraco-cms/backoffice/resources": ["libs/resources"], - "@umbraco-cms/backoffice/router": ["libs/router"], - "@umbraco-cms/backoffice/sorter": ["libs/sorter"], - "@umbraco-cms/backoffice/store": ["libs/store"], - "@umbraco-cms/backoffice/utils": ["libs/utils"], - "@umbraco-cms/backoffice/workspace": ["libs/workspace"], - "@umbraco-cms/backoffice/picker-input": ["libs/picker-input"], - "@umbraco-cms/backoffice/id": ["libs/id"], - "@umbraco-cms/backoffice/collection": ["libs/collection"], - "@umbraco-cms/backoffice/tree": ["libs/tree"], - "@umbraco-cms/backoffice/section": ["libs/section"], - "@umbraco-cms/backoffice/variant": ["libs/variant"], + "@umbraco-cms/backoffice/external/lit": ["src/external/lit"], + "@umbraco-cms/backoffice/external/openid": ["src/external/openid"], + "@umbraco-cms/backoffice/backend-api": ["src/external/backend-api"], + "@umbraco-cms/backoffice/external/rxjs": ["src/external/rxjs"], + "@umbraco-cms/backoffice/external/router-slot": ["src/external/router-slot"], + "@umbraco-cms/backoffice/external/uuid": ["src/external/uuid"], + "@umbraco-cms/backoffice/external/lodash": ["src/external/lodash"], + "@umbraco-cms/backoffice/external/uui": ["src/external/uui"], - "@umbraco-cms/backoffice/core/components": ["src/packages/core/components"], + "@umbraco-cms/backoffice/context-api": ["src/libs/context-api"], + "@umbraco-cms/backoffice/controller-api": ["src/libs/controller-api"], + "@umbraco-cms/backoffice/element-api": ["src/libs/element-api"], + "@umbraco-cms/backoffice/extension-api": ["src/libs/extension-api"], + "@umbraco-cms/backoffice/observable-api": ["src/libs/observable-api"], + + // SHARED + "@umbraco-cms/backoffice/events": ["src/shared/umb-events"], + "@umbraco-cms/backoffice/models": ["src/shared/models"], + "@umbraco-cms/backoffice/repository": ["src/shared/repository"], + "@umbraco-cms/backoffice/resources": ["src/shared/resources"], + "@umbraco-cms/backoffice/router": ["src/shared/router"], + "@umbraco-cms/backoffice/utils": ["src/shared/utils"], + "@umbraco-cms/backoffice/icon": ["src/shared/icon-registry"], + + // CORE + "@umbraco-cms/backoffice/action": ["src/packages/core/action"], + "@umbraco-cms/backoffice/collection": ["src/packages/core/collection"], + "@umbraco-cms/backoffice/components": ["src/packages/core/components"], + "@umbraco-cms/backoffice/content-type": ["src/packages/core/content-type"], + "@umbraco-cms/backoffice/debug": ["src/packages/core/debug"], + "@umbraco-cms/backoffice/entity-action": ["src/packages/core/entity-action"], + "@umbraco-cms/backoffice/entity-bulk-action": ["src/packages/core/entity-bulk-action"], + "@umbraco-cms/backoffice/extension-registry": ["src/packages/core/extension-registry"], + "@umbraco-cms/backoffice/id": ["src/packages/core/id"], + "@umbraco-cms/backoffice/menu": ["src/packages/core/menu"], + "@umbraco-cms/backoffice/modal": ["src/packages/core/modal"], + "@umbraco-cms/backoffice/notification": ["src/packages/core/notification"], + "@umbraco-cms/backoffice/picker-input": ["src/packages/core/picker-input"], + "@umbraco-cms/backoffice/section": ["src/packages/core/section"], + "@umbraco-cms/backoffice/sorter": ["src/packages/core/sorter"], + "@umbraco-cms/backoffice/store": ["src/packages/core/store"], + "@umbraco-cms/backoffice/tree": ["src/packages/core/tree"], + "@umbraco-cms/backoffice/variant": ["src/packages/core/variant"], + "@umbraco-cms/backoffice/workspace": ["src/packages/core/workspace"], + "@umbraco-cms/backoffice/property-editor": ["src/packages/core/property-editor"], + + // DOCUMENT MANAGEMENT + // Document + "@umbraco-cms/backoffice/document": ["src/packages/documents/documents"], + + // DATA TYPES + "@umbraco-cms/backoffice/data-type": ["src/packages/settings/data-types"], + + // USERS "@umbraco-cms/backoffice/user-group": ["src/packages/users/user-groups"], + "@umbraco-cms/backoffice/current-user": ["src/packages/users/current-user"], + "@umbraco-cms/backoffice/users": ["src/packages/users/users"], + + "@umbraco-cms/backoffice/css": ["src/shared/css/custom-properties.css"], "@umbraco-cms/internal/lit-element": ["src/shared/lit-element"], "@umbraco-cms/internal/modal": ["src/shared/modal"], - "@umbraco-cms/internal/router": ["src/shared/router"], "@umbraco-cms/internal/test-utils": ["utils/test-utils.ts"] } }, - "include": ["src/**/*.ts", "apps/**/*.ts", "libs/**/*.ts", "e2e/**/*.ts", "index.ts"], + "include": ["src/**/*.ts", "apps/**/*.ts", "e2e/**/*.ts", "index.ts"], "references": [ { "path": "./tsconfig.node.json" diff --git a/src/Umbraco.Web.UI.Client/utils/build-libs.js b/src/Umbraco.Web.UI.Client/utils/build-libs.js deleted file mode 100644 index 6ac2dd814d..0000000000 --- a/src/Umbraco.Web.UI.Client/utils/build-libs.js +++ /dev/null @@ -1,73 +0,0 @@ -import * as fs from 'fs'; -import { exec } from 'child_process'; - -const libsDistFolder = '../Umbraco.Cms.StaticAssets/wwwroot/umbraco/backoffice/libs'; -const typesDistFolder = '../Umbraco.Web.UI.New/dts'; -const libs = fs.readdirSync('./libs'); - -for (let i = 0; i < libs.length; i++) { - const lib = libs[i]; - const libFolder = './libs/' + lib; - if (fs.statSync(libFolder).isDirectory()) { - const libPackage = libFolder + '/rollup.config.js'; - if (!fs.existsSync(libPackage)) { - continue; - } - - console.log('Installing ' + lib + '...'); - exec('npx rollup -c rollup.config.js', { cwd: libFolder }, function (error) { - if (error) { - console.error('Error installing ' + lib + '!'); - console.error(error); - } else { - console.log('Installed ' + lib + '.'); - - copyDistFromLib(lib, `${libFolder}/dist`); - findAndCopyTypesForLib(lib); - } - }); - } -} - -function copyDistFromLib(libName, distPath) { - console.log(`Copying ${libName} to StaticAssets`); - - const destPath = `${libsDistFolder}/${libName}`; - - try { - fs.readdirSync(distPath).forEach(file => fs.cpSync(`${distPath}/${file}`, `${destPath}/${file}`, { recursive: true })); - console.log(`Copied ${libName}`); - } catch (err) { - console.error(`Error copying ${libName}`); - console.error(err); - } -} - -/** - * This function copies the content of the index.d.ts file from the lib into - * the ${typesDistFolder}/global.d.ts file and wrap it with - * a declare module statement using the lib name. - */ -function findAndCopyTypesForLib(libName) { - console.log(`Copying ${libName} types to ${typesDistFolder}`); - - const sourceFile = `${libsDistFolder}/${libName}/index.d.ts`; - const destPath = `${typesDistFolder}/${libName}/index.d.ts`; - - try { - fs.cpSync(sourceFile, destPath, { recursive: true }); - const content = fs.readFileSync(destPath, 'utf-8'); - fs.writeFileSync(destPath, wrapLibTypeContent(libName, content)); - console.log(`Copied ${libName} types`); - } catch (err) { - console.error(`Error copying ${libName} types`); - console.error(err); - } -} - -function wrapLibTypeContent(libName, content) { - return `declare module "@umbraco-cms/${libName}" { - ${content.replace(/declare/g, '')} -} -`; -} diff --git a/src/Umbraco.Web.UI.Client/utils/move-libs.js b/src/Umbraco.Web.UI.Client/utils/move-libs.js deleted file mode 100644 index 6743d894e1..0000000000 --- a/src/Umbraco.Web.UI.Client/utils/move-libs.js +++ /dev/null @@ -1,57 +0,0 @@ -// Load all .d.ts files from the dist/libs folder -// and replace all imports from @umbraco-cms/backoffice with relative imports -// Example: import { Foo } from '@umbraco-cms/backoffice/element-api' -> import { Foo } from './element' -// This is needed because the d.ts files are not in the same folder as the source files -// and the absolute paths are not valid when the d.ts files are copied to the dist folder -// This is only used when building the d.ts files. -// -// This script also copies the package.json and README.md files to the dist/libs folder -// and the umbraco-package-schema.json file to the Umbraco.Web.UI.New folder -// -// Usage: node utils/move-libs.js - -import { readdirSync, readFileSync, writeFileSync, cpSync, mkdirSync } from 'fs'; - -const srcDir = './libs'; -const inputDir = './dist/libs'; -const outputDir = '../Umbraco.Cms.StaticAssets/wwwroot/umbraco/backoffice/libs'; -const executableDir = '../Umbraco.Web.UI.New'; - -// Copy package files -cpSync(`${srcDir}/package.json`, `${inputDir}/package.json`, { recursive: true }); -console.log(`Copied ${srcDir}/package.json to ${inputDir}/package.json`); -cpSync(`${srcDir}/README.md`, `${inputDir}/README.md`, { recursive: true }); -console.log(`Copied ${srcDir}/README.md to ${inputDir}/README.md`); -cpSync(`${inputDir}/umbraco-package-schema.json`, `${executableDir}/umbraco-package-schema.json`, { recursive: true }); -console.log(`Copied ${inputDir}/umbraco-package-schema.json to ${executableDir}/umbraco-package-schema.json`); - -const libs = readdirSync(inputDir); - -// Create output folder -try { - mkdirSync(outputDir, { recursive: true }); -} catch { - // Ignore -} - -// Transform all .d.ts files and copy all other files to the output folder -libs.forEach((lib) => { - if (lib.endsWith('.js') === false && lib.endsWith('.js.map') === false) return; - - console.log(`Transforming ${lib}`); - - const dtsFile = `${inputDir}/${lib}`; - - let code = readFileSync(dtsFile, 'utf8'); - - // Replace all absolute imports with relative imports - if (lib.endsWith('.d.ts')) { - code = code.replace(/from '(@umbraco-cms\/backoffice\/[^']+)'/g, (match, p1) => { - return `from './${p1.split('/').pop()}'`; - }); - } - - writeFileSync(dtsFile, code, 'utf8'); - - cpSync(dtsFile, `${outputDir}/${lib}`, { recursive: true }); -}); diff --git a/src/Umbraco.Web.UI.Client/vite.cms.config.ts b/src/Umbraco.Web.UI.Client/vite.cms.config.ts index 295082be08..17319bd145 100644 --- a/src/Umbraco.Web.UI.Client/vite.cms.config.ts +++ b/src/Umbraco.Web.UI.Client/vite.cms.config.ts @@ -1,5 +1,4 @@ import { defineConfig } from 'vite'; -import { viteStaticCopy } from 'vite-plugin-static-copy'; import { plugins } from './vite.config'; diff --git a/src/Umbraco.Web.UI.Client/vite.config.ts b/src/Umbraco.Web.UI.Client/vite.config.ts index 48a5aef186..132b97a7c5 100644 --- a/src/Umbraco.Web.UI.Client/vite.config.ts +++ b/src/Umbraco.Web.UI.Client/vite.config.ts @@ -6,13 +6,17 @@ export const plugins: PluginOption[] = [ viteStaticCopy({ targets: [ { - src: 'public-assets/icons/*.js', + src: 'src/shared/icon-registry/icons/*.js', dest: 'icons', }, { src: 'public-assets/App_Plugins/*.js', dest: 'App_Plugins', }, + { + src: 'src/assets/*.svg', + dest: 'umbraco/backoffice/assets', + }, ], }), viteTSConfigPaths(), diff --git a/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs b/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs index 0e5179d779..620a2ea5af 100644 --- a/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs +++ b/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs @@ -32,53 +32,68 @@ export default { imports: { 'src/': './src/', - // LIBS - '@umbraco-cms/backoffice/backend-api': './libs/backend-api/index.ts', - '@umbraco-cms/backoffice/context-api': './libs/context-api/index.ts', - '@umbraco-cms/backoffice/controller-api': './libs/controller-api/index.ts', - '@umbraco-cms/backoffice/element-api': './libs/element-api/index.ts', - '@umbraco-cms/backoffice/extension-api': './libs/extension-api/index.ts', - '@umbraco-cms/backoffice/observable-api': './libs/observable-api/index.ts', + '@umbraco-cms/backoffice/backend-api': './src/external/backend-api/index.ts', + '@umbraco-cms/backoffice/external/uui': './src/external/uui/index.ts', + '@umbraco-cms/backoffice/external/lit': './src/external/lit/index.ts', + '@umbraco-cms/backoffice/external/openid': './src/external/openid/index.ts', + '@umbraco-cms/backoffice/external/rxjs': './src/external/rxjs/index.ts', + '@umbraco-cms/backoffice/external/router-slot': './src/external/router-slot/index.ts', + '@umbraco-cms/backoffice/external/uuid': './src/external/uuid/index.ts', + '@umbraco-cms/backoffice/external/lodash': './src/external/lodash/index.ts', - // PACKAGES - '@umbraco-cms/backoffice/resources': './libs/resources/index.ts', - '@umbraco-cms/backoffice/content-type': './libs/content-type/index.ts', - '@umbraco-cms/backoffice/data-type': './libs/data-type/index.ts', - '@umbraco-cms/backoffice/entity-action': './libs/entity-action/index.ts', - '@umbraco-cms/backoffice/events': './libs/umb-events/index.ts', - '@umbraco-cms/backoffice/extension-registry': './libs/extension-registry/index.ts', - '@umbraco-cms/backoffice/macro': './libs/macro/index.ts', - '@umbraco-cms/backoffice/modal': './libs/modal/index.ts', - '@umbraco-cms/backoffice/models': './libs/models/index.ts', - '@umbraco-cms/backoffice/notification': './libs/notification/index.ts', - '@umbraco-cms/backoffice/property-editor': './libs/property-editor/index.ts', - '@umbraco-cms/backoffice/repository': './libs/repository/index.ts', - '@umbraco-cms/backoffice/resources': './libs/resources/index.ts', - '@umbraco-cms/backoffice/store': './libs/store/index.ts', - '@umbraco-cms/backoffice/utils': './libs/utils/index.ts', - '@umbraco-cms/backoffice/workspace': './libs/workspace/index.ts', - '@umbraco-cms/backoffice/picker-input': './libs/picker-input/index.ts', - '@umbraco-cms/backoffice/id': './libs/id/index.ts', - '@umbraco-cms/backoffice/collection': './libs/collection/index.ts', - '@umbraco-cms/backoffice/tree': './libs/tree/index.ts', - '@umbraco-cms/backoffice/section': './libs/section/index.ts', - '@umbraco-cms/backoffice/variant': './libs/variant/index.ts', + '@umbraco-cms/backoffice/context-api': './src/libs/context-api/index.ts', + '@umbraco-cms/backoffice/controller-api': './src/libs/controller-api/index.ts', + '@umbraco-cms/backoffice/element-api': './src/libs/element-api/index.ts', + '@umbraco-cms/backoffice/extension-api': './src/libs/extension-api/index.ts', + '@umbraco-cms/backoffice/observable-api': './src/libs/observable-api/index.ts', - '@umbraco-cms/backoffice/core/components': './src/packages/core/components/index.ts', - '@umbraco-cms/backoffice/user-group': './src/packages/users/user-groups/index.ts', + '@umbraco-cms/backoffice/events': './src/shared/umb-events/index.ts', + '@umbraco-cms/backoffice/models': './src/shared/models/index.ts', + '@umbraco-cms/backoffice/repository': './src/shared/repository/index.ts', + '@umbraco-cms/backoffice/resources': './src/shared/resources/index.ts', + '@umbraco-cms/backoffice/router': './src/shared/router/index.ts', + '@umbraco-cms/backoffice/utils': './src/shared/utils/index.ts', + '@umbraco-cms/backoffice/icon': './src/shared/icon-registry/index.ts', - // SHARED '@umbraco-cms/internal/lit-element': './src/shared/lit-element/index.ts', '@umbraco-cms/internal/modal': './src/shared/modal/index.ts', - '@umbraco-cms/internal/router': './src/shared/router/index.ts', - '@umbraco-cms/internal/sorter': './src/shared/sorter/index.ts', + + '@umbraco-cms/backoffice/action': './src/packages/core/action/index.ts', + '@umbraco-cms/backoffice/collection': './src/packages/core/collection/index.ts', + '@umbraco-cms/backoffice/components': './src/packages/core/components/index.ts', + '@umbraco-cms/backoffice/content-type': './src/packages/core/content-type/index.ts', + '@umbraco-cms/backoffice/debug': './src/packages/core/debug/index.ts', + '@umbraco-cms/backoffice/entity-action': './src/packages/core/entity-action/index.ts', + '@umbraco-cms/backoffice/entity-bulk-action': './src/packages/core/entity-bulk-action/index.ts', + '@umbraco-cms/backoffice/extension-registry': './src/packages/core/extension-registry/index.ts', + '@umbraco-cms/backoffice/id': './src/packages/core/id/index.ts', + '@umbraco-cms/backoffice/menu': './src/packages/core/menu/index.ts', + '@umbraco-cms/backoffice/modal': './src/packages/core/modal/index.ts', + '@umbraco-cms/backoffice/notification': './src/packages/core/notification/index.ts', + '@umbraco-cms/backoffice/picker-input': './src/packages/core/picker-input/index.ts', + '@umbraco-cms/backoffice/section': './src/packages/core/section/index.ts', + '@umbraco-cms/backoffice/sorter': './src/packages/core/sorter/index.ts', + '@umbraco-cms/backoffice/store': './src/packages/core/store/index.ts', + '@umbraco-cms/backoffice/tree': './src/packages/core/tree/index.ts', + '@umbraco-cms/backoffice/variant': './src/packages/core/variant/index.ts', + '@umbraco-cms/backoffice/workspace': './src/packages/core/workspace/index.ts', + '@umbraco-cms/backoffice/property-editor': './src/packages/core/property-editor/index.ts', + + '@umbraco-cms/backoffice/document': './src/packages/documents/documents/index.ts', + + '@umbraco-cms/backoffice/data-type': './src/packages/settings/data-types/index.ts', + + '@umbraco-cms/backoffice/user-group': './src/packages/users/user-groups/index.ts', + "@umbraco-cms/backoffice/current-user": "./src/packages/users/current-user/index.js", + "@umbraco-cms/backoffice/users": "./src/packages/users/users/index.js", + '@umbraco-cms/internal/test-utils': './utils/test-utils.ts', }, }, }, }), ], - browsers: [playwrightLauncher({ product: 'firefox' }), playwrightLauncher({ product: 'webkit' })], + browsers: [playwrightLauncher({ product: 'chromium' }), playwrightLauncher({ product: 'webkit' })], coverageConfig: { reporters: ['lcovonly', 'text-summary'], }, @@ -87,12 +102,12 @@ export default { <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <link rel="icon" type="image/svg+xml" href="public/favicon.svg" /> + <link rel="icon" type="image/svg+xml" href="src/assets/favicon.svg" /> <title>Umbraco - +