From 7bd431242178eaeedfc005bbdfb861432753b28e Mon Sep 17 00:00:00 2001 From: Cezar Augusto Date: Fri, 22 Nov 2024 11:20:25 -0300 Subject: [PATCH 1/6] Basic support for shadow-dom content_scripts --- programs/cli/types/index.d.ts | 4 ++ .../plugin-css/common-style-loaders.ts | 42 ++++++++++++++++++- 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/programs/cli/types/index.d.ts b/programs/cli/types/index.d.ts index b928f4bd..36e4e429 100644 --- a/programs/cli/types/index.d.ts +++ b/programs/cli/types/index.d.ts @@ -20,3 +20,7 @@ interface ImportMetaEnv { interface ImportMeta { readonly env: ImportMetaEnv } + +interface Window { + __EXTENSION_SHADOW_ROOT__: ShadowRoot +} diff --git a/programs/develop/webpack/plugin-css/common-style-loaders.ts b/programs/develop/webpack/plugin-css/common-style-loaders.ts index 77b4e076..9d3366f7 100644 --- a/programs/develop/webpack/plugin-css/common-style-loaders.ts +++ b/programs/develop/webpack/plugin-css/common-style-loaders.ts @@ -13,6 +13,41 @@ export interface StyleLoaderOptions { loader?: string } +function whereToInsertStyleTag(element: HTMLElement) { + // Function to check if the shadow root exists + const insertElement = () => { + // @ts-expect-error - global reference. + const shadowRoot = window.__EXTENSION_SHADOW_ROOT__ + + if (shadowRoot) { + shadowRoot.appendChild(element) + console.log('Element inserted into shadowRoot') + } else { + document.head.appendChild(element) + console.log('Element inserted into document.head') + } + } + + // If the shadowRoot is already available, insert immediately + // @ts-expect-error - global reference. + if (window.__EXTENSION_SHADOW_ROOT__) { + insertElement() + return + } + + // Use MutationObserver to wait for the shadow root to be available + const observer = new MutationObserver(() => { + // @ts-expect-error - global reference. + if (window.__EXTENSION_SHADOW_ROOT__) { + insertElement() + observer.disconnect() // Stop observing once the shadow root is found + } + }) + + // Observe changes to the `document.body` or `document.head` + observer.observe(document.body, {childList: true, subtree: true}) +} + export async function commonStyleLoaders( projectPath: string, opts: StyleLoaderOptions @@ -23,7 +58,12 @@ export async function commonStyleLoaders( ? miniCssLoader : isUsingVue(projectPath) ? require.resolve('vue-style-loader') - : require.resolve('style-loader'), + : { + loader: require.resolve('style-loader'), + options: { + insert: whereToInsertStyleTag + } + }, { loader: require.resolve('css-loader'), options: { From 6d29077f1a1054775a94d1849472c13024681a03 Mon Sep 17 00:00:00 2001 From: Cezar Augusto Date: Fri, 22 Nov 2024 12:23:39 -0300 Subject: [PATCH 2/6] Only log if EXTENSION_ENV is defined --- .../develop/webpack/plugin-css/common-style-loaders.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/programs/develop/webpack/plugin-css/common-style-loaders.ts b/programs/develop/webpack/plugin-css/common-style-loaders.ts index 9d3366f7..d7f4504a 100644 --- a/programs/develop/webpack/plugin-css/common-style-loaders.ts +++ b/programs/develop/webpack/plugin-css/common-style-loaders.ts @@ -21,10 +21,15 @@ function whereToInsertStyleTag(element: HTMLElement) { if (shadowRoot) { shadowRoot.appendChild(element) - console.log('Element inserted into shadowRoot') + + if (process.env.EXTENSION_ENV === 'development') { + console.log('Element inserted into shadowRoot') + } } else { document.head.appendChild(element) - console.log('Element inserted into document.head') + if (process.env.EXTENSION_ENV === 'development') { + console.log('Element inserted into document.head') + } } } From 39fc8dded8070a795f7a71d8e6cb8e0d5bcc5dba Mon Sep 17 00:00:00 2001 From: Cezar Augusto Date: Fri, 22 Nov 2024 14:51:56 -0300 Subject: [PATCH 3/6] Remove vue-style-loader This package is used by vue-loader by default, so it's redundant to have it in the plugin-css as well --- .../webpack/plugin-css/common-style-loaders.ts | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/programs/develop/webpack/plugin-css/common-style-loaders.ts b/programs/develop/webpack/plugin-css/common-style-loaders.ts index d7f4504a..e972aa96 100644 --- a/programs/develop/webpack/plugin-css/common-style-loaders.ts +++ b/programs/develop/webpack/plugin-css/common-style-loaders.ts @@ -5,7 +5,6 @@ import {isUsingTailwind} from './css-tools/tailwind' import {isUsingSass} from './css-tools/sass' import {isUsingLess} from './css-tools/less' import {maybeUsePostCss} from './css-tools/postcss' -import {isUsingVue} from '../plugin-js-frameworks/js-tools/vue' export interface StyleLoaderOptions { mode: DevOptions['mode'] @@ -61,14 +60,12 @@ export async function commonStyleLoaders( const styleLoaders: RuleSetRule['use'] = [ opts.useMiniCssExtractPlugin ? miniCssLoader - : isUsingVue(projectPath) - ? require.resolve('vue-style-loader') - : { - loader: require.resolve('style-loader'), - options: { - insert: whereToInsertStyleTag - } - }, + : { + loader: require.resolve('style-loader'), + options: { + insert: whereToInsertStyleTag + } + }, { loader: require.resolve('css-loader'), options: { From e2e8601ef40e86d9ef44b2baa8b022fb9d294db2 Mon Sep 17 00:00:00 2001 From: Cezar Augusto Date: Fri, 22 Nov 2024 14:57:35 -0300 Subject: [PATCH 4/6] Update all content-* templates --- .../content-css-modules/content/scripts.js | 50 +++++++++++------ .../content-css-modules/content/styles.css | 3 ++ examples/content-env/content/scripts.ts | 53 +++++++++++------- examples/content-env/content/styles.css | 3 ++ examples/content-esm/content/scripts.mjs | 20 ++++++- examples/content-esm/content/styles.css | 3 ++ .../content/scripts.tsx | 28 ++++++++-- .../content/styles.css | 2 +- .../content-extension-config/manifest.json | 4 +- .../content-less-modules/content/scripts.js | 52 ++++++++++++------ .../content-less-modules/content/styles.less | 3 ++ examples/content-less/content/scripts.js | 52 ++++++++++++------ examples/content-less/content/styles.less | 3 ++ .../content-main-world/content/scripts.js | 54 +++++++++++++------ .../content-main-world/content/styles.css | 3 ++ examples/content-preact/content/scripts.tsx | 17 +++++- examples/content-preact/content/styles.css | 2 +- .../content-react-svgr/content/scripts.tsx | 20 +++++-- .../content-react-svgr/content/styles.css | 2 +- examples/content-react/content/scripts.tsx | 20 +++++-- examples/content-react/content/styles.css | 2 +- examples/content-react/manifest.json | 2 +- .../content-sass-modules/content/scripts.js | 52 ++++++++++++------ .../content-sass-modules/content/styles.scss | 3 ++ examples/content-sass/content/scripts.js | 51 ++++++++++++------ examples/content-sass/content/styles.scss | 3 ++ examples/content-tailwind/content/scripts.js | 24 ++++++++- examples/content-tailwind/content/styles.css | 2 +- .../content-typescript/content/scripts.ts | 53 ++++++++++++------ .../content-typescript/content/styles.css | 3 ++ examples/content-vue/content/scripts.ts | 21 +++++++- examples/content-vue/content/styles.css | 2 +- examples/content/content/scripts.js | 51 ++++++++++++------ examples/content/content/styles.css | 3 ++ programs/cli/types/index.d.ts | 7 ++- programs/develop/webpack/lib/utils.ts | 2 +- .../develop/webpack/plugin-compilation/env.ts | 8 +-- 37 files changed, 499 insertions(+), 184 deletions(-) diff --git a/examples/content-css-modules/content/scripts.js b/examples/content-css-modules/content/scripts.js index de85a174..aa512087 100644 --- a/examples/content-css-modules/content/scripts.js +++ b/examples/content-css-modules/content/scripts.js @@ -4,20 +4,38 @@ import logo from '../images/logo.png' console.log('hello from content_scripts') -document.body.innerHTML += ` -
- -

- Welcome to your CSS Modules Extension -

-

- Learn more about creating cross-browser extensions at - https://extension.js.org - -

-
+setTimeout(initial, 1000) + +function initial() { + const rootDiv = document.createElement('div') + rootDiv.id = 'extension-root' + document.body.appendChild(rootDiv) + + // Injecting content_scripts inside a shadow dom + // prevents conflicts with the host page's styles. + // This way, styles from the extension won't leak into the host page. + const shadowRoot = rootDiv.attachShadow({mode: 'open'}) + + if (process.env.EXTENSION_MODE === 'development') { + // Use the shadow root as the root element to inject styles into. + window.__EXTENSION_SHADOW_ROOT__ = shadowRoot + } + + shadowRoot.innerHTML = ` +
+ +

+ Welcome to your CSS Modules Extension +

+

+ Learn more about creating cross-browser extensions at + https://extension.js.org + +

+
` +} diff --git a/examples/content-css-modules/content/styles.css b/examples/content-css-modules/content/styles.css index 14a840f9..9147e30f 100644 --- a/examples/content-css-modules/content/styles.css +++ b/examples/content-css-modules/content/styles.css @@ -20,14 +20,17 @@ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; font-weight: 700; + margin: 0; } .content_description { font-size: small; + margin: 0; } .content_description a { text-decoration: none; border-bottom: 2px solid #c9c9c9; color: #e5e7eb; + margin: 0; } diff --git a/examples/content-env/content/scripts.ts b/examples/content-env/content/scripts.ts index 7198fab9..5f2c3cd7 100644 --- a/examples/content-env/content/scripts.ts +++ b/examples/content-env/content/scripts.ts @@ -6,22 +6,39 @@ console.log( process.env.EXTENSION_PUBLIC_DESCRIPTION_TEXT ) -// Check if the content has already been added -document.body.innerHTML += ` -
- -

${process.env.EXTENSION_PUBLIC_DESCRIPTION_TEXT}

-

- Welcome to your .env Extension -

-

- Learn more about creating cross-browser extensions at - https://extension.js.org - -

-
+setTimeout(initial, 1000) + +function initial() { + const rootDiv = document.createElement('div') + rootDiv.id = 'extension-root' + document.body.appendChild(rootDiv) + + // Injecting content_scripts inside a shadow dom + // prevents conflicts with the host page's styles. + // This way, styles from the extension won't leak into the host page. + const shadowRoot = rootDiv.attachShadow({mode: 'open'}) + + if (process.env.EXTENSION_MODE === 'development') { + // Use the shadow root as the root element to inject styles into. + window.__EXTENSION_SHADOW_ROOT__ = shadowRoot + } + + shadowRoot.innerHTML = ` +
+ +

${process.env.EXTENSION_PUBLIC_DESCRIPTION_TEXT}

+

+ Welcome to your .env Extension +

+

+ Learn more about creating cross-browser extensions at + https://extension.js.org + +

+
` +} diff --git a/examples/content-env/content/styles.css b/examples/content-env/content/styles.css index 2049a65c..1f69e11c 100644 --- a/examples/content-env/content/styles.css +++ b/examples/content-env/content/styles.css @@ -24,14 +24,17 @@ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; font-weight: 700; + margin: 0; } .content_description { font-size: small; + margin: 0; } .content_description a { text-decoration: none; border-bottom: 2px solid #c9c9c9; color: #e5e7eb; + margin: 0; } diff --git a/examples/content-esm/content/scripts.mjs b/examples/content-esm/content/scripts.mjs index 180375eb..1e63ddf4 100644 --- a/examples/content-esm/content/scripts.mjs +++ b/examples/content-esm/content/scripts.mjs @@ -3,4 +3,22 @@ import './styles.css' console.log('hello from content_scripts') -document.body.innerHTML += contentComponent +setTimeout(initial, 1000) + +function initial() { + const rootDiv = document.createElement('div') + rootDiv.id = 'extension-root' + document.body.appendChild(rootDiv) + + // Injecting content_scripts inside a shadow dom + // prevents conflicts with the host page's styles. + // This way, styles from the extension won't leak into the host page. + const shadowRoot = rootDiv.attachShadow({mode: 'open'}) + + if (process.env.EXTENSION_MODE === 'development') { + // Use the shadow root as the root element to inject styles into. + window.__EXTENSION_SHADOW_ROOT__ = shadowRoot + } + + shadowRoot.innerHTML = contentComponent +} diff --git a/examples/content-esm/content/styles.css b/examples/content-esm/content/styles.css index 2049a65c..1f69e11c 100644 --- a/examples/content-esm/content/styles.css +++ b/examples/content-esm/content/styles.css @@ -24,14 +24,17 @@ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; font-weight: 700; + margin: 0; } .content_description { font-size: small; + margin: 0; } .content_description a { text-decoration: none; border-bottom: 2px solid #c9c9c9; color: #e5e7eb; + margin: 0; } diff --git a/examples/content-extension-config/content/scripts.tsx b/examples/content-extension-config/content/scripts.tsx index 89050dc3..f8766048 100644 --- a/examples/content-extension-config/content/scripts.tsx +++ b/examples/content-extension-config/content/scripts.tsx @@ -10,8 +10,28 @@ function initial() { rootDiv.id = 'extension-root' document.body.appendChild(rootDiv) - // Use `createRoot` to create a root, then render the component - // Note that `createRoot` takes the container DOM node, not the React element - const root = ReactDOM.createRoot(rootDiv) - root.render() + // Injecting content_scripts inside a shadow dom + // prevents conflicts with the host page's styles. + // This way, styles from the extension won't leak into the host page. + const shadowRoot = rootDiv.attachShadow({mode: 'open'}) + + if (process.env.EXTENSION_MODE === 'development') { + // Use the shadow root as the root element to inject styles into. + window.__EXTENSION_SHADOW_ROOT__ = shadowRoot + } + + const shadowStyle = document.createElement('style') + shadowStyle.textContent = ` + :host { + all: initial; /* Reset all styles */ + } + ` + shadowRoot.appendChild(shadowStyle) + + const root = ReactDOM.createRoot(shadowRoot) + root.render( +
+ +
+ ) } diff --git a/examples/content-extension-config/content/styles.css b/examples/content-extension-config/content/styles.css index dc79ebb5..c0fc3552 100644 --- a/examples/content-extension-config/content/styles.css +++ b/examples/content-extension-config/content/styles.css @@ -2,7 +2,7 @@ @tailwind components; @tailwind utilities; -#extension-root { +.content_script { position: fixed; bottom: 0; right: 0; diff --git a/examples/content-extension-config/manifest.json b/examples/content-extension-config/manifest.json index 5086eab4..6c0b80cc 100644 --- a/examples/content-extension-config/manifest.json +++ b/examples/content-extension-config/manifest.json @@ -10,7 +10,9 @@ }, "content_scripts": [ { - "matches": ["https://extension.js.org/*"], + "matches": [ + "" + ], "js": ["./content/scripts.tsx"] } ], diff --git a/examples/content-less-modules/content/scripts.js b/examples/content-less-modules/content/scripts.js index 5f264c50..76f5a6e6 100644 --- a/examples/content-less-modules/content/scripts.js +++ b/examples/content-less-modules/content/scripts.js @@ -4,20 +4,38 @@ import logo from '../images/logo.svg' console.log('hello from content_scripts') -document.body.innerHTML += ` -
- -

- Welcome to your LESS Modules Extension -

-

- Learn more about creating cross-browser extensions at - https://extension.js.org - -

-
-` +setTimeout(initial, 1000) + +function initial() { + const rootDiv = document.createElement('div') + rootDiv.id = 'extension-root' + document.body.appendChild(rootDiv) + + // Injecting content_scripts inside a shadow dom + // prevents conflicts with the host page's styles. + // This way, styles from the extension won't leak into the host page. + const shadowRoot = rootDiv.attachShadow({mode: 'open'}) + + if (process.env.EXTENSION_MODE === 'development') { + // Use the shadow root as the root element to inject styles into. + window.__EXTENSION_SHADOW_ROOT__ = shadowRoot + } + + shadowRoot.innerHTML = ` +
+ +

+ Welcome to your LESS Modules Extension +

+

+ Learn more about creating cross-browser extensions at + https://extension.js.org + +

+
+ ` +} diff --git a/examples/content-less-modules/content/styles.less b/examples/content-less-modules/content/styles.less index d1548afe..35586168 100644 --- a/examples/content-less-modules/content/styles.less +++ b/examples/content-less-modules/content/styles.less @@ -24,14 +24,17 @@ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; font-weight: 700; + margin: 0; } .content_description { font-size: small; + margin: 0; } .content_description a { text-decoration: none; border-bottom: 2px solid #c9c9c9; color: #e5e7eb; + margin: 0; } \ No newline at end of file diff --git a/examples/content-less/content/scripts.js b/examples/content-less/content/scripts.js index 5adca586..90782059 100644 --- a/examples/content-less/content/scripts.js +++ b/examples/content-less/content/scripts.js @@ -3,20 +3,38 @@ import logo from '../images/logo.svg' console.log('hello from content_scripts') -document.body.innerHTML += ` -
- -

- Welcome to your LESS Extension -

-

- Learn more about creating cross-browser extensions at - https://extension.js.org - -

-
-` +setTimeout(initial, 1000) + +function initial() { + const rootDiv = document.createElement('div') + rootDiv.id = 'extension-root' + document.body.appendChild(rootDiv) + + // Injecting content_scripts inside a shadow dom + // prevents conflicts with the host page's styles. + // This way, styles from the extension won't leak into the host page. + const shadowRoot = rootDiv.attachShadow({mode: 'open'}) + + if (process.env.EXTENSION_MODE === 'development') { + // Use the shadow root as the root element to inject styles into. + window.__EXTENSION_SHADOW_ROOT__ = shadowRoot + } + + shadowRoot.innerHTML = ` +
+ +

+ Welcome to your LESS Extension +

+

+ Learn more about creating cross-browser extensions at + https://extension.js.org + +

+
+ ` +} diff --git a/examples/content-less/content/styles.less b/examples/content-less/content/styles.less index d1548afe..35586168 100644 --- a/examples/content-less/content/styles.less +++ b/examples/content-less/content/styles.less @@ -24,14 +24,17 @@ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; font-weight: 700; + margin: 0; } .content_description { font-size: small; + margin: 0; } .content_description a { text-decoration: none; border-bottom: 2px solid #c9c9c9; color: #e5e7eb; + margin: 0; } \ No newline at end of file diff --git a/examples/content-main-world/content/scripts.js b/examples/content-main-world/content/scripts.js index da28aa76..9c30800a 100644 --- a/examples/content-main-world/content/scripts.js +++ b/examples/content-main-world/content/scripts.js @@ -1,20 +1,40 @@ import './styles.css' import logo from '../images/extension.svg' -document.body.innerHTML += ` -
- -

- Main World -

-

- Learn more about creating cross-browser extensions at - https://extension.js.org - -

-
-` +console.log('hello from content_scripts') + +setTimeout(initial, 1000) + +function initial() { + const rootDiv = document.createElement('div') + rootDiv.id = 'extension-root' + document.body.appendChild(rootDiv) + + // Injecting content_scripts inside a shadow dom + // prevents conflicts with the host page's styles. + // This way, styles from the extension won't leak into the host page. + const shadowRoot = rootDiv.attachShadow({mode: 'open'}) + + if (process.env.EXTENSION_MODE === 'development') { + // Use the shadow root as the root element to inject styles into. + window.__EXTENSION_SHADOW_ROOT__ = shadowRoot + } + + shadowRoot.innerHTML = ` +
+ +

+ Main World +

+

+ Learn more about creating cross-browser extensions at + https://extension.js.org + +

+
+ ` +} diff --git a/examples/content-main-world/content/styles.css b/examples/content-main-world/content/styles.css index 2049a65c..1f69e11c 100644 --- a/examples/content-main-world/content/styles.css +++ b/examples/content-main-world/content/styles.css @@ -24,14 +24,17 @@ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; font-weight: 700; + margin: 0; } .content_description { font-size: small; + margin: 0; } .content_description a { text-decoration: none; border-bottom: 2px solid #c9c9c9; color: #e5e7eb; + margin: 0; } diff --git a/examples/content-preact/content/scripts.tsx b/examples/content-preact/content/scripts.tsx index bed0b743..5050eb75 100644 --- a/examples/content-preact/content/scripts.tsx +++ b/examples/content-preact/content/scripts.tsx @@ -10,5 +10,20 @@ function initial() { rootDiv.id = 'extension-root' document.body.appendChild(rootDiv) - render(, rootDiv) + // Injecting content_scripts inside a shadow dom + // prevents conflicts with the host page's styles. + // This way, styles from the extension won't leak into the host page. + const shadowRoot = rootDiv.attachShadow({mode: 'open'}) + + if (process.env.EXTENSION_MODE === 'development') { + // Use the shadow root as the root element to inject styles into. + window.__EXTENSION_SHADOW_ROOT__ = shadowRoot + } + + render( +
+ +
, + shadowRoot + ) } diff --git a/examples/content-preact/content/styles.css b/examples/content-preact/content/styles.css index dc79ebb5..c0fc3552 100644 --- a/examples/content-preact/content/styles.css +++ b/examples/content-preact/content/styles.css @@ -2,7 +2,7 @@ @tailwind components; @tailwind utilities; -#extension-root { +.content_script { position: fixed; bottom: 0; right: 0; diff --git a/examples/content-react-svgr/content/scripts.tsx b/examples/content-react-svgr/content/scripts.tsx index 89050dc3..928a576c 100644 --- a/examples/content-react-svgr/content/scripts.tsx +++ b/examples/content-react-svgr/content/scripts.tsx @@ -10,8 +10,20 @@ function initial() { rootDiv.id = 'extension-root' document.body.appendChild(rootDiv) - // Use `createRoot` to create a root, then render the component - // Note that `createRoot` takes the container DOM node, not the React element - const root = ReactDOM.createRoot(rootDiv) - root.render() + // Injecting content_scripts inside a shadow dom + // prevents conflicts with the host page's styles. + // This way, styles from the extension won't leak into the host page. + const shadowRoot = rootDiv.attachShadow({mode: 'open'}) + + if (process.env.EXTENSION_MODE === 'development') { + // Use the shadow root as the root element to inject styles into. + window.__EXTENSION_SHADOW_ROOT__ = shadowRoot + } + + const root = ReactDOM.createRoot(shadowRoot) + root.render( +
+ +
+ ) } diff --git a/examples/content-react-svgr/content/styles.css b/examples/content-react-svgr/content/styles.css index dc79ebb5..c0fc3552 100644 --- a/examples/content-react-svgr/content/styles.css +++ b/examples/content-react-svgr/content/styles.css @@ -2,7 +2,7 @@ @tailwind components; @tailwind utilities; -#extension-root { +.content_script { position: fixed; bottom: 0; right: 0; diff --git a/examples/content-react/content/scripts.tsx b/examples/content-react/content/scripts.tsx index 89050dc3..aa0e8488 100644 --- a/examples/content-react/content/scripts.tsx +++ b/examples/content-react/content/scripts.tsx @@ -1,6 +1,6 @@ import ReactDOM from 'react-dom/client' import ContentApp from './ContentApp' -import './styles.css' +import './styles.css?inline_style' setTimeout(initial, 1000) @@ -10,8 +10,18 @@ function initial() { rootDiv.id = 'extension-root' document.body.appendChild(rootDiv) - // Use `createRoot` to create a root, then render the component - // Note that `createRoot` takes the container DOM node, not the React element - const root = ReactDOM.createRoot(rootDiv) - root.render() + // Injecting content_scripts inside a shadow dom + // prevents conflicts with the host page's styles. + // This way, styles from the extension won't leak into the host page. + const shadowRoot = rootDiv.attachShadow({mode: 'open'}) + + // Use the shadow root as the root element to inject styles into. + window.__EXTENSION_SHADOW_ROOT__ = shadowRoot + + const root = ReactDOM.createRoot(shadowRoot) + root.render( +
+ +
+ ) } diff --git a/examples/content-react/content/styles.css b/examples/content-react/content/styles.css index dc79ebb5..c0fc3552 100644 --- a/examples/content-react/content/styles.css +++ b/examples/content-react/content/styles.css @@ -2,7 +2,7 @@ @tailwind components; @tailwind utilities; -#extension-root { +.content_script { position: fixed; bottom: 0; right: 0; diff --git a/examples/content-react/manifest.json b/examples/content-react/manifest.json index e4b42e7f..56446dbb 100644 --- a/examples/content-react/manifest.json +++ b/examples/content-react/manifest.json @@ -13,7 +13,7 @@ }, "content_scripts": [ { - "matches": ["https://extension.js.org/*"], + "matches": [""], "js": ["./content/scripts.tsx"] } ] diff --git a/examples/content-sass-modules/content/scripts.js b/examples/content-sass-modules/content/scripts.js index 1c9f6a5c..0cbaf412 100644 --- a/examples/content-sass-modules/content/scripts.js +++ b/examples/content-sass-modules/content/scripts.js @@ -4,20 +4,38 @@ import logo from '../images/logo.svg' console.log('hello from content_scripts') -document.body.innerHTML += ` -
- -

- Welcome to your Sass Modules Extension -

-

- Learn more about creating cross-browser extensions at - https://extension.js.org - -

-
-` +setTimeout(initial, 1000) + +function initial() { + const rootDiv = document.createElement('div') + rootDiv.id = 'extension-root' + document.body.appendChild(rootDiv) + + // Injecting content_scripts inside a shadow dom + // prevents conflicts with the host page's styles. + // This way, styles from the extension won't leak into the host page. + const shadowRoot = rootDiv.attachShadow({mode: 'open'}) + + if (process.env.EXTENSION_MODE === 'development') { + // Use the shadow root as the root element to inject styles into. + window.__EXTENSION_SHADOW_ROOT__ = shadowRoot + } + + shadowRoot.innerHTML = ` +
+ +

+ Welcome to your Sass Modules Extension +

+

+ Learn more about creating cross-browser extensions at + https://extension.js.org + +

+
+ ` +} diff --git a/examples/content-sass-modules/content/styles.scss b/examples/content-sass-modules/content/styles.scss index d1548afe..35586168 100644 --- a/examples/content-sass-modules/content/styles.scss +++ b/examples/content-sass-modules/content/styles.scss @@ -24,14 +24,17 @@ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; font-weight: 700; + margin: 0; } .content_description { font-size: small; + margin: 0; } .content_description a { text-decoration: none; border-bottom: 2px solid #c9c9c9; color: #e5e7eb; + margin: 0; } \ No newline at end of file diff --git a/examples/content-sass/content/scripts.js b/examples/content-sass/content/scripts.js index 6c6f8a75..0855f9f0 100644 --- a/examples/content-sass/content/scripts.js +++ b/examples/content-sass/content/scripts.js @@ -3,21 +3,38 @@ import logo from '../images/logo.svg' console.log('hello from content_scripts') -// Check if the content has already been added -document.body.innerHTML += ` -
- -

- Welcome to your Sass Extension -

-

- Learn more about creating cross-browser extensions at - https://extension.js.org - -

-
+setTimeout(initial, 1000) + +function initial() { + const rootDiv = document.createElement('div') + rootDiv.id = 'extension-root' + document.body.appendChild(rootDiv) + + // Injecting content_scripts inside a shadow dom + // prevents conflicts with the host page's styles. + // This way, styles from the extension won't leak into the host page. + const shadowRoot = rootDiv.attachShadow({mode: 'open'}) + + if (process.env.EXTENSION_MODE === 'development') { + // Use the shadow root as the root element to inject styles into. + window.__EXTENSION_SHADOW_ROOT__ = shadowRoot + } + + shadowRoot.innerHTML = ` +
+ +

+ Welcome to your Sass Extension +

+

+ Learn more about creating cross-browser extensions at + https://extension.js.org + +

+
` +} diff --git a/examples/content-sass/content/styles.scss b/examples/content-sass/content/styles.scss index d1548afe..35586168 100644 --- a/examples/content-sass/content/styles.scss +++ b/examples/content-sass/content/styles.scss @@ -24,14 +24,17 @@ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; font-weight: 700; + margin: 0; } .content_description { font-size: small; + margin: 0; } .content_description a { text-decoration: none; border-bottom: 2px solid #c9c9c9; color: #e5e7eb; + margin: 0; } \ No newline at end of file diff --git a/examples/content-tailwind/content/scripts.js b/examples/content-tailwind/content/scripts.js index f833746f..d518e47e 100644 --- a/examples/content-tailwind/content/scripts.js +++ b/examples/content-tailwind/content/scripts.js @@ -3,4 +3,26 @@ import {getContentHtml} from './content' console.log('hello from content_scripts') -document.body.innerHTML += `
${getContentHtml()}
` +setTimeout(initial, 1000) + +function initial() { + const rootDiv = document.createElement('div') + rootDiv.id = 'extension-root' + document.body.appendChild(rootDiv) + + // Injecting content_scripts inside a shadow dom + // prevents conflicts with the host page's styles. + // This way, styles from the extension won't leak into the host page. + const shadowRoot = rootDiv.attachShadow({mode: 'open'}) + + if (process.env.EXTENSION_MODE === 'development') { + // Use the shadow root as the root element to inject styles into. + window.__EXTENSION_SHADOW_ROOT__ = shadowRoot + } + + shadowRoot.innerHTML = ` +
+ ${getContentHtml()} +
+ ` +} diff --git a/examples/content-tailwind/content/styles.css b/examples/content-tailwind/content/styles.css index dc79ebb5..c0fc3552 100644 --- a/examples/content-tailwind/content/styles.css +++ b/examples/content-tailwind/content/styles.css @@ -2,7 +2,7 @@ @tailwind components; @tailwind utilities; -#extension-root { +.content_script { position: fixed; bottom: 0; right: 0; diff --git a/examples/content-typescript/content/scripts.ts b/examples/content-typescript/content/scripts.ts index 139825c3..ba8d6a9b 100644 --- a/examples/content-typescript/content/scripts.ts +++ b/examples/content-typescript/content/scripts.ts @@ -3,20 +3,39 @@ import logo from '../images/logo.svg' console.log('hello from content_scripts') -document.body.innerHTML += ` -
- -

- Welcome to your TypeScript Extension -

-

- Learn more about creating cross-browser extensions at - https://extension.js.org - -

-
-` +setTimeout(initial, 1000) + +function initial() { + const rootDiv = document.createElement('div') + rootDiv.id = 'extension-root' + + // Injecting content_scripts inside a shadow dom + // prevents conflicts with the host page's styles. + // This way, styles from the extension won't leak into the host page. + const shadowRoot = rootDiv.attachShadow({mode: 'open'}) + + // Tell Extension.js to use the shadow root as the root element + // to inject styles into. + // @ts-exspect-error - Ignore TS error for global variable + window.__EXTENSION_SHADOW_ROOT__ = shadowRoot + + document.body.appendChild(rootDiv) + + shadowRoot.innerHTML = ` +
+ +

+ Welcome to your TypeScript Extension +

+

+ Learn more about creating cross-browser extensions at + https://extension.js.org + +

+
+ ` +} diff --git a/examples/content-typescript/content/styles.css b/examples/content-typescript/content/styles.css index 2049a65c..1f69e11c 100644 --- a/examples/content-typescript/content/styles.css +++ b/examples/content-typescript/content/styles.css @@ -24,14 +24,17 @@ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; font-weight: 700; + margin: 0; } .content_description { font-size: small; + margin: 0; } .content_description a { text-decoration: none; border-bottom: 2px solid #c9c9c9; color: #e5e7eb; + margin: 0; } diff --git a/examples/content-vue/content/scripts.ts b/examples/content-vue/content/scripts.ts index bbee32a8..c0410037 100644 --- a/examples/content-vue/content/scripts.ts +++ b/examples/content-vue/content/scripts.ts @@ -3,11 +3,30 @@ import ContentApp from './ContentApp.vue' import './styles.css' function initial() { + // Create a new div element and append it to the document's body const rootDiv = document.createElement('div') rootDiv.id = 'extension-root' document.body.appendChild(rootDiv) - createApp(ContentApp).mount(rootDiv) + // Inject content_scripts inside a shadow DOM + // to prevent conflicts with the host page's styles. + const shadowRoot = rootDiv.attachShadow({mode: 'open'}) + + if (process.env.EXTENSION_MODE === 'development') { + // @ts-expect-error - Tell Extension.js to use the shadow root + // as the root element for injecting styles. + window.__EXTENSION_SHADOW_ROOT__ = shadowRoot + } + + // Create a container inside the shadow DOM for the Vue app + const shadowAppContainer = document.createElement('div') + shadowAppContainer.className = 'content_script' + shadowRoot.appendChild(shadowAppContainer) + + // Mount the Vue app to the container inside the shadow DOM + const app = createApp(ContentApp) + app.mount(shadowAppContainer) } +// Initialize the app setTimeout(initial, 1000) diff --git a/examples/content-vue/content/styles.css b/examples/content-vue/content/styles.css index dc79ebb5..c0fc3552 100644 --- a/examples/content-vue/content/styles.css +++ b/examples/content-vue/content/styles.css @@ -2,7 +2,7 @@ @tailwind components; @tailwind utilities; -#extension-root { +.content_script { position: fixed; bottom: 0; right: 0; diff --git a/examples/content/content/scripts.js b/examples/content/content/scripts.js index d010d8ab..6995d0b8 100644 --- a/examples/content/content/scripts.js +++ b/examples/content/content/scripts.js @@ -3,21 +3,38 @@ import logo from '../images/logo.svg' console.log('hello from content_scripts') -// Check if the content has already been added -document.body.innerHTML += ` -
- -

- Welcome to your Content Script Extension -

-

- Learn more about creating cross-browser extensions at - https://extension.js.org - -

-
+setTimeout(initial, 1000) + +function initial() { + const rootDiv = document.createElement('div') + rootDiv.id = 'extension-root' + document.body.appendChild(rootDiv) + + // Injecting content_scripts inside a shadow dom + // prevents conflicts with the host page's styles. + // This way, styles from the extension won't leak into the host page. + const shadowRoot = rootDiv.attachShadow({mode: 'open'}) + + if (process.env.EXTENSION_MODE === 'development') { + // Use the shadow root as the root element to inject styles into. + window.__EXTENSION_SHADOW_ROOT__ = shadowRoot + } + + shadowRoot.innerHTML = ` +
+ +

+ Welcome to your Content Script Extension +

+

+ Learn more about creating cross-browser extensions at + https://extension.js.org + +

+
` +} diff --git a/examples/content/content/styles.css b/examples/content/content/styles.css index 2049a65c..1f69e11c 100644 --- a/examples/content/content/styles.css +++ b/examples/content/content/styles.css @@ -24,14 +24,17 @@ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; font-weight: 700; + margin: 0; } .content_description { font-size: small; + margin: 0; } .content_description a { text-decoration: none; border-bottom: 2px solid #c9c9c9; color: #e5e7eb; + margin: 0; } diff --git a/programs/cli/types/index.d.ts b/programs/cli/types/index.d.ts index 36e4e429..7cb12422 100644 --- a/programs/cli/types/index.d.ts +++ b/programs/cli/types/index.d.ts @@ -7,7 +7,12 @@ declare namespace NodeJS { interface ProcessEnv { - readonly EXTENSION_BROWSER: 'chrome' | 'edge' | 'firefox' | 'chromium-based' | 'gecko-based' + readonly EXTENSION_BROWSER: + | 'chrome' + | 'edge' + | 'firefox' + | 'chromium-based' + | 'gecko-based' readonly EXTENSION_MODE: 'development' | 'production' } } diff --git a/programs/develop/webpack/lib/utils.ts b/programs/develop/webpack/lib/utils.ts index 832252ca..5be6d75d 100644 --- a/programs/develop/webpack/lib/utils.ts +++ b/programs/develop/webpack/lib/utils.ts @@ -276,7 +276,7 @@ export function filterKeysForThisBrowser( prefix === browser || (prefix === 'chromium' && CHROMIUM_BASED_BROWSERS.includes(browser)) || (prefix === 'chromium' && browser.includes('chromium')) || - (prefix === 'gecko' && browser.includes('gecko')) + (prefix === 'gecko' && browser.includes('gecko')) ) { this[key.substring(indexOfColon + 1)] = value } diff --git a/programs/develop/webpack/plugin-compilation/env.ts b/programs/develop/webpack/plugin-compilation/env.ts index 2e21d62e..bc29fd26 100644 --- a/programs/develop/webpack/plugin-compilation/env.ts +++ b/programs/develop/webpack/plugin-compilation/env.ts @@ -81,11 +81,11 @@ export class EnvPlugin { filteredEnvVars['process.env.EXTENSION_BROWSER'] = JSON.stringify( this.browser ) - filteredEnvVars['import.meta.env.EXTENSION_BROWSER'] = - JSON.stringify(this.browser) + filteredEnvVars['import.meta.env.EXTENSION_BROWSER'] = JSON.stringify( + this.browser + ) filteredEnvVars['process.env.EXTENSION_MODE'] = JSON.stringify(mode) - filteredEnvVars['import.meta.env.EXTENSION_MODE'] = - JSON.stringify(mode) + filteredEnvVars['import.meta.env.EXTENSION_MODE'] = JSON.stringify(mode) // Apply DefinePlugin to expose filtered variables new DefinePlugin(filteredEnvVars).apply(compiler) From 332b9f2c02e18145f9ed3458b048cdcd177bde73 Mon Sep 17 00:00:00 2001 From: Cezar Augusto Date: Mon, 25 Nov 2024 21:31:28 -0300 Subject: [PATCH 5/6] Support "inline_style" flag for styles This tells webpack to inline styles even when running in production mode --- .gitignore | 3 +- pnpm-lock.yaml | 2928 ++++++++++++++++- .../plugin-css/common-style-loaders.ts | 5 + .../webpack/plugin-css/css-tools/less.ts | 2 +- .../webpack/plugin-css/css-tools/sass.ts | 4 +- programs/develop/webpack/plugin-css/index.ts | 14 + 6 files changed, 2808 insertions(+), 148 deletions(-) diff --git a/.gitignore b/.gitignore index 54d1a008..5fa1d822 100644 --- a/.gitignore +++ b/.gitignore @@ -65,4 +65,5 @@ __TEST__ /playwright-report/ /blob-report/ /playwright/.cache/ -/e2e-report/ \ No newline at end of file +/e2e-report/ +_examples diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2cbd86c5..f70e1beb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -64,6 +64,133 @@ importers: specifier: ^2.0.4 version: 2.1.3 + _examples/maro-extension: + dependencies: + '@aws-amplify/auth': + specifier: ^6.6.2 + version: 6.7.0(@aws-amplify/core@6.6.0) + '@radix-ui/react-avatar': + specifier: ^1.1.1 + version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collapsible': + specifier: ^1.1.1 + version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dialog': + specifier: ^1.1.2 + version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dropdown-menu': + specifier: ^2.1.2 + version: 2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-icons': + specifier: ^1.3.0 + version: 1.3.2(react@18.3.1) + '@radix-ui/react-label': + specifier: ^2.1.0 + version: 2.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-popover': + specifier: ^1.1.2 + version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-select': + specifier: ^2.1.2 + version: 2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-separator': + specifier: ^1.1.0 + version: 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': + specifier: ^1.1.0 + version: 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-switch': + specifier: ^1.1.1 + version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-tabs': + specifier: ^1.1.1 + version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toast': + specifier: ^1.2.2 + version: 1.2.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-tooltip': + specifier: ^1.1.3 + version: 1.1.4(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tailwindcss/typography': + specifier: ^0.5.15 + version: 0.5.15(tailwindcss@3.4.13(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@22.7.4)(typescript@5.3.3))) + '@tanstack/react-query': + specifier: ^5.59.15 + version: 5.61.3(react@18.3.1) + '@tanstack/react-query-devtools': + specifier: ^5.59.15 + version: 5.61.3(@tanstack/react-query@5.61.3(react@18.3.1))(react@18.3.1) + '@tanstack/react-table': + specifier: ^8.20.5 + version: 8.20.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + aws-amplify: + specifier: ^6.8.0 + version: 6.9.0 + class-variance-authority: + specifier: ^0.7.0 + version: 0.7.0 + clsx: + specifier: ^2.1.1 + version: 2.1.1 + cmdk: + specifier: ^1.0.4 + version: 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + input-otp: + specifier: ^1.4.1 + version: 1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + lucide-react: + specifier: ^0.454.0 + version: 0.454.0(react@18.3.1) + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) + react-hook-form: + specifier: ^7.53.2 + version: 7.53.2(react@18.3.1) + react-router-dom: + specifier: ^6.28.0 + version: 6.28.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-shadow: + specifier: ^20.5.0 + version: 20.5.0(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + tailwind-merge: + specifier: ^2.5.3 + version: 2.5.3 + tailwindcss-animate: + specifier: ^1.0.7 + version: 1.0.7(tailwindcss@3.4.13(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@22.7.4)(typescript@5.3.3))) + vaul: + specifier: ^1.1.1 + version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + devDependencies: + '@tanstack/eslint-plugin-query': + specifier: ^5.59.7 + version: 5.61.3(eslint@9.11.1(jiti@1.21.6))(typescript@5.3.3) + '@types/react': + specifier: ^18.2.64 + version: 18.3.11 + '@types/react-dom': + specifier: ^18.2.21 + version: 18.3.0 + autoprefixer: + specifier: ^10.4.20 + version: 10.4.20(postcss@8.4.47) + extension: + specifier: latest + version: 2.0.0-beta.3(@babel/core@7.25.7)(@prefresh/babel-plugin@0.5.1)(@types/webpack@4.41.39)(browserslist@4.24.0)(less@4.2.0)(preact@10.24.2)(sass@1.79.4)(svelte@4.2.19)(type-fest@4.26.1)(typescript@5.3.3) + postcss: + specifier: ^8.4.47 + version: 8.4.47 + tailwindcss: + specifier: ^3.4.13 + version: 3.4.13(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@22.7.4)(typescript@5.3.3)) + typescript: + specifier: 5.3.3 + version: 5.3.3 + examples/action: {} examples/action-chatgpt: @@ -912,6 +1039,188 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + '@aws-amplify/analytics@7.0.59': + resolution: {integrity: sha512-uXWPDGS4CDCmi1LdctRxo/XiTE8+SzGL3xGWKeMv25rF2/w6W9ZzM28v06HWbquMPVSA58SK/Gbmay4rn02y2Q==} + peerDependencies: + '@aws-amplify/core': ^6.1.0 + + '@aws-amplify/api-graphql@4.6.2': + resolution: {integrity: sha512-PxGB4DdaNAv3dKOtDOHdDUziGQSyuYGUgb5C6KmPpeGUiUG/iDlRlofsDOfjzhwfWiDBgA1tpb9N6owOrkm1yA==} + + '@aws-amplify/api-rest@4.0.59': + resolution: {integrity: sha512-AoF25skwhoXcj0NQ8k5Ovz8BIWgPc72NvsvOLxXNtAHidzUxUvo4UW/Rlib/xAhZabxOxFuKEGGfdLkTJnOSlg==} + peerDependencies: + '@aws-amplify/core': ^6.1.0 + + '@aws-amplify/api@6.1.4': + resolution: {integrity: sha512-E3B7VnDH5ono/qdFtAUUiva5UGL7ZDheOaa5w1+7jTMYChnr6d/M/DoOFRj7Zue+HxoF1N5GiK85mU2aH5oqAQ==} + + '@aws-amplify/auth@6.7.0': + resolution: {integrity: sha512-WBN5mJTxuxv0RYynQhQUmHVYOhBES3k0yMN4KwCT/mtDaDr+tjAC1oIuvVIxtVUs5Ud1mybU3VzqPDO9GmB1ww==} + peerDependencies: + '@aws-amplify/core': ^6.1.0 + + '@aws-amplify/core@6.6.0': + resolution: {integrity: sha512-J/1P1c2Qog5xwJQjQl0sk80qMZKZReUqNXeLtxPtSTJ9quPW4cD41DkNl4cgQk2inmLnU/v56GEF6tUfwulZoQ==} + + '@aws-amplify/data-schema-types@1.2.0': + resolution: {integrity: sha512-1hy2r7jl3hQ5J/CGjhmPhFPcdGSakfme1ZLjlTMJZILfYifZLSlGRKNCelMb3J5N9203hyeT5XDi5yR47JL1TQ==} + + '@aws-amplify/data-schema@1.16.1': + resolution: {integrity: sha512-ThEiEoDbGfU03a2wVpdW4VORLrUkrlWMb9Xc6kI6I296+Gk0DHKNmQUFov4nlqxUIBe3lntJUcZSCMWJZTq4ZQ==} + + '@aws-amplify/datastore@5.0.61': + resolution: {integrity: sha512-NDqAz/rFQfV7ClIoNtq1IVUU/bYd+I23raGW/LmMYYnmdIRgdaKbtZX0j3IFZ53J/JLtisBsDLGCjt4KXNqqqA==} + peerDependencies: + '@aws-amplify/core': ^6.1.0 + + '@aws-amplify/notifications@2.0.59': + resolution: {integrity: sha512-ilFYsafeI77fOxGwByCAta2xqNCvI77ruEz7aGGH57T2U2DvXUGReqMOJXoDum9TV3dwJR1ImKuBLnrArgRh3Q==} + peerDependencies: + '@aws-amplify/core': ^6.1.0 + + '@aws-amplify/storage@6.7.0': + resolution: {integrity: sha512-twEQclYWOqbv2JrTy8jphfPoLk/N4QVjkJpnsUpyhu+oTtCw9qwqU8G4I9Fxv8U347r17azi4K9SjXn0Qzt6Gg==} + peerDependencies: + '@aws-amplify/core': ^6.1.0 + + '@aws-crypto/crc32@5.2.0': + resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} + engines: {node: '>=16.0.0'} + + '@aws-crypto/sha256-browser@5.2.0': + resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} + + '@aws-crypto/sha256-js@5.2.0': + resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==} + engines: {node: '>=16.0.0'} + + '@aws-crypto/supports-web-crypto@5.2.0': + resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==} + + '@aws-crypto/util@5.2.0': + resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} + + '@aws-sdk/client-firehose@3.621.0': + resolution: {integrity: sha512-XAjAkXdb35PDvBYph609Fxn4g00HYH/U6N4+KjF9gLQrdTU+wkjf3D9YD02DZNbApJVcu4eIxWh/8M25YkW02A==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/client-kinesis@3.621.0': + resolution: {integrity: sha512-53Omt/beFmTQPjQNpMuPMk5nMzYVsXCRiO+MeqygZEKYG1fWw/UGluCWVbi7WjClOHacsW8lQcsqIRvkPDFNag==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/client-personalize-events@3.621.0': + resolution: {integrity: sha512-qkVkqYvOe3WVuVNL/gRITGYFfHJCx2ijGFK7H3hNUJH3P4AwskmouAd1pWf+3cbGedRnj2is7iw7E602LeJIHA==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/client-sso-oidc@3.621.0': + resolution: {integrity: sha512-mMjk3mFUwV2Y68POf1BQMTF+F6qxt5tPu6daEUCNGC9Cenk3h2YXQQoS4/eSyYzuBiYk3vx49VgleRvdvkg8rg==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@aws-sdk/client-sts': ^3.621.0 + + '@aws-sdk/client-sso@3.621.0': + resolution: {integrity: sha512-xpKfikN4u0BaUYZA9FGUMkkDmfoIP0Q03+A86WjqDWhcOoqNA1DkHsE4kZ+r064ifkPUfcNuUvlkVTEoBZoFjA==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/client-sts@3.621.0': + resolution: {integrity: sha512-707uiuReSt+nAx6d0c21xLjLm2lxeKc7padxjv92CIrIocnQSlJPxSCM7r5zBhwiahJA6MNQwmTl2xznU67KgA==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/core@3.621.0': + resolution: {integrity: sha512-CtOwWmDdEiINkGXD93iGfXjN0WmCp9l45cDWHHGa8lRgEDyhuL7bwd/pH5aSzj0j8SiQBG2k0S7DHbd5RaqvbQ==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/credential-provider-env@3.620.1': + resolution: {integrity: sha512-ExuILJ2qLW5ZO+rgkNRj0xiAipKT16Rk77buvPP8csR7kkCflT/gXTyzRe/uzIiETTxM7tr8xuO9MP/DQXqkfg==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/credential-provider-http@3.621.0': + resolution: {integrity: sha512-/jc2tEsdkT1QQAI5Dvoci50DbSxtJrevemwFsm0B73pwCcOQZ5ZwwSdVqGsPutzYzUVx3bcXg3LRL7jLACqRIg==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/credential-provider-ini@3.621.0': + resolution: {integrity: sha512-0EWVnSc+JQn5HLnF5Xv405M8n4zfdx9gyGdpnCmAmFqEDHA8LmBdxJdpUk1Ovp/I5oPANhjojxabIW5f1uU0RA==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@aws-sdk/client-sts': ^3.621.0 + + '@aws-sdk/credential-provider-node@3.621.0': + resolution: {integrity: sha512-4JqpccUgz5Snanpt2+53hbOBbJQrSFq7E1sAAbgY6BKVQUsW5qyXqnjvSF32kDeKa5JpBl3bBWLZl04IadcPHw==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/credential-provider-process@3.620.1': + resolution: {integrity: sha512-hWqFMidqLAkaV9G460+1at6qa9vySbjQKKc04p59OT7lZ5cO5VH5S4aI05e+m4j364MBROjjk2ugNvfNf/8ILg==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/credential-provider-sso@3.621.0': + resolution: {integrity: sha512-Kza0jcFeA/GEL6xJlzR2KFf1PfZKMFnxfGzJzl5yN7EjoGdMijl34KaRyVnfRjnCWcsUpBWKNIDk9WZVMY9yiw==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/credential-provider-web-identity@3.621.0': + resolution: {integrity: sha512-w7ASSyfNvcx7+bYGep3VBgC3K6vEdLmlpjT7nSIHxxQf+WSdvy+HynwJosrpZax0sK5q0D1Jpn/5q+r5lwwW6w==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@aws-sdk/client-sts': ^3.621.0 + + '@aws-sdk/middleware-host-header@3.620.0': + resolution: {integrity: sha512-VMtPEZwqYrII/oUkffYsNWY9PZ9xpNJpMgmyU0rlDQ25O1c0Hk3fJmZRe6pEkAJ0omD7kLrqGl1DUjQVxpd/Rg==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/middleware-logger@3.609.0': + resolution: {integrity: sha512-S62U2dy4jMDhDFDK5gZ4VxFdWzCtLzwbYyFZx2uvPYTECkepLUfzLic2BHg2Qvtu4QjX+oGE3P/7fwaGIsGNuQ==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/middleware-recursion-detection@3.620.0': + resolution: {integrity: sha512-nh91S7aGK3e/o1ck64sA/CyoFw+gAYj2BDOnoNa6ouyCrVJED96ZXWbhye/fz9SgmNUZR2g7GdVpiLpMKZoI5w==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/middleware-user-agent@3.620.0': + resolution: {integrity: sha512-bvS6etn+KsuL32ubY5D3xNof1qkenpbJXf/ugGXbg0n98DvDFQ/F+SMLxHgbnER5dsKYchNnhmtI6/FC3HFu/A==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/region-config-resolver@3.614.0': + resolution: {integrity: sha512-vDCeMXvic/LU0KFIUjpC3RiSTIkkvESsEfbVHiHH0YINfl8HnEqR5rj+L8+phsCeVg2+LmYwYxd5NRz4PHxt5g==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/token-providers@3.614.0': + resolution: {integrity: sha512-okItqyY6L9IHdxqs+Z116y5/nda7rHxLvROxtAJdLavWTYDydxrZstImNgGWTeVdmc0xX2gJCI77UYUTQWnhRw==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@aws-sdk/client-sso-oidc': ^3.614.0 + + '@aws-sdk/types@3.387.0': + resolution: {integrity: sha512-YTjFabNwjTF+6yl88f0/tWff018qmmgMmjlw45s6sdVKueWxdxV68U7gepNLF2nhaQPZa6FDOBoA51NaviVs0Q==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/types@3.398.0': + resolution: {integrity: sha512-r44fkS+vsEgKCuEuTV+TIk0t0m5ZlXHNjSDYEUvzLStbbfUFiNus/YG4UCa0wOk9R7VuQI67badsvvPeVPCGDQ==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/types@3.609.0': + resolution: {integrity: sha512-+Tqnh9w0h2LcrUsdXyT1F8mNhXz+tVYBtP19LpeEGntmvHwa2XzvLUCWpoIAIVsHp5+HdB2X9Sn0KAtmbFXc2Q==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/util-endpoints@3.614.0': + resolution: {integrity: sha512-wK2cdrXHH4oz4IomV/yrGkftU9A+ITB6nFL+rxxyO78is2ifHJpFdV4aqk4LSkXYPi6CXWNru/Dqc7yiKXgJPw==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/util-locate-window@3.693.0': + resolution: {integrity: sha512-ttrag6haJLWABhLqtg1Uf+4LgHWIMOVSYL+VYZmAp2v4PUGOwWmWQH0Zk8RM7YuQcLfH/EoR72/Yxz6A4FKcuw==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/util-user-agent-browser@3.609.0': + resolution: {integrity: sha512-fojPU+mNahzQ0YHYBsx0ZIhmMA96H+ZIZ665ObU9tl+SGdbLneVZVikGve+NmHTQwHzwkFsZYYnVKAkreJLAtA==} + + '@aws-sdk/util-user-agent-node@3.614.0': + resolution: {integrity: sha512-15ElZT88peoHnq5TEoEtZwoXTXRxNrk60TZNdpl/TUBJ5oNJ9Dqb5Z4ryb8ofN6nm9aFf59GVAerFDz8iUoHBA==} + engines: {node: '>=16.0.0'} + peerDependencies: + aws-crt: '>=1.0.0' + peerDependenciesMeta: + aws-crt: + optional: true + '@babel/code-frame@7.25.7': resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} engines: {node: '>=6.9.0'} @@ -2071,6 +2380,21 @@ packages: resolution: {integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@floating-ui/core@1.6.8': + resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==} + + '@floating-ui/dom@1.6.12': + resolution: {integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==} + + '@floating-ui/react-dom@2.1.2': + resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.8': + resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} + '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} @@ -2281,29 +2605,40 @@ packages: preact: ^10.4.0 webpack: ^4.0.0 || ^5.0.0 + '@radix-ui/number@1.1.0': + resolution: {integrity: sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==} + '@radix-ui/primitive@1.1.0': resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==} - '@radix-ui/react-compose-refs@1.1.0': - resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==} + '@radix-ui/react-arrow@1.1.0': + resolution: {integrity: sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-context@1.1.1': - resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} + '@radix-ui/react-avatar@1.1.1': + resolution: {integrity: sha512-eoOtThOmxeoizxpX6RiEsQZ2wj5r4+zoeqAwO0cBaFQGjJwIH3dIX0OCxNrCyrrdxG+vBweMETh3VziQG7c1kw==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-label@2.1.0': - resolution: {integrity: sha512-peLblDlFw/ngk3UWq0VnYaOLy6agTZZ+MUO/WhVfm14vJGML+xH4FAl2XQGLqdefjNb7ApRg6Yn7U42ZhmYXdw==} + '@radix-ui/react-collapsible@1.1.1': + resolution: {integrity: sha512-1///SnrfQHJEofLokyczERxQbWfCGQlQ2XsCZMucVs6it+lq9iw4vXy+uDn1edlb58cOZOWSldnfPAYcT4O/Yg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2315,8 +2650,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-primitive@2.0.0': - resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==} + '@radix-ui/react-collection@1.1.0': + resolution: {integrity: sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2328,8 +2663,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-slot@1.1.0': - resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==} + '@radix-ui/react-compose-refs@1.1.0': + resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -2337,8 +2672,26 @@ packages: '@types/react': optional: true - '@radix-ui/react-switch@1.1.1': - resolution: {integrity: sha512-diPqDDoBcZPSicYoMWdWx+bCPuTRH4QSp9J+65IvtdS0Kuzt67bI6n32vCj8q6NZmYW/ah+2orOtMwcX5eQwIg==} + '@radix-ui/react-context@1.1.0': + resolution: {integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-context@1.1.1': + resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dialog@1.1.2': + resolution: {integrity: sha512-Yj4dZtqa2o+kG61fzB0H2qUvmwBA2oyQroGLyNtBj1beo1khoQ3q1a2AO8rrQYjd8256CO9+N8L9tvsS+bnIyA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2350,8 +2703,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-use-callback-ref@1.1.0': - resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} + '@radix-ui/react-direction@1.1.0': + resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -2359,26 +2712,34 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-controllable-state@1.1.0': - resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} + '@radix-ui/react-dismissable-layer@1.1.1': + resolution: {integrity: sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-use-layout-effect@1.1.0': - resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} + '@radix-ui/react-dropdown-menu@2.1.2': + resolution: {integrity: sha512-GVZMR+eqK8/Kes0a36Qrv+i20bAPXSn8rCBTHx30w+3ECnR5o3xixAlqcVaYvLeyKUsm0aqyhWfmUcqufM8nYA==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-use-previous@1.1.0': - resolution: {integrity: sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==} + '@radix-ui/react-focus-guards@1.1.1': + resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -2386,38 +2747,330 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-size@1.1.0': - resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==} + '@radix-ui/react-focus-scope@1.1.0': + resolution: {integrity: sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-android-arm-eabi@4.24.0': - resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.24.0': - resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} - cpu: [arm64] - os: [android] + '@radix-ui/react-icons@1.3.2': + resolution: {integrity: sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==} + peerDependencies: + react: ^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc - '@rollup/rollup-darwin-arm64@4.24.0': - resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} - cpu: [arm64] - os: [darwin] + '@radix-ui/react-id@1.1.0': + resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@rollup/rollup-darwin-x64@4.24.0': - resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} - cpu: [x64] - os: [darwin] + '@radix-ui/react-label@2.1.0': + resolution: {integrity: sha512-peLblDlFw/ngk3UWq0VnYaOLy6agTZZ+MUO/WhVfm14vJGML+xH4FAl2XQGLqdefjNb7ApRg6Yn7U42ZhmYXdw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.24.0': - resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} - cpu: [arm] + '@radix-ui/react-menu@2.1.2': + resolution: {integrity: sha512-lZ0R4qR2Al6fZ4yCCZzu/ReTFrylHFxIqy7OezIpWF4bL0o9biKo0pFIvkaew3TyZ9Fy5gYVrR5zCGZBVbO1zg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popover@1.1.2': + resolution: {integrity: sha512-u2HRUyWW+lOiA2g0Le0tMmT55FGOEWHwPFt1EPfbLly7uXQExFo5duNKqG2DzmFXIdqOeNd+TpE8baHWJCyP9w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popper@1.2.0': + resolution: {integrity: sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-portal@1.1.2': + resolution: {integrity: sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-presence@1.1.1': + resolution: {integrity: sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@2.0.0': + resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-roving-focus@1.1.0': + resolution: {integrity: sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-select@2.1.2': + resolution: {integrity: sha512-rZJtWmorC7dFRi0owDmoijm6nSJH1tVw64QGiNIZ9PNLyBDtG+iAq+XGsya052At4BfarzY/Dhv9wrrUr6IMZA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-separator@1.1.0': + resolution: {integrity: sha512-3uBAs+egzvJBDZAzvb/n4NxxOYpnspmWxO2u5NbZ8Y6FM/NdrGSF9bop3Cf6F6C71z1rTSn8KV0Fo2ZVd79lGA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-slot@1.1.0': + resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-switch@1.1.1': + resolution: {integrity: sha512-diPqDDoBcZPSicYoMWdWx+bCPuTRH4QSp9J+65IvtdS0Kuzt67bI6n32vCj8q6NZmYW/ah+2orOtMwcX5eQwIg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-tabs@1.1.1': + resolution: {integrity: sha512-3GBUDmP2DvzmtYLMsHmpA1GtR46ZDZ+OreXM/N+kkQJOPIgytFWWTfDQmBQKBvaFS0Vno0FktdbVzN28KGrMdw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-toast@1.2.2': + resolution: {integrity: sha512-Z6pqSzmAP/bFJoqMAston4eSNa+ud44NSZTiZUmUen+IOZ5nBY8kzuU5WDBVyFXPtcW6yUalOHsxM/BP6Sv8ww==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-tooltip@1.1.4': + resolution: {integrity: sha512-QpObUH/ZlpaO4YgHSaYzrLO2VuO+ZBFFgGzjMUPwtiYnAzzNNDPJeEGRrT7qNOrWm/Jr08M1vlp+vTHtnSQ0Uw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-use-callback-ref@1.1.0': + resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-controllable-state@1.1.0': + resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-escape-keydown@1.1.0': + resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-layout-effect@1.1.0': + resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-previous@1.1.0': + resolution: {integrity: sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-rect@1.1.0': + resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-size@1.1.0': + resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-visually-hidden@1.1.0': + resolution: {integrity: sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/rect@1.1.0': + resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} + + '@remix-run/router@1.21.0': + resolution: {integrity: sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA==} + engines: {node: '>=14.0.0'} + + '@rollup/rollup-android-arm-eabi@4.24.0': + resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.24.0': + resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.24.0': + resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.24.0': + resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} + cpu: [arm] os: [linux] '@rollup/rollup-linux-arm-musleabihf@4.24.0': @@ -2484,10 +3137,215 @@ packages: '@sinonjs/fake-timers@10.3.0': resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - '@svgr/babel-plugin-add-jsx-attribute@8.0.0': - resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} - engines: {node: '>=14'} - peerDependencies: + '@smithy/abort-controller@3.1.8': + resolution: {integrity: sha512-+3DOBcUn5/rVjlxGvUPKc416SExarAQ+Qe0bqk30YSUjbepwpS7QN0cyKUSifvLJhdMZ0WPzPP5ymut0oonrpQ==} + engines: {node: '>=16.0.0'} + + '@smithy/config-resolver@3.0.12': + resolution: {integrity: sha512-YAJP9UJFZRZ8N+UruTeq78zkdjUHmzsY62J4qKWZ4SXB4QXJ/+680EfXXgkYA2xj77ooMqtUY9m406zGNqwivQ==} + engines: {node: '>=16.0.0'} + + '@smithy/core@2.5.4': + resolution: {integrity: sha512-iFh2Ymn2sCziBRLPuOOxRPkuCx/2gBdXtBGuCUFLUe6bWYjKnhHyIPqGeNkLZ5Aco/5GjebRTBFiWID3sDbrKw==} + engines: {node: '>=16.0.0'} + + '@smithy/credential-provider-imds@3.2.7': + resolution: {integrity: sha512-cEfbau+rrWF8ylkmmVAObOmjbTIzKyUC5TkBL58SbLywD0RCBC4JAUKbmtSm2w5KUJNRPGgpGFMvE2FKnuNlWQ==} + engines: {node: '>=16.0.0'} + + '@smithy/eventstream-codec@3.1.9': + resolution: {integrity: sha512-F574nX0hhlNOjBnP+noLtsPFqXnWh2L0+nZKCwcu7P7J8k+k+rdIDs+RMnrMwrzhUE4mwMgyN0cYnEn0G8yrnQ==} + + '@smithy/eventstream-serde-browser@3.0.13': + resolution: {integrity: sha512-Nee9m+97o9Qj6/XeLz2g2vANS2SZgAxV4rDBMKGHvFJHU/xz88x2RwCkwsvEwYjSX4BV1NG1JXmxEaDUzZTAtw==} + engines: {node: '>=16.0.0'} + + '@smithy/eventstream-serde-config-resolver@3.0.10': + resolution: {integrity: sha512-K1M0x7P7qbBUKB0UWIL5KOcyi6zqV5mPJoL0/o01HPJr0CSq3A9FYuJC6e11EX6hR8QTIR++DBiGrYveOu6trw==} + engines: {node: '>=16.0.0'} + + '@smithy/eventstream-serde-node@3.0.12': + resolution: {integrity: sha512-kiZymxXvZ4tnuYsPSMUHe+MMfc4FTeFWJIc0Q5wygJoUQM4rVHNghvd48y7ppuulNMbuYt95ah71pYc2+o4JOA==} + engines: {node: '>=16.0.0'} + + '@smithy/eventstream-serde-universal@3.0.12': + resolution: {integrity: sha512-1i8ifhLJrOZ+pEifTlF0EfZzMLUGQggYQ6WmZ4d5g77zEKf7oZ0kvh1yKWHPjofvOwqrkwRDVuxuYC8wVd662A==} + engines: {node: '>=16.0.0'} + + '@smithy/fetch-http-handler@3.2.9': + resolution: {integrity: sha512-hYNVQOqhFQ6vOpenifFME546f0GfJn2OiQ3M0FDmuUu8V/Uiwy2wej7ZXxFBNqdx0R5DZAqWM1l6VRhGz8oE6A==} + + '@smithy/fetch-http-handler@4.1.1': + resolution: {integrity: sha512-bH7QW0+JdX0bPBadXt8GwMof/jz0H28I84hU1Uet9ISpzUqXqRQ3fEZJ+ANPOhzSEczYvANNl3uDQDYArSFDtA==} + + '@smithy/hash-node@3.0.10': + resolution: {integrity: sha512-3zWGWCHI+FlJ5WJwx73Mw2llYR8aflVyZN5JhoqLxbdPZi6UyKSdCeXAWJw9ja22m6S6Tzz1KZ+kAaSwvydi0g==} + engines: {node: '>=16.0.0'} + + '@smithy/invalid-dependency@3.0.10': + resolution: {integrity: sha512-Lp2L65vFi+cj0vFMu2obpPW69DU+6O5g3086lmI4XcnRCG8PxvpWC7XyaVwJCxsZFzueHjXnrOH/E0pl0zikfA==} + + '@smithy/is-array-buffer@2.2.0': + resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} + engines: {node: '>=14.0.0'} + + '@smithy/is-array-buffer@3.0.0': + resolution: {integrity: sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==} + engines: {node: '>=16.0.0'} + + '@smithy/md5-js@2.0.7': + resolution: {integrity: sha512-2i2BpXF9pI5D1xekqUsgQ/ohv5+H//G9FlawJrkOJskV18PgJ8LiNbLiskMeYt07yAsSTZR7qtlcAaa/GQLWww==} + + '@smithy/middleware-content-length@3.0.12': + resolution: {integrity: sha512-1mDEXqzM20yywaMDuf5o9ue8OkJ373lSPbaSjyEvkWdqELhFMyNNgKGWL/rCSf4KME8B+HlHKuR8u9kRj8HzEQ==} + engines: {node: '>=16.0.0'} + + '@smithy/middleware-endpoint@3.2.4': + resolution: {integrity: sha512-TybiW2LA3kYVd3e+lWhINVu1o26KJbBwOpADnf0L4x/35vLVica77XVR5hvV9+kWeTGeSJ3IHTcYxbRxlbwhsg==} + engines: {node: '>=16.0.0'} + + '@smithy/middleware-retry@3.0.28': + resolution: {integrity: sha512-vK2eDfvIXG1U64FEUhYxoZ1JSj4XFbYWkK36iz02i3pFwWiDz1Q7jKhGTBCwx/7KqJNk4VS7d7cDLXFOvP7M+g==} + engines: {node: '>=16.0.0'} + + '@smithy/middleware-serde@3.0.10': + resolution: {integrity: sha512-MnAuhh+dD14F428ubSJuRnmRsfOpxSzvRhaGVTvd/lrUDE3kxzCCmH8lnVTvoNQnV2BbJ4c15QwZ3UdQBtFNZA==} + engines: {node: '>=16.0.0'} + + '@smithy/middleware-stack@3.0.10': + resolution: {integrity: sha512-grCHyoiARDBBGPyw2BeicpjgpsDFWZZxptbVKb3CRd/ZA15F/T6rZjCCuBUjJwdck1nwUuIxYtsS4H9DDpbP5w==} + engines: {node: '>=16.0.0'} + + '@smithy/node-config-provider@3.1.11': + resolution: {integrity: sha512-URq3gT3RpDikh/8MBJUB+QGZzfS7Bm6TQTqoh4CqE8NBuyPkWa5eUXj0XFcFfeZVgg3WMh1u19iaXn8FvvXxZw==} + engines: {node: '>=16.0.0'} + + '@smithy/node-http-handler@3.3.1': + resolution: {integrity: sha512-fr+UAOMGWh6bn4YSEezBCpJn9Ukp9oR4D32sCjCo7U81evE11YePOQ58ogzyfgmjIO79YeOdfXXqr0jyhPQeMg==} + engines: {node: '>=16.0.0'} + + '@smithy/property-provider@3.1.10': + resolution: {integrity: sha512-n1MJZGTorTH2DvyTVj+3wXnd4CzjJxyXeOgnTlgNVFxaaMeT4OteEp4QrzF8p9ee2yg42nvyVK6R/awLCakjeQ==} + engines: {node: '>=16.0.0'} + + '@smithy/protocol-http@4.1.7': + resolution: {integrity: sha512-FP2LepWD0eJeOTm0SjssPcgqAlDFzOmRXqXmGhfIM52G7Lrox/pcpQf6RP4F21k0+O12zaqQt5fCDOeBtqY6Cg==} + engines: {node: '>=16.0.0'} + + '@smithy/querystring-builder@3.0.10': + resolution: {integrity: sha512-nT9CQF3EIJtIUepXQuBFb8dxJi3WVZS3XfuDksxSCSn+/CzZowRLdhDn+2acbBv8R6eaJqPupoI/aRFIImNVPQ==} + engines: {node: '>=16.0.0'} + + '@smithy/querystring-parser@3.0.10': + resolution: {integrity: sha512-Oa0XDcpo9SmjhiDD9ua2UyM3uU01ZTuIrNdZvzwUTykW1PM8o2yJvMh1Do1rY5sUQg4NDV70dMi0JhDx4GyxuQ==} + engines: {node: '>=16.0.0'} + + '@smithy/service-error-classification@3.0.10': + resolution: {integrity: sha512-zHe642KCqDxXLuhs6xmHVgRwy078RfqxP2wRDpIyiF8EmsWXptMwnMwbVa50lw+WOGNrYm9zbaEg0oDe3PTtvQ==} + engines: {node: '>=16.0.0'} + + '@smithy/shared-ini-file-loader@3.1.11': + resolution: {integrity: sha512-AUdrIZHFtUgmfSN4Gq9nHu3IkHMa1YDcN+s061Nfm+6pQ0mJy85YQDB0tZBCmls0Vuj22pLwDPmL92+Hvfwwlg==} + engines: {node: '>=16.0.0'} + + '@smithy/signature-v4@4.2.3': + resolution: {integrity: sha512-pPSQQ2v2vu9vc8iew7sszLd0O09I5TRc5zhY71KA+Ao0xYazIG+uLeHbTJfIWGO3BGVLiXjUr3EEeCcEQLjpWQ==} + engines: {node: '>=16.0.0'} + + '@smithy/smithy-client@3.4.5': + resolution: {integrity: sha512-k0sybYT9zlP79sIKd1XGm4TmK0AS1nA2bzDHXx7m0nGi3RQ8dxxQUs4CPkSmQTKAo+KF9aINU3KzpGIpV7UoMw==} + engines: {node: '>=16.0.0'} + + '@smithy/types@2.12.0': + resolution: {integrity: sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==} + engines: {node: '>=14.0.0'} + + '@smithy/types@3.7.1': + resolution: {integrity: sha512-XKLcLXZY7sUQgvvWyeaL/qwNPp6V3dWcUjqrQKjSb+tzYiCy340R/c64LV5j+Tnb2GhmunEX0eou+L+m2hJNYA==} + engines: {node: '>=16.0.0'} + + '@smithy/url-parser@3.0.10': + resolution: {integrity: sha512-j90NUalTSBR2NaZTuruEgavSdh8MLirf58LoGSk4AtQfyIymogIhgnGUU2Mga2bkMkpSoC9gxb74xBXL5afKAQ==} + + '@smithy/util-base64@3.0.0': + resolution: {integrity: sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==} + engines: {node: '>=16.0.0'} + + '@smithy/util-body-length-browser@3.0.0': + resolution: {integrity: sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==} + + '@smithy/util-body-length-node@3.0.0': + resolution: {integrity: sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==} + engines: {node: '>=16.0.0'} + + '@smithy/util-buffer-from@2.2.0': + resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} + engines: {node: '>=14.0.0'} + + '@smithy/util-buffer-from@3.0.0': + resolution: {integrity: sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==} + engines: {node: '>=16.0.0'} + + '@smithy/util-config-provider@3.0.0': + resolution: {integrity: sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==} + engines: {node: '>=16.0.0'} + + '@smithy/util-defaults-mode-browser@3.0.28': + resolution: {integrity: sha512-6bzwAbZpHRFVJsOztmov5PGDmJYsbNSoIEfHSJJyFLzfBGCCChiO3od9k7E/TLgrCsIifdAbB9nqbVbyE7wRUw==} + engines: {node: '>= 10.0.0'} + + '@smithy/util-defaults-mode-node@3.0.28': + resolution: {integrity: sha512-78ENJDorV1CjOQselGmm3+z7Yqjj5HWCbjzh0Ixuq736dh1oEnD9sAttSBNSLlpZsX8VQnmERqA2fEFlmqWn8w==} + engines: {node: '>= 10.0.0'} + + '@smithy/util-endpoints@2.1.6': + resolution: {integrity: sha512-mFV1t3ndBh0yZOJgWxO9J/4cHZVn5UG1D8DeCc6/echfNkeEJWu9LD7mgGH5fHrEdR7LDoWw7PQO6QiGpHXhgA==} + engines: {node: '>=16.0.0'} + + '@smithy/util-hex-encoding@2.0.0': + resolution: {integrity: sha512-c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA==} + engines: {node: '>=14.0.0'} + + '@smithy/util-hex-encoding@3.0.0': + resolution: {integrity: sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==} + engines: {node: '>=16.0.0'} + + '@smithy/util-middleware@3.0.10': + resolution: {integrity: sha512-eJO+/+RsrG2RpmY68jZdwQtnfsxjmPxzMlQpnHKjFPwrYqvlcT+fHdT+ZVwcjlWSrByOhGr9Ff2GG17efc192A==} + engines: {node: '>=16.0.0'} + + '@smithy/util-retry@3.0.10': + resolution: {integrity: sha512-1l4qatFp4PiU6j7UsbasUHL2VU023NRB/gfaa1M0rDqVrRN4g3mCArLRyH3OuktApA4ye+yjWQHjdziunw2eWA==} + engines: {node: '>=16.0.0'} + + '@smithy/util-stream@3.3.1': + resolution: {integrity: sha512-Ff68R5lJh2zj+AUTvbAU/4yx+6QPRzg7+pI7M1FbtQHcRIp7xvguxVsQBKyB3fwiOwhAKu0lnNyYBaQfSW6TNw==} + engines: {node: '>=16.0.0'} + + '@smithy/util-uri-escape@3.0.0': + resolution: {integrity: sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==} + engines: {node: '>=16.0.0'} + + '@smithy/util-utf8@2.0.0': + resolution: {integrity: sha512-rctU1VkziY84n5OXe3bPNpKR001ZCME2JCaBBFgtiM2hfKbHFudc/BkMuPab8hRbLd0j3vbnBTTZ1igBf0wgiQ==} + engines: {node: '>=14.0.0'} + + '@smithy/util-utf8@2.3.0': + resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} + engines: {node: '>=14.0.0'} + + '@smithy/util-utf8@3.0.0': + resolution: {integrity: sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==} + engines: {node: '>=16.0.0'} + + '@smithy/util-waiter@3.1.9': + resolution: {integrity: sha512-/aMXPANhMOlMPjfPtSrDfPeVP8l56SJlz93xeiLmhLe5xvlXA5T3abZ2ilEsDEPeY9T/wnN/vNGn9wa1SbufWA==} + engines: {node: '>=16.0.0'} + + '@svgr/babel-plugin-add-jsx-attribute@8.0.0': + resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} + engines: {node: '>=14'} + peerDependencies: '@babel/core': ^7.0.0-0 '@svgr/babel-plugin-remove-jsx-attribute@8.0.0': @@ -2642,6 +3500,39 @@ packages: peerDependencies: tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20' + '@tanstack/eslint-plugin-query@5.61.3': + resolution: {integrity: sha512-tcP6xfoi/22oylcIUCWnfsfSpHZO/2MNq1pzex5NuwbeqEU2TQYJyoUp0Rdmtx9Pl9csPSNK70gBcCjuPQ0+ng==} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + '@tanstack/query-core@5.60.6': + resolution: {integrity: sha512-tI+k0KyCo1EBJ54vxK1kY24LWj673ujTydCZmzEZKAew4NqZzTaVQJEuaG1qKj2M03kUHN46rchLRd+TxVq/zQ==} + + '@tanstack/query-devtools@5.61.3': + resolution: {integrity: sha512-AoRco+DMw7Xy9fFs+5BxBop82YPKs1/tWpTPoO1iYVwPLmAU+znnLfWyZ8Qr5OiEqoS0dCyEe6F5V11/JkCK/A==} + + '@tanstack/react-query-devtools@5.61.3': + resolution: {integrity: sha512-bR/TaiOSqTq0M5dmYY+pJeSnl5QAuCaRRmJg+Q5hEqt6uTHgKz5WO4jdi8BywRJiZhpXLirlUAIOXJsZ8ukqSA==} + peerDependencies: + '@tanstack/react-query': ^5.61.3 + react: ^18 || ^19 + + '@tanstack/react-query@5.61.3': + resolution: {integrity: sha512-c3Oz9KaCBapGkRewu7AJLhxE9BVqpMcHsd3KtFxSd7FSCu2qGwqfIN37zbSGoyk6Ix9LGZBNHQDPI6GpWABnmA==} + peerDependencies: + react: ^18 || ^19 + + '@tanstack/react-table@8.20.5': + resolution: {integrity: sha512-WEHopKw3znbUZ61s9i0+i9g8drmDo6asTWbrQh8Us63DAk/M0FkmIqERew6P71HI75ksZ2Pxyuf4vvKh9rAkiA==} + engines: {node: '>=12'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@tanstack/table-core@8.20.5': + resolution: {integrity: sha512-P9dF7XbibHph2PFRz8gfBKEXEY/HJPOhym8CHmjF8y3q5mWpKx9xtZapXQUWCgkqvsK0R46Azuz+VaxD4Xl+Tg==} + engines: {node: '>=12'} + '@trysound/sax@0.2.0': resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} @@ -2664,6 +3555,9 @@ packages: '@types/adm-zip@0.5.5': resolution: {integrity: sha512-YCGstVMjc4LTY5uK9/obvxBya93axZOVOyf2GSUulADzmLhYE45u2nAssCs/fWBs1Ifq5Vat75JTPwd5XZoPJw==} + '@types/aws-lambda@8.10.145': + resolution: {integrity: sha512-dtByW6WiFk5W5Jfgz1VM+YPA21xMXTuSFoLYIDY0L44jDLLflVPtZkYuu3/YxpGcvjzKFBZLU+GyKjR0HOYtyw==} + '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -2844,6 +3738,9 @@ packages: '@types/uglify-js@3.17.5': resolution: {integrity: sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==} + '@types/uuid@9.0.8': + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + '@types/webextension-polyfill@0.10.7': resolution: {integrity: sha512-10ql7A0qzBmFB+F+qAke/nP1PIonS0TXZAOMVOxEUsm+lGSW6uwVcISFNa0I4Oyj0884TZVWGGMIWeXOVSNFHw==} @@ -2898,6 +3795,10 @@ packages: resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/scope-manager@8.16.0': + resolution: {integrity: sha512-mwsZWubQvBki2t5565uxF0EYvG+FwdFb8bMtDuGQLdCCnGPrDEDvm1gtfynuKlnpzeBRqdFCkMf9jg1fnAK8sg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.8.0': resolution: {integrity: sha512-EL8eaGC6gx3jDd8GwEFEV091210U97J0jeEHrAYvIYosmEGet4wJ+g0SYmLu+oRiAwbSA5AVrt6DxLHfdd+bUg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2925,6 +3826,10 @@ packages: resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/types@8.16.0': + resolution: {integrity: sha512-NzrHj6thBAOSE4d9bsuRNMvk+BvaQvmY4dDglgkgGC0EW/tB3Kelnp3tAKH87GEwzoxgeQn9fNGRyFJM/xd+GQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.8.0': resolution: {integrity: sha512-QJwc50hRCgBd/k12sTykOJbESe1RrzmX6COk8Y525C9l7oweZ+1lw9JiU56im7Amm8swlz00DRIlxMYLizr2Vw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2938,6 +3843,15 @@ packages: typescript: optional: true + '@typescript-eslint/typescript-estree@8.16.0': + resolution: {integrity: sha512-E2+9IzzXMc1iaBy9zmo+UYvluE3TW7bCGWSF41hVWUE01o8nzr1rvOQYSxelxr6StUvRcTMe633eY8mXASMaNw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/typescript-estree@8.8.0': resolution: {integrity: sha512-ZaMJwc/0ckLz5DaAZ+pNLmHv8AMVGtfWxZe/x2JVEkD5LnmhWiQMMcYT7IY7gkdJuzJ9P14fRy28lUrlDSWYdw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2953,6 +3867,16 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 + '@typescript-eslint/utils@8.16.0': + resolution: {integrity: sha512-C1zRy/mOL8Pj157GiX4kaw7iyRLKfJXBR3L82hk5kS/GyHcOFmy4YUq/zfZti72I9wnuQtA/+xzft4wCC8PJdA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/utils@8.8.0': resolution: {integrity: sha512-QE2MgfOTem00qrlPgyByaCHay9yb1+9BjnMFnSFkUKQfu7adBXDTnCAivURnuPPAG/qiB+kzKkZKmKfaMT0zVg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2963,6 +3887,10 @@ packages: resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/visitor-keys@8.16.0': + resolution: {integrity: sha512-pq19gbaMOmFE3CbL0ZB8J8BFCo2ckfHBfaIsaOZgBIF4EoISJIdLX5xRhd0FGB0LlHReNRuzoJoMGpTjq8F2CQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.8.0': resolution: {integrity: sha512-8mq51Lx6Hpmd7HnA2fcHQo3YgfX1qbccxQOgZcb4tvasu//zXRaA1j5ZRFeCw/VRAdFi4mRM9DnZw0Nu0Q2d1g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3171,6 +4099,10 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-hidden@1.2.4: + resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} + engines: {node: '>=10'} + aria-query@5.3.2: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} @@ -3213,6 +4145,9 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} + aws-amplify@6.9.0: + resolution: {integrity: sha512-r5bRI+v/Rr/ekE6bJk7AL2zfXvQ7QRqIn0AzFoFgIGynPPAb5ucSnwIz6NEFkvrX2FbtI4b1Tsu93p3uNSLKng==} + axios@1.7.7: resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} @@ -3316,6 +4251,9 @@ packages: boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + bowser@2.11.0: + resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -3367,6 +4305,9 @@ packages: buffer-xor@1.0.3: resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} + buffer@4.9.2: + resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==} + buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} @@ -3494,6 +4435,12 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} + cmdk@1.0.4: + resolution: {integrity: sha512-AnsjfHyHpQ/EFeAnG216WY7A5LiYCoZzCSygiLvfXC3H3LFGCprErteUcszaVluGOhuOTbJS3jWHrSDYPBBygg==} + peerDependencies: + react: ^18 || ^19 || ^19.0.0-rc + react-dom: ^18 || ^19 || ^19.0.0-rc + co@4.6.0: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} @@ -3637,6 +4584,11 @@ packages: typescript: optional: true + crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + create-ecdh@4.0.4: resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} @@ -3828,6 +4780,9 @@ packages: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} + detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + detect-node@2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} @@ -4028,6 +4983,10 @@ packages: resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint@9.11.1: resolution: {integrity: sha512-MobhYKIoAO1s1e4VUrgx1l1Sk2JBR/Gqjjgw8+mfgoLE2xwsHur4gdfTxyTgShrhvdVFTaJSgMiQBl1jv/AWxg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4143,6 +5102,14 @@ packages: fast-uri@3.0.2: resolution: {integrity: sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==} + fast-xml-parser@4.4.1: + resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==} + hasBin: true + + fast-xml-parser@4.5.0: + resolution: {integrity: sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==} + hasBin: true + fastest-levenshtein@1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} @@ -4305,6 +5272,10 @@ packages: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} @@ -4382,6 +5353,10 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + graphql@15.8.0: + resolution: {integrity: sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==} + engines: {node: '>= 10.x'} + handle-thing@2.0.1: resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} @@ -4495,6 +5470,9 @@ packages: humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + humps@2.0.1: + resolution: {integrity: sha512-E0eIbrFWUhwfXJmsbdjRQFQPrl5pTEoKlz163j1mTqqUnU9PgR4AgB8AIITzuB3vLBdxZXyZ9TDIrwB2OASz4g==} + hyperdyperid@1.2.0: resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} engines: {node: '>=10.18'} @@ -4513,6 +5491,9 @@ packages: peerDependencies: postcss: ^8.1.0 + idb@5.0.6: + resolution: {integrity: sha512-/PFvOWPzRcEPmlDt5jEvzVZVs0wyd/EvGvkDIcbBpGuMMLQKrTPG0TxvE2UJtgZtCQCmOtM2QD7yQJBVEjKGOw==} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -4525,6 +5506,9 @@ packages: engines: {node: '>=0.10.0'} hasBin: true + immer@9.0.6: + resolution: {integrity: sha512-G95ivKpy+EvVAnAab4fVa4YGYn24J1SpEktnJX7JJ45Bd7xqME/SCplFzYFmTbrkwZbQ4xJK1xMTUYBkN6pWsQ==} + immutable@4.3.7: resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} @@ -4570,6 +5554,15 @@ packages: resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + input-otp@1.4.1: + resolution: {integrity: sha512-+yvpmKYKHi9jIGngxagY9oWiiblPB7+nEO75F2l2o4vs+6vpPZZmUl4tBNYuTCvQjhvEIbdNeJu70bhfYP2nbw==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + + invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} @@ -4886,6 +5879,10 @@ packages: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} + js-cookie@3.0.5: + resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} + engines: {node: '>=14'} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -5048,6 +6045,9 @@ packages: lodash.truncate@4.4.2: resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -5064,6 +6064,11 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lucide-react@0.454.0: + resolution: {integrity: sha512-hw7zMDwykCLnEzgncEEjHeA6+45aeEzRYuKHuyRSOPkhko+J3ySGjGIzu+mmMfDFG1vazHepMaYFYHbTFAZAAQ==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc + magic-string@0.30.11: resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} @@ -5909,6 +6914,12 @@ packages: peerDependencies: react: ^18.3.1 + react-hook-form@7.53.2: + resolution: {integrity: sha512-YVel6fW5sOeedd1524pltpHX+jgU2u3DSDtXEaBORNdqiNrsX/nUI/iGXONegttg0mJVnfrIkiV0cmTU6Oo2xw==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^16.8.0 || ^17 || ^18 || ^19 + react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} @@ -5925,16 +6936,66 @@ packages: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} + react-remove-scroll-bar@2.3.6: + resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.6.0: + resolution: {integrity: sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + react-router-dom@5.3.4: resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==} peerDependencies: react: '>=15' + react-router-dom@6.28.0: + resolution: {integrity: sha512-kQ7Unsl5YdyOltsPGl31zOjLrDv+m2VcIEcIHqYYD3Lp0UppLjrzcfJqDJwXxFw3TH/yvapbnUvPlAj7Kx5nbg==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + react-router@5.3.4: resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==} peerDependencies: react: '>=15' + react-router@6.28.0: + resolution: {integrity: sha512-HrYdIFqdrnhDw0PqG/AKjAqEqM7AvxCz0DQ4h2W8k6nqmc5uRBYDag0SBxx9iYz5G8gnuNVLzUe13wl9eAsXXg==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + + react-shadow@20.5.0: + resolution: {integrity: sha512-DHukRfWpJrFtZMcZrKrqU3ZwuHjTpTbrjnJdTGZQE3lqtC5ivBDVWqAVVW6lR3Lq6bhphjAbqaJU8NOoTRSCsg==} + peerDependencies: + prop-types: ^15.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 + + react-style-singleton@2.2.1: + resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + react@18.3.1: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} @@ -6064,6 +7125,9 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -6335,6 +7399,9 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + style-loader@3.3.4: resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} engines: {node: '>= 12.13.0'} @@ -6724,6 +7791,10 @@ packages: engines: {node: '>=14.17'} hasBin: true + ulid@2.3.0: + resolution: {integrity: sha512-keqHubrlpvT6G2wH0OEfSW4mquYRcbe/J8NMmveoQOjUqmo+hXtO+ORCpWhdbZ7k72UtY61BL7haGxW6enBnjw==} + hasBin: true + undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} @@ -6774,6 +7845,31 @@ packages: resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} engines: {node: '>= 0.4'} + use-callback-ref@1.3.2: + resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + use-sidecar@1.1.2: + resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + use-sync-external-store@1.2.2: + resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + userhome@1.0.0: resolution: {integrity: sha512-ayFKY3H+Pwfy4W98yPdtH1VqH4psDeyW8lYYFzfecR9d6hqLpqhecktvYR3SEEXt7vG0S1JEpciI3g94pMErig==} engines: {node: '>= 0.8.0'} @@ -6792,6 +7888,10 @@ packages: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -6806,6 +7906,12 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} + vaul@1.1.1: + resolution: {integrity: sha512-+ejzF6ffQKPcfgS7uOrGn017g39F8SO4yLPXbBhpC7a0H+oPqPna8f1BUfXaz8eU4+pxbQcmjxW+jWBSbxjaFg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 + vm-browserify@1.1.2: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} @@ -7040,43 +8146,623 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@babel/code-frame@7.25.7': - dependencies: - '@babel/highlight': 7.25.7 - picocolors: 1.1.0 - - '@babel/compat-data@7.25.7': {} - - '@babel/core@7.25.7': + '@aws-amplify/analytics@7.0.59(@aws-amplify/core@6.6.0)': dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.25.7 - '@babel/generator': 7.25.7 - '@babel/helper-compilation-targets': 7.25.7 - '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.7) - '@babel/helpers': 7.25.7 - '@babel/parser': 7.25.7 - '@babel/template': 7.25.7 - '@babel/traverse': 7.25.7 - '@babel/types': 7.25.7 - convert-source-map: 2.0.0 - debug: 4.3.7 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 + '@aws-amplify/core': 6.6.0 + '@aws-sdk/client-firehose': 3.621.0 + '@aws-sdk/client-kinesis': 3.621.0 + '@aws-sdk/client-personalize-events': 3.621.0 + '@smithy/util-utf8': 2.0.0 + tslib: 2.7.0 transitivePeerDependencies: - - supports-color + - aws-crt - '@babel/generator@7.25.7': + '@aws-amplify/api-graphql@4.6.2': dependencies: - '@babel/types': 7.25.7 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.0.2 + '@aws-amplify/api-rest': 4.0.59(@aws-amplify/core@6.6.0) + '@aws-amplify/core': 6.6.0 + '@aws-amplify/data-schema': 1.16.1 + '@aws-sdk/types': 3.387.0 + graphql: 15.8.0 + rxjs: 7.8.1 + tslib: 2.7.0 + uuid: 9.0.1 - '@babel/helper-annotate-as-pure@7.25.7': + '@aws-amplify/api-rest@4.0.59(@aws-amplify/core@6.6.0)': dependencies: - '@babel/types': 7.25.7 + '@aws-amplify/core': 6.6.0 + tslib: 2.7.0 + + '@aws-amplify/api@6.1.4(@aws-amplify/core@6.6.0)': + dependencies: + '@aws-amplify/api-graphql': 4.6.2 + '@aws-amplify/api-rest': 4.0.59(@aws-amplify/core@6.6.0) + tslib: 2.7.0 + transitivePeerDependencies: + - '@aws-amplify/core' + + '@aws-amplify/auth@6.7.0(@aws-amplify/core@6.6.0)': + dependencies: + '@aws-amplify/core': 6.6.0 + tslib: 2.7.0 + + '@aws-amplify/core@6.6.0': + dependencies: + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/types': 3.398.0 + '@smithy/util-hex-encoding': 2.0.0 + '@types/uuid': 9.0.8 + js-cookie: 3.0.5 + rxjs: 7.8.1 + tslib: 2.7.0 + uuid: 9.0.1 + + '@aws-amplify/data-schema-types@1.2.0': + dependencies: + graphql: 15.8.0 + rxjs: 7.8.1 + + '@aws-amplify/data-schema@1.16.1': + dependencies: + '@aws-amplify/data-schema-types': 1.2.0 + '@smithy/util-base64': 3.0.0 + '@types/aws-lambda': 8.10.145 + '@types/json-schema': 7.0.15 + rxjs: 7.8.1 + + '@aws-amplify/datastore@5.0.61(@aws-amplify/core@6.6.0)': + dependencies: + '@aws-amplify/api': 6.1.4(@aws-amplify/core@6.6.0) + '@aws-amplify/core': 6.6.0 + buffer: 4.9.2 + idb: 5.0.6 + immer: 9.0.6 + rxjs: 7.8.1 + ulid: 2.3.0 + + '@aws-amplify/notifications@2.0.59(@aws-amplify/core@6.6.0)': + dependencies: + '@aws-amplify/core': 6.6.0 + lodash: 4.17.21 + tslib: 2.7.0 + + '@aws-amplify/storage@6.7.0(@aws-amplify/core@6.6.0)': + dependencies: + '@aws-amplify/core': 6.6.0 + '@aws-sdk/types': 3.398.0 + '@smithy/md5-js': 2.0.7 + buffer: 4.9.2 + crc-32: 1.2.2 + fast-xml-parser: 4.5.0 + tslib: 2.7.0 + + '@aws-crypto/crc32@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.609.0 + tslib: 2.7.0 + + '@aws-crypto/sha256-browser@5.2.0': + dependencies: + '@aws-crypto/sha256-js': 5.2.0 + '@aws-crypto/supports-web-crypto': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.609.0 + '@aws-sdk/util-locate-window': 3.693.0 + '@smithy/util-utf8': 2.0.0 + tslib: 2.7.0 + + '@aws-crypto/sha256-js@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.398.0 + tslib: 2.7.0 + + '@aws-crypto/supports-web-crypto@5.2.0': + dependencies: + tslib: 2.7.0 + + '@aws-crypto/util@5.2.0': + dependencies: + '@aws-sdk/types': 3.398.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.7.0 + + '@aws-sdk/client-firehose@3.621.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/client-sso-oidc': 3.621.0(@aws-sdk/client-sts@3.621.0) + '@aws-sdk/client-sts': 3.621.0 + '@aws-sdk/core': 3.621.0 + '@aws-sdk/credential-provider-node': 3.621.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0))(@aws-sdk/client-sts@3.621.0) + '@aws-sdk/middleware-host-header': 3.620.0 + '@aws-sdk/middleware-logger': 3.609.0 + '@aws-sdk/middleware-recursion-detection': 3.620.0 + '@aws-sdk/middleware-user-agent': 3.620.0 + '@aws-sdk/region-config-resolver': 3.614.0 + '@aws-sdk/types': 3.609.0 + '@aws-sdk/util-endpoints': 3.614.0 + '@aws-sdk/util-user-agent-browser': 3.609.0 + '@aws-sdk/util-user-agent-node': 3.614.0 + '@smithy/config-resolver': 3.0.12 + '@smithy/core': 2.5.4 + '@smithy/fetch-http-handler': 3.2.9 + '@smithy/hash-node': 3.0.10 + '@smithy/invalid-dependency': 3.0.10 + '@smithy/middleware-content-length': 3.0.12 + '@smithy/middleware-endpoint': 3.2.4 + '@smithy/middleware-retry': 3.0.28 + '@smithy/middleware-serde': 3.0.10 + '@smithy/middleware-stack': 3.0.10 + '@smithy/node-config-provider': 3.1.11 + '@smithy/node-http-handler': 3.3.1 + '@smithy/protocol-http': 4.1.7 + '@smithy/smithy-client': 3.4.5 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.28 + '@smithy/util-defaults-mode-node': 3.0.28 + '@smithy/util-endpoints': 2.1.6 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-retry': 3.0.10 + '@smithy/util-utf8': 3.0.0 + tslib: 2.7.0 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-kinesis@3.621.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/client-sso-oidc': 3.621.0(@aws-sdk/client-sts@3.621.0) + '@aws-sdk/client-sts': 3.621.0 + '@aws-sdk/core': 3.621.0 + '@aws-sdk/credential-provider-node': 3.621.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0))(@aws-sdk/client-sts@3.621.0) + '@aws-sdk/middleware-host-header': 3.620.0 + '@aws-sdk/middleware-logger': 3.609.0 + '@aws-sdk/middleware-recursion-detection': 3.620.0 + '@aws-sdk/middleware-user-agent': 3.620.0 + '@aws-sdk/region-config-resolver': 3.614.0 + '@aws-sdk/types': 3.609.0 + '@aws-sdk/util-endpoints': 3.614.0 + '@aws-sdk/util-user-agent-browser': 3.609.0 + '@aws-sdk/util-user-agent-node': 3.614.0 + '@smithy/config-resolver': 3.0.12 + '@smithy/core': 2.5.4 + '@smithy/eventstream-serde-browser': 3.0.13 + '@smithy/eventstream-serde-config-resolver': 3.0.10 + '@smithy/eventstream-serde-node': 3.0.12 + '@smithy/fetch-http-handler': 3.2.9 + '@smithy/hash-node': 3.0.10 + '@smithy/invalid-dependency': 3.0.10 + '@smithy/middleware-content-length': 3.0.12 + '@smithy/middleware-endpoint': 3.2.4 + '@smithy/middleware-retry': 3.0.28 + '@smithy/middleware-serde': 3.0.10 + '@smithy/middleware-stack': 3.0.10 + '@smithy/node-config-provider': 3.1.11 + '@smithy/node-http-handler': 3.3.1 + '@smithy/protocol-http': 4.1.7 + '@smithy/smithy-client': 3.4.5 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.28 + '@smithy/util-defaults-mode-node': 3.0.28 + '@smithy/util-endpoints': 2.1.6 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-retry': 3.0.10 + '@smithy/util-utf8': 3.0.0 + '@smithy/util-waiter': 3.1.9 + tslib: 2.7.0 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-personalize-events@3.621.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/client-sso-oidc': 3.621.0(@aws-sdk/client-sts@3.621.0) + '@aws-sdk/client-sts': 3.621.0 + '@aws-sdk/core': 3.621.0 + '@aws-sdk/credential-provider-node': 3.621.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0))(@aws-sdk/client-sts@3.621.0) + '@aws-sdk/middleware-host-header': 3.620.0 + '@aws-sdk/middleware-logger': 3.609.0 + '@aws-sdk/middleware-recursion-detection': 3.620.0 + '@aws-sdk/middleware-user-agent': 3.620.0 + '@aws-sdk/region-config-resolver': 3.614.0 + '@aws-sdk/types': 3.609.0 + '@aws-sdk/util-endpoints': 3.614.0 + '@aws-sdk/util-user-agent-browser': 3.609.0 + '@aws-sdk/util-user-agent-node': 3.614.0 + '@smithy/config-resolver': 3.0.12 + '@smithy/core': 2.5.4 + '@smithy/fetch-http-handler': 3.2.9 + '@smithy/hash-node': 3.0.10 + '@smithy/invalid-dependency': 3.0.10 + '@smithy/middleware-content-length': 3.0.12 + '@smithy/middleware-endpoint': 3.2.4 + '@smithy/middleware-retry': 3.0.28 + '@smithy/middleware-serde': 3.0.10 + '@smithy/middleware-stack': 3.0.10 + '@smithy/node-config-provider': 3.1.11 + '@smithy/node-http-handler': 3.3.1 + '@smithy/protocol-http': 4.1.7 + '@smithy/smithy-client': 3.4.5 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.28 + '@smithy/util-defaults-mode-node': 3.0.28 + '@smithy/util-endpoints': 2.1.6 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-retry': 3.0.10 + '@smithy/util-utf8': 3.0.0 + tslib: 2.7.0 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0)': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/client-sts': 3.621.0 + '@aws-sdk/core': 3.621.0 + '@aws-sdk/credential-provider-node': 3.621.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0))(@aws-sdk/client-sts@3.621.0) + '@aws-sdk/middleware-host-header': 3.620.0 + '@aws-sdk/middleware-logger': 3.609.0 + '@aws-sdk/middleware-recursion-detection': 3.620.0 + '@aws-sdk/middleware-user-agent': 3.620.0 + '@aws-sdk/region-config-resolver': 3.614.0 + '@aws-sdk/types': 3.609.0 + '@aws-sdk/util-endpoints': 3.614.0 + '@aws-sdk/util-user-agent-browser': 3.609.0 + '@aws-sdk/util-user-agent-node': 3.614.0 + '@smithy/config-resolver': 3.0.12 + '@smithy/core': 2.5.4 + '@smithy/fetch-http-handler': 3.2.9 + '@smithy/hash-node': 3.0.10 + '@smithy/invalid-dependency': 3.0.10 + '@smithy/middleware-content-length': 3.0.12 + '@smithy/middleware-endpoint': 3.2.4 + '@smithy/middleware-retry': 3.0.28 + '@smithy/middleware-serde': 3.0.10 + '@smithy/middleware-stack': 3.0.10 + '@smithy/node-config-provider': 3.1.11 + '@smithy/node-http-handler': 3.3.1 + '@smithy/protocol-http': 4.1.7 + '@smithy/smithy-client': 3.4.5 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.28 + '@smithy/util-defaults-mode-node': 3.0.28 + '@smithy/util-endpoints': 2.1.6 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-retry': 3.0.10 + '@smithy/util-utf8': 3.0.0 + tslib: 2.7.0 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sso@3.621.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.621.0 + '@aws-sdk/middleware-host-header': 3.620.0 + '@aws-sdk/middleware-logger': 3.609.0 + '@aws-sdk/middleware-recursion-detection': 3.620.0 + '@aws-sdk/middleware-user-agent': 3.620.0 + '@aws-sdk/region-config-resolver': 3.614.0 + '@aws-sdk/types': 3.609.0 + '@aws-sdk/util-endpoints': 3.614.0 + '@aws-sdk/util-user-agent-browser': 3.609.0 + '@aws-sdk/util-user-agent-node': 3.614.0 + '@smithy/config-resolver': 3.0.12 + '@smithy/core': 2.5.4 + '@smithy/fetch-http-handler': 3.2.9 + '@smithy/hash-node': 3.0.10 + '@smithy/invalid-dependency': 3.0.10 + '@smithy/middleware-content-length': 3.0.12 + '@smithy/middleware-endpoint': 3.2.4 + '@smithy/middleware-retry': 3.0.28 + '@smithy/middleware-serde': 3.0.10 + '@smithy/middleware-stack': 3.0.10 + '@smithy/node-config-provider': 3.1.11 + '@smithy/node-http-handler': 3.3.1 + '@smithy/protocol-http': 4.1.7 + '@smithy/smithy-client': 3.4.5 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.28 + '@smithy/util-defaults-mode-node': 3.0.28 + '@smithy/util-endpoints': 2.1.6 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-retry': 3.0.10 + '@smithy/util-utf8': 3.0.0 + tslib: 2.7.0 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sts@3.621.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/client-sso-oidc': 3.621.0(@aws-sdk/client-sts@3.621.0) + '@aws-sdk/core': 3.621.0 + '@aws-sdk/credential-provider-node': 3.621.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0))(@aws-sdk/client-sts@3.621.0) + '@aws-sdk/middleware-host-header': 3.620.0 + '@aws-sdk/middleware-logger': 3.609.0 + '@aws-sdk/middleware-recursion-detection': 3.620.0 + '@aws-sdk/middleware-user-agent': 3.620.0 + '@aws-sdk/region-config-resolver': 3.614.0 + '@aws-sdk/types': 3.609.0 + '@aws-sdk/util-endpoints': 3.614.0 + '@aws-sdk/util-user-agent-browser': 3.609.0 + '@aws-sdk/util-user-agent-node': 3.614.0 + '@smithy/config-resolver': 3.0.12 + '@smithy/core': 2.5.4 + '@smithy/fetch-http-handler': 3.2.9 + '@smithy/hash-node': 3.0.10 + '@smithy/invalid-dependency': 3.0.10 + '@smithy/middleware-content-length': 3.0.12 + '@smithy/middleware-endpoint': 3.2.4 + '@smithy/middleware-retry': 3.0.28 + '@smithy/middleware-serde': 3.0.10 + '@smithy/middleware-stack': 3.0.10 + '@smithy/node-config-provider': 3.1.11 + '@smithy/node-http-handler': 3.3.1 + '@smithy/protocol-http': 4.1.7 + '@smithy/smithy-client': 3.4.5 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.28 + '@smithy/util-defaults-mode-node': 3.0.28 + '@smithy/util-endpoints': 2.1.6 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-retry': 3.0.10 + '@smithy/util-utf8': 3.0.0 + tslib: 2.7.0 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/core@3.621.0': + dependencies: + '@smithy/core': 2.5.4 + '@smithy/node-config-provider': 3.1.11 + '@smithy/protocol-http': 4.1.7 + '@smithy/signature-v4': 4.2.3 + '@smithy/smithy-client': 3.4.5 + '@smithy/types': 3.7.1 + '@smithy/util-middleware': 3.0.10 + fast-xml-parser: 4.4.1 + tslib: 2.7.0 + + '@aws-sdk/credential-provider-env@3.620.1': + dependencies: + '@aws-sdk/types': 3.609.0 + '@smithy/property-provider': 3.1.10 + '@smithy/types': 3.7.1 + tslib: 2.7.0 + + '@aws-sdk/credential-provider-http@3.621.0': + dependencies: + '@aws-sdk/types': 3.609.0 + '@smithy/fetch-http-handler': 3.2.9 + '@smithy/node-http-handler': 3.3.1 + '@smithy/property-provider': 3.1.10 + '@smithy/protocol-http': 4.1.7 + '@smithy/smithy-client': 3.4.5 + '@smithy/types': 3.7.1 + '@smithy/util-stream': 3.3.1 + tslib: 2.7.0 + + '@aws-sdk/credential-provider-ini@3.621.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0))(@aws-sdk/client-sts@3.621.0)': + dependencies: + '@aws-sdk/client-sts': 3.621.0 + '@aws-sdk/credential-provider-env': 3.620.1 + '@aws-sdk/credential-provider-http': 3.621.0 + '@aws-sdk/credential-provider-process': 3.620.1 + '@aws-sdk/credential-provider-sso': 3.621.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0)) + '@aws-sdk/credential-provider-web-identity': 3.621.0(@aws-sdk/client-sts@3.621.0) + '@aws-sdk/types': 3.609.0 + '@smithy/credential-provider-imds': 3.2.7 + '@smithy/property-provider': 3.1.10 + '@smithy/shared-ini-file-loader': 3.1.11 + '@smithy/types': 3.7.1 + tslib: 2.7.0 + transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' + - aws-crt + + '@aws-sdk/credential-provider-node@3.621.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0))(@aws-sdk/client-sts@3.621.0)': + dependencies: + '@aws-sdk/credential-provider-env': 3.620.1 + '@aws-sdk/credential-provider-http': 3.621.0 + '@aws-sdk/credential-provider-ini': 3.621.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0))(@aws-sdk/client-sts@3.621.0) + '@aws-sdk/credential-provider-process': 3.620.1 + '@aws-sdk/credential-provider-sso': 3.621.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0)) + '@aws-sdk/credential-provider-web-identity': 3.621.0(@aws-sdk/client-sts@3.621.0) + '@aws-sdk/types': 3.609.0 + '@smithy/credential-provider-imds': 3.2.7 + '@smithy/property-provider': 3.1.10 + '@smithy/shared-ini-file-loader': 3.1.11 + '@smithy/types': 3.7.1 + tslib: 2.7.0 + transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' + - '@aws-sdk/client-sts' + - aws-crt + + '@aws-sdk/credential-provider-process@3.620.1': + dependencies: + '@aws-sdk/types': 3.609.0 + '@smithy/property-provider': 3.1.10 + '@smithy/shared-ini-file-loader': 3.1.11 + '@smithy/types': 3.7.1 + tslib: 2.7.0 + + '@aws-sdk/credential-provider-sso@3.621.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0))': + dependencies: + '@aws-sdk/client-sso': 3.621.0 + '@aws-sdk/token-providers': 3.614.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0)) + '@aws-sdk/types': 3.609.0 + '@smithy/property-provider': 3.1.10 + '@smithy/shared-ini-file-loader': 3.1.11 + '@smithy/types': 3.7.1 + tslib: 2.7.0 + transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' + - aws-crt + + '@aws-sdk/credential-provider-web-identity@3.621.0(@aws-sdk/client-sts@3.621.0)': + dependencies: + '@aws-sdk/client-sts': 3.621.0 + '@aws-sdk/types': 3.609.0 + '@smithy/property-provider': 3.1.10 + '@smithy/types': 3.7.1 + tslib: 2.7.0 + + '@aws-sdk/middleware-host-header@3.620.0': + dependencies: + '@aws-sdk/types': 3.609.0 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 + tslib: 2.7.0 + + '@aws-sdk/middleware-logger@3.609.0': + dependencies: + '@aws-sdk/types': 3.609.0 + '@smithy/types': 3.7.1 + tslib: 2.7.0 + + '@aws-sdk/middleware-recursion-detection@3.620.0': + dependencies: + '@aws-sdk/types': 3.609.0 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 + tslib: 2.7.0 + + '@aws-sdk/middleware-user-agent@3.620.0': + dependencies: + '@aws-sdk/types': 3.609.0 + '@aws-sdk/util-endpoints': 3.614.0 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 + tslib: 2.7.0 + + '@aws-sdk/region-config-resolver@3.614.0': + dependencies: + '@aws-sdk/types': 3.609.0 + '@smithy/node-config-provider': 3.1.11 + '@smithy/types': 3.7.1 + '@smithy/util-config-provider': 3.0.0 + '@smithy/util-middleware': 3.0.10 + tslib: 2.7.0 + + '@aws-sdk/token-providers@3.614.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0))': + dependencies: + '@aws-sdk/client-sso-oidc': 3.621.0(@aws-sdk/client-sts@3.621.0) + '@aws-sdk/types': 3.609.0 + '@smithy/property-provider': 3.1.10 + '@smithy/shared-ini-file-loader': 3.1.11 + '@smithy/types': 3.7.1 + tslib: 2.7.0 + + '@aws-sdk/types@3.387.0': + dependencies: + '@smithy/types': 2.12.0 + tslib: 2.7.0 + + '@aws-sdk/types@3.398.0': + dependencies: + '@smithy/types': 2.12.0 + tslib: 2.7.0 + + '@aws-sdk/types@3.609.0': + dependencies: + '@smithy/types': 3.7.1 + tslib: 2.7.0 + + '@aws-sdk/util-endpoints@3.614.0': + dependencies: + '@aws-sdk/types': 3.609.0 + '@smithy/types': 3.7.1 + '@smithy/util-endpoints': 2.1.6 + tslib: 2.7.0 + + '@aws-sdk/util-locate-window@3.693.0': + dependencies: + tslib: 2.7.0 + + '@aws-sdk/util-user-agent-browser@3.609.0': + dependencies: + '@aws-sdk/types': 3.609.0 + '@smithy/types': 3.7.1 + bowser: 2.11.0 + tslib: 2.7.0 + + '@aws-sdk/util-user-agent-node@3.614.0': + dependencies: + '@aws-sdk/types': 3.609.0 + '@smithy/node-config-provider': 3.1.11 + '@smithy/types': 3.7.1 + tslib: 2.7.0 + + '@babel/code-frame@7.25.7': + dependencies: + '@babel/highlight': 7.25.7 + picocolors: 1.1.0 + + '@babel/compat-data@7.25.7': {} + + '@babel/core@7.25.7': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.7) + '@babel/helpers': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/template': 7.25.7 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 + convert-source-map: 2.0.0 + debug: 4.3.7 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.25.7': + dependencies: + '@babel/types': 7.25.7 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.0.2 + + '@babel/helper-annotate-as-pure@7.25.7': + dependencies: + '@babel/types': 7.25.7 '@babel/helper-builder-binary-assignment-operator-visitor@7.25.7': dependencies: @@ -8455,6 +10141,23 @@ snapshots: dependencies: levn: 0.4.1 + '@floating-ui/core@1.6.8': + dependencies: + '@floating-ui/utils': 0.2.8 + + '@floating-ui/dom@1.6.12': + dependencies: + '@floating-ui/core': 1.6.8 + '@floating-ui/utils': 0.2.8 + + '@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/dom': 1.6.12 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@floating-ui/utils@0.2.8': {} + '@humanwhocodes/module-importer@1.0.1': {} '@humanwhocodes/retry@0.3.1': {} @@ -8798,31 +10501,52 @@ snapshots: webpack: 5.92.1(@swc/core@1.7.26) optional: true + '@radix-ui/number@1.1.0': {} + '@radix-ui/primitive@1.1.0': {} - '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.11)(react@18.3.1)': + '@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.11 + '@types/react-dom': 18.3.0 - '@radix-ui/react-context@1.1.1(@types/react@18.3.11)(react@18.3.1)': + '@radix-ui/react-avatar@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.11 + '@types/react-dom': 18.3.0 - '@radix-ui/react-label@2.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collapsible@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -8830,117 +10554,792 @@ snapshots: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-slot@1.1.0(@types/react@18.3.11)(react@18.3.1)': + '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.11)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.11 + + '@radix-ui/react-context@1.1.0(@types/react@18.3.11)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.11 + + '@radix-ui/react-context@1.1.1(@types/react@18.3.11)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.11 + + '@radix-ui/react-dialog@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: + '@radix-ui/primitive': 1.1.0 '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) + aria-hidden: 1.2.4 react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.6.0(@types/react@18.3.11)(react@18.3.1) optionalDependencies: '@types/react': 18.3.11 + '@types/react-dom': 18.3.0 - '@radix-ui/react-switch@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-direction@1.1.0(@types/react@18.3.11)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.11 + + '@radix-ui/react-dismissable-layer@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.11)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.11 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-dropdown-menu@2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-menu': 2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.11)(react@18.3.1)': + '@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.11)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.11 + + '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.11 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-icons@1.3.2(react@18.3.1)': + dependencies: + react: 18.3.1 + + '@radix-ui/react-id@1.1.0(@types/react@18.3.11)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.11 + + '@radix-ui/react-label@2.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.11 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-menu@2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) + aria-hidden: 1.2.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.6.0(@types/react@18.3.11)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.11 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-popover@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) + aria-hidden: 1.2.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.6.0(@types/react@18.3.11)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.11 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/rect': 1.1.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.11 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-portal@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.11 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-presence@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.11 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.11 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-roving-focus@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.11 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-select@2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/number': 1.1.0 + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + aria-hidden: 1.2.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.6.0(@types/react@18.3.11)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.11 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-separator@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.11 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-slot@1.1.0(@types/react@18.3.11)(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.11 + + '@radix-ui/react-switch@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.11)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.11 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-tabs@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.11 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-toast@1.2.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.11 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-tooltip@1.1.4(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.11 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.11)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.11 + + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.11)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.11 + + '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.11)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.11 + + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.11)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.11 + + '@radix-ui/react-use-previous@1.1.0(@types/react@18.3.11)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.11 + + '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.11)(react@18.3.1)': + dependencies: + '@radix-ui/rect': 1.1.0 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.11 + + '@radix-ui/react-use-size@1.1.0(@types/react@18.3.11)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.11 + + '@radix-ui/react-visually-hidden@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.11 + '@types/react-dom': 18.3.0 + + '@radix-ui/rect@1.1.0': {} + + '@remix-run/router@1.21.0': {} + + '@rollup/rollup-android-arm-eabi@4.24.0': + optional: true + + '@rollup/rollup-android-arm64@4.24.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.24.0': + optional: true + + '@rollup/rollup-darwin-x64@4.24.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.24.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.24.0': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.24.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.24.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.24.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.24.0': + optional: true + + '@sinclair/typebox@0.27.8': {} + + '@sinonjs/commons@3.0.1': + dependencies: + type-detect: 4.0.8 + + '@sinonjs/fake-timers@10.3.0': + dependencies: + '@sinonjs/commons': 3.0.1 + + '@smithy/abort-controller@3.1.8': + dependencies: + '@smithy/types': 3.7.1 + tslib: 2.7.0 + + '@smithy/config-resolver@3.0.12': + dependencies: + '@smithy/node-config-provider': 3.1.11 + '@smithy/types': 3.7.1 + '@smithy/util-config-provider': 3.0.0 + '@smithy/util-middleware': 3.0.10 + tslib: 2.7.0 + + '@smithy/core@2.5.4': + dependencies: + '@smithy/middleware-serde': 3.0.10 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-stream': 3.3.1 + '@smithy/util-utf8': 3.0.0 + tslib: 2.7.0 + + '@smithy/credential-provider-imds@3.2.7': + dependencies: + '@smithy/node-config-provider': 3.1.11 + '@smithy/property-provider': 3.1.10 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 + tslib: 2.7.0 + + '@smithy/eventstream-codec@3.1.9': + dependencies: + '@aws-crypto/crc32': 5.2.0 + '@smithy/types': 3.7.1 + '@smithy/util-hex-encoding': 3.0.0 + tslib: 2.7.0 + + '@smithy/eventstream-serde-browser@3.0.13': + dependencies: + '@smithy/eventstream-serde-universal': 3.0.12 + '@smithy/types': 3.7.1 + tslib: 2.7.0 + + '@smithy/eventstream-serde-config-resolver@3.0.10': + dependencies: + '@smithy/types': 3.7.1 + tslib: 2.7.0 + + '@smithy/eventstream-serde-node@3.0.12': + dependencies: + '@smithy/eventstream-serde-universal': 3.0.12 + '@smithy/types': 3.7.1 + tslib: 2.7.0 + + '@smithy/eventstream-serde-universal@3.0.12': + dependencies: + '@smithy/eventstream-codec': 3.1.9 + '@smithy/types': 3.7.1 + tslib: 2.7.0 + + '@smithy/fetch-http-handler@3.2.9': + dependencies: + '@smithy/protocol-http': 4.1.7 + '@smithy/querystring-builder': 3.0.10 + '@smithy/types': 3.7.1 + '@smithy/util-base64': 3.0.0 + tslib: 2.7.0 + + '@smithy/fetch-http-handler@4.1.1': + dependencies: + '@smithy/protocol-http': 4.1.7 + '@smithy/querystring-builder': 3.0.10 + '@smithy/types': 3.7.1 + '@smithy/util-base64': 3.0.0 + tslib: 2.7.0 + + '@smithy/hash-node@3.0.10': + dependencies: + '@smithy/types': 3.7.1 + '@smithy/util-buffer-from': 3.0.0 + '@smithy/util-utf8': 3.0.0 + tslib: 2.7.0 + + '@smithy/invalid-dependency@3.0.10': + dependencies: + '@smithy/types': 3.7.1 + tslib: 2.7.0 + + '@smithy/is-array-buffer@2.2.0': + dependencies: + tslib: 2.7.0 + + '@smithy/is-array-buffer@3.0.0': + dependencies: + tslib: 2.7.0 + + '@smithy/md5-js@2.0.7': + dependencies: + '@smithy/types': 2.12.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.7.0 + + '@smithy/middleware-content-length@3.0.12': + dependencies: + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 + tslib: 2.7.0 + + '@smithy/middleware-endpoint@3.2.4': + dependencies: + '@smithy/core': 2.5.4 + '@smithy/middleware-serde': 3.0.10 + '@smithy/node-config-provider': 3.1.11 + '@smithy/shared-ini-file-loader': 3.1.11 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 + '@smithy/util-middleware': 3.0.10 + tslib: 2.7.0 + + '@smithy/middleware-retry@3.0.28': + dependencies: + '@smithy/node-config-provider': 3.1.11 + '@smithy/protocol-http': 4.1.7 + '@smithy/service-error-classification': 3.0.10 + '@smithy/smithy-client': 3.4.5 + '@smithy/types': 3.7.1 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-retry': 3.0.10 + tslib: 2.7.0 + uuid: 9.0.1 + + '@smithy/middleware-serde@3.0.10': + dependencies: + '@smithy/types': 3.7.1 + tslib: 2.7.0 + + '@smithy/middleware-stack@3.0.10': + dependencies: + '@smithy/types': 3.7.1 + tslib: 2.7.0 + + '@smithy/node-config-provider@3.1.11': + dependencies: + '@smithy/property-provider': 3.1.10 + '@smithy/shared-ini-file-loader': 3.1.11 + '@smithy/types': 3.7.1 + tslib: 2.7.0 + + '@smithy/node-http-handler@3.3.1': + dependencies: + '@smithy/abort-controller': 3.1.8 + '@smithy/protocol-http': 4.1.7 + '@smithy/querystring-builder': 3.0.10 + '@smithy/types': 3.7.1 + tslib: 2.7.0 + + '@smithy/property-provider@3.1.10': + dependencies: + '@smithy/types': 3.7.1 + tslib: 2.7.0 + + '@smithy/protocol-http@4.1.7': + dependencies: + '@smithy/types': 3.7.1 + tslib: 2.7.0 + + '@smithy/querystring-builder@3.0.10': + dependencies: + '@smithy/types': 3.7.1 + '@smithy/util-uri-escape': 3.0.0 + tslib: 2.7.0 + + '@smithy/querystring-parser@3.0.10': dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 + '@smithy/types': 3.7.1 + tslib: 2.7.0 - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.11)(react@18.3.1)': + '@smithy/service-error-classification@3.0.10': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 + '@smithy/types': 3.7.1 - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.11)(react@18.3.1)': + '@smithy/shared-ini-file-loader@3.1.11': dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 + '@smithy/types': 3.7.1 + tslib: 2.7.0 - '@radix-ui/react-use-previous@1.1.0(@types/react@18.3.11)(react@18.3.1)': + '@smithy/signature-v4@4.2.3': dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 + '@smithy/is-array-buffer': 3.0.0 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 + '@smithy/util-hex-encoding': 3.0.0 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-uri-escape': 3.0.0 + '@smithy/util-utf8': 3.0.0 + tslib: 2.7.0 - '@radix-ui/react-use-size@1.1.0(@types/react@18.3.11)(react@18.3.1)': + '@smithy/smithy-client@3.4.5': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 + '@smithy/core': 2.5.4 + '@smithy/middleware-endpoint': 3.2.4 + '@smithy/middleware-stack': 3.0.10 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 + '@smithy/util-stream': 3.3.1 + tslib: 2.7.0 - '@rollup/rollup-android-arm-eabi@4.24.0': - optional: true + '@smithy/types@2.12.0': + dependencies: + tslib: 2.7.0 - '@rollup/rollup-android-arm64@4.24.0': - optional: true + '@smithy/types@3.7.1': + dependencies: + tslib: 2.7.0 - '@rollup/rollup-darwin-arm64@4.24.0': - optional: true + '@smithy/url-parser@3.0.10': + dependencies: + '@smithy/querystring-parser': 3.0.10 + '@smithy/types': 3.7.1 + tslib: 2.7.0 - '@rollup/rollup-darwin-x64@4.24.0': - optional: true + '@smithy/util-base64@3.0.0': + dependencies: + '@smithy/util-buffer-from': 3.0.0 + '@smithy/util-utf8': 3.0.0 + tslib: 2.7.0 - '@rollup/rollup-linux-arm-gnueabihf@4.24.0': - optional: true + '@smithy/util-body-length-browser@3.0.0': + dependencies: + tslib: 2.7.0 - '@rollup/rollup-linux-arm-musleabihf@4.24.0': - optional: true + '@smithy/util-body-length-node@3.0.0': + dependencies: + tslib: 2.7.0 - '@rollup/rollup-linux-arm64-gnu@4.24.0': - optional: true + '@smithy/util-buffer-from@2.2.0': + dependencies: + '@smithy/is-array-buffer': 2.2.0 + tslib: 2.7.0 - '@rollup/rollup-linux-arm64-musl@4.24.0': - optional: true + '@smithy/util-buffer-from@3.0.0': + dependencies: + '@smithy/is-array-buffer': 3.0.0 + tslib: 2.7.0 - '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': - optional: true + '@smithy/util-config-provider@3.0.0': + dependencies: + tslib: 2.7.0 - '@rollup/rollup-linux-riscv64-gnu@4.24.0': - optional: true + '@smithy/util-defaults-mode-browser@3.0.28': + dependencies: + '@smithy/property-provider': 3.1.10 + '@smithy/smithy-client': 3.4.5 + '@smithy/types': 3.7.1 + bowser: 2.11.0 + tslib: 2.7.0 - '@rollup/rollup-linux-s390x-gnu@4.24.0': - optional: true + '@smithy/util-defaults-mode-node@3.0.28': + dependencies: + '@smithy/config-resolver': 3.0.12 + '@smithy/credential-provider-imds': 3.2.7 + '@smithy/node-config-provider': 3.1.11 + '@smithy/property-provider': 3.1.10 + '@smithy/smithy-client': 3.4.5 + '@smithy/types': 3.7.1 + tslib: 2.7.0 - '@rollup/rollup-linux-x64-gnu@4.24.0': - optional: true + '@smithy/util-endpoints@2.1.6': + dependencies: + '@smithy/node-config-provider': 3.1.11 + '@smithy/types': 3.7.1 + tslib: 2.7.0 - '@rollup/rollup-linux-x64-musl@4.24.0': - optional: true + '@smithy/util-hex-encoding@2.0.0': + dependencies: + tslib: 2.7.0 - '@rollup/rollup-win32-arm64-msvc@4.24.0': - optional: true + '@smithy/util-hex-encoding@3.0.0': + dependencies: + tslib: 2.7.0 - '@rollup/rollup-win32-ia32-msvc@4.24.0': - optional: true + '@smithy/util-middleware@3.0.10': + dependencies: + '@smithy/types': 3.7.1 + tslib: 2.7.0 - '@rollup/rollup-win32-x64-msvc@4.24.0': - optional: true + '@smithy/util-retry@3.0.10': + dependencies: + '@smithy/service-error-classification': 3.0.10 + '@smithy/types': 3.7.1 + tslib: 2.7.0 - '@sinclair/typebox@0.27.8': {} + '@smithy/util-stream@3.3.1': + dependencies: + '@smithy/fetch-http-handler': 4.1.1 + '@smithy/node-http-handler': 3.3.1 + '@smithy/types': 3.7.1 + '@smithy/util-base64': 3.0.0 + '@smithy/util-buffer-from': 3.0.0 + '@smithy/util-hex-encoding': 3.0.0 + '@smithy/util-utf8': 3.0.0 + tslib: 2.7.0 - '@sinonjs/commons@3.0.1': + '@smithy/util-uri-escape@3.0.0': dependencies: - type-detect: 4.0.8 + tslib: 2.7.0 - '@sinonjs/fake-timers@10.3.0': + '@smithy/util-utf8@2.0.0': dependencies: - '@sinonjs/commons': 3.0.1 + '@smithy/util-buffer-from': 2.2.0 + tslib: 2.7.0 + + '@smithy/util-utf8@2.3.0': + dependencies: + '@smithy/util-buffer-from': 2.2.0 + tslib: 2.7.0 + + '@smithy/util-utf8@3.0.0': + dependencies: + '@smithy/util-buffer-from': 3.0.0 + tslib: 2.7.0 + + '@smithy/util-waiter@3.1.9': + dependencies: + '@smithy/abort-controller': 3.1.8 + '@smithy/types': 3.7.1 + tslib: 2.7.0 '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.25.7)': dependencies: @@ -9095,6 +11494,37 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 3.4.13(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@22.7.4)(typescript@5.3.3)) + '@tanstack/eslint-plugin-query@5.61.3(eslint@9.11.1(jiti@1.21.6))(typescript@5.3.3)': + dependencies: + '@typescript-eslint/utils': 8.16.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.3.3) + eslint: 9.11.1(jiti@1.21.6) + transitivePeerDependencies: + - supports-color + - typescript + + '@tanstack/query-core@5.60.6': {} + + '@tanstack/query-devtools@5.61.3': {} + + '@tanstack/react-query-devtools@5.61.3(@tanstack/react-query@5.61.3(react@18.3.1))(react@18.3.1)': + dependencies: + '@tanstack/query-devtools': 5.61.3 + '@tanstack/react-query': 5.61.3(react@18.3.1) + react: 18.3.1 + + '@tanstack/react-query@5.61.3(react@18.3.1)': + dependencies: + '@tanstack/query-core': 5.60.6 + react: 18.3.1 + + '@tanstack/react-table@8.20.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@tanstack/table-core': 8.20.5 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@tanstack/table-core@8.20.5': {} + '@trysound/sax@0.2.0': {} '@tsconfig/node10@1.0.11': {} @@ -9111,6 +11541,8 @@ snapshots: dependencies: '@types/node': 22.7.4 + '@types/aws-lambda@8.10.145': {} + '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.25.7 @@ -9348,6 +11780,8 @@ snapshots: dependencies: source-map: 0.6.1 + '@types/uuid@9.0.8': {} + '@types/webextension-polyfill@0.10.7': {} '@types/webpack-sources@3.2.3': @@ -9431,6 +11865,11 @@ snapshots: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/scope-manager@8.16.0': + dependencies: + '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/visitor-keys': 8.16.0 + '@typescript-eslint/scope-manager@8.8.0': dependencies: '@typescript-eslint/types': 8.8.0 @@ -9462,6 +11901,8 @@ snapshots: '@typescript-eslint/types@6.21.0': {} + '@typescript-eslint/types@8.16.0': {} + '@typescript-eslint/types@8.8.0': {} '@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3)': @@ -9479,6 +11920,21 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@8.16.0(typescript@5.3.3)': + dependencies: + '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/visitor-keys': 8.16.0 + debug: 4.3.7 + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.3.3) + optionalDependencies: + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/typescript-estree@8.8.0(typescript@5.3.3)': dependencies: '@typescript-eslint/types': 8.8.0 @@ -9508,6 +11964,18 @@ snapshots: - supports-color - typescript + '@typescript-eslint/utils@8.16.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.3.3)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@1.21.6)) + '@typescript-eslint/scope-manager': 8.16.0 + '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.3.3) + eslint: 9.11.1(jiti@1.21.6) + optionalDependencies: + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/utils@8.8.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.3.3)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@1.21.6)) @@ -9524,6 +11992,11 @@ snapshots: '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 + '@typescript-eslint/visitor-keys@8.16.0': + dependencies: + '@typescript-eslint/types': 8.16.0 + eslint-visitor-keys: 4.2.0 + '@typescript-eslint/visitor-keys@8.8.0': dependencies: '@typescript-eslint/types': 8.8.0 @@ -9769,6 +12242,10 @@ snapshots: argparse@2.0.1: {} + aria-hidden@1.2.4: + dependencies: + tslib: 2.7.0 + aria-query@5.3.2: {} array-flatten@1.1.1: {} @@ -9811,6 +12288,19 @@ snapshots: dependencies: possible-typed-array-names: 1.0.0 + aws-amplify@6.9.0: + dependencies: + '@aws-amplify/analytics': 7.0.59(@aws-amplify/core@6.6.0) + '@aws-amplify/api': 6.1.4(@aws-amplify/core@6.6.0) + '@aws-amplify/auth': 6.7.0(@aws-amplify/core@6.6.0) + '@aws-amplify/core': 6.6.0 + '@aws-amplify/datastore': 5.0.61(@aws-amplify/core@6.6.0) + '@aws-amplify/notifications': 2.0.59(@aws-amplify/core@6.6.0) + '@aws-amplify/storage': 6.7.0(@aws-amplify/core@6.6.0) + tslib: 2.7.0 + transitivePeerDependencies: + - aws-crt + axios@1.7.7: dependencies: follow-redirects: 1.15.9 @@ -9968,6 +12458,8 @@ snapshots: boolbase@1.0.0: {} + bowser@2.11.0: {} + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -10047,6 +12539,12 @@ snapshots: buffer-xor@1.0.3: {} + buffer@4.9.2: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + isarray: 1.0.0 + buffer@6.0.3: dependencies: base64-js: 1.5.1 @@ -10169,6 +12667,18 @@ snapshots: clsx@2.1.1: {} + cmdk@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@radix-ui/react-dialog': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + use-sync-external-store: 1.2.2(react@18.3.1) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + co@4.6.0: {} code-red@1.0.4: @@ -10304,6 +12814,8 @@ snapshots: optionalDependencies: typescript: 5.3.3 + crc-32@1.2.2: {} + create-ecdh@4.0.4: dependencies: bn.js: 4.12.0 @@ -10527,6 +13039,8 @@ snapshots: detect-newline@3.1.0: {} + detect-node-es@1.1.0: {} + detect-node@2.1.0: {} didyoumean@1.2.2: {} @@ -10726,6 +13240,8 @@ snapshots: eslint-visitor-keys@4.1.0: {} + eslint-visitor-keys@4.2.0: {} + eslint@9.11.1(jiti@1.21.6): dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@1.21.6)) @@ -11036,6 +13552,14 @@ snapshots: fast-uri@3.0.2: {} + fast-xml-parser@4.4.1: + dependencies: + strnum: 1.0.5 + + fast-xml-parser@4.5.0: + dependencies: + strnum: 1.0.5 + fastest-levenshtein@1.0.16: {} fastparse@1.1.2: {} @@ -11205,6 +13729,8 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.2 + get-nonce@1.0.1: {} + get-package-type@0.1.0: {} get-stream@6.0.1: {} @@ -11283,6 +13809,8 @@ snapshots: graphemer@1.4.0: {} + graphql@15.8.0: {} + handle-thing@2.0.1: {} has-flag@3.0.0: {} @@ -11411,6 +13939,8 @@ snapshots: dependencies: ms: 2.1.3 + humps@2.0.1: {} + hyperdyperid@1.2.0: {} iconv-lite@0.4.24: @@ -11426,6 +13956,8 @@ snapshots: dependencies: postcss: 8.4.47 + idb@5.0.6: {} + ieee754@1.2.1: {} ignore@5.3.2: {} @@ -11433,6 +13965,8 @@ snapshots: image-size@0.5.5: optional: true + immer@9.0.6: {} + immutable@4.3.7: {} import-cwd@2.1.0: @@ -11476,6 +14010,15 @@ snapshots: ini@4.1.3: {} + input-otp@1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + invariant@2.2.4: + dependencies: + loose-envify: 1.4.0 + ipaddr.js@1.9.1: {} ipaddr.js@2.2.0: {} @@ -12045,6 +14588,8 @@ snapshots: joycon@3.1.1: {} + js-cookie@3.0.5: {} + js-tokens@4.0.0: {} js-yaml@3.14.1: @@ -12186,6 +14731,8 @@ snapshots: lodash.truncate@4.4.2: {} + lodash@4.17.21: {} + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 @@ -12205,6 +14752,10 @@ snapshots: dependencies: yallist: 3.1.1 + lucide-react@0.454.0(react@18.3.1): + dependencies: + react: 18.3.1 + magic-string@0.30.11: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -13080,6 +15631,10 @@ snapshots: react: 18.3.1 scheduler: 0.23.2 + react-hook-form@7.53.2(react@18.3.1): + dependencies: + react: 18.3.1 + react-is@16.13.1: {} react-is@18.3.1: {} @@ -13093,6 +15648,25 @@ snapshots: react-refresh@0.14.2: optional: true + react-remove-scroll-bar@2.3.6(@types/react@18.3.11)(react@18.3.1): + dependencies: + react: 18.3.1 + react-style-singleton: 2.2.1(@types/react@18.3.11)(react@18.3.1) + tslib: 2.7.0 + optionalDependencies: + '@types/react': 18.3.11 + + react-remove-scroll@2.6.0(@types/react@18.3.11)(react@18.3.1): + dependencies: + react: 18.3.1 + react-remove-scroll-bar: 2.3.6(@types/react@18.3.11)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.11)(react@18.3.1) + tslib: 2.7.0 + use-callback-ref: 1.3.2(@types/react@18.3.11)(react@18.3.1) + use-sidecar: 1.1.2(@types/react@18.3.11)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.11 + react-router-dom@5.3.4(react@18.3.1): dependencies: '@babel/runtime': 7.25.7 @@ -13104,6 +15678,13 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 + react-router-dom@6.28.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@remix-run/router': 1.21.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-router: 6.28.0(react@18.3.1) + react-router@5.3.4(react@18.3.1): dependencies: '@babel/runtime': 7.25.7 @@ -13117,6 +15698,27 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 + react-router@6.28.0(react@18.3.1): + dependencies: + '@remix-run/router': 1.21.0 + react: 18.3.1 + + react-shadow@20.5.0(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + humps: 2.0.1 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + react-style-singleton@2.2.1(@types/react@18.3.11)(react@18.3.1): + dependencies: + get-nonce: 1.0.1 + invariant: 2.2.4 + react: 18.3.1 + tslib: 2.7.0 + optionalDependencies: + '@types/react': 18.3.11 + react@18.3.1: dependencies: loose-envify: 1.4.0 @@ -13274,6 +15876,10 @@ snapshots: dependencies: queue-microtask: 1.2.3 + rxjs@7.8.1: + dependencies: + tslib: 2.7.0 + safe-buffer@5.1.2: {} safe-buffer@5.2.1: {} @@ -13569,6 +16175,8 @@ snapshots: strip-json-comments@3.1.1: {} + strnum@1.0.5: {} + style-loader@3.3.4(webpack@5.92.1(@swc/core@1.7.26)): dependencies: webpack: 5.92.1(@swc/core@1.7.26) @@ -14068,6 +16676,8 @@ snapshots: typescript@5.3.3: {} + ulid@2.3.0: {} + undici-types@5.26.5: {} undici-types@6.19.8: {} @@ -14109,6 +16719,25 @@ snapshots: punycode: 1.4.1 qs: 6.13.0 + use-callback-ref@1.3.2(@types/react@18.3.11)(react@18.3.1): + dependencies: + react: 18.3.1 + tslib: 2.7.0 + optionalDependencies: + '@types/react': 18.3.11 + + use-sidecar@1.1.2(@types/react@18.3.11)(react@18.3.1): + dependencies: + detect-node-es: 1.1.0 + react: 18.3.1 + tslib: 2.7.0 + optionalDependencies: + '@types/react': 18.3.11 + + use-sync-external-store@1.2.2(react@18.3.1): + dependencies: + react: 18.3.1 + userhome@1.0.0: {} util-deprecate@1.0.2: {} @@ -14125,6 +16754,8 @@ snapshots: uuid@8.3.2: {} + uuid@9.0.1: {} + v8-compile-cache-lib@3.0.1: {} v8-to-istanbul@9.3.0: @@ -14137,6 +16768,15 @@ snapshots: vary@1.1.2: {} + vaul@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@radix-ui/react-dialog': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + vm-browserify@1.1.2: {} vue-loader@17.4.2(webpack@5.92.1(@swc/core@1.7.26)): diff --git a/programs/develop/webpack/plugin-css/common-style-loaders.ts b/programs/develop/webpack/plugin-css/common-style-loaders.ts index e972aa96..471c4c2e 100644 --- a/programs/develop/webpack/plugin-css/common-style-loaders.ts +++ b/programs/develop/webpack/plugin-css/common-style-loaders.ts @@ -45,6 +45,11 @@ function whereToInsertStyleTag(element: HTMLElement) { if (window.__EXTENSION_SHADOW_ROOT__) { insertElement() observer.disconnect() // Stop observing once the shadow root is found + } else { + // Disconnect the observer if the shadow root is not found after 5 seconds + setTimeout(() => { + observer.disconnect() + }, 5000) } }) diff --git a/programs/develop/webpack/plugin-css/css-tools/less.ts b/programs/develop/webpack/plugin-css/css-tools/less.ts index 93c538e7..803d7bb5 100644 --- a/programs/develop/webpack/plugin-css/css-tools/less.ts +++ b/programs/develop/webpack/plugin-css/css-tools/less.ts @@ -59,7 +59,7 @@ export async function maybeUseLess( test: /\.less$/, oneOf: [ { - resourceQuery: /is_content_css_import=true/, + resourceQuery: /inline_style/, use: await commonStyleLoaders(projectPath, { loader: 'less-loader', mode, diff --git a/programs/develop/webpack/plugin-css/css-tools/sass.ts b/programs/develop/webpack/plugin-css/css-tools/sass.ts index 16f26b45..3f5bd02c 100644 --- a/programs/develop/webpack/plugin-css/css-tools/sass.ts +++ b/programs/develop/webpack/plugin-css/css-tools/sass.ts @@ -70,7 +70,7 @@ export async function maybeUseSass( exclude: /\.module\.(s(a|c)ss)$/, oneOf: [ { - resourceQuery: /is_content_css_import=true/, + resourceQuery: /inline_style/, use: await commonStyleLoaders(projectPath, { loader: 'sass-loader', mode, @@ -90,7 +90,7 @@ export async function maybeUseSass( test: /\.module\.(s(a|c)ss)$/, oneOf: [ { - resourceQuery: /is_content_css_import=true/, + resourceQuery: /inline_style/, use: await commonStyleLoaders(projectPath, { loader: 'sass-loader', mode, diff --git a/programs/develop/webpack/plugin-css/index.ts b/programs/develop/webpack/plugin-css/index.ts index a738fb02..b4be0a62 100644 --- a/programs/develop/webpack/plugin-css/index.ts +++ b/programs/develop/webpack/plugin-css/index.ts @@ -36,6 +36,13 @@ export class CssPlugin { test: /\.css$/, exclude: /\.module\.css$/, oneOf: [ + { + resourceQuery: /inline_style/, + use: await commonStyleLoaders(projectPath, { + mode: mode as 'development' | 'production', + useMiniCssExtractPlugin: false + }) + }, { use: await commonStyleLoaders(projectPath, { mode: mode as 'development' | 'production', @@ -47,6 +54,13 @@ export class CssPlugin { { test: /\.module\.css$/, oneOf: [ + { + resourceQuery: /inline_style/, + use: await commonStyleLoaders(projectPath, { + mode: mode as 'development' | 'production', + useMiniCssExtractPlugin: false + }) + }, { use: await commonStyleLoaders(projectPath, { mode: mode as 'development' | 'production', From 851a519c1584597e40015a6d8f7a56f61cd60f75 Mon Sep 17 00:00:00 2001 From: Cezar Augusto Date: Mon, 25 Nov 2024 21:31:49 -0300 Subject: [PATCH 6/6] Revert "Update all content-* templates" This reverts commit e2e8601ef40e86d9ef44b2baa8b022fb9d294db2. --- .../content-css-modules/content/scripts.js | 50 ++++++----------- .../content-css-modules/content/styles.css | 3 -- examples/content-env/content/scripts.ts | 53 +++++++----------- examples/content-env/content/styles.css | 3 -- examples/content-esm/content/scripts.mjs | 20 +------ examples/content-esm/content/styles.css | 3 -- .../content/scripts.tsx | 28 ++-------- .../content/styles.css | 2 +- .../content-extension-config/manifest.json | 4 +- .../content-less-modules/content/scripts.js | 52 ++++++------------ .../content-less-modules/content/styles.less | 3 -- examples/content-less/content/scripts.js | 52 ++++++------------ examples/content-less/content/styles.less | 3 -- .../content-main-world/content/scripts.js | 54 ++++++------------- .../content-main-world/content/styles.css | 3 -- examples/content-preact/content/scripts.tsx | 17 +----- examples/content-preact/content/styles.css | 2 +- .../content-react-svgr/content/scripts.tsx | 20 ++----- .../content-react-svgr/content/styles.css | 2 +- examples/content-react/content/scripts.tsx | 20 ++----- examples/content-react/content/styles.css | 2 +- examples/content-react/manifest.json | 2 +- .../content-sass-modules/content/scripts.js | 52 ++++++------------ .../content-sass-modules/content/styles.scss | 3 -- examples/content-sass/content/scripts.js | 51 ++++++------------ examples/content-sass/content/styles.scss | 3 -- examples/content-tailwind/content/scripts.js | 24 +-------- examples/content-tailwind/content/styles.css | 2 +- .../content-typescript/content/scripts.ts | 53 ++++++------------ .../content-typescript/content/styles.css | 3 -- examples/content-vue/content/scripts.ts | 21 +------- examples/content-vue/content/styles.css | 2 +- examples/content/content/scripts.js | 51 ++++++------------ examples/content/content/styles.css | 3 -- programs/cli/types/index.d.ts | 7 +-- programs/develop/webpack/lib/utils.ts | 2 +- .../develop/webpack/plugin-compilation/env.ts | 8 +-- 37 files changed, 184 insertions(+), 499 deletions(-) diff --git a/examples/content-css-modules/content/scripts.js b/examples/content-css-modules/content/scripts.js index aa512087..de85a174 100644 --- a/examples/content-css-modules/content/scripts.js +++ b/examples/content-css-modules/content/scripts.js @@ -4,38 +4,20 @@ import logo from '../images/logo.png' console.log('hello from content_scripts') -setTimeout(initial, 1000) - -function initial() { - const rootDiv = document.createElement('div') - rootDiv.id = 'extension-root' - document.body.appendChild(rootDiv) - - // Injecting content_scripts inside a shadow dom - // prevents conflicts with the host page's styles. - // This way, styles from the extension won't leak into the host page. - const shadowRoot = rootDiv.attachShadow({mode: 'open'}) - - if (process.env.EXTENSION_MODE === 'development') { - // Use the shadow root as the root element to inject styles into. - window.__EXTENSION_SHADOW_ROOT__ = shadowRoot - } - - shadowRoot.innerHTML = ` -
- -

- Welcome to your CSS Modules Extension -

-

- Learn more about creating cross-browser extensions at - https://extension.js.org - -

-
+document.body.innerHTML += ` +
+ +

+ Welcome to your CSS Modules Extension +

+

+ Learn more about creating cross-browser extensions at + https://extension.js.org + +

+
` -} diff --git a/examples/content-css-modules/content/styles.css b/examples/content-css-modules/content/styles.css index 9147e30f..14a840f9 100644 --- a/examples/content-css-modules/content/styles.css +++ b/examples/content-css-modules/content/styles.css @@ -20,17 +20,14 @@ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; font-weight: 700; - margin: 0; } .content_description { font-size: small; - margin: 0; } .content_description a { text-decoration: none; border-bottom: 2px solid #c9c9c9; color: #e5e7eb; - margin: 0; } diff --git a/examples/content-env/content/scripts.ts b/examples/content-env/content/scripts.ts index 5f2c3cd7..7198fab9 100644 --- a/examples/content-env/content/scripts.ts +++ b/examples/content-env/content/scripts.ts @@ -6,39 +6,22 @@ console.log( process.env.EXTENSION_PUBLIC_DESCRIPTION_TEXT ) -setTimeout(initial, 1000) - -function initial() { - const rootDiv = document.createElement('div') - rootDiv.id = 'extension-root' - document.body.appendChild(rootDiv) - - // Injecting content_scripts inside a shadow dom - // prevents conflicts with the host page's styles. - // This way, styles from the extension won't leak into the host page. - const shadowRoot = rootDiv.attachShadow({mode: 'open'}) - - if (process.env.EXTENSION_MODE === 'development') { - // Use the shadow root as the root element to inject styles into. - window.__EXTENSION_SHADOW_ROOT__ = shadowRoot - } - - shadowRoot.innerHTML = ` -
- -

${process.env.EXTENSION_PUBLIC_DESCRIPTION_TEXT}

-

- Welcome to your .env Extension -

-

- Learn more about creating cross-browser extensions at - https://extension.js.org - -

-
+// Check if the content has already been added +document.body.innerHTML += ` +
+ +

${process.env.EXTENSION_PUBLIC_DESCRIPTION_TEXT}

+

+ Welcome to your .env Extension +

+

+ Learn more about creating cross-browser extensions at + https://extension.js.org + +

+
` -} diff --git a/examples/content-env/content/styles.css b/examples/content-env/content/styles.css index 1f69e11c..2049a65c 100644 --- a/examples/content-env/content/styles.css +++ b/examples/content-env/content/styles.css @@ -24,17 +24,14 @@ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; font-weight: 700; - margin: 0; } .content_description { font-size: small; - margin: 0; } .content_description a { text-decoration: none; border-bottom: 2px solid #c9c9c9; color: #e5e7eb; - margin: 0; } diff --git a/examples/content-esm/content/scripts.mjs b/examples/content-esm/content/scripts.mjs index 1e63ddf4..180375eb 100644 --- a/examples/content-esm/content/scripts.mjs +++ b/examples/content-esm/content/scripts.mjs @@ -3,22 +3,4 @@ import './styles.css' console.log('hello from content_scripts') -setTimeout(initial, 1000) - -function initial() { - const rootDiv = document.createElement('div') - rootDiv.id = 'extension-root' - document.body.appendChild(rootDiv) - - // Injecting content_scripts inside a shadow dom - // prevents conflicts with the host page's styles. - // This way, styles from the extension won't leak into the host page. - const shadowRoot = rootDiv.attachShadow({mode: 'open'}) - - if (process.env.EXTENSION_MODE === 'development') { - // Use the shadow root as the root element to inject styles into. - window.__EXTENSION_SHADOW_ROOT__ = shadowRoot - } - - shadowRoot.innerHTML = contentComponent -} +document.body.innerHTML += contentComponent diff --git a/examples/content-esm/content/styles.css b/examples/content-esm/content/styles.css index 1f69e11c..2049a65c 100644 --- a/examples/content-esm/content/styles.css +++ b/examples/content-esm/content/styles.css @@ -24,17 +24,14 @@ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; font-weight: 700; - margin: 0; } .content_description { font-size: small; - margin: 0; } .content_description a { text-decoration: none; border-bottom: 2px solid #c9c9c9; color: #e5e7eb; - margin: 0; } diff --git a/examples/content-extension-config/content/scripts.tsx b/examples/content-extension-config/content/scripts.tsx index f8766048..89050dc3 100644 --- a/examples/content-extension-config/content/scripts.tsx +++ b/examples/content-extension-config/content/scripts.tsx @@ -10,28 +10,8 @@ function initial() { rootDiv.id = 'extension-root' document.body.appendChild(rootDiv) - // Injecting content_scripts inside a shadow dom - // prevents conflicts with the host page's styles. - // This way, styles from the extension won't leak into the host page. - const shadowRoot = rootDiv.attachShadow({mode: 'open'}) - - if (process.env.EXTENSION_MODE === 'development') { - // Use the shadow root as the root element to inject styles into. - window.__EXTENSION_SHADOW_ROOT__ = shadowRoot - } - - const shadowStyle = document.createElement('style') - shadowStyle.textContent = ` - :host { - all: initial; /* Reset all styles */ - } - ` - shadowRoot.appendChild(shadowStyle) - - const root = ReactDOM.createRoot(shadowRoot) - root.render( -
- -
- ) + // Use `createRoot` to create a root, then render the component + // Note that `createRoot` takes the container DOM node, not the React element + const root = ReactDOM.createRoot(rootDiv) + root.render() } diff --git a/examples/content-extension-config/content/styles.css b/examples/content-extension-config/content/styles.css index c0fc3552..dc79ebb5 100644 --- a/examples/content-extension-config/content/styles.css +++ b/examples/content-extension-config/content/styles.css @@ -2,7 +2,7 @@ @tailwind components; @tailwind utilities; -.content_script { +#extension-root { position: fixed; bottom: 0; right: 0; diff --git a/examples/content-extension-config/manifest.json b/examples/content-extension-config/manifest.json index 6c0b80cc..5086eab4 100644 --- a/examples/content-extension-config/manifest.json +++ b/examples/content-extension-config/manifest.json @@ -10,9 +10,7 @@ }, "content_scripts": [ { - "matches": [ - "" - ], + "matches": ["https://extension.js.org/*"], "js": ["./content/scripts.tsx"] } ], diff --git a/examples/content-less-modules/content/scripts.js b/examples/content-less-modules/content/scripts.js index 76f5a6e6..5f264c50 100644 --- a/examples/content-less-modules/content/scripts.js +++ b/examples/content-less-modules/content/scripts.js @@ -4,38 +4,20 @@ import logo from '../images/logo.svg' console.log('hello from content_scripts') -setTimeout(initial, 1000) - -function initial() { - const rootDiv = document.createElement('div') - rootDiv.id = 'extension-root' - document.body.appendChild(rootDiv) - - // Injecting content_scripts inside a shadow dom - // prevents conflicts with the host page's styles. - // This way, styles from the extension won't leak into the host page. - const shadowRoot = rootDiv.attachShadow({mode: 'open'}) - - if (process.env.EXTENSION_MODE === 'development') { - // Use the shadow root as the root element to inject styles into. - window.__EXTENSION_SHADOW_ROOT__ = shadowRoot - } - - shadowRoot.innerHTML = ` -
- -

- Welcome to your LESS Modules Extension -

-

- Learn more about creating cross-browser extensions at - https://extension.js.org - -

-
- ` -} +document.body.innerHTML += ` +
+ +

+ Welcome to your LESS Modules Extension +

+

+ Learn more about creating cross-browser extensions at + https://extension.js.org + +

+
+` diff --git a/examples/content-less-modules/content/styles.less b/examples/content-less-modules/content/styles.less index 35586168..d1548afe 100644 --- a/examples/content-less-modules/content/styles.less +++ b/examples/content-less-modules/content/styles.less @@ -24,17 +24,14 @@ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; font-weight: 700; - margin: 0; } .content_description { font-size: small; - margin: 0; } .content_description a { text-decoration: none; border-bottom: 2px solid #c9c9c9; color: #e5e7eb; - margin: 0; } \ No newline at end of file diff --git a/examples/content-less/content/scripts.js b/examples/content-less/content/scripts.js index 90782059..5adca586 100644 --- a/examples/content-less/content/scripts.js +++ b/examples/content-less/content/scripts.js @@ -3,38 +3,20 @@ import logo from '../images/logo.svg' console.log('hello from content_scripts') -setTimeout(initial, 1000) - -function initial() { - const rootDiv = document.createElement('div') - rootDiv.id = 'extension-root' - document.body.appendChild(rootDiv) - - // Injecting content_scripts inside a shadow dom - // prevents conflicts with the host page's styles. - // This way, styles from the extension won't leak into the host page. - const shadowRoot = rootDiv.attachShadow({mode: 'open'}) - - if (process.env.EXTENSION_MODE === 'development') { - // Use the shadow root as the root element to inject styles into. - window.__EXTENSION_SHADOW_ROOT__ = shadowRoot - } - - shadowRoot.innerHTML = ` -
- -

- Welcome to your LESS Extension -

-

- Learn more about creating cross-browser extensions at - https://extension.js.org - -

-
- ` -} +document.body.innerHTML += ` +
+ +

+ Welcome to your LESS Extension +

+

+ Learn more about creating cross-browser extensions at + https://extension.js.org + +

+
+` diff --git a/examples/content-less/content/styles.less b/examples/content-less/content/styles.less index 35586168..d1548afe 100644 --- a/examples/content-less/content/styles.less +++ b/examples/content-less/content/styles.less @@ -24,17 +24,14 @@ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; font-weight: 700; - margin: 0; } .content_description { font-size: small; - margin: 0; } .content_description a { text-decoration: none; border-bottom: 2px solid #c9c9c9; color: #e5e7eb; - margin: 0; } \ No newline at end of file diff --git a/examples/content-main-world/content/scripts.js b/examples/content-main-world/content/scripts.js index 9c30800a..da28aa76 100644 --- a/examples/content-main-world/content/scripts.js +++ b/examples/content-main-world/content/scripts.js @@ -1,40 +1,20 @@ import './styles.css' import logo from '../images/extension.svg' -console.log('hello from content_scripts') - -setTimeout(initial, 1000) - -function initial() { - const rootDiv = document.createElement('div') - rootDiv.id = 'extension-root' - document.body.appendChild(rootDiv) - - // Injecting content_scripts inside a shadow dom - // prevents conflicts with the host page's styles. - // This way, styles from the extension won't leak into the host page. - const shadowRoot = rootDiv.attachShadow({mode: 'open'}) - - if (process.env.EXTENSION_MODE === 'development') { - // Use the shadow root as the root element to inject styles into. - window.__EXTENSION_SHADOW_ROOT__ = shadowRoot - } - - shadowRoot.innerHTML = ` -
- -

- Main World -

-

- Learn more about creating cross-browser extensions at - https://extension.js.org - -

-
- ` -} +document.body.innerHTML += ` +
+ +

+ Main World +

+

+ Learn more about creating cross-browser extensions at + https://extension.js.org + +

+
+` diff --git a/examples/content-main-world/content/styles.css b/examples/content-main-world/content/styles.css index 1f69e11c..2049a65c 100644 --- a/examples/content-main-world/content/styles.css +++ b/examples/content-main-world/content/styles.css @@ -24,17 +24,14 @@ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; font-weight: 700; - margin: 0; } .content_description { font-size: small; - margin: 0; } .content_description a { text-decoration: none; border-bottom: 2px solid #c9c9c9; color: #e5e7eb; - margin: 0; } diff --git a/examples/content-preact/content/scripts.tsx b/examples/content-preact/content/scripts.tsx index 5050eb75..bed0b743 100644 --- a/examples/content-preact/content/scripts.tsx +++ b/examples/content-preact/content/scripts.tsx @@ -10,20 +10,5 @@ function initial() { rootDiv.id = 'extension-root' document.body.appendChild(rootDiv) - // Injecting content_scripts inside a shadow dom - // prevents conflicts with the host page's styles. - // This way, styles from the extension won't leak into the host page. - const shadowRoot = rootDiv.attachShadow({mode: 'open'}) - - if (process.env.EXTENSION_MODE === 'development') { - // Use the shadow root as the root element to inject styles into. - window.__EXTENSION_SHADOW_ROOT__ = shadowRoot - } - - render( -
- -
, - shadowRoot - ) + render(, rootDiv) } diff --git a/examples/content-preact/content/styles.css b/examples/content-preact/content/styles.css index c0fc3552..dc79ebb5 100644 --- a/examples/content-preact/content/styles.css +++ b/examples/content-preact/content/styles.css @@ -2,7 +2,7 @@ @tailwind components; @tailwind utilities; -.content_script { +#extension-root { position: fixed; bottom: 0; right: 0; diff --git a/examples/content-react-svgr/content/scripts.tsx b/examples/content-react-svgr/content/scripts.tsx index 928a576c..89050dc3 100644 --- a/examples/content-react-svgr/content/scripts.tsx +++ b/examples/content-react-svgr/content/scripts.tsx @@ -10,20 +10,8 @@ function initial() { rootDiv.id = 'extension-root' document.body.appendChild(rootDiv) - // Injecting content_scripts inside a shadow dom - // prevents conflicts with the host page's styles. - // This way, styles from the extension won't leak into the host page. - const shadowRoot = rootDiv.attachShadow({mode: 'open'}) - - if (process.env.EXTENSION_MODE === 'development') { - // Use the shadow root as the root element to inject styles into. - window.__EXTENSION_SHADOW_ROOT__ = shadowRoot - } - - const root = ReactDOM.createRoot(shadowRoot) - root.render( -
- -
- ) + // Use `createRoot` to create a root, then render the component + // Note that `createRoot` takes the container DOM node, not the React element + const root = ReactDOM.createRoot(rootDiv) + root.render() } diff --git a/examples/content-react-svgr/content/styles.css b/examples/content-react-svgr/content/styles.css index c0fc3552..dc79ebb5 100644 --- a/examples/content-react-svgr/content/styles.css +++ b/examples/content-react-svgr/content/styles.css @@ -2,7 +2,7 @@ @tailwind components; @tailwind utilities; -.content_script { +#extension-root { position: fixed; bottom: 0; right: 0; diff --git a/examples/content-react/content/scripts.tsx b/examples/content-react/content/scripts.tsx index aa0e8488..89050dc3 100644 --- a/examples/content-react/content/scripts.tsx +++ b/examples/content-react/content/scripts.tsx @@ -1,6 +1,6 @@ import ReactDOM from 'react-dom/client' import ContentApp from './ContentApp' -import './styles.css?inline_style' +import './styles.css' setTimeout(initial, 1000) @@ -10,18 +10,8 @@ function initial() { rootDiv.id = 'extension-root' document.body.appendChild(rootDiv) - // Injecting content_scripts inside a shadow dom - // prevents conflicts with the host page's styles. - // This way, styles from the extension won't leak into the host page. - const shadowRoot = rootDiv.attachShadow({mode: 'open'}) - - // Use the shadow root as the root element to inject styles into. - window.__EXTENSION_SHADOW_ROOT__ = shadowRoot - - const root = ReactDOM.createRoot(shadowRoot) - root.render( -
- -
- ) + // Use `createRoot` to create a root, then render the component + // Note that `createRoot` takes the container DOM node, not the React element + const root = ReactDOM.createRoot(rootDiv) + root.render() } diff --git a/examples/content-react/content/styles.css b/examples/content-react/content/styles.css index c0fc3552..dc79ebb5 100644 --- a/examples/content-react/content/styles.css +++ b/examples/content-react/content/styles.css @@ -2,7 +2,7 @@ @tailwind components; @tailwind utilities; -.content_script { +#extension-root { position: fixed; bottom: 0; right: 0; diff --git a/examples/content-react/manifest.json b/examples/content-react/manifest.json index 56446dbb..e4b42e7f 100644 --- a/examples/content-react/manifest.json +++ b/examples/content-react/manifest.json @@ -13,7 +13,7 @@ }, "content_scripts": [ { - "matches": [""], + "matches": ["https://extension.js.org/*"], "js": ["./content/scripts.tsx"] } ] diff --git a/examples/content-sass-modules/content/scripts.js b/examples/content-sass-modules/content/scripts.js index 0cbaf412..1c9f6a5c 100644 --- a/examples/content-sass-modules/content/scripts.js +++ b/examples/content-sass-modules/content/scripts.js @@ -4,38 +4,20 @@ import logo from '../images/logo.svg' console.log('hello from content_scripts') -setTimeout(initial, 1000) - -function initial() { - const rootDiv = document.createElement('div') - rootDiv.id = 'extension-root' - document.body.appendChild(rootDiv) - - // Injecting content_scripts inside a shadow dom - // prevents conflicts with the host page's styles. - // This way, styles from the extension won't leak into the host page. - const shadowRoot = rootDiv.attachShadow({mode: 'open'}) - - if (process.env.EXTENSION_MODE === 'development') { - // Use the shadow root as the root element to inject styles into. - window.__EXTENSION_SHADOW_ROOT__ = shadowRoot - } - - shadowRoot.innerHTML = ` -
- -

- Welcome to your Sass Modules Extension -

-

- Learn more about creating cross-browser extensions at - https://extension.js.org - -

-
- ` -} +document.body.innerHTML += ` +
+ +

+ Welcome to your Sass Modules Extension +

+

+ Learn more about creating cross-browser extensions at + https://extension.js.org + +

+
+` diff --git a/examples/content-sass-modules/content/styles.scss b/examples/content-sass-modules/content/styles.scss index 35586168..d1548afe 100644 --- a/examples/content-sass-modules/content/styles.scss +++ b/examples/content-sass-modules/content/styles.scss @@ -24,17 +24,14 @@ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; font-weight: 700; - margin: 0; } .content_description { font-size: small; - margin: 0; } .content_description a { text-decoration: none; border-bottom: 2px solid #c9c9c9; color: #e5e7eb; - margin: 0; } \ No newline at end of file diff --git a/examples/content-sass/content/scripts.js b/examples/content-sass/content/scripts.js index 0855f9f0..6c6f8a75 100644 --- a/examples/content-sass/content/scripts.js +++ b/examples/content-sass/content/scripts.js @@ -3,38 +3,21 @@ import logo from '../images/logo.svg' console.log('hello from content_scripts') -setTimeout(initial, 1000) - -function initial() { - const rootDiv = document.createElement('div') - rootDiv.id = 'extension-root' - document.body.appendChild(rootDiv) - - // Injecting content_scripts inside a shadow dom - // prevents conflicts with the host page's styles. - // This way, styles from the extension won't leak into the host page. - const shadowRoot = rootDiv.attachShadow({mode: 'open'}) - - if (process.env.EXTENSION_MODE === 'development') { - // Use the shadow root as the root element to inject styles into. - window.__EXTENSION_SHADOW_ROOT__ = shadowRoot - } - - shadowRoot.innerHTML = ` -
- -

- Welcome to your Sass Extension -

-

- Learn more about creating cross-browser extensions at - https://extension.js.org - -

-
+// Check if the content has already been added +document.body.innerHTML += ` +
+ +

+ Welcome to your Sass Extension +

+

+ Learn more about creating cross-browser extensions at + https://extension.js.org + +

+
` -} diff --git a/examples/content-sass/content/styles.scss b/examples/content-sass/content/styles.scss index 35586168..d1548afe 100644 --- a/examples/content-sass/content/styles.scss +++ b/examples/content-sass/content/styles.scss @@ -24,17 +24,14 @@ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; font-weight: 700; - margin: 0; } .content_description { font-size: small; - margin: 0; } .content_description a { text-decoration: none; border-bottom: 2px solid #c9c9c9; color: #e5e7eb; - margin: 0; } \ No newline at end of file diff --git a/examples/content-tailwind/content/scripts.js b/examples/content-tailwind/content/scripts.js index d518e47e..f833746f 100644 --- a/examples/content-tailwind/content/scripts.js +++ b/examples/content-tailwind/content/scripts.js @@ -3,26 +3,4 @@ import {getContentHtml} from './content' console.log('hello from content_scripts') -setTimeout(initial, 1000) - -function initial() { - const rootDiv = document.createElement('div') - rootDiv.id = 'extension-root' - document.body.appendChild(rootDiv) - - // Injecting content_scripts inside a shadow dom - // prevents conflicts with the host page's styles. - // This way, styles from the extension won't leak into the host page. - const shadowRoot = rootDiv.attachShadow({mode: 'open'}) - - if (process.env.EXTENSION_MODE === 'development') { - // Use the shadow root as the root element to inject styles into. - window.__EXTENSION_SHADOW_ROOT__ = shadowRoot - } - - shadowRoot.innerHTML = ` -
- ${getContentHtml()} -
- ` -} +document.body.innerHTML += `
${getContentHtml()}
` diff --git a/examples/content-tailwind/content/styles.css b/examples/content-tailwind/content/styles.css index c0fc3552..dc79ebb5 100644 --- a/examples/content-tailwind/content/styles.css +++ b/examples/content-tailwind/content/styles.css @@ -2,7 +2,7 @@ @tailwind components; @tailwind utilities; -.content_script { +#extension-root { position: fixed; bottom: 0; right: 0; diff --git a/examples/content-typescript/content/scripts.ts b/examples/content-typescript/content/scripts.ts index ba8d6a9b..139825c3 100644 --- a/examples/content-typescript/content/scripts.ts +++ b/examples/content-typescript/content/scripts.ts @@ -3,39 +3,20 @@ import logo from '../images/logo.svg' console.log('hello from content_scripts') -setTimeout(initial, 1000) - -function initial() { - const rootDiv = document.createElement('div') - rootDiv.id = 'extension-root' - - // Injecting content_scripts inside a shadow dom - // prevents conflicts with the host page's styles. - // This way, styles from the extension won't leak into the host page. - const shadowRoot = rootDiv.attachShadow({mode: 'open'}) - - // Tell Extension.js to use the shadow root as the root element - // to inject styles into. - // @ts-exspect-error - Ignore TS error for global variable - window.__EXTENSION_SHADOW_ROOT__ = shadowRoot - - document.body.appendChild(rootDiv) - - shadowRoot.innerHTML = ` -
- -

- Welcome to your TypeScript Extension -

-

- Learn more about creating cross-browser extensions at - https://extension.js.org - -

-
- ` -} +document.body.innerHTML += ` +
+ +

+ Welcome to your TypeScript Extension +

+

+ Learn more about creating cross-browser extensions at + https://extension.js.org + +

+
+` diff --git a/examples/content-typescript/content/styles.css b/examples/content-typescript/content/styles.css index 1f69e11c..2049a65c 100644 --- a/examples/content-typescript/content/styles.css +++ b/examples/content-typescript/content/styles.css @@ -24,17 +24,14 @@ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; font-weight: 700; - margin: 0; } .content_description { font-size: small; - margin: 0; } .content_description a { text-decoration: none; border-bottom: 2px solid #c9c9c9; color: #e5e7eb; - margin: 0; } diff --git a/examples/content-vue/content/scripts.ts b/examples/content-vue/content/scripts.ts index c0410037..bbee32a8 100644 --- a/examples/content-vue/content/scripts.ts +++ b/examples/content-vue/content/scripts.ts @@ -3,30 +3,11 @@ import ContentApp from './ContentApp.vue' import './styles.css' function initial() { - // Create a new div element and append it to the document's body const rootDiv = document.createElement('div') rootDiv.id = 'extension-root' document.body.appendChild(rootDiv) - // Inject content_scripts inside a shadow DOM - // to prevent conflicts with the host page's styles. - const shadowRoot = rootDiv.attachShadow({mode: 'open'}) - - if (process.env.EXTENSION_MODE === 'development') { - // @ts-expect-error - Tell Extension.js to use the shadow root - // as the root element for injecting styles. - window.__EXTENSION_SHADOW_ROOT__ = shadowRoot - } - - // Create a container inside the shadow DOM for the Vue app - const shadowAppContainer = document.createElement('div') - shadowAppContainer.className = 'content_script' - shadowRoot.appendChild(shadowAppContainer) - - // Mount the Vue app to the container inside the shadow DOM - const app = createApp(ContentApp) - app.mount(shadowAppContainer) + createApp(ContentApp).mount(rootDiv) } -// Initialize the app setTimeout(initial, 1000) diff --git a/examples/content-vue/content/styles.css b/examples/content-vue/content/styles.css index c0fc3552..dc79ebb5 100644 --- a/examples/content-vue/content/styles.css +++ b/examples/content-vue/content/styles.css @@ -2,7 +2,7 @@ @tailwind components; @tailwind utilities; -.content_script { +#extension-root { position: fixed; bottom: 0; right: 0; diff --git a/examples/content/content/scripts.js b/examples/content/content/scripts.js index 6995d0b8..d010d8ab 100644 --- a/examples/content/content/scripts.js +++ b/examples/content/content/scripts.js @@ -3,38 +3,21 @@ import logo from '../images/logo.svg' console.log('hello from content_scripts') -setTimeout(initial, 1000) - -function initial() { - const rootDiv = document.createElement('div') - rootDiv.id = 'extension-root' - document.body.appendChild(rootDiv) - - // Injecting content_scripts inside a shadow dom - // prevents conflicts with the host page's styles. - // This way, styles from the extension won't leak into the host page. - const shadowRoot = rootDiv.attachShadow({mode: 'open'}) - - if (process.env.EXTENSION_MODE === 'development') { - // Use the shadow root as the root element to inject styles into. - window.__EXTENSION_SHADOW_ROOT__ = shadowRoot - } - - shadowRoot.innerHTML = ` -
- -

- Welcome to your Content Script Extension -

-

- Learn more about creating cross-browser extensions at - https://extension.js.org - -

-
+// Check if the content has already been added +document.body.innerHTML += ` +
+ +

+ Welcome to your Content Script Extension +

+

+ Learn more about creating cross-browser extensions at + https://extension.js.org + +

+
` -} diff --git a/examples/content/content/styles.css b/examples/content/content/styles.css index 1f69e11c..2049a65c 100644 --- a/examples/content/content/styles.css +++ b/examples/content/content/styles.css @@ -24,17 +24,14 @@ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; font-weight: 700; - margin: 0; } .content_description { font-size: small; - margin: 0; } .content_description a { text-decoration: none; border-bottom: 2px solid #c9c9c9; color: #e5e7eb; - margin: 0; } diff --git a/programs/cli/types/index.d.ts b/programs/cli/types/index.d.ts index 7cb12422..36e4e429 100644 --- a/programs/cli/types/index.d.ts +++ b/programs/cli/types/index.d.ts @@ -7,12 +7,7 @@ declare namespace NodeJS { interface ProcessEnv { - readonly EXTENSION_BROWSER: - | 'chrome' - | 'edge' - | 'firefox' - | 'chromium-based' - | 'gecko-based' + readonly EXTENSION_BROWSER: 'chrome' | 'edge' | 'firefox' | 'chromium-based' | 'gecko-based' readonly EXTENSION_MODE: 'development' | 'production' } } diff --git a/programs/develop/webpack/lib/utils.ts b/programs/develop/webpack/lib/utils.ts index 5be6d75d..832252ca 100644 --- a/programs/develop/webpack/lib/utils.ts +++ b/programs/develop/webpack/lib/utils.ts @@ -276,7 +276,7 @@ export function filterKeysForThisBrowser( prefix === browser || (prefix === 'chromium' && CHROMIUM_BASED_BROWSERS.includes(browser)) || (prefix === 'chromium' && browser.includes('chromium')) || - (prefix === 'gecko' && browser.includes('gecko')) + (prefix === 'gecko' && browser.includes('gecko')) ) { this[key.substring(indexOfColon + 1)] = value } diff --git a/programs/develop/webpack/plugin-compilation/env.ts b/programs/develop/webpack/plugin-compilation/env.ts index bc29fd26..2e21d62e 100644 --- a/programs/develop/webpack/plugin-compilation/env.ts +++ b/programs/develop/webpack/plugin-compilation/env.ts @@ -81,11 +81,11 @@ export class EnvPlugin { filteredEnvVars['process.env.EXTENSION_BROWSER'] = JSON.stringify( this.browser ) - filteredEnvVars['import.meta.env.EXTENSION_BROWSER'] = JSON.stringify( - this.browser - ) + filteredEnvVars['import.meta.env.EXTENSION_BROWSER'] = + JSON.stringify(this.browser) filteredEnvVars['process.env.EXTENSION_MODE'] = JSON.stringify(mode) - filteredEnvVars['import.meta.env.EXTENSION_MODE'] = JSON.stringify(mode) + filteredEnvVars['import.meta.env.EXTENSION_MODE'] = + JSON.stringify(mode) // Apply DefinePlugin to expose filtered variables new DefinePlugin(filteredEnvVars).apply(compiler)