From 8bbb6ff25c0f76e6f99188f4e68acc18a80e8acf Mon Sep 17 00:00:00 2001 From: Brion Date: Sat, 14 Mar 2026 07:38:32 +0530 Subject: [PATCH 01/11] Add emoji URI utilities and integrate into ImageComponent for enhanced emoji support --- packages/javascript/src/index.ts | 2 + .../src/utils/v2/extractEmojiFromUri.ts | 41 +++++++++++++++++ .../javascript/src/utils/v2/isEmojiUri.ts | 38 ++++++++++++++++ .../components/adapters/ImageComponent.tsx | 45 +++++++++++++++++++ 4 files changed, 126 insertions(+) create mode 100644 packages/javascript/src/utils/v2/extractEmojiFromUri.ts create mode 100644 packages/javascript/src/utils/v2/isEmojiUri.ts diff --git a/packages/javascript/src/index.ts b/packages/javascript/src/index.ts index fe2b363f..e0509878 100644 --- a/packages/javascript/src/index.ts +++ b/packages/javascript/src/index.ts @@ -209,6 +209,8 @@ export {default as generateFlattenedUserProfile} from './utils/generateFlattened export {default as getRedirectBasedSignUpUrl} from './utils/getRedirectBasedSignUpUrl'; export {default as identifyPlatform} from './utils/identifyPlatform'; export {default as isEmpty} from './utils/isEmpty'; +export {default as isEmojiUri, EMOJI_URI_SCHEME} from './utils/v2/isEmojiUri'; +export {default as extractEmojiFromUri} from './utils/v2/extractEmojiFromUri'; export {default as set} from './utils/set'; export {default as get} from './utils/get'; export {default as removeTrailingSlash} from './utils/removeTrailingSlash'; diff --git a/packages/javascript/src/utils/v2/extractEmojiFromUri.ts b/packages/javascript/src/utils/v2/extractEmojiFromUri.ts new file mode 100644 index 00000000..d156a9c7 --- /dev/null +++ b/packages/javascript/src/utils/v2/extractEmojiFromUri.ts @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2026, WSO2 LLC. (https://www.wso2.com). + * + * WSO2 LLC. licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import isEmojiUri, {EMOJI_URI_SCHEME} from './isEmojiUri'; + +/** + * Extracts the emoji character from an `emoji:` URI. + * + * @param uri - A URI string in the form `"emoji:"`. + * @returns The emoji character, or an empty string if the URI is not a valid emoji URI. + * + * @example + * ```typescript + * extractEmojiFromUri("emoji:🐯"); // "🐯" + * extractEmojiFromUri("https://example.com"); // "" + * ``` + */ +const extractEmojiFromUri = (uri: string): string => { + if (!isEmojiUri(uri)) { + return ''; + } + + return uri.slice(EMOJI_URI_SCHEME.length); +}; + +export default extractEmojiFromUri; diff --git a/packages/javascript/src/utils/v2/isEmojiUri.ts b/packages/javascript/src/utils/v2/isEmojiUri.ts new file mode 100644 index 00000000..830131d7 --- /dev/null +++ b/packages/javascript/src/utils/v2/isEmojiUri.ts @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2026, WSO2 LLC. (https://www.wso2.com). + * + * WSO2 LLC. licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +export const EMOJI_URI_SCHEME = 'emoji:'; + +/** + * Checks whether a given URI uses the `emoji:` scheme (e.g. `"emoji:🐯"`). + * + * @param uri - The URI string to check. + * @returns `true` if the URI starts with `"emoji:"`, `false` otherwise. + * + * @example + * ```typescript + * isEmojiUri("emoji:🐯"); // true + * isEmojiUri("https://example.com/logo.png"); // false + * isEmojiUri(""); // false + * ``` + */ +const isEmojiUri = (uri: string): boolean => { + return typeof uri === 'string' && uri.startsWith(EMOJI_URI_SCHEME); +}; + +export default isEmojiUri; diff --git a/packages/react/src/components/adapters/ImageComponent.tsx b/packages/react/src/components/adapters/ImageComponent.tsx index 0764973e..91d9c2bc 100644 --- a/packages/react/src/components/adapters/ImageComponent.tsx +++ b/packages/react/src/components/adapters/ImageComponent.tsx @@ -17,9 +17,12 @@ */ import {CSSProperties, FC, SyntheticEvent} from 'react'; +import {extractEmojiFromUri, isEmojiUri} from '@asgardeo/browser'; import useTheme from '../../contexts/Theme/useTheme'; import {AdapterProps} from '../../models/adapters'; +const DEFAULT_EMOJI_CONTAINER_HEIGHT = '4em'; + /** * Image component for sign-up forms. */ @@ -42,6 +45,48 @@ const ImageComponent: FC = ({component}: AdapterProps) => { return null; } + if (isEmojiUri(src)) { + // Bare numbers (e.g. "48") are valid for width/height attributes but + // are unit-less and ignored as CSS properties — normalize them to px. + const toCSSLength = (value: string): string => (/^\d+(\.\d+)?$/.test(value) ? `${value}px` : value); + const cssWidth: string = toCSSLength(width); + const cssHeight: string = toCSSLength(height); + + // container-type: size needs a concrete block dimension — percentage and + // 'auto' values both collapse to 0 when the parent has no defined height. + // Priority: explicit height → explicit width (square) → fallback constant. + const isConcrete = (v: string): boolean => v !== 'auto' && !v.endsWith('%'); + const containerHeight: string = isConcrete(cssHeight) + ? cssHeight + : isConcrete(cssWidth) + ? cssWidth + : DEFAULT_EMOJI_CONTAINER_HEIGHT; + + return ( +
+ {/* + * container-type: size lets the inner span use cqmin (= min(cqw, cqh)) + * so the emoji font-size tracks the rendered container dimensions + * rather than the parent's font-size. + */} + + + {extractEmojiFromUri(src)} + + +
+ ); + } + return (
Date: Sat, 14 Mar 2026 07:39:27 +0530 Subject: [PATCH 02/11] Stop treating `Headings` differently --- .../auth/SignIn/v2/BaseSignIn.tsx | 63 ++----------------- .../presentation/auth/SignUp/v2/SignUp.tsx | 1 - 2 files changed, 5 insertions(+), 59 deletions(-) diff --git a/packages/react/src/components/presentation/auth/SignIn/v2/BaseSignIn.tsx b/packages/react/src/components/presentation/auth/SignIn/v2/BaseSignIn.tsx index 9dd16049..909b66b2 100644 --- a/packages/react/src/components/presentation/auth/SignIn/v2/BaseSignIn.tsx +++ b/packages/react/src/components/presentation/auth/SignIn/v2/BaseSignIn.tsx @@ -22,7 +22,6 @@ import { EmbeddedFlowComponentV2 as EmbeddedFlowComponent, FlowMetadataResponse, Preferences, - resolveVars, } from '@asgardeo/browser'; import {cx} from '@emotion/css'; import {FC, useState, useCallback, ReactElement, ReactNode} from 'react'; @@ -34,11 +33,9 @@ import useTheme from '../../../../../contexts/Theme/useTheme'; import {FormField, useForm} from '../../../../../hooks/useForm'; import useTranslation from '../../../../../hooks/useTranslation'; import {extractErrorMessage} from '../../../../../utils/v2/flowTransformer'; -import getAuthComponentHeadings from '../../../../../utils/v2/getAuthComponentHeadings'; import AlertPrimitive from '../../../../primitives/Alert/Alert'; // eslint-disable-next-line import/no-named-as-default import CardPrimitive, {CardProps} from '../../../../primitives/Card/Card'; -import Logo from '../../../../primitives/Logo/Logo'; import Spinner from '../../../../primitives/Spinner/Spinner'; import Typography from '../../../../primitives/Typography/Typography'; import {renderSignInComponents} from '../../AuthOptionFactory'; @@ -209,21 +206,6 @@ export interface BaseSignInProps { */ preferences?: Preferences; - /** - * Whether to show the logo. - */ - showLogo?: boolean; - - /** - * Whether to show the subtitle. - */ - showSubtitle?: boolean; - - /** - * Whether to show the title. - */ - showTitle?: boolean; - /** * Size variant for the component. */ @@ -251,8 +233,6 @@ const BaseSignInContent: FC = ({ variant = 'outlined', isLoading: externalIsLoading, children, - showTitle = true, - showSubtitle = true, additionalData = {}, isTimeoutDisabled = false, }: BaseSignInProps): ReactElement => { @@ -558,32 +538,8 @@ const BaseSignInContent: FC = ({ ); } - // Extract heading and subheading components and filter them from the main components - const { - title: rawTitle, - subtitle: rawSubtitle, - componentsWithoutHeadings, - } = getAuthComponentHeadings(components as any, flowTitle, flowSubtitle, undefined, undefined); - // Resolve any remaining {{meta()}} or {{t()}} expressions in the title/subtitle at render time - const title: string = resolveVars(rawTitle, {meta, t}); - const subtitle: string = resolveVars(rawSubtitle, {meta, t}); - return ( - {(showTitle || showSubtitle) && ( - - {showTitle && ( - - {title} - - )} - {showSubtitle && ( - - {subtitle} - - )} - - )} {externalError && (
@@ -605,9 +561,7 @@ const BaseSignInContent: FC = ({ ))}
)} -
- {componentsWithoutHeadings && renderComponents(componentsWithoutHeadings)} -
+
{renderComponents(components)}
); @@ -662,21 +616,14 @@ const BaseSignInContent: FC = ({ * * ``` */ -const BaseSignIn: FC = ({preferences, showLogo = true, ...rest}: BaseSignInProps): ReactElement => { +const BaseSignIn: FC = ({preferences, ...rest}: BaseSignInProps): ReactElement => { const {theme} = useTheme(); const styles: any = useStyles(theme, theme.vars.colors.text.primary); const content: ReactElement = ( -
- {showLogo && ( -
- -
- )} - - - -
+ + + ); if (!preferences) return content; diff --git a/packages/react/src/components/presentation/auth/SignUp/v2/SignUp.tsx b/packages/react/src/components/presentation/auth/SignUp/v2/SignUp.tsx index 18c4a2ad..90b74b54 100644 --- a/packages/react/src/components/presentation/auth/SignUp/v2/SignUp.tsx +++ b/packages/react/src/components/presentation/auth/SignUp/v2/SignUp.tsx @@ -127,7 +127,6 @@ const SignUp: FC = ({ size={size} isInitialized={isInitialized} children={children} - showLogo={true} showTitle={true} showSubtitle={true} {...rest} From 4a9bd9e90e219a030bea754d10ff7c528d786b36 Mon Sep 17 00:00:00 2001 From: Brion Date: Sat, 14 Mar 2026 08:09:11 +0530 Subject: [PATCH 03/11] Refactor richTextClass: enhance text alignment and link styling for better presentation --- .../presentation/auth/AuthOptionFactory.tsx | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/packages/react/src/components/presentation/auth/AuthOptionFactory.tsx b/packages/react/src/components/presentation/auth/AuthOptionFactory.tsx index cc342650..cba2c5e1 100644 --- a/packages/react/src/components/presentation/auth/AuthOptionFactory.tsx +++ b/packages/react/src/components/presentation/auth/AuthOptionFactory.tsx @@ -66,6 +66,22 @@ const richTextClass: string = css` overflow-wrap: anywhere; word-break: break-word; } + & .rich-text-align-left { + text-align: left; + } + & .rich-text-align-center { + text-align: center; + } + & .rich-text-align-right { + text-align: right; + } + & .rich-text-align-justify { + text-align: justify; + } + & a, + & .rich-text-link { + text-decoration: underline; + } `; export type AuthType = 'signin' | 'signup'; From 20cb894f4332e701037fd3afc90bfc9cf180eafd Mon Sep 17 00:00:00 2001 From: Brion Date: Sat, 14 Mar 2026 14:31:53 +0530 Subject: [PATCH 04/11] Refactor flow template resolution: replace `resolveVars` with `resolveFlowTemplateLiterals` and update related interfaces and utility functions --- packages/javascript/src/index.ts | 4 +- packages/javascript/src/models/v2/vars.ts | 4 +- .../v2/containsMetaFlowTemplateLiteral.ts | 75 +++++++++++ .../src/utils/v2/isMetaFlowTemplateLiteral.ts | 49 +++++++ .../v2/isTranslationFlowTemplateLiteral.ts | 49 +++++++ .../src/utils/v2/parseFlowTemplateLiteral.ts | 120 ++++++++++++++++++ ...Vars.ts => resolveFlowTemplateLiterals.ts} | 51 ++++---- .../presentation/auth/AuthOptionFactory.tsx | 4 +- .../src/contexts/Asgardeo/AsgardeoContext.ts | 10 +- .../src/contexts/Asgardeo/useAsgardeo.ts | 6 +- .../utils/v2/resolveTranslationsInObject.ts | 4 +- 11 files changed, 332 insertions(+), 44 deletions(-) create mode 100644 packages/javascript/src/utils/v2/containsMetaFlowTemplateLiteral.ts create mode 100644 packages/javascript/src/utils/v2/isMetaFlowTemplateLiteral.ts create mode 100644 packages/javascript/src/utils/v2/isTranslationFlowTemplateLiteral.ts create mode 100644 packages/javascript/src/utils/v2/parseFlowTemplateLiteral.ts rename packages/javascript/src/utils/v2/{resolveVars.ts => resolveFlowTemplateLiterals.ts} (58%) diff --git a/packages/javascript/src/index.ts b/packages/javascript/src/index.ts index e0509878..6dbd2ffc 100644 --- a/packages/javascript/src/index.ts +++ b/packages/javascript/src/index.ts @@ -170,7 +170,7 @@ export {User, UserProfile} from './models/user'; export {SessionData} from './models/session'; export {Organization} from './models/organization'; export {TranslationFn} from './models/v2/translation'; -export {ResolveVarsOptions} from './models/v2/vars'; +export {ResolveFlowTemplateLiteralsOptions} from './models/v2/vars'; export { BrandingPreference, BrandingPreferenceConfig, @@ -217,7 +217,7 @@ export {default as removeTrailingSlash} from './utils/removeTrailingSlash'; export {default as resolveFieldType} from './utils/resolveFieldType'; export {default as resolveFieldName} from './utils/resolveFieldName'; export {default as resolveMeta} from './utils/v2/resolveMeta'; -export {default as resolveVars} from './utils/v2/resolveVars'; +export {default as resolveFlowTemplateLiterals} from './utils/v2/resolveFlowTemplateLiterals'; export {default as countryCodeToFlagEmoji} from './utils/v2/countryCodeToFlagEmoji'; export {default as resolveLocaleDisplayName} from './utils/v2/resolveLocaleDisplayName'; export {default as resolveLocaleEmoji} from './utils/v2/resolveLocaleEmoji'; diff --git a/packages/javascript/src/models/v2/vars.ts b/packages/javascript/src/models/v2/vars.ts index 6d68138e..ceaf5030 100644 --- a/packages/javascript/src/models/v2/vars.ts +++ b/packages/javascript/src/models/v2/vars.ts @@ -20,12 +20,12 @@ import {FlowMetadataResponse} from './flow-meta-v2'; import {TranslationFn} from './translation'; /** - * Options for the resolveVars function. + * Options for the resolveFlowTemplateLiterals function. * * @template TFn - The concrete translation function type. * Defaults to the SDK-native {@link TranslationFn} signature. */ -export interface ResolveVarsOptions { +export interface ResolveFlowTemplateLiteralsOptions { /** * Optional flow metadata for resolving `{{ meta(path) }}` expressions. */ diff --git a/packages/javascript/src/utils/v2/containsMetaFlowTemplateLiteral.ts b/packages/javascript/src/utils/v2/containsMetaFlowTemplateLiteral.ts new file mode 100644 index 00000000..a6ecc9dd --- /dev/null +++ b/packages/javascript/src/utils/v2/containsMetaFlowTemplateLiteral.ts @@ -0,0 +1,75 @@ +/** + * Copyright (c) 2026, WSO2 LLC. (https://www.wso2.com). + * + * WSO2 LLC. licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/** + * Build a regex that matches `{{ meta(key) }}` (with optional whitespace) anywhere + * within a string, escaping any special regex characters in `key`. + */ +function buildMetaFlowTemplateLiteralRegex(key: string): RegExp { + const escapedKey: string = key.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); + + return new RegExp(`\\{\\{\\s*meta\\(${escapedKey}\\)\\s*\\}\\}`); +} + +/** + * Check whether a string contains a `{{ meta(key) }}` flow template literal anywhere within it. + * + * Unlike {@link isMetaFlowTemplateLiteral}, which requires the **entire** string to be the + * template, this function detects the pattern embedded inside a larger string such as an + * HTML label or sentence. + * + * Whitespace around `{{` / `}}` is allowed, e.g. `{{ meta(application.signUpUrl) }}`. + * + * @param str - The string to search (may be a plain value or an HTML fragment). + * @param key - The meta path to look for, e.g. `"application.signUpUrl"`. + * @returns `true` if the pattern is found anywhere in `str`, `false` otherwise. + * + * @example + * ```typescript + * containsMetaFlowTemplateLiteral('Sign up', 'application.signUpUrl') + * // true + * + * containsMetaFlowTemplateLiteral('Sign up', 'application.signUpUrl') + * // false + * ``` + */ +export default function containsMetaFlowTemplateLiteral(str: string, key: string): boolean { + return buildMetaFlowTemplateLiteralRegex(key).test(str); +} + +/** + * Replace all occurrences of `{{ meta(key) }}` (with optional whitespace) in `str` + * with `replacement`. + * + * @param str - The source string. + * @param key - The meta path to replace, e.g. `"application.signUpUrl"`. + * @param replacement - The value to substitute for each match. + * @returns A new string with all occurrences replaced. + * + * @example + * ```typescript + * replaceMetaFlowTemplateLiteral('Sign up at {{ meta(application.signUpUrl) }}', 'application.signUpUrl', 'https://example.com') + * // 'Sign up at https://example.com' + * ``` + */ +export function replaceMetaFlowTemplateLiteral(str: string, key: string, replacement: string): string { + const escapedKey: string = key.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); + const regex: RegExp = new RegExp(`\\{\\{\\s*meta\\(${escapedKey}\\)\\s*\\}\\}`, 'g'); + + return str.replace(regex, replacement); +} diff --git a/packages/javascript/src/utils/v2/isMetaFlowTemplateLiteral.ts b/packages/javascript/src/utils/v2/isMetaFlowTemplateLiteral.ts new file mode 100644 index 00000000..f6c2b93a --- /dev/null +++ b/packages/javascript/src/utils/v2/isMetaFlowTemplateLiteral.ts @@ -0,0 +1,49 @@ +/** + * Copyright (c) 2026, WSO2 LLC. (https://www.wso2.com). + * + * WSO2 LLC. licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/** + * Regular expression to match a meta flow template literal `{{meta(key)}}` (exact, full-string match). + * Optional whitespace around `{{` / `}}` is allowed. + */ +export const META_FLOW_TEMPLATE_LITERAL_PATTERN: RegExp = /^\{\{\s*meta\([^)]+\)\s*\}\}$/; + +/** + * Regular expression to extract the path from a meta flow template literal `{{meta(path)}}`. + */ +export const META_FLOW_TEMPLATE_LITERAL_KEY_PATTERN: RegExp = /^\{\{\s*meta\(([^)]+)\)\s*\}\}$/; + +/** + * Check if a string is exactly a meta flow template literal (`{{ meta(path) }}`). + * + * This checks that the **entire** string is the template pattern. Use + * {@link FLOW_TEMPLATE_LITERAL_REGEX} from `parseFlowTemplateLiteral` to detect + * templates embedded inside a larger string. + * + * @param value - The string to test. + * @returns `true` if the trimmed value matches the pattern, `false` otherwise. + * + * @example + * ```typescript + * isMetaFlowTemplateLiteral('{{ meta(application.name) }}') // true + * isMetaFlowTemplateLiteral('hello world') // false + * isMetaFlowTemplateLiteral('Login to {{ meta(app.name) }}') // false — embedded, not exact + * ``` + */ +export default function isMetaFlowTemplateLiteral(value: string): boolean { + return META_FLOW_TEMPLATE_LITERAL_PATTERN.test(value.trim()); +} diff --git a/packages/javascript/src/utils/v2/isTranslationFlowTemplateLiteral.ts b/packages/javascript/src/utils/v2/isTranslationFlowTemplateLiteral.ts new file mode 100644 index 00000000..e5afc33c --- /dev/null +++ b/packages/javascript/src/utils/v2/isTranslationFlowTemplateLiteral.ts @@ -0,0 +1,49 @@ +/** + * Copyright (c) 2026, WSO2 LLC. (https://www.wso2.com). + * + * WSO2 LLC. licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/** + * Regular expression to match a translation flow template literal `{{t(key)}}` (exact, full-string match). + * Optional whitespace around `{{` / `}}` is allowed. + */ +export const TRANSLATION_FLOW_TEMPLATE_LITERAL_PATTERN: RegExp = /^\{\{\s*t\([^)]+\)\s*\}\}$/; + +/** + * Regular expression to extract the key from a translation flow template literal `{{t(key)}}`. + */ +export const TRANSLATION_FLOW_TEMPLATE_LITERAL_KEY_PATTERN: RegExp = /^\{\{\s*t\(([^)]+)\)\s*\}\}$/; + +/** + * Check if a string is exactly a translation flow template literal (`{{ t(key) }}`). + * + * This checks that the **entire** string is the template pattern. Use + * {@link FLOW_TEMPLATE_LITERAL_REGEX} from `parseFlowTemplateLiteral` to detect + * templates embedded inside a larger string. + * + * @param value - The string to test. + * @returns `true` if the trimmed value matches the pattern, `false` otherwise. + * + * @example + * ```typescript + * isTranslationFlowTemplateLiteral('{{ t(signin:heading) }}') // true + * isTranslationFlowTemplateLiteral('hello world') // false + * isTranslationFlowTemplateLiteral('Login via {{ t(key) }}') // false — embedded, not exact + * ``` + */ +export default function isTranslationFlowTemplateLiteral(value: string): boolean { + return TRANSLATION_FLOW_TEMPLATE_LITERAL_PATTERN.test(value.trim()); +} diff --git a/packages/javascript/src/utils/v2/parseFlowTemplateLiteral.ts b/packages/javascript/src/utils/v2/parseFlowTemplateLiteral.ts new file mode 100644 index 00000000..462d6fbb --- /dev/null +++ b/packages/javascript/src/utils/v2/parseFlowTemplateLiteral.ts @@ -0,0 +1,120 @@ +/** + * Copyright (c) 2026, WSO2 LLC. (https://www.wso2.com). + * + * WSO2 LLC. licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/** + * Regular expression to detect a flow template literal wrapped in double braces. + * Matches patterns like `{{ t(key) }}`, `{{ meta(key) }}`, etc. + * + * Note: this regex has no `g` flag — use `new RegExp(FLOW_TEMPLATE_LITERAL_REGEX.source, 'g')` + * when global replacement is needed (e.g. in resolveFlowTemplateLiterals). + */ +export const FLOW_TEMPLATE_LITERAL_REGEX: RegExp = /\{\{\s*([^}]+)\s*\}\}/; + +/** + * Regular expression to parse a function-call expression inside flow template braces. + * Matches `funcName(arg)` and captures the function name and argument. + */ +export const FLOW_TEMPLATE_FUNCTION_REGEX: RegExp = /^(\w+)\(([^)]+)\)$/; + +/** + * Flow template literal types supported by the SDK. + * + * Values correspond to the function name used in the template expression, + * so that a `{ t }` object from `useTranslation()` can be passed directly + * as a handler map. + */ +export enum FlowTemplateLiteralType { + /** Translation template literal — `{{ t(key) }}` */ + TRANSLATION = 't', + /** Meta template literal — `{{ meta(path) }}` — resolves against flow/page metadata */ + META = 'meta', + /** Unknown or unsupported template literal format */ + UNKNOWN = 'unknown', +} + +/** + * Result of parsing a flow template literal. + */ +export interface FlowTemplateLiteralResult { + /** The type of flow template literal that was detected */ + type: FlowTemplateLiteralType; + /** + * The extracted key or path from the template literal. + * e.g. `"signin:heading"` from `"{{ t(signin:heading) }}"`. + */ + key?: string; + /** The original template literal content before parsing */ + originalValue: string; +} + +/** + * Map of handler functions keyed by {@link FlowTemplateLiteralType}. + * + * When provided to a resolver, the matching handler is called with the extracted key. + * Because `FlowTemplateLiteralType.TRANSLATION === 't'`, you can pass the `{ t }` object + * from `useTranslation()` directly. + * + * @example + * ```typescript + * const { t } = useTranslation(); + * // handler map: { t: (key) => string } + * ``` + */ +export type FlowTemplateLiteralHandlers = Partial string>>; + +/** + * Parse a flow template literal content string and extract its type and key. + * + * Supports function-call expressions like: + * - `t(signin:heading)` → type `TRANSLATION`, key `"signin:heading"` + * - `meta(application.name)` → type `META`, key `"application.name"` + * + * Surrounding quotes on the key argument are stripped automatically. + * + * @param content - The content inside the template literal braces (without `{{ }}`). + * @returns Parsed flow template literal information. + * + * @example + * ```typescript + * parseFlowTemplateLiteral('t(signin:heading)') + * // { type: FlowTemplateLiteralType.TRANSLATION, key: 'signin:heading', originalValue: 't(signin:heading)' } + * + * parseFlowTemplateLiteral('meta(application.name)') + * // { type: FlowTemplateLiteralType.META, key: 'application.name', originalValue: 'meta(application.name)' } + * ``` + */ +export default function parseFlowTemplateLiteral(content: string): FlowTemplateLiteralResult { + const originalValue: string = content; + const match: RegExpExecArray | null = FLOW_TEMPLATE_FUNCTION_REGEX.exec(content); + + if (!match) { + return {type: FlowTemplateLiteralType.UNKNOWN, originalValue}; + } + + const [, functionName, rawKey] = match; + const key: string = rawKey.trim().replace(/^['"]|['"]$/g, ''); + + switch (functionName as FlowTemplateLiteralType) { + case FlowTemplateLiteralType.TRANSLATION: + return {type: FlowTemplateLiteralType.TRANSLATION, key, originalValue}; + case FlowTemplateLiteralType.META: + return {type: FlowTemplateLiteralType.META, key, originalValue}; + default: + return {type: FlowTemplateLiteralType.UNKNOWN, originalValue}; + } +} diff --git a/packages/javascript/src/utils/v2/resolveVars.ts b/packages/javascript/src/utils/v2/resolveFlowTemplateLiterals.ts similarity index 58% rename from packages/javascript/src/utils/v2/resolveVars.ts rename to packages/javascript/src/utils/v2/resolveFlowTemplateLiterals.ts index e72f87ff..55cb6390 100644 --- a/packages/javascript/src/utils/v2/resolveVars.ts +++ b/packages/javascript/src/utils/v2/resolveFlowTemplateLiterals.ts @@ -17,11 +17,21 @@ */ import resolveMeta from './resolveMeta'; +import parseFlowTemplateLiteral, { + FLOW_TEMPLATE_LITERAL_REGEX, + FlowTemplateLiteralResult, + FlowTemplateLiteralType, +} from './parseFlowTemplateLiteral'; import {TranslationFn} from '../../models/v2/translation'; -import {ResolveVarsOptions} from '../../models/v2/vars'; +import {ResolveFlowTemplateLiteralsOptions} from '../../models/v2/vars'; /** - * Resolves all template expressions in a string. + * Global version of {@link FLOW_TEMPLATE_LITERAL_REGEX} for use with `String.prototype.replace`. + */ +const FLOW_TEMPLATE_LITERAL_REGEX_GLOBAL: RegExp = new RegExp(FLOW_TEMPLATE_LITERAL_REGEX.source, 'g'); + +/** + * Resolves all flow template literal expressions in a string. * * Supported patterns: * - `{{ t(key) }}` — resolved via the i18n translation function. @@ -30,51 +40,36 @@ import {ResolveVarsOptions} from '../../models/v2/vars'; * - `{{ meta(path) }}` — resolved via a dot-path lookup on FlowMetadataResponse. * `{{ meta(application.name) }}` → `meta.application?.name` * - * Template expressions can be embedded inside larger strings: + * Flow template literals can be embedded inside larger strings: * `"Login using {{ meta(application.name) }}"` → `"Login using My App"` * - * Unrecognised expressions are left unchanged. + * Unrecognized expressions are left unchanged. * * @template TFn - The concrete translation function type. * - * @param text - The string to resolve (may contain zero or more template expressions) + * @param text - The string to resolve (may contain zero or more flow template literals) * @param options - Resolution context: translation function and optional flow metadata * @returns The resolved string */ -export default function resolveVars( +export default function resolveFlowTemplateLiterals( text: string | undefined, - {t, meta}: ResolveVarsOptions, + {t, meta}: ResolveFlowTemplateLiteralsOptions, ): string { if (!text) { return ''; } - return text.replace(/\{\{(.+?)\}\}/g, (match: string, content: string): string => { - const trimmed: string = content.trim(); - - const tMatch: RegExpMatchArray | null = trimmed.match(/^t\((.+)\)$/); - if (tMatch) { - let key: string = tMatch[1].trim(); - // Strip surrounding quotes if present - if ((key.startsWith('"') && key.endsWith('"')) || (key.startsWith("'") && key.endsWith("'"))) { - key = key.slice(1, -1); - } + return text.replace(FLOW_TEMPLATE_LITERAL_REGEX_GLOBAL, (match: string, content: string): string => { + const parsed: FlowTemplateLiteralResult = parseFlowTemplateLiteral(content.trim()); + if (parsed.type === FlowTemplateLiteralType.TRANSLATION && parsed.key) { // Convert colon-separated namespace to dot-separated key // e.g. "signin:fields.password.label" → "signin.fields.password.label" - return t(key.replace(/:/g, '.')); + return t(parsed.key.replace(/:/g, '.')); } - if (meta) { - const metaMatch: RegExpMatchArray | null = trimmed.match(/^meta\((.+)\)$/); - if (metaMatch) { - let path: string = metaMatch[1].trim(); - // Strip surrounding quotes if present - if ((path.startsWith('"') && path.endsWith('"')) || (path.startsWith("'") && path.endsWith("'"))) { - path = path.slice(1, -1); - } - return resolveMeta(path, meta); - } + if (parsed.type === FlowTemplateLiteralType.META && parsed.key && meta) { + return resolveMeta(parsed.key, meta); } return match; diff --git a/packages/react/src/components/presentation/auth/AuthOptionFactory.tsx b/packages/react/src/components/presentation/auth/AuthOptionFactory.tsx index cba2c5e1..8b58789b 100644 --- a/packages/react/src/components/presentation/auth/AuthOptionFactory.tsx +++ b/packages/react/src/components/presentation/auth/AuthOptionFactory.tsx @@ -24,7 +24,7 @@ import { EmbeddedFlowTextVariantV2 as EmbeddedFlowTextVariant, EmbeddedFlowEventTypeV2 as EmbeddedFlowEventType, createPackageComponentLogger, - resolveVars, + resolveFlowTemplateLiterals, ConsentPurposeDataV2 as ConsentPurposeData, ConsentPromptDataV2 as ConsentPromptData, ConsentDecisionsV2 as ConsentDecisions, @@ -193,7 +193,7 @@ const createAuthComponentFromFlow = ( if (!text || (!options.t && !options.meta)) { return text || ''; } - return resolveVars(text, {meta: options.meta, t: options.t || ((k: string): string => k)}); + return resolveFlowTemplateLiterals(text, {meta: options.meta, t: options.t || ((k: string): string => k)}); }; switch (component.type) { diff --git a/packages/react/src/contexts/Asgardeo/AsgardeoContext.ts b/packages/react/src/contexts/Asgardeo/AsgardeoContext.ts index 4d7fa9c6..9ba884f8 100644 --- a/packages/react/src/contexts/Asgardeo/AsgardeoContext.ts +++ b/packages/react/src/contexts/Asgardeo/AsgardeoContext.ts @@ -128,11 +128,11 @@ export type AsgardeoContextProps = { * that come from the server (e.g. component labels, placeholders, headings). * * @example - * const {resolveVars} = useAsgardeo(); - * resolveVars('{{ t(signin.heading.label) }}') // → 'Sign In' - * resolveVars('Login to {{ meta(application.name) }}') // → 'Login to My App' + * const {resolveFlowTemplateLiterals} = useAsgardeo(); + * resolveFlowTemplateLiterals('{{ t(signin.heading.label) }}') // → 'Sign In' + * resolveFlowTemplateLiterals('Login to {{ meta(application.name) }}') // → 'Login to My App' */ - resolveVars: (text: string | undefined) => string; + resolveFlowTemplateLiterals: (text: string | undefined) => string; /** * Sign-in function to initiate the authentication process. @@ -203,7 +203,7 @@ const AsgardeoContext: Context = createContext text ?? '', + resolveFlowTemplateLiterals: (text: string | undefined) => text ?? '', signIn: () => Promise.resolve({} as any), signInOptions: {}, signInSilently: () => Promise.resolve({} as any), diff --git a/packages/react/src/contexts/Asgardeo/useAsgardeo.ts b/packages/react/src/contexts/Asgardeo/useAsgardeo.ts index cce70379..ce0e1742 100644 --- a/packages/react/src/contexts/Asgardeo/useAsgardeo.ts +++ b/packages/react/src/contexts/Asgardeo/useAsgardeo.ts @@ -16,7 +16,7 @@ * under the License. */ -import {resolveVars as resolveVarsUtil} from '@asgardeo/browser'; +import {resolveFlowTemplateLiterals} from '@asgardeo/browser'; import {useContext} from 'react'; import AsgardeoContext, {AsgardeoContextProps} from './AsgardeoContext'; import FlowMetaContext, {FlowMetaContextValue} from '../FlowMeta/FlowMetaContext'; @@ -43,8 +43,8 @@ const useAsgardeo = (): AsgardeoContextProps => { return { ...context, meta, - resolveVars: (text: string | undefined): string => - resolveVarsUtil(text, { + resolveFlowTemplateLiterals: (text: string | undefined): string => + resolveFlowTemplateLiterals(text, { meta, t: i18nContext?.t ?? ((key: string): string => key), }), diff --git a/packages/react/src/utils/v2/resolveTranslationsInObject.ts b/packages/react/src/utils/v2/resolveTranslationsInObject.ts index b12b279f..53e2ca62 100644 --- a/packages/react/src/utils/v2/resolveTranslationsInObject.ts +++ b/packages/react/src/utils/v2/resolveTranslationsInObject.ts @@ -16,7 +16,7 @@ * under the License. */ -import {FlowMetadataResponse, resolveVars} from '@asgardeo/browser'; +import {FlowMetadataResponse, resolveFlowTemplateLiterals} from '@asgardeo/browser'; import {UseTranslation} from '../../hooks/useTranslation'; /** @@ -37,7 +37,7 @@ export const resolveTranslationsInObject = >( properties.forEach((prop: string) => { if (resolved[prop] && typeof resolved[prop] === 'string') { - (resolved as any)[prop] = resolveVars(resolved[prop], {meta, t}); + (resolved as any)[prop] = resolveFlowTemplateLiterals(resolved[prop], {meta, t}); } }); From ac518ade62abcd2428c8f3da6a39df5b59901bea Mon Sep 17 00:00:00 2001 From: Brion Date: Sat, 14 Mar 2026 23:33:27 +0530 Subject: [PATCH 05/11] Add emoji URI handling in AuthOptionFactory to replace `emoji:` URIs in HTML before sanitization --- .../components/adapters/ImageComponent.tsx | 2 +- .../presentation/auth/AuthOptionFactory.tsx | 33 ++++++++++++++++++- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/packages/react/src/components/adapters/ImageComponent.tsx b/packages/react/src/components/adapters/ImageComponent.tsx index 91d9c2bc..dca1c2f0 100644 --- a/packages/react/src/components/adapters/ImageComponent.tsx +++ b/packages/react/src/components/adapters/ImageComponent.tsx @@ -76,7 +76,7 @@ const ImageComponent: FC = ({component}: AdapterProps) => { display: 'inline-grid', height: containerHeight, placeItems: 'center', - width, + width: cssWidth, }} > diff --git a/packages/react/src/components/presentation/auth/AuthOptionFactory.tsx b/packages/react/src/components/presentation/auth/AuthOptionFactory.tsx index 8b58789b..77bd9f1e 100644 --- a/packages/react/src/components/presentation/auth/AuthOptionFactory.tsx +++ b/packages/react/src/components/presentation/auth/AuthOptionFactory.tsx @@ -25,6 +25,8 @@ import { EmbeddedFlowEventTypeV2 as EmbeddedFlowEventType, createPackageComponentLogger, resolveFlowTemplateLiterals, + extractEmojiFromUri, + isEmojiUri, ConsentPurposeDataV2 as ConsentPurposeData, ConsentPromptDataV2 as ConsentPromptData, ConsentDecisionsV2 as ConsentDecisions, @@ -59,6 +61,32 @@ const logger: ReturnType = createPackageCom 'AuthOptionFactory', ); +/** + * Replaces `emoji:` URIs embedded in HTML before DOMPurify sanitization. + * + * DOMPurify strips unknown URI schemes from attributes (e.g. `src="emoji:🦊"` → `src=""`). + * This function converts: + * - `Y` → `X` + * - Any remaining `emoji:X` text occurrences → `X` + */ +const resolveEmojiUrisInHtml = (html: string): string => { + const withEmojiImages: string = html.replace( + /]*)src="(emoji:[^"]+)"([^>]*)\/?>/gi, + (_match: string, pre: string, src: string, post: string): string => { + const emoji: string = extractEmojiFromUri(src); + if (!emoji) { + return _match; + } + const altMatch: RegExpMatchArray | null = (pre + post).match(/alt="([^"]*)"/i); + const label: string = altMatch ? altMatch[1] : emoji; + return `${emoji}`; + }, + ); + return withEmojiImages.replace(/emoji:([^\s"<>&]+)/g, (_: string, rest: string): string => { + return isEmojiUri(`emoji:${rest}`) ? rest : `emoji:${rest}`; + }); +}; + /** Ensures rich-text content (including all inner elements from the server) always word-wraps. */ const richTextClass: string = css` overflow-wrap: anywhere; @@ -82,6 +110,9 @@ const richTextClass: string = css` & .rich-text-link { text-decoration: underline; } + & span[role='img'] { + display: inline-block; + } `; export type AuthType = 'signin' | 'signup'; @@ -415,7 +446,7 @@ const createAuthComponentFromFlow = ( className={richTextClass} // Manually sanitizes with `DOMPurify`. // IMPORTANT: DO NOT REMOVE OR MODIFY THIS SANITIZATION STEP. - dangerouslySetInnerHTML={{__html: DOMPurify.sanitize(resolve(component.label))}} + dangerouslySetInnerHTML={{__html: DOMPurify.sanitize(resolveEmojiUrisInHtml(resolve(component.label)))}} /> ); } From 455296d3e1c592621b94c6b3f0a27ade41382e02 Mon Sep 17 00:00:00 2001 From: Brion Date: Sun, 15 Mar 2026 00:58:54 +0530 Subject: [PATCH 06/11] Enhance Typography component in createAuthComponentFromFlow: add dynamic text alignment and margin styling --- .../presentation/auth/AuthOptionFactory.tsx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/react/src/components/presentation/auth/AuthOptionFactory.tsx b/packages/react/src/components/presentation/auth/AuthOptionFactory.tsx index 77bd9f1e..3acb4308 100644 --- a/packages/react/src/components/presentation/auth/AuthOptionFactory.tsx +++ b/packages/react/src/components/presentation/auth/AuthOptionFactory.tsx @@ -370,7 +370,17 @@ const createAuthComponentFromFlow = ( case EmbeddedFlowComponentType.Text: { const variant: any = getTypographyVariant(component.variant); return ( - + {resolve(component.label)} ); From 6617a2fecc0e029ec9e5698ad5933b8292eabefa Mon Sep 17 00:00:00 2001 From: Brion Date: Sun, 15 Mar 2026 01:07:07 +0530 Subject: [PATCH 07/11] Fix lint issues --- packages/javascript/src/utils/v2/isEmojiUri.ts | 6 ++---- .../src/utils/v2/parseFlowTemplateLiteral.ts | 8 ++++---- .../src/utils/v2/resolveFlowTemplateLiterals.ts | 2 +- .../src/components/adapters/ImageComponent.tsx | 17 ++++++++++------- .../presentation/auth/AuthOptionFactory.tsx | 8 ++++---- .../presentation/auth/SignIn/v2/BaseSignIn.tsx | 3 --- 6 files changed, 21 insertions(+), 23 deletions(-) diff --git a/packages/javascript/src/utils/v2/isEmojiUri.ts b/packages/javascript/src/utils/v2/isEmojiUri.ts index 830131d7..0f73c72e 100644 --- a/packages/javascript/src/utils/v2/isEmojiUri.ts +++ b/packages/javascript/src/utils/v2/isEmojiUri.ts @@ -16,7 +16,7 @@ * under the License. */ -export const EMOJI_URI_SCHEME = 'emoji:'; +export const EMOJI_URI_SCHEME: string = 'emoji:'; /** * Checks whether a given URI uses the `emoji:` scheme (e.g. `"emoji:🐯"`). @@ -31,8 +31,6 @@ export const EMOJI_URI_SCHEME = 'emoji:'; * isEmojiUri(""); // false * ``` */ -const isEmojiUri = (uri: string): boolean => { - return typeof uri === 'string' && uri.startsWith(EMOJI_URI_SCHEME); -}; +const isEmojiUri = (uri: string): boolean => typeof uri === 'string' && uri.startsWith(EMOJI_URI_SCHEME); export default isEmojiUri; diff --git a/packages/javascript/src/utils/v2/parseFlowTemplateLiteral.ts b/packages/javascript/src/utils/v2/parseFlowTemplateLiteral.ts index 462d6fbb..2832c450 100644 --- a/packages/javascript/src/utils/v2/parseFlowTemplateLiteral.ts +++ b/packages/javascript/src/utils/v2/parseFlowTemplateLiteral.ts @@ -39,10 +39,10 @@ export const FLOW_TEMPLATE_FUNCTION_REGEX: RegExp = /^(\w+)\(([^)]+)\)$/; * as a handler map. */ export enum FlowTemplateLiteralType { - /** Translation template literal — `{{ t(key) }}` */ - TRANSLATION = 't', /** Meta template literal — `{{ meta(path) }}` — resolves against flow/page metadata */ META = 'meta', + /** Translation template literal — `{{ t(key) }}` */ + TRANSLATION = 't', /** Unknown or unsupported template literal format */ UNKNOWN = 'unknown', } @@ -51,13 +51,13 @@ export enum FlowTemplateLiteralType { * Result of parsing a flow template literal. */ export interface FlowTemplateLiteralResult { - /** The type of flow template literal that was detected */ - type: FlowTemplateLiteralType; /** * The extracted key or path from the template literal. * e.g. `"signin:heading"` from `"{{ t(signin:heading) }}"`. */ key?: string; + /** The type of flow template literal that was detected */ + type: FlowTemplateLiteralType; /** The original template literal content before parsing */ originalValue: string; } diff --git a/packages/javascript/src/utils/v2/resolveFlowTemplateLiterals.ts b/packages/javascript/src/utils/v2/resolveFlowTemplateLiterals.ts index 55cb6390..726204b2 100644 --- a/packages/javascript/src/utils/v2/resolveFlowTemplateLiterals.ts +++ b/packages/javascript/src/utils/v2/resolveFlowTemplateLiterals.ts @@ -16,12 +16,12 @@ * under the License. */ -import resolveMeta from './resolveMeta'; import parseFlowTemplateLiteral, { FLOW_TEMPLATE_LITERAL_REGEX, FlowTemplateLiteralResult, FlowTemplateLiteralType, } from './parseFlowTemplateLiteral'; +import resolveMeta from './resolveMeta'; import {TranslationFn} from '../../models/v2/translation'; import {ResolveFlowTemplateLiteralsOptions} from '../../models/v2/vars'; diff --git a/packages/react/src/components/adapters/ImageComponent.tsx b/packages/react/src/components/adapters/ImageComponent.tsx index dca1c2f0..94817347 100644 --- a/packages/react/src/components/adapters/ImageComponent.tsx +++ b/packages/react/src/components/adapters/ImageComponent.tsx @@ -16,12 +16,12 @@ * under the License. */ -import {CSSProperties, FC, SyntheticEvent} from 'react'; import {extractEmojiFromUri, isEmojiUri} from '@asgardeo/browser'; +import {CSSProperties, FC, SyntheticEvent} from 'react'; import useTheme from '../../contexts/Theme/useTheme'; import {AdapterProps} from '../../models/adapters'; -const DEFAULT_EMOJI_CONTAINER_HEIGHT = '4em'; +const DEFAULT_EMOJI_CONTAINER_HEIGHT: string = '4em'; /** * Image component for sign-up forms. @@ -56,11 +56,14 @@ const ImageComponent: FC = ({component}: AdapterProps) => { // 'auto' values both collapse to 0 when the parent has no defined height. // Priority: explicit height → explicit width (square) → fallback constant. const isConcrete = (v: string): boolean => v !== 'auto' && !v.endsWith('%'); - const containerHeight: string = isConcrete(cssHeight) - ? cssHeight - : isConcrete(cssWidth) - ? cssWidth - : DEFAULT_EMOJI_CONTAINER_HEIGHT; + let containerHeight: string; + if (isConcrete(cssHeight)) { + containerHeight = cssHeight; + } else if (isConcrete(cssWidth)) { + containerHeight = cssWidth; + } else { + containerHeight = DEFAULT_EMOJI_CONTAINER_HEIGHT; + } return (
diff --git a/packages/react/src/components/presentation/auth/AuthOptionFactory.tsx b/packages/react/src/components/presentation/auth/AuthOptionFactory.tsx index 3acb4308..fc9feb21 100644 --- a/packages/react/src/components/presentation/auth/AuthOptionFactory.tsx +++ b/packages/react/src/components/presentation/auth/AuthOptionFactory.tsx @@ -82,9 +82,9 @@ const resolveEmojiUrisInHtml = (html: string): string => { return `${emoji}`; }, ); - return withEmojiImages.replace(/emoji:([^\s"<>&]+)/g, (_: string, rest: string): string => { - return isEmojiUri(`emoji:${rest}`) ? rest : `emoji:${rest}`; - }); + return withEmojiImages.replace(/emoji:([^\s"<>&]+)/g, (_: string, rest: string): string => + isEmojiUri(`emoji:${rest}`) ? rest : `emoji:${rest}`, + ); }; /** Ensures rich-text content (including all inner elements from the server) always word-wraps. */ @@ -374,11 +374,11 @@ const createAuthComponentFromFlow = ( key={key} variant={variant} style={{ + marginBottom: 2, textAlign: typeof component?.['align'] === 'string' ? (component['align'] as React.CSSProperties['textAlign']) : 'left', - marginBottom: 2, }} > {resolve(component.label)} diff --git a/packages/react/src/components/presentation/auth/SignIn/v2/BaseSignIn.tsx b/packages/react/src/components/presentation/auth/SignIn/v2/BaseSignIn.tsx index 909b66b2..fac01526 100644 --- a/packages/react/src/components/presentation/auth/SignIn/v2/BaseSignIn.tsx +++ b/packages/react/src/components/presentation/auth/SignIn/v2/BaseSignIn.tsx @@ -617,9 +617,6 @@ const BaseSignInContent: FC = ({ * ``` */ const BaseSignIn: FC = ({preferences, ...rest}: BaseSignInProps): ReactElement => { - const {theme} = useTheme(); - const styles: any = useStyles(theme, theme.vars.colors.text.primary); - const content: ReactElement = ( From 4b03cf00312cbbd8cb22f4b9e6da48eb67e974b3 Mon Sep 17 00:00:00 2001 From: Brion Date: Sun, 15 Mar 2026 01:15:17 +0530 Subject: [PATCH 08/11] =?UTF-8?q?Add=20changeset=20=F0=9F=A6=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .changeset/forty-rabbits-leave.md | 6 ++++++ .../src/utils/v2/parseFlowTemplateLiteral.ts | 12 ++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 .changeset/forty-rabbits-leave.md diff --git a/.changeset/forty-rabbits-leave.md b/.changeset/forty-rabbits-leave.md new file mode 100644 index 00000000..329a3693 --- /dev/null +++ b/.changeset/forty-rabbits-leave.md @@ -0,0 +1,6 @@ +--- +'@asgardeo/javascript': minor +'@asgardeo/react': minor +--- + +Add Emoji support for Image + Fix issues in component generation diff --git a/packages/javascript/src/utils/v2/parseFlowTemplateLiteral.ts b/packages/javascript/src/utils/v2/parseFlowTemplateLiteral.ts index 2832c450..a2755ea4 100644 --- a/packages/javascript/src/utils/v2/parseFlowTemplateLiteral.ts +++ b/packages/javascript/src/utils/v2/parseFlowTemplateLiteral.ts @@ -56,10 +56,10 @@ export interface FlowTemplateLiteralResult { * e.g. `"signin:heading"` from `"{{ t(signin:heading) }}"`. */ key?: string; - /** The type of flow template literal that was detected */ - type: FlowTemplateLiteralType; /** The original template literal content before parsing */ originalValue: string; + /** The type of flow template literal that was detected */ + type: FlowTemplateLiteralType; } /** @@ -103,7 +103,7 @@ export default function parseFlowTemplateLiteral(content: string): FlowTemplateL const match: RegExpExecArray | null = FLOW_TEMPLATE_FUNCTION_REGEX.exec(content); if (!match) { - return {type: FlowTemplateLiteralType.UNKNOWN, originalValue}; + return {originalValue, type: FlowTemplateLiteralType.UNKNOWN}; } const [, functionName, rawKey] = match; @@ -111,10 +111,10 @@ export default function parseFlowTemplateLiteral(content: string): FlowTemplateL switch (functionName as FlowTemplateLiteralType) { case FlowTemplateLiteralType.TRANSLATION: - return {type: FlowTemplateLiteralType.TRANSLATION, key, originalValue}; + return {key, originalValue, type: FlowTemplateLiteralType.TRANSLATION}; case FlowTemplateLiteralType.META: - return {type: FlowTemplateLiteralType.META, key, originalValue}; + return {key, originalValue, type: FlowTemplateLiteralType.META}; default: - return {type: FlowTemplateLiteralType.UNKNOWN, originalValue}; + return {originalValue, type: FlowTemplateLiteralType.UNKNOWN}; } } From 2399a879c7425e66c658d5d6449abd88efdeddf6 Mon Sep 17 00:00:00 2001 From: Brion Date: Sun, 15 Mar 2026 01:15:34 +0530 Subject: [PATCH 09/11] Refactor code structure for improved readability and maintainability --- packages/react-router/package.json | 1 + packages/tanstack-router/package.json | 7 +- pnpm-lock.yaml | 3409 +++++++++++++++++++++++-- 3 files changed, 3170 insertions(+), 247 deletions(-) diff --git a/packages/react-router/package.json b/packages/react-router/package.json index f51f5f20..ff4fc5e2 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -59,6 +59,7 @@ "vitest": "3.1.3" }, "peerDependencies": { + "@asgardeo/react": ">=0.1.0", "react": ">=19.1.4", "react-router": ">=6.30.1" }, diff --git a/packages/tanstack-router/package.json b/packages/tanstack-router/package.json index 8a15aab3..ed9deb64 100644 --- a/packages/tanstack-router/package.json +++ b/packages/tanstack-router/package.json @@ -60,8 +60,9 @@ "vitest": "3.1.3" }, "peerDependencies": { - "react": ">=19.1.4", - "@tanstack/react-router": ">=1.134.4" + "@asgardeo/react": ">=0.1.0", + "@tanstack/react-router": ">=1.134.4", + "react": ">=19.1.4" }, "dependencies": { "tslib": "2.8.1" @@ -69,4 +70,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ed628d96..1e9c1d08 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,7 +58,7 @@ importers: version: 0.5.1 '@changesets/cli': specifier: 2.29.8 - version: 2.29.8(@types/node@24.0.3) + version: 2.29.8(@types/node@24.12.0) '@playwright/test': specifier: ^1.58.2 version: 1.58.2 @@ -137,7 +137,7 @@ importers: version: 22.15.3 '@vitest/browser': specifier: 3.1.3 - version: 3.1.3(playwright@1.55.1)(vite@6.4.1(@types/node@22.15.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))(vitest@3.1.3) + version: 3.1.3(playwright@1.55.1)(vite@6.4.1(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))(vitest@3.1.3) '@wso2/eslint-plugin': specifier: 'catalog:' version: https://codeload.github.com/brionmario/wso2-ui-configs/tar.gz/d3041825a4f8f235c8f9fa36b55cf29d54e791c8#path:packages/eslint-plugin(eslint@8.57.0)(typescript@5.7.2) @@ -173,7 +173,7 @@ importers: version: 5.7.2 vitest: specifier: 3.1.3 - version: 3.1.3(@types/node@22.15.3)(@vitest/browser@3.1.3)(jiti@2.6.0)(jsdom@27.4.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + version: 3.1.3(@types/node@22.15.3)(@vitest/browser@3.1.3)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) packages/express: dependencies: @@ -213,7 +213,7 @@ importers: version: 5.7.2 vitest: specifier: 3.1.3 - version: 3.1.3(@types/node@22.15.3)(@vitest/browser@3.1.3)(jiti@2.6.0)(jsdom@27.4.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + version: 3.1.3(@types/node@22.15.3)(@vitest/browser@3.1.3)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) packages/i18n: dependencies: @@ -247,7 +247,7 @@ importers: version: 5.7.2 vitest: specifier: 3.1.3 - version: 3.1.3(@types/node@22.15.30)(@vitest/browser@3.1.3)(jiti@2.6.0)(jsdom@27.4.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + version: 3.1.3(@types/node@22.15.30)(@vitest/browser@3.1.3)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) packages/javascript: dependencies: @@ -287,7 +287,7 @@ importers: version: 5.7.2 vitest: specifier: 3.1.3 - version: 3.1.3(@types/node@22.15.30)(@vitest/browser@3.1.3)(jiti@2.6.0)(jsdom@27.4.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + version: 3.1.3(@types/node@22.15.30)(@vitest/browser@3.1.3)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) packages/nextjs: dependencies: @@ -327,7 +327,7 @@ importers: version: 8.57.0 next: specifier: 15.5.12 - version: 15.5.12(@playwright/test@1.58.2)(react-dom@19.1.4(react@19.1.4))(react@19.1.4)(sass@1.92.1) + version: 15.5.12(@playwright/test@1.58.2)(react-dom@19.2.3(react@19.1.4))(react@19.1.4)(sass@1.92.1) prettier: specifier: 2.6.2 version: 2.6.2 @@ -342,7 +342,7 @@ importers: version: 5.7.2 vitest: specifier: 3.1.3 - version: 3.1.3(@types/node@22.15.3)(@vitest/browser@3.1.3)(jiti@2.6.0)(jsdom@27.4.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + version: 3.1.3(@types/node@22.15.3)(@vitest/browser@3.1.3)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) packages/node: dependencies: @@ -400,7 +400,7 @@ importers: version: 5.7.2 vitest: specifier: 3.1.3 - version: 3.1.3(@types/node@22.15.3)(@vitest/browser@3.1.3)(jiti@2.6.0)(jsdom@27.4.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + version: 3.1.3(@types/node@22.15.3)(@vitest/browser@3.1.3)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) packages/react: dependencies: @@ -473,7 +473,7 @@ importers: version: 5.7.2 vitest: specifier: 3.1.3 - version: 3.1.3(@types/node@22.15.3)(@vitest/browser@3.1.3)(jiti@2.6.0)(jsdom@26.1.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + version: 3.1.3(@types/node@22.15.3)(@vitest/browser@3.1.3)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) packages/react-router: dependencies: @@ -513,7 +513,7 @@ importers: version: 19.1.4 react-router: specifier: 7.12.0 - version: 7.12.0(react-dom@19.1.4(react@19.1.4))(react@19.1.4) + version: 7.12.0(react-dom@19.2.3(react@19.1.4))(react@19.1.4) rimraf: specifier: 6.1.0 version: 6.1.0 @@ -522,7 +522,7 @@ importers: version: 5.7.2 vitest: specifier: 3.1.3 - version: 3.1.3(@types/node@22.15.3)(@vitest/browser@3.1.3)(jiti@2.6.0)(jsdom@27.4.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + version: 3.1.3(@types/node@22.15.3)(@vitest/browser@3.1.3)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) packages/tanstack-router: dependencies: @@ -535,10 +535,10 @@ importers: version: link:../react '@tanstack/react-router': specifier: 1.154.7 - version: 1.154.7(react-dom@19.1.4(react@19.1.4))(react@19.1.4) + version: 1.154.7(react-dom@19.2.3(react@19.1.4))(react@19.1.4) '@testing-library/react': specifier: 16.2.0 - version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.4(react@19.1.4))(react@19.1.4) + version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.2.3(react@19.1.4))(react@19.1.4) '@types/node': specifier: 22.15.3 version: 22.15.3 @@ -574,7 +574,7 @@ importers: version: 5.7.2 vitest: specifier: 3.1.3 - version: 3.1.3(@types/node@22.15.3)(@vitest/browser@3.1.3)(jiti@2.6.0)(jsdom@27.4.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + version: 3.1.3(@types/node@22.15.3)(@vitest/browser@3.1.3)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) packages/vue: dependencies: @@ -586,7 +586,7 @@ importers: version: 0.1.3 '@vitejs/plugin-vue': specifier: 5.2.4 - version: 5.2.4(vite@7.1.12(@types/node@20.12.7)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))(vue@3.5.13(typescript@5.1.6)) + version: 5.2.4(vite@7.1.12(@types/node@20.12.7)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))(vue@3.5.13(typescript@5.1.6)) base64url: specifier: 3.0.1 version: 3.0.1 @@ -626,10 +626,10 @@ importers: version: 20.12.7 '@vitest/coverage-v8': specifier: 3.0.8 - version: 3.0.8(vitest@3.0.8(@types/node@20.12.7)(jiti@2.6.0)(jsdom@27.4.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) + version: 3.0.8(vitest@3.0.8(@types/node@20.12.7)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) '@vitest/web-worker': specifier: 3.0.8 - version: 3.0.8(vitest@3.0.8(@types/node@20.12.7)(jiti@2.6.0)(jsdom@27.4.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) + version: 3.0.8(vitest@3.0.8(@types/node@20.12.7)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) '@vue/eslint-config-prettier': specifier: 8.0.0 version: 8.0.0(eslint@8.57.0)(prettier@2.6.2) @@ -680,14 +680,125 @@ importers: version: 5.1.6 vite: specifier: 7.1.12 - version: 7.1.12(@types/node@20.12.7)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + version: 7.1.12(@types/node@20.12.7)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) vitest: specifier: 3.0.8 - version: 3.0.8(@types/node@20.12.7)(jiti@2.6.0)(jsdom@27.4.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + version: 3.0.8(@types/node@20.12.7)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) vue-tsc: specifier: 2.2.2 version: 2.2.2(typescript@5.1.6) + samples/esignet-portal: + dependencies: + '@asgardeo/react': + specifier: workspace:* + version: link:../../packages/react + '@asgardeo/react-router': + specifier: workspace:* + version: link:../../packages/react-router + '@radix-ui/react-dropdown-menu': + specifier: ^2.1.16 + version: 2.1.16(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tailwindcss/vite': + specifier: 4.1.8 + version: 4.1.8(vite@5.4.21(@types/node@24.12.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)) + react: + specifier: ^18.2.0 + version: 18.3.1 + react-dom: + specifier: ^18.2.0 + version: 18.3.1(react@18.3.1) + tailwindcss: + specifier: 4.1.8 + version: 4.1.8 + devDependencies: + '@types/react': + specifier: 19.1.5 + version: 19.1.5 + '@types/react-dom': + specifier: 19.1.5 + version: 19.1.5(@types/react@19.1.5) + '@vitejs/plugin-react': + specifier: ^4.2.0 + version: 4.4.1(vite@5.4.21(@types/node@24.12.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)) + vite: + specifier: ^5.0.0 + version: 5.4.21(@types/node@24.12.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2) + + samples/esignet-portal-next: + dependencies: + '@asgardeo/nextjs': + specifier: workspace:* + version: link:../../packages/nextjs + next: + specifier: 16.1.6 + version: 16.1.6(@playwright/test@1.58.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.92.1) + react: + specifier: 19.2.3 + version: 19.2.3 + react-dom: + specifier: 19.2.3 + version: 19.2.3(react@19.2.3) + devDependencies: + '@tailwindcss/postcss': + specifier: ^4 + version: 4.2.1 + '@types/node': + specifier: ^20 + version: 20.12.7 + '@types/react': + specifier: 19.1.5 + version: 19.1.5 + '@types/react-dom': + specifier: 19.1.5 + version: 19.1.5(@types/react@19.1.5) + eslint: + specifier: ^9 + version: 9.39.4(jiti@2.6.1) + eslint-config-next: + specifier: 16.1.6 + version: 16.1.6(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + tailwindcss: + specifier: ^4 + version: 4.1.8 + typescript: + specifier: ^5 + version: 5.9.3 + + samples/health-portal: + dependencies: + '@asgardeo/react': + specifier: workspace:* + version: link:../../packages/react + '@asgardeo/react-router': + specifier: workspace:* + version: link:../../packages/react-router + '@tailwindcss/vite': + specifier: 4.1.8 + version: 4.1.8(vite@5.4.21(@types/node@24.12.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)) + react: + specifier: ^18.2.0 + version: 18.3.1 + react-dom: + specifier: ^18.2.0 + version: 18.3.1(react@18.3.1) + tailwindcss: + specifier: 4.1.8 + version: 4.1.8 + devDependencies: + '@types/react': + specifier: 19.1.5 + version: 19.1.5 + '@types/react-dom': + specifier: 19.1.5 + version: 19.1.5(@types/react@19.1.5) + '@vitejs/plugin-react': + specifier: ^4.2.0 + version: 4.4.1(vite@5.4.21(@types/node@24.12.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)) + vite: + specifier: ^5.0.0 + version: 5.4.21(@types/node@24.12.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2) + samples/react-tanstack-router: dependencies: '@asgardeo/react': @@ -717,19 +828,19 @@ importers: version: 19.1.5(@types/react@19.1.5) '@vitejs/plugin-basic-ssl': specifier: 2.0.0 - version: 2.0.0(vite@6.4.1(@types/node@24.0.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) + version: 2.0.0(vite@6.4.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) '@vitejs/plugin-react': specifier: 4.4.1 - version: 4.4.1(vite@6.4.1(@types/node@24.0.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) + version: 4.4.1(vite@6.4.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) eslint: specifier: 9.25.0 - version: 9.25.0(jiti@2.6.0) + version: 9.25.0(jiti@2.6.1) eslint-plugin-react-hooks: specifier: 5.2.0 - version: 5.2.0(eslint@9.25.0(jiti@2.6.0)) + version: 5.2.0(eslint@9.25.0(jiti@2.6.1)) eslint-plugin-react-refresh: specifier: 0.4.19 - version: 0.4.19(eslint@9.25.0(jiti@2.6.0)) + version: 0.4.19(eslint@9.25.0(jiti@2.6.1)) globals: specifier: 16.0.0 version: 16.0.0 @@ -738,10 +849,10 @@ importers: version: 5.8.3 typescript-eslint: specifier: 8.30.1 - version: 8.30.1(eslint@9.25.0(jiti@2.6.0))(typescript@5.8.3) + version: 8.30.1(eslint@9.25.0(jiti@2.6.1))(typescript@5.8.3) vite: specifier: 6.4.1 - version: 6.4.1(@types/node@24.0.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + version: 6.4.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) samples/teamspace-react: dependencies: @@ -790,7 +901,7 @@ importers: version: 9.25.0 '@tailwindcss/vite': specifier: 4.1.8 - version: 4.1.8(vite@6.4.1(@types/node@24.0.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) + version: 4.1.8(vite@6.4.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) '@types/react': specifier: 19.1.5 version: 19.1.5 @@ -799,22 +910,22 @@ importers: version: 19.1.5(@types/react@19.1.5) '@vitejs/plugin-basic-ssl': specifier: 2.0.0 - version: 2.0.0(vite@6.4.1(@types/node@24.0.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) + version: 2.0.0(vite@6.4.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) '@vitejs/plugin-react': specifier: 4.4.1 - version: 4.4.1(vite@6.4.1(@types/node@24.0.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) + version: 4.4.1(vite@6.4.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) autoprefixer: specifier: 10.4.16 version: 10.4.16(postcss@8.4.31) eslint: specifier: 9.25.0 - version: 9.25.0(jiti@2.6.0) + version: 9.25.0(jiti@2.6.1) eslint-plugin-react-hooks: specifier: 5.2.0 - version: 5.2.0(eslint@9.25.0(jiti@2.6.0)) + version: 5.2.0(eslint@9.25.0(jiti@2.6.1)) eslint-plugin-react-refresh: specifier: 0.4.19 - version: 0.4.19(eslint@9.25.0(jiti@2.6.0)) + version: 0.4.19(eslint@9.25.0(jiti@2.6.1)) globals: specifier: 16.0.0 version: 16.0.0 @@ -832,16 +943,69 @@ importers: version: 5.8.3 typescript-eslint: specifier: 8.30.1 - version: 8.30.1(eslint@9.25.0(jiti@2.6.0))(typescript@5.8.3) + version: 8.30.1(eslint@9.25.0(jiti@2.6.1))(typescript@5.8.3) vite: specifier: 6.4.1 - version: 6.4.1(@types/node@24.0.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + version: 6.4.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + + samples/vite-project: + dependencies: + '@asgardeo/react': + specifier: workspace:* + version: link:../../packages/react + react: + specifier: 19.1.4 + version: 19.1.4 + react-dom: + specifier: 19.1.4 + version: 19.1.4(react@19.1.4) + devDependencies: + '@eslint/js': + specifier: ^9.39.1 + version: 9.39.4 + '@types/node': + specifier: ^24.10.1 + version: 24.12.0 + '@types/react': + specifier: 19.1.5 + version: 19.1.5 + '@types/react-dom': + specifier: 19.1.5 + version: 19.1.5(@types/react@19.1.5) + '@vitejs/plugin-react': + specifier: ^5.1.1 + version: 5.2.0(vite@7.3.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) + eslint: + specifier: ^9.39.1 + version: 9.39.4(jiti@2.6.1) + eslint-plugin-react-hooks: + specifier: ^7.0.1 + version: 7.0.1(eslint@9.39.4(jiti@2.6.1)) + eslint-plugin-react-refresh: + specifier: ^0.4.24 + version: 0.4.26(eslint@9.39.4(jiti@2.6.1)) + globals: + specifier: ^16.5.0 + version: 16.5.0 + typescript: + specifier: ~5.9.3 + version: 5.9.3 + typescript-eslint: + specifier: ^8.48.0 + version: 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + vite: + specifier: ^7.3.1 + version: 7.3.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) packages: '@acemir/cssom@0.9.31': resolution: {integrity: sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA==} + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} @@ -871,14 +1035,26 @@ packages: resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.29.0': + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.27.2': resolution: {integrity: sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==} engines: {node: '>=6.9.0'} + '@babel/compat-data@7.29.0': + resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} + engines: {node: '>=6.9.0'} + '@babel/core@7.27.1': resolution: {integrity: sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==} engines: {node: '>=6.9.0'} + '@babel/core@7.29.0': + resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} + engines: {node: '>=6.9.0'} + '@babel/eslint-parser@7.28.5': resolution: {integrity: sha512-fcdRcWahONYo+JRnJg1/AekOacGvKx12Gu0qXJXFi2WBqQA1i7+O5PaxRB7kxE/Op94dExnCiiar6T09pvdHpA==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} @@ -890,20 +1066,42 @@ packages: resolution: {integrity: sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==} engines: {node: '>=6.9.0'} + '@babel/generator@7.29.1': + resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} + engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.27.2': resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.28.6': + resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.27.1': resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.28.6': + resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-transforms@7.27.1': resolution: {integrity: sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.28.6': + resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-plugin-utils@7.27.1': resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} engines: {node: '>=6.9.0'} @@ -916,6 +1114,10 @@ packages: resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.27.1': resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} @@ -924,11 +1126,20 @@ packages: resolution: {integrity: sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==} engines: {node: '>=6.9.0'} + '@babel/helpers@7.28.6': + resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} + engines: {node: '>=6.9.0'} + '@babel/parser@7.27.2': resolution: {integrity: sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==} engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.29.0': + resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-transform-react-jsx-self@7.27.1': resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} engines: {node: '>=6.9.0'} @@ -949,14 +1160,26 @@ packages: resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} + '@babel/template@7.28.6': + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.27.1': resolution: {integrity: sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.29.0': + resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} + engines: {node: '>=6.9.0'} + '@babel/types@7.27.1': resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==} engines: {node: '>=6.9.0'} + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + engines: {node: '>=6.9.0'} + '@bcoe/v8-coverage@1.0.2': resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} @@ -1122,6 +1345,12 @@ packages: '@emotion/weak-memoize@0.4.0': resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + '@esbuild/aix-ppc64@0.25.9': resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==} engines: {node: '>=18'} @@ -1134,6 +1363,18 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.27.4': + resolution: {integrity: sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm64@0.25.9': resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==} engines: {node: '>=18'} @@ -1146,6 +1387,18 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.27.4': + resolution: {integrity: sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + '@esbuild/android-arm@0.25.9': resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==} engines: {node: '>=18'} @@ -1158,6 +1411,18 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.27.4': + resolution: {integrity: sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + '@esbuild/android-x64@0.25.9': resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==} engines: {node: '>=18'} @@ -1170,6 +1435,18 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.27.4': + resolution: {integrity: sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-arm64@0.25.9': resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==} engines: {node: '>=18'} @@ -1182,6 +1459,18 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.27.4': + resolution: {integrity: sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + '@esbuild/darwin-x64@0.25.9': resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==} engines: {node: '>=18'} @@ -1194,6 +1483,18 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.27.4': + resolution: {integrity: sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-arm64@0.25.9': resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==} engines: {node: '>=18'} @@ -1206,6 +1507,18 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.27.4': + resolution: {integrity: sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + '@esbuild/freebsd-x64@0.25.9': resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==} engines: {node: '>=18'} @@ -1218,6 +1531,18 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.27.4': + resolution: {integrity: sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm64@0.25.9': resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==} engines: {node: '>=18'} @@ -1230,6 +1555,18 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.27.4': + resolution: {integrity: sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + '@esbuild/linux-arm@0.25.9': resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==} engines: {node: '>=18'} @@ -1242,6 +1579,18 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.27.4': + resolution: {integrity: sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-ia32@0.25.9': resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==} engines: {node: '>=18'} @@ -1254,6 +1603,18 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.27.4': + resolution: {integrity: sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-loong64@0.25.9': resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==} engines: {node: '>=18'} @@ -1266,6 +1627,18 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.27.4': + resolution: {integrity: sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-mips64el@0.25.9': resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==} engines: {node: '>=18'} @@ -1278,6 +1651,18 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.27.4': + resolution: {integrity: sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-ppc64@0.25.9': resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==} engines: {node: '>=18'} @@ -1290,6 +1675,18 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.27.4': + resolution: {integrity: sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-riscv64@0.25.9': resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==} engines: {node: '>=18'} @@ -1302,6 +1699,18 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.27.4': + resolution: {integrity: sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-s390x@0.25.9': resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==} engines: {node: '>=18'} @@ -1314,8 +1723,20 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.9': - resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==} + '@esbuild/linux-s390x@0.27.4': + resolution: {integrity: sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.25.9': + resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==} engines: {node: '>=18'} cpu: [x64] os: [linux] @@ -1326,6 +1747,12 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.27.4': + resolution: {integrity: sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-arm64@0.25.9': resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==} engines: {node: '>=18'} @@ -1338,6 +1765,18 @@ packages: cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-arm64@0.27.4': + resolution: {integrity: sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + '@esbuild/netbsd-x64@0.25.9': resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==} engines: {node: '>=18'} @@ -1350,6 +1789,12 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.27.4': + resolution: {integrity: sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.25.9': resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==} engines: {node: '>=18'} @@ -1362,6 +1807,18 @@ packages: cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.27.4': + resolution: {integrity: sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + '@esbuild/openbsd-x64@0.25.9': resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==} engines: {node: '>=18'} @@ -1374,6 +1831,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.27.4': + resolution: {integrity: sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/openharmony-arm64@0.25.9': resolution: {integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==} engines: {node: '>=18'} @@ -1386,6 +1849,18 @@ packages: cpu: [arm64] os: [openharmony] + '@esbuild/openharmony-arm64@0.27.4': + resolution: {integrity: sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + '@esbuild/sunos-x64@0.25.9': resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==} engines: {node: '>=18'} @@ -1398,6 +1873,18 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.27.4': + resolution: {integrity: sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-arm64@0.25.9': resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==} engines: {node: '>=18'} @@ -1410,6 +1897,18 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.27.4': + resolution: {integrity: sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-ia32@0.25.9': resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==} engines: {node: '>=18'} @@ -1422,6 +1921,18 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.27.4': + resolution: {integrity: sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + '@esbuild/win32-x64@0.25.9': resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==} engines: {node: '>=18'} @@ -1434,24 +1945,48 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.27.4': + resolution: {integrity: sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.8.0': resolution: {integrity: sha512-MJQFqrZgcW0UNYLGOuQpey/oTN59vyWwplvCGZztn1cKz9agZPPYpJB7h2OMmuu7VLqkvEjN8feFZJmxNF9D+Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/eslint-utils@4.9.1': + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/regexpp@4.12.1': resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint/config-array@0.20.0': resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-array@0.21.2': + resolution: {integrity: sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-helpers@0.2.2': resolution: {integrity: sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-helpers@0.4.2': + resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@0.13.0': resolution: {integrity: sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1460,6 +1995,10 @@ packages: resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@0.17.0': + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/eslintrc@2.1.4': resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1468,6 +2007,10 @@ packages: resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/eslintrc@3.3.5': + resolution: {integrity: sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/js@8.57.0': resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1476,10 +2019,18 @@ packages: resolution: {integrity: sha512-iWhsUS8Wgxz9AXNfvfOPFSW4VfMXdVhp1hjkZVhXCrpgh/aLcc45rX6MPu+tIVUWDw0HfNwth7O28M1xDxNf9w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/js@9.39.4': + resolution: {integrity: sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/object-schema@2.1.6': resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/plugin-kit@0.3.4': resolution: {integrity: sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1736,6 +2287,9 @@ packages: resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -1774,27 +2328,48 @@ packages: '@microsoft/tsdoc@0.14.2': resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} + '@napi-rs/wasm-runtime@0.2.12': + resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} + '@napi-rs/wasm-runtime@0.2.4': resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} '@next/env@15.5.12': resolution: {integrity: sha512-pUvdJN1on574wQHjaBfNGDt9Mz5utDSZFsIIQkMzPgNS8ZvT4H2mwOrOIClwsQOb6EGx5M76/CZr6G8i6pSpLg==} + '@next/env@16.1.6': + resolution: {integrity: sha512-N1ySLuZjnAtN3kFnwhAwPvZah8RJxKasD7x1f8shFqhncnWZn4JMfg37diLNuoHsLAlrDfM3g4mawVdtAG8XLQ==} + '@next/eslint-plugin-next@13.5.11': resolution: {integrity: sha512-0qjDhes9UTSxirt/dYzrv20hs8SUhcIOvlEioj5+XucVrBHihnAk6Om7Vzk+VZ2nRE7tcShm/6lH1xSkJ3XMpg==} + '@next/eslint-plugin-next@16.1.6': + resolution: {integrity: sha512-/Qq3PTagA6+nYVfryAtQ7/9FEr/6YVyvOtl6rZnGsbReGLf0jZU6gkpr1FuChAQpvV46a78p4cmHOVP8mbfSMQ==} + '@next/swc-darwin-arm64@15.5.12': resolution: {integrity: sha512-RnRjBtH8S8eXCpUNkQ+543DUc7ys8y15VxmFU9HRqlo9BG3CcBUiwNtF8SNoi2xvGCVJq1vl2yYq+3oISBS0Zg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] + '@next/swc-darwin-arm64@16.1.6': + resolution: {integrity: sha512-wTzYulosJr/6nFnqGW7FrG3jfUUlEf8UjGA0/pyypJl42ExdVgC6xJgcXQ+V8QFn6niSG2Pb8+MIG1mZr2vczw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + '@next/swc-darwin-x64@15.5.12': resolution: {integrity: sha512-nqa9/7iQlboF1EFtNhWxQA0rQstmYRSBGxSM6g3GxvxHxcoeqVXfGNr9stJOme674m2V7r4E3+jEhhGvSQhJRA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] + '@next/swc-darwin-x64@16.1.6': + resolution: {integrity: sha512-BLFPYPDO+MNJsiDWbeVzqvYd4NyuRrEYVB5k2N3JfWncuHAy2IVwMAOlVQDFjj+krkWzhY2apvmekMkfQR0CUQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + '@next/swc-linux-arm64-gnu@15.5.12': resolution: {integrity: sha512-dCzAjqhDHwmoB2M4eYfVKqXs99QdQxNQVpftvP1eGVppamXh/OkDAwV737Zr0KPXEqRUMN4uCjh6mjO+XtF3Mw==} engines: {node: '>= 10'} @@ -1802,6 +2377,13 @@ packages: os: [linux] libc: [glibc] + '@next/swc-linux-arm64-gnu@16.1.6': + resolution: {integrity: sha512-OJYkCd5pj/QloBvoEcJ2XiMnlJkRv9idWA/j0ugSuA34gMT6f5b7vOiCQHVRpvStoZUknhl6/UxOXL4OwtdaBw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + '@next/swc-linux-arm64-musl@15.5.12': resolution: {integrity: sha512-+fpGWvQiITgf7PUtbWY1H7qUSnBZsPPLyyq03QuAKpVoTy/QUx1JptEDTQMVvQhvizCEuNLEeghrQUyXQOekuw==} engines: {node: '>= 10'} @@ -1809,6 +2391,13 @@ packages: os: [linux] libc: [musl] + '@next/swc-linux-arm64-musl@16.1.6': + resolution: {integrity: sha512-S4J2v+8tT3NIO9u2q+S0G5KdvNDjXfAv06OhfOzNDaBn5rw84DGXWndOEB7d5/x852A20sW1M56vhC/tRVbccQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [musl] + '@next/swc-linux-x64-gnu@15.5.12': resolution: {integrity: sha512-jSLvgdRRL/hrFAPqEjJf1fFguC719kmcptjNVDJl26BnJIpjL3KH5h6mzR4mAweociLQaqvt4UyzfbFjgAdDcw==} engines: {node: '>= 10'} @@ -1816,6 +2405,13 @@ packages: os: [linux] libc: [glibc] + '@next/swc-linux-x64-gnu@16.1.6': + resolution: {integrity: sha512-2eEBDkFlMMNQnkTyPBhQOAyn2qMxyG2eE7GPH2WIDGEpEILcBPI/jdSv4t6xupSP+ot/jkfrCShLAa7+ZUPcJQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [glibc] + '@next/swc-linux-x64-musl@15.5.12': resolution: {integrity: sha512-/uaF0WfmYqQgLfPmN6BvULwxY0dufI2mlN2JbOKqqceZh1G4hjREyi7pg03zjfyS6eqNemHAZPSoP84x17vo6w==} engines: {node: '>= 10'} @@ -1823,18 +2419,37 @@ packages: os: [linux] libc: [musl] + '@next/swc-linux-x64-musl@16.1.6': + resolution: {integrity: sha512-oicJwRlyOoZXVlxmIMaTq7f8pN9QNbdes0q2FXfRsPhfCi8n8JmOZJm5oo1pwDaFbnnD421rVU409M3evFbIqg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [musl] + '@next/swc-win32-arm64-msvc@15.5.12': resolution: {integrity: sha512-xhsL1OvQSfGmlL5RbOmU+FV120urrgFpYLq+6U8C6KIym32gZT6XF/SDE92jKzzlPWskkbjOKCpqk5m4i8PEfg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] + '@next/swc-win32-arm64-msvc@16.1.6': + resolution: {integrity: sha512-gQmm8izDTPgs+DCWH22kcDmuUp7NyiJgEl18bcr8irXA5N2m2O+JQIr6f3ct42GOs9c0h8QF3L5SzIxcYAAXXw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + '@next/swc-win32-x64-msvc@15.5.12': resolution: {integrity: sha512-Z1Dh6lhFkxvBDH1FoW6OU/L6prYwPSlwjLiZkExIAh8fbP6iI/M7iGTQAJPYJ9YFlWobCZ1PHbchFhFYb2ADkw==} engines: {node: '>= 10'} cpu: [x64] os: [win32] + '@next/swc-win32-x64-msvc@16.1.6': + resolution: {integrity: sha512-NRfO39AIrzBnixKbjuo2YiYhB6o9d8v/ymU9m/Xk8cyVk+k7XylniXkHwjs4s70wedVffc6bQNbufk5v0xEm0A==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} @@ -1850,6 +2465,10 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@nolyfill/is-core-module@1.0.39': + resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} + engines: {node: '>=12.4.0'} + '@nx/nx-darwin-arm64@20.8.1': resolution: {integrity: sha512-Gat4Io66cV70Oa1CjrMJPsEx5ICpAGayv9hejOtBUEDb6XjR12L2e4wV+4EHliF0UbEcuZAr8/lTROEPk0RGWQ==} engines: {node: '>= 10'} @@ -2021,6 +2640,35 @@ packages: '@polka/url@1.0.0-next.29': resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} + '@radix-ui/primitive@1.1.3': + resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} + + '@radix-ui/react-arrow@1.1.7': + resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} + peerDependencies: + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5 + 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-collection@1.1.7': + resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} + peerDependencies: + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5 + 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-compose-refs@1.1.2': resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} peerDependencies: @@ -2030,8 +2678,26 @@ packages: '@types/react': optional: true - '@radix-ui/react-label@2.1.7': - resolution: {integrity: sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==} + '@radix-ui/react-context@1.1.2': + resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} + peerDependencies: + '@types/react': 19.1.5 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-direction@1.1.1': + resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} + peerDependencies: + '@types/react': 19.1.5 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dismissable-layer@1.1.11': + resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} peerDependencies: '@types/react': 19.1.5 '@types/react-dom': 19.1.5 @@ -2043,8 +2709,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-primitive@2.1.3': - resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} + '@radix-ui/react-dropdown-menu@2.1.16': + resolution: {integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==} peerDependencies: '@types/react': 19.1.5 '@types/react-dom': 19.1.5 @@ -2056,8 +2722,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-slot@1.2.3': - resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} + '@radix-ui/react-focus-guards@1.1.3': + resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} peerDependencies: '@types/react': 19.1.5 react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -2065,72 +2731,263 @@ packages: '@types/react': optional: true - '@rollup/plugin-commonjs@25.0.7': - resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} - engines: {node: '>=14.0.0'} + '@radix-ui/react-focus-scope@1.1.7': + resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} peerDependencies: - rollup: ^2.68.0||^3.0.0||^4.0.0 + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5 + 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: - rollup: + '@types/react': + optional: true + '@types/react-dom': optional: true - '@rollup/plugin-image@3.0.3': - resolution: {integrity: sha512-qXWQwsXpvD4trSb8PeFPFajp8JLpRtqqOeNYRUKnEQNHm7e5UP7fuSRcbjQAJ7wDZBbnJvSdY5ujNBQd9B1iFg==} - engines: {node: '>=14.0.0'} + '@radix-ui/react-id@1.1.1': + resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + '@types/react': 19.1.5 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - rollup: + '@types/react': optional: true - '@rollup/plugin-inject@5.0.5': - resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} - engines: {node: '>=14.0.0'} + '@radix-ui/react-label@2.1.7': + resolution: {integrity: sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5 + 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: - rollup: + '@types/react': + optional: true + '@types/react-dom': optional: true - '@rollup/plugin-node-resolve@15.2.3': - resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} - engines: {node: '>=14.0.0'} + '@radix-ui/react-menu@2.1.16': + resolution: {integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==} peerDependencies: - rollup: ^2.78.0||^3.0.0||^4.0.0 + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5 + 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: - rollup: + '@types/react': + optional: true + '@types/react-dom': optional: true - '@rollup/plugin-typescript@11.1.6': - resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==} - engines: {node: '>=14.0.0'} + '@radix-ui/react-popper@1.2.8': + resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==} peerDependencies: - rollup: ^2.14.0||^3.0.0||^4.0.0 - tslib: '*' - typescript: '>=3.7.0' + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5 + 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: - rollup: + '@types/react': optional: true - tslib: + '@types/react-dom': optional: true - '@rollup/pluginutils@4.2.1': - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} - - '@rollup/pluginutils@5.1.4': - resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} - engines: {node: '>=14.0.0'} + '@radix-ui/react-portal@1.1.9': + resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5 + 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: - rollup: + '@types/react': + optional: true + '@types/react-dom': optional: true - '@rollup/rollup-android-arm-eabi@4.32.0': - resolution: {integrity: sha512-G2fUQQANtBPsNwiVFg4zKiPQyjVKZCUdQUol53R8E71J7AsheRMV/Yv/nB8giOcOVqP7//eB5xPqieBYZe9bGg==} - cpu: [arm] - os: [android] + '@radix-ui/react-presence@1.1.5': + resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} + peerDependencies: + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5 + 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.1.3': + resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} + peerDependencies: + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5 + 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.11': + resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==} + peerDependencies: + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5 + 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.2.3': + resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} + peerDependencies: + '@types/react': 19.1.5 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-callback-ref@1.1.1': + resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} + peerDependencies: + '@types/react': 19.1.5 + 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.2.2': + resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} + peerDependencies: + '@types/react': 19.1.5 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-effect-event@0.0.2': + resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} + peerDependencies: + '@types/react': 19.1.5 + 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.1': + resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} + peerDependencies: + '@types/react': 19.1.5 + 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.1': + resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} + peerDependencies: + '@types/react': 19.1.5 + 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.1': + resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} + peerDependencies: + '@types/react': 19.1.5 + 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.1': + resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} + peerDependencies: + '@types/react': 19.1.5 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/rect@1.1.1': + resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} + + '@rolldown/pluginutils@1.0.0-rc.3': + resolution: {integrity: sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==} + + '@rollup/plugin-commonjs@25.0.7': + resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-image@3.0.3': + resolution: {integrity: sha512-qXWQwsXpvD4trSb8PeFPFajp8JLpRtqqOeNYRUKnEQNHm7e5UP7fuSRcbjQAJ7wDZBbnJvSdY5ujNBQd9B1iFg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-inject@5.0.5': + resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-node-resolve@15.2.3': + resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-typescript@11.1.6': + resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.14.0||^3.0.0||^4.0.0 + tslib: '*' + typescript: '>=3.7.0' + peerDependenciesMeta: + rollup: + optional: true + tslib: + optional: true + + '@rollup/pluginutils@4.2.1': + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + + '@rollup/pluginutils@5.1.4': + resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.32.0': + resolution: {integrity: sha512-G2fUQQANtBPsNwiVFg4zKiPQyjVKZCUdQUol53R8E71J7AsheRMV/Yv/nB8giOcOVqP7//eB5xPqieBYZe9bGg==} + cpu: [arm] + os: [android] '@rollup/rollup-android-arm-eabi@4.50.0': resolution: {integrity: sha512-lVgpeQyy4fWN5QYebtW4buT/4kn4p4IJ+kDNB4uYNT5b8c8DLJDg6titg20NIg7E8RWwdWZORW6vUFfrLyG3KQ==} @@ -2360,36 +3217,69 @@ packages: '@tailwindcss/node@4.1.8': resolution: {integrity: sha512-OWwBsbC9BFAJelmnNcrKuf+bka2ZxCE2A4Ft53Tkg4uoiE67r/PMEYwCsourC26E+kmxfwE0hVzMdxqeW+xu7Q==} + '@tailwindcss/node@4.2.1': + resolution: {integrity: sha512-jlx6sLk4EOwO6hHe1oCGm1Q4AN/s0rSrTTPBGPM0/RQ6Uylwq17FuU8IeJJKEjtc6K6O07zsvP+gDO6MMWo7pg==} + '@tailwindcss/oxide-android-arm64@4.1.8': resolution: {integrity: sha512-Fbz7qni62uKYceWYvUjRqhGfZKwhZDQhlrJKGtnZfuNtHFqa8wmr+Wn74CTWERiW2hn3mN5gTpOoxWKk0jRxjg==} engines: {node: '>= 10'} cpu: [arm64] os: [android] + '@tailwindcss/oxide-android-arm64@4.2.1': + resolution: {integrity: sha512-eZ7G1Zm5EC8OOKaesIKuw77jw++QJ2lL9N+dDpdQiAB/c/B2wDh0QPFHbkBVrXnwNugvrbJFk1gK2SsVjwWReg==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [android] + '@tailwindcss/oxide-darwin-arm64@4.1.8': resolution: {integrity: sha512-RdRvedGsT0vwVVDztvyXhKpsU2ark/BjgG0huo4+2BluxdXo8NDgzl77qh0T1nUxmM11eXwR8jA39ibvSTbi7A==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] + '@tailwindcss/oxide-darwin-arm64@4.2.1': + resolution: {integrity: sha512-q/LHkOstoJ7pI1J0q6djesLzRvQSIfEto148ppAd+BVQK0JYjQIFSK3JgYZJa+Yzi0DDa52ZsQx2rqytBnf8Hw==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [darwin] + '@tailwindcss/oxide-darwin-x64@4.1.8': resolution: {integrity: sha512-t6PgxjEMLp5Ovf7uMb2OFmb3kqzVTPPakWpBIFzppk4JE4ix0yEtbtSjPbU8+PZETpaYMtXvss2Sdkx8Vs4XRw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] + '@tailwindcss/oxide-darwin-x64@4.2.1': + resolution: {integrity: sha512-/f/ozlaXGY6QLbpvd/kFTro2l18f7dHKpB+ieXz+Cijl4Mt9AI2rTrpq7V+t04nK+j9XBQHnSMdeQRhbGyt6fw==} + engines: {node: '>= 20'} + cpu: [x64] + os: [darwin] + '@tailwindcss/oxide-freebsd-x64@4.1.8': resolution: {integrity: sha512-g8C8eGEyhHTqwPStSwZNSrOlyx0bhK/V/+zX0Y+n7DoRUzyS8eMbVshVOLJTDDC+Qn9IJnilYbIKzpB9n4aBsg==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] + '@tailwindcss/oxide-freebsd-x64@4.2.1': + resolution: {integrity: sha512-5e/AkgYJT/cpbkys/OU2Ei2jdETCLlifwm7ogMC7/hksI2fC3iiq6OcXwjibcIjPung0kRtR3TxEITkqgn0TcA==} + engines: {node: '>= 20'} + cpu: [x64] + os: [freebsd] + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.8': resolution: {integrity: sha512-Jmzr3FA4S2tHhaC6yCjac3rGf7hG9R6Gf2z9i9JFcuyy0u79HfQsh/thifbYTF2ic82KJovKKkIB6Z9TdNhCXQ==} engines: {node: '>= 10'} cpu: [arm] os: [linux] + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.1': + resolution: {integrity: sha512-Uny1EcVTTmerCKt/1ZuKTkb0x8ZaiuYucg2/kImO5A5Y/kBz41/+j0gxUZl+hTF3xkWpDmHX+TaWhOtba2Fyuw==} + engines: {node: '>= 20'} + cpu: [arm] + os: [linux] + '@tailwindcss/oxide-linux-arm64-gnu@4.1.8': resolution: {integrity: sha512-qq7jXtO1+UEtCmCeBBIRDrPFIVI4ilEQ97qgBGdwXAARrUqSn/L9fUrkb1XP/mvVtoVeR2bt/0L77xx53bPZ/Q==} engines: {node: '>= 10'} @@ -2397,6 +3287,13 @@ packages: os: [linux] libc: [glibc] + '@tailwindcss/oxide-linux-arm64-gnu@4.2.1': + resolution: {integrity: sha512-CTrwomI+c7n6aSSQlsPL0roRiNMDQ/YzMD9EjcR+H4f0I1SQ8QqIuPnsVp7QgMkC1Qi8rtkekLkOFjo7OlEFRQ==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + libc: [glibc] + '@tailwindcss/oxide-linux-arm64-musl@4.1.8': resolution: {integrity: sha512-O6b8QesPbJCRshsNApsOIpzKt3ztG35gfX9tEf4arD7mwNinsoCKxkj8TgEE0YRjmjtO3r9FlJnT/ENd9EVefQ==} engines: {node: '>= 10'} @@ -2404,6 +3301,13 @@ packages: os: [linux] libc: [musl] + '@tailwindcss/oxide-linux-arm64-musl@4.2.1': + resolution: {integrity: sha512-WZA0CHRL/SP1TRbA5mp9htsppSEkWuQ4KsSUumYQnyl8ZdT39ntwqmz4IUHGN6p4XdSlYfJwM4rRzZLShHsGAQ==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + libc: [musl] + '@tailwindcss/oxide-linux-x64-gnu@4.1.8': resolution: {integrity: sha512-32iEXX/pXwikshNOGnERAFwFSfiltmijMIAbUhnNyjFr3tmWmMJWQKU2vNcFX0DACSXJ3ZWcSkzNbaKTdngH6g==} engines: {node: '>= 10'} @@ -2411,6 +3315,13 @@ packages: os: [linux] libc: [glibc] + '@tailwindcss/oxide-linux-x64-gnu@4.2.1': + resolution: {integrity: sha512-qMFzxI2YlBOLW5PhblzuSWlWfwLHaneBE0xHzLrBgNtqN6mWfs+qYbhryGSXQjFYB1Dzf5w+LN5qbUTPhW7Y5g==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + libc: [glibc] + '@tailwindcss/oxide-linux-x64-musl@4.1.8': resolution: {integrity: sha512-s+VSSD+TfZeMEsCaFaHTaY5YNj3Dri8rST09gMvYQKwPphacRG7wbuQ5ZJMIJXN/puxPcg/nU+ucvWguPpvBDg==} engines: {node: '>= 10'} @@ -2418,6 +3329,13 @@ packages: os: [linux] libc: [musl] + '@tailwindcss/oxide-linux-x64-musl@4.2.1': + resolution: {integrity: sha512-5r1X2FKnCMUPlXTWRYpHdPYUY6a1Ar/t7P24OuiEdEOmms5lyqjDRvVY1yy9Rmioh+AunQ0rWiOTPE8F9A3v5g==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + libc: [musl] + '@tailwindcss/oxide-wasm32-wasi@4.1.8': resolution: {integrity: sha512-CXBPVFkpDjM67sS1psWohZ6g/2/cd+cq56vPxK4JeawelxwK4YECgl9Y9TjkE2qfF+9/s1tHHJqrC4SS6cVvSg==} engines: {node: '>=14.0.0'} @@ -2430,22 +3348,53 @@ packages: - '@emnapi/wasi-threads' - tslib + '@tailwindcss/oxide-wasm32-wasi@4.2.1': + resolution: {integrity: sha512-MGFB5cVPvshR85MTJkEvqDUnuNoysrsRxd6vnk1Lf2tbiqNlXpHYZqkqOQalydienEWOHHFyyuTSYRsLfxFJ2Q==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + '@tailwindcss/oxide-win32-arm64-msvc@4.1.8': resolution: {integrity: sha512-7GmYk1n28teDHUjPlIx4Z6Z4hHEgvP5ZW2QS9ygnDAdI/myh3HTHjDqtSqgu1BpRoI4OiLx+fThAyA1JePoENA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] + '@tailwindcss/oxide-win32-arm64-msvc@4.2.1': + resolution: {integrity: sha512-YlUEHRHBGnCMh4Nj4GnqQyBtsshUPdiNroZj8VPkvTZSoHsilRCwXcVKnG9kyi0ZFAS/3u+qKHBdDc81SADTRA==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [win32] + '@tailwindcss/oxide-win32-x64-msvc@4.1.8': resolution: {integrity: sha512-fou+U20j+Jl0EHwK92spoWISON2OBnCazIc038Xj2TdweYV33ZRkS9nwqiUi2d/Wba5xg5UoHfvynnb/UB49cQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] + '@tailwindcss/oxide-win32-x64-msvc@4.2.1': + resolution: {integrity: sha512-rbO34G5sMWWyrN/idLeVxAZgAKWrn5LiR3/I90Q9MkA67s6T1oB0xtTe+0heoBvHSpbU9Mk7i6uwJnpo4u21XQ==} + engines: {node: '>= 20'} + cpu: [x64] + os: [win32] + '@tailwindcss/oxide@4.1.8': resolution: {integrity: sha512-d7qvv9PsM5N3VNKhwVUhpK6r4h9wtLkJ6lz9ZY9aeZgrUWk1Z8VPyqyDT9MZlem7GTGseRQHkeB1j3tC7W1P+A==} engines: {node: '>= 10'} + '@tailwindcss/oxide@4.2.1': + resolution: {integrity: sha512-yv9jeEFWnjKCI6/T3Oq50yQEOqmpmpfzG1hcZsAOaXFQPfzWprWrlHSdGPEF3WQTi8zu8ohC9Mh9J470nT5pUw==} + engines: {node: '>= 20'} + + '@tailwindcss/postcss@4.2.1': + resolution: {integrity: sha512-OEwGIBnXnj7zJeonOh6ZG9woofIjGrd2BORfvE5p9USYKDCZoQmfqLcfNiRWoJlRWLdNPn2IgVZuWAOM4iTYMw==} + '@tailwindcss/vite@4.1.8': resolution: {integrity: sha512-CQ+I8yxNV5/6uGaJjiuymgw0kEQiNKRinYbZXPdx1fk5WgiyReG0VaUx/Xq6aVNSUNJFzxm6o8FNKS5aMaim5A==} peerDependencies: @@ -2519,6 +3468,9 @@ packages: resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + '@tybys/wasm-util@0.9.0': resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} @@ -2568,8 +3520,8 @@ packages: '@types/node@22.15.30': resolution: {integrity: sha512-6Q7lr06bEHdlfplU6YRbgG1SFBdlsfNC4/lX+SkhiTs0cpJkOElmWls8PxDFv4yY/xKb8Y6SO0OmSX4wgqTZbA==} - '@types/node@24.0.3': - resolution: {integrity: sha512-R4I/kzCYAdRLzfiCabn9hxWfbuHS573x+r0dJMkkzThEa7pbrcDWK+9zu3e7aBOouf+rQAciqPFMnxwr0aWgKg==} + '@types/node@24.12.0': + resolution: {integrity: sha512-GYDxsZi3ChgmckRT9HPU0WEhKLP08ev/Yfcq2AstjrDASOYCSXeyjDsHg4v5t4jOj7cyDX3vmprafKlWIG9MXQ==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -2613,6 +3565,14 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/eslint-plugin@8.57.0': + resolution: {integrity: sha512-qeu4rTHR3/IaFORbD16gmjq9+rEs9fGKdX0kF6BKSfi+gCuG3RCKLlSBYzn/bGsY9Tj7KE/DAQStbp8AHJGHEQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.57.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/experimental-utils@5.62.0': resolution: {integrity: sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2636,6 +3596,19 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/parser@8.57.0': + resolution: {integrity: sha512-XZzOmihLIr8AD1b9hL9ccNMzEMWt/dE2u7NyTY9jJG6YNiNthaD5XtUHVF2uCXZ15ng+z2hT3MVuxnUYhq6k1g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/project-service@8.57.0': + resolution: {integrity: sha512-pR+dK0BlxCLxtWfaKQWtYr7MhKmzqZxuii+ZjuFlZlIGRZm22HnXFqa2eY+90MUz8/i80YJmzFGDUsi8dMOV5w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/scope-manager@5.62.0': resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2648,6 +3621,16 @@ packages: resolution: {integrity: sha512-+C0B6ChFXZkuaNDl73FJxRYT0G7ufVPOSQkqkpM/U198wUwUFOtgo1k/QzFh1KjpBitaK7R1tgjVz6o9HmsRPg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.57.0': + resolution: {integrity: sha512-nvExQqAHF01lUM66MskSaZulpPL5pgy5hI5RfrxviLgzZVffB5yYzw27uK/ft8QnKXI2X0LBrHJFr1TaZtAibw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.57.0': + resolution: {integrity: sha512-LtXRihc5ytjJIQEH+xqjB0+YgsV4/tW35XKX3GTZHpWtcC8SPkT/d4tqdf1cKtesryHm2bgp6l555NYcT2NLvA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/type-utils@6.21.0': resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} engines: {node: ^16.0.0 || >=18.0.0} @@ -2665,6 +3648,13 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/type-utils@8.57.0': + resolution: {integrity: sha512-yjgh7gmDcJ1+TcEg8x3uWQmn8ifvSupnPfjP21twPKrDP/pTHlEQgmKcitzF/rzPSmv7QjJ90vRpN4U+zoUjwQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/types@5.62.0': resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2677,6 +3667,10 @@ packages: resolution: {integrity: sha512-81KawPfkuulyWo5QdyG/LOKbspyyiW+p4vpn4bYO7DM/hZImlVnFwrpCTnmNMOt8CvLRr5ojI9nU1Ekpw4RcEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.57.0': + resolution: {integrity: sha512-dTLI8PEXhjUC7B9Kre+u0XznO696BhXcTlOn0/6kf1fHaQW8+VjJAVHJ3eTI14ZapTxdkOmc80HblPQLaEeJdg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@5.62.0': resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2701,6 +3695,12 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/typescript-estree@8.57.0': + resolution: {integrity: sha512-m7faHcyVg0BT3VdYTlX8GdJEM7COexXxS6KqGopxdtkQRvBanK377QDHr4W/vIPAR+ah9+B/RclSW5ldVniO1Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/utils@5.62.0': resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2720,6 +3720,13 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/utils@8.57.0': + resolution: {integrity: sha512-5iIHvpD3CZe06riAsbNxxreP+MuYgVUsV0n4bwLH//VJmgtt54sQeY2GszntJ4BjYCpMzrfVh2SBnUQTtys2lQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/visitor-keys@5.62.0': resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2732,24 +3739,137 @@ packages: resolution: {integrity: sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.57.0': + resolution: {integrity: sha512-zm6xx8UT/Xy2oSr2ZXD0pZo7Jx2XsCoID2IUh9YSTFRu7z+WdwYTRk6LhUftm1crwqbuoF6I8zAFeCMw0YjwDg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - '@vitejs/plugin-basic-ssl@2.0.0': - resolution: {integrity: sha512-gc9Tjg8bUxBVSTzeWT3Njc0Cl3PakHFKdNfABnZWiUgbxqmHDEn7uECv3fHVylxoYgNzAcmU7ZrILz+BwSo3sA==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - peerDependencies: - vite: ^6.0.0 + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} + cpu: [arm] + os: [android] - '@vitejs/plugin-react@4.4.1': - resolution: {integrity: sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 + '@unrs/resolver-binding-android-arm64@1.11.1': + resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} + cpu: [arm64] + os: [android] - '@vitejs/plugin-vue@5.2.4': - resolution: {integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==} - engines: {node: ^18.0.0 || >=20.0.0} + '@unrs/resolver-binding-darwin-arm64@1.11.1': + resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} + cpu: [arm64] + os: [darwin] + + '@unrs/resolver-binding-darwin-x64@1.11.1': + resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} + cpu: [x64] + os: [darwin] + + '@unrs/resolver-binding-freebsd-x64@1.11.1': + resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} + cpu: [x64] + os: [freebsd] + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} + cpu: [arm64] + os: [win32] + + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} + cpu: [ia32] + os: [win32] + + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} + cpu: [x64] + os: [win32] + + '@vitejs/plugin-basic-ssl@2.0.0': + resolution: {integrity: sha512-gc9Tjg8bUxBVSTzeWT3Njc0Cl3PakHFKdNfABnZWiUgbxqmHDEn7uECv3fHVylxoYgNzAcmU7ZrILz+BwSo3sA==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + peerDependencies: + vite: ^6.0.0 + + '@vitejs/plugin-react@4.4.1': + resolution: {integrity: sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 + + '@vitejs/plugin-react@5.2.0': + resolution: {integrity: sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + + '@vitejs/plugin-vue@5.2.4': + resolution: {integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==} + engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: 7.1.12 vue: ^3.2.25 @@ -2988,6 +4108,9 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@6.14.0: + resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} + ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} @@ -3025,6 +4148,10 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-hidden@1.2.6: + resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} + engines: {node: '>=10'} + aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} @@ -3135,6 +4262,11 @@ packages: resolution: {integrity: sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==} engines: {node: '>=6.0.0'} + baseline-browser-mapping@2.10.8: + resolution: {integrity: sha512-PCLz/LXGBsNTErbtB6i5u4eLpHeMfi93aUv5duMmj6caNu6IphS4q6UevDnL36sZQv9lrP11dbPKGMaXPwMKfQ==} + engines: {node: '>=6.0.0'} + hasBin: true + better-path-resolve@1.0.0: resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} engines: {node: '>=4'} @@ -3617,6 +4749,9 @@ packages: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} + detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3708,6 +4843,10 @@ packages: resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} engines: {node: '>=10.13.0'} + enhanced-resolve@5.20.0: + resolution: {integrity: sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ==} + engines: {node: '>=10.13.0'} + enquirer@2.3.6: resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} engines: {node: '>=8.6'} @@ -3785,6 +4924,11 @@ packages: peerDependencies: esbuild: '>=0.14.0 <=0.25.x' + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + esbuild@0.25.9: resolution: {integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==} engines: {node: '>=18'} @@ -3795,6 +4939,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.27.4: + resolution: {integrity: sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -3835,6 +4984,15 @@ packages: eslint-plugin-react: ^7.28.0 eslint-plugin-react-hooks: ^4.3.0 + eslint-config-next@16.1.6: + resolution: {integrity: sha512-vKq40io2B0XtkkNDYyleATwblNt8xuh3FWp8SpSz3pt7P01OkBFlKsJZ2mWt5WsCySlDQLckb1zMY9yE9Qy0LA==} + peerDependencies: + eslint: '>=9.0.0' + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + eslint-config-prettier@8.10.0: resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} hasBin: true @@ -3844,6 +5002,19 @@ packages: eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + eslint-import-resolver-typescript@3.10.1: + resolution: {integrity: sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + eslint-plugin-import-x: '*' + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true + eslint-module-utils@2.12.1: resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==} engines: {node: '>=4'} @@ -3954,11 +5125,22 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + eslint-plugin-react-hooks@7.0.1: + resolution: {integrity: sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==} + engines: {node: '>=18'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + eslint-plugin-react-refresh@0.4.19: resolution: {integrity: sha512-eyy8pcr/YxSYjBoqIFSrlbn9i/xvxUFa8CjzAYo9cFjgGXqq1hyjihcpZvxRLalpaWmueWR81xn7vuKmAFijDQ==} peerDependencies: eslint: '>=8.40' + eslint-plugin-react-refresh@0.4.26: + resolution: {integrity: sha512-1RETEylht2O6FM/MvgnyvT+8K21wLqDNg4qD51Zj3guhjt433XbnnkVttHMyaVyAFD03QSV4LPS5iE3VQmO7XQ==} + peerDependencies: + eslint: '>=8.40' + eslint-plugin-react@7.37.5: resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} engines: {node: '>=4'} @@ -4027,6 +5209,10 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-visitor-keys@5.0.1: + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + eslint@8.57.0: resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4043,6 +5229,16 @@ packages: jiti: optional: true + eslint@9.39.4: + resolution: {integrity: sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + espree@10.4.0: resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4107,6 +5303,10 @@ packages: fast-diff@1.3.0: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + engines: {node: '>=8.6.0'} + fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} @@ -4282,6 +5482,10 @@ packages: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + get-proto@1.0.1: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} @@ -4356,6 +5560,14 @@ packages: resolution: {integrity: sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==} engines: {node: '>=18'} + globals@16.4.0: + resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==} + engines: {node: '>=18'} + + globals@16.5.0: + resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} + engines: {node: '>=18'} + globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -4426,6 +5638,12 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true + hermes-estree@0.25.1: + resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} + + hermes-parser@0.25.1: + resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} + hmac-drbg@1.0.1: resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} @@ -4492,6 +5710,10 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + immutable@4.3.7: resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} @@ -4562,6 +5784,9 @@ packages: resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} engines: {node: '>=6'} + is-bun-module@2.0.0: + resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} + is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -4751,6 +5976,10 @@ packages: resolution: {integrity: sha512-VXe6RjJkBPj0ohtqaO8vSWP3ZhAKo66fKrFNCll4BTcwljPLz03pCbaNKfzGP5MbrCYcbJ7v0nOYYwUzTEIdXQ==} hasBin: true + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + hasBin: true + jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} @@ -4866,30 +6095,60 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} + lightningcss-android-arm64@1.31.1: + resolution: {integrity: sha512-HXJF3x8w9nQ4jbXRiNppBCqeZPIAfUo8zE/kOEGbW5NZvGc/K7nMxbhIr+YlFlHW5mpbg/YFPdbnCh1wAXCKFg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] + lightningcss-darwin-arm64@1.30.1: resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [darwin] + lightningcss-darwin-arm64@1.31.1: + resolution: {integrity: sha512-02uTEqf3vIfNMq3h/z2cJfcOXnQ0GRwQrkmPafhueLb2h7mqEidiCzkE4gBMEH65abHRiQvhdcQ+aP0D0g67sg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + lightningcss-darwin-x64@1.30.1: resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [darwin] + lightningcss-darwin-x64@1.31.1: + resolution: {integrity: sha512-1ObhyoCY+tGxtsz1lSx5NXCj3nirk0Y0kB/g8B8DT+sSx4G9djitg9ejFnjb3gJNWo7qXH4DIy2SUHvpoFwfTA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + lightningcss-freebsd-x64@1.30.1: resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [freebsd] + lightningcss-freebsd-x64@1.31.1: + resolution: {integrity: sha512-1RINmQKAItO6ISxYgPwszQE1BrsVU5aB45ho6O42mu96UiZBxEXsuQ7cJW4zs4CEodPUioj/QrXW1r9pLUM74A==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + lightningcss-linux-arm-gnueabihf@1.30.1: resolution: {integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==} engines: {node: '>= 12.0.0'} cpu: [arm] os: [linux] + lightningcss-linux-arm-gnueabihf@1.31.1: + resolution: {integrity: sha512-OOCm2//MZJ87CdDK62rZIu+aw9gBv4azMJuA8/KB74wmfS3lnC4yoPHm0uXZ/dvNNHmnZnB8XLAZzObeG0nS1g==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + lightningcss-linux-arm64-gnu@1.30.1: resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==} engines: {node: '>= 12.0.0'} @@ -4897,6 +6156,13 @@ packages: os: [linux] libc: [glibc] + lightningcss-linux-arm64-gnu@1.31.1: + resolution: {integrity: sha512-WKyLWztD71rTnou4xAD5kQT+982wvca7E6QoLpoawZ1gP9JM0GJj4Tp5jMUh9B3AitHbRZ2/H3W5xQmdEOUlLg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + lightningcss-linux-arm64-musl@1.30.1: resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==} engines: {node: '>= 12.0.0'} @@ -4904,6 +6170,13 @@ packages: os: [linux] libc: [musl] + lightningcss-linux-arm64-musl@1.31.1: + resolution: {integrity: sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + lightningcss-linux-x64-gnu@1.30.1: resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==} engines: {node: '>= 12.0.0'} @@ -4911,6 +6184,13 @@ packages: os: [linux] libc: [glibc] + lightningcss-linux-x64-gnu@1.31.1: + resolution: {integrity: sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + lightningcss-linux-x64-musl@1.30.1: resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==} engines: {node: '>= 12.0.0'} @@ -4918,22 +6198,45 @@ packages: os: [linux] libc: [musl] + lightningcss-linux-x64-musl@1.31.1: + resolution: {integrity: sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + lightningcss-win32-arm64-msvc@1.30.1: resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [win32] + lightningcss-win32-arm64-msvc@1.31.1: + resolution: {integrity: sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + lightningcss-win32-x64-msvc@1.30.1: resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [win32] + lightningcss-win32-x64-msvc@1.31.1: + resolution: {integrity: sha512-I9aiFrbd7oYHwlnQDqr1Roz+fTz61oDDJX7n9tYF9FJymH1cIN1DtKw3iYt6b8WZgEjoNwVSncwF4wx/ZedMhw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + lightningcss@1.30.1: resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==} engines: {node: '>= 12.0.0'} + lightningcss@1.31.1: + resolution: {integrity: sha512-l51N2r93WmGUye3WuFoN5k10zyvrVs0qfKBhyC5ogUQ6Ew6JUSswh78mbSO+IU3nTWsyOArqPCcShdQSadghBQ==} + engines: {node: '>= 12.0.0'} + lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} @@ -5019,6 +6322,9 @@ packages: magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + magicast@0.3.5: resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} @@ -5125,9 +6431,16 @@ packages: resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} engines: {node: 20 || >=22} + minimatch@10.2.4: + resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} + engines: {node: 18 || 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} @@ -5181,6 +6494,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + napi-postinstall@0.3.4: + resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true + natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} @@ -5212,6 +6530,27 @@ packages: sass: optional: true + next@16.1.6: + resolution: {integrity: sha512-hkyRkcu5x/41KoqnROkfTm2pZVbKxvbZRuNvKXLRXxs3VfyO0WhY50TQS40EuKO9SW3rBj/sF3WbVwDACeMZyw==} + engines: {node: '>=20.9.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.51.1 + babel-plugin-react-compiler: '*' + react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + babel-plugin-react-compiler: + optional: true + sass: + optional: true + node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} @@ -5806,11 +7145,21 @@ packages: resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==} engines: {node: '>= 0.10'} + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + react-dom@19.1.4: resolution: {integrity: sha512-s2868ab/xo2SI6H4106A7aFI8Mrqa4xC6HZT/pBzYyQ3cBLqa88hu47xYD8xf+uECleN698Awn7RCWlkTiKnqQ==} peerDependencies: react: ^19.1.4 + react-dom@19.2.3: + resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==} + peerDependencies: + react: ^19.2.3 + react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} @@ -5824,6 +7173,30 @@ packages: resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} engines: {node: '>=0.10.0'} + react-refresh@0.18.0: + resolution: {integrity: sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==} + engines: {node: '>=0.10.0'} + + react-remove-scroll-bar@2.3.8: + resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': 19.1.5 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.7.2: + resolution: {integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': 19.1.5 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + react-router@7.12.0: resolution: {integrity: sha512-kTPDYPFzDVGIIGNLS5VJykK0HfHLY5MF3b+xj0/tTyNYL1gF1qs7u67Z9jEhQk2sQ98SUaHxlG31g1JtF7IfVw==} engines: {node: '>=20.0.0'} @@ -5834,10 +7207,28 @@ packages: react-dom: optional: true + react-style-singleton@2.2.3: + resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': 19.1.5 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + 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'} + react@19.1.4: resolution: {integrity: sha512-DHINL3PAmPUiK1uszfbKiXqfE03eszdt5BpVSuEAHb5nfmNPwnsy7g39h2t8aXFc/Bv99GH81s+j8dobtD+jOw==} engines: {node: '>=0.10.0'} + react@19.2.3: + resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} + engines: {node: '>=0.10.0'} + read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} @@ -6138,9 +7529,15 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + scheduler@0.26.0: resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} + scheduler@0.27.0: + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} + secure-random-bytes@5.0.1: resolution: {integrity: sha512-48nvkahmdyoRbHW/x1HTGIk+i2/84MHFBB+rZ50cg1y/p2RjKG+fhTMQKZx4QD6T6/o2M2WHLPkncqQpjMMsUw==} engines: {node: 18 || >=20} @@ -6292,6 +7689,9 @@ packages: resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} engines: {node: '>=6'} + stable-hash@0.0.5: + resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} + stable@0.1.8: resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' @@ -6497,10 +7897,17 @@ packages: tailwindcss@4.1.8: resolution: {integrity: sha512-kjeW8gjdxasbmFKpVGrGd5T4i40mV5J2Rasw48QARfYeQ8YS9x02ON9SFWax3Qf616rt4Cp3nVNIj6Hd1mP3og==} + tailwindcss@4.2.1: + resolution: {integrity: sha512-/tBrSQ36vCleJkAOsy9kbNTgaxvGbyOamC30PRePTQe/o1MFwEKHQk4Cn7BNGaPtjp+PuUrByJehM1hgxfq4sw==} + tapable@2.2.2: resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} engines: {node: '>=6'} + tapable@2.3.0: + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + engines: {node: '>=6'} + tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} @@ -6626,6 +8033,12 @@ packages: peerDependencies: typescript: '>=4.8.4' + ts-api-utils@2.4.0: + resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} @@ -6703,6 +8116,13 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' + typescript-eslint@8.57.0: + resolution: {integrity: sha512-W8GcigEMEeB07xEZol8oJ26rigm3+bfPHxHvwbYUlu1fUDsGuQ7Hiskx5xGW/xM4USc9Ephe3jtv7ZYPQntHeA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' + typescript@5.1.6: resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} engines: {node: '>=14.17'} @@ -6718,8 +8138,13 @@ packages: engines: {node: '>=14.17'} hasBin: true - ufo@1.6.1: - resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.6.1: + resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} unbox-primitive@1.1.0: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} @@ -6731,8 +8156,8 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici-types@7.8.0: - resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} undici@7.21.0: resolution: {integrity: sha512-Hn2tCQpoDt1wv23a68Ctc8Cr/BHpUSfaPYrkajTXOS9IKpxVRx/X5m1K2YkbK2ipgZgxXSgsUinl3x+2YdSSfg==} @@ -6750,6 +8175,9 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} + unrs-resolver@1.11.1: + resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} + update-browserslist-db@1.1.3: resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} hasBin: true @@ -6759,6 +8187,26 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + use-callback-ref@1.3.3: + resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': 19.1.5 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + use-sidecar@1.1.3: + resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': 19.1.5 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + use-sync-external-store@1.6.0: resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} peerDependencies: @@ -6794,6 +8242,37 @@ packages: engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true + vite@5.4.21: + resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + vite@6.4.1: resolution: {integrity: sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -6874,6 +8353,46 @@ packages: yaml: optional: true + vite@7.3.1: + resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vitest@3.0.8: resolution: {integrity: sha512-dfqAsNqRGUc8hB9OVR2P0w8PZPEckti2+5rdZip0WIz9WW0MnImJ8XiR61QhqLa92EQzKP2uPkzenKOAHyEIbA==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -7127,10 +8646,21 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} + zod-validation-error@4.0.2: + resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + + zod@4.3.6: + resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} + snapshots: '@acemir/cssom@0.9.31': {} + '@alloc/quick-lru@5.2.0': {} + '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.8 @@ -7190,8 +8720,16 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 + '@babel/code-frame@7.29.0': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/compat-data@7.27.2': {} + '@babel/compat-data@7.29.0': {} + '@babel/core@7.27.1': dependencies: '@ampproject/remapping': 2.3.0 @@ -7212,6 +8750,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/core@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helpers': 7.28.6 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/eslint-parser@7.28.5(@babel/core@7.27.1)(eslint@8.57.0)': dependencies: '@babel/core': 7.27.1 @@ -7228,6 +8786,14 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.1.0 + '@babel/generator@7.29.1': + dependencies: + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 + jsesc: 3.1.0 + '@babel/helper-compilation-targets@7.27.2': dependencies: '@babel/compat-data': 7.27.2 @@ -7236,6 +8802,16 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 + '@babel/helper-compilation-targets@7.28.6': + dependencies: + '@babel/compat-data': 7.29.0 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.24.5 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-globals@7.28.0': {} + '@babel/helper-module-imports@7.27.1': dependencies: '@babel/traverse': 7.27.1 @@ -7243,6 +8819,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-imports@7.28.6': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-transforms@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -7252,12 +8835,23 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + '@babel/helper-plugin-utils@7.27.1': {} '@babel/helper-string-parser@7.27.1': {} '@babel/helper-validator-identifier@7.27.1': {} + '@babel/helper-validator-identifier@7.28.5': {} + '@babel/helper-validator-option@7.27.1': {} '@babel/helpers@7.27.1': @@ -7265,20 +8859,39 @@ snapshots: '@babel/template': 7.27.2 '@babel/types': 7.27.1 + '@babel/helpers@7.28.6': + dependencies: + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + '@babel/parser@7.27.2': dependencies: '@babel/types': 7.27.1 + '@babel/parser@7.29.0': + dependencies: + '@babel/types': 7.29.0 + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/runtime@7.27.1': {} '@babel/template@7.27.2': @@ -7287,6 +8900,12 @@ snapshots: '@babel/parser': 7.27.2 '@babel/types': 7.27.1 + '@babel/template@7.28.6': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + '@babel/traverse@7.27.1': dependencies: '@babel/code-frame': 7.27.1 @@ -7299,11 +8918,28 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + '@babel/types@7.27.1': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 + '@babel/types@7.29.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + '@bcoe/v8-coverage@1.0.2': {} '@bufbuild/protobuf@2.7.0': @@ -7346,7 +8982,7 @@ snapshots: transitivePeerDependencies: - encoding - '@changesets/cli@2.29.8(@types/node@24.0.3)': + '@changesets/cli@2.29.8(@types/node@24.12.0)': dependencies: '@changesets/apply-release-plan': 7.0.14 '@changesets/assemble-release-plan': 6.0.9 @@ -7362,7 +8998,7 @@ snapshots: '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@changesets/write': 0.4.0 - '@inquirer/external-editor': 1.0.3(@types/node@24.0.3) + '@inquirer/external-editor': 1.0.3(@types/node@24.12.0) '@manypkg/get-packages': 1.1.3 ansi-colors: 4.1.3 ci-info: 3.9.0 @@ -7577,174 +9213,333 @@ snapshots: '@emotion/weak-memoize@0.4.0': {} + '@esbuild/aix-ppc64@0.21.5': + optional: true + '@esbuild/aix-ppc64@0.25.9': optional: true '@esbuild/aix-ppc64@0.27.3': optional: true + '@esbuild/aix-ppc64@0.27.4': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + '@esbuild/android-arm64@0.25.9': optional: true '@esbuild/android-arm64@0.27.3': optional: true + '@esbuild/android-arm64@0.27.4': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + '@esbuild/android-arm@0.25.9': optional: true '@esbuild/android-arm@0.27.3': optional: true + '@esbuild/android-arm@0.27.4': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + '@esbuild/android-x64@0.25.9': optional: true '@esbuild/android-x64@0.27.3': optional: true + '@esbuild/android-x64@0.27.4': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + '@esbuild/darwin-arm64@0.25.9': optional: true '@esbuild/darwin-arm64@0.27.3': optional: true + '@esbuild/darwin-arm64@0.27.4': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + '@esbuild/darwin-x64@0.25.9': optional: true '@esbuild/darwin-x64@0.27.3': optional: true + '@esbuild/darwin-x64@0.27.4': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + '@esbuild/freebsd-arm64@0.25.9': optional: true '@esbuild/freebsd-arm64@0.27.3': optional: true + '@esbuild/freebsd-arm64@0.27.4': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + '@esbuild/freebsd-x64@0.25.9': optional: true '@esbuild/freebsd-x64@0.27.3': optional: true + '@esbuild/freebsd-x64@0.27.4': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + '@esbuild/linux-arm64@0.25.9': optional: true '@esbuild/linux-arm64@0.27.3': optional: true + '@esbuild/linux-arm64@0.27.4': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + '@esbuild/linux-arm@0.25.9': optional: true '@esbuild/linux-arm@0.27.3': optional: true + '@esbuild/linux-arm@0.27.4': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + '@esbuild/linux-ia32@0.25.9': optional: true '@esbuild/linux-ia32@0.27.3': optional: true + '@esbuild/linux-ia32@0.27.4': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + '@esbuild/linux-loong64@0.25.9': optional: true '@esbuild/linux-loong64@0.27.3': optional: true + '@esbuild/linux-loong64@0.27.4': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + '@esbuild/linux-mips64el@0.25.9': optional: true '@esbuild/linux-mips64el@0.27.3': optional: true + '@esbuild/linux-mips64el@0.27.4': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + '@esbuild/linux-ppc64@0.25.9': optional: true '@esbuild/linux-ppc64@0.27.3': optional: true + '@esbuild/linux-ppc64@0.27.4': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + '@esbuild/linux-riscv64@0.25.9': optional: true '@esbuild/linux-riscv64@0.27.3': optional: true + '@esbuild/linux-riscv64@0.27.4': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + '@esbuild/linux-s390x@0.25.9': optional: true '@esbuild/linux-s390x@0.27.3': optional: true + '@esbuild/linux-s390x@0.27.4': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + '@esbuild/linux-x64@0.25.9': optional: true '@esbuild/linux-x64@0.27.3': optional: true + '@esbuild/linux-x64@0.27.4': + optional: true + '@esbuild/netbsd-arm64@0.25.9': optional: true '@esbuild/netbsd-arm64@0.27.3': optional: true + '@esbuild/netbsd-arm64@0.27.4': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + '@esbuild/netbsd-x64@0.25.9': optional: true '@esbuild/netbsd-x64@0.27.3': optional: true + '@esbuild/netbsd-x64@0.27.4': + optional: true + '@esbuild/openbsd-arm64@0.25.9': optional: true '@esbuild/openbsd-arm64@0.27.3': optional: true + '@esbuild/openbsd-arm64@0.27.4': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + '@esbuild/openbsd-x64@0.25.9': optional: true '@esbuild/openbsd-x64@0.27.3': optional: true + '@esbuild/openbsd-x64@0.27.4': + optional: true + '@esbuild/openharmony-arm64@0.25.9': optional: true '@esbuild/openharmony-arm64@0.27.3': optional: true + '@esbuild/openharmony-arm64@0.27.4': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + '@esbuild/sunos-x64@0.25.9': optional: true '@esbuild/sunos-x64@0.27.3': optional: true + '@esbuild/sunos-x64@0.27.4': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + '@esbuild/win32-arm64@0.25.9': optional: true '@esbuild/win32-arm64@0.27.3': optional: true + '@esbuild/win32-arm64@0.27.4': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + '@esbuild/win32-ia32@0.25.9': optional: true '@esbuild/win32-ia32@0.27.3': optional: true + '@esbuild/win32-ia32@0.27.4': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + '@esbuild/win32-x64@0.25.9': optional: true '@esbuild/win32-x64@0.27.3': optional: true + '@esbuild/win32-x64@0.27.4': + optional: true + '@eslint-community/eslint-utils@4.8.0(eslint@8.57.0)': dependencies: eslint: 8.57.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.8.0(eslint@9.25.0(jiti@2.6.0))': + '@eslint-community/eslint-utils@4.8.0(eslint@9.25.0(jiti@2.6.1))': + dependencies: + eslint: 9.25.0(jiti@2.6.1) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/eslint-utils@4.8.0(eslint@9.39.4(jiti@2.6.1))': + dependencies: + eslint: 9.39.4(jiti@2.6.1) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.4(jiti@2.6.1))': dependencies: - eslint: 9.25.0(jiti@2.6.0) + eslint: 9.39.4(jiti@2.6.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} + '@eslint-community/regexpp@4.12.2': {} + '@eslint/config-array@0.20.0': dependencies: '@eslint/object-schema': 2.1.6 @@ -7753,8 +9548,20 @@ snapshots: transitivePeerDependencies: - supports-color + '@eslint/config-array@0.21.2': + dependencies: + '@eslint/object-schema': 2.1.7 + debug: 4.4.3 + minimatch: 3.1.5 + transitivePeerDependencies: + - supports-color + '@eslint/config-helpers@0.2.2': {} + '@eslint/config-helpers@0.4.2': + dependencies: + '@eslint/core': 0.17.0 + '@eslint/core@0.13.0': dependencies: '@types/json-schema': 7.0.15 @@ -7763,6 +9570,10 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 + '@eslint/core@0.17.0': + dependencies: + '@types/json-schema': 7.0.15 + '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 @@ -7791,12 +9602,30 @@ snapshots: transitivePeerDependencies: - supports-color + '@eslint/eslintrc@3.3.5': + dependencies: + ajv: 6.14.0 + debug: 4.4.3 + espree: 10.4.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.1 + minimatch: 3.1.5 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + '@eslint/js@8.57.0': {} '@eslint/js@9.25.0': {} + '@eslint/js@9.39.4': {} + '@eslint/object-schema@2.1.6': {} + '@eslint/object-schema@2.1.7': {} + '@eslint/plugin-kit@0.3.4': dependencies: '@eslint/core': 0.15.2 @@ -7813,6 +9642,12 @@ snapshots: '@floating-ui/core': 1.7.1 '@floating-ui/utils': 0.2.9 + '@floating-ui/react-dom@2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/dom': 1.7.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@floating-ui/react-dom@2.1.3(react-dom@19.1.4(react@19.1.4))(react@19.1.4)': dependencies: '@floating-ui/dom': 1.7.1 @@ -7949,12 +9784,12 @@ snapshots: '@img/sharp-win32-x64@0.34.5': optional: true - '@inquirer/external-editor@1.0.3(@types/node@24.0.3)': + '@inquirer/external-editor@1.0.3(@types/node@24.12.0)': dependencies: chardet: 2.1.1 iconv-lite: 0.7.2 optionalDependencies: - '@types/node': 24.0.3 + '@types/node': 24.12.0 '@isaacs/balanced-match@4.0.1': {} @@ -7985,7 +9820,6 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/trace-mapping': 0.3.29 - optional: true '@jridgewell/gen-mapping@0.3.8': dependencies: @@ -7993,6 +9827,11 @@ snapshots: '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.2.1': {} @@ -8005,8 +9844,7 @@ snapshots: '@jridgewell/sourcemap-codec@1.5.0': {} - '@jridgewell/sourcemap-codec@1.5.5': - optional: true + '@jridgewell/sourcemap-codec@1.5.5': {} '@jridgewell/trace-mapping@0.3.25': dependencies: @@ -8017,7 +9855,6 @@ snapshots: dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - optional: true '@jspm/core@2.1.0': {} @@ -8046,6 +9883,13 @@ snapshots: '@microsoft/tsdoc@0.14.2': {} + '@napi-rs/wasm-runtime@0.2.12': + dependencies: + '@emnapi/core': 1.4.3 + '@emnapi/runtime': 1.8.1 + '@tybys/wasm-util': 0.10.1 + optional: true + '@napi-rs/wasm-runtime@0.2.4': dependencies: '@emnapi/core': 1.4.3 @@ -8054,34 +9898,64 @@ snapshots: '@next/env@15.5.12': {} + '@next/env@16.1.6': {} + '@next/eslint-plugin-next@13.5.11': dependencies: glob: 7.1.7 + '@next/eslint-plugin-next@16.1.6': + dependencies: + fast-glob: 3.3.1 + '@next/swc-darwin-arm64@15.5.12': optional: true + '@next/swc-darwin-arm64@16.1.6': + optional: true + '@next/swc-darwin-x64@15.5.12': optional: true + '@next/swc-darwin-x64@16.1.6': + optional: true + '@next/swc-linux-arm64-gnu@15.5.12': optional: true + '@next/swc-linux-arm64-gnu@16.1.6': + optional: true + '@next/swc-linux-arm64-musl@15.5.12': optional: true + '@next/swc-linux-arm64-musl@16.1.6': + optional: true + '@next/swc-linux-x64-gnu@15.5.12': optional: true + '@next/swc-linux-x64-gnu@16.1.6': + optional: true + '@next/swc-linux-x64-musl@15.5.12': optional: true + '@next/swc-linux-x64-musl@16.1.6': + optional: true + '@next/swc-win32-arm64-msvc@15.5.12': optional: true + '@next/swc-win32-arm64-msvc@16.1.6': + optional: true + '@next/swc-win32-x64-msvc@15.5.12': optional: true + '@next/swc-win32-x64-msvc@16.1.6': + optional: true + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': dependencies: eslint-scope: 5.1.1 @@ -8098,6 +9972,8 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 + '@nolyfill/is-core-module@1.0.39': {} + '@nx/nx-darwin-arm64@20.8.1': optional: true @@ -8191,48 +10067,290 @@ snapshots: '@parcel/watcher-win32-x64': 2.5.1 optional: true - '@pkgjs/parseargs@0.11.0': - optional: true + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pkgr/core@0.2.4': {} + + '@playwright/test@1.58.2': + dependencies: + playwright: 1.58.2 + + '@polka/url@1.0.0-next.29': {} + + '@radix-ui/primitive@1.1.3': {} + + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(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': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) + + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) + + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.5)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 19.1.5 + + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.5)(react@19.1.4)': + dependencies: + react: 19.1.4 + optionalDependencies: + '@types/react': 19.1.5 + + '@radix-ui/react-context@1.1.2(@types/react@19.1.5)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 19.1.5 + + '@radix-ui/react-direction@1.1.1(@types/react@19.1.5)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 19.1.5 + + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.5)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) + + '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) + + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.1.5)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 19.1.5 + + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) + + '@radix-ui/react-id@1.1.1(@types/react@19.1.5)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 19.1.5 + + '@radix-ui/react-label@2.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.4(react@19.1.4))(react@19.1.4)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.4(react@19.1.4))(react@19.1.4) + react: 19.1.4 + react-dom: 19.1.4(react@19.1.4) + optionalDependencies: + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) + + '@radix-ui/react-menu@2.1.16(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@18.3.1) + aria-hidden: 1.2.6 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.7.2(@types/react@19.1.5)(react@18.3.1) + optionalDependencies: + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) + + '@radix-ui/react-popper@1.2.8(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react-dom': 2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/rect': 1.1.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) + + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) + + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) + + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) + + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.4(react@19.1.4))(react@19.1.4)': + dependencies: + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@19.1.4) + react: 19.1.4 + react-dom: 19.1.4(react@19.1.4) + optionalDependencies: + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) + + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) + + '@radix-ui/react-slot@1.2.3(@types/react@19.1.5)(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 19.1.5 - '@pkgr/core@0.2.4': {} + '@radix-ui/react-slot@1.2.3(@types/react@19.1.5)(react@19.1.4)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.4) + react: 19.1.4 + optionalDependencies: + '@types/react': 19.1.5 - '@playwright/test@1.58.2': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.5)(react@18.3.1)': dependencies: - playwright: 1.58.2 + react: 18.3.1 + optionalDependencies: + '@types/react': 19.1.5 - '@polka/url@1.0.0-next.29': {} + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.5)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.5)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 19.1.5 - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.5)(react@19.1.4)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.5)(react@18.3.1)': dependencies: - react: 19.1.4 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@18.3.1) + react: 18.3.1 optionalDependencies: '@types/react': 19.1.5 - '@radix-ui/react-label@2.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.4(react@19.1.4))(react@19.1.4)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.5)(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.4(react@19.1.4))(react@19.1.4) - react: 19.1.4 - react-dom: 19.1.4(react@19.1.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@18.3.1) + react: 18.3.1 optionalDependencies: '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.4(react@19.1.4))(react@19.1.4)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.5)(react@18.3.1)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@19.1.4) - react: 19.1.4 - react-dom: 19.1.4(react@19.1.4) + react: 18.3.1 optionalDependencies: '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-slot@1.2.3(@types/react@19.1.5)(react@19.1.4)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.5)(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.4) - react: 19.1.4 + '@radix-ui/rect': 1.1.1 + react: 18.3.1 + optionalDependencies: + '@types/react': 19.1.5 + + '@radix-ui/react-use-size@1.1.1(@types/react@19.1.5)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@18.3.1) + react: 18.3.1 optionalDependencies: '@types/react': 19.1.5 + '@radix-ui/rect@1.1.1': {} + + '@rolldown/pluginutils@1.0.0-rc.3': {} + '@rollup/plugin-commonjs@25.0.7(rollup@4.32.0)': dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.32.0) @@ -8430,42 +10548,88 @@ snapshots: source-map-js: 1.2.1 tailwindcss: 4.1.8 + '@tailwindcss/node@4.2.1': + dependencies: + '@jridgewell/remapping': 2.3.5 + enhanced-resolve: 5.20.0 + jiti: 2.6.1 + lightningcss: 1.31.1 + magic-string: 0.30.21 + source-map-js: 1.2.1 + tailwindcss: 4.2.1 + '@tailwindcss/oxide-android-arm64@4.1.8': optional: true + '@tailwindcss/oxide-android-arm64@4.2.1': + optional: true + '@tailwindcss/oxide-darwin-arm64@4.1.8': optional: true + '@tailwindcss/oxide-darwin-arm64@4.2.1': + optional: true + '@tailwindcss/oxide-darwin-x64@4.1.8': optional: true + '@tailwindcss/oxide-darwin-x64@4.2.1': + optional: true + '@tailwindcss/oxide-freebsd-x64@4.1.8': optional: true + '@tailwindcss/oxide-freebsd-x64@4.2.1': + optional: true + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.8': optional: true + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.1': + optional: true + '@tailwindcss/oxide-linux-arm64-gnu@4.1.8': optional: true + '@tailwindcss/oxide-linux-arm64-gnu@4.2.1': + optional: true + '@tailwindcss/oxide-linux-arm64-musl@4.1.8': optional: true + '@tailwindcss/oxide-linux-arm64-musl@4.2.1': + optional: true + '@tailwindcss/oxide-linux-x64-gnu@4.1.8': optional: true + '@tailwindcss/oxide-linux-x64-gnu@4.2.1': + optional: true + '@tailwindcss/oxide-linux-x64-musl@4.1.8': optional: true + '@tailwindcss/oxide-linux-x64-musl@4.2.1': + optional: true + '@tailwindcss/oxide-wasm32-wasi@4.1.8': optional: true + '@tailwindcss/oxide-wasm32-wasi@4.2.1': + optional: true + '@tailwindcss/oxide-win32-arm64-msvc@4.1.8': optional: true + '@tailwindcss/oxide-win32-arm64-msvc@4.2.1': + optional: true + '@tailwindcss/oxide-win32-x64-msvc@4.1.8': optional: true + '@tailwindcss/oxide-win32-x64-msvc@4.2.1': + optional: true + '@tailwindcss/oxide@4.1.8': dependencies: detect-libc: 2.1.2 @@ -8484,12 +10648,42 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.1.8 '@tailwindcss/oxide-win32-x64-msvc': 4.1.8 - '@tailwindcss/vite@4.1.8(vite@6.4.1(@types/node@24.0.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))': + '@tailwindcss/oxide@4.2.1': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.2.1 + '@tailwindcss/oxide-darwin-arm64': 4.2.1 + '@tailwindcss/oxide-darwin-x64': 4.2.1 + '@tailwindcss/oxide-freebsd-x64': 4.2.1 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.2.1 + '@tailwindcss/oxide-linux-arm64-gnu': 4.2.1 + '@tailwindcss/oxide-linux-arm64-musl': 4.2.1 + '@tailwindcss/oxide-linux-x64-gnu': 4.2.1 + '@tailwindcss/oxide-linux-x64-musl': 4.2.1 + '@tailwindcss/oxide-wasm32-wasi': 4.2.1 + '@tailwindcss/oxide-win32-arm64-msvc': 4.2.1 + '@tailwindcss/oxide-win32-x64-msvc': 4.2.1 + + '@tailwindcss/postcss@4.2.1': + dependencies: + '@alloc/quick-lru': 5.2.0 + '@tailwindcss/node': 4.2.1 + '@tailwindcss/oxide': 4.2.1 + postcss: 8.5.6 + tailwindcss: 4.2.1 + + '@tailwindcss/vite@4.1.8(vite@5.4.21(@types/node@24.12.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2))': + dependencies: + '@tailwindcss/node': 4.1.8 + '@tailwindcss/oxide': 4.1.8 + tailwindcss: 4.1.8 + vite: 5.4.21(@types/node@24.12.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2) + + '@tailwindcss/vite@4.1.8(vite@6.4.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))': dependencies: '@tailwindcss/node': 4.1.8 '@tailwindcss/oxide': 4.1.8 tailwindcss: 4.1.8 - vite: 6.4.1(@types/node@24.0.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + vite: 6.4.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) '@tanstack/history@1.154.7': {} @@ -8504,6 +10698,17 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 + '@tanstack/react-router@1.154.7(react-dom@19.2.3(react@19.1.4))(react@19.1.4)': + dependencies: + '@tanstack/history': 1.154.7 + '@tanstack/react-store': 0.8.0(react-dom@19.2.3(react@19.1.4))(react@19.1.4) + '@tanstack/router-core': 1.154.7 + isbot: 5.1.31 + react: 19.1.4 + react-dom: 19.2.3(react@19.1.4) + tiny-invariant: 1.3.3 + tiny-warning: 1.0.3 + '@tanstack/react-store@0.8.0(react-dom@19.1.4(react@19.1.4))(react@19.1.4)': dependencies: '@tanstack/store': 0.8.0 @@ -8511,6 +10716,13 @@ snapshots: react-dom: 19.1.4(react@19.1.4) use-sync-external-store: 1.6.0(react@19.1.4) + '@tanstack/react-store@0.8.0(react-dom@19.2.3(react@19.1.4))(react@19.1.4)': + dependencies: + '@tanstack/store': 0.8.0 + react: 19.1.4 + react-dom: 19.2.3(react@19.1.4) + use-sync-external-store: 1.6.0(react@19.1.4) + '@tanstack/router-core@1.154.7': dependencies: '@tanstack/history': 1.154.7 @@ -8534,12 +10746,12 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.4(react@19.1.4))(react@19.1.4)': + '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.2.3(react@19.1.4))(react@19.1.4)': dependencies: '@babel/runtime': 7.27.1 '@testing-library/dom': 10.4.0 react: 19.1.4 - react-dom: 19.1.4(react@19.1.4) + react-dom: 19.2.3(react@19.1.4) optionalDependencies: '@types/react': 19.1.5 '@types/react-dom': 19.1.5(@types/react@19.1.5) @@ -8560,6 +10772,11 @@ snapshots: '@trysound/sax@0.2.0': {} + '@tybys/wasm-util@0.10.1': + dependencies: + tslib: 2.8.1 + optional: true + '@tybys/wasm-util@0.9.0': dependencies: tslib: 2.8.1 @@ -8617,10 +10834,9 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/node@24.0.3': + '@types/node@24.12.0': dependencies: - undici-types: 7.8.0 - optional: true + undici-types: 7.16.0 '@types/normalize-package-data@2.4.4': {} @@ -8681,15 +10897,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.30.1(@typescript-eslint/parser@8.30.1(eslint@9.25.0(jiti@2.6.0))(typescript@5.8.3))(eslint@9.25.0(jiti@2.6.0))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.30.1(@typescript-eslint/parser@8.30.1(eslint@9.25.0(jiti@2.6.1))(typescript@5.8.3))(eslint@9.25.0(jiti@2.6.1))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.30.1(eslint@9.25.0(jiti@2.6.0))(typescript@5.8.3) + '@typescript-eslint/parser': 8.30.1(eslint@9.25.0(jiti@2.6.1))(typescript@5.8.3) '@typescript-eslint/scope-manager': 8.30.1 - '@typescript-eslint/type-utils': 8.30.1(eslint@9.25.0(jiti@2.6.0))(typescript@5.8.3) - '@typescript-eslint/utils': 8.30.1(eslint@9.25.0(jiti@2.6.0))(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.30.1(eslint@9.25.0(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/utils': 8.30.1(eslint@9.25.0(jiti@2.6.1))(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.30.1 - eslint: 9.25.0(jiti@2.6.0) + eslint: 9.25.0(jiti@2.6.1) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -8698,6 +10914,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/eslint-plugin@8.57.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.57.0 + '@typescript-eslint/type-utils': 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.57.0 + eslint: 9.39.4(jiti@2.6.1) + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/experimental-utils@5.62.0(eslint@8.57.0)(typescript@5.1.6)': dependencies: '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.1.6) @@ -8740,18 +10972,39 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.30.1(eslint@9.25.0(jiti@2.6.0))(typescript@5.8.3)': + '@typescript-eslint/parser@8.30.1(eslint@9.25.0(jiti@2.6.1))(typescript@5.8.3)': dependencies: '@typescript-eslint/scope-manager': 8.30.1 '@typescript-eslint/types': 8.30.1 '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.30.1 debug: 4.4.3 - eslint: 9.25.0(jiti@2.6.0) + eslint: 9.25.0(jiti@2.6.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color + '@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.57.0 + '@typescript-eslint/types': 8.57.0 + '@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.57.0 + debug: 4.4.3 + eslint: 9.39.4(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.57.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.57.0(typescript@5.9.3) + '@typescript-eslint/types': 8.57.0 + debug: 4.4.3 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/scope-manager@5.62.0': dependencies: '@typescript-eslint/types': 5.62.0 @@ -8767,6 +11020,15 @@ snapshots: '@typescript-eslint/types': 8.30.1 '@typescript-eslint/visitor-keys': 8.30.1 + '@typescript-eslint/scope-manager@8.57.0': + dependencies: + '@typescript-eslint/types': 8.57.0 + '@typescript-eslint/visitor-keys': 8.57.0 + + '@typescript-eslint/tsconfig-utils@8.57.0(typescript@5.9.3)': + dependencies: + typescript: 5.9.3 + '@typescript-eslint/type-utils@6.21.0(eslint@8.57.0)(typescript@5.1.6)': dependencies: '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.1.6) @@ -8791,23 +11053,37 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.30.1(eslint@9.25.0(jiti@2.6.0))(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.30.1(eslint@9.25.0(jiti@2.6.1))(typescript@5.8.3)': dependencies: '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.30.1(eslint@9.25.0(jiti@2.6.0))(typescript@5.8.3) + '@typescript-eslint/utils': 8.30.1(eslint@9.25.0(jiti@2.6.1))(typescript@5.8.3) debug: 4.4.3 - eslint: 9.25.0(jiti@2.6.0) + eslint: 9.25.0(jiti@2.6.1) ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color + '@typescript-eslint/type-utils@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 8.57.0 + '@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + debug: 4.4.3 + eslint: 9.39.4(jiti@2.6.1) + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/types@5.62.0': {} '@typescript-eslint/types@6.21.0': {} '@typescript-eslint/types@8.30.1': {} + '@typescript-eslint/types@8.57.0': {} + '@typescript-eslint/typescript-estree@5.62.0(typescript@5.1.6)': dependencies: '@typescript-eslint/types': 5.62.0 @@ -8880,6 +11156,21 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@8.57.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/project-service': 8.57.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.57.0(typescript@5.9.3) + '@typescript-eslint/types': 8.57.0 + '@typescript-eslint/visitor-keys': 8.57.0 + debug: 4.4.3 + minimatch: 10.2.4 + semver: 7.7.3 + tinyglobby: 0.2.15 + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.1.6)': dependencies: '@eslint-community/eslint-utils': 4.8.0(eslint@8.57.0) @@ -8938,17 +11229,28 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@8.30.1(eslint@9.25.0(jiti@2.6.0))(typescript@5.8.3)': + '@typescript-eslint/utils@8.30.1(eslint@9.25.0(jiti@2.6.1))(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.8.0(eslint@9.25.0(jiti@2.6.0)) + '@eslint-community/eslint-utils': 4.8.0(eslint@9.25.0(jiti@2.6.1)) '@typescript-eslint/scope-manager': 8.30.1 '@typescript-eslint/types': 8.30.1 '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3) - eslint: 9.25.0(jiti@2.6.0) + eslint: 9.25.0(jiti@2.6.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color + '@typescript-eslint/utils@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.57.0 + '@typescript-eslint/types': 8.57.0 + '@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3) + eslint: 9.39.4(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/visitor-keys@5.62.0': dependencies: '@typescript-eslint/types': 5.62.0 @@ -8964,38 +11266,125 @@ snapshots: '@typescript-eslint/types': 8.30.1 eslint-visitor-keys: 4.2.1 + '@typescript-eslint/visitor-keys@8.57.0': + dependencies: + '@typescript-eslint/types': 8.57.0 + eslint-visitor-keys: 5.0.1 + '@ungap/structured-clone@1.3.0': {} - '@vitejs/plugin-basic-ssl@2.0.0(vite@6.4.1(@types/node@24.0.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))': + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + optional: true + + '@unrs/resolver-binding-android-arm64@1.11.1': + optional: true + + '@unrs/resolver-binding-darwin-arm64@1.11.1': + optional: true + + '@unrs/resolver-binding-darwin-x64@1.11.1': + optional: true + + '@unrs/resolver-binding-freebsd-x64@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + dependencies: + '@napi-rs/wasm-runtime': 0.2.12 + optional: true + + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + optional: true + + '@vitejs/plugin-basic-ssl@2.0.0(vite@6.4.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))': dependencies: - vite: 6.4.1(@types/node@24.0.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + vite: 6.4.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + + '@vitejs/plugin-react@4.4.1(vite@5.4.21(@types/node@24.12.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2))': + dependencies: + '@babel/core': 7.27.1 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.27.1) + '@types/babel__core': 7.20.5 + react-refresh: 0.17.0 + vite: 5.4.21(@types/node@24.12.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2) + transitivePeerDependencies: + - supports-color - '@vitejs/plugin-react@4.4.1(vite@6.4.1(@types/node@24.0.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))': + '@vitejs/plugin-react@4.4.1(vite@6.4.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))': dependencies: '@babel/core': 7.27.1 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.27.1) '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.27.1) '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 6.4.1(@types/node@24.0.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + vite: 6.4.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-react@5.2.0(vite@7.3.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))': + dependencies: + '@babel/core': 7.29.0 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.29.0) + '@rolldown/pluginutils': 1.0.0-rc.3 + '@types/babel__core': 7.20.5 + react-refresh: 0.18.0 + vite: 7.3.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.4(vite@7.1.12(@types/node@20.12.7)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))(vue@3.5.13(typescript@5.1.6))': + '@vitejs/plugin-vue@5.2.4(vite@7.1.12(@types/node@20.12.7)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))(vue@3.5.13(typescript@5.1.6))': dependencies: - vite: 7.1.12(@types/node@20.12.7)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + vite: 7.1.12(@types/node@20.12.7)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) vue: 3.5.13(typescript@5.1.6) - '@vitest/browser@3.1.3(playwright@1.55.1)(vite@6.4.1(@types/node@22.15.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))(vitest@3.1.3)': + '@vitest/browser@3.1.3(playwright@1.55.1)(vite@6.4.1(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))(vitest@3.1.3)': dependencies: '@testing-library/dom': 10.4.0 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.0) - '@vitest/mocker': 3.1.3(vite@6.4.1(@types/node@22.15.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) + '@vitest/mocker': 3.1.3(vite@6.4.1(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) '@vitest/utils': 3.1.3 magic-string: 0.30.17 sirv: 3.0.1 tinyrainbow: 2.0.0 - vitest: 3.1.3(@types/node@22.15.3)(@vitest/browser@3.1.3)(jiti@2.6.0)(jsdom@27.4.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + vitest: 3.1.3(@types/node@22.15.3)(@vitest/browser@3.1.3)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) ws: 8.18.2 optionalDependencies: playwright: 1.55.1 @@ -9005,16 +11394,16 @@ snapshots: - utf-8-validate - vite - '@vitest/browser@3.1.3(playwright@1.58.2)(vite@6.4.1(@types/node@22.15.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))(vitest@3.1.3)': + '@vitest/browser@3.1.3(playwright@1.58.2)(vite@6.4.1(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))(vitest@3.1.3)': dependencies: '@testing-library/dom': 10.4.0 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.0) - '@vitest/mocker': 3.1.3(vite@6.4.1(@types/node@22.15.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) + '@vitest/mocker': 3.1.3(vite@6.4.1(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) '@vitest/utils': 3.1.3 magic-string: 0.30.17 sirv: 3.0.1 tinyrainbow: 2.0.0 - vitest: 3.1.3(@types/node@22.15.3)(@vitest/browser@3.1.3)(jiti@2.6.0)(jsdom@27.4.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + vitest: 3.1.3(@types/node@22.15.3)(@vitest/browser@3.1.3)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) ws: 8.18.2 optionalDependencies: playwright: 1.58.2 @@ -9025,16 +11414,16 @@ snapshots: - vite optional: true - '@vitest/browser@3.1.3(playwright@1.58.2)(vite@6.4.1(@types/node@22.15.30)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))(vitest@3.1.3)': + '@vitest/browser@3.1.3(playwright@1.58.2)(vite@6.4.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))(vitest@3.1.3)': dependencies: '@testing-library/dom': 10.4.0 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.0) - '@vitest/mocker': 3.1.3(vite@6.4.1(@types/node@22.15.30)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) + '@vitest/mocker': 3.1.3(vite@6.4.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) '@vitest/utils': 3.1.3 magic-string: 0.30.17 sirv: 3.0.1 tinyrainbow: 2.0.0 - vitest: 3.1.3(@types/node@22.15.30)(@vitest/browser@3.1.3)(jiti@2.6.0)(jsdom@27.4.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + vitest: 3.1.3(@types/node@22.15.30)(@vitest/browser@3.1.3)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) ws: 8.18.2 optionalDependencies: playwright: 1.58.2 @@ -9045,7 +11434,7 @@ snapshots: - vite optional: true - '@vitest/coverage-v8@3.0.8(vitest@3.0.8(@types/node@20.12.7)(jiti@2.6.0)(jsdom@27.4.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))': + '@vitest/coverage-v8@3.0.8(vitest@3.0.8(@types/node@20.12.7)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -9059,7 +11448,7 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.0.8(@types/node@20.12.7)(jiti@2.6.0)(jsdom@27.4.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + vitest: 3.0.8(@types/node@20.12.7)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) transitivePeerDependencies: - supports-color @@ -9077,29 +11466,29 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.0.8(vite@6.4.1(@types/node@20.12.7)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))': + '@vitest/mocker@3.0.8(vite@6.4.1(@types/node@20.12.7)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))': dependencies: '@vitest/spy': 3.0.8 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.4.1(@types/node@20.12.7)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + vite: 6.4.1(@types/node@20.12.7)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) - '@vitest/mocker@3.1.3(vite@6.4.1(@types/node@22.15.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))': + '@vitest/mocker@3.1.3(vite@6.4.1(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))': dependencies: '@vitest/spy': 3.1.3 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.4.1(@types/node@22.15.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + vite: 6.4.1(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) - '@vitest/mocker@3.1.3(vite@6.4.1(@types/node@22.15.30)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))': + '@vitest/mocker@3.1.3(vite@6.4.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))': dependencies: '@vitest/spy': 3.1.3 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.4.1(@types/node@22.15.30)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + vite: 6.4.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) '@vitest/pretty-format@3.0.8': dependencies: @@ -9151,10 +11540,10 @@ snapshots: loupe: 3.1.3 tinyrainbow: 2.0.0 - '@vitest/web-worker@3.0.8(vitest@3.0.8(@types/node@20.12.7)(jiti@2.6.0)(jsdom@27.4.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))': + '@vitest/web-worker@3.0.8(vitest@3.0.8(@types/node@20.12.7)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))': dependencies: debug: 4.4.1 - vitest: 3.0.8(@types/node@20.12.7)(jiti@2.6.0)(jsdom@27.4.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + vitest: 3.0.8(@types/node@20.12.7)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) transitivePeerDependencies: - supports-color @@ -9406,6 +11795,13 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + ajv@6.14.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 @@ -9436,6 +11832,10 @@ snapshots: argparse@2.0.1: {} + aria-hidden@1.2.6: + dependencies: + tslib: 2.8.1 + aria-query@5.3.0: dependencies: dequal: 2.0.3 @@ -9571,6 +11971,8 @@ snapshots: base64url@3.0.1: {} + baseline-browser-mapping@2.10.8: {} + better-path-resolve@1.0.0: dependencies: is-windows: 1.0.2 @@ -10114,6 +12516,8 @@ snapshots: detect-libc@2.1.2: {} + detect-node-es@1.1.0: {} + diff-sequences@29.6.3: {} diffie-hellman@5.0.3: @@ -10212,6 +12616,11 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.2 + enhanced-resolve@5.20.0: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.0 + enquirer@2.3.6: dependencies: ansi-colors: 4.1.3 @@ -10336,7 +12745,7 @@ snapshots: esbuild-plugin-inline-worker@0.1.1: dependencies: - esbuild: 0.27.3 + esbuild: 0.27.4 find-cache-dir: 3.3.2 esbuild-plugin-polyfill-node@0.3.0(esbuild@0.25.9): @@ -10356,6 +12765,32 @@ snapshots: local-pkg: 1.1.1 resolve.exports: 2.0.3 + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + esbuild@0.25.9: optionalDependencies: '@esbuild/aix-ppc64': 0.25.9 @@ -10414,6 +12849,35 @@ snapshots: '@esbuild/win32-ia32': 0.27.3 '@esbuild/win32-x64': 0.27.3 + esbuild@0.27.4: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.4 + '@esbuild/android-arm': 0.27.4 + '@esbuild/android-arm64': 0.27.4 + '@esbuild/android-x64': 0.27.4 + '@esbuild/darwin-arm64': 0.27.4 + '@esbuild/darwin-x64': 0.27.4 + '@esbuild/freebsd-arm64': 0.27.4 + '@esbuild/freebsd-x64': 0.27.4 + '@esbuild/linux-arm': 0.27.4 + '@esbuild/linux-arm64': 0.27.4 + '@esbuild/linux-ia32': 0.27.4 + '@esbuild/linux-loong64': 0.27.4 + '@esbuild/linux-mips64el': 0.27.4 + '@esbuild/linux-ppc64': 0.27.4 + '@esbuild/linux-riscv64': 0.27.4 + '@esbuild/linux-s390x': 0.27.4 + '@esbuild/linux-x64': 0.27.4 + '@esbuild/netbsd-arm64': 0.27.4 + '@esbuild/netbsd-x64': 0.27.4 + '@esbuild/openbsd-arm64': 0.27.4 + '@esbuild/openbsd-x64': 0.27.4 + '@esbuild/openharmony-arm64': 0.27.4 + '@esbuild/sunos-x64': 0.27.4 + '@esbuild/win32-arm64': 0.27.4 + '@esbuild/win32-ia32': 0.27.4 + '@esbuild/win32-x64': 0.27.4 + escalade@3.2.0: {} escape-html@1.0.3: {} @@ -10478,6 +12942,26 @@ snapshots: object.assign: 4.1.7 object.entries: 1.1.9 + eslint-config-next@16.1.6(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): + dependencies: + '@next/eslint-plugin-next': 16.1.6 + eslint: 9.39.4(jiti@2.6.1) + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.6.1)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.4(jiti@2.6.1)) + eslint-plugin-react: 7.37.5(eslint@9.39.4(jiti@2.6.1)) + eslint-plugin-react-hooks: 7.0.1(eslint@9.39.4(jiti@2.6.1)) + globals: 16.4.0 + typescript-eslint: 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - supports-color + eslint-config-prettier@8.10.0(eslint@8.57.0): dependencies: eslint: 8.57.0 @@ -10490,6 +12974,21 @@ snapshots: transitivePeerDependencies: - supports-color + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)): + dependencies: + '@nolyfill/is-core-module': 1.0.39 + debug: 4.4.3 + eslint: 9.39.4(jiti@2.6.1) + get-tsconfig: 4.13.6 + is-bun-module: 2.0.0 + stable-hash: 0.0.5 + tinyglobby: 0.2.15 + unrs-resolver: 1.11.1 + optionalDependencies: + eslint-plugin-import: 2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.6.1)) + transitivePeerDependencies: + - supports-color + eslint-module-utils@2.12.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.1.6))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): dependencies: debug: 3.2.7 @@ -10510,6 +13009,16 @@ snapshots: transitivePeerDependencies: - supports-color + eslint-module-utils@2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)): + dependencies: + debug: 3.2.7 + optionalDependencies: + eslint: 9.39.4(jiti@2.6.1) + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)) + transitivePeerDependencies: + - supports-color + eslint-plugin-es@3.0.1(eslint@8.57.0): dependencies: eslint: 8.57.0 @@ -10537,7 +13046,36 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.1.6))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.1.6))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + hasown: 2.0.2 + is-core-module: 2.16.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.1 + semver: 6.3.1 + string.prototype.trimend: 1.0.9 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.1.6) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.2))(eslint@8.57.0): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.9 + array.prototype.findlastindex: 1.2.6 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.57.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -10549,13 +13087,13 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.7.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.2))(eslint@8.57.0): + eslint-plugin-import@2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.6.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -10564,9 +13102,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.57.0 + eslint: 9.39.4(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -10577,8 +13115,6 @@ snapshots: semver: 6.3.1 string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.7.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -10623,6 +13159,25 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 + eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.4(jiti@2.6.1)): + dependencies: + aria-query: 5.3.2 + array-includes: 3.1.9 + array.prototype.flatmap: 1.3.3 + ast-types-flow: 0.0.8 + axe-core: 4.11.0 + axobject-query: 4.1.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 9.39.4(jiti@2.6.1) + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + safe-regex-test: 1.1.0 + string.prototype.includes: 2.0.1 + eslint-plugin-node@11.1.0(eslint@8.57.0): dependencies: eslint: 8.57.0 @@ -10654,13 +13209,28 @@ snapshots: dependencies: eslint: 8.57.0 - eslint-plugin-react-hooks@5.2.0(eslint@9.25.0(jiti@2.6.0)): + eslint-plugin-react-hooks@5.2.0(eslint@9.25.0(jiti@2.6.1)): + dependencies: + eslint: 9.25.0(jiti@2.6.1) + + eslint-plugin-react-hooks@7.0.1(eslint@9.39.4(jiti@2.6.1)): + dependencies: + '@babel/core': 7.27.1 + '@babel/parser': 7.27.2 + eslint: 9.39.4(jiti@2.6.1) + hermes-parser: 0.25.1 + zod: 4.3.6 + zod-validation-error: 4.0.2(zod@4.3.6) + transitivePeerDependencies: + - supports-color + + eslint-plugin-react-refresh@0.4.19(eslint@9.25.0(jiti@2.6.1)): dependencies: - eslint: 9.25.0(jiti@2.6.0) + eslint: 9.25.0(jiti@2.6.1) - eslint-plugin-react-refresh@0.4.19(eslint@9.25.0(jiti@2.6.0)): + eslint-plugin-react-refresh@0.4.26(eslint@9.39.4(jiti@2.6.1)): dependencies: - eslint: 9.25.0(jiti@2.6.0) + eslint: 9.39.4(jiti@2.6.1) eslint-plugin-react@7.37.5(eslint@8.57.0): dependencies: @@ -10684,6 +13254,28 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 + eslint-plugin-react@7.37.5(eslint@9.39.4(jiti@2.6.1)): + dependencies: + array-includes: 3.1.9 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.3 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.2.1 + eslint: 9.39.4(jiti@2.6.1) + estraverse: 5.3.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.9 + object.fromentries: 2.0.8 + object.values: 1.2.1 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.12 + string.prototype.repeat: 1.0.0 + eslint-plugin-testing-library@5.11.1(eslint@8.57.0)(typescript@5.1.6): dependencies: '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.1.6) @@ -10770,6 +13362,8 @@ snapshots: eslint-visitor-keys@4.2.1: {} + eslint-visitor-keys@5.0.1: {} + eslint@8.57.0: dependencies: '@eslint-community/eslint-utils': 4.8.0(eslint@8.57.0) @@ -10813,9 +13407,9 @@ snapshots: transitivePeerDependencies: - supports-color - eslint@9.25.0(jiti@2.6.0): + eslint@9.25.0(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.8.0(eslint@9.25.0(jiti@2.6.0)) + '@eslint-community/eslint-utils': 4.8.0(eslint@9.25.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.20.0 '@eslint/config-helpers': 0.2.2 @@ -10851,7 +13445,48 @@ snapshots: natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: - jiti: 2.6.0 + jiti: 2.6.1 + transitivePeerDependencies: + - supports-color + + eslint@9.39.4(jiti@2.6.1): + dependencies: + '@eslint-community/eslint-utils': 4.8.0(eslint@9.39.4(jiti@2.6.1)) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.21.2 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 + '@eslint/eslintrc': 3.3.5 + '@eslint/js': 9.39.4 + '@eslint/plugin-kit': 0.3.4 + '@humanfs/node': 0.16.6 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 + ajv: 6.14.0 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.3 + escape-string-regexp: 4.0.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.5 + natural-compare: 1.4.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 2.6.1 transitivePeerDependencies: - supports-color @@ -10939,6 +13574,14 @@ snapshots: fast-diff@1.3.0: {} + fast-glob@3.3.1: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -11116,6 +13759,8 @@ snapshots: hasown: 2.0.2 math-intrinsics: 1.1.0 + get-nonce@1.0.1: {} + get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 @@ -11212,6 +13857,10 @@ snapshots: globals@16.0.0: {} + globals@16.4.0: {} + + globals@16.5.0: {} + globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -11281,6 +13930,12 @@ snapshots: he@1.2.0: {} + hermes-estree@0.25.1: {} + + hermes-parser@0.25.1: + dependencies: + hermes-estree: 0.25.1 + hmac-drbg@1.0.1: dependencies: hash.js: 1.1.7 @@ -11355,6 +14010,8 @@ snapshots: ignore@5.3.2: {} + ignore@7.0.5: {} + immutable@4.3.7: {} immutable@5.1.2: @@ -11423,6 +14080,10 @@ snapshots: dependencies: builtin-modules: 3.3.0 + is-bun-module@2.0.0: + dependencies: + semver: 7.7.3 + is-callable@1.2.7: {} is-core-module@2.16.1: @@ -11601,6 +14262,8 @@ snapshots: jiti@2.6.0: {} + jiti@2.6.1: {} + jju@1.4.0: {} jose@4.15.9: {} @@ -11740,36 +14403,69 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + lightningcss-android-arm64@1.31.1: + optional: true + lightningcss-darwin-arm64@1.30.1: optional: true + lightningcss-darwin-arm64@1.31.1: + optional: true + lightningcss-darwin-x64@1.30.1: optional: true + lightningcss-darwin-x64@1.31.1: + optional: true + lightningcss-freebsd-x64@1.30.1: optional: true + lightningcss-freebsd-x64@1.31.1: + optional: true + lightningcss-linux-arm-gnueabihf@1.30.1: optional: true + lightningcss-linux-arm-gnueabihf@1.31.1: + optional: true + lightningcss-linux-arm64-gnu@1.30.1: optional: true + lightningcss-linux-arm64-gnu@1.31.1: + optional: true + lightningcss-linux-arm64-musl@1.30.1: optional: true + lightningcss-linux-arm64-musl@1.31.1: + optional: true + lightningcss-linux-x64-gnu@1.30.1: optional: true + lightningcss-linux-x64-gnu@1.31.1: + optional: true + lightningcss-linux-x64-musl@1.30.1: optional: true + lightningcss-linux-x64-musl@1.31.1: + optional: true + lightningcss-win32-arm64-msvc@1.30.1: optional: true + lightningcss-win32-arm64-msvc@1.31.1: + optional: true + lightningcss-win32-x64-msvc@1.30.1: optional: true + lightningcss-win32-x64-msvc@1.31.1: + optional: true + lightningcss@1.30.1: dependencies: detect-libc: 2.1.2 @@ -11785,6 +14481,22 @@ snapshots: lightningcss-win32-arm64-msvc: 1.30.1 lightningcss-win32-x64-msvc: 1.30.1 + lightningcss@1.31.1: + dependencies: + detect-libc: 2.1.2 + optionalDependencies: + lightningcss-android-arm64: 1.31.1 + lightningcss-darwin-arm64: 1.31.1 + lightningcss-darwin-x64: 1.31.1 + lightningcss-freebsd-x64: 1.31.1 + lightningcss-linux-arm-gnueabihf: 1.31.1 + lightningcss-linux-arm64-gnu: 1.31.1 + lightningcss-linux-arm64-musl: 1.31.1 + lightningcss-linux-x64-gnu: 1.31.1 + lightningcss-linux-x64-musl: 1.31.1 + lightningcss-win32-arm64-msvc: 1.31.1 + lightningcss-win32-x64-msvc: 1.31.1 + lilconfig@2.1.0: {} lines-and-columns@1.2.4: {} @@ -11854,6 +14566,10 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + magicast@0.3.5: dependencies: '@babel/parser': 7.27.2 @@ -11951,10 +14667,18 @@ snapshots: dependencies: '@isaacs/brace-expansion': 5.0.1 + minimatch@10.2.4: + dependencies: + brace-expansion: 2.0.2 + minimatch@3.1.2: dependencies: brace-expansion: 2.0.2 + minimatch@3.1.5: + dependencies: + brace-expansion: 2.0.2 + minimatch@5.1.6: dependencies: brace-expansion: 2.0.2 @@ -12002,20 +14726,22 @@ snapshots: nanoid@3.3.11: {} + napi-postinstall@0.3.4: {} + natural-compare-lite@1.4.0: {} natural-compare@1.4.0: {} negotiator@1.0.0: {} - next@15.5.12(@playwright/test@1.58.2)(react-dom@19.1.4(react@19.1.4))(react@19.1.4)(sass@1.92.1): + next@15.5.12(@playwright/test@1.58.2)(react-dom@19.2.3(react@19.1.4))(react@19.1.4)(sass@1.92.1): dependencies: '@next/env': 15.5.12 '@swc/helpers': 0.5.15 caniuse-lite: 1.0.30001718 postcss: 8.4.31 react: 19.1.4 - react-dom: 19.1.4(react@19.1.4) + react-dom: 19.2.3(react@19.1.4) styled-jsx: 5.1.6(react@19.1.4) optionalDependencies: '@next/swc-darwin-arm64': 15.5.12 @@ -12033,6 +14759,32 @@ snapshots: - '@babel/core' - babel-plugin-macros + next@16.1.6(@playwright/test@1.58.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.92.1): + dependencies: + '@next/env': 16.1.6 + '@swc/helpers': 0.5.15 + baseline-browser-mapping: 2.10.8 + caniuse-lite: 1.0.30001718 + postcss: 8.4.31 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + styled-jsx: 5.1.6(react@19.2.3) + optionalDependencies: + '@next/swc-darwin-arm64': 16.1.6 + '@next/swc-darwin-x64': 16.1.6 + '@next/swc-linux-arm64-gnu': 16.1.6 + '@next/swc-linux-arm64-musl': 16.1.6 + '@next/swc-linux-x64-gnu': 16.1.6 + '@next/swc-linux-x64-musl': 16.1.6 + '@next/swc-win32-arm64-msvc': 16.1.6 + '@next/swc-win32-x64-msvc': 16.1.6 + '@playwright/test': 1.58.2 + sass: 1.92.1 + sharp: 0.34.5 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + node-addon-api@7.1.1: optional: true @@ -12666,11 +15418,27 @@ snapshots: iconv-lite: 0.7.2 unpipe: 1.0.0 + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + react-dom@19.1.4(react@19.1.4): dependencies: react: 19.1.4 scheduler: 0.26.0 + react-dom@19.2.3(react@19.1.4): + dependencies: + react: 19.1.4 + scheduler: 0.27.0 + + react-dom@19.2.3(react@19.2.3): + dependencies: + react: 19.2.3 + scheduler: 0.27.0 + react-is@16.13.1: {} react-is@17.0.2: {} @@ -12679,6 +15447,27 @@ snapshots: react-refresh@0.17.0: {} + react-refresh@0.18.0: {} + + react-remove-scroll-bar@2.3.8(@types/react@19.1.5)(react@18.3.1): + dependencies: + react: 18.3.1 + react-style-singleton: 2.2.3(@types/react@19.1.5)(react@18.3.1) + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.1.5 + + react-remove-scroll@2.7.2(@types/react@19.1.5)(react@18.3.1): + dependencies: + react: 18.3.1 + react-remove-scroll-bar: 2.3.8(@types/react@19.1.5)(react@18.3.1) + react-style-singleton: 2.2.3(@types/react@19.1.5)(react@18.3.1) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@19.1.5)(react@18.3.1) + use-sidecar: 1.1.3(@types/react@19.1.5)(react@18.3.1) + optionalDependencies: + '@types/react': 19.1.5 + react-router@7.12.0(react-dom@19.1.4(react@19.1.4))(react@19.1.4): dependencies: cookie: 1.0.2 @@ -12687,8 +15476,30 @@ snapshots: optionalDependencies: react-dom: 19.1.4(react@19.1.4) + react-router@7.12.0(react-dom@19.2.3(react@19.1.4))(react@19.1.4): + dependencies: + cookie: 1.0.2 + react: 19.1.4 + set-cookie-parser: 2.7.1 + optionalDependencies: + react-dom: 19.2.3(react@19.1.4) + + react-style-singleton@2.2.3(@types/react@19.1.5)(react@18.3.1): + dependencies: + get-nonce: 1.0.1 + react: 18.3.1 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.1.5 + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + react@19.1.4: {} + react@19.2.3: {} + read-pkg-up@7.0.1: dependencies: find-up: 4.1.0 @@ -13055,8 +15866,14 @@ snapshots: dependencies: xmlchars: 2.2.0 + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + scheduler@0.26.0: {} + scheduler@0.27.0: {} + secure-random-bytes@5.0.1: dependencies: secure-random-octet: 4.0.1 @@ -13255,6 +16072,8 @@ snapshots: split-on-first@1.1.0: {} + stable-hash@0.0.5: {} + stable@0.1.8: {} stackback@0.0.2: {} @@ -13372,6 +16191,11 @@ snapshots: client-only: 0.0.1 react: 19.1.4 + styled-jsx@5.1.6(react@19.2.3): + dependencies: + client-only: 0.0.1 + react: 19.2.3 + stylehacks@5.1.1(postcss@8.4.31): dependencies: browserslist: 4.24.5 @@ -13518,8 +16342,12 @@ snapshots: tailwindcss@4.1.8: {} + tailwindcss@4.2.1: {} + tapable@2.2.2: {} + tapable@2.3.0: {} + tar-stream@2.2.0: dependencies: bl: 4.1.0 @@ -13638,6 +16466,10 @@ snapshots: dependencies: typescript: 5.8.3 + ts-api-utils@2.4.0(typescript@5.9.3): + dependencies: + typescript: 5.9.3 + tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 @@ -13727,22 +16559,35 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.30.1(eslint@9.25.0(jiti@2.6.0))(typescript@5.8.3): + typescript-eslint@8.30.1(eslint@9.25.0(jiti@2.6.1))(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.30.1(@typescript-eslint/parser@8.30.1(eslint@9.25.0(jiti@2.6.0))(typescript@5.8.3))(eslint@9.25.0(jiti@2.6.0))(typescript@5.8.3) - '@typescript-eslint/parser': 8.30.1(eslint@9.25.0(jiti@2.6.0))(typescript@5.8.3) - '@typescript-eslint/utils': 8.30.1(eslint@9.25.0(jiti@2.6.0))(typescript@5.8.3) - eslint: 9.25.0(jiti@2.6.0) + '@typescript-eslint/eslint-plugin': 8.30.1(@typescript-eslint/parser@8.30.1(eslint@9.25.0(jiti@2.6.1))(typescript@5.8.3))(eslint@9.25.0(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/parser': 8.30.1(eslint@9.25.0(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/utils': 8.30.1(eslint@9.25.0(jiti@2.6.1))(typescript@5.8.3) + eslint: 9.25.0(jiti@2.6.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color + typescript-eslint@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.57.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.4(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + typescript@5.1.6: {} typescript@5.7.2: {} typescript@5.8.3: {} + typescript@5.9.3: {} + ufo@1.6.1: {} unbox-primitive@1.1.0: @@ -13756,8 +16601,7 @@ snapshots: undici-types@6.21.0: {} - undici-types@7.8.0: - optional: true + undici-types@7.16.0: {} undici@7.21.0: {} @@ -13767,6 +16611,30 @@ snapshots: unpipe@1.0.0: {} + unrs-resolver@1.11.1: + dependencies: + napi-postinstall: 0.3.4 + optionalDependencies: + '@unrs/resolver-binding-android-arm-eabi': 1.11.1 + '@unrs/resolver-binding-android-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-x64': 1.11.1 + '@unrs/resolver-binding-freebsd-x64': 1.11.1 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-arm64-musl': 1.11.1 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1 + '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-musl': 1.11.1 + '@unrs/resolver-binding-wasm32-wasi': 1.11.1 + '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 + '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 + '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 + update-browserslist-db@1.1.3(browserslist@4.24.5): dependencies: browserslist: 4.24.5 @@ -13777,6 +16645,21 @@ snapshots: dependencies: punycode: 2.3.1 + use-callback-ref@1.3.3(@types/react@19.1.5)(react@18.3.1): + dependencies: + react: 18.3.1 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.1.5 + + use-sidecar@1.1.3(@types/react@19.1.5)(react@18.3.1): + dependencies: + detect-node-es: 1.1.0 + react: 18.3.1 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.1.5 + use-sync-external-store@1.6.0(react@19.1.4): dependencies: react: 19.1.4 @@ -13797,13 +16680,13 @@ snapshots: vary@1.1.2: {} - vite-node@3.0.8(@types/node@20.12.7)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): + vite-node@3.0.8(@types/node@20.12.7)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): dependencies: cac: 6.7.14 debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.4.1(@types/node@20.12.7)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + vite: 6.4.1(@types/node@20.12.7)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - jiti @@ -13818,13 +16701,13 @@ snapshots: - tsx - yaml - vite-node@3.1.3(@types/node@22.15.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): + vite-node@3.1.3(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): dependencies: cac: 6.7.14 debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.4.1(@types/node@22.15.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + vite: 6.4.1(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - jiti @@ -13839,13 +16722,13 @@ snapshots: - tsx - yaml - vite-node@3.1.3(@types/node@22.15.30)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): + vite-node@3.1.3(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): dependencies: cac: 6.7.14 debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.4.1(@types/node@22.15.30)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + vite: 6.4.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - jiti @@ -13860,7 +16743,20 @@ snapshots: - tsx - yaml - vite@6.4.1(@types/node@20.12.7)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): + vite@5.4.21(@types/node@24.12.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2): + dependencies: + esbuild: 0.21.5 + postcss: 8.5.6 + rollup: 4.32.0 + optionalDependencies: + '@types/node': 24.12.0 + fsevents: 2.3.3 + lightningcss: 1.31.1 + sass: 1.92.1 + sass-embedded: 1.92.1 + terser: 5.39.2 + + vite@6.4.1(@types/node@20.12.7)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -13871,15 +16767,15 @@ snapshots: optionalDependencies: '@types/node': 20.12.7 fsevents: 2.3.3 - jiti: 2.6.0 - lightningcss: 1.30.1 + jiti: 2.6.1 + lightningcss: 1.31.1 sass: 1.75.0 sass-embedded: 1.92.1 terser: 5.39.2 tsx: 4.21.0 yaml: 2.8.0 - vite@6.4.1(@types/node@22.15.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): + vite@6.4.1(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -13890,15 +16786,15 @@ snapshots: optionalDependencies: '@types/node': 22.15.3 fsevents: 2.3.3 - jiti: 2.6.0 - lightningcss: 1.30.1 + jiti: 2.6.1 + lightningcss: 1.31.1 sass: 1.92.1 sass-embedded: 1.92.1 terser: 5.39.2 tsx: 4.21.0 yaml: 2.8.0 - vite@6.4.1(@types/node@22.15.30)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): + vite@6.4.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -13909,15 +16805,15 @@ snapshots: optionalDependencies: '@types/node': 22.15.30 fsevents: 2.3.3 - jiti: 2.6.0 - lightningcss: 1.30.1 + jiti: 2.6.1 + lightningcss: 1.31.1 sass: 1.92.1 sass-embedded: 1.92.1 terser: 5.39.2 tsx: 4.21.0 yaml: 2.8.0 - vite@6.4.1(@types/node@24.0.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): + vite@6.4.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -13926,17 +16822,17 @@ snapshots: rollup: 4.50.0 tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 24.0.3 + '@types/node': 24.12.0 fsevents: 2.3.3 - jiti: 2.6.0 - lightningcss: 1.30.1 + jiti: 2.6.1 + lightningcss: 1.31.1 sass: 1.92.1 sass-embedded: 1.92.1 terser: 5.39.2 tsx: 4.21.0 yaml: 2.8.0 - vite@7.1.12(@types/node@20.12.7)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): + vite@7.1.12(@types/node@20.12.7)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -13947,18 +16843,37 @@ snapshots: optionalDependencies: '@types/node': 20.12.7 fsevents: 2.3.3 - jiti: 2.6.0 - lightningcss: 1.30.1 + jiti: 2.6.1 + lightningcss: 1.31.1 sass: 1.75.0 sass-embedded: 1.92.1 terser: 5.39.2 tsx: 4.21.0 yaml: 2.8.0 - vitest@3.0.8(@types/node@20.12.7)(jiti@2.6.0)(jsdom@27.4.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): + vite@7.3.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): + dependencies: + esbuild: 0.27.3 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.50.0 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 24.12.0 + fsevents: 2.3.3 + jiti: 2.6.1 + lightningcss: 1.31.1 + sass: 1.92.1 + sass-embedded: 1.92.1 + terser: 5.39.2 + tsx: 4.21.0 + yaml: 2.8.0 + + vitest@3.0.8(@types/node@20.12.7)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): dependencies: '@vitest/expect': 3.0.8 - '@vitest/mocker': 3.0.8(vite@6.4.1(@types/node@20.12.7)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) + '@vitest/mocker': 3.0.8(vite@6.4.1(@types/node@20.12.7)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) '@vitest/pretty-format': 3.1.3 '@vitest/runner': 3.0.8 '@vitest/snapshot': 3.0.8 @@ -13974,8 +16889,8 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.4.1(@types/node@20.12.7)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) - vite-node: 3.0.8(@types/node@20.12.7)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + vite: 6.4.1(@types/node@20.12.7)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + vite-node: 3.0.8(@types/node@20.12.7)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.12.7 @@ -13994,10 +16909,10 @@ snapshots: - tsx - yaml - vitest@3.1.3(@types/node@22.15.3)(@vitest/browser@3.1.3)(jiti@2.6.0)(jsdom@26.1.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): + vitest@3.1.3(@types/node@22.15.3)(@vitest/browser@3.1.3)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): dependencies: '@vitest/expect': 3.1.3 - '@vitest/mocker': 3.1.3(vite@6.4.1(@types/node@22.15.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) + '@vitest/mocker': 3.1.3(vite@6.4.1(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) '@vitest/pretty-format': 3.1.3 '@vitest/runner': 3.1.3 '@vitest/snapshot': 3.1.3 @@ -14014,12 +16929,12 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.4.1(@types/node@22.15.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) - vite-node: 3.1.3(@types/node@22.15.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + vite: 6.4.1(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + vite-node: 3.1.3(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.15.3 - '@vitest/browser': 3.1.3(playwright@1.58.2)(vite@6.4.1(@types/node@22.15.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))(vitest@3.1.3) + '@vitest/browser': 3.1.3(playwright@1.58.2)(vite@6.4.1(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))(vitest@3.1.3) jsdom: 26.1.0 transitivePeerDependencies: - jiti @@ -14035,10 +16950,10 @@ snapshots: - tsx - yaml - vitest@3.1.3(@types/node@22.15.3)(@vitest/browser@3.1.3)(jiti@2.6.0)(jsdom@27.4.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): + vitest@3.1.3(@types/node@22.15.3)(@vitest/browser@3.1.3)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): dependencies: '@vitest/expect': 3.1.3 - '@vitest/mocker': 3.1.3(vite@6.4.1(@types/node@22.15.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) + '@vitest/mocker': 3.1.3(vite@6.4.1(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) '@vitest/pretty-format': 3.1.3 '@vitest/runner': 3.1.3 '@vitest/snapshot': 3.1.3 @@ -14055,12 +16970,12 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.4.1(@types/node@22.15.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) - vite-node: 3.1.3(@types/node@22.15.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + vite: 6.4.1(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + vite-node: 3.1.3(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.15.3 - '@vitest/browser': 3.1.3(playwright@1.55.1)(vite@6.4.1(@types/node@22.15.3)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))(vitest@3.1.3) + '@vitest/browser': 3.1.3(playwright@1.55.1)(vite@6.4.1(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))(vitest@3.1.3) jsdom: 27.4.0 transitivePeerDependencies: - jiti @@ -14076,10 +16991,10 @@ snapshots: - tsx - yaml - vitest@3.1.3(@types/node@22.15.30)(@vitest/browser@3.1.3)(jiti@2.6.0)(jsdom@27.4.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): + vitest@3.1.3(@types/node@22.15.30)(@vitest/browser@3.1.3)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): dependencies: '@vitest/expect': 3.1.3 - '@vitest/mocker': 3.1.3(vite@6.4.1(@types/node@22.15.30)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) + '@vitest/mocker': 3.1.3(vite@6.4.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) '@vitest/pretty-format': 3.1.3 '@vitest/runner': 3.1.3 '@vitest/snapshot': 3.1.3 @@ -14096,12 +17011,12 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.4.1(@types/node@22.15.30)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) - vite-node: 3.1.3(@types/node@22.15.30)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + vite: 6.4.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) + vite-node: 3.1.3(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.15.30 - '@vitest/browser': 3.1.3(playwright@1.58.2)(vite@6.4.1(@types/node@22.15.30)(jiti@2.6.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))(vitest@3.1.3) + '@vitest/browser': 3.1.3(playwright@1.58.2)(vite@6.4.1(@types/node@22.15.30)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))(vitest@3.1.3) jsdom: 27.4.0 transitivePeerDependencies: - jiti @@ -14312,3 +17227,9 @@ snapshots: yargs-parser: 21.1.1 yocto-queue@0.1.0: {} + + zod-validation-error@4.0.2(zod@4.3.6): + dependencies: + zod: 4.3.6 + + zod@4.3.6: {} From dd334e678fb46a45e8152c929b34b63bb3ffc8d4 Mon Sep 17 00:00:00 2001 From: Brion Date: Sun, 15 Mar 2026 17:31:10 +0530 Subject: [PATCH 10/11] Update lock file --- pnpm-lock.yaml | 990 ++----------------------------------------------- 1 file changed, 27 insertions(+), 963 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1e9c1d08..65710258 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -688,43 +688,6 @@ importers: specifier: 2.2.2 version: 2.2.2(typescript@5.1.6) - samples/esignet-portal: - dependencies: - '@asgardeo/react': - specifier: workspace:* - version: link:../../packages/react - '@asgardeo/react-router': - specifier: workspace:* - version: link:../../packages/react-router - '@radix-ui/react-dropdown-menu': - specifier: ^2.1.16 - version: 2.1.16(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tailwindcss/vite': - specifier: 4.1.8 - version: 4.1.8(vite@5.4.21(@types/node@24.12.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)) - react: - specifier: ^18.2.0 - version: 18.3.1 - react-dom: - specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) - tailwindcss: - specifier: 4.1.8 - version: 4.1.8 - devDependencies: - '@types/react': - specifier: 19.1.5 - version: 19.1.5 - '@types/react-dom': - specifier: 19.1.5 - version: 19.1.5(@types/react@19.1.5) - '@vitejs/plugin-react': - specifier: ^4.2.0 - version: 4.4.1(vite@5.4.21(@types/node@24.12.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)) - vite: - specifier: ^5.0.0 - version: 5.4.21(@types/node@24.12.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2) - samples/esignet-portal-next: dependencies: '@asgardeo/nextjs': @@ -757,7 +720,7 @@ importers: version: 9.39.4(jiti@2.6.1) eslint-config-next: specifier: 16.1.6 - version: 16.1.6(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + version: 16.1.6(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) tailwindcss: specifier: ^4 version: 4.1.8 @@ -948,55 +911,6 @@ importers: specifier: 6.4.1 version: 6.4.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) - samples/vite-project: - dependencies: - '@asgardeo/react': - specifier: workspace:* - version: link:../../packages/react - react: - specifier: 19.1.4 - version: 19.1.4 - react-dom: - specifier: 19.1.4 - version: 19.1.4(react@19.1.4) - devDependencies: - '@eslint/js': - specifier: ^9.39.1 - version: 9.39.4 - '@types/node': - specifier: ^24.10.1 - version: 24.12.0 - '@types/react': - specifier: 19.1.5 - version: 19.1.5 - '@types/react-dom': - specifier: 19.1.5 - version: 19.1.5(@types/react@19.1.5) - '@vitejs/plugin-react': - specifier: ^5.1.1 - version: 5.2.0(vite@7.3.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0)) - eslint: - specifier: ^9.39.1 - version: 9.39.4(jiti@2.6.1) - eslint-plugin-react-hooks: - specifier: ^7.0.1 - version: 7.0.1(eslint@9.39.4(jiti@2.6.1)) - eslint-plugin-react-refresh: - specifier: ^0.4.24 - version: 0.4.26(eslint@9.39.4(jiti@2.6.1)) - globals: - specifier: ^16.5.0 - version: 16.5.0 - typescript: - specifier: ~5.9.3 - version: 5.9.3 - typescript-eslint: - specifier: ^8.48.0 - version: 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - vite: - specifier: ^7.3.1 - version: 7.3.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) - packages: '@acemir/cssom@0.9.31': @@ -1035,26 +949,14 @@ packages: resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} - '@babel/code-frame@7.29.0': - resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} - engines: {node: '>=6.9.0'} - '@babel/compat-data@7.27.2': resolution: {integrity: sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.29.0': - resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} - engines: {node: '>=6.9.0'} - '@babel/core@7.27.1': resolution: {integrity: sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==} engines: {node: '>=6.9.0'} - '@babel/core@7.29.0': - resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} - engines: {node: '>=6.9.0'} - '@babel/eslint-parser@7.28.5': resolution: {integrity: sha512-fcdRcWahONYo+JRnJg1/AekOacGvKx12Gu0qXJXFi2WBqQA1i7+O5PaxRB7kxE/Op94dExnCiiar6T09pvdHpA==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} @@ -1066,42 +968,20 @@ packages: resolution: {integrity: sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==} engines: {node: '>=6.9.0'} - '@babel/generator@7.29.1': - resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} - engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.27.2': resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.28.6': - resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-globals@7.28.0': - resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} - engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.27.1': resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.28.6': - resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} - engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.27.1': resolution: {integrity: sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-module-transforms@7.28.6': - resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-plugin-utils@7.27.1': resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} engines: {node: '>=6.9.0'} @@ -1114,10 +994,6 @@ packages: resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.28.5': - resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.27.1': resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} @@ -1126,20 +1002,11 @@ packages: resolution: {integrity: sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.6': - resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} - engines: {node: '>=6.9.0'} - '@babel/parser@7.27.2': resolution: {integrity: sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@7.29.0': - resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/plugin-transform-react-jsx-self@7.27.1': resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} engines: {node: '>=6.9.0'} @@ -1160,26 +1027,14 @@ packages: resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} - '@babel/template@7.28.6': - resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} - engines: {node: '>=6.9.0'} - '@babel/traverse@7.27.1': resolution: {integrity: sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.29.0': - resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} - engines: {node: '>=6.9.0'} - '@babel/types@7.27.1': resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==} engines: {node: '>=6.9.0'} - '@babel/types@7.29.0': - resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} - engines: {node: '>=6.9.0'} - '@bcoe/v8-coverage@1.0.2': resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} @@ -2640,35 +2495,6 @@ packages: '@polka/url@1.0.0-next.29': resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} - '@radix-ui/primitive@1.1.3': - resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} - - '@radix-ui/react-arrow@1.1.7': - resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} - peerDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5 - 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-collection@1.1.7': - resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} - peerDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5 - 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-compose-refs@1.1.2': resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} peerDependencies: @@ -2678,81 +2504,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-context@1.1.2': - resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} - peerDependencies: - '@types/react': 19.1.5 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-direction@1.1.1': - resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} - peerDependencies: - '@types/react': 19.1.5 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-dismissable-layer@1.1.11': - resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} - peerDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5 - 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-dropdown-menu@2.1.16': - resolution: {integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==} - peerDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5 - 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-focus-guards@1.1.3': - resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} - peerDependencies: - '@types/react': 19.1.5 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-focus-scope@1.1.7': - resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} - peerDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5 - 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-id@1.1.1': - resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} - peerDependencies: - '@types/react': 19.1.5 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@radix-ui/react-label@2.1.7': resolution: {integrity: sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==} peerDependencies: @@ -2766,58 +2517,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-menu@2.1.16': - resolution: {integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==} - peerDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5 - 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.8': - resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==} - peerDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5 - 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.9': - resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} - peerDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5 - 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.5': - resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} - peerDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5 - 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.1.3': resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} peerDependencies: @@ -2831,19 +2530,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-roving-focus@1.1.11': - resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==} - peerDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5 - 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.2.3': resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} peerDependencies: @@ -2853,75 +2539,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-callback-ref@1.1.1': - resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} - peerDependencies: - '@types/react': 19.1.5 - 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.2.2': - resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} - peerDependencies: - '@types/react': 19.1.5 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-effect-event@0.0.2': - resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} - peerDependencies: - '@types/react': 19.1.5 - 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.1': - resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} - peerDependencies: - '@types/react': 19.1.5 - 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.1': - resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} - peerDependencies: - '@types/react': 19.1.5 - 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.1': - resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} - peerDependencies: - '@types/react': 19.1.5 - 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.1': - resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} - peerDependencies: - '@types/react': 19.1.5 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/rect@1.1.1': - resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} - - '@rolldown/pluginutils@1.0.0-rc.3': - resolution: {integrity: sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==} - '@rollup/plugin-commonjs@25.0.7': resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} engines: {node: '>=14.0.0'} @@ -3861,12 +3478,6 @@ packages: peerDependencies: vite: ^4.2.0 || ^5.0.0 || ^6.0.0 - '@vitejs/plugin-react@5.2.0': - resolution: {integrity: sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw==} - engines: {node: ^20.19.0 || >=22.12.0} - peerDependencies: - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 - '@vitejs/plugin-vue@5.2.4': resolution: {integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -4148,10 +3759,6 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-hidden@1.2.6: - resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} - engines: {node: '>=10'} - aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} @@ -4749,9 +4356,6 @@ packages: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} - detect-node-es@1.1.0: - resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} - diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5136,11 +4740,6 @@ packages: peerDependencies: eslint: '>=8.40' - eslint-plugin-react-refresh@0.4.26: - resolution: {integrity: sha512-1RETEylht2O6FM/MvgnyvT+8K21wLqDNg4qD51Zj3guhjt433XbnnkVttHMyaVyAFD03QSV4LPS5iE3VQmO7XQ==} - peerDependencies: - eslint: '>=8.40' - eslint-plugin-react@7.37.5: resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} engines: {node: '>=4'} @@ -5482,10 +5081,6 @@ packages: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} - get-nonce@1.0.1: - resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} - engines: {node: '>=6'} - get-proto@1.0.1: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} @@ -5564,10 +5159,6 @@ packages: resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==} engines: {node: '>=18'} - globals@16.5.0: - resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} - engines: {node: '>=18'} - globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -7173,30 +6764,6 @@ packages: resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} engines: {node: '>=0.10.0'} - react-refresh@0.18.0: - resolution: {integrity: sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==} - engines: {node: '>=0.10.0'} - - react-remove-scroll-bar@2.3.8: - resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': 19.1.5 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - react-remove-scroll@2.7.2: - resolution: {integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': 19.1.5 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - react-router@7.12.0: resolution: {integrity: sha512-kTPDYPFzDVGIIGNLS5VJykK0HfHLY5MF3b+xj0/tTyNYL1gF1qs7u67Z9jEhQk2sQ98SUaHxlG31g1JtF7IfVw==} engines: {node: '>=20.0.0'} @@ -7207,16 +6774,6 @@ packages: react-dom: optional: true - react-style-singleton@2.2.3: - resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': 19.1.5 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - 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'} @@ -8187,26 +7744,6 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - use-callback-ref@1.3.3: - resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': 19.1.5 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - use-sidecar@1.1.3: - resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': 19.1.5 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - use-sync-external-store@1.6.0: resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} peerDependencies: @@ -8353,46 +7890,6 @@ packages: yaml: optional: true - vite@7.3.1: - resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - jiti: '>=1.21.0' - less: ^4.0.0 - lightningcss: ^1.21.0 - sass: ^1.70.0 - sass-embedded: ^1.70.0 - stylus: '>=0.54.8' - sugarss: ^5.0.0 - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - vitest@3.0.8: resolution: {integrity: sha512-dfqAsNqRGUc8hB9OVR2P0w8PZPEckti2+5rdZip0WIz9WW0MnImJ8XiR61QhqLa92EQzKP2uPkzenKOAHyEIbA==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -8720,16 +8217,8 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/code-frame@7.29.0': - dependencies: - '@babel/helper-validator-identifier': 7.28.5 - js-tokens: 4.0.0 - picocolors: 1.1.1 - '@babel/compat-data@7.27.2': {} - '@babel/compat-data@7.29.0': {} - '@babel/core@7.27.1': dependencies: '@ampproject/remapping': 2.3.0 @@ -8739,31 +8228,11 @@ snapshots: '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1) '@babel/helpers': 7.27.1 '@babel/parser': 7.27.2 - '@babel/template': 7.27.2 - '@babel/traverse': 7.27.1 - '@babel/types': 7.27.1 - convert-source-map: 2.0.0 - debug: 4.4.1 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/core@7.29.0': - dependencies: - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helpers': 7.28.6 - '@babel/parser': 7.29.0 - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - '@jridgewell/remapping': 2.3.5 + '@babel/template': 7.27.2 + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 convert-source-map: 2.0.0 - debug: 4.4.3 + debug: 4.4.1 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -8786,14 +8255,6 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.1.0 - '@babel/generator@7.29.1': - dependencies: - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 - '@jridgewell/gen-mapping': 0.3.12 - '@jridgewell/trace-mapping': 0.3.29 - jsesc: 3.1.0 - '@babel/helper-compilation-targets@7.27.2': dependencies: '@babel/compat-data': 7.27.2 @@ -8802,16 +8263,6 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-compilation-targets@7.28.6': - dependencies: - '@babel/compat-data': 7.29.0 - '@babel/helper-validator-option': 7.27.1 - browserslist: 4.24.5 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-globals@7.28.0': {} - '@babel/helper-module-imports@7.27.1': dependencies: '@babel/traverse': 7.27.1 @@ -8819,13 +8270,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-imports@7.28.6': - dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - transitivePeerDependencies: - - supports-color - '@babel/helper-module-transforms@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -8835,23 +8279,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - '@babel/helper-plugin-utils@7.27.1': {} '@babel/helper-string-parser@7.27.1': {} '@babel/helper-validator-identifier@7.27.1': {} - '@babel/helper-validator-identifier@7.28.5': {} - '@babel/helper-validator-option@7.27.1': {} '@babel/helpers@7.27.1': @@ -8859,39 +8292,20 @@ snapshots: '@babel/template': 7.27.2 '@babel/types': 7.27.1 - '@babel/helpers@7.28.6': - dependencies: - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 - '@babel/parser@7.27.2': dependencies: '@babel/types': 7.27.1 - '@babel/parser@7.29.0': - dependencies: - '@babel/types': 7.29.0 - '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/runtime@7.27.1': {} '@babel/template@7.27.2': @@ -8900,12 +8314,6 @@ snapshots: '@babel/parser': 7.27.2 '@babel/types': 7.27.1 - '@babel/template@7.28.6': - dependencies: - '@babel/code-frame': 7.29.0 - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 - '@babel/traverse@7.27.1': dependencies: '@babel/code-frame': 7.27.1 @@ -8918,28 +8326,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/traverse@7.29.0': - dependencies: - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.29.0 - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - '@babel/types@7.27.1': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/types@7.29.0': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - '@bcoe/v8-coverage@1.0.2': {} '@bufbuild/protobuf@2.7.0': @@ -9531,6 +8922,11 @@ snapshots: eslint: 9.39.4(jiti@2.6.1) eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils@4.9.1(eslint@8.57.0)': + dependencies: + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.4(jiti@2.6.1))': dependencies: eslint: 9.39.4(jiti@2.6.1) @@ -9642,12 +9038,6 @@ snapshots: '@floating-ui/core': 1.7.1 '@floating-ui/utils': 0.2.9 - '@floating-ui/react-dom@2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@floating-ui/dom': 1.7.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - '@floating-ui/react-dom@2.1.3(react-dom@19.1.4(react@19.1.4))(react@19.1.4)': dependencies: '@floating-ui/dom': 1.7.1 @@ -10078,105 +9468,12 @@ snapshots: '@polka/url@1.0.0-next.29': {} - '@radix-ui/primitive@1.1.3': {} - - '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(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': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) - - '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) - - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.5)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 19.1.5 - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.5)(react@19.1.4)': dependencies: react: 19.1.4 optionalDependencies: '@types/react': 19.1.5 - '@radix-ui/react-context@1.1.2(@types/react@19.1.5)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 19.1.5 - - '@radix-ui/react-direction@1.1.1(@types/react@19.1.5)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 19.1.5 - - '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.5)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) - - '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) - - '@radix-ui/react-focus-guards@1.1.3(@types/react@19.1.5)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 19.1.5 - - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) - - '@radix-ui/react-id@1.1.1(@types/react@19.1.5)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 19.1.5 - '@radix-ui/react-label@2.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.4(react@19.1.4))(react@19.1.4)': dependencies: '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.4(react@19.1.4))(react@19.1.4) @@ -10186,79 +9483,6 @@ snapshots: '@types/react': 19.1.5 '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-menu@2.1.16(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@18.3.1) - aria-hidden: 1.2.6 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.2(@types/react@19.1.5)(react@18.3.1) - optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) - - '@radix-ui/react-popper@1.2.8(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@floating-ui/react-dom': 2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/rect': 1.1.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) - - '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) - - '@radix-ui/react-presence@1.1.5(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) - - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.4(react@19.1.4))(react@19.1.4)': dependencies: '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@19.1.4) @@ -10268,30 +9492,6 @@ snapshots: '@types/react': 19.1.5 '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) - - '@radix-ui/react-slot@1.2.3(@types/react@19.1.5)(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 19.1.5 - '@radix-ui/react-slot@1.2.3(@types/react@19.1.5)(react@19.1.4)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.4) @@ -10299,58 +9499,6 @@ snapshots: optionalDependencies: '@types/react': 19.1.5 - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.5)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 19.1.5 - - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.5)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.5)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 19.1.5 - - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.5)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 19.1.5 - - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.5)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 19.1.5 - - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.5)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 19.1.5 - - '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.5)(react@18.3.1)': - dependencies: - '@radix-ui/rect': 1.1.1 - react: 18.3.1 - optionalDependencies: - '@types/react': 19.1.5 - - '@radix-ui/react-use-size@1.1.1(@types/react@19.1.5)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 19.1.5 - - '@radix-ui/rect@1.1.1': {} - - '@rolldown/pluginutils@1.0.0-rc.3': {} - '@rollup/plugin-commonjs@25.0.7(rollup@4.32.0)': dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.32.0) @@ -10837,6 +9985,7 @@ snapshots: '@types/node@24.12.0': dependencies: undici-types: 7.16.0 + optional: true '@types/normalize-package-data@2.4.4': {} @@ -11358,18 +10507,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@5.2.0(vite@7.3.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))': - dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.29.0) - '@rolldown/pluginutils': 1.0.0-rc.3 - '@types/babel__core': 7.20.5 - react-refresh: 0.18.0 - vite: 7.3.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) - transitivePeerDependencies: - - supports-color - '@vitejs/plugin-vue@5.2.4(vite@7.1.12(@types/node@20.12.7)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))(vue@3.5.13(typescript@5.1.6))': dependencies: vite: 7.1.12(@types/node@20.12.7)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0) @@ -11832,10 +10969,6 @@ snapshots: argparse@2.0.1: {} - aria-hidden@1.2.6: - dependencies: - tslib: 2.8.1 - aria-query@5.3.0: dependencies: dequal: 2.0.3 @@ -12516,8 +11649,6 @@ snapshots: detect-libc@2.1.2: {} - detect-node-es@1.1.0: {} - diff-sequences@29.6.3: {} diffie-hellman@5.0.3: @@ -12942,13 +12073,13 @@ snapshots: object.assign: 4.1.7 object.entries: 1.1.9 - eslint-config-next@16.1.6(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): + eslint-config-next@16.1.6(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): dependencies: '@next/eslint-plugin-next': 16.1.6 eslint: 9.39.4(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)) - eslint-plugin-import: 2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.6.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.6.1)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.4(jiti@2.6.1)) eslint-plugin-react: 7.37.5(eslint@9.39.4(jiti@2.6.1)) eslint-plugin-react-hooks: 7.0.1(eslint@9.39.4(jiti@2.6.1)) @@ -12974,7 +12105,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3 @@ -12985,7 +12116,7 @@ snapshots: tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.6.1)) transitivePeerDependencies: - supports-color @@ -13009,13 +12140,14 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)): dependencies: debug: 3.2.7 optionalDependencies: + '@typescript-eslint/parser': 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)) transitivePeerDependencies: - supports-color @@ -13093,7 +12225,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.6.1)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.6.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -13104,7 +12236,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.39.4(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -13115,6 +12247,8 @@ snapshots: semver: 6.3.1 string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -13228,10 +12362,6 @@ snapshots: dependencies: eslint: 9.25.0(jiti@2.6.1) - eslint-plugin-react-refresh@0.4.26(eslint@9.39.4(jiti@2.6.1)): - dependencies: - eslint: 9.39.4(jiti@2.6.1) - eslint-plugin-react@7.37.5(eslint@8.57.0): dependencies: array-includes: 3.1.9 @@ -13321,7 +12451,7 @@ snapshots: eslint-plugin-vue@10.1.0(eslint@8.57.0)(vue-eslint-parser@10.1.3(eslint@8.57.0)): dependencies: - '@eslint-community/eslint-utils': 4.8.0(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.0) eslint: 8.57.0 natural-compare: 1.4.0 nth-check: 2.1.1 @@ -13759,8 +12889,6 @@ snapshots: hasown: 2.0.2 math-intrinsics: 1.1.0 - get-nonce@1.0.1: {} - get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 @@ -13859,8 +12987,6 @@ snapshots: globals@16.4.0: {} - globals@16.5.0: {} - globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -15447,27 +14573,6 @@ snapshots: react-refresh@0.17.0: {} - react-refresh@0.18.0: {} - - react-remove-scroll-bar@2.3.8(@types/react@19.1.5)(react@18.3.1): - dependencies: - react: 18.3.1 - react-style-singleton: 2.2.3(@types/react@19.1.5)(react@18.3.1) - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.1.5 - - react-remove-scroll@2.7.2(@types/react@19.1.5)(react@18.3.1): - dependencies: - react: 18.3.1 - react-remove-scroll-bar: 2.3.8(@types/react@19.1.5)(react@18.3.1) - react-style-singleton: 2.2.3(@types/react@19.1.5)(react@18.3.1) - tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.1.5)(react@18.3.1) - use-sidecar: 1.1.3(@types/react@19.1.5)(react@18.3.1) - optionalDependencies: - '@types/react': 19.1.5 - react-router@7.12.0(react-dom@19.1.4(react@19.1.4))(react@19.1.4): dependencies: cookie: 1.0.2 @@ -15484,14 +14589,6 @@ snapshots: optionalDependencies: react-dom: 19.2.3(react@19.1.4) - react-style-singleton@2.2.3(@types/react@19.1.5)(react@18.3.1): - dependencies: - get-nonce: 1.0.1 - react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.1.5 - react@18.3.1: dependencies: loose-envify: 1.4.0 @@ -16601,7 +15698,8 @@ snapshots: undici-types@6.21.0: {} - undici-types@7.16.0: {} + undici-types@7.16.0: + optional: true undici@7.21.0: {} @@ -16645,21 +15743,6 @@ snapshots: dependencies: punycode: 2.3.1 - use-callback-ref@1.3.3(@types/react@19.1.5)(react@18.3.1): - dependencies: - react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.1.5 - - use-sidecar@1.1.3(@types/react@19.1.5)(react@18.3.1): - dependencies: - detect-node-es: 1.1.0 - react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.1.5 - use-sync-external-store@1.6.0(react@19.1.4): dependencies: react: 19.1.4 @@ -16851,25 +15934,6 @@ snapshots: tsx: 4.21.0 yaml: 2.8.0 - vite@7.3.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): - dependencies: - esbuild: 0.27.3 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.50.0 - tinyglobby: 0.2.15 - optionalDependencies: - '@types/node': 24.12.0 - fsevents: 2.3.3 - jiti: 2.6.1 - lightningcss: 1.31.1 - sass: 1.92.1 - sass-embedded: 1.92.1 - terser: 5.39.2 - tsx: 4.21.0 - yaml: 2.8.0 - vitest@3.0.8(@types/node@20.12.7)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.75.0)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0): dependencies: '@vitest/expect': 3.0.8 @@ -16975,7 +16039,7 @@ snapshots: why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.15.3 - '@vitest/browser': 3.1.3(playwright@1.55.1)(vite@6.4.1(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))(vitest@3.1.3) + '@vitest/browser': 3.1.3(playwright@1.58.2)(vite@6.4.1(@types/node@22.15.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.39.2)(tsx@4.21.0)(yaml@2.8.0))(vitest@3.1.3) jsdom: 27.4.0 transitivePeerDependencies: - jiti From 2dace9033b6c60e6e8b677ce17f56e28934f2e9a Mon Sep 17 00:00:00 2001 From: Brion Date: Sun, 15 Mar 2026 18:57:16 +0530 Subject: [PATCH 11/11] Remove legacy Vue Vite sample files and assets --- packages/__legacy__/core/.editorconfig | 1 - packages/__legacy__/core/.eslintignore | 4 - packages/__legacy__/core/.eslintrc.cjs | 45 - packages/__legacy__/core/.gitignore | 134 -- packages/__legacy__/core/.prettierignore | 2 - packages/__legacy__/core/CHANGELOG.md | 49 - packages/__legacy__/core/LICENSE | 201 -- packages/__legacy__/core/README.md | 39 - packages/__legacy__/core/package.json | 63 - packages/__legacy__/core/prettier.config.cjs | 19 - packages/__legacy__/core/rollup.config.cjs | 60 - .../__legacy__/core/src/api/authenticate.ts | 70 - packages/__legacy__/core/src/api/authorize.ts | 79 - .../src/api/get-branding-preference-text.ts | 74 - .../core/src/api/get-branding-preference.ts | 54 - .../core/src/api/get-profile-information.ts | 74 - .../__legacy__/core/src/api/public-api.ts | 24 - packages/__legacy__/core/src/api/sign-out.ts | 86 - packages/__legacy__/core/src/auth-client.ts | 66 - .../branding/default-branding/dark-theme.ts | 237 --- .../default-branding/default-branding.ts | 56 - .../branding/default-branding/light-theme.ts | 237 --- .../core/src/branding/get-branding-css.ts | 128 -- .../core/src/branding/get-branding.ts | 68 - .../__legacy__/core/src/branding/public.ts | 20 - packages/__legacy__/core/src/exception.ts | 55 - .../core/src/i18n/get-localization.ts | 83 - packages/__legacy__/core/src/i18n/public.ts | 21 - .../core/src/i18n/screens/common/en-US.ts | 32 - .../core/src/i18n/screens/common/fr-FR.ts | 32 - .../core/src/i18n/screens/common/model.ts | 33 - .../core/src/i18n/screens/emailOtp/en-US.ts | 29 - .../core/src/i18n/screens/emailOtp/model.ts | 30 - .../src/i18n/screens/identifierFirst/en-US.ts | 29 - .../src/i18n/screens/identifierFirst/fr-FR.ts | 29 - .../src/i18n/screens/identifierFirst/model.ts | 30 - .../__legacy__/core/src/i18n/screens/keys.ts | 270 --- .../core/src/i18n/screens/login/en-US.ts | 30 - .../core/src/i18n/screens/login/fr-FR.ts | 30 - .../core/src/i18n/screens/login/model.ts | 31 - .../__legacy__/core/src/i18n/screens/model.ts | 37 - .../core/src/i18n/screens/smsOtp/en-US.ts | 26 - .../core/src/i18n/screens/smsOtp/model.ts | 27 - .../core/src/i18n/screens/totp/en-US.ts | 27 - .../core/src/i18n/screens/totp/fr-FR.ts | 28 - .../core/src/i18n/screens/totp/model.ts | 28 - packages/__legacy__/core/src/index.ts | 24 - .../core/src/models/auth-api-request.ts | 45 - .../core/src/models/auth-api-response.ts | 256 --- .../__legacy__/core/src/models/auth-config.ts | 54 - .../core/src/models/branding-api-response.ts | 593 ------ .../src/models/branding-text-api-response.ts | 61 - .../__legacy__/core/src/models/branding.ts | 56 - packages/__legacy__/core/src/models/common.ts | 28 - .../core/src/models/element-styles.ts | 71 - .../core/src/models/get-branding-props.ts | 35 - .../core/src/models/get-localization-props.ts | 44 - .../core/src/models/me-api-response.ts | 63 - .../core/src/models/public-models.ts | 25 - .../__legacy__/core/src/models/screen-type.ts | 28 - packages/__legacy__/core/tsconfig.eslint.json | 11 - packages/__legacy__/core/tsconfig.json | 35 - packages/__legacy__/core/tsconfig.lib.json | 25 - packages/__legacy__/react/.editorconfig | 1 - packages/__legacy__/react/.eslintignore | 2 - packages/__legacy__/react/.eslintrc.cjs | 48 - packages/__legacy__/react/.gitignore | 134 -- packages/__legacy__/react/.prettierignore | 2 - packages/__legacy__/react/CHANGELOG.md | 95 - packages/__legacy__/react/LICENSE | 201 -- packages/__legacy__/react/README.md | 27 - packages/__legacy__/react/declarations.d.ts | 22 - packages/__legacy__/react/package.json | 81 - packages/__legacy__/react/prettier.config.cjs | 19 - packages/__legacy__/react/rollup.config.cjs | 73 - .../react/src/assets/building-icon.svg | 25 - .../react/src/assets/email-solid.svg | 21 - .../__legacy__/react/src/assets/sms-icon.svg | 33 - .../src/assets/social-logins/facebook.svg | 24 - .../react/src/assets/social-logins/github.svg | 32 - .../react/src/assets/social-logins/google.svg | 28 - .../src/assets/social-logins/microsoft.svg | 27 - packages/__legacy__/react/src/assets/totp.svg | 21 - .../react/src/components/SignIn/SignIn.tsx | 408 ---- .../components/SignIn/fragments/BasicAuth.tsx | 146 -- .../components/SignIn/fragments/EmailOtp.tsx | 138 -- .../SignIn/fragments/IdentifierFirst.tsx | 132 -- .../SignIn/fragments/LoginOptionsBox.tsx | 67 - .../components/SignIn/fragments/SmsOtp.tsx | 85 - .../src/components/SignIn/fragments/Totp.tsx | 120 -- .../SignIn/fragments/basic-auth.scss | 56 - .../SignIn/fragments/email-otp.scss | 48 - .../src/components/SignIn/fragments/totp.scss | 42 - .../react/src/components/SignIn/sign-in.scss | 77 - .../components/SignInButton/SignInButton.tsx | 80 - .../SignInButton/sign-in-button.scss | 62 - .../SignOutButton/SignOutButton.tsx | 42 - .../src/components/SignedIn/SignedIn.tsx | 38 - .../src/components/SignedOut/SignedOut.tsx | 38 - .../react/src/components/public-components.ts | 23 - .../react/src/contexts/asgardeo-context.ts | 24 - .../contexts/branding-preference-context.ts | 24 - .../react/src/contexts/i18n-context.ts | 24 - .../react/src/hooks/use-authentication.ts | 58 - .../__legacy__/react/src/hooks/use-config.ts | 34 - packages/__legacy__/react/src/hooks/use-on.ts | 44 - .../react/src/hooks/use-translations.ts | 79 - packages/__legacy__/react/src/index.ts | 23 - .../src/models/asgardeo-provider-props.ts | 27 - .../react/src/models/auth-context.ts | 45 - .../react/src/models/basic-auth-props.ts | 32 - .../branding-preference-provider-props.ts | 25 - .../react/src/models/email-otp-props.ts | 29 - packages/__legacy__/react/src/models/i18n.ts | 40 - .../react/src/models/jwt-verify-options.ts | 27 - .../src/models/login-options-box-props.ts | 26 - .../react/src/models/public-models.ts | 20 - .../__legacy__/react/src/models/sign-in.ts | 44 - .../react/src/models/signed-props.ts | 25 - .../__legacy__/react/src/models/totp-props.ts | 29 - .../react/src/models/use-authentication.ts | 32 - .../__legacy__/react/src/models/use-config.ts | 25 - .../__legacy__/react/src/models/use-on.ts | 33 - .../react/src/models/use-translations.ts | 24 - .../SignIn/SignIn.tsx | 224 -- .../SignIn/sign-in.scss | 28 - .../SignInAlert/SignInAlert.tsx | 68 - .../SignInAlert/sign-in-alert.scss | 21 - .../SignInButton/SignInButton.tsx | 48 - .../SignInButton/sign-in-button.scss | 42 - .../SignInDivider/SignInDivider.tsx | 44 - .../SignInDivider/sign-in-divider.scss | 21 - .../SignInFooter/SignInFooter.tsx | 53 - .../SignInFooter/sign-in-footer.scss | 32 - .../SignInImage/SignInImage.tsx | 41 - .../SignInImage/sign-in-image.scss | 23 - .../SignInLink/SignInLink.tsx | 43 - .../SignInPaper/SignInPaper.tsx | 46 - .../SignInPaper/sign-in-paper.scss | 24 - .../SignInPinInput/SignInPinInput.tsx | 139 -- .../SignInPinInput/sign-in-pin-input.scss | 37 - .../SignInTextField/SignInTextField.tsx | 44 - .../SignInTextField/sign-in-text-field.scss | 25 - .../SignInTypography/SignInTypography.tsx | 63 - .../SignInTypography/sign-in-typography.scss | 21 - .../oxygen-ui-react-auth-components/index.ts | 20 - .../models/component.ts | 29 - .../react/src/providers/AsgardeoProvider.tsx | 187 -- .../providers/BrandingPreferenceProvider.tsx | 62 - .../react/src/providers/I18nProvider.tsx | 79 - .../react/src/theme/generate-theme-sign-in.ts | 159 -- .../react/src/theme/generate-theme.ts | 162 -- .../react/src/utils/crypto-utils.ts | 109 - .../react/src/utils/session-store.ts | 39 - .../__legacy__/react/stylelint.config.cjs | 22 - .../__legacy__/react/tsconfig.eslint.json | 14 - packages/__legacy__/react/tsconfig.json | 35 - packages/__legacy__/react/tsconfig.lib.json | 26 - packages/nextjs/package.json | 6 +- packages/react-router/package.json | 6 +- packages/react/package.json | 14 +- packages/tanstack-router/package.json | 6 +- pnpm-lock.yaml | 1803 ++--------------- pnpm-workspace.yaml | 6 +- samples/__legacy__/nuxt-vite/.gitignore | 24 - samples/__legacy__/nuxt-vite/CHANGELOG.md | 9 - samples/__legacy__/nuxt-vite/README.md | 75 - samples/__legacy__/nuxt-vite/app.vue | 8 - .../__legacy__/nuxt-vite/assets/asgardeo.svg | 14 - samples/__legacy__/nuxt-vite/nuxt.config.ts | 6 - samples/__legacy__/nuxt-vite/package.json | 18 - samples/__legacy__/nuxt-vite/pages/index.vue | 183 -- samples/__legacy__/nuxt-vite/pages/login.vue | 184 -- .../__legacy__/nuxt-vite/public/favicon.ico | Bin 4286 -> 0 bytes .../nuxt-vite/public/images/logo.svg | 0 .../__legacy__/nuxt-vite/public/robots.txt | 2 - .../nuxt-vite/server/api/auth/[...].ts | 10 - .../__legacy__/nuxt-vite/server/tsconfig.json | 3 - samples/__legacy__/nuxt-vite/tsconfig.json | 4 - samples/__legacy__/react-vite/.eslintrc.cjs | 18 - samples/__legacy__/react-vite/.gitignore | 26 - samples/__legacy__/react-vite/CHANGELOG.md | 11 - samples/__legacy__/react-vite/README.md | 1 - samples/__legacy__/react-vite/index.html | 13 - samples/__legacy__/react-vite/package.json | 32 - samples/__legacy__/react-vite/public/vite.svg | 1 - samples/__legacy__/react-vite/src/App.css | 7 - samples/__legacy__/react-vite/src/App.tsx | 23 - samples/__legacy__/react-vite/src/main.tsx | 25 - .../__legacy__/react-vite/src/vite-env.d.ts | 1 - samples/__legacy__/react-vite/tsconfig.json | 25 - .../__legacy__/react-vite/tsconfig.node.json | 11 - samples/__legacy__/react-vite/vite.config.ts | 9 - samples/__legacy__/vue-vite/.editorconfig | 9 - samples/__legacy__/vue-vite/.eslintrc.cjs | 36 - samples/__legacy__/vue-vite/.gitattributes | 1 - samples/__legacy__/vue-vite/.gitignore | 30 - samples/__legacy__/vue-vite/.prettierrc.json | 7 - .../vue-vite/.vscode/extensions.json | 9 - samples/__legacy__/vue-vite/CHANGELOG.md | 8 - samples/__legacy__/vue-vite/README.md | 105 - samples/__legacy__/vue-vite/env.d.ts | 32 - samples/__legacy__/vue-vite/index.html | 31 - samples/__legacy__/vue-vite/package.json | 46 - .../__legacy__/vue-vite/public/favicon.ico | Bin 15406 -> 0 bytes samples/__legacy__/vue-vite/src/App.vue | 25 - .../vue-vite/src/assets/asgardeo.svg | 32 - .../__legacy__/vue-vite/src/assets/logo.svg | 1 - .../__legacy__/vue-vite/src/assets/main.css | 48 - .../vue-vite/src/components/AuthLayout.vue | 345 ---- .../vue-vite/src/components/SignInBtn.vue | 11 - .../__legacy__/vue-vite/src/images/footer.png | Bin 5118 -> 0 bytes samples/__legacy__/vue-vite/src/main.ts | 39 - .../__legacy__/vue-vite/src/router/index.ts | 86 - .../__legacy__/vue-vite/src/shims-vue.d.ts | 24 - .../vue-vite/src/views/HomeView.vue | 40 - .../vue-vite/src/views/LandingView.vue | 83 - samples/__legacy__/vue-vite/tsconfig.app.json | 11 - .../__legacy__/vue-vite/tsconfig.eslint.json | 8 - samples/__legacy__/vue-vite/tsconfig.json | 14 - .../__legacy__/vue-vite/tsconfig.node.json | 17 - .../__legacy__/vue-vite/tsconfig.vitest.json | 10 - samples/__legacy__/vue-vite/vite.config.ts | 32 - samples/__legacy__/vue-vite/vitest.config.ts | 32 - samples/react-tanstack-router/package.json | 8 +- samples/teamspace-nextjs/package.json | 8 +- samples/teamspace-react/package.json | 8 +- 227 files changed, 149 insertions(+), 13253 deletions(-) delete mode 100644 packages/__legacy__/core/.editorconfig delete mode 100644 packages/__legacy__/core/.eslintignore delete mode 100644 packages/__legacy__/core/.eslintrc.cjs delete mode 100644 packages/__legacy__/core/.gitignore delete mode 100644 packages/__legacy__/core/.prettierignore delete mode 100644 packages/__legacy__/core/CHANGELOG.md delete mode 100644 packages/__legacy__/core/LICENSE delete mode 100644 packages/__legacy__/core/README.md delete mode 100644 packages/__legacy__/core/package.json delete mode 100644 packages/__legacy__/core/prettier.config.cjs delete mode 100644 packages/__legacy__/core/rollup.config.cjs delete mode 100644 packages/__legacy__/core/src/api/authenticate.ts delete mode 100644 packages/__legacy__/core/src/api/authorize.ts delete mode 100644 packages/__legacy__/core/src/api/get-branding-preference-text.ts delete mode 100644 packages/__legacy__/core/src/api/get-branding-preference.ts delete mode 100644 packages/__legacy__/core/src/api/get-profile-information.ts delete mode 100644 packages/__legacy__/core/src/api/public-api.ts delete mode 100644 packages/__legacy__/core/src/api/sign-out.ts delete mode 100644 packages/__legacy__/core/src/auth-client.ts delete mode 100644 packages/__legacy__/core/src/branding/default-branding/dark-theme.ts delete mode 100644 packages/__legacy__/core/src/branding/default-branding/default-branding.ts delete mode 100644 packages/__legacy__/core/src/branding/default-branding/light-theme.ts delete mode 100644 packages/__legacy__/core/src/branding/get-branding-css.ts delete mode 100644 packages/__legacy__/core/src/branding/get-branding.ts delete mode 100644 packages/__legacy__/core/src/branding/public.ts delete mode 100644 packages/__legacy__/core/src/exception.ts delete mode 100644 packages/__legacy__/core/src/i18n/get-localization.ts delete mode 100644 packages/__legacy__/core/src/i18n/public.ts delete mode 100644 packages/__legacy__/core/src/i18n/screens/common/en-US.ts delete mode 100644 packages/__legacy__/core/src/i18n/screens/common/fr-FR.ts delete mode 100644 packages/__legacy__/core/src/i18n/screens/common/model.ts delete mode 100644 packages/__legacy__/core/src/i18n/screens/emailOtp/en-US.ts delete mode 100644 packages/__legacy__/core/src/i18n/screens/emailOtp/model.ts delete mode 100644 packages/__legacy__/core/src/i18n/screens/identifierFirst/en-US.ts delete mode 100644 packages/__legacy__/core/src/i18n/screens/identifierFirst/fr-FR.ts delete mode 100644 packages/__legacy__/core/src/i18n/screens/identifierFirst/model.ts delete mode 100644 packages/__legacy__/core/src/i18n/screens/keys.ts delete mode 100644 packages/__legacy__/core/src/i18n/screens/login/en-US.ts delete mode 100644 packages/__legacy__/core/src/i18n/screens/login/fr-FR.ts delete mode 100644 packages/__legacy__/core/src/i18n/screens/login/model.ts delete mode 100644 packages/__legacy__/core/src/i18n/screens/model.ts delete mode 100644 packages/__legacy__/core/src/i18n/screens/smsOtp/en-US.ts delete mode 100644 packages/__legacy__/core/src/i18n/screens/smsOtp/model.ts delete mode 100644 packages/__legacy__/core/src/i18n/screens/totp/en-US.ts delete mode 100644 packages/__legacy__/core/src/i18n/screens/totp/fr-FR.ts delete mode 100644 packages/__legacy__/core/src/i18n/screens/totp/model.ts delete mode 100644 packages/__legacy__/core/src/index.ts delete mode 100644 packages/__legacy__/core/src/models/auth-api-request.ts delete mode 100644 packages/__legacy__/core/src/models/auth-api-response.ts delete mode 100644 packages/__legacy__/core/src/models/auth-config.ts delete mode 100644 packages/__legacy__/core/src/models/branding-api-response.ts delete mode 100644 packages/__legacy__/core/src/models/branding-text-api-response.ts delete mode 100644 packages/__legacy__/core/src/models/branding.ts delete mode 100644 packages/__legacy__/core/src/models/common.ts delete mode 100644 packages/__legacy__/core/src/models/element-styles.ts delete mode 100644 packages/__legacy__/core/src/models/get-branding-props.ts delete mode 100644 packages/__legacy__/core/src/models/get-localization-props.ts delete mode 100644 packages/__legacy__/core/src/models/me-api-response.ts delete mode 100644 packages/__legacy__/core/src/models/public-models.ts delete mode 100644 packages/__legacy__/core/src/models/screen-type.ts delete mode 100644 packages/__legacy__/core/tsconfig.eslint.json delete mode 100644 packages/__legacy__/core/tsconfig.json delete mode 100644 packages/__legacy__/core/tsconfig.lib.json delete mode 100644 packages/__legacy__/react/.editorconfig delete mode 100644 packages/__legacy__/react/.eslintignore delete mode 100644 packages/__legacy__/react/.eslintrc.cjs delete mode 100644 packages/__legacy__/react/.gitignore delete mode 100644 packages/__legacy__/react/.prettierignore delete mode 100644 packages/__legacy__/react/CHANGELOG.md delete mode 100644 packages/__legacy__/react/LICENSE delete mode 100644 packages/__legacy__/react/README.md delete mode 100644 packages/__legacy__/react/declarations.d.ts delete mode 100644 packages/__legacy__/react/package.json delete mode 100644 packages/__legacy__/react/prettier.config.cjs delete mode 100644 packages/__legacy__/react/rollup.config.cjs delete mode 100644 packages/__legacy__/react/src/assets/building-icon.svg delete mode 100644 packages/__legacy__/react/src/assets/email-solid.svg delete mode 100644 packages/__legacy__/react/src/assets/sms-icon.svg delete mode 100644 packages/__legacy__/react/src/assets/social-logins/facebook.svg delete mode 100644 packages/__legacy__/react/src/assets/social-logins/github.svg delete mode 100644 packages/__legacy__/react/src/assets/social-logins/google.svg delete mode 100644 packages/__legacy__/react/src/assets/social-logins/microsoft.svg delete mode 100644 packages/__legacy__/react/src/assets/totp.svg delete mode 100644 packages/__legacy__/react/src/components/SignIn/SignIn.tsx delete mode 100644 packages/__legacy__/react/src/components/SignIn/fragments/BasicAuth.tsx delete mode 100644 packages/__legacy__/react/src/components/SignIn/fragments/EmailOtp.tsx delete mode 100644 packages/__legacy__/react/src/components/SignIn/fragments/IdentifierFirst.tsx delete mode 100644 packages/__legacy__/react/src/components/SignIn/fragments/LoginOptionsBox.tsx delete mode 100644 packages/__legacy__/react/src/components/SignIn/fragments/SmsOtp.tsx delete mode 100644 packages/__legacy__/react/src/components/SignIn/fragments/Totp.tsx delete mode 100644 packages/__legacy__/react/src/components/SignIn/fragments/basic-auth.scss delete mode 100644 packages/__legacy__/react/src/components/SignIn/fragments/email-otp.scss delete mode 100644 packages/__legacy__/react/src/components/SignIn/fragments/totp.scss delete mode 100644 packages/__legacy__/react/src/components/SignIn/sign-in.scss delete mode 100644 packages/__legacy__/react/src/components/SignInButton/SignInButton.tsx delete mode 100644 packages/__legacy__/react/src/components/SignInButton/sign-in-button.scss delete mode 100644 packages/__legacy__/react/src/components/SignOutButton/SignOutButton.tsx delete mode 100644 packages/__legacy__/react/src/components/SignedIn/SignedIn.tsx delete mode 100644 packages/__legacy__/react/src/components/SignedOut/SignedOut.tsx delete mode 100644 packages/__legacy__/react/src/components/public-components.ts delete mode 100644 packages/__legacy__/react/src/contexts/asgardeo-context.ts delete mode 100644 packages/__legacy__/react/src/contexts/branding-preference-context.ts delete mode 100644 packages/__legacy__/react/src/contexts/i18n-context.ts delete mode 100644 packages/__legacy__/react/src/hooks/use-authentication.ts delete mode 100644 packages/__legacy__/react/src/hooks/use-config.ts delete mode 100644 packages/__legacy__/react/src/hooks/use-on.ts delete mode 100644 packages/__legacy__/react/src/hooks/use-translations.ts delete mode 100644 packages/__legacy__/react/src/index.ts delete mode 100644 packages/__legacy__/react/src/models/asgardeo-provider-props.ts delete mode 100644 packages/__legacy__/react/src/models/auth-context.ts delete mode 100644 packages/__legacy__/react/src/models/basic-auth-props.ts delete mode 100644 packages/__legacy__/react/src/models/branding-preference-provider-props.ts delete mode 100644 packages/__legacy__/react/src/models/email-otp-props.ts delete mode 100644 packages/__legacy__/react/src/models/i18n.ts delete mode 100644 packages/__legacy__/react/src/models/jwt-verify-options.ts delete mode 100644 packages/__legacy__/react/src/models/login-options-box-props.ts delete mode 100644 packages/__legacy__/react/src/models/public-models.ts delete mode 100644 packages/__legacy__/react/src/models/sign-in.ts delete mode 100644 packages/__legacy__/react/src/models/signed-props.ts delete mode 100644 packages/__legacy__/react/src/models/totp-props.ts delete mode 100644 packages/__legacy__/react/src/models/use-authentication.ts delete mode 100644 packages/__legacy__/react/src/models/use-config.ts delete mode 100644 packages/__legacy__/react/src/models/use-on.ts delete mode 100644 packages/__legacy__/react/src/models/use-translations.ts delete mode 100644 packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignIn/SignIn.tsx delete mode 100644 packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignIn/sign-in.scss delete mode 100644 packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInAlert/SignInAlert.tsx delete mode 100644 packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInAlert/sign-in-alert.scss delete mode 100644 packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInButton/SignInButton.tsx delete mode 100644 packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInButton/sign-in-button.scss delete mode 100644 packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInDivider/SignInDivider.tsx delete mode 100644 packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInDivider/sign-in-divider.scss delete mode 100644 packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInFooter/SignInFooter.tsx delete mode 100644 packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInFooter/sign-in-footer.scss delete mode 100644 packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInImage/SignInImage.tsx delete mode 100644 packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInImage/sign-in-image.scss delete mode 100644 packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInLink/SignInLink.tsx delete mode 100644 packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInPaper/SignInPaper.tsx delete mode 100644 packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInPaper/sign-in-paper.scss delete mode 100644 packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInPinInput/SignInPinInput.tsx delete mode 100644 packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInPinInput/sign-in-pin-input.scss delete mode 100644 packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInTextField/SignInTextField.tsx delete mode 100644 packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInTextField/sign-in-text-field.scss delete mode 100644 packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInTypography/SignInTypography.tsx delete mode 100644 packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInTypography/sign-in-typography.scss delete mode 100644 packages/__legacy__/react/src/oxygen-ui-react-auth-components/index.ts delete mode 100644 packages/__legacy__/react/src/oxygen-ui-react-auth-components/models/component.ts delete mode 100644 packages/__legacy__/react/src/providers/AsgardeoProvider.tsx delete mode 100644 packages/__legacy__/react/src/providers/BrandingPreferenceProvider.tsx delete mode 100644 packages/__legacy__/react/src/providers/I18nProvider.tsx delete mode 100644 packages/__legacy__/react/src/theme/generate-theme-sign-in.ts delete mode 100644 packages/__legacy__/react/src/theme/generate-theme.ts delete mode 100644 packages/__legacy__/react/src/utils/crypto-utils.ts delete mode 100644 packages/__legacy__/react/src/utils/session-store.ts delete mode 100644 packages/__legacy__/react/stylelint.config.cjs delete mode 100644 packages/__legacy__/react/tsconfig.eslint.json delete mode 100644 packages/__legacy__/react/tsconfig.json delete mode 100644 packages/__legacy__/react/tsconfig.lib.json delete mode 100644 samples/__legacy__/nuxt-vite/.gitignore delete mode 100644 samples/__legacy__/nuxt-vite/CHANGELOG.md delete mode 100644 samples/__legacy__/nuxt-vite/README.md delete mode 100644 samples/__legacy__/nuxt-vite/app.vue delete mode 100644 samples/__legacy__/nuxt-vite/assets/asgardeo.svg delete mode 100644 samples/__legacy__/nuxt-vite/nuxt.config.ts delete mode 100644 samples/__legacy__/nuxt-vite/package.json delete mode 100644 samples/__legacy__/nuxt-vite/pages/index.vue delete mode 100644 samples/__legacy__/nuxt-vite/pages/login.vue delete mode 100644 samples/__legacy__/nuxt-vite/public/favicon.ico delete mode 100644 samples/__legacy__/nuxt-vite/public/images/logo.svg delete mode 100644 samples/__legacy__/nuxt-vite/public/robots.txt delete mode 100644 samples/__legacy__/nuxt-vite/server/api/auth/[...].ts delete mode 100644 samples/__legacy__/nuxt-vite/server/tsconfig.json delete mode 100644 samples/__legacy__/nuxt-vite/tsconfig.json delete mode 100644 samples/__legacy__/react-vite/.eslintrc.cjs delete mode 100644 samples/__legacy__/react-vite/.gitignore delete mode 100644 samples/__legacy__/react-vite/CHANGELOG.md delete mode 100644 samples/__legacy__/react-vite/README.md delete mode 100644 samples/__legacy__/react-vite/index.html delete mode 100644 samples/__legacy__/react-vite/package.json delete mode 100644 samples/__legacy__/react-vite/public/vite.svg delete mode 100644 samples/__legacy__/react-vite/src/App.css delete mode 100644 samples/__legacy__/react-vite/src/App.tsx delete mode 100644 samples/__legacy__/react-vite/src/main.tsx delete mode 100644 samples/__legacy__/react-vite/src/vite-env.d.ts delete mode 100644 samples/__legacy__/react-vite/tsconfig.json delete mode 100644 samples/__legacy__/react-vite/tsconfig.node.json delete mode 100644 samples/__legacy__/react-vite/vite.config.ts delete mode 100644 samples/__legacy__/vue-vite/.editorconfig delete mode 100644 samples/__legacy__/vue-vite/.eslintrc.cjs delete mode 100644 samples/__legacy__/vue-vite/.gitattributes delete mode 100644 samples/__legacy__/vue-vite/.gitignore delete mode 100644 samples/__legacy__/vue-vite/.prettierrc.json delete mode 100644 samples/__legacy__/vue-vite/.vscode/extensions.json delete mode 100644 samples/__legacy__/vue-vite/CHANGELOG.md delete mode 100644 samples/__legacy__/vue-vite/README.md delete mode 100644 samples/__legacy__/vue-vite/env.d.ts delete mode 100644 samples/__legacy__/vue-vite/index.html delete mode 100644 samples/__legacy__/vue-vite/package.json delete mode 100644 samples/__legacy__/vue-vite/public/favicon.ico delete mode 100644 samples/__legacy__/vue-vite/src/App.vue delete mode 100644 samples/__legacy__/vue-vite/src/assets/asgardeo.svg delete mode 100644 samples/__legacy__/vue-vite/src/assets/logo.svg delete mode 100644 samples/__legacy__/vue-vite/src/assets/main.css delete mode 100644 samples/__legacy__/vue-vite/src/components/AuthLayout.vue delete mode 100644 samples/__legacy__/vue-vite/src/components/SignInBtn.vue delete mode 100644 samples/__legacy__/vue-vite/src/images/footer.png delete mode 100644 samples/__legacy__/vue-vite/src/main.ts delete mode 100644 samples/__legacy__/vue-vite/src/router/index.ts delete mode 100644 samples/__legacy__/vue-vite/src/shims-vue.d.ts delete mode 100644 samples/__legacy__/vue-vite/src/views/HomeView.vue delete mode 100644 samples/__legacy__/vue-vite/src/views/LandingView.vue delete mode 100644 samples/__legacy__/vue-vite/tsconfig.app.json delete mode 100644 samples/__legacy__/vue-vite/tsconfig.eslint.json delete mode 100644 samples/__legacy__/vue-vite/tsconfig.json delete mode 100644 samples/__legacy__/vue-vite/tsconfig.node.json delete mode 100644 samples/__legacy__/vue-vite/tsconfig.vitest.json delete mode 100644 samples/__legacy__/vue-vite/vite.config.ts delete mode 100644 samples/__legacy__/vue-vite/vitest.config.ts diff --git a/packages/__legacy__/core/.editorconfig b/packages/__legacy__/core/.editorconfig deleted file mode 100644 index 54a16111..00000000 --- a/packages/__legacy__/core/.editorconfig +++ /dev/null @@ -1 +0,0 @@ -../../.editorconfig diff --git a/packages/__legacy__/core/.eslintignore b/packages/__legacy__/core/.eslintignore deleted file mode 100644 index 99b0b518..00000000 --- a/packages/__legacy__/core/.eslintignore +++ /dev/null @@ -1,4 +0,0 @@ -/dist -/build -/node_modules -/coverage diff --git a/packages/__legacy__/core/.eslintrc.cjs b/packages/__legacy__/core/.eslintrc.cjs deleted file mode 100644 index ae06f622..00000000 --- a/packages/__legacy__/core/.eslintrc.cjs +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -const path = require('path'); - -module.exports = { - extends: ['plugin:@wso2/typescript', 'plugin:@wso2/strict', 'plugin:@wso2/internal', 'plugin:@wso2/prettier'], - parserOptions: { - project: [path.resolve(__dirname, 'tsconfig.eslint.json')], - }, - plugins: ['@wso2'], - rules: { - // In `getBrandingCSS` we are using non dot notation to access the object properties. - // TODO: Refactor the code to use dot notation. - '@typescript-eslint/dot-notation': 'off', - '@typescript-eslint/no-empty-function': [ - 'error', - { - allow: ['constructors'], - }, - ], - // We are throwing custom exceptions in the codebase. - // Hence, turning this off to avoid linting errors. (https://eslint.org/docs/latest/rules/no-throw-literal#known-limitations) - '@typescript-eslint/no-throw-literal': 'off', - // We need to use private constructors in some classes. - // Hence, turning this off to avoid linting errors. - // TODO: Ideally suppression should be done inline for these cases. But it seems to not work ATM. - '@typescript-eslint/no-useless-constructor': 'off', - }, -}; diff --git a/packages/__legacy__/core/.gitignore b/packages/__legacy__/core/.gitignore deleted file mode 100644 index f20a8a8c..00000000 --- a/packages/__legacy__/core/.gitignore +++ /dev/null @@ -1,134 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* -.pnpm-debug.log* - -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# Snowpack dependency directory (https://snowpack.dev/) -web_modules/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional stylelint cache -.stylelintcache - -# Microbundle cache -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variable files -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - -# parcel-bundler cache (https://parceljs.org/) -.cache -.parcel-cache - -# Next.js build output -.next -out - -# Nuxt.js build / generate output -.nuxt -dist - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and not Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# vuepress v2.x temp and cache directory -.temp -.cache - -# Docusaurus cache and generated files -.docusaurus - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# TernJS port file -.tern-port - -# Stores VSCode versions used for testing VSCode extensions -.vscode-test - -# yarn v2 -.yarn/cache -.yarn/unplugged -.yarn/build-state.yml -.yarn/install-state.gz -.pnp.* - -# misc -.DS_Store -*.pem diff --git a/packages/__legacy__/core/.prettierignore b/packages/__legacy__/core/.prettierignore deleted file mode 100644 index c925c21d..00000000 --- a/packages/__legacy__/core/.prettierignore +++ /dev/null @@ -1,2 +0,0 @@ -/dist -/node_modules diff --git a/packages/__legacy__/core/CHANGELOG.md b/packages/__legacy__/core/CHANGELOG.md deleted file mode 100644 index 44576758..00000000 --- a/packages/__legacy__/core/CHANGELOG.md +++ /dev/null @@ -1,49 +0,0 @@ -# @asgardeo/js - -## 0.1.3 - -### Patch Changes - -- [#47](https://github.com/asgardeo/javascript/pull/47) - [`3d3af92`](https://github.com/asgardeo/javascript/commit/3d3af92338dec2d4b8aff09f9ba9da7d68781108) Thanks - [@dasuni-30](https://github.com/dasuni-30)! - Add support to esm in core package - -## 0.1.2 - -### Patch Changes - -- [#34](https://github.com/asgardeo/javascript/pull/34) - [`4344408`](https://github.com/asgardeo/javascript/commit/43444087466db1c12fdb97e283192d5e2ccc00f1) Thanks - [@DonOmalVindula](https://github.com/DonOmalVindula)! - Improvements to Identifier first authenticator in the React - SDK - -## 0.1.1 - -### Patch Changes - -- [#20](https://github.com/asgardeo/javascript/pull/20) - [`8eef064`](https://github.com/asgardeo/javascript/commit/8eef0641c01de02aa7c4a6d75f059136fcfdb489) Thanks - [@movinsilva](https://github.com/movinsilva)! - Add readme files and update build scripts - -## 0.1.0 - -### Minor Changes - -- [#17](https://github.com/asgardeo/javascript/pull/17) - [`0be3e48`](https://github.com/asgardeo/javascript/commit/0be3e48a2896e10eea2f4c74ccc24eb1ddab09bd) Thanks - [@movinsilva](https://github.com/movinsilva)! - Initial release of @asgardeo/js and @asgardeo/react - - - Drop in components - - - SignIn - - SignOut - - SignedIn - - SignedOut - - - Custom hooks - - - useAuthentication - - useOn - - - api function calls in js - - branding and i18n support diff --git a/packages/__legacy__/core/LICENSE b/packages/__legacy__/core/LICENSE deleted file mode 100644 index 261eeb9e..00000000 --- a/packages/__legacy__/core/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/packages/__legacy__/core/README.md b/packages/__legacy__/core/README.md deleted file mode 100644 index 230d09b8..00000000 --- a/packages/__legacy__/core/README.md +++ /dev/null @@ -1,39 +0,0 @@ -

-

@asgardeo/js

-

-

Handles framework agnostic content

-
- npm (scoped) - npm - License -
- -## Installation - -```bash -# With npm -npm install @asgardeo/js - -# With pnpm -pnpm add @asgardeo/js - -# With yarn -yarn add @asgardeo/js -``` - -## Usage - -To use functions from `@asgardeo/js`, simply import the function and use it in your code: - -```jsx -import { authenticate } from '@asgardeo/js'; - -function implementAuthn() { - const response = await authenticate(); -} -``` - -## License - -Licenses this source under the Apache License, Version 2.0 [LICENSE](./LICENSE), You may not use this file except in -compliance with the License. diff --git a/packages/__legacy__/core/package.json b/packages/__legacy__/core/package.json deleted file mode 100644 index ce977cc5..00000000 --- a/packages/__legacy__/core/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "private": true, - "name": "@asgardeo/js-legacy", - "version": "0.1.3", - "description": "Framework agnostic JS for Asgardeo or Identity Server", - "main": "dist/esm/index.js", - "module": "dist/esm/index.js", - "umd": "dist/umd/index.js", - "types": "dist/index.d.ts", - "author": "WSO2", - "license": "Apache-2.0", - "files": [ - "dist", - "LICENSE", - "README.md" - ], - "homepage": "https://github.com/asgardeo/javascript/tree/main/packages/core#readme", - "bugs": { - "url": "https://github.com/asgardeo/javascript/issues" - }, - "repository": { - "type": "git", - "url": "https://github.com/asgardeo/javascript", - "directory": "packages/core" - }, - "keywords": [ - "asgardeo", - "identity", - "ui", - "core" - ], - "scripts": { - "build": "rollup -c", - "lint": "eslint .", - "lint:fix": "eslint . --fix" - }, - "devDependencies": { - "@rollup/plugin-commonjs": "25.0.7", - "@rollup/plugin-dynamic-import-vars": "2.1.2", - "@rollup/plugin-node-resolve": "15.2.3", - "@rollup/plugin-typescript": "11.1.6", - "@types/lodash.isempty": "4.4.9", - "@types/lodash.merge": "4.6.9", - "@types/node": "20.12.7", - "@wso2/eslint-plugin": "catalog:", - "@wso2/prettier-config": "catalog:", - "eslint": "8.57.0", - "prettier": "3.2.5", - "rollup": "4.17.2", - "rollup-plugin-dts": "6.1.0", - "tslib": "2.6.2", - "typescript": "5.1.6" - }, - "publishConfig": { - "access": "restricted" - }, - "dependencies": { - "@asgardeo/auth-js": "5.0.1", - "csstype": "3.1.3", - "lodash.isempty": "4.4.0", - "lodash.merge": "4.6.2" - } -} diff --git a/packages/__legacy__/core/prettier.config.cjs b/packages/__legacy__/core/prettier.config.cjs deleted file mode 100644 index c07f730d..00000000 --- a/packages/__legacy__/core/prettier.config.cjs +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -module.exports = require('@wso2/prettier-config'); diff --git a/packages/__legacy__/core/rollup.config.cjs b/packages/__legacy__/core/rollup.config.cjs deleted file mode 100644 index 24553b89..00000000 --- a/packages/__legacy__/core/rollup.config.cjs +++ /dev/null @@ -1,60 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -const commonjs = require('@rollup/plugin-commonjs'); -const dynamicImportVars = require('@rollup/plugin-dynamic-import-vars'); -const nodeResolve = require('@rollup/plugin-node-resolve'); -const typescript = require('@rollup/plugin-typescript'); -const dts = require('rollup-plugin-dts'); - -const pkg = require('./package.json'); - -module.exports = [ - { - cache: false, - input: 'src/index.ts', - output: [ - { - file: pkg.main, - format: 'cjs', - inlineDynamicImports: true, - sourcemap: true, - }, - { - file: pkg.umd, - format: 'umd', - inlineDynamicImports: true, - name: 'core', - sourcemap: true, - }, - { - file: pkg.module, - format: 'esm', - inlineDynamicImports: true, - sourcemap: true, - }, - ], - plugins: [nodeResolve(), commonjs(), dynamicImportVars(), typescript({tsconfig: './tsconfig.lib.json'})], - }, - { - cache: false, - input: 'dist/esm/types/index.d.ts', - output: [{file: 'dist/index.d.ts', format: 'esm'}], - plugins: [dts.default()], - }, -]; diff --git a/packages/__legacy__/core/src/api/authenticate.ts b/packages/__legacy__/core/src/api/authenticate.ts deleted file mode 100644 index 1fc25e6b..00000000 --- a/packages/__legacy__/core/src/api/authenticate.ts +++ /dev/null @@ -1,70 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {AuthClient} from '../auth-client'; -import AsgardeoUIException from '../exception'; -import {AuthenticateProps} from '../models/auth-api-request'; -import {AuthApiResponse} from '../models/auth-api-response'; - -/** - * Send an authentication request to the authentication API. - * - * @param {AuthenticateProps} props - The authentication request body. - * @returns {Promise} A promise that resolves with the authentication API response. - */ -const authenticate = async (props: AuthenticateProps): Promise => { - let authnRequest: Request; - let response: Response; - - try { - const formBody: string = JSON.stringify(props); - - const headers: Headers = new Headers(); - headers.append('Content-Type', 'application/json'); - - const requestOptions: RequestInit = { - body: formBody, - headers, - method: 'POST', - }; - - /* Getting baseURL from authClient's data layer */ - const {baseUrl} = await AuthClient.getInstance().getStorageManager().getConfigData(); - - authnRequest = new Request(`${baseUrl}/oauth2/authn`, requestOptions); - } catch (error) { - throw new AsgardeoUIException('JS_UI_CORE-AUTHN-A-NF', 'Authentication request building failed', error.stack); - } - - try { - response = await fetch(authnRequest); - } catch (error) { - throw new AsgardeoUIException('JS_UI_CORE-AUTHN-A-NE', `Authentication API call Failed: ${error}`, error.stack); - } - - if (response.ok) { - return (await response.json()) as AuthApiResponse; - } - - throw new AsgardeoUIException( - 'JS_UI_CORE-AUTHN-A-HE', - 'Failed to receive a successful response from the authentication endpoint', - ); -}; - -export default authenticate; diff --git a/packages/__legacy__/core/src/api/authorize.ts b/packages/__legacy__/core/src/api/authorize.ts deleted file mode 100644 index 777a2113..00000000 --- a/packages/__legacy__/core/src/api/authorize.ts +++ /dev/null @@ -1,79 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {AuthClient} from '../auth-client'; -import AsgardeoUIException from '../exception'; -import {AuthApiResponse} from '../models/auth-api-response'; -import {UIAuthClient} from '../models/auth-config'; - -/** - * This function is used to authorize the user. - * @returns {Promise} A promise that resolves with the authorization response. - */ -const authorize = async (): Promise => { - let response: Response; - let requestOptions: RequestInit; - let authzURL: string; - - try { - const authInstace: UIAuthClient = AuthClient.getInstance(); - // FIXME: We should be able to get the URL itself. - // const params: Map = await authInstace.getAuthorizationURLParams(); - const params: Map = new Map(); - - const formBody: URLSearchParams = new URLSearchParams(); - - Array.from(params.entries()).forEach(([key, value]: [string, string]) => { - formBody.append(key, value); - }); - - /* Save the state temporarily in the data layer, this needs to be passed when token is requested */ - await authInstace.getStorageManager().setTemporaryDataParameter('state', params.get('state')); - - const headers: Headers = new Headers(); - headers.append('Accept', 'application/json'); - headers.append('Content-Type', 'application/x-www-form-urlencoded'); - - requestOptions = { - body: formBody.toString(), - headers, - method: 'POST', - }; - - authzURL = (await authInstace.getOpenIDProviderEndpoints()).authorizationEndpoint; - } catch (error) { - throw new AsgardeoUIException('JS_UI_CORE-AUTHZ-A-NF', 'Authorization request building failed', error.stack); - } - - try { - response = await fetch(authzURL, requestOptions); - } catch (error) { - throw new AsgardeoUIException('JS_UI_CORE-AUTHZ-A-NE', 'Authorization API call failed', error.stack); - } - - if (response.ok) { - return (await response.json()) as AuthApiResponse; - } - - throw new AsgardeoUIException( - 'JS_UI_CORE-AUTHZ-A-HE', - 'Failed to receive a successful response from the authorization server', - ); -}; - -export default authorize; diff --git a/packages/__legacy__/core/src/api/get-branding-preference-text.ts b/packages/__legacy__/core/src/api/get-branding-preference-text.ts deleted file mode 100644 index 87bd3fb2..00000000 --- a/packages/__legacy__/core/src/api/get-branding-preference-text.ts +++ /dev/null @@ -1,74 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {AuthClient} from '../auth-client'; -import AsgardeoUIException from '../exception'; -import {BrandingPreferenceTextAPIResponse, GetBrandingPreferenceTextProps} from '../models/branding-text-api-response'; - -/** - * Fetch the branding preference text from the server. - * - * @param locale - The locale of the branding text. - * @param name - The name of the branding text. - * @param screen - The screen of the branding text. - * @param type - The type of the branding text. - * @returns A Promise that resolves to the response from the server. - * @throws {AsgardeoUIException} If the API call fails or when the response is not successful. - */ -const getBrandingPreferenceText = async ( - props: GetBrandingPreferenceTextProps, -): Promise => { - const {locale, name, screen, type} = props; - - const headers: Headers = new Headers(); - headers.append('Accept', 'application/json'); - headers.append('Content-Type', 'application/json'); - - const requestOptions: RequestInit = { - headers, - method: 'GET', - }; - - const params: URLSearchParams = new URLSearchParams(); - params.append('locale', locale); - params.append('name', name); - params.append('screen', screen); - params.append('type', type); - - const {baseUrl} = await AuthClient.getInstance().getStorageManager().getConfigData(); - const textUrl: string = `${baseUrl}/api/server/v1/branding-preference/text/resolve`; - const urlWithParams: string = `${textUrl}?${params.toString()}`; - let response: Response; - - try { - response = await fetch(new Request(urlWithParams, requestOptions)); - } catch (error) { - throw new AsgardeoUIException('JS_UI_CORE-BT-GBPT-NE', 'Branding Text API call failed', error.stack); - } - - if (response.ok) { - return (await response.json()) as BrandingPreferenceTextAPIResponse; - } - - throw new AsgardeoUIException( - 'JS_UI_CORE-BT-GBPT-HE', - 'Failed to receive a successful response from the branding text endpoint', - ); -}; - -export default getBrandingPreferenceText; diff --git a/packages/__legacy__/core/src/api/get-branding-preference.ts b/packages/__legacy__/core/src/api/get-branding-preference.ts deleted file mode 100644 index 64c63f08..00000000 --- a/packages/__legacy__/core/src/api/get-branding-preference.ts +++ /dev/null @@ -1,54 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {AuthClient} from '../auth-client'; -import AsgardeoUIException from '../exception'; -import {BrandingPreferenceAPIResponse, BrandingPreferenceTypes} from '../models/branding-api-response'; - -/** - * Fetch branding preferences from the server. - * - * @returns {Promise} A promise that resolves with the branding preferences. - * @throws {AsgardeoUIException} If an error occurs while fetching the branding preferences or when the response is unsuccessful. - */ -const getBrandingPreference = async (): Promise => { - const { - baseUrl, - type = BrandingPreferenceTypes.Org, - name = 'WSO2', - } = await AuthClient.getInstance().getStorageManager().getConfigData(); - const brandingUrl: string = `${baseUrl}/api/server/v1/branding-preference?type=${type}&name=${name}`; - let response: Response; - - try { - response = await fetch(brandingUrl); - } catch (error) { - throw new AsgardeoUIException('JS_UI_CORE-BR-GBP-NE', 'Error while fetching branding data.', error.stack); - } - - if (response.ok) { - return (await response.json()) as Promise; - } - - throw new AsgardeoUIException( - 'JS_UI_CORE-BR-GBP-HE', - 'Failed to receive a successful response from the branding API.', - ); -}; - -export default getBrandingPreference; diff --git a/packages/__legacy__/core/src/api/get-profile-information.ts b/packages/__legacy__/core/src/api/get-profile-information.ts deleted file mode 100644 index 7b5faed0..00000000 --- a/packages/__legacy__/core/src/api/get-profile-information.ts +++ /dev/null @@ -1,74 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {AuthClient} from '../auth-client'; -import AsgardeoUIException from '../exception'; -import {MeAPIResponse} from '../models/me-api-response'; - -/** - * Fetch the profile information of the authenticated user. - * - * This function uses the `AuthClient` instance to get the base URL and access token, - * and then makes a GET request to the `/scim2/Me` endpoint to fetch the user's profile information. - * - * @returns {Promise} A promise that resolves to an object containing the user's profile information. - * @throws {AsgardeoUIException} Throws an exception if there's an error getting the base URL and access token, or if the fetch request fails. - */ -const getProfileInformation = async (): Promise => { - let baseUrl: string; - let accessToken: string; - let response: Response; - - try { - baseUrl = (await AuthClient.getInstance().getStorageManager().getConfigData()).baseUrl; - accessToken = await AuthClient.getInstance().getAccessToken(); - } catch (error) { - throw new AsgardeoUIException( - 'JS_UI_CORE-ME-GPI-NF', - 'Failed in getting the base URL and access token.', - error.stack, - ); - } - - if (!accessToken) { - throw new AsgardeoUIException('JS_UI_CORE-ME-GPI-IV', 'Access token is null.'); - } - - const headers: Headers = new Headers(); - headers.append('Authorization', `Bearer ${accessToken}`); - headers.append('Content-Type', 'application/json'); - - const requestOptions: RequestInit = { - headers, - method: 'GET', - }; - - try { - response = await fetch(new Request(`${baseUrl}/scim2/Me`, requestOptions)); - } catch (error) { - throw new AsgardeoUIException('JS_UI_CORE-ME-GPI-NE', 'Me API call failed.', error.stack); - } - - if (response.ok) { - return (await response.json()) as MeAPIResponse; - } - - throw new AsgardeoUIException('JS_UI_CORE-ME-GPI-HE', 'Failed to receive a successful response from the Me API.'); -}; - -export default getProfileInformation; diff --git a/packages/__legacy__/core/src/api/public-api.ts b/packages/__legacy__/core/src/api/public-api.ts deleted file mode 100644 index 0eef3ae9..00000000 --- a/packages/__legacy__/core/src/api/public-api.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -export {default as authorize} from './authorize'; -export {default as authenticate} from './authenticate'; -export {default as getBrandingPreference} from './get-branding-preference'; -export {default as getProfileInformation} from './get-profile-information'; -export {default as getBrandingPreferenceText} from './get-branding-preference-text'; -export {default as signOut} from './sign-out'; diff --git a/packages/__legacy__/core/src/api/sign-out.ts b/packages/__legacy__/core/src/api/sign-out.ts deleted file mode 100644 index 90f54c57..00000000 --- a/packages/__legacy__/core/src/api/sign-out.ts +++ /dev/null @@ -1,86 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {AuthClient} from '../auth-client'; -import AsgardeoUIException from '../exception'; -import {UIAuthClient} from '../models/auth-config'; - -/** - * Sign out the user. - * - * This function sends a signout request to the server. - * - * @returns {Promise} A promise that resolves when the sign out process is complete. - * - * @example - * signOut() - * .then(() => { - * console.log('Signed out!'); - * }) - * .catch((error) => { - * console.error('Failed to sign out:', error); - * }); - */ -const signOut = async (): Promise => { - let response: Response; - let signOutUrl: string; - - const headers: Headers = new Headers(); - headers.append('Accept', 'application/json'); - headers.append('Content-Type', 'application/x-www-form-urlencoded'); - - const formBody: URLSearchParams = new URLSearchParams(); - - const authClient: UIAuthClient = AuthClient.getInstance(); - - try { - formBody.append('id_token_hint', await authClient.getIdToken()); - formBody.append('client_id', (await authClient.getStorageManager().getConfigData()).clientId); - formBody.append('response_mode', 'direct'); - } catch (error) { - throw new AsgardeoUIException('JS_UI_CORE-SIGNOUT-SO-IV', 'Failed to build the body of the signout request.'); - } - - const requestOptions: RequestInit = { - body: formBody.toString(), - headers, - method: 'POST', - }; - - try { - const {endSessionEndpoint} = await authClient.getOpenIDProviderEndpoints(); - signOutUrl = endSessionEndpoint; - } catch (error) { - throw new AsgardeoUIException('JS_UI_CORE-SIGNOUT-SO-NF', 'Failed to retrieve the sign out endpoint.'); - } - - try { - response = await fetch(signOutUrl, requestOptions); - } catch (error) { - throw new AsgardeoUIException('JS_UI_CORE-SIGNOUT-SO-NE', 'Failed to send a request to the sign out endpoint.'); - } - - if (!response.ok) { - throw new AsgardeoUIException( - 'JS_UI_CORE-SIGNOUT-SO-HE', - 'Failed to receive a successful response from the sign out endpoint.', - ); - } -}; - -export default signOut; diff --git a/packages/__legacy__/core/src/auth-client.ts b/packages/__legacy__/core/src/auth-client.ts deleted file mode 100644 index 255ae4b7..00000000 --- a/packages/__legacy__/core/src/auth-client.ts +++ /dev/null @@ -1,66 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {AsgardeoAuthClient, Store, Crypto} from '@asgardeo/auth-js'; -import {UIAuthClient, UIAuthConfig} from './models/auth-config'; -import {BrandingPreferenceTypes} from './models/branding-api-response'; - -/** - * The `AuthClient` class is a singleton class that provides an instance of the `UIAuthClient`. - */ -export class AuthClient { - private static instance: UIAuthClient; - - /** - * Private constructor to prevent direct object creation. - * This is necessary because this is a singleton class. - * @private - */ - private constructor() {} - - /** - * Returns the singleton instance of `UIAuthClient`. If the instance does not exist, it is created. - * - * @param {UIAuthConfig} authClientConfig - The configuration for the `UIAuthClient`. - * @param {Store} store - The store for the `UIAuthClient`. - * @param {Crypto} cryptoUtils - The crypto utilities for the `UIAuthClient`. - * @returns {UIAuthClient} The singleton instance of `UIAuthClient`. - */ - static getInstance(authClientConfig?: UIAuthConfig, store?: Store, cryptoUtils?: Crypto): UIAuthClient { - if (!AuthClient.instance) { - const DEFAULT_NAME: string = 'carbon.super'; - - const extendedAuthClientConfig: UIAuthConfig = { - ...authClientConfig, - enableConsoleBranding: authClientConfig?.enableConsoleBranding ?? true, - enableConsoleTextBranding: authClientConfig?.enableConsoleTextBranding ?? true, - name: authClientConfig?.name ?? DEFAULT_NAME, - responseMode: 'direct', - type: authClientConfig?.type ?? BrandingPreferenceTypes.Org, - }; - - AuthClient.instance = new AsgardeoAuthClient(); - AuthClient.instance.initialize(extendedAuthClientConfig, store, cryptoUtils); - } - - return AuthClient.instance; - } -} - -/* Interfaces, classes and enums required from the auth-js package */ -export {Crypto, JWKInterface, Store, AsgardeoAuthClient, TokenResponse} from '@asgardeo/auth-js'; diff --git a/packages/__legacy__/core/src/branding/default-branding/dark-theme.ts b/packages/__legacy__/core/src/branding/default-branding/dark-theme.ts deleted file mode 100644 index 3a0a3d15..00000000 --- a/packages/__legacy__/core/src/branding/default-branding/dark-theme.ts +++ /dev/null @@ -1,237 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {ThemeConfig} from '../../models/branding-api-response'; - -const DARK_THEME: ThemeConfig = { - buttons: { - externalConnection: { - base: { - background: { - backgroundColor: '#FFFFFF', - }, - border: { - borderRadius: '4px', - }, - font: { - color: '#000000de', - }, - }, - }, - primary: { - base: { - border: { - borderRadius: '4px', - }, - font: { - color: '#ffffffe6', - }, - }, - }, - secondary: { - base: { - border: { - borderRadius: '4px', - }, - font: { - color: '#000000de', - }, - }, - }, - }, - colors: { - alerts: { - error: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#ffd8d8', - }, - info: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#eff7fd', - }, - neutral: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#f8f8f9', - }, - warning: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#fff6e7', - }, - }, - background: { - body: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#fbfbfb', - }, - surface: { - contrastText: '', - dark: '#F6F4F2', - inverted: '#212a32', - light: '#f9fafb', - main: '#ffffff', - }, - }, - illustrations: { - accent1: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#3865B5', - }, - accent2: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#19BECE', - }, - accent3: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#FFFFFF', - }, - primary: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#FF7300', - }, - secondary: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#E0E1E2', - }, - }, - outlined: { - default: '#dadce0', - }, - primary: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#FF7300', - }, - secondary: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#E0E1E2', - }, - text: { - primary: '#000000de', - secondary: '#00000066', - }, - }, - footer: { - border: { - borderColor: '', - }, - font: { - color: '', - }, - }, - images: { - favicon: { - imgURL: undefined, - }, - logo: { - altText: undefined, - imgURL: undefined, - }, - myAccountLogo: { - altText: undefined, - imgURL: undefined, - title: 'Account', - }, - }, - inputs: { - base: { - background: { - backgroundColor: '#FFFFFF', - }, - border: { - borderColor: '', - borderRadius: '4px', - }, - font: { - color: '', - }, - labels: { - font: { - color: '', - }, - }, - }, - }, - loginBox: { - background: { - backgroundColor: '', - }, - border: { - borderColor: '', - borderRadius: '12px', - borderWidth: '1px', - }, - font: { - color: '', - }, - }, - loginPage: { - background: { - backgroundColor: '', - }, - font: { - color: '', - }, - }, - typography: { - font: { - fontFamily: 'Gilmer', - }, - heading: { - font: { - color: '', - }, - }, - }, -}; - -export default DARK_THEME; diff --git a/packages/__legacy__/core/src/branding/default-branding/default-branding.ts b/packages/__legacy__/core/src/branding/default-branding/default-branding.ts deleted file mode 100644 index ad658d0e..00000000 --- a/packages/__legacy__/core/src/branding/default-branding/default-branding.ts +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import DARK_THEME from './dark-theme'; -import LIGHT_THEME from './light-theme'; -import { - BrandingPreferenceAPIResponse, - PredefinedThemes, - PredefinedLayouts, - BrandingPreferenceTypes, -} from '../../models/branding-api-response'; - -const DEFAULT_BRANDING: BrandingPreferenceAPIResponse = { - locale: 'en-US', - name: '', - preference: { - configs: { - isBrandingEnabled: false, - }, - layout: { - activeLayout: PredefinedLayouts.Centered, - }, - organizationDetails: { - displayName: '', - supportEmail: '', - }, - theme: { - DARK: DARK_THEME, - LIGHT: LIGHT_THEME, - activeTheme: PredefinedThemes.Light, - }, - urls: { - cookiePolicyURL: '', - privacyPolicyURL: '', - termsOfUseURL: '', - }, - }, - type: BrandingPreferenceTypes.Org, -}; - -export default DEFAULT_BRANDING; diff --git a/packages/__legacy__/core/src/branding/default-branding/light-theme.ts b/packages/__legacy__/core/src/branding/default-branding/light-theme.ts deleted file mode 100644 index 745c6d1e..00000000 --- a/packages/__legacy__/core/src/branding/default-branding/light-theme.ts +++ /dev/null @@ -1,237 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {ThemeConfig} from '../../models/branding-api-response'; - -const LIGHT_THEME: ThemeConfig = { - buttons: { - externalConnection: { - base: { - background: { - backgroundColor: '#FFFFFF', - }, - border: { - borderRadius: '4px', - }, - font: { - color: '#000000de', - }, - }, - }, - primary: { - base: { - border: { - borderRadius: '4px', - }, - font: { - color: '#ffffffe6', - }, - }, - }, - secondary: { - base: { - border: { - borderRadius: '4px', - }, - font: { - color: '#000000de', - }, - }, - }, - }, - colors: { - alerts: { - error: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#ffd8d8', - }, - info: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#eff7fd', - }, - neutral: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#f8f8f9', - }, - warning: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#fff6e7', - }, - }, - background: { - body: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#fbfbfb', - }, - surface: { - contrastText: '', - dark: '#F6F4F2', - inverted: '#212a32', - light: '#f9fafb', - main: '#ffffff', - }, - }, - illustrations: { - accent1: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#3865B5', - }, - accent2: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#19BECE', - }, - accent3: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#FFFFFF', - }, - primary: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#FF7300', - }, - secondary: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#E0E1E2', - }, - }, - outlined: { - default: '#dadce0', - }, - primary: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#FF7300', - }, - secondary: { - contrastText: '', - dark: '', - inverted: '', - light: '', - main: '#E0E1E2', - }, - text: { - primary: '#000000de', - secondary: '#00000066', - }, - }, - footer: { - border: { - borderColor: '', - }, - font: { - color: '', - }, - }, - images: { - favicon: { - imgURL: undefined, - }, - logo: { - altText: undefined, - imgURL: undefined, - }, - myAccountLogo: { - altText: undefined, - imgURL: undefined, - title: 'Account', - }, - }, - inputs: { - base: { - background: { - backgroundColor: '#FFFFFF', - }, - border: { - borderColor: '', - borderRadius: '4px', - }, - font: { - color: '', - }, - labels: { - font: { - color: '', - }, - }, - }, - }, - loginBox: { - background: { - backgroundColor: '', - }, - border: { - borderColor: '', - borderRadius: '12px', - borderWidth: '1px', - }, - font: { - color: '', - }, - }, - loginPage: { - background: { - backgroundColor: '', - }, - font: { - color: '', - }, - }, - typography: { - font: { - fontFamily: 'Gilmer', - }, - heading: { - font: { - color: '', - }, - }, - }, -}; - -export default LIGHT_THEME; diff --git a/packages/__legacy__/core/src/branding/get-branding-css.ts b/packages/__legacy__/core/src/branding/get-branding-css.ts deleted file mode 100644 index b0d64e25..00000000 --- a/packages/__legacy__/core/src/branding/get-branding-css.ts +++ /dev/null @@ -1,128 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import isEmpty from 'lodash.isempty'; -import getBranding from './get-branding'; -import {ThemeConfig} from '../models/branding-api-response'; -import GetBrandingProps from '../models/get-branding-props'; - -/** - * Generate a CSS string based on branding properties. - * - * This function retrieves the branding preferences based on the provided props, - * then generates a CSS string based on the active theme within those preferences. - * If no active theme is found, an empty string is returned. - * - * @param {GetBrandingProps} props - The properties used to retrieve the branding preferences. - * @returns {Promise} A promise that resolves to a CSS string. If no theme is found, - * the promise resolves to an empty string. - * - * @example - * getBrandingCSS(props).then(css => { - * // do something with the css string - * }); - */ -const getBrandingCSS = async (props: GetBrandingProps): Promise => { - const {theme} = (await getBranding(props)).preference; - - if (!theme) { - return ''; - } - const activeTheme: ThemeConfig = theme[theme.activeTheme]; - - const footerFontColor: string = !isEmpty(activeTheme.footer.font.color) ? activeTheme.footer.font.color : 'inherit'; - const headingFontColor: string = !isEmpty(activeTheme.typography.heading.font.color) - ? activeTheme.typography.heading.font.color - : 'inherit'; - const loginBoxFontColor: string = !isEmpty(activeTheme.loginBox.font.color) - ? activeTheme.loginBox.font.color - : 'inherit'; - const inputBaseFontColor: string = !isEmpty(activeTheme.inputs.base.font.color) - ? activeTheme.inputs.base.font.color - : 'inherit'; - const inputBaseLabelFontColor: string = !isEmpty(activeTheme.inputs.base.labels.font.color) - ? activeTheme.inputs.base.labels.font.color - : 'inherit'; - - return ` - ${activeTheme.typography.font.importURL ? `@import url(${activeTheme.typography.font.importURL});` : ''} - - :root { - --asg-colors-primary-main: ${activeTheme.colors.primary.main}; - --asg-colors-secondary-main: ${activeTheme.colors.secondary.main}; - --asg-colors-background-body-main: ${activeTheme.colors.background?.body?.main}; - --asg-colors-background-surface-main: ${activeTheme.colors.background?.surface?.main}; - --asg-colors-background-surface-light: ${activeTheme.colors.background?.surface?.light}; - --asg-colors-background-surface-dark: ${activeTheme.colors.background?.surface?.dark}; - --asg-colors-background-surface-inverted: ${activeTheme.colors.background?.surface?.inverted}; - --asg-colors-outlined-default: ${activeTheme.colors.outlined?.default}; - --asg-colors-text-primary: ${activeTheme.colors.text?.primary}; - --asg-colors-text-secondary: ${activeTheme.colors.text?.secondary}; - --asg-colors-alerts-error-main: ${activeTheme.colors.alerts?.error?.main}; - --asg-colors-alerts-neutral-main: ${activeTheme.colors.alerts?.neutral?.main}; - --asg-colors-alerts-info-main: ${activeTheme.colors.alerts?.info?.main}; - --asg-colors-alerts-warning-main: ${activeTheme.colors.alerts?.warning?.main}; - --asg-colors-illustrations-primary-main: ${activeTheme.colors.illustrations?.primary?.main}; - --asg-colors-illustrations-secondary-main: ${activeTheme.colors.illustrations?.secondary?.main}; - --asg-colors-illustrations-accent1-main: ${activeTheme.colors.illustrations?.accent1?.main}; - --asg-colors-illustrations-accent2-main: ${activeTheme.colors.illustrations?.accent2?.main}; - --asg-colors-illustrations-accent3-main: ${activeTheme.colors.illustrations?.accent3?.main}; - - /* Components */ - --asg-footer-text-color: ${footerFontColor}; - --asg-footer-border-color: ${activeTheme.footer?.border?.borderColor || 'var(--asg-colors-outlined-default)'}; - --asg-primary-font-family: ${activeTheme.typography.font.fontFamily}; - --asg-heading-text-color: ${headingFontColor}; - --asg-primary-button-base-text-color: ${activeTheme.buttons.primary.base.font.color}; - --asg-primary-button-base-border-radius: ${activeTheme.buttons.primary.base.border.borderRadius}; - --asg-secondary-button-base-text-color: ${activeTheme.buttons.secondary.base.font.color}; - --asg-secondary-button-base-border-radius: ${activeTheme.buttons.secondary.base.border.borderRadius}; - --asg-external-login-button-base-background-color: ${ - activeTheme.buttons.externalConnection.base.background.backgroundColor - }; - --asg-external-login-button-base-text-color: ${activeTheme.buttons.externalConnection.base.font.color}; - --asg-external-login-button-base-border-radius: ${activeTheme.buttons.externalConnection.base.border.borderRadius}; - --asg-login-box-background-color: ${ - activeTheme.loginBox?.background?.backgroundColor || 'var(--asg-colors-background-surface-main)' - }; - --asg-login-box-border-color: ${activeTheme.loginBox?.border?.borderColor || 'var(--asg-colors-outlined-default)'}; - --asg-login-box-border-width: ${activeTheme.loginBox.border.borderWidth}; - --asg-login-box-border-style: solid; - --asg-login-box-border-radius: ${activeTheme.loginBox.border.borderRadius}; - --asg-login-box-text-color: ${loginBoxFontColor}; - --asg-login-page-background-color: ${ - activeTheme.loginPage?.background?.backgroundColor || 'var(--asg-colors-background-body-main)' - }; - --asg-login-page-font-color: ${activeTheme.loginPage?.font?.color || 'var(--asg-colors-text-primary)'}; - --asg-input-field-base-text-color: ${inputBaseFontColor || 'var(--asg-colors-text-primary)'}; - --asg-input-field-base-background-color: ${activeTheme.inputs.base.background.backgroundColor}; - --asg-input-field-base-label-text-color: ${inputBaseLabelFontColor}; - --asg-input-field-base-border-color: ${ - activeTheme.inputs.base.border.borderColor || 'var(--asg-colors-outlined-default)' - }; - --asg-input-field-base-border-radius: ${activeTheme.inputs.base.border.borderRadius}; - --language-selector-background-color: var(--asg-login-page-background-color) !important; - --language-selector-text-color: var(--asg-footer-text-color) !important; - --language-selector-border-color: var(--asg-colors-primary-main) !important; - - /* Oxygen UI variables */ - --oxygen-palette-text-primary: ${activeTheme.colors.text?.primary}; -} `; -}; - -export default getBrandingCSS; diff --git a/packages/__legacy__/core/src/branding/get-branding.ts b/packages/__legacy__/core/src/branding/get-branding.ts deleted file mode 100644 index 0320b520..00000000 --- a/packages/__legacy__/core/src/branding/get-branding.ts +++ /dev/null @@ -1,68 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import merge from 'lodash.merge'; -import DEFAULT_BRANDING from './default-branding/default-branding'; -import getBrandingPreference from '../api/get-branding-preference'; -import {AuthClient} from '../auth-client'; -import {Branding} from '../models/branding'; -import {BrandingPreferenceAPIResponse} from '../models/branding-api-response'; -import GetBrandingProps from '../models/get-branding-props'; - -/** - * Fetch and merge branding properties. - * - * @param {GetBrandingProps} props - Branding properties. - * @returns {Promise} A promise that resolves with the merged branding properties. - */ -const getBranding = async (props: GetBrandingProps): Promise => { - const {branding, merged} = props; - let mergedBranding: Branding; - - /** - * If the `merged` prop is not provided, fetch the branding from the console and merge it with the default branding. - * If the `merged` prop is provided, merge it with the branding props. - */ - if (!merged) { - let brandingFromConsole: BrandingPreferenceAPIResponse; - - try { - const {enableConsoleBranding} = await AuthClient.getInstance().getStorageManager().getConfigData(); - - if (enableConsoleBranding) { - brandingFromConsole = await getBrandingPreference(); - } - } catch { - /** - * If the branding from the console cannot be fetched, proceed with the default branding. - */ - } - - if (brandingFromConsole?.preference?.configs?.isBrandingEnabled) { - mergedBranding = merge(DEFAULT_BRANDING, brandingFromConsole ?? {}, branding ?? {}); - } else { - mergedBranding = merge(DEFAULT_BRANDING, branding ?? {}); - } - } else { - mergedBranding = merge(merged, branding ?? {}); - } - - return mergedBranding; -}; - -export default getBranding; diff --git a/packages/__legacy__/core/src/branding/public.ts b/packages/__legacy__/core/src/branding/public.ts deleted file mode 100644 index 280677f5..00000000 --- a/packages/__legacy__/core/src/branding/public.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -export {default as getBranding} from './get-branding'; -export {default as getBrandingCSS} from './get-branding-css'; diff --git a/packages/__legacy__/core/src/exception.ts b/packages/__legacy__/core/src/exception.ts deleted file mode 100644 index d8695d56..00000000 --- a/packages/__legacy__/core/src/exception.ts +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/** - * `AsgardeoUIException` is a custom error class that extends the built-in `Error` class. - * - * @extends {Error} - */ -export default class AsgardeoUIException extends Error { - /** - * The name of the error, which is set to the name of the constructor. - * @override - */ - public override name: string; - - /** - * The stack trace of the error. - * @override - */ - public override stack: string; - - /** - * The code of the error. - */ - public code: string; - - /** - * Constructs a new `AsgardeoUIException`. - * - * @param {string} code - The error code. - * @param {string} message - The error message. - * @param {string} [stack] - The error stack trace. - */ - constructor(code: string, message: string, stack?: string) { - super(message); - this.code = code; - this.name = this.constructor.name; - this.stack = stack; - } -} diff --git a/packages/__legacy__/core/src/i18n/get-localization.ts b/packages/__legacy__/core/src/i18n/get-localization.ts deleted file mode 100644 index b0f453d9..00000000 --- a/packages/__legacy__/core/src/i18n/get-localization.ts +++ /dev/null @@ -1,83 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {AuthClientConfig} from '@asgardeo/auth-js'; -import merge from 'lodash.merge'; -import {TextObject} from './screens/model'; -import getBrandingPreferenceText from '../api/get-branding-preference-text'; -import {AuthClient} from '../auth-client'; -import {UIAuthConfig} from '../models/auth-config'; -import {BrandingPreferenceTextAPIResponse} from '../models/branding-text-api-response'; -import GetLocalizationProps from '../models/get-localization-props'; - -/** - * Fetch and merge branding properties. - * - * @param {BrandingProps} props - Branding properties. - * @returns {Promise} A promise that resolves with the merged branding properties. - */ -const getLocalization = async (props: GetLocalizationProps): Promise => { - const {componentTextOverrides, locale, providerTextOverrides, screen} = props; - - const module: TextObject = await import(`./screens/${screen}/${locale}.ts`); - - let textFromConsoleBranding: BrandingPreferenceTextAPIResponse; - - const configData: AuthClientConfig = await AuthClient.getInstance().getStorageManager().getConfigData(); - - try { - if (configData.enableConsoleTextBranding) { - textFromConsoleBranding = await getBrandingPreferenceText({ - locale, - name: configData.name, - screen, - type: configData.type, - }); - } - } catch (error) { - /** - * If the branding from the console cannot be fetched, proceed with the default branding. - */ - } - - /** - * Merge text objects according to the priority - */ - const mergedText: TextObject = await merge( - /** - * PRIORITY 04: Default stored branding text - */ - module[screen] ?? {}, - /** - * PRIORITY 03: Text from console branding - */ - textFromConsoleBranding?.preference?.text ?? {}, - /** - * PRIORITY 02: Text from provider customization - */ - providerTextOverrides?.[locale]?.[screen] ?? {}, - /** - * PRIORITY 01: Text from component customization - */ - componentTextOverrides?.[locale]?.[screen] ?? {}, - ); - - return mergedText; -}; - -export default getLocalization; diff --git a/packages/__legacy__/core/src/i18n/public.ts b/packages/__legacy__/core/src/i18n/public.ts deleted file mode 100644 index a8c9cec7..00000000 --- a/packages/__legacy__/core/src/i18n/public.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -export * from './screens/model'; -export * from './screens/keys'; -export {default as getLocalization} from './get-localization'; diff --git a/packages/__legacy__/core/src/i18n/screens/common/en-US.ts b/packages/__legacy__/core/src/i18n/screens/common/en-US.ts deleted file mode 100644 index 5c66e5c7..00000000 --- a/packages/__legacy__/core/src/i18n/screens/common/en-US.ts +++ /dev/null @@ -1,32 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {Common} from './model'; - -export const common: Common = { - 'common.title': 'Sign In', - copyright: '© {{currentYear}} WSO2 LLC.', - error: 'Something went wrong. Please try again.', - 'multiple.options.prefix': 'Sign in with', - or: 'OR', - 'prefix.register': "Don't have an account?", - 'privacy.policy': 'Privacy Policy', - register: 'Register', - 'site.title': 'WSO2 Identity Server', - 'terms.of.service': 'Terms of Service', -}; diff --git a/packages/__legacy__/core/src/i18n/screens/common/fr-FR.ts b/packages/__legacy__/core/src/i18n/screens/common/fr-FR.ts deleted file mode 100644 index bb21e7ff..00000000 --- a/packages/__legacy__/core/src/i18n/screens/common/fr-FR.ts +++ /dev/null @@ -1,32 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {Common} from './model'; - -export const common: Common = { - 'common.title': "S'identifier", - copyright: '© {{currentYear}} WSO2 LLC.', - error: "Quelque chose s'est mal passé. Veuillez réessayer.", - 'multiple.options.prefix': 'Se connecter avec', - or: 'OU', - 'prefix.register': "Vous n'avez pas de compte?", - 'privacy.policy': 'Politique de confidentialité', - register: "S'inscrire", - 'site.title': 'Identity Server WSO2', - 'terms.of.service': 'Conditions de service', -}; diff --git a/packages/__legacy__/core/src/i18n/screens/common/model.ts b/packages/__legacy__/core/src/i18n/screens/common/model.ts deleted file mode 100644 index 2b5d5861..00000000 --- a/packages/__legacy__/core/src/i18n/screens/common/model.ts +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/** - * Interface for the common text. - */ -export interface Common { - 'common.title': string; - copyright: string; - error: string; - 'multiple.options.prefix': string; - or: string; - 'prefix.register': string; - 'privacy.policy': string; - register: string; - 'site.title': string; - 'terms.of.service': string; -} diff --git a/packages/__legacy__/core/src/i18n/screens/emailOtp/en-US.ts b/packages/__legacy__/core/src/i18n/screens/emailOtp/en-US.ts deleted file mode 100644 index 7bffbfd8..00000000 --- a/packages/__legacy__/core/src/i18n/screens/emailOtp/en-US.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {EmailOTP} from './model'; - -export const emailOtp: EmailOTP = { - continue: 'Continue', - 'email.heading': 'Sign In', - 'email.otp.heading': 'OTP Verification', - 'enter.verification.code.got.by.device': 'Enter the code sent to your email ID.', - 'resend.code': 'Resend code', - 'username.label': 'Username', - 'username.placeholder': 'Enter your username', -}; diff --git a/packages/__legacy__/core/src/i18n/screens/emailOtp/model.ts b/packages/__legacy__/core/src/i18n/screens/emailOtp/model.ts deleted file mode 100644 index 6e3beb9e..00000000 --- a/packages/__legacy__/core/src/i18n/screens/emailOtp/model.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/** - * Interface for the TOTP text. - */ -export interface EmailOTP { - continue: string; - 'email.heading': string; - 'email.otp.heading': string; - 'enter.verification.code.got.by.device': string; - 'resend.code': string; - 'username.label': string; - 'username.placeholder': string; -} diff --git a/packages/__legacy__/core/src/i18n/screens/identifierFirst/en-US.ts b/packages/__legacy__/core/src/i18n/screens/identifierFirst/en-US.ts deleted file mode 100644 index f783f78f..00000000 --- a/packages/__legacy__/core/src/i18n/screens/identifierFirst/en-US.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {IdentifierFirst} from './model'; - -export const identifierFirst: IdentifierFirst = { - continue: 'Continue', - 'enter.your.username': 'Enter your username', - 'login.button': 'Sign In', - 'login.heading': 'Sign In', - 'remember.me': 'Remember me on this computer', - retry: 'Login failed! Please check your username and password and try again.', - username: 'Username', -}; diff --git a/packages/__legacy__/core/src/i18n/screens/identifierFirst/fr-FR.ts b/packages/__legacy__/core/src/i18n/screens/identifierFirst/fr-FR.ts deleted file mode 100644 index 05a834d9..00000000 --- a/packages/__legacy__/core/src/i18n/screens/identifierFirst/fr-FR.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {IdentifierFirst} from './model'; - -export const identifierFirst: IdentifierFirst = { - continue: 'Continuer', - 'enter.your.username': "Entrez votre nom d'utilisateur", - 'login.button': 'Se connecter', - 'login.heading': 'Se connecter', - 'remember.me': 'Se souvenir de moi sur cet ordinateur', - retry: "Échec de la connexion! Veuillez vérifier votre nom d'utilisateur et votre mot de passe et réessayer.", - username: "Nom d'utilisateur", -}; diff --git a/packages/__legacy__/core/src/i18n/screens/identifierFirst/model.ts b/packages/__legacy__/core/src/i18n/screens/identifierFirst/model.ts deleted file mode 100644 index 739eb60c..00000000 --- a/packages/__legacy__/core/src/i18n/screens/identifierFirst/model.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/** - * Interface for the IdentifierFirst text. - */ -export interface IdentifierFirst { - continue: string; - 'enter.your.username': string; - 'login.button': string; - 'login.heading': string; - 'remember.me': string; - retry: string; - username: string; -} diff --git a/packages/__legacy__/core/src/i18n/screens/keys.ts b/packages/__legacy__/core/src/i18n/screens/keys.ts deleted file mode 100644 index 2d074abd..00000000 --- a/packages/__legacy__/core/src/i18n/screens/keys.ts +++ /dev/null @@ -1,270 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/** - * Interface for the i18n keys. - */ -interface Keys { - common: { - common: { - title: string; - }; - copyright: string; - error: string; - multiple: { - options: { - prefix: string; - }; - }; - or: string; - prefix: { - register: string; - }; - privacy: { - policy: string; - }; - register: string; - site: { - title: string; - }; - terms: { - of: { - service: string; - }; - }; - }; - emailOtp: { - continue: string; - email: { - heading: string; - otp: { - heading: string; - }; - }; - enter: { - verification: { - code: { - got: { - by: { - device: string; - }; - }; - }; - }; - }; - resend: { - code: string; - }; - username: { - label: string; - placeholder: string; - }; - }; - identifierFirst: { - button: string; - continue: string; - enter: { - your: { - username: string; - }; - }; - login: { - heading: string; - }; - remember: { - me: string; - }; - retry: string; - username: string; - }; - login: { - button: string; - enter: { - your: { - password: string; - username: string; - }; - }; - login: { - heading: string; - }; - password: string; - remember: { - me: string; - }; - retry: string; - username: string; - }; - smsOtp: { - continue: string; - resend: { - code: string; - }; - - sms: { - otp: { - heading: string; - subheading: string; - }; - }; - }; - totp: { - continue: string; - enroll: { - message1: string; - message2: string; - }; - enter: { - verification: { - code: { - got: { - by: { - device: string; - }; - }; - }; - }; - }; - heading: string; - }; -} - -export const keys: Keys = { - common: { - common: { - title: 'common.common.title', - }, - copyright: 'common.copyright', - error: 'common.error', - multiple: { - options: { - prefix: 'common.multiple.options.prefix', - }, - }, - or: 'common.or', - prefix: { - register: 'common.prefix.register', - }, - privacy: { - policy: 'common.privacy.policy', - }, - register: 'common.register', - site: { - title: 'common.site.title', - }, - terms: { - of: { - service: 'common.terms.of.service', - }, - }, - }, - emailOtp: { - continue: 'emailOtp.continue', - email: { - heading: 'emailOtp.email.heading', - otp: { - heading: 'emailOtp.email.otp.heading', - }, - }, - enter: { - verification: { - code: { - got: { - by: { - device: 'emailOtp.enter.verification.code.got.by.device', - }, - }, - }, - }, - }, - resend: { - code: 'emailOtp.resend.code', - }, - username: { - label: 'emailOtp.username.label', - placeholder: 'emailOtp.username.placeholder', - }, - }, - identifierFirst: { - button: 'identifierFirst.button', - continue: 'identifierFirst.continue', - enter: { - your: { - username: 'identifierFirst.enter.your.username', - }, - }, - login: { - heading: 'identifierFirst.login.heading', - }, - remember: { - me: 'identifierFirst.remember.me', - }, - retry: 'identifierFirst.retry', - username: 'identifierFirst.username', - }, - login: { - button: 'login.login.button', - enter: { - your: { - password: 'login.enter.your.password', - username: 'login.enter.your.username', - }, - }, - login: { - heading: 'login.login.heading', - }, - password: 'login.password', - remember: { - me: 'login.remember.me', - }, - retry: 'login.retry', - username: 'login.username', - }, - smsOtp: { - continue: 'smsOtp.continue', - resend: { - code: 'smsOtp.resend.code', - }, - - sms: { - otp: { - heading: 'smsOtp.sms.otp.heading', - subheading: 'smsOtp.sms.otp.subheading', - }, - }, - }, - totp: { - continue: 'totp.continue', - enroll: { - message1: 'totp.totp.enroll.message1', - message2: 'totp.totp.enroll.message2', - }, - enter: { - verification: { - code: { - got: { - by: { - device: 'totp.enter.verification.code.got.by.device', - }, - }, - }, - }, - }, - heading: 'totp.totp.heading', - }, -}; diff --git a/packages/__legacy__/core/src/i18n/screens/login/en-US.ts b/packages/__legacy__/core/src/i18n/screens/login/en-US.ts deleted file mode 100644 index dff3ce0d..00000000 --- a/packages/__legacy__/core/src/i18n/screens/login/en-US.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {Login} from './model'; - -export const login: Login = { - 'enter.your.password': 'Enter your password', - 'enter.your.username': 'Enter your username', - 'login.button': 'Sign In', - 'login.heading': 'Sign In', - password: 'Password', - 'remember.me': 'Remember me on this computer', - retry: 'Login failed! Please check your username and password and try again.', - username: 'Username', -}; diff --git a/packages/__legacy__/core/src/i18n/screens/login/fr-FR.ts b/packages/__legacy__/core/src/i18n/screens/login/fr-FR.ts deleted file mode 100644 index 571b8c15..00000000 --- a/packages/__legacy__/core/src/i18n/screens/login/fr-FR.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {Login} from './model'; - -export const login: Login = { - 'enter.your.password': 'Entrez votre mot de passe', - 'enter.your.username': "Entrez votre nom d'utilisateur", - 'login.button': 'Se connecter', - 'login.heading': 'Se connecter', - password: 'Mot de passe', - 'remember.me': 'Se souvenir de moi sur cet ordinateur', - retry: "Échec de la connexion! Veuillez vérifier votre nom d'utilisateur et votre mot de passe et réessayer.", - username: "Nom d'utilisateur", -}; diff --git a/packages/__legacy__/core/src/i18n/screens/login/model.ts b/packages/__legacy__/core/src/i18n/screens/login/model.ts deleted file mode 100644 index e9e51dc7..00000000 --- a/packages/__legacy__/core/src/i18n/screens/login/model.ts +++ /dev/null @@ -1,31 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/** - * Interface for the login text. - */ -export interface Login { - 'enter.your.password': string; - 'enter.your.username': string; - 'login.button': string; - 'login.heading': string; - password: string; - 'remember.me': string; - retry: string; - username: string; -} diff --git a/packages/__legacy__/core/src/i18n/screens/model.ts b/packages/__legacy__/core/src/i18n/screens/model.ts deleted file mode 100644 index f9c28a87..00000000 --- a/packages/__legacy__/core/src/i18n/screens/model.ts +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {Common} from './common/model'; -import {IdentifierFirst} from './identifierFirst/model'; -import {Login} from './login/model'; -import {TOTP} from './totp/model'; - -/** - * Interface for the text preference. - */ -export interface TextPreference { - common: Common; - identifierFirst: IdentifierFirst; - login: Login; - totp: TOTP; -} - -/** - * Interface for the return type of the getLocalization function. - */ -export type TextObject = Login | TOTP | Common | IdentifierFirst; diff --git a/packages/__legacy__/core/src/i18n/screens/smsOtp/en-US.ts b/packages/__legacy__/core/src/i18n/screens/smsOtp/en-US.ts deleted file mode 100644 index 39078995..00000000 --- a/packages/__legacy__/core/src/i18n/screens/smsOtp/en-US.ts +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {SmsOTP} from './model'; - -export const smsOtp: SmsOTP = { - continue: 'Continue', - 'resend.code': 'Resend code', - 'sms.otp.heading': 'OTP Verification', - 'sms.otp.subheading': 'Enter the code sent to your mobile device.', -}; diff --git a/packages/__legacy__/core/src/i18n/screens/smsOtp/model.ts b/packages/__legacy__/core/src/i18n/screens/smsOtp/model.ts deleted file mode 100644 index b44b4646..00000000 --- a/packages/__legacy__/core/src/i18n/screens/smsOtp/model.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/** - * Interface for the TOTP text. - */ -export interface SmsOTP { - continue: string; - 'resend.code': string; - 'sms.otp.heading': string; - 'sms.otp.subheading': string; -} diff --git a/packages/__legacy__/core/src/i18n/screens/totp/en-US.ts b/packages/__legacy__/core/src/i18n/screens/totp/en-US.ts deleted file mode 100644 index fbe906e6..00000000 --- a/packages/__legacy__/core/src/i18n/screens/totp/en-US.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {TOTP} from './model'; - -export const totp: TOTP = { - continue: 'Continue', - 'enter.verification.code.got.by.device': 'Enter the verification code generated by your authenticator app.', - 'totp.enroll.message1': "Haven't setup your TOTP authenticator yet?", - 'totp.enroll.message2': 'Contact Support', - 'totp.heading': 'Verify Your Identity', -}; diff --git a/packages/__legacy__/core/src/i18n/screens/totp/fr-FR.ts b/packages/__legacy__/core/src/i18n/screens/totp/fr-FR.ts deleted file mode 100644 index 4576b4bd..00000000 --- a/packages/__legacy__/core/src/i18n/screens/totp/fr-FR.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {TOTP} from './model'; - -export const totp: TOTP = { - continue: 'Continuer', - 'enter.verification.code.got.by.device': - "Entrez le code de vérification généré par votre application d'authentification.", - 'totp.enroll.message1': "Vous n'avez pas encore configuré votre application d'authentification TOTP?", - 'totp.enroll.message2': 'Contacter le support', - 'totp.heading': 'Vérifiez votre identité', -}; diff --git a/packages/__legacy__/core/src/i18n/screens/totp/model.ts b/packages/__legacy__/core/src/i18n/screens/totp/model.ts deleted file mode 100644 index 2c76b42a..00000000 --- a/packages/__legacy__/core/src/i18n/screens/totp/model.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/** - * Interface for the TOTP text. - */ -export interface TOTP { - continue: string; - 'enter.verification.code.got.by.device': string; - 'totp.enroll.message1': string; - 'totp.enroll.message2': string; - 'totp.heading': string; -} diff --git a/packages/__legacy__/core/src/index.ts b/packages/__legacy__/core/src/index.ts deleted file mode 100644 index 9f27cbb7..00000000 --- a/packages/__legacy__/core/src/index.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -export * from './api/public-api'; -export * from './branding/public'; -export * from './i18n/public'; -export * from './auth-client'; -export * from './models/public-models'; -export {default as AsgardeoUIException} from './exception'; diff --git a/packages/__legacy__/core/src/models/auth-api-request.ts b/packages/__legacy__/core/src/models/auth-api-request.ts deleted file mode 100644 index 59ce7dea..00000000 --- a/packages/__legacy__/core/src/models/auth-api-request.ts +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/** - * Interface for the Authn API request body. - */ -export interface AuthenticateProps { - /** - * The authentication flow id. - */ - flowId: string; - /** - * Contains selected authenticator's required details. - */ - selectedAuthenticator: SelectedAuthenticator; -} - -/** - * Interface for the selected authenticator. - */ -export interface SelectedAuthenticator { - /** - * The authentication authenticator id. - */ - authenticatorId: string; - /** - *Required parameters for the selected authenticator. - */ - params?: Record; -} diff --git a/packages/__legacy__/core/src/models/auth-api-response.ts b/packages/__legacy__/core/src/models/auth-api-response.ts deleted file mode 100644 index 81bd6a6e..00000000 --- a/packages/__legacy__/core/src/models/auth-api-response.ts +++ /dev/null @@ -1,256 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/** - * Interface for the Authn and Authz API response. - */ -export interface AuthApiResponse { - /** - *If user is successfully authenticated, contains the authentication data. - */ - authData?: AuthData; - /** - *A unique identifier for the authentication flow. - */ - flowId: string; - /** - * The status of the authentication flow. - */ - flowStatus: FlowStatus; - /** - * The type of the authentication flow. - */ - flowType: string; - /** - * Contains the urls related to the authentication flow. - */ - links: Link[]; - /** - * Contains the authenticator data related to the next step. - */ - nextStep: AuthStep; -} - -/** - * Interface for the authentication data after flow status become SUCCESS_COMPLETED. - */ -export interface AuthData { - /** - * Code of the authentication flow - */ - code: string; - /** - * Session state of the authentication flow - */ - session_state: string; -} - -/** - * Enum for the flow status. - */ -export enum FlowStatus { - /** - * The authentication flow is failed. - */ - FailIncomplete = 'FAIL_INCOMPLETE', - /** - * The authentication flow is incomplete. - */ - Incomplete = 'INCOMPLETE', - /** - * The authentication flow is success. - */ - SuccessCompleted = 'SUCCESS_COMPLETED', -} - -/** - * Interface for the link. - */ -export interface Link { - /** - * The relative url of the link. - */ - href: string; - /** - * The supported http methods of the link. - */ - method: LinkMethod; - /** - * The identifier of the link. - */ - name: string; -} - -/** - * Enum for the link method. - */ -export enum LinkMethod { - Get = 'GET', - Post = 'POST', -} - -/** - * Interface for the authentication step. - */ -export interface AuthStep { - /** - * Contains the data related to the available authentication steps. - */ - authenticators: Authenticator[]; - /** - * The type of the next step in the authentication flow. - */ - stepType: StepType; -} - -/** - * Enum for the step type. - */ -export enum StepType { - /** - * The next step is for authenticating the user through a configured authenticator. - */ - AuthenticatorPrompt = 'AUTHENTICATOR_PROMPT', - /** - * The next step is for authenticator selection. - */ - MultiOptionsPrompt = 'MULTI_OPTIONS_PROMPT', -} - -/** - * Interface for the authenticator. - */ -export interface Authenticator { - /** - * The authenticator name. - */ - authenticator: string; - /** - * The authenticator identifier. - */ - authenticatorId: string; - /** - * The identity provider identifier. - */ - idp: string; - /** - * The metadata related to the authenticator. - */ - metadata: Metadata; - /** - * Contains the required parameters that should be sent to the server for - * processing the current step of the authentication request. - */ - requiredParams: string[]; -} - -/** - * Interface for the metadata. - */ -export interface Metadata { - /** - * Contains any additional data related to the authenticator which would be - * needed for the application to perform authentication. - */ - additionalData?: AdditionalData; - /** - * The i18n key for the authenticator. - */ - i18nKey: string; - /** - * If the promptType is USER_PROMPT, contains the data related to input parameters of the authenticator. - * */ - params?: Params; - /** - * The type of the prompt. - */ - promptType: PromptType; -} - -/** - * Enum for the prompt type. - */ -export enum PromptType { - /** - * The prompt is for the system to perform an internal action which - * will result in obtaining the required parameters. - */ - InternalPrompt = 'INTERNAL_PROMPT', - /** - * The prompt is for the user to be redirected to a different url which - * will result in obtaining the required parameters. - */ - RedirectionPromt = 'REDIRECTION_PROMPT', - /** - * The prompt is for the user to input the required parameters for the authenticator. - */ - UserPrompt = 'USER_PROMPT', -} - -/** - * Interface for the params. - */ -export interface Params { - /** - * Indicates whether the parameter is confidential or not. - */ - confidential: boolean; - /** - * Display name when prompting for the user. - */ - displayName: string; - /** - * The i18n key for the parameter. - */ - i18nKey: string; - /** - * Indicates the recommended display order of the parameter. - */ - order: number; - /* - * The parameter identifier. - */ - param: string; - /** - * Indicates the data type of the parameter. - */ - type: ParamsType; -} - -/** - * Enum for the params type. - */ -export enum ParamsType { - Boolean = 'BOOLEAN', - Integer = 'INTEGER', - String = 'STRING', -} - -/** - * Interface for the additional data. - */ -export interface AdditionalData { - /** - * Redirect URL for the redirection prompt. - */ - redirectUrl: string; - /** - * The state of the authentication flow. - */ - state: string; -} diff --git a/packages/__legacy__/core/src/models/auth-config.ts b/packages/__legacy__/core/src/models/auth-config.ts deleted file mode 100644 index a86565df..00000000 --- a/packages/__legacy__/core/src/models/auth-config.ts +++ /dev/null @@ -1,54 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {AsgardeoAuthClient, AuthClientConfig} from '@asgardeo/auth-js'; -import {BrandingPreferenceTypes} from './branding-api-response'; - -/** - * Interface for the configuration extension from the AuthClientConfig of '@asgardeo/auth-js'. - */ -interface AuthClientConfigExtension { - /** - * If enabled, the branding from the console will be used. Default value is true. - */ - enableConsoleBranding?: boolean; - /** - * If enabled, the text branding from the console will be used for the text. Default value is true. - */ - enableConsoleTextBranding?: boolean; - /* Language code of the locale. */ - locale?: string; - /** - * Tenant/Application name to filter the retrieval of customizations. - */ - name?: string; - /** - * Type to filter the retrieval of customizations. - */ - type?: BrandingPreferenceTypes; -} - -/** - * Type for the UI Auth configuration. - */ -export type UIAuthConfig = AuthClientConfig; - -/** - * Type for the UI Auth client. - */ -export type UIAuthClient = AsgardeoAuthClient; diff --git a/packages/__legacy__/core/src/models/branding-api-response.ts b/packages/__legacy__/core/src/models/branding-api-response.ts deleted file mode 100644 index 7e0dfbab..00000000 --- a/packages/__legacy__/core/src/models/branding-api-response.ts +++ /dev/null @@ -1,593 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import { - BackgroundStyleAttributes, - BorderStyleAttributes, - ButtonStyleAttributes, - ColorStyleAttributes, - ElementState, - FontStyleAttributes, -} from './element-styles'; - -/** - * Interface for the Branding Preference API response. - */ -export interface BrandingPreferenceAPIResponse { - /** - * Resource locale. - */ - locale: string; - /** - * Requested resource name. - */ - name: string; - /** - * Preference object. - */ - preference: BrandingPreference; - /** - * Preference type. - */ - type: BrandingPreferenceTypes; -} - -/** - * Interface Branding preference object. - */ -export interface BrandingPreference { - /** - * Configurations. - */ - configs: BrandingPreferenceConfig; - /** - * images such as Logo, Favicon, etc. - * @deprecated Use the images object in `theme.[].images`. - */ - images?: BrandingPreferenceImages; - /** - * Layout. - */ - layout: BrandingPreferenceLayout; - /** - * Organization's basic details. - */ - organizationDetails: BrandingPreferenceOrganizationDetails; - /** - * Stylesheets for login pages etc.. - */ - stylesheets?: BrandingPreferenceStylesheets; - /** - * Theme. - */ - theme: BrandingPreferenceTheme; - /** - * Links for policies, etc. - */ - urls: BrandingPreferenceURL; -} - -/** - * Interface Branding preference organization details. - */ -export interface BrandingPreferenceOrganizationDetails { - /** - * Copyright for the footer. - * @deprecated Moved to the `/branding-preference/text` API. - */ - copyrightText?: string; - /** - * Display name to be shown for Org members. - */ - displayName: string; - /** - * Site title appearing on the browser tab. - * @deprecated Moved to the `/branding-preference/text` API. - */ - siteTitle?: string; - /** - * Support email to be shown for Org members. - */ - supportEmail: string; -} - -/** - * Interface Branding preference images. - */ -export interface BrandingPreferenceImages { - /** - * Organization Favicon. - */ - favicon: Omit; - /** - * Organization Logo. - */ - logo: BrandingPreferenceImage; - /** - * Organization My Account Logo. - */ - myAccountLogo: BrandingPreferenceImage; -} - -/** - * Interface Branding preference image. - */ -export interface BrandingPreferenceImage { - /** - * Image Alt. - */ - altText: string | undefined; - /** - * Image URL. - */ - imgURL: string | undefined; - /** - * Title. - */ - title?: string; -} - -/** - * Interface Branding preference URLs. - */ -export interface BrandingPreferenceURL { - /** - * Link for Cookie Policy. - */ - cookiePolicyURL: string; - /** - * Link for Privacy Policy. - */ - privacyPolicyURL: string; - /** - * Link for Terms of Service. - */ - termsOfUseURL: string; -} - -/** - * Interface Branding preference stylesheets. - */ -export interface BrandingPreferenceStylesheets { - /** - * Login portal stylesheet. - */ - accountApp: PredefinedThemes; -} - -export type BrandingPreferenceTheme = StrictBrandingPreferenceTheme & DynamicBrandingPreferenceTheme; - -/** - * Interface Branding preference theme. - */ -export type DynamicBrandingPreferenceTheme = { - [key in PredefinedThemesKeys]: ThemeConfig; -}; - -/** - * Theme Configurations Interface. - */ -export interface ThemeConfig { - /** - * Button Preferences. - */ - buttons: BrandingPreferenceButtons; - /** - * Color Palette. - */ - colors: BrandingPreferenceColors; - /** - * Footer Preferences. - */ - footer: BrandingPreferenceFooter; - /** - * images such as Logo, Favicon, etc. - */ - images: BrandingPreferenceImages; - /** - * Input Fields Preferences. - */ - inputs: ElementState; - /** - * Login Box Preferences. - */ - loginBox: BrandingPreferenceLoginBox; - /** - * Login Page Preferences. - */ - loginPage?: BrandingPreferencePage; - /** - * Page Preferences. - * @deprecated Renamed to `loginPage` to keep it specific for login page. - */ - page?: BrandingPreferencePage; - /** - * Typography Preferences. - */ - typography: BrandingPreferenceTypography; -} - -/** - * Strict Interface Branding preference theme. - */ -export interface StrictBrandingPreferenceTheme { - /** - * The active theme. - */ - activeTheme: PredefinedThemes; -} - -/** - * Represents a color palette with different shades and contrast text. - */ -export interface PaletteColor { - /** - * The contrast text color for the color. - */ - contrastText?: string; - - /** - * The dark shade of the color. - */ - dark?: string; - - /** - * The inverted color for the color. - */ - inverted?: string; - - /** - * The light shade of the color. - */ - light?: string; - - /** - * The main shade of the color. - */ - main: string; -} - -/** - * Interface defining the color palette for a branding preference theme. - */ -export interface BrandingPreferenceColors { - /** - * The alerts color palette of the theme. - */ - alerts: { - /** - * The error alerts color palette of the theme. - */ - error: PaletteColor; - /** - * The info alerts color palette of the theme. - */ - info: PaletteColor; - /** - * The neutral alerts color palette of the theme. - */ - neutral: PaletteColor; - /** - * The warning alerts color palette of the theme. - */ - warning: PaletteColor; - }; - /** - * The background color palette of the theme. - */ - background: { - /** - * The body background color palette of the theme. - */ - body: PaletteColor; - /** - * The surface background color palette of the theme. - */ - surface: PaletteColor; - }; - /** - * The illustrations color palette of the theme. - */ - illustrations: { - /** - * The accent 1 illustrations color palette of the theme. - */ - accent1: PaletteColor; - /** - * The accent 2 illustrations color palette of the theme. - */ - accent2: PaletteColor; - /** - * The accent 3 illustrations color palette of the theme. - */ - accent3: PaletteColor; - /** - * The primary illustrations color palette of the theme. - */ - primary: PaletteColor; - /** - * The secondary illustrations color palette of the theme. - */ - secondary: PaletteColor; - }; - /** - * The outlined color palette of the theme. - */ - outlined: { - /** - * The default outlined color palette of the theme. - */ - default: string; - }; - /** - * The primary color palette of the theme. - */ - primary: PaletteColor; - /** - * The secondary color palette of the theme. - */ - secondary: PaletteColor; - /** - * The text color palette of the theme. - */ - text: { - /** - * The primary text color palette of the theme. - */ - primary: string; - /** - * The secondary text color palette of the theme. - */ - secondary: string; - }; -} - -/** - * Interface Branding preference footer preferences. - */ -export interface BrandingPreferenceFooter { - /** - * Page Body Font. - */ - border: Pick; - /** - * Page Body Font. - */ - font: FontStyleAttributes; -} - -/** - * Interface Branding preference page preferences. - */ -export interface BrandingPreferencePage { - /** - * Page Background. - */ - background: BackgroundStyleAttributes; - /** - * Page Body Font. - */ - font: FontStyleAttributes; -} - -/** - * Interface for the Branding Preference Typography. - */ -export interface BrandingPreferenceTypography { - /** - * Page Font. - */ - font: BrandingPreferenceTypographyFont; - /** - * Page Heading Typography. - */ - heading: { - /** - * Page Heading Font Preferences. - */ - font: ColorStyleAttributes; - }; -} - -/** - * Interface for the Font Typography Font. - */ -export interface BrandingPreferenceTypographyFont { - /** - * Font Family. - */ - fontFamily: string; - /** - * URL to import if loaded from a CDN. - */ - importURL?: string; -} - -/** - * Interface for the Login Box Preferences. - */ -export interface BrandingPreferenceButtons { - /** - * Social, External IDP Connection Button Preference. - */ - externalConnection: ElementState; - /** - * Primary Button Preferences. - */ - primary: ElementState>; - /** - * Secondary Button Preferences. - */ - secondary: ElementState>; -} - -/** - * Interface for the Login Box Preferences. - */ -export interface BrandingPreferenceInput { - /** - * Input field background. - */ - background: BackgroundStyleAttributes; - /** - * Secondary Button Preferences. - */ - border: Pick; - /** - * Input Field Font Preferences. - */ - font: FontStyleAttributes; - /** - * Input Labels Preferences. - */ - labels: { - /** - * Input Labels Font Preferences. - */ - font: FontStyleAttributes; - }; -} - -export interface BrandingPreferenceLoginBox { - /** - * Login Box Background. - */ - background: BackgroundStyleAttributes; - /** - * Login Box Border. - */ - border: BorderStyleAttributes; - /** - * Login Box Font. - */ - font: FontStyleAttributes; -} - -/** - * Interface Branding preference layout. - */ -export type BrandingPreferenceLayout = StrictBrandingPreferenceLayout & Partial; - -/** - * Strict Interface Branding preference layout. - */ -export interface StrictBrandingPreferenceLayout { - /** - * The active layout. - */ - activeLayout: PredefinedLayouts; -} - -/** - * Interface dynamic branding preference layout. - */ -export type DynamicBrandingPreferenceLayout = BrandingPreferenceSideImageLayout & BrandingPreferenceSideAlignedLayout; - -/** - * Left Image and Right Image layouts preference interface. - */ -export interface BrandingPreferenceSideImageLayout { - sideImg: BrandingPreferenceImage; -} - -/** - * Left Aligned and Right Aligned layouts preference interface. - */ -export interface BrandingPreferenceSideAlignedLayout { - productTagLine: string; -} - -/** - * Interface Branding preference configurations. - */ -export interface BrandingPreferenceConfig { - /** - * Should the changes be published? - */ - isBrandingEnabled: boolean; - /** - * Should remove default branding. - * @deprecated Renamed to `removeDefaultBranding` to keep it common. - */ - removeAsgardeoBranding?: boolean; - /** - * Should remove default branding. - */ - removeDefaultBranding?: boolean; -} - -/** - * Enum for Branding Preference Types. - */ -export enum BrandingPreferenceTypes { - /** - * Branding Preference for the App. - */ - App = 'APP', - /** - * Custom Branding Preference. - */ - Custom = 'CUSTOM', - /** - * Branding Preference for the Organization. - */ - Org = 'ORG', -} - -/** - * Enum for the font config strategies. - */ -export enum FontConfigurationStrategies { - BrowserDefault = 'BROWSER_DEFAULT', - Cdn = 'CDN', -} - -/** - * Enum for preview screen types. - */ -export enum PreviewScreenType { - EmailTemplate = 'email-template', - Login = 'login', - MyAccount = 'myaccount', -} - -/** - * Enum for set of predefined layouts. - */ -export enum PredefinedLayouts { - Centered = 'centered', - Custom = 'custom', - LeftAligned = 'left-aligned', - LeftImage = 'left-image', - RightAligned = 'right-aligned', - RightImage = 'right-image', -} - -/** - * Enum for set of predefined themes. - */ -export enum PredefinedThemes { - Dark = 'DARK', - Light = 'LIGHT', -} - -/** - * Mirror the enum as a string literal type - * to be used as a key in the theme object. - */ -export type PredefinedThemesKeys = 'LIGHT' | 'DARK'; diff --git a/packages/__legacy__/core/src/models/branding-text-api-response.ts b/packages/__legacy__/core/src/models/branding-text-api-response.ts deleted file mode 100644 index 30bb6bf0..00000000 --- a/packages/__legacy__/core/src/models/branding-text-api-response.ts +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {BrandingPreferenceTypes} from './branding-api-response'; -import {ScreenType} from './screen-type'; - -/** - * Interface for the props of the `getBrandingPreferenceText` function. - */ -export interface GetBrandingPreferenceTextProps { - /** - * Locale to filter the retrieval of customizations. - */ - locale: string; - /** - * Tenant/Application name to filter the retrieval of customizations. - */ - name: string; - /** - * Screen to filter the retrieval of customizations. - */ - screen: ScreenType; - /** - * Type to filter the retrieval of customizations. - */ - type: BrandingPreferenceTypes; -} - -/** - * Branding preference text response interface. - */ -export interface BrandingPreferenceTextAPIResponse extends GetBrandingPreferenceTextProps { - /** - * Branding text preference. - */ - preference: BrandingTextPreference; -} - -/** - * Branding text preference interface. - */ -export interface BrandingTextPreference { - text: { - [keys: string]: string; - }; -} diff --git a/packages/__legacy__/core/src/models/branding.ts b/packages/__legacy__/core/src/models/branding.ts deleted file mode 100644 index c4f31ffd..00000000 --- a/packages/__legacy__/core/src/models/branding.ts +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {BrandingPreference, BrandingPreferenceTypes} from './branding-api-response'; -import {RecursivePartial} from './common'; -import {TextPreference} from '../i18n/screens/model'; - -/** - * Interface for the text in the customization object. - */ -export type BrandingPreferenceText = Record>; - -export type BrandingPreferenceTextProps = RecursivePartial; - -interface BrandingPreferenceWithText extends BrandingPreference { - text?: BrandingPreferenceText; -} - -/** - * Interface for the branding object. - */ -export interface Branding { - locale: string; - /** - * Requested resource name. - */ - name: string; - /** - * Preference object. - */ - preference: BrandingPreferenceWithText; - /** - * Preference type. - */ - type: BrandingPreferenceTypes; -} - -/** - * Type for the branding props. - */ -export type BrandingProps = RecursivePartial; diff --git a/packages/__legacy__/core/src/models/common.ts b/packages/__legacy__/core/src/models/common.ts deleted file mode 100644 index df92041c..00000000 --- a/packages/__legacy__/core/src/models/common.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/** - * Makes all properties optional in T including nested properties - */ -export type RecursivePartial = { - [P in keyof T]?: T[P] extends (infer U)[] - ? RecursivePartial[] - : T[P] extends object - ? RecursivePartial - : T[P]; -}; diff --git a/packages/__legacy__/core/src/models/element-styles.ts b/packages/__legacy__/core/src/models/element-styles.ts deleted file mode 100644 index 3c86e8ae..00000000 --- a/packages/__legacy__/core/src/models/element-styles.ts +++ /dev/null @@ -1,71 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import type * as CSS from 'csstype'; - -/** - * Interface for the Primary Button Style Attributes.. - */ -export interface ButtonStyleAttributes { - /** - * Button Background. - */ - background: BackgroundStyleAttributes; - /** - * Button Border. - */ - border: Pick; - /** - * Button Text. - */ - font: FontStyleAttributes; -} - -/** - * Color styles interface. - * @remarks Extend with contrast, alpha. whenever necessary. - */ -export type ColorStyleAttributes = Pick; - -/** - * Font styles interface. - * @remarks Extend with font size, weight. whenever necessary. - */ -export type FontStyleAttributes = ColorStyleAttributes; - -/** - * Border styles interface. - * @remarks Extend with borderStyle, etc. whenever necessary. - */ -export type BorderStyleAttributes = Pick & - Pick & - Pick; - -/** - * Background styles interface. - * @remarks Extend with backgroundImage, backgroundSize, etc. whenever necessary. - */ -export type BackgroundStyleAttributes = Pick; - -/** - * Generic interface for element states. - * @remarks Extend with hover, active & other possible element states. - */ -export interface ElementState { - base: T; -} diff --git a/packages/__legacy__/core/src/models/get-branding-props.ts b/packages/__legacy__/core/src/models/get-branding-props.ts deleted file mode 100644 index 0ebe3b2a..00000000 --- a/packages/__legacy__/core/src/models/get-branding-props.ts +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {Branding, BrandingProps} from './branding'; - -/** - * Interface for the getBranding function props. - */ -interface GetBrandingProps { - /** - * Customization prop passed to the component/provider. - */ - branding?: BrandingProps; - /** - * Merged customization object. - */ - merged?: Branding; -} - -export default GetBrandingProps; diff --git a/packages/__legacy__/core/src/models/get-localization-props.ts b/packages/__legacy__/core/src/models/get-localization-props.ts deleted file mode 100644 index 7eee4d56..00000000 --- a/packages/__legacy__/core/src/models/get-localization-props.ts +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {BrandingPreferenceTextProps} from './branding'; -import {ScreenType} from './screen-type'; - -/** - * Interface for getLocalization function props. - */ -interface GetLocalizationProps { - /** - * Customiztion prop passed to the component - */ - componentTextOverrides?: BrandingPreferenceTextProps; - /** - * Locale to filter the retrieval of localization. - */ - locale: string; - /** - * Customization prop passed to the provider - */ - providerTextOverrides?: BrandingPreferenceTextProps; - /** - * Screen to filter the retrieval of localization. - */ - screen: ScreenType; -} - -export default GetLocalizationProps; diff --git a/packages/__legacy__/core/src/models/me-api-response.ts b/packages/__legacy__/core/src/models/me-api-response.ts deleted file mode 100644 index 8b9fe3e7..00000000 --- a/packages/__legacy__/core/src/models/me-api-response.ts +++ /dev/null @@ -1,63 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/** - * The interface for the response from the "me" API endpoint. - */ -export interface MeAPIResponse { - /** - * The user's email addresses. - */ - emails: string[]; - /** - * The user's id. - */ - id: string; - /** - * The user's names. - */ - name: Name; - /** - * When signed in using a social login, the photos field will be populated instead of profile URL. - */ - photos?: Photos[]; - /** - * The user's profile URL. - */ - profileUrl: string; - /** - * The user's username. - */ - userName: string; -} - -/** - * The interface for the name field in the "me" API response. - */ -export interface Name { - familyName?: string; - givenName?: string; -} - -/** - * The interface for the photos field in the "me" API response. - */ -export interface Photos { - type: string; - value: string; -} diff --git a/packages/__legacy__/core/src/models/public-models.ts b/packages/__legacy__/core/src/models/public-models.ts deleted file mode 100644 index 0e6b3dfa..00000000 --- a/packages/__legacy__/core/src/models/public-models.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -export * from './auth-api-request'; -export * from './auth-api-response'; -export * from './auth-config'; -export * from './branding-api-response'; -export * from './branding'; -export * from './me-api-response'; -export * from './screen-type'; diff --git a/packages/__legacy__/core/src/models/screen-type.ts b/packages/__legacy__/core/src/models/screen-type.ts deleted file mode 100644 index 078ee062..00000000 --- a/packages/__legacy__/core/src/models/screen-type.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/** - * Enum to store screen types. - */ -export enum ScreenType { - Common = 'common', - EmailOTP = 'emailOtp', - Login = 'login', - SMSOTP = 'smsOtp', - TOTP = 'totp', -} diff --git a/packages/__legacy__/core/tsconfig.eslint.json b/packages/__legacy__/core/tsconfig.eslint.json deleted file mode 100644 index 2211bcaa..00000000 --- a/packages/__legacy__/core/tsconfig.eslint.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": "./tsconfig.json", - "include": [ - "**/.*.js", - "**/.*.cjs", - "**/.*.ts", - "**/*.js", - "**/*.cjs", - "**/*.ts", - ] - } diff --git a/packages/__legacy__/core/tsconfig.json b/packages/__legacy__/core/tsconfig.json deleted file mode 100644 index 62ff812c..00000000 --- a/packages/__legacy__/core/tsconfig.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "compileOnSave": false, - "compilerOptions": { - "declaration": false, - "moduleResolution": "node", - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "importHelpers": true, - "target": "es2015", - "module": "esnext", - "lib": ["es2017", "dom"], - "skipLibCheck": true, - "skipDefaultLibCheck": true, - "jsx": "react-jsx", - "allowJs": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "forceConsistentCasingInFileNames": true, - "strict": false, - "noImplicitOverride": true, - "noPropertyAccessFromIndexSignature": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - "resolveJsonModule": true, - "types": ["node", "jest"], - }, - "exclude": ["node_modules", "tmp"], - "files": [], - "include": [], - "references": [ - { - "path": "./tsconfig.lib.json" - } - ] -} diff --git a/packages/__legacy__/core/tsconfig.lib.json b/packages/__legacy__/core/tsconfig.lib.json deleted file mode 100644 index 003eb30c..00000000 --- a/packages/__legacy__/core/tsconfig.lib.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "declaration": true, - "outDir": "dist", - "declarationDir": "types", - "types": ["node"], - "emitDeclarationOnly": true - }, - "files": [], - "exclude": [ - "test-configs", - "jest.config.ts", - "**/*.spec.ts", - "**/*.test.ts", - "**/*.spec.tsx", - "**/*.test.tsx", - "**/*.spec.js", - "**/*.test.js", - "**/*.spec.jsx", - "**/*.test.jsx", - "dist" - ], - "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx", "rollup.config.cjs"] - } diff --git a/packages/__legacy__/react/.editorconfig b/packages/__legacy__/react/.editorconfig deleted file mode 100644 index 54a16111..00000000 --- a/packages/__legacy__/react/.editorconfig +++ /dev/null @@ -1 +0,0 @@ -../../.editorconfig diff --git a/packages/__legacy__/react/.eslintignore b/packages/__legacy__/react/.eslintignore deleted file mode 100644 index c925c21d..00000000 --- a/packages/__legacy__/react/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -/dist -/node_modules diff --git a/packages/__legacy__/react/.eslintrc.cjs b/packages/__legacy__/react/.eslintrc.cjs deleted file mode 100644 index d8644f33..00000000 --- a/packages/__legacy__/react/.eslintrc.cjs +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -const path = require('path'); - -module.exports = { - extends: [ - 'plugin:@wso2/typescript', - 'plugin:@wso2/react', - 'plugin:@wso2/strict', - 'plugin:@wso2/internal', - 'plugin:@wso2/prettier', - 'plugin:@wso2/jest', - 'plugin:react/jsx-runtime', - ], - parserOptions: { - project: [path.resolve(__dirname, 'tsconfig.lib.json'), path.resolve(__dirname, 'tsconfig.eslint.json')], - }, - plugins: ['@wso2'], - rules: { - // In `SignIn.tsx` we are using non dot notation to access the object properties. - // TODO: Refactor the code to use dot notation. - '@typescript-eslint/dot-notation': 'off', - // We are throwing custom exceptions in the codebase. - // Hence, turning this off to avoid linting errors. (https://eslint.org/docs/latest/rules/no-throw-literal#known-limitations) - '@typescript-eslint/no-throw-literal': 'off', - // TODO: Fix this and enable. - // Occurred while linting /packages/react/src/utils/crypto-utils.ts:33 - // Rule: "@typescript-eslint/no-useless-constructor" - '@typescript-eslint/no-useless-constructor': 'off', - 'class-methods-use-this': 'off', - }, -}; diff --git a/packages/__legacy__/react/.gitignore b/packages/__legacy__/react/.gitignore deleted file mode 100644 index f20a8a8c..00000000 --- a/packages/__legacy__/react/.gitignore +++ /dev/null @@ -1,134 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* -.pnpm-debug.log* - -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# Snowpack dependency directory (https://snowpack.dev/) -web_modules/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional stylelint cache -.stylelintcache - -# Microbundle cache -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variable files -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - -# parcel-bundler cache (https://parceljs.org/) -.cache -.parcel-cache - -# Next.js build output -.next -out - -# Nuxt.js build / generate output -.nuxt -dist - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and not Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# vuepress v2.x temp and cache directory -.temp -.cache - -# Docusaurus cache and generated files -.docusaurus - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# TernJS port file -.tern-port - -# Stores VSCode versions used for testing VSCode extensions -.vscode-test - -# yarn v2 -.yarn/cache -.yarn/unplugged -.yarn/build-state.yml -.yarn/install-state.gz -.pnp.* - -# misc -.DS_Store -*.pem diff --git a/packages/__legacy__/react/.prettierignore b/packages/__legacy__/react/.prettierignore deleted file mode 100644 index c925c21d..00000000 --- a/packages/__legacy__/react/.prettierignore +++ /dev/null @@ -1,2 +0,0 @@ -/dist -/node_modules diff --git a/packages/__legacy__/react/CHANGELOG.md b/packages/__legacy__/react/CHANGELOG.md deleted file mode 100644 index 1d6fd181..00000000 --- a/packages/__legacy__/react/CHANGELOG.md +++ /dev/null @@ -1,95 +0,0 @@ -# @asgardeo/react - -## 0.2.4 - -### Patch Changes - -- [#44](https://github.com/asgardeo/javascript/pull/44) - [`355234c`](https://github.com/asgardeo/javascript/commit/355234c5da7f873675f0dde8ac34fe18946c85c5) Thanks - [@dasuni-30](https://github.com/dasuni-30)! - Update package.json to support ESM modules - -- [#48](https://github.com/asgardeo/javascript/pull/48) - [`f0bbb30`](https://github.com/asgardeo/javascript/commit/f0bbb300f5ca7e27bab3ce90cb1bae9dc550aa98) Thanks - [@dasuni-30](https://github.com/dasuni-30)! - Fix EsLint issues in the PR build failure - -- Updated dependencies - [[`3d3af92`](https://github.com/asgardeo/javascript/commit/3d3af92338dec2d4b8aff09f9ba9da7d68781108)]: - - @asgardeo/js@0.1.3 - -## 0.2.3 - -### Patch Changes - -- [#38](https://github.com/asgardeo/javascript/pull/38) - [`9d577ed`](https://github.com/asgardeo/javascript/commit/9d577ed83b3ba138b884d2a2aa0f51f4dc2d7d79) Thanks - [@DonOmalVindula](https://github.com/DonOmalVindula)! - Fix loading state issues in the React SDK - -## 0.2.2 - -### Patch Changes - -- [#36](https://github.com/asgardeo/javascript/pull/36) - [`39b7402`](https://github.com/asgardeo/javascript/commit/39b74025195a74fde8d7a723855c3b3d7100bb9f) Thanks - [@DonOmalVindula](https://github.com/DonOmalVindula)! - Expose global loading state from the react SDK - -## 0.2.1 - -### Patch Changes - -- [#34](https://github.com/asgardeo/javascript/pull/34) - [`4344408`](https://github.com/asgardeo/javascript/commit/43444087466db1c12fdb97e283192d5e2ccc00f1) Thanks - [@DonOmalVindula](https://github.com/DonOmalVindula)! - Improvements to Identifier first authenticator in the React - SDK - -- Updated dependencies - [[`4344408`](https://github.com/asgardeo/javascript/commit/43444087466db1c12fdb97e283192d5e2ccc00f1)]: - - @asgardeo/js@0.1.2 - -## 0.2.0 - -### Minor Changes - -- [#31](https://github.com/asgardeo/javascript/pull/31) - [`084d8e9`](https://github.com/asgardeo/javascript/commit/084d8e9cc66a1b36033f82bf7659b9c3a1ac3627) Thanks - [@DonOmalVindula](https://github.com/DonOmalVindula)! - Implement support for identifier first authenticator - -## 0.1.1 - -### Patch Changes - -- [#20](https://github.com/asgardeo/javascript/pull/20) - [`8eef064`](https://github.com/asgardeo/javascript/commit/8eef0641c01de02aa7c4a6d75f059136fcfdb489) Thanks - [@movinsilva](https://github.com/movinsilva)! - Add readme files and update build scripts - -- Updated dependencies - [[`8eef064`](https://github.com/asgardeo/javascript/commit/8eef0641c01de02aa7c4a6d75f059136fcfdb489)]: - - @asgardeo/js@0.1.1 - -## 0.1.0 - -### Minor Changes - -- [#17](https://github.com/asgardeo/javascript/pull/17) - [`0be3e48`](https://github.com/asgardeo/javascript/commit/0be3e48a2896e10eea2f4c74ccc24eb1ddab09bd) Thanks - [@movinsilva](https://github.com/movinsilva)! - Initial release of @asgardeo/js and @asgardeo/react - - - Drop in components - - - SignIn - - SignOut - - SignedIn - - SignedOut - - - Custom hooks - - - useAuthentication - - useOn - - - api function calls in js - - branding and i18n support - -### Patch Changes - -- Updated dependencies - [[`0be3e48`](https://github.com/asgardeo/javascript/commit/0be3e48a2896e10eea2f4c74ccc24eb1ddab09bd)]: - - @asgardeo/js@0.1.0 diff --git a/packages/__legacy__/react/LICENSE b/packages/__legacy__/react/LICENSE deleted file mode 100644 index 261eeb9e..00000000 --- a/packages/__legacy__/react/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/packages/__legacy__/react/README.md b/packages/__legacy__/react/README.md deleted file mode 100644 index 30b22536..00000000 --- a/packages/__legacy__/react/README.md +++ /dev/null @@ -1,27 +0,0 @@ -

-

@asgardeo/react

-

-

React Wrapper to build customizable login UIs for Asgardeo or Identity Server

-
- npm (scoped) - npm - License -
- -## Installation - -```bash -# With npm -npm install @asgardeo/react - -# With pnpm -pnpm add @asgardeo/react - -# With yarn -yarn add @asgardeo/react -``` - -## License - -Licenses this source under the Apache License, Version 2.0 [LICENSE](./LICENSE), You may not use this file except in -compliance with the License. diff --git a/packages/__legacy__/react/declarations.d.ts b/packages/__legacy__/react/declarations.d.ts deleted file mode 100644 index 875a50f8..00000000 --- a/packages/__legacy__/react/declarations.d.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -declare module '*.svg' { - const content: string; - export default content; -} diff --git a/packages/__legacy__/react/package.json b/packages/__legacy__/react/package.json deleted file mode 100644 index bfdc63b9..00000000 --- a/packages/__legacy__/react/package.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "private": true, - "name": "@asgardeo/react-legacy", - "version": "0.2.4", - "description": "React Wrapper to build customizable login UIs for Asgardeo or Identity Server", - "main": "dist/esm/index.js", - "module": "dist/esm/index.js", - "types": "dist/index.d.ts", - "type": "module", - "author": "WSO2", - "license": "Apache-2.0", - "files": [ - "dist", - "LICENSE", - "README.md" - ], - "homepage": "https://github.com/asgardeo/javascript/tree/main/packages/react#readme", - "bugs": { - "url": "https://github.com/asgardeo/javascript/issues" - }, - "repository": { - "type": "git", - "url": "https://github.com/asgardeo/javascript", - "directory": "packages/react" - }, - "keywords": [ - "asgardeo", - "identity", - "ui", - "react", - "login", - "customize" - ], - "scripts": { - "build": "rollup -c", - "lint": "eslint .", - "lint:fix": "eslint . --fix" - }, - "publishConfig": { - "access": "restricted" - }, - "devDependencies": { - "@rollup/plugin-commonjs": "25.0.7", - "@rollup/plugin-image": "3.0.3", - "@rollup/plugin-node-resolve": "15.2.3", - "@rollup/plugin-typescript": "11.1.6", - "@types/node": "20.12.7", - "@types/randombytes": "2.0.3", - "@types/react": "18.2.79", - "@types/react-dom": "18.2.25", - "@wso2/eslint-plugin": "catalog:", - "@wso2/prettier-config": "catalog:", - "@wso2/stylelint-config": "catalog:", - "eslint": "8.57.0", - "prettier": "3.2.5", - "react": "18.2.0", - "react-dom": "18.2.0", - "rollup": "4.17.2", - "rollup-plugin-dts": "6.1.0", - "rollup-plugin-polyfill-node": "0.13.0", - "rollup-plugin-styles": "4.0.0", - "sass": "1.75.0", - "stylelint": "15.1.0", - "tslib": "2.6.2", - "typescript": "5.1.6" - }, - "dependencies": { - "@asgardeo/js": "0.1.3", - "@oxygen-ui/react": "1.11.0", - "base64url": "3.0.1", - "buffer": "6.0.3", - "clsx": "2.1.1", - "fast-sha256": "1.3.0", - "jose": "5.3.0", - "randombytes": "2.1.0" - }, - "peerDependencies": { - "react": ">=18.3.1", - "react-dom": ">=18.3.1" - } -} diff --git a/packages/__legacy__/react/prettier.config.cjs b/packages/__legacy__/react/prettier.config.cjs deleted file mode 100644 index c07f730d..00000000 --- a/packages/__legacy__/react/prettier.config.cjs +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -module.exports = require('@wso2/prettier-config'); diff --git a/packages/__legacy__/react/rollup.config.cjs b/packages/__legacy__/react/rollup.config.cjs deleted file mode 100644 index 5f03aaa1..00000000 --- a/packages/__legacy__/react/rollup.config.cjs +++ /dev/null @@ -1,73 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -const commonjs = require('@rollup/plugin-commonjs'); -const image = require('@rollup/plugin-image'); -const nodeResolve = require('@rollup/plugin-node-resolve'); -const typescript = require('@rollup/plugin-typescript'); -const dts = require('rollup-plugin-dts'); -const nodePolyfills = require('rollup-plugin-polyfill-node'); -const styles = require('rollup-plugin-styles'); - -const pkg = require('./package.json'); - -module.exports = [ - { - cache: false, - external: ['react', 'react-dom'], - input: 'src/index.ts', - onwarn(warning, warn) { - // Suppress this error message... there are hundreds of them - if (warning.code === 'MODULE_LEVEL_DIRECTIVE') return; - // Use default for everything else - warn(warning); - }, - output: [ - { - file: pkg.main, - format: 'cjs', - sourcemap: true, - }, - { - file: pkg.module, - format: 'esm', - sourcemap: true, - }, - ], - plugins: [ - nodePolyfills(), - nodeResolve({ - browser: true, - preferBuiltins: true, - }), - commonjs(), - typescript({tsconfig: './tsconfig.lib.json'}), - styles({ - mode: 'inject', - }), - image(), - ], - }, - { - cache: false, - external: [/\.(sass|scss|css)$/] /* ignore style files */, - input: 'dist/esm/types/index.d.ts', - output: [{file: 'dist/index.d.ts', format: 'esm'}], - plugins: [dts.default()], - }, -]; diff --git a/packages/__legacy__/react/src/assets/building-icon.svg b/packages/__legacy__/react/src/assets/building-icon.svg deleted file mode 100644 index fc8ff94a..00000000 --- a/packages/__legacy__/react/src/assets/building-icon.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - diff --git a/packages/__legacy__/react/src/assets/email-solid.svg b/packages/__legacy__/react/src/assets/email-solid.svg deleted file mode 100644 index 248a0e9f..00000000 --- a/packages/__legacy__/react/src/assets/email-solid.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - diff --git a/packages/__legacy__/react/src/assets/sms-icon.svg b/packages/__legacy__/react/src/assets/sms-icon.svg deleted file mode 100644 index 7cbf9f8f..00000000 --- a/packages/__legacy__/react/src/assets/sms-icon.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/packages/__legacy__/react/src/assets/social-logins/facebook.svg b/packages/__legacy__/react/src/assets/social-logins/facebook.svg deleted file mode 100644 index b217c013..00000000 --- a/packages/__legacy__/react/src/assets/social-logins/facebook.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - diff --git a/packages/__legacy__/react/src/assets/social-logins/github.svg b/packages/__legacy__/react/src/assets/social-logins/github.svg deleted file mode 100644 index e1b19871..00000000 --- a/packages/__legacy__/react/src/assets/social-logins/github.svg +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/packages/__legacy__/react/src/assets/social-logins/google.svg b/packages/__legacy__/react/src/assets/social-logins/google.svg deleted file mode 100644 index 6375b41b..00000000 --- a/packages/__legacy__/react/src/assets/social-logins/google.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - diff --git a/packages/__legacy__/react/src/assets/social-logins/microsoft.svg b/packages/__legacy__/react/src/assets/social-logins/microsoft.svg deleted file mode 100644 index 431b21e9..00000000 --- a/packages/__legacy__/react/src/assets/social-logins/microsoft.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - diff --git a/packages/__legacy__/react/src/assets/totp.svg b/packages/__legacy__/react/src/assets/totp.svg deleted file mode 100644 index dea82ba8..00000000 --- a/packages/__legacy__/react/src/assets/totp.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - diff --git a/packages/__legacy__/react/src/components/SignIn/SignIn.tsx b/packages/__legacy__/react/src/components/SignIn/SignIn.tsx deleted file mode 100644 index 9500ccaf..00000000 --- a/packages/__legacy__/react/src/components/SignIn/SignIn.tsx +++ /dev/null @@ -1,408 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import { - AsgardeoUIException, - AuthApiResponse, - AuthClient, - Authenticator, - Branding, - FlowStatus, - Metadata, - PromptType, - ScreenType, - UIAuthClient, - authenticate, - authorize, - getBranding, - keys, -} from '@asgardeo/js'; -import {CircularProgress, ThemeProvider} from '@oxygen-ui/react'; -import {FC, ReactElement, useContext, useEffect, useState} from 'react'; -import BasicAuth from './fragments/BasicAuth'; -import EmailOtp from './fragments/EmailOtp'; -import IdentifierFirst from './fragments/IdentifierFirst'; -import LoginOptionsBox from './fragments/LoginOptionsBox'; -import SmsOtp from './fragments/SmsOtp'; -import Totp from './fragments/Totp'; -import AsgardeoContext from '../../contexts/asgardeo-context'; -import BrandingPreferenceContext from '../../contexts/branding-preference-context'; -import useAuthentication from '../../hooks/use-authentication'; -import {useConfig} from '../../hooks/use-config'; -import useTranslations from '../../hooks/use-translations'; -import AuthContext from '../../models/auth-context'; -import {AlertType, SignInProps} from '../../models/sign-in'; -import {SignIn as UISignIn} from '../../oxygen-ui-react-auth-components'; -import generateThemeSignIn from '../../theme/generate-theme-sign-in'; -import SPACryptoUtils from '../../utils/crypto-utils'; -import './sign-in.scss'; - -/** - * This component provides the sign-in functionality. - * - * @param {SignInProps} props - Props injected to the component. - * @param {BrandingProps} props.brandingProps - Branding related props. - * @param {boolean} props.showSignUp - Show sign-up. - * - * @returns {ReactElement} - React element. - */ -const SignIn: FC = (props: SignInProps): ReactElement => { - const { - basicAuthChildren, - brandingProps, - emailOtpChildren, - identifierFirstChildren, - showFooter = true, - showLogo = true, - showSignUp, - smsOtpChildren, - totpChildren, - } = props; - - const [alert, setAlert] = useState(); - const [showSelfSignUp, setShowSelfSignUp] = useState(showSignUp); - const [componentBranding, setComponentBranding] = useState(); - - const {isSignedIn} = useAuthentication(); - const {config} = useConfig(); - - const authContext: AuthContext | undefined = useContext(AsgardeoContext); - const {setAuthResponse, setIsComponentLoading} = authContext; - const brandingPreference: Branding = useContext(BrandingPreferenceContext); - - const {isLoading, t} = useTranslations({ - componentLocaleOverride: brandingProps?.locale, - componentTextOverrides: brandingProps?.preference?.text, - screen: ScreenType.Common, - }); - - useEffect(() => { - getBranding({branding: brandingProps, merged: brandingPreference}).then((response: Branding) => { - setComponentBranding(response); - }); - }, [brandingPreference, brandingProps]); - - useEffect(() => { - /** - * Calling authorize function and initiating the api based authentication flow - */ - authorize() - .then((response: AuthApiResponse) => { - setAuthResponse(response); - }) - .catch((error: Error) => { - setAlert({alertType: {error: true}, key: keys.common.error}); - throw new AsgardeoUIException('REACT_UI-SIGN_IN-SI-SE01', 'Authorization failed', error.stack); - }) - .finally(() => { - setIsComponentLoading(false); - }); - }, [setAuthResponse, setIsComponentLoading]); - - /** - * Handles the generalized authentication process. - * @param {string} authenticatorId - Authenticator ID. - * @param {object} [authParams] - Authentication parameters. - */ - const handleAuthenticate = async (authenticatorId: string, authParams?: {[key: string]: string}): Promise => { - setAlert(undefined); - - if (authContext?.authResponse === undefined) { - throw new AsgardeoUIException('REACT_UI-SIGN_IN-HA-IV02', 'Auth response is undefined.'); - } - - authContext?.setIsAuthLoading(true); - - const resp: AuthApiResponse = await authenticate({ - flowId: authContext?.authResponse.flowId, - selectedAuthenticator: { - authenticatorId, - params: authParams, - }, - }).catch((authnError: Error) => { - setAlert({alertType: {error: true}, key: keys.common.error}); - authContext?.setIsAuthLoading(false); - throw new AsgardeoUIException('REACT_UI-SIGN_IN-HA-SE03', 'Authentication failed.', authnError.stack); - }); - - if (!authParams) { - const metaData: Metadata = resp.nextStep?.authenticators[0]?.metadata; - if (metaData.promptType === PromptType.RedirectionPromt) { - /** - * Open a popup window to handle redirection prompts - */ - window.open( - metaData.additionalData?.redirectUrl, - resp.nextStep.authenticators[0].authenticator, - 'width=500,height=600', - ); - - /** - * Add an event listener to the window to capture the message from the popup - */ - window.addEventListener('message', function messageEventHandler(event: MessageEvent) { - /** - * Check the origin of the message to ensure it's from the popup window - */ - if (event.origin !== config.afterSignInUrl) return; - - const {code, state} = event.data; - - if (code && state) { - handleAuthenticate(resp?.nextStep?.authenticators[0]?.authenticatorId, {code, state}); - } - - /** - * Remove the event listener - */ - window.removeEventListener('message', messageEventHandler); - }); - } else if (metaData.promptType === PromptType.UserPrompt) { - authContext?.setAuthResponse(resp); - } - } else if (resp.flowStatus === FlowStatus.SuccessCompleted && resp.authData) { - /** - * when the authentication is successful, generate the token - */ - authContext?.setAuthResponse(resp); - - const authInstance: UIAuthClient = AuthClient.getInstance(); - const state: string = (await authInstance.getStorageManager().getTemporaryDataParameter('state')).toString(); - - await authInstance.requestAccessToken(resp.authData.code, resp.authData.session_state, state); - - authContext?.setAuthentication(); - } else if (resp.flowStatus === FlowStatus.FailIncomplete) { - authContext?.setAuthResponse({ - ...resp, - nextStep: authContext?.authResponse.nextStep, - }); - - setAlert({alertType: {error: true}, key: keys.common.error}); - } else { - authContext?.setAuthResponse(resp); - setShowSelfSignUp(false); - } - - authContext?.setIsAuthLoading(false); - }; - - const renderLoginOptions = (authenticators: Authenticator[]): ReactElement[] => { - const LoginOptions: ReactElement[] = []; - - authenticators.forEach((authenticator: Authenticator) => { - const displayName: string = authenticator.idp === 'LOCAL' ? authenticator.authenticator : authenticator.idp; - LoginOptions.push( - => handleAuthenticate(authenticator.authenticatorId)} - key={authenticator.authenticatorId} - />, - ); - }); - - return LoginOptions; - }; - - const renderSignIn = (): ReactElement => { - const authenticators: Authenticator[] = authContext?.authResponse?.nextStep?.authenticators; - - if (authenticators) { - const usernamePasswordAuthenticator: Authenticator = authenticators.find( - (authenticator: Authenticator) => authenticator.authenticator === 'Username & Password', - ); - - if (usernamePasswordAuthenticator) { - return ( - auth.authenticatorId !== usernamePasswordAuthenticator.authenticatorId, - ), - )} - > - {basicAuthChildren} - - ); - } - - const identifierFirstAuthenticator: Authenticator = authenticators.find( - (authenticator: Authenticator) => authenticator.authenticator === 'Identifier First', - ); - - if (identifierFirstAuthenticator) { - return ( - auth.authenticatorId !== identifierFirstAuthenticator.authenticatorId, - ), - )} - > - {identifierFirstChildren} - - ); - } - - if (authenticators.length === 1) { - if (authenticators[0].authenticator === 'TOTP') { - return ( - - {totpChildren} - - ); - } - if ( - // TODO: change after api based auth gets fixed - new SPACryptoUtils() - .base64URLDecode(authContext?.authResponse.nextStep.authenticators[0].authenticatorId) - .split(':')[0] === 'email-otp-authenticator' - ) { - return ( - - {emailOtpChildren} - - ); - } - - if ( - // TODO: change after api based auth gets fixed - new SPACryptoUtils() - .base64URLDecode(authContext?.authResponse.nextStep.authenticators[0].authenticatorId) - .split(':')[0] === 'sms-otp-authenticator' - ) { - return ( - - {smsOtpChildren} - - ); - } - } - - /** - * If there are multiple authenticators without Username and password, render the multiple options screen - */ - if (authenticators.length > 1) { - return ( - - - {t(keys.common.common.title)} - - {!usernamePasswordAuthenticator && alert && ( - - {t(alert.key)} - - )} - {renderLoginOptions(authenticators)} - - ); - } - } - return null; - }; - - /** - * Renders the circular progress component while the component or text is loading. - */ - if (authContext?.isComponentLoading || isLoading || authContext?.isBrandingLoading) { - return ( -
- -
- ); - } - - const imgUrl: string = brandingPreference?.preference?.theme?.LIGHT?.images?.logo?.imgURL; - let copyrightText: string = t(keys.common.copyright); - const DEFAULT_LOCALE: string = 'en-US'; - - if (showFooter && copyrightText.includes('{{currentYear}}')) { - copyrightText = copyrightText.replace('{{currentYear}}', new Date().getFullYear().toString()); - } - - return ( - - - {showLogo && !(isLoading || authContext?.isComponentLoading) && ( - - )} - {authContext?.authResponse?.flowStatus !== FlowStatus.SuccessCompleted && !isSignedIn && ( - <> - {renderSignIn()} - - {showFooter && !(isLoading || authContext?.isComponentLoading) && ( - - {t(keys.common.privacy.policy)} - - ), - }, - { - children: ( - - {t(keys.common.terms.of.service)} - - ), - }, - {children: {componentBranding?.locale ?? DEFAULT_LOCALE}}, - ]} - /> - )} - - )} - {(authContext?.authResponse?.flowStatus === FlowStatus.SuccessCompleted || isSignedIn) && ( -
Successfully Authenticated
- )} -
-
- ); -}; - -export default SignIn; diff --git a/packages/__legacy__/react/src/components/SignIn/fragments/BasicAuth.tsx b/packages/__legacy__/react/src/components/SignIn/fragments/BasicAuth.tsx deleted file mode 100644 index bc1baadf..00000000 --- a/packages/__legacy__/react/src/components/SignIn/fragments/BasicAuth.tsx +++ /dev/null @@ -1,146 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {ScreenType, keys} from '@asgardeo/js'; -import {CircularProgress, Grid, Skeleton} from '@oxygen-ui/react'; -import {PropsWithChildren, ReactElement, useContext, useState} from 'react'; -import AsgardeoContext from '../../../contexts/asgardeo-context'; -import useTranslations from '../../../hooks/use-translations'; -import BasicAuthProps from '../../../models/basic-auth-props'; -import {SignIn as UISignIn} from '../../../oxygen-ui-react-auth-components'; -import './basic-auth.scss'; - -/** - * This component renders the basic authentication form. - * - * @param {BasicAuthProps} props - Props injected to the basic authentication component. - * @param {BrandingProps} props.brandingProps - Branding props. - * @param {Function} props.handleAuthenticate - Callback to handle authentication. - * @param {Authenticator} props.authenticator - Authenticator. - * @param {AlertType} props.alert - Alert type. - * @param {ReactElement[]} props.renderLoginOptions - Login options. - * @param {boolean} props.showSelfSignUp - Show self sign up. - * - * @return {ReactElement} - */ -const BasicAuth = ({ - handleAuthenticate, - authenticator, - children, - alert, - brandingProps, - showSelfSignUp, - renderLoginOptions, -}: PropsWithChildren): ReactElement => { - const [password, setPassword] = useState(''); - - const {isAuthLoading, username, setUsername} = useContext(AsgardeoContext); - - const {t, isLoading} = useTranslations({ - componentLocaleOverride: brandingProps?.locale, - componentTextOverrides: brandingProps?.preference?.text, - screen: ScreenType.Login, - }); - - if (isLoading) { - return ( - - - - - - - - - ); - } - - return ( - - - {t(keys.login.login.heading)} - - - {alert && ( - - {t(alert.key)} - - )} - - ): void => setUsername(e.target.value)} - /> - - ): void => setPassword(e.target.value)} - /> - - {children} - - { - handleAuthenticate(authenticator.authenticatorId, { - password, - username, - }); - }} - > - {t(keys.login.button)} - - - {isAuthLoading && ( -
- -
- )} - - {showSelfSignUp && ( - - {t(keys.common.prefix.register)} - - {t(keys.common.register)} - - - )} - - {renderLoginOptions.length !== 0 && {t(keys.common.or)} } - - {renderLoginOptions} -
- ); -}; - -export default BasicAuth; diff --git a/packages/__legacy__/react/src/components/SignIn/fragments/EmailOtp.tsx b/packages/__legacy__/react/src/components/SignIn/fragments/EmailOtp.tsx deleted file mode 100644 index 11396114..00000000 --- a/packages/__legacy__/react/src/components/SignIn/fragments/EmailOtp.tsx +++ /dev/null @@ -1,138 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {ScreenType, keys} from '@asgardeo/js'; -import {CircularProgress, Skeleton} from '@oxygen-ui/react'; -import {PropsWithChildren, ReactElement, useContext, useState} from 'react'; -import AsgardeoContext from '../../../contexts/asgardeo-context'; -import useTranslations from '../../../hooks/use-translations'; -import EmailOtpProps from '../../../models/email-otp-props'; -import {SignIn as UISignIn} from '../../../oxygen-ui-react-auth-components'; -import './email-otp.scss'; - -/** - * Email OTP component. - * - * @param {EmailOtpProps} props - Props injected to the component. - * @param {BrandingProps} props.brandingProps - Branding props. - * @param {Authenticator} props.authenticator - Authenticator. - * @param {Function} props.handleAuthenticate - Callback to handle authentication. - * @param {AlertType} props.alert - Alert type. - * @return {ReactElement} - */ -const EmailOtp = ({ - alert, - brandingProps, - authenticator, - children, - handleAuthenticate, -}: PropsWithChildren): ReactElement => { - const [inputValue, setInputValue] = useState(); - const [isContinueLoading, setIsContinueLoading] = useState(false); - const [isResendLoading, setIsResendLoading] = useState(false); - - const {isAuthLoading} = useContext(AsgardeoContext); - - const param: string = authenticator?.metadata?.params[0]?.param; - /** - * Temporary i18n mapping. - * TODO: Remove once the i18n keys are implemented correctly in the API response. - */ - const i18nMapping: {[key: string]: {heading: string; inputLabel: string; placeholder?: string}} = { - OTPCode: {heading: keys.emailOtp.email.heading, inputLabel: keys.emailOtp.enter.verification.code.got.by.device}, - username: { - heading: keys.emailOtp.email.otp.heading, - inputLabel: keys.emailOtp.username.label, - placeholder: keys.emailOtp.username.placeholder, - }, - }; - - const {isLoading, t} = useTranslations({ - componentLocaleOverride: brandingProps?.locale, - componentTextOverrides: brandingProps?.preference?.text, - screen: ScreenType.EmailOTP, - }); - - if (isLoading) { - return ( - - - - - - - ); - } - - return ( - - {t(i18nMapping[param].heading)} - - {alert && {alert.key}} - - ): void => setInputValue(e.target.value)} - /> - - {children} - - { - handleAuthenticate(authenticator.authenticatorId, {[authenticator.requiredParams[0]]: inputValue}); - setInputValue(''); - setIsResendLoading(false); - setIsContinueLoading(true); - }} - > - {t(keys.emailOtp.continue)} - {isAuthLoading && isContinueLoading && } - - - {param === 'OTPCode' && ( - { - handleAuthenticate(authenticator.authenticatorId); - setInputValue(''); - setIsContinueLoading(false); - setIsResendLoading(true); - }} - > - {t(keys.emailOtp.resend.code)} - {isAuthLoading && isResendLoading && } - - )} - - ); -}; - -export default EmailOtp; diff --git a/packages/__legacy__/react/src/components/SignIn/fragments/IdentifierFirst.tsx b/packages/__legacy__/react/src/components/SignIn/fragments/IdentifierFirst.tsx deleted file mode 100644 index edf7388f..00000000 --- a/packages/__legacy__/react/src/components/SignIn/fragments/IdentifierFirst.tsx +++ /dev/null @@ -1,132 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {ScreenType, keys} from '@asgardeo/js'; -import {CircularProgress, Grid, Skeleton} from '@oxygen-ui/react'; -import {PropsWithChildren, ReactElement, useContext} from 'react'; -import AsgardeoContext from '../../../contexts/asgardeo-context'; -import useTranslations from '../../../hooks/use-translations'; -import BasicAuthProps from '../../../models/basic-auth-props'; -import {SignIn as UISignIn} from '../../../oxygen-ui-react-auth-components'; -import './basic-auth.scss'; - -/** - * This component renders the IdentifierFirst authentication form. - * - * @param {IdentifierFirstProps} props - Props injected to the IdentifierFirst authentication component. - * @param {BrandingProps} props.brandingProps - Branding props. - * @param {Function} props.handleAuthenticate - Callback to handle authentication. - * @param {Authenticator} props.authenticator - Authenticator. - * @param {AlertType} props.alert - Alert type. - * @param {ReactElement[]} props.renderLoginOptions - Login options. - * @param {boolean} props.showSelfSignUp - Show self sign up. - * - * @return {ReactElement} - */ -const IdentifierFirst = ({ - handleAuthenticate, - authenticator, - alert, - brandingProps, - children, - showSelfSignUp, - renderLoginOptions, -}: PropsWithChildren): ReactElement => { - const {isAuthLoading, username, setUsername} = useContext(AsgardeoContext); - - const {t, isLoading} = useTranslations({ - componentLocaleOverride: brandingProps?.locale, - componentTextOverrides: brandingProps?.preference?.text, - screen: ScreenType.Login, - }); - - if (isLoading) { - return ( - - - - - - - - - ); - } - - return ( - - - {t(keys.login.login.heading)} - - - {alert && ( - - {t(alert.key)} - - )} - - ): void => setUsername(e.target.value)} - /> - - {children} - - { - handleAuthenticate(authenticator.authenticatorId, { - username, - }); - }} - > - {t(keys.login.button)} - - - {isAuthLoading && ( -
- -
- )} - - {showSelfSignUp && ( - - {t(keys.common.prefix.register)} - - {t(keys.common.register)} - - - )} - - {renderLoginOptions.length !== 0 && {t(keys.common.or)} } - - {renderLoginOptions} -
- ); -}; - -export default IdentifierFirst; diff --git a/packages/__legacy__/react/src/components/SignIn/fragments/LoginOptionsBox.tsx b/packages/__legacy__/react/src/components/SignIn/fragments/LoginOptionsBox.tsx deleted file mode 100644 index a6b5a844..00000000 --- a/packages/__legacy__/react/src/components/SignIn/fragments/LoginOptionsBox.tsx +++ /dev/null @@ -1,67 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {ReactElement} from 'react'; -import buildingIcon from '../../../assets/building-icon.svg'; -import emailSolid from '../../../assets/email-solid.svg'; -import smsIcon from '../../../assets/sms-icon.svg'; -import facebook from '../../../assets/social-logins/facebook.svg'; -import github from '../../../assets/social-logins/github.svg'; -import google from '../../../assets/social-logins/google.svg'; -import microsoft from '../../../assets/social-logins/microsoft.svg'; -import totp from '../../../assets/totp.svg'; -import LoginOptionsBoxProps from '../../../models/login-options-box-props'; -import {SignIn as UISignIn} from '../../../oxygen-ui-react-auth-components'; - -const images: {[key: string]: string} = { - 'Email OTP': emailSolid, - Github: github, - Google: google, - Microsoft: microsoft, - 'SMS OTP': smsIcon, - TOTP: totp, - facebook, -}; - -/** - * This component renders the login options box. - * - * @param {LoginOptionsBoxProps} props - Props injected to the component. - * @param {string} props.socialName - Name of the social login. - * @param {string} props.displayName - Display name of the social login. - * @param {Function} props.handleOnClick - On click handler. - * @return {ReactElement} - */ -const LoginOptionsBox = ({ - isAuthLoading, - socialName, - displayName, - handleOnClick, -}: LoginOptionsBoxProps): ReactElement => ( - } - onClick={handleOnClick} - disabled={isAuthLoading} - > - {displayName} - -); - -export default LoginOptionsBox; diff --git a/packages/__legacy__/react/src/components/SignIn/fragments/SmsOtp.tsx b/packages/__legacy__/react/src/components/SignIn/fragments/SmsOtp.tsx deleted file mode 100644 index 6f3c5fe8..00000000 --- a/packages/__legacy__/react/src/components/SignIn/fragments/SmsOtp.tsx +++ /dev/null @@ -1,85 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {ScreenType, keys} from '@asgardeo/js'; -import {CircularProgress} from '@oxygen-ui/react'; -import {PropsWithChildren, ReactElement, useState} from 'react'; -import useTranslations from '../../../hooks/use-translations'; -import EmailOtpProps from '../../../models/email-otp-props'; -import {SignIn as UISignIn} from '../../../oxygen-ui-react-auth-components'; - -const SmsOtp = ({ - alert, - brandingProps, - authenticator, - children, - handleAuthenticate, -}: PropsWithChildren): ReactElement => { - const [otp, setOtp] = useState(); - - const {isLoading, t} = useTranslations({ - componentLocaleOverride: brandingProps?.locale, - componentTextOverrides: brandingProps?.preference?.text, - screen: ScreenType.SMSOTP, - }); - - if (isLoading) { - return ( -
- -
- ); - } - - return ( - - {t(keys.smsOtp.sms.otp.heading)} - - {t(keys.smsOtp.sms.otp.subheading)} - - {alert && {alert.key}} - - - - {children} - - { - handleAuthenticate(authenticator.authenticatorId, {OTPCode: otp}); - setOtp(''); - }} - > - {t(keys.smsOtp.continue)} - - - handleAuthenticate(authenticator.authenticatorId)} - color="secondary" - variant="contained" - > - {t(keys.smsOtp.resend.code)} - - - ); -}; - -export default SmsOtp; diff --git a/packages/__legacy__/react/src/components/SignIn/fragments/Totp.tsx b/packages/__legacy__/react/src/components/SignIn/fragments/Totp.tsx deleted file mode 100644 index 9a17c3b6..00000000 --- a/packages/__legacy__/react/src/components/SignIn/fragments/Totp.tsx +++ /dev/null @@ -1,120 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {ScreenType, keys} from '@asgardeo/js'; -import {CircularProgress, Grid, Skeleton} from '@oxygen-ui/react'; -import {useState, ReactElement, useContext, PropsWithChildren} from 'react'; -import AsgardeoContext from '../../../contexts/asgardeo-context'; -import useTranslations from '../../../hooks/use-translations'; -import TotpProps from '../../../models/totp-props'; -import {SignIn as UISignIn} from '../../../oxygen-ui-react-auth-components'; -import './totp.scss'; - -/** - * This component renders the TOTP authentication screen. - * - * @param {TotpProps} props - Props injected to the component. - * @param {AlertType} props.alert - Alert type. - * @param {string} props.authenticator - Authenticator. - * @param {BrandingProps} props.brandingProps - Branding props. - * @param {Function} props.handleAuthenticate - Callback to handle authentication. - * - * @return {ReactElement} - */ -const Totp = ({ - brandingProps, - authenticator, - children, - handleAuthenticate, - alert, -}: PropsWithChildren): ReactElement => { - const [totp, setTotp] = useState(); - - const {isAuthLoading} = useContext(AsgardeoContext); - - const {isLoading, t} = useTranslations({ - componentLocaleOverride: brandingProps?.locale, - componentTextOverrides: brandingProps?.preference?.text, - screen: ScreenType.TOTP, - }); - - if (isLoading) { - return ( - - - - - - - - - - - - - - - ); - } - return ( - - {t(keys.totp.heading)} - - {alert && ( - - {t(alert.key)} - - )} - - {t(keys.totp.enter.verification.code.got.by.device)} - - - - {children} - - { - handleAuthenticate(authenticator.authenticatorId, {token: totp}); - setTotp(''); - }} - > - {t(keys.totp.continue)} - - - {isAuthLoading && ( -
- -
- )} - - - {t(keys.totp.enroll.message1)} -
- {t(keys.totp.enroll.message2)} -
-
- ); -}; - -export default Totp; diff --git a/packages/__legacy__/react/src/components/SignIn/fragments/basic-auth.scss b/packages/__legacy__/react/src/components/SignIn/fragments/basic-auth.scss deleted file mode 100644 index 50a8fac3..00000000 --- a/packages/__legacy__/react/src/components/SignIn/fragments/basic-auth.scss +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -.asgardeo-basic-auth-skeleton { - display: flex; - flex-flow: column nowrap; - padding: 32px; - row-gap: 8px; - - .skeleton-title { - margin: 0 auto; - } - - .skeleton-text-field-label { - margin-top: 12px; - } - - .skeleton-submit-button { - margin: 20px auto 0; - border-radius: 20px; - } -} - -.Paper-basicAuth { - opacity: 0.5; - animation: fade-in 0.9s ease-in-out forwards; - - .asgardeo-basic-auth-alert { - margin-top: 12px; - } -} - -.asgardeo-register-link { - margin-left: 3px; -} - -@keyframes fade-in { - to { - opacity: 1; - } -} diff --git a/packages/__legacy__/react/src/components/SignIn/fragments/email-otp.scss b/packages/__legacy__/react/src/components/SignIn/fragments/email-otp.scss deleted file mode 100644 index 67a16888..00000000 --- a/packages/__legacy__/react/src/components/SignIn/fragments/email-otp.scss +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -.asgardeo-email-otp-skeleton { - display: flex; - flex-flow: column nowrap; - padding: 32px; - row-gap: 8px; - - .skeleton-title { - margin: 0 auto; - } - - .skeleton-text-field-label { - margin-top: 12px; - } - - .skeleton-submit-button { - margin: 20px auto 0; - border-radius: 20px; - } -} - -.asgardeo-email-otp-paper { - opacity: 0.5; - animation: fade-in 0.9s ease-in-out forwards; -} - -@keyframes fade-in { - to { - opacity: 1; - } -} diff --git a/packages/__legacy__/react/src/components/SignIn/fragments/totp.scss b/packages/__legacy__/react/src/components/SignIn/fragments/totp.scss deleted file mode 100644 index db7e0bf0..00000000 --- a/packages/__legacy__/react/src/components/SignIn/fragments/totp.scss +++ /dev/null @@ -1,42 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -.asgardeo-totp-skeleton { - display: flex; - flex-flow: column nowrap; - padding: 32px; - row-gap: 8px; - min-width: 330px; - - .skeleton-title { - margin: 0 auto; - } - - .skeleton-pin-box { - margin: 0 4px; - } - - .skeleton-submit-button { - margin: 20px auto 0; - border-radius: 20px; - } -} - -.asgardeo-totp-alert { - margin: 20px 0; -} diff --git a/packages/__legacy__/react/src/components/SignIn/sign-in.scss b/packages/__legacy__/react/src/components/SignIn/sign-in.scss deleted file mode 100644 index 40f68abb..00000000 --- a/packages/__legacy__/react/src/components/SignIn/sign-in.scss +++ /dev/null @@ -1,77 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -$--min-height: 75vh; - -.Box-asgardeoSignIn { - min-width: 350px; - min-height: $--min-height; - - .email-otp-resend-button { - margin-top: 0; - } - - .multiple-otions-title { - margin: 16px 0 34px; - } - - .asgardeo-multiple-options-paper { - padding-bottom: 64px; - - .asgardeo-sign-in-alert { - margin-bottom: 24px; - } - } -} - -.Box-circularProgressHolder { - display: flex; - justify-content: center; - align-items: center; - min-height: $--min-height; - - .circular-progress { - color: rgb(214 211 211) !important; - } -} - -.asgardeo-sign-in-footer, -.asgardeo-sign-in-logo { - opacity: 0.5; - animation: fade-in 0.7s ease-in-out forwards; -} - -@keyframes fade-in { - to { - opacity: 1; - } -} - -.circular-progress-holder-authn { - display: flex; - justify-content: center; - align-items: center; - flex-grow: 1; - - .sign-in-button-progress { - color: var(--oxygen-palette-primary-main); - margin: 0 auto !important; - max-height: 25px; - max-width: 25px; - margin-left: 12px; - } -} diff --git a/packages/__legacy__/react/src/components/SignInButton/SignInButton.tsx b/packages/__legacy__/react/src/components/SignInButton/SignInButton.tsx deleted file mode 100644 index bc52077a..00000000 --- a/packages/__legacy__/react/src/components/SignInButton/SignInButton.tsx +++ /dev/null @@ -1,80 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). All Rights Reserved. - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {Box, Button, CircularProgress} from '@oxygen-ui/react'; -import React, {ReactElement, useContext, useState} from 'react'; -import './sign-in-button.scss'; -import AsgardeoContext from '../../contexts/asgardeo-context'; -import AuthContext from '../../models/auth-context'; -import {SignInButtonProps} from '../../models/sign-in'; -import SignIn from '../SignIn/SignIn'; - -/** - * SignInButton component. This button will render a modal with the SignIn component when clicked. - * - * @param {Object} props - Component props. - * @param {ReactElement} props.customComponent - Optional custom component to be rendered. - * @returns {ReactElement} Rendered SignInButton component. - */ -const SignInButton = (props: SignInButtonProps): ReactElement => { - const {customComponent, showFooter = false, showLogo = false, showSignUp = false} = props; - - const [modalVisible, setModalVisible] = useState(false); - - const authContext: AuthContext | undefined = useContext(AsgardeoContext); - - const openModal = (): void => { - setModalVisible(true); - }; - - const closeModal = (): void => { - setModalVisible(false); - }; - - if (authContext.isBrandingLoading) { - return ( - - ); - } - - return ( -
- {customComponent ? ( - React.cloneElement(customComponent, { - onClick: openModal, - }) - ) : ( - - )} - - {modalVisible && ( - - - - )} - - {modalVisible && } -
- ); -}; - -export default SignInButton; diff --git a/packages/__legacy__/react/src/components/SignInButton/sign-in-button.scss b/packages/__legacy__/react/src/components/SignInButton/sign-in-button.scss deleted file mode 100644 index 7a59663c..00000000 --- a/packages/__legacy__/react/src/components/SignInButton/sign-in-button.scss +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). All Rights Reserved. - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -.asgardeo { - .asgardeo-sign-in-button { - color: var(--oxygen-palette-text-primary); - } - - .OxygenSignInImage { - height: 45px; - } - - .popup-box { - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - z-index: 1000; - min-height: 65%; - min-width: 35%; - max-height: 100%; - display: flex; - justify-content: center; - align-items: center; - overflow: auto; - padding-top: 40px; - - /* Hide scrollbar for Chrome, Safari and Opera */ - ::-webkit-scrollbar { - display: none; - } - - /* Hide scrollbar for IE, Edge and Firefox */ - -ms-overflow-style: none; /* IE and Edge */ - scrollbar-width: none; /* Firefox */ - } - - .popup-box-overlay { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: rgb(0 0 0 / 76.8%); - z-index: 100; - } -} diff --git a/packages/__legacy__/react/src/components/SignOutButton/SignOutButton.tsx b/packages/__legacy__/react/src/components/SignOutButton/SignOutButton.tsx deleted file mode 100644 index bd529209..00000000 --- a/packages/__legacy__/react/src/components/SignOutButton/SignOutButton.tsx +++ /dev/null @@ -1,42 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). All Rights Reserved. - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {Button} from '@oxygen-ui/react'; -import {ReactElement} from 'react'; -import useAuthentication from '../../hooks/use-authentication'; - -/** - * SignOutButton component. - * - * This component renders a sign out button. When clicked, it triggers the sign out process. - * - * @returns {ReactElement} Rendered SignOutButton component. - */ -const SignOutButton = (): ReactElement => { - const {signOut} = useAuthentication(); - - return ( -
- -
- ); -}; - -export default SignOutButton; diff --git a/packages/__legacy__/react/src/components/SignedIn/SignedIn.tsx b/packages/__legacy__/react/src/components/SignedIn/SignedIn.tsx deleted file mode 100644 index 58dabe2a..00000000 --- a/packages/__legacy__/react/src/components/SignedIn/SignedIn.tsx +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {FC, PropsWithChildren} from 'react'; -import useAuthentication from '../../hooks/use-authentication'; -import SignedProps from '../../models/signed-props'; - -/** - * This component renders its children if the user is signed out. - * - * @param {PropsWithChildren} props - Props injected to the component. - * @param {ReactElement} props.fallback - Fallback element to render. - * - * @return {JSX.Element} - */ -const SignedIn: FC> = (props: PropsWithChildren) => { - const {fallback = null, children} = props; - const {isSignedIn} = useAuthentication(); - - return isSignedIn ? children : fallback; -}; - -export default SignedIn; diff --git a/packages/__legacy__/react/src/components/SignedOut/SignedOut.tsx b/packages/__legacy__/react/src/components/SignedOut/SignedOut.tsx deleted file mode 100644 index 1e5825a4..00000000 --- a/packages/__legacy__/react/src/components/SignedOut/SignedOut.tsx +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {FC, PropsWithChildren} from 'react'; -import useAuthentication from '../../hooks/use-authentication'; -import SignedProps from '../../models/signed-props'; - -/** - * This component renders its children if the user is signed out. - * - * @param {PropsWithChildren} props - Props injected to the component. - * @param {ReactElement} props.fallback - Fallback element to render. - * - * @return {JSX.Element} - */ -const SignedOut: FC> = (props: PropsWithChildren) => { - const {fallback = null, children} = props; - const {isSignedIn} = useAuthentication(); - - return !isSignedIn ? children : fallback; -}; - -export default SignedOut; diff --git a/packages/__legacy__/react/src/components/public-components.ts b/packages/__legacy__/react/src/components/public-components.ts deleted file mode 100644 index 5e518d19..00000000 --- a/packages/__legacy__/react/src/components/public-components.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -export {default as SignIn} from './SignIn/SignIn'; -export {default as SignedIn} from './SignedIn/SignedIn'; -export {default as SignedOut} from './SignedOut/SignedOut'; -export {default as SignInButton} from './SignInButton/SignInButton'; -export {default as SignOutButton} from './SignOutButton/SignOutButton'; diff --git a/packages/__legacy__/react/src/contexts/asgardeo-context.ts b/packages/__legacy__/react/src/contexts/asgardeo-context.ts deleted file mode 100644 index d04644ef..00000000 --- a/packages/__legacy__/react/src/contexts/asgardeo-context.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {Context, createContext} from 'react'; -import AuthContext from '../models/auth-context'; - -const AsgardeoContext: Context = createContext(undefined); - -export default AsgardeoContext; diff --git a/packages/__legacy__/react/src/contexts/branding-preference-context.ts b/packages/__legacy__/react/src/contexts/branding-preference-context.ts deleted file mode 100644 index 1e4e96e9..00000000 --- a/packages/__legacy__/react/src/contexts/branding-preference-context.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {Branding} from '@asgardeo/js'; -import {Context, createContext} from 'react'; - -const BrandingPreferenceContext: Context = createContext(undefined); - -export default BrandingPreferenceContext; diff --git a/packages/__legacy__/react/src/contexts/i18n-context.ts b/packages/__legacy__/react/src/contexts/i18n-context.ts deleted file mode 100644 index e826ae17..00000000 --- a/packages/__legacy__/react/src/contexts/i18n-context.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {Context, createContext} from 'react'; -import {I18n} from '../models/i18n'; - -const I18nContext: Context = createContext(undefined); - -export default I18nContext; diff --git a/packages/__legacy__/react/src/hooks/use-authentication.ts b/packages/__legacy__/react/src/hooks/use-authentication.ts deleted file mode 100644 index 08e75395..00000000 --- a/packages/__legacy__/react/src/hooks/use-authentication.ts +++ /dev/null @@ -1,58 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {signOut as signOutApiCall} from '@asgardeo/js'; -import {useContext} from 'react'; -import AsgardeoContext from '../contexts/asgardeo-context'; -import AuthContext from '../models/auth-context'; -import UseAuthentication from '../models/use-authentication'; - -/** - * `useAuthentication` is a custom hook that provides access to the authentication context. - * It returns an object containing the current user, the authentication status, the access token, and a sign out function. - * - * @returns {UseAuthentication} An object containing the current user (`user`), the authentication status (`isSignedIn`), - * the access token (`accessToken`), and a sign out function (`signOut`). - */ -const useAuthentication = (): UseAuthentication => { - const contextValue: AuthContext = useContext(AsgardeoContext); - - const {accessToken, authResponse, isSignedIn, isGlobalLoading, setUsername, user, username} = contextValue; - - const signOut: () => void = () => { - signOutApiCall().then(() => { - sessionStorage.clear(); - if (contextValue.onSignOutRef.current) { - contextValue.onSignOutRef.current(); - } - }); - }; - - return { - accessToken, - authResponse, - isSignedIn, - isGlobalLoading, - setUsername, - signOut, - user, - username, - }; -}; - -export default useAuthentication; diff --git a/packages/__legacy__/react/src/hooks/use-config.ts b/packages/__legacy__/react/src/hooks/use-config.ts deleted file mode 100644 index 1611d6a6..00000000 --- a/packages/__legacy__/react/src/hooks/use-config.ts +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {UIAuthConfig} from '@asgardeo/js'; -import {useContext} from 'react'; -import AsgardeoContext from '../contexts/asgardeo-context'; -import UseConfig from '../models/use-config'; - -/** - * Custom hook to access the authentication configuration from the AsgardeoProviderContext. - * @returns An object containing the authentication configuration. - */ -export const useConfig = (): UseConfig => { - const {config} = useContext(AsgardeoContext) as { - config: UIAuthConfig; - }; - - return {config}; -}; diff --git a/packages/__legacy__/react/src/hooks/use-on.ts b/packages/__legacy__/react/src/hooks/use-on.ts deleted file mode 100644 index 9e259bba..00000000 --- a/packages/__legacy__/react/src/hooks/use-on.ts +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {AsgardeoUIException} from '@asgardeo/js'; -import {useContext, useEffect} from 'react'; -import AsgardeoContext from '../contexts/asgardeo-context'; -import AuthContext from '../models/auth-context'; -import {Hooks, UseOnProps} from '../models/use-on'; - -const useOn = (props: UseOnProps): void => { - const {callback, event} = props; - - const contextValue: AuthContext = useContext(AsgardeoContext); - - useEffect(() => { - switch (event) { - case Hooks.SignIn: - contextValue.setOnSignIn(callback); - break; - case Hooks.SignOut: - contextValue.setOnSignOut(callback); - break; - default: - throw new AsgardeoUIException('REACT-USE_ON-UO-IV-01', 'Invalid event type provided.'); - } - }, [callback, contextValue, event]); -}; - -export default useOn; diff --git a/packages/__legacy__/react/src/hooks/use-translations.ts b/packages/__legacy__/react/src/hooks/use-translations.ts deleted file mode 100644 index 21f0ccda..00000000 --- a/packages/__legacy__/react/src/hooks/use-translations.ts +++ /dev/null @@ -1,79 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {useContext, useEffect, useState} from 'react'; -import AsgardeoContext from '../contexts/asgardeo-context'; -import I18nContext from '../contexts/i18n-context'; -import {I18n, SetTranslationsProps} from '../models/i18n'; -import UseTranslations from '../models/use-translations'; - -/** - * `useTranslations` is a custom hook that fetches translations. - * It takes an object of type `SetTranslationsProps` as an argument, which includes the screen type, - * and optional locale and text overrides. - * - * @param {SetTranslationsProps} props - The properties used to fetch the translations. - * @param {ScreenType} props.screen - The screen type for which to fetch translations. - * @param {string} [props.componentLocaleOverride] - Optional locale override. - * @param {BrandingPreferenceTextProps} [props.componentTextOverrides] - Optional text overrides. - * - * @returns {UseTranslations} An object containing the translations (`t`) and a loading state (`isLoading`). - */ -const useTranslations = (props: SetTranslationsProps): UseTranslations => { - const {componentLocaleOverride, componentTextOverrides, screen} = props; - - const [isLoading, setIsLoading] = useState(true); - - const {setIsTextLoading} = useContext(AsgardeoContext); - - const contextValue: I18n = useContext(I18nContext); - const {text, setTranslations} = contextValue; - - useEffect(() => { - setTranslations({componentLocaleOverride, componentTextOverrides, screen}).then((response: boolean) => { - setIsLoading(!response); - setIsTextLoading(!response); - }); - }, [componentLocaleOverride, componentTextOverrides, screen, setIsTextLoading, setTranslations]); - - useEffect(() => { - setIsTextLoading(isLoading); - }, [isLoading, setIsTextLoading]); - - /** - * `t` is a function that retrieves a specific translation from the fetched translations. - * It takes a key as an argument, which is a string that represents a path to the desired translation. - * - * @param {string} key - The key of the translation to retrieve. This is a string that represents - * a path in the translations object, with parts separated by '.'. - * - * @returns {string} The requested translation. - */ - const t = (key: string): string => { - const keySegments: string[] = key.split('.'); - - const screenKey: string = keySegments[0]; - const rightPart: string = keySegments.slice(1).join('.'); - - return text[screenKey][rightPart]; - }; - - return {isLoading, t}; -}; - -export default useTranslations; diff --git a/packages/__legacy__/react/src/index.ts b/packages/__legacy__/react/src/index.ts deleted file mode 100644 index 98f497c9..00000000 --- a/packages/__legacy__/react/src/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -export * from './components/public-components'; -export * from './models/public-models'; -export {default as AsgardeoProvider} from './providers/AsgardeoProvider'; -export {default as useAuthentication} from './hooks/use-authentication'; -export {default as useOn} from './hooks/use-on'; diff --git a/packages/__legacy__/react/src/models/asgardeo-provider-props.ts b/packages/__legacy__/react/src/models/asgardeo-provider-props.ts deleted file mode 100644 index 38f0174c..00000000 --- a/packages/__legacy__/react/src/models/asgardeo-provider-props.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {BrandingProps, Store, UIAuthConfig} from '@asgardeo/js'; - -interface AsgardeoProviderProps { - branding?: BrandingProps; - config: UIAuthConfig; - store?: Store; -} - -export default AsgardeoProviderProps; diff --git a/packages/__legacy__/react/src/models/auth-context.ts b/packages/__legacy__/react/src/models/auth-context.ts deleted file mode 100644 index 4a1e1f93..00000000 --- a/packages/__legacy__/react/src/models/auth-context.ts +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {UIAuthConfig, MeAPIResponse, AuthApiResponse} from '@asgardeo/js'; - -interface AuthContext { - accessToken: string; - authResponse: AuthApiResponse; - config: UIAuthConfig; - isAuthLoading: boolean; - isSignedIn: boolean | undefined; - isBrandingLoading: boolean; - isComponentLoading: boolean; - isGlobalLoading: boolean; - isTextLoading: boolean; - onSignOutRef: React.MutableRefObject; - setAuthResponse: (response: AuthApiResponse) => void; - setAuthentication: () => void; - setIsAuthLoading: (value: boolean) => void; - setIsBrandingLoading: (value: boolean) => void; - setIsComponentLoading: (value: boolean) => void; - setIsTextLoading: (value: boolean) => void; - setOnSignIn: (response?: any) => void | Promise; - setOnSignOut: (response?: any) => void | Promise; - setUsername: (username: string) => void; - user: MeAPIResponse; - username: string; -} - -export default AuthContext; diff --git a/packages/__legacy__/react/src/models/basic-auth-props.ts b/packages/__legacy__/react/src/models/basic-auth-props.ts deleted file mode 100644 index 28f79c8e..00000000 --- a/packages/__legacy__/react/src/models/basic-auth-props.ts +++ /dev/null @@ -1,32 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {Authenticator, BrandingProps} from '@asgardeo/js'; -import {ReactElement} from 'react'; -import {AlertType} from './sign-in'; - -interface BasicAuthProps { - alert?: AlertType; - authenticator: Authenticator; - brandingProps?: BrandingProps; - handleAuthenticate: Function; - renderLoginOptions?: ReactElement[]; - showSelfSignUp: boolean; -} - -export default BasicAuthProps; diff --git a/packages/__legacy__/react/src/models/branding-preference-provider-props.ts b/packages/__legacy__/react/src/models/branding-preference-provider-props.ts deleted file mode 100644 index 621dc38b..00000000 --- a/packages/__legacy__/react/src/models/branding-preference-provider-props.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {BrandingProps} from '@asgardeo/js'; - -interface BrandingPreferenceProviderProps { - branding?: BrandingProps; -} - -export default BrandingPreferenceProviderProps; diff --git a/packages/__legacy__/react/src/models/email-otp-props.ts b/packages/__legacy__/react/src/models/email-otp-props.ts deleted file mode 100644 index 87a269a7..00000000 --- a/packages/__legacy__/react/src/models/email-otp-props.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {Authenticator, BrandingProps} from '@asgardeo/js'; -import {AlertType} from './sign-in'; - -interface EmailOtpProps { - alert?: AlertType; - authenticator?: Authenticator; - brandingProps?: BrandingProps; - handleAuthenticate: Function; -} - -export default EmailOtpProps; diff --git a/packages/__legacy__/react/src/models/i18n.ts b/packages/__legacy__/react/src/models/i18n.ts deleted file mode 100644 index 4a9c2708..00000000 --- a/packages/__legacy__/react/src/models/i18n.ts +++ /dev/null @@ -1,40 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {BrandingPreferenceTextProps, ScreenType, TextObject} from '@asgardeo/js'; - -export type I18nLocalization = - | { - [key in ScreenType]: TextObject; - } - | {}; - -export interface SetTranslationsProps { - componentLocaleOverride?: string; - componentTextOverrides?: BrandingPreferenceTextProps; - screen?: ScreenType; -} -export interface I18n { - setTranslations: (props: SetTranslationsProps) => Promise; - text: I18nLocalization; -} - -export interface I18nProviderProps { - providerLocaleOverride?: string; - providerTextOverrides?: BrandingPreferenceTextProps; -} diff --git a/packages/__legacy__/react/src/models/jwt-verify-options.ts b/packages/__legacy__/react/src/models/jwt-verify-options.ts deleted file mode 100644 index bb1bc207..00000000 --- a/packages/__legacy__/react/src/models/jwt-verify-options.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -interface JwtVerifyOptions { - algorithms: string[]; - audience: string; - clockTolerance: number; - issuer: string; - subject: string; -} - -export default JwtVerifyOptions; diff --git a/packages/__legacy__/react/src/models/login-options-box-props.ts b/packages/__legacy__/react/src/models/login-options-box-props.ts deleted file mode 100644 index ff6e4e3a..00000000 --- a/packages/__legacy__/react/src/models/login-options-box-props.ts +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -interface LoginOptionsBoxProps { - displayName: string; - handleOnClick: () => void; - isAuthLoading: boolean; - socialName: string; -} - -export default LoginOptionsBoxProps; diff --git a/packages/__legacy__/react/src/models/public-models.ts b/packages/__legacy__/react/src/models/public-models.ts deleted file mode 100644 index 31797683..00000000 --- a/packages/__legacy__/react/src/models/public-models.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -export type {UIAuthConfig} from '@asgardeo/js'; -export {Hooks} from './use-on'; diff --git a/packages/__legacy__/react/src/models/sign-in.ts b/packages/__legacy__/react/src/models/sign-in.ts deleted file mode 100644 index fecde462..00000000 --- a/packages/__legacy__/react/src/models/sign-in.ts +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {BrandingProps} from '@asgardeo/js'; -import {ReactElement} from 'react'; - -export interface SignInProps { - basicAuthChildren?: ReactElement; - brandingProps?: BrandingProps; - emailOtpChildren?: ReactElement; - identifierFirstChildren?: ReactElement; - showFooter?: boolean; - showLogo?: boolean; - showSignUp?: boolean; - smsOtpChildren?: ReactElement; - totpChildren?: ReactElement; -} - -export type AlertType = { - alertType: - | {error?: boolean; info?: never; warning?: never} - | {error?: never; info?: boolean; warning?: never} - | {error?: never; infor?: never; warning?: boolean}; - key: string; -}; - -export interface SignInButtonProps extends SignInProps { - customComponent?: ReactElement; -} diff --git a/packages/__legacy__/react/src/models/signed-props.ts b/packages/__legacy__/react/src/models/signed-props.ts deleted file mode 100644 index acc02059..00000000 --- a/packages/__legacy__/react/src/models/signed-props.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {ReactElement} from 'react'; - -interface SignedProps { - fallback?: ReactElement; -} - -export default SignedProps; diff --git a/packages/__legacy__/react/src/models/totp-props.ts b/packages/__legacy__/react/src/models/totp-props.ts deleted file mode 100644 index 1a819de8..00000000 --- a/packages/__legacy__/react/src/models/totp-props.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {Authenticator, BrandingProps} from '@asgardeo/js'; -import {AlertType} from './sign-in'; - -interface TotpProps { - alert?: AlertType; - authenticator: Authenticator; - brandingProps?: BrandingProps; - handleAuthenticate: Function; -} - -export default TotpProps; diff --git a/packages/__legacy__/react/src/models/use-authentication.ts b/packages/__legacy__/react/src/models/use-authentication.ts deleted file mode 100644 index d48692d8..00000000 --- a/packages/__legacy__/react/src/models/use-authentication.ts +++ /dev/null @@ -1,32 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {AuthApiResponse, MeAPIResponse} from '@asgardeo/js'; - -interface UseAuthentication { - accessToken: string; - authResponse: AuthApiResponse; - isSignedIn: Promise | boolean; - isGlobalLoading: boolean; - setUsername: (username: string) => void; - signOut: () => void; - user: MeAPIResponse; - username: string; -} - -export default UseAuthentication; diff --git a/packages/__legacy__/react/src/models/use-config.ts b/packages/__legacy__/react/src/models/use-config.ts deleted file mode 100644 index 116aa189..00000000 --- a/packages/__legacy__/react/src/models/use-config.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {UIAuthConfig} from '@asgardeo/js'; - -interface UseConfig { - config: UIAuthConfig; -} - -export default UseConfig; diff --git a/packages/__legacy__/react/src/models/use-on.ts b/packages/__legacy__/react/src/models/use-on.ts deleted file mode 100644 index aee2af97..00000000 --- a/packages/__legacy__/react/src/models/use-on.ts +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -export enum Hooks { - SignIn, - SignOut, -} - -export interface UseOnProps { - /** - * The callback to be executed when the event is triggered. - */ - callback: (response?: any) => void | Promise; - /** - * The event to listen to. - */ - event: Hooks; -} diff --git a/packages/__legacy__/react/src/models/use-translations.ts b/packages/__legacy__/react/src/models/use-translations.ts deleted file mode 100644 index ed53fe5b..00000000 --- a/packages/__legacy__/react/src/models/use-translations.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -interface UseTranslations { - isLoading: boolean; - t: (key: string) => string; -} - -export default UseTranslations; diff --git a/packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignIn/SignIn.tsx b/packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignIn/SignIn.tsx deleted file mode 100644 index 0eef4fb4..00000000 --- a/packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignIn/SignIn.tsx +++ /dev/null @@ -1,224 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {Box, BoxProps} from '@oxygen-ui/react'; -import clsx from 'clsx'; -import { - ElementType, - ForwardRefExoticComponent, - MutableRefObject, - ReactElement, - forwardRef, - isValidElement, -} from 'react'; -import {WithWrapperProps} from '../models/component'; -import SignInAlert from '../SignInAlert/SignInAlert'; -import SignInButton, {SignInButtonProps} from '../SignInButton/SignInButton'; -import SignInDivider from '../SignInDivider/SignInDivider'; -import SignInFooter from '../SignInFooter/SignInFooter'; -import SignInImage from '../SignInImage/SignInImage'; -import SignInLink, {SignInLinkProps} from '../SignInLink/SignInLink'; -import SignInPaper from '../SignInPaper/SignInPaper'; -import SignInPinInput from '../SignInPinInput/SignInPinInput'; -import SignInTextField, {SignInTextFieldProps} from '../SignInTextField/SignInTextField'; -import SignInTypography, {SignInTypographyProps} from '../SignInTypography/SignInTypography'; -import './sign-in.scss'; - -type Footer = - | ReactElement - | { - copyrights?: { - link?: string; - text: string; - }; - locale?: { - text: string; - }; - privacyPolicy?: { - link?: string; - text: string; - }; - termsOfUse?: { - link?: string; - text: string; - }; - }; - -export type SignInProps = { - component?: C; - footer?: Footer; - links?: SignInLinkProps[]; - loginOptions?: SignInButtonProps[]; - logo?: string; - submitButton?: {text: string} & SignInButtonProps; - subtitle?: {text: string} & SignInTypographyProps; - textFields?: SignInTextFieldProps[]; - title?: {text: string} & SignInTypographyProps; -} & Omit; - -type SignInCompoundProps = { - Alert: typeof SignInAlert; - Button: typeof SignInButton; - Divider: typeof SignInDivider; - Footer: typeof SignInFooter; - Image: typeof SignInImage; - Link: typeof SignInLink; - Paper: typeof SignInPaper; - PinInput: typeof SignInPinInput; - TextField: typeof SignInTextField; - Typography: typeof SignInTypography; -}; - -const COMPONENT_NAME: string = 'SignIn'; - -const SignIn: ForwardRefExoticComponent & WithWrapperProps & SignInCompoundProps = forwardRef( - (props: SignInProps, ref: MutableRefObject): ReactElement => { - const { - children, - className, - title, - subtitle, - textFields = [ - { - label: 'username', - name: 'text', - placeholder: 'Enter your username', - }, - { - label: 'Password', - name: 'password', - placeholder: 'Enter your password', - type: 'password', - }, - ], - links, - loginOptions, - logo, - submitButton, - footer, - ...rest - } = props; - - const classes: string = clsx(`Oxygen${COMPONENT_NAME}`, className); - - /** - * Destructure the title and subtitle props to extract the title and subtitle as both cannot be passed. - */ - const { - children: titleChildren, - text: titleText, - title: titleTitle, - subtitle: titleSubtitle, - ...restTitleProps - } = title ?? {}; - - const { - children: subtitleChildren, - text: subtitleText, - title: subtitleTitle, - subtitle: subtitleSubtitle, - ...restSubtitleProps - } = subtitle ?? {}; - - const {children: submitButtonChildren, text: submitButtonText, ...restSubmitButtonTextProps} = submitButton ?? {}; - - /** - * If SignIn component contains any children render only the outer box. - * Otherwise render the default SignIn component. - */ - if (children) { - return ( - - {children} - - ); - } - - return ( - - {logo && } - - - - {titleChildren ?? titleText ?? 'Sign In'} - - - {subtitle && ( - - {subtitleChildren ?? subtitleText} - - )} - - {textFields.map((textFieldProps: SignInTextFieldProps, index: number) => ( - - ))} - - - {submitButtonChildren ?? submitButtonText ?? 'Sign In'} - - - {links && - links.map((linkProps: SignInLinkProps, index: number) => ( -
- -
-
- ))} - - {loginOptions && ( - <> - OR - {loginOptions.map((loginOptionProps: SignInButtonProps, index: number) => ( - - ))} - - )} -
- - {footer && isValidElement(footer) ? ( - footer - ) : ( - {footer?.copyrights?.text}}} - items={[ - {children: {footer?.termsOfUse?.text}}, - {children: {footer?.privacyPolicy?.text}}, - {children: {footer?.locale?.text}}, - ]} - /> - )} -
- ); - }, -) as ForwardRefExoticComponent & WithWrapperProps & SignInCompoundProps; - -SignIn.displayName = COMPONENT_NAME; -SignIn.muiName = COMPONENT_NAME; - -SignIn.Typography = SignInTypography; -SignIn.Paper = SignInPaper; -SignIn.Alert = SignInAlert; -SignIn.Divider = SignInDivider; -SignIn.Link = SignInLink; -SignIn.Button = SignInButton; -SignIn.TextField = SignInTextField; -SignIn.PinInput = SignInPinInput; -SignIn.Image = SignInImage; -SignIn.Footer = SignInFooter; - -export default SignIn; diff --git a/packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignIn/sign-in.scss b/packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignIn/sign-in.scss deleted file mode 100644 index 609fac01..00000000 --- a/packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignIn/sign-in.scss +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -.OxygenSignIn { - display: flex; - flex-flow: column nowrap; - align-content: center; - justify-content: center; - align-items: center; - text-align: left; - padding: 20px; - max-width: fit-content; -} diff --git a/packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInAlert/SignInAlert.tsx b/packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInAlert/SignInAlert.tsx deleted file mode 100644 index 0cef75cd..00000000 --- a/packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInAlert/SignInAlert.tsx +++ /dev/null @@ -1,68 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {Alert} from '@oxygen-ui/react'; -import clsx from 'clsx'; -import {ElementType, ForwardRefExoticComponent, MutableRefObject, ReactElement, forwardRef} from 'react'; -import {WithWrapperProps} from '../models/component'; -import './sign-in-alert.scss'; - -// TODO: AlertProps is not available in oxygen-ui/react -export type SignInAlertProps = { - component?: C; -} & ( - | {error?: boolean; info?: never; warning?: never} - | {error?: never; info?: boolean; warning?: never} - | {error?: never; info?: never; warning?: boolean} -); - -const COMPONENT_NAME: string = 'SignInAlert'; - -enum Color { - Error = 'error', - Info = 'info', - Warning = 'warning', -} - -const SignInAlert: ForwardRefExoticComponent & WithWrapperProps = forwardRef( - (props: SignInAlertProps, ref: MutableRefObject): ReactElement => { - const {className, error, info, warning, color, icon, ...rest} = props; - - const classes: string = clsx(`Oxygen${COMPONENT_NAME}`, className); - - let extendedColor: string = color; - if (!color) { - if (error) { - extendedColor = Color.Error; - } else if (warning) { - extendedColor = Color.Warning; - } else { - extendedColor = Color.Info; - } - } - - const extendedIcon: Node | boolean = icon || false; - - return ; - }, -) as ForwardRefExoticComponent & WithWrapperProps; - -SignInAlert.displayName = COMPONENT_NAME; -SignInAlert.muiName = COMPONENT_NAME; - -export default SignInAlert; diff --git a/packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInAlert/sign-in-alert.scss b/packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInAlert/sign-in-alert.scss deleted file mode 100644 index 10154369..00000000 --- a/packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInAlert/sign-in-alert.scss +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -.OxygenSignInAlert { - border-radius: 12px; -} diff --git a/packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInButton/SignInButton.tsx b/packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInButton/SignInButton.tsx deleted file mode 100644 index 51a8fb98..00000000 --- a/packages/__legacy__/react/src/oxygen-ui-react-auth-components/SignInButton/SignInButton.tsx +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import {Button, ButtonProps} from '@oxygen-ui/react'; -import clsx from 'clsx'; -import {ElementType, ForwardRefExoticComponent, MutableRefObject, ReactElement, forwardRef} from 'react'; -import {WithWrapperProps} from '../models/component'; -import './sign-in-button.scss'; - -export type SignInButtonProps = { - component?: C; - social?: boolean; -} & Omit; - -const COMPONENT_NAME: string = 'SignInButton'; - -const SignInButton: ForwardRefExoticComponent & WithWrapperProps = forwardRef( - (props: SignInButtonProps, ref: MutableRefObject): ReactElement => { - const {className, variant, social, ...rest} = props; - - let classes: string = clsx(`Oxygen${COMPONENT_NAME}`, className); - if (social) { - classes = clsx(classes, `Oxygen${COMPONENT_NAME}-social`); - } - - return