From ff9e741d3fca1ec7b5d140012faa6b67b8426ac5 Mon Sep 17 00:00:00 2001 From: Ignat Date: Mon, 16 Sep 2024 14:45:30 +0500 Subject: [PATCH 01/17] feat: implement figma tokens resolver --- .../shared/api/figma-tokens/resolve/index.ts | 2 + .../resolve/resolved-categories.ts | 56 + .../api/figma-tokens/resolve/resolver.ts | 74 + .../tokens/curve-figma-design.tokens.json | 6103 +++++++++++++++++ .../tokens/curve-figma-design.types.ts | 3 + .../shared/api/figma-tokens/tokens/index.ts | 3 + .../api/figma-tokens/tokens/variants.types.ts | 30 + 7 files changed, 6271 insertions(+) create mode 100644 packages/curve-ui-kit/src/shared/api/figma-tokens/resolve/index.ts create mode 100644 packages/curve-ui-kit/src/shared/api/figma-tokens/resolve/resolved-categories.ts create mode 100644 packages/curve-ui-kit/src/shared/api/figma-tokens/resolve/resolver.ts create mode 100644 packages/curve-ui-kit/src/shared/api/figma-tokens/tokens/curve-figma-design.tokens.json create mode 100644 packages/curve-ui-kit/src/shared/api/figma-tokens/tokens/curve-figma-design.types.ts create mode 100644 packages/curve-ui-kit/src/shared/api/figma-tokens/tokens/index.ts create mode 100644 packages/curve-ui-kit/src/shared/api/figma-tokens/tokens/variants.types.ts diff --git a/packages/curve-ui-kit/src/shared/api/figma-tokens/resolve/index.ts b/packages/curve-ui-kit/src/shared/api/figma-tokens/resolve/index.ts new file mode 100644 index 00000000..6aa7ff6f --- /dev/null +++ b/packages/curve-ui-kit/src/shared/api/figma-tokens/resolve/index.ts @@ -0,0 +1,2 @@ +export * from './resolved-categories' +export * from './resolver' diff --git a/packages/curve-ui-kit/src/shared/api/figma-tokens/resolve/resolved-categories.ts b/packages/curve-ui-kit/src/shared/api/figma-tokens/resolve/resolved-categories.ts new file mode 100644 index 00000000..847fcbe5 --- /dev/null +++ b/packages/curve-ui-kit/src/shared/api/figma-tokens/resolve/resolved-categories.ts @@ -0,0 +1,56 @@ +import { + resolveTableTypographyVariants, + resolveTypographyVariants, + type ResolvedTypography, +} from '@/shared/ui/Typography' +import { curveFigmaDesignTokens, type CurveFigmaDesignTokens, type ScreenType } from '../tokens' +import { resolveFigmaTokens, type ResolvedValue } from './resolver' + +export const GridCategory = '00_grid' as const +export const PrimitivesCategory = '00_primitives' as const +export const EffectCategory = '00_effect' as const +export const SurfacesAndTextCategory = '01_surfaces&text' as const +export const MappedSizesAndSpacesCategory = '01_mapped_sizes&spaces' as const +export const TypographyCategory = 'typography' as const +export const ThemeCategory = '02_theme' as const +export const FontCategory = '02_font' as const + +export type ResolvedFigmaTokens = ResolvedValue + +export type FigmaTypography = ResolvedFigmaTokens[typeof TypographyCategory] +export type FigmaPrimitives = ResolvedFigmaTokens[typeof PrimitivesCategory] +export type FigmaEffects = ResolvedFigmaTokens[typeof EffectCategory] +export type FigmaGrid = ResolvedFigmaTokens[typeof GridCategory] +export type FigmaSurfacesAndText = ResolvedFigmaTokens[typeof SurfacesAndTextCategory] +export type FigmaMappedSizesAndSpaces = ResolvedFigmaTokens[typeof MappedSizesAndSpacesCategory] +export type FigmaTheme = ResolvedFigmaTokens[typeof ThemeCategory] +export type FigmaThemes = Record + +export type FigmaTokens = { + typography: ResolvedTypography + primitives: FigmaPrimitives + effects: FigmaEffects + grid: FigmaGrid + surfacesAndText: FigmaSurfacesAndText + mappedSizesAndSpaces: FigmaMappedSizesAndSpaces + themes: FigmaThemes +} + +const figmaTokensDesktop: ResolvedFigmaTokens = resolveFigmaTokens(curveFigmaDesignTokens) +const figmaTokensMobile: ResolvedFigmaTokens = resolveFigmaTokens(curveFigmaDesignTokens, 'mobile') + +export const figmaTokens: FigmaTokens = { + typography: { + ...resolveTypographyVariants(figmaTokensDesktop[TypographyCategory]), + ...resolveTableTypographyVariants(figmaTokensDesktop[TypographyCategory]), + }, + primitives: figmaTokensDesktop[PrimitivesCategory], + effects: figmaTokensDesktop[EffectCategory], + grid: figmaTokensDesktop[GridCategory], + surfacesAndText: figmaTokensDesktop[SurfacesAndTextCategory], + mappedSizesAndSpaces: figmaTokensDesktop[MappedSizesAndSpacesCategory], + themes: { + desktop: figmaTokensDesktop[ThemeCategory], + mobile: figmaTokensMobile[ThemeCategory], + }, +} as const diff --git a/packages/curve-ui-kit/src/shared/api/figma-tokens/resolve/resolver.ts b/packages/curve-ui-kit/src/shared/api/figma-tokens/resolve/resolver.ts new file mode 100644 index 00000000..19b4de3f --- /dev/null +++ b/packages/curve-ui-kit/src/shared/api/figma-tokens/resolve/resolver.ts @@ -0,0 +1,74 @@ +import type { CurveFigmaDesignTokens, ScreenType } from '../tokens' + +export type ResolvedValue = T extends { type: string; value: infer V } + ? V extends string + ? V extends `{${string}}` + ? ResolvedTokenValue + : V + : V + : T extends object + ? { [K in keyof T]: ResolvedValue } + : T + +export type ResolvedTokenValue = TokenPath extends `{${infer Path}}` + ? Path extends keyof TokenTree + ? TokenTree[Path] extends { value: infer V } + ? V + : never + : Path extends `${infer FirstKey}.${infer RestOfPath}` + ? FirstKey extends keyof TokenTree + ? ResolvedTokenValue + : ResolvedTokenValue + : never + : never + +export function resolveFigmaTokens( + tokenTree: T, + screenType: ScreenType = 'desktop', +): ResolvedValue { + const resolveTokenValue = (tokenValue: any, rootTokens: any): any => { + if (typeof tokenValue === 'object' && tokenValue !== null) { + if ('type' in tokenValue && 'value' in tokenValue) { + return resolveTokenValue(tokenValue.value, rootTokens) + } + return Object.fromEntries( + Object.entries(tokenValue).map(([key, val]) => [key, resolveTokenValue(val, rootTokens)]), + ) + } + if (typeof tokenValue === 'string' && tokenValue.startsWith('{') && tokenValue.endsWith('}')) { + const tokenPath = tokenValue.slice(1, -1).split('.') + const resolvedValue = resolveTokenPath(tokenPath, rootTokens) + + const finalValue = resolveTokenValue(resolvedValue, rootTokens) + + if (typeof finalValue === 'object') { + throw new Error( + `Unable to resolve token: ${tokenValue}. Resolved value is an object: ${JSON.stringify(finalValue)}`, + ) + } + return finalValue + } + return tokenValue + } + + const resolvePathSegment = (current: any, segment: string): any => { + if (segment in current) return current[segment] + if (screenType in current) return current[screenType] + if ('default' in current) return current.default + if ('inverted' in current) return current.inverted + if (!(segment in current)) return current + } + + const resolveTokenPath = (path: string[], root: any): any => { + return path.reduce((acc, segment) => { + const resolved = resolvePathSegment(acc, segment) + if (resolved === undefined) { + throw new Error(`Unable to resolve token: ${path.join('.')}`) + } + return resolved + }, root) + } + + const newTokenTree = JSON.parse(JSON.stringify(tokenTree)) + return resolveTokenValue(newTokenTree, newTokenTree) as ResolvedValue +} diff --git a/packages/curve-ui-kit/src/shared/api/figma-tokens/tokens/curve-figma-design.tokens.json b/packages/curve-ui-kit/src/shared/api/figma-tokens/tokens/curve-figma-design.tokens.json new file mode 100644 index 00000000..779a48a2 --- /dev/null +++ b/packages/curve-ui-kit/src/shared/api/figma-tokens/tokens/curve-figma-design.tokens.json @@ -0,0 +1,6103 @@ +{ + "00_grid": { + "12-col_main": { + "description": null, + "type": "custom-grid", + "value": { + "pattern": "columns", + "gutterSize": 24, + "alignment": "stretch", + "count": 12, + "offset": 36 + } + }, + "12-col_cards": { + "description": null, + "type": "custom-grid", + "value": { + "pattern": "columns", + "gutterSize": 24, + "alignment": "stretch", + "count": 12, + "offset": 24 + } + }, + "no margin": { + "12-col": { + "description": null, + "type": "custom-grid", + "value": { + "pattern": "columns", + "gutterSize": 24, + "alignment": "stretch", + "count": 12, + "offset": 0 + } + }, + "11-col": { + "description": null, + "type": "custom-grid", + "value": { + "pattern": "columns", + "gutterSize": 24, + "alignment": "stretch", + "count": 11, + "offset": 0 + } + }, + "10-col": { + "description": null, + "type": "custom-grid", + "value": { + "pattern": "columns", + "gutterSize": 24, + "alignment": "stretch", + "count": 10, + "offset": 0 + } + }, + "9-col": { + "description": null, + "type": "custom-grid", + "value": { + "pattern": "columns", + "gutterSize": 24, + "alignment": "stretch", + "count": 9, + "offset": 0 + } + }, + "8-col": { + "description": null, + "type": "custom-grid", + "value": { + "pattern": "columns", + "gutterSize": 24, + "alignment": "stretch", + "count": 8, + "offset": 0 + } + }, + "7-col": { + "description": null, + "type": "custom-grid", + "value": { + "pattern": "columns", + "gutterSize": 24, + "alignment": "stretch", + "count": 7, + "offset": 0 + } + }, + "6-col": { + "description": null, + "type": "custom-grid", + "value": { + "pattern": "columns", + "gutterSize": 24, + "alignment": "stretch", + "count": 6, + "offset": 0 + } + }, + "5-col": { + "description": null, + "type": "custom-grid", + "value": { + "pattern": "columns", + "gutterSize": 24, + "alignment": "stretch", + "count": 5, + "offset": 0 + } + }, + "4-col": { + "description": null, + "type": "custom-grid", + "value": { + "pattern": "columns", + "gutterSize": 24, + "alignment": "stretch", + "count": 4, + "offset": 0 + } + }, + "3-col": { + "description": null, + "type": "custom-grid", + "value": { + "pattern": "columns", + "gutterSize": 24, + "alignment": "stretch", + "count": 3, + "offset": 0 + } + }, + "2-col": { + "description": null, + "type": "custom-grid", + "value": { + "pattern": "columns", + "gutterSize": 24, + "alignment": "stretch", + "count": 2, + "offset": 0 + } + } + } + }, + "02_font": { + "heading": { + "xxl": { + "description": "To be used only in Hero Banners", + "type": "custom-fontStyle", + "value": { + "fontSize": 64, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 700, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": -2.56, + "lineHeight": 64, + "paragraphIndent": 0, + "paragraphSpacing": 0, + "textCase": "none" + } + }, + "mbold": { + "description": "To be used for large items, such as page titles, large navigation items", + "type": "custom-fontStyle", + "value": { + "fontSize": 32, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 700, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": -1.28, + "lineHeight": 36, + "paragraphIndent": 0, + "paragraphSpacing": 72, + "textCase": "uppercase" + } + }, + "mlight": { + "type": "custom-fontStyle", + "value": { + "fontSize": 32, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 500, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": -1.28, + "lineHeight": 36, + "paragraphIndent": 0, + "paragraphSpacing": 0, + "textCase": "uppercase" + } + }, + "sbold": { + "description": "To be used for medium items, such as section titles, small card titles, chart titles", + "type": "custom-fontStyle", + "value": { + "fontSize": 24, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 700, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": -0.48, + "lineHeight": 28, + "paragraphIndent": 0, + "paragraphSpacing": 16, + "textCase": "uppercase" + } + }, + "xsbold": { + "description": "To be used for the smallest highlighted items, such as small section titles, etc", + "type": "custom-fontStyle", + "value": { + "fontSize": 14, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 700, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": 0, + "lineHeight": 16, + "paragraphIndent": 0, + "paragraphSpacing": 0, + "textCase": "uppercase" + } + }, + "xsmedium": { + "type": "custom-fontStyle", + "value": { + "fontSize": 14, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 500, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": 0, + "lineHeight": 16, + "paragraphIndent": 0, + "paragraphSpacing": 0, + "textCase": "capitalize" + } + } + }, + "body": { + "mregular": { + "description": "For all the body of the app", + "type": "custom-fontStyle", + "value": { + "fontSize": 16, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 500, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": 0, + "lineHeight": 24, + "paragraphIndent": 0, + "paragraphSpacing": 12, + "textCase": "none" + } + }, + "mbold": { + "description": "For all the highlighted items of body of the app", + "type": "custom-fontStyle", + "value": { + "fontSize": 16, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 700, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": 0, + "lineHeight": 24, + "paragraphIndent": 0, + "paragraphSpacing": 12, + "textCase": "none" + } + }, + "sregular": { + "description": "For all the smaller informational items in the body of the app", + "type": "custom-fontStyle", + "value": { + "fontSize": 14, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 500, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": 0, + "lineHeight": 16, + "paragraphIndent": 0, + "paragraphSpacing": 8, + "textCase": "none" + } + }, + "sbold": { + "description": "For all the smaller informational items that need to be highlighted in the body of the app", + "type": "custom-fontStyle", + "value": { + "fontSize": 14, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 700, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": 0, + "lineHeight": 16, + "paragraphIndent": 0, + "paragraphSpacing": 8, + "textCase": "none" + } + }, + "xsregular": { + "description": "For the very fine details in the body of the app", + "type": "custom-fontStyle", + "value": { + "fontSize": 12, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 500, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": 0, + "lineHeight": 14, + "paragraphIndent": 0, + "paragraphSpacing": 8, + "textCase": "none" + } + }, + "xsbold": { + "description": "For the very fine details in the body of the app that need to be highlighted", + "type": "custom-fontStyle", + "value": { + "fontSize": 12, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 700, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": 0, + "lineHeight": 14, + "paragraphIndent": 0, + "paragraphSpacing": 8, + "textCase": "none" + } + } + }, + "button-label": { + "xs": { + "description": "To be used ONLY on button labels.", + "type": "custom-fontStyle", + "value": { + "fontSize": 14, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 700, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": 0, + "lineHeight": 16, + "paragraphIndent": 0, + "paragraphSpacing": 0, + "textCase": "none" + } + }, + "s": { + "description": "To be used ONLY on button labels.", + "type": "custom-fontStyle", + "value": { + "fontSize": 14, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 700, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": 0, + "lineHeight": 24, + "paragraphIndent": 0, + "paragraphSpacing": 20, + "textCase": "uppercase" + } + }, + "m": { + "description": "To be used ONLY on button labels.", + "type": "custom-fontStyle", + "value": { + "fontSize": 16, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 700, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": 0, + "lineHeight": 40, + "paragraphIndent": 0, + "paragraphSpacing": 0, + "textCase": "uppercase" + } + } + }, + "table": { + "header": { + "m": { + "type": "custom-fontStyle", + "value": { + "fontSize": 16, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 500, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": 0, + "lineHeight": 16, + "paragraphIndent": 0, + "paragraphSpacing": 16, + "textCase": "none" + } + }, + "s": { + "type": "custom-fontStyle", + "value": { + "fontSize": 14, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 500, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": 0, + "lineHeight": 14, + "paragraphIndent": 0, + "paragraphSpacing": 14, + "textCase": "none" + } + } + }, + "cell": { + "l": { + "description": "This style should never be used outside of a table cell.\nIt applies to the larger labels of items in the first row.", + "type": "custom-fontStyle", + "value": { + "fontSize": 20, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 700, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": 0, + "lineHeight": 20, + "paragraphIndent": 0, + "paragraphSpacing": 0, + "textCase": "none" + } + }, + "mregular": { + "description": "This style should never be used outside of a table cell.\nIt applies to the Default labels of items of the first line of a cell.", + "type": "custom-fontStyle", + "value": { + "fontSize": 16, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 500, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": 0, + "lineHeight": 16, + "paragraphIndent": 0, + "paragraphSpacing": 0, + "textCase": "none" + } + }, + "mbold": { + "description": "This style should never be used outside of a table cell.\nIt applies to highlighted items of the first line of a cell.", + "type": "custom-fontStyle", + "value": { + "fontSize": 16, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 600, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": 0, + "lineHeight": 16, + "paragraphIndent": 0, + "paragraphSpacing": 0, + "textCase": "none" + } + }, + "sregular": { + "description": "This style should never be used outside of a table cell.\nIt applies to default item of the second line of a cell.", + "type": "custom-fontStyle", + "value": { + "fontSize": 14, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 500, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": 0, + "lineHeight": 14, + "paragraphIndent": 0, + "paragraphSpacing": 0, + "textCase": "none" + } + }, + "sbold": { + "description": "This style should never be used outside of a table cell.\nIt applies to highlighted items of the second line of a cell.", + "type": "custom-fontStyle", + "value": { + "fontSize": 14, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 500, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": 0, + "lineHeight": 14, + "paragraphIndent": 0, + "paragraphSpacing": 0, + "textCase": "none" + } + } + } + }, + "highlighted": { + "xsnotional": { + "description": "To be used on indvidual numbers and values that need to be highlighted. Not to be used in tables.", + "type": "custom-fontStyle", + "value": { + "fontSize": 12, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 500, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": 0, + "lineHeight": 14, + "paragraphIndent": 0, + "paragraphSpacing": 0, + "textCase": "none" + } + }, + "xs": { + "description": "To be used on indvidual numbers and values that need to be highlighted. Not to be used in tables.", + "type": "custom-fontStyle", + "value": { + "fontSize": 12, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 700, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": 0, + "lineHeight": 14, + "paragraphIndent": 0, + "paragraphSpacing": 0, + "textCase": "none" + } + }, + "s": { + "description": "To be used on indvidual numbers and values that need to be highlighted. Not to be used in tables.", + "type": "custom-fontStyle", + "value": { + "fontSize": 14, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 700, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": 0, + "lineHeight": 16, + "paragraphIndent": 0, + "paragraphSpacing": 0, + "textCase": "none" + } + }, + "m": { + "description": "To be used on indvidual numbers and values that need to be highlighted. Not to be used in tables.", + "type": "custom-fontStyle", + "value": { + "fontSize": 16, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 700, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": 0, + "lineHeight": 16, + "paragraphIndent": 0, + "paragraphSpacing": 0, + "textCase": "none" + } + }, + "l": { + "type": "custom-fontStyle", + "value": { + "fontSize": 24, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 700, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": 0, + "lineHeight": 24, + "paragraphIndent": 0, + "paragraphSpacing": 0, + "textCase": "none" + } + }, + "xl": { + "description": "To be used on indvidual numbers and values that need to be highlighted. Not to be used in tables.", + "type": "custom-fontStyle", + "value": { + "fontSize": 32, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 700, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": -1.28, + "lineHeight": 36, + "paragraphIndent": 0, + "paragraphSpacing": 0, + "textCase": "none" + } + }, + "xxl": { + "description": "To be used on indvidual numbers and values that need to be highlighted. Not to be used in tables.", + "type": "custom-fontStyle", + "value": { + "fontSize": 64, + "textDecoration": "none", + "fontFamily": "Mona Sans", + "fontWeight": 700, + "fontStyle": "normal", + "fontStretch": "normal", + "letterSpacing": -2.56, + "lineHeight": 64, + "paragraphIndent": 0, + "paragraphSpacing": 0, + "textCase": "none" + } + } + } + }, + "00_effect": { + "activetabshadow": { + "0": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 0, + "color": "#0e3f7e0a", + "offsetX": 0, + "offsetY": 0, + "spread": 1 + } + }, + "1": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 1, + "color": "#2a33450a", + "offsetX": 1, + "offsetY": 0, + "spread": -0.5 + } + }, + "2": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 3, + "color": "#2a33460a", + "offsetX": 3, + "offsetY": 0, + "spread": -1.5 + } + }, + "3": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 6, + "color": "#2a33460a", + "offsetX": 6, + "offsetY": 0, + "spread": -3 + } + }, + "4": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 1, + "color": "#2a33450a", + "offsetX": -1, + "offsetY": 0, + "spread": -0.5 + } + }, + "5": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 3, + "color": "#2a33460a", + "offsetX": -3, + "offsetY": 0, + "spread": -1.5 + } + }, + "6": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 6, + "color": "#2a33460a", + "offsetX": -6, + "offsetY": 0, + "spread": -3 + } + }, + "description": null + }, + "elevation": { + "level 3": { + "0": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 0, + "color": "#2a334524", + "offsetX": 0, + "offsetY": 0, + "spread": 1 + } + }, + "1": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 1, + "color": "#2a334524", + "offsetX": 0, + "offsetY": 1, + "spread": -0.5 + } + }, + "2": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 3, + "color": "#2a334524", + "offsetX": 0, + "offsetY": 3, + "spread": -1.5 + } + }, + "3": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 8, + "color": "#2a334524", + "offsetX": 0, + "offsetY": 8, + "spread": -4 + } + }, + "4": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 16, + "color": "#2a334524", + "offsetX": 0, + "offsetY": 16, + "spread": -8 + } + }, + "5": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 32, + "color": "#2a33451a", + "offsetX": 0, + "offsetY": 32, + "spread": -16 + } + }, + "description": null + }, + "level 2": { + "0": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 0, + "color": "#2a334524", + "offsetX": 0, + "offsetY": 0, + "spread": 1 + } + }, + "1": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 1, + "color": "#2a334524", + "offsetX": 0, + "offsetY": 1, + "spread": -0.5 + } + }, + "2": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 3, + "color": "#2a334624", + "offsetX": 0, + "offsetY": 3, + "spread": -1.5 + } + }, + "3": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 6, + "color": "#2a334624", + "offsetX": 0, + "offsetY": 6, + "spread": -3 + } + }, + "4": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 8, + "color": "#2a334524", + "offsetX": 0, + "offsetY": 8, + "spread": -6 + } + }, + "5": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 12, + "color": "#2a334514", + "offsetX": 0, + "offsetY": 12, + "spread": -6 + } + }, + "description": null + }, + "level 1": { + "0": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 0, + "color": "#2a334524", + "offsetX": 0, + "offsetY": 0, + "spread": 1 + } + }, + "1": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 1, + "color": "#2a334524", + "offsetX": 0, + "offsetY": 1, + "spread": -0.5 + } + }, + "2": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 3, + "color": "#2a334624", + "offsetX": 0, + "offsetY": 3, + "spread": -1.5 + } + }, + "3": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 4, + "color": "#2a334524", + "offsetX": 0, + "offsetY": 4, + "spread": -2 + } + }, + "4": { + "type": "custom-shadow", + "value": { + "shadowType": "dropShadow", + "radius": 8, + "color": "#2a334514", + "offsetX": 0, + "offsetY": 8, + "spread": -8 + } + }, + "description": null + }, + "level -1": { + "description": null, + "type": "custom-shadow", + "value": { + "shadowType": "innerShadow", + "radius": 0, + "color": "#3b3833ff", + "offsetX": 1, + "offsetY": 1, + "spread": 0 + } + }, + "level -2": { + "description": null, + "type": "custom-shadow", + "value": { + "shadowType": "innerShadow", + "radius": 0, + "color": "#3b3833ff", + "offsetX": 2, + "offsetY": 2, + "spread": 0 + } + } + } + }, + "02_theme": { + "light": { + "layer": { + "1": { + "fill": { + "type": "color", + "value": "{01_surfaces&text.light.light.layer.1.fill}" + }, + "outline": { + "type": "color", + "value": "{01_surfaces&text.light.light.layer.1.outline}" + } + }, + "2": { + "fill": { + "type": "color", + "value": "{01_surfaces&text.light.light.layer.2.fill}" + }, + "outline": { + "type": "color", + "value": "{01_surfaces&text.light.light.layer.2.outline}" + } + }, + "3": { + "fill": { + "type": "color", + "value": "{01_surfaces&text.light.light.layer.3.fill}" + }, + "outline": { + "type": "color", + "value": "{01_surfaces&text.light.light.layer.3.outline}" + } + }, + "highlight": { + "outline": { + "type": "color", + "value": "{01_surfaces&text.light.light.layer.highlight}" + }, + "fill": { + "type": "color", + "value": "{01_surfaces&text.light.light.layer.highlight}" + } + }, + "app": { + "background": { + "type": "color", + "value": "#f0edebff", + "blendMode": "normal" + } + } + }, + "text": { + "textcolors": { + "primary": { + "type": "color", + "value": "{01_surfaces&text.light.light.text.primary}" + }, + "secondary": { + "type": "color", + "value": "{01_surfaces&text.light.light.text.secondary}" + }, + "tertiary": { + "type": "color", + "value": "{01_surfaces&text.light.light.text.tertiary}" + }, + "highlight": { + "type": "color", + "value": "{01_surfaces&text.light.light.text.highlight}" + }, + "disabled": { + "type": "color", + "value": "{01_surfaces&text.light.light.text.disabled}" + }, + "success": { + "type": "color", + "value": "{00_primitives.light.greens.500}" + }, + "alert": { + "type": "color", + "value": "{00_primitives.light.reds.500}" + }, + "warning": { + "type": "color", + "value": "{00_primitives.light.reds.400}" + } + }, + "fontfamily": { + "heading": { + "type": "string", + "value": "Mona Sans" + }, + "body": { + "type": "string", + "value": "Mona Sans" + }, + "mono": { + "type": "string", + "value": "Mona Sans" + }, + "button": { + "type": "string", + "value": "Mona Sans" + } + } + }, + "feedback": { + "warning": { + "type": "color", + "value": "{00_primitives.light.reds.300}" + }, + "success": { + "type": "color", + "value": "{00_primitives.light.greens.300}" + }, + "alert": { + "type": "color", + "value": "{00_primitives.light.reds.500}" + } + }, + "color": { + "neutral": { + "25": { + "type": "color", + "value": "{00_primitives.light.grays.25}" + }, + "50": { + "type": "color", + "value": "{00_primitives.light.grays.50}" + }, + "75": { + "type": "color", + "value": "{00_primitives.light.grays.75}" + }, + "100": { + "type": "color", + "value": "{00_primitives.light.grays.100}" + }, + "150": { + "type": "color", + "value": "{00_primitives.light.grays.150}" + }, + "200": { + "type": "color", + "value": "{00_primitives.light.grays.200}" + }, + "300": { + "type": "color", + "value": "{00_primitives.light.grays.300}" + }, + "400": { + "type": "color", + "value": "{00_primitives.light.grays.400}" + }, + "500": { + "type": "color", + "value": "{00_primitives.light.grays.500}" + }, + "600": { + "type": "color", + "value": "{00_primitives.light.grays.600}" + }, + "700": { + "type": "color", + "value": "{00_primitives.light.grays.700}" + }, + "750": { + "type": "color", + "value": "{00_primitives.light.grays.750}" + }, + "800": { + "type": "color", + "value": "{00_primitives.light.grays.800}" + }, + "850": { + "type": "color", + "value": "{00_primitives.light.grays.850}" + }, + "900": { + "type": "color", + "value": "{00_primitives.light.grays.900}" + }, + "950": { + "type": "color", + "value": "{00_primitives.light.grays.950}" + }, + "975": { + "type": "color", + "value": "{00_primitives.light.grays.975}" + } + }, + "primary": { + "50": { + "type": "color", + "value": "{00_primitives.light.blues.50}" + }, + "100": { + "type": "color", + "value": "{00_primitives.light.blues.100}" + }, + "200": { + "type": "color", + "value": "{00_primitives.light.blues.200}" + }, + "300": { + "type": "color", + "value": "{00_primitives.light.blues.300}" + }, + "400": { + "type": "color", + "value": "{00_primitives.light.blues.400}" + }, + "500": { + "type": "color", + "value": "{00_primitives.light.blues.500}" + }, + "600": { + "type": "color", + "value": "{00_primitives.light.blues.600}" + }, + "700": { + "type": "color", + "value": "{00_primitives.light.blues.700}" + }, + "800": { + "type": "color", + "value": "{00_primitives.light.blues.800}" + }, + "900": { + "type": "color", + "value": "{00_primitives.light.blues.900}" + }, + "950": { + "type": "color", + "value": "{00_primitives.light.blues.950}" + } + }, + "secondary": { + "100": { + "type": "color", + "value": "{00_primitives.light.greens.100}" + }, + "200": { + "type": "color", + "value": "{00_primitives.light.greens.200}" + }, + "300": { + "type": "color", + "value": "{00_primitives.light.greens.300}" + }, + "400": { + "type": "color", + "value": "{00_primitives.light.greens.400}" + }, + "500": { + "type": "color", + "value": "{00_primitives.light.greens.500}" + }, + "600": { + "type": "color", + "value": "{00_primitives.light.greens.600}" + }, + "700": { + "type": "color", + "value": "{00_primitives.light.greens.700}" + }, + "800": { + "type": "color", + "value": "{00_primitives.light.greens.800}" + } + }, + "tertiary": { + "200": { + "type": "color", + "value": "{00_primitives.light.reds.200}" + }, + "300": { + "type": "color", + "value": "{00_primitives.light.reds.300}" + }, + "400": { + "type": "color", + "value": "{00_primitives.light.reds.400}" + }, + "600": { + "type": "color", + "value": "{00_primitives.light.reds.500}" + } + } + }, + "button": { + "primary": { + "default": { + "label & icon": { + "type": "color", + "value": "{00_primitives.light.grays.50}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.light.blues.500}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{00_primitives.light.grays.50}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.light.grays.900}" + } + }, + "disabled": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.text.textcolors.disabled}" + }, + "fill": { + "type": "color", + "value": "{02_theme.light.button.primary.default.fill}" + } + } + }, + "focus outline width": { + "type": "dimension", + "value": 2 + }, + "focus outline": { + "type": "color", + "value": "{02_theme.light.color.primary.500}" + }, + "secondary": { + "default": { + "label & icon": { + "type": "color", + "value": "{00_primitives.light.grays.50}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.light.grays.900}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{00_primitives.light.grays.50}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.light.blues.500}" + } + }, + "disabled": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.text.textcolors.disabled}" + }, + "fill": { + "type": "color", + "value": "{02_theme.light.color.neutral.900}" + } + } + }, + "ghost": { + "default": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.text.textcolors.highlight}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{00_primitives.light.grays.50}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.light.grays.900}" + } + }, + "disabled": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.text.textcolors.disabled}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.light.grays.900}" + } + } + }, + "radius": { + "md": { + "type": "dimension", + "value": 0 + }, + "xs": { + "type": "dimension", + "value": 0 + }, + "sm": { + "type": "dimension", + "value": 0 + }, + "lg": { + "type": "dimension", + "value": 0 + } + }, + "success": { + "default": { + "label & icon": { + "type": "color", + "value": "{00_primitives.light.grays.900}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.light.greens.400}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{00_primitives.light.greens.300}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.light.grays.900}" + } + }, + "disabled": { + "label & icon": { + "type": "color", + "value": "{00_primitives.light.grays.950}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.light.greens.200}" + } + } + }, + "alert": { + "default": { + "label & icon": { + "type": "color", + "value": "{00_primitives.light.grays.50}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.light.reds.500}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{00_primitives.light.reds.400}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.light.grays.900}" + } + }, + "disabled": { + "label & icon": { + "type": "color", + "value": "{00_primitives.light.grays.50}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.light.reds.500}" + } + } + }, + "navigation": { + "default": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.text.textcolors.secondary}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.text.textcolors.primary}" + }, + "fill": { + "type": "color", + "value": "{02_theme.light.layer.1.fill}" + }, + "label & icon 2": { + "type": "color", + "value": "{02_theme.light.text.textcolors.primary}" + } + }, + "current": { + "label & icon": { + "type": "color", + "value": "{00_primitives.light.grays.50}" + }, + "fill": { + "type": "color", + "value": "{02_theme.light.layer.highlight.fill}" + } + } + }, + "outlined": { + "default": { + "label & icon": { + "type": "color", + "value": "{00_primitives.light.grays.950}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.light.grays.300}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{00_primitives.light.blues.500}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.light.blues.500}" + } + }, + "disabled": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.text.textcolors.disabled}" + }, + "outline": { + "type": "color", + "value": "{02_theme.light.text.textcolors.disabled}" + } + } + } + }, + "tabs": { + "contained": { + "default": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.text.textcolors.secondary}" + }, + "fill": { + "type": "color", + "value": "{02_theme.light.color.neutral.300}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.color.neutral.50}" + }, + "fill": { + "type": "color", + "value": "{02_theme.light.color.neutral.900}" + } + }, + "current": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.text.textcolors.highlight}" + }, + "fill": { + "type": "color", + "value": "{02_theme.light.layer.1.fill}" + }, + "outline": { + "type": "color", + "value": "{02_theme.light.layer.highlight.outline}" + } + }, + "active": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.color.neutral.50}" + }, + "fill": { + "type": "color", + "value": "{02_theme.light.layer.highlight.fill}" + }, + "outline": { + "type": "color", + "value": "{02_theme.light.color.neutral.500}" + } + } + }, + "underlined": { + "default": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.text.textcolors.secondary}" + }, + "outline": { + "type": "color", + "value": "{02_theme.light.layer.2.outline}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.text.textcolors.highlight}" + }, + "outline": { + "type": "color", + "value": "{02_theme.light.layer.highlight.outline}" + } + }, + "current": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.text.textcolors.primary}" + }, + "outline": { + "type": "color", + "value": "{02_theme.light.layer.highlight.outline}" + } + }, + "active": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.text.textcolors.highlight}" + }, + "outline": { + "type": "color", + "value": "{02_theme.light.color.neutral.500}" + } + }, + "container border": { + "type": "color", + "value": "{01_surfaces&text.light.light.layer.1.outline}" + } + }, + "overlined": { + "default": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.text.textcolors.secondary}" + }, + "outline": { + "type": "color", + "value": "{02_theme.light.layer.2.outline}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.text.textcolors.primary}" + }, + "outline": { + "type": "color", + "value": "{02_theme.light.color.neutral.500}" + } + }, + "current": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.text.textcolors.primary}" + }, + "outline": { + "type": "color", + "value": "{02_theme.light.layer.highlight.outline}" + }, + "fill": { + "type": "color", + "value": "{01_surfaces&text.light.light.layer.3.fill}" + } + }, + "active": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.text.textcolors.highlight}" + }, + "outline": { + "type": "color", + "value": "{02_theme.light.color.neutral.500}" + } + } + } + }, + "toggles": { + "default": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.text.textcolors.primary}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.text.textcolors.highlight}" + }, + "fill": { + "type": "color", + "value": "{02_theme.light.layer.3.fill}" + } + }, + "current": { + "label & icon": { + "type": "color", + "value": "{00_primitives.light.grays.50}" + }, + "fill": { + "type": "color", + "value": "{02_theme.light.color.neutral.900}" + } + } + }, + "radius": { + "md": { + "type": "color", + "value": "{01_mapped_sizes&spaces.light.radius.md}" + }, + "xl": { + "type": "color", + "value": "{01_mapped_sizes&spaces.light.radius.lg}" + }, + "sm": { + "type": "color", + "value": "{01_mapped_sizes&spaces.light.radius.sm}" + }, + "xs": { + "type": "color", + "value": "{01_mapped_sizes&spaces.light.radius.xs}" + }, + "square": { + "type": "dimension", + "value": 0 + }, + "rounded": { + "type": "dimension", + "value": "{01_mapped_sizes&spaces.light.radius.round}" + } + }, + "chips": { + "default": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.text.textcolors.secondary}" + }, + "fill": { + "type": "color", + "value": "{02_theme.light.layer.2.fill}" + }, + "stroke": { + "type": "color", + "value": "{02_theme.light.layer.2.outline}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.color.neutral.50}" + }, + "fill": { + "type": "color", + "value": "{02_theme.light.color.neutral.900}" + } + }, + "current": { + "label & icon": { + "type": "color", + "value": "{02_theme.light.text.textcolors.highlight}" + }, + "fill": { + "type": "color", + "value": "{02_theme.light.layer.2.fill}" + }, + "outline": { + "type": "color", + "value": "{02_theme.light.layer.highlight.outline}" + } + } + }, + "table": { + "header fill": { + "type": "color", + "value": "{01_surfaces&text.light.light.tables.header fill}" + } + }, + "input & select": { + "base": { + "default": { + "fill": { + "type": "color", + "value": "{00_primitives.light.grays.100}" + }, + "border": { + "default": { + "type": "color", + "value": "{00_primitives.light.grays.400}" + }, + "error": { + "type": "color", + "value": "{02_theme.light.feedback.alert}" + }, + "active": { + "type": "color", + "value": "{01_surfaces&text.light.light.text.highlight}" + }, + "filled": { + "type": "color", + "value": "{00_primitives.light.grays.850}" + } + } + }, + "nested": { + "nested": { + "type": "color", + "value": "{00_primitives.light.grays.10}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.light.grays.100}" + }, + "border": { + "default": { + "type": "color", + "value": "{00_primitives.light.grays.400}" + }, + "active": { + "type": "color", + "value": "{01_surfaces&text.light.light.text.highlight}" + }, + "filled": { + "type": "color", + "value": "{00_primitives.light.grays.850}" + }, + "error": { + "type": "color", + "value": "{02_theme.light.feedback.alert}" + } + } + } + }, + "large": { + "default": { + "fill": { + "type": "color", + "value": "{00_primitives.light.grays.150}" + } + } + } + } + }, + "dark": { + "layer": { + "1": { + "fill": { + "type": "color", + "value": "{01_surfaces&text.dark.dark.layer.1.fill}" + }, + "outline": { + "type": "color", + "value": "{01_surfaces&text.dark.dark.layer.1.outline}" + } + }, + "2": { + "fill": { + "type": "color", + "value": "{01_surfaces&text.dark.dark.layer.2.fill}" + }, + "outline": { + "type": "color", + "value": "{01_surfaces&text.dark.dark.layer.2.outline}" + } + }, + "3": { + "fill": { + "type": "color", + "value": "{01_surfaces&text.dark.dark.layer.3.fill}" + }, + "outline": { + "type": "color", + "value": "{01_surfaces&text.dark.dark.layer.3.outline}" + } + }, + "highlight": { + "outline": { + "type": "color", + "value": "{01_surfaces&text.dark.dark.layer.highlight}" + }, + "fill": { + "type": "color", + "value": "{01_surfaces&text.dark.dark.layer.highlight}" + } + }, + "app": { + "background": { + "type": "color", + "value": "#12110fff", + "blendMode": "normal" + } + } + }, + "text": { + "textcolors": { + "primary": { + "type": "color", + "value": "{01_surfaces&text.dark.dark.text.primary}" + }, + "secondary": { + "type": "color", + "value": "{01_surfaces&text.dark.dark.text.secondary}" + }, + "tertiary": { + "type": "color", + "value": "{01_surfaces&text.dark.dark.text.tertiary}" + }, + "highlight": { + "type": "color", + "value": "{01_surfaces&text.dark.dark.text.highlight}" + }, + "disabled": { + "type": "color", + "value": "{01_surfaces&text.dark.dark.text.disabled}" + }, + "success": { + "type": "color", + "value": "{00_primitives.dark.greens.400}" + }, + "alert": { + "type": "color", + "value": "{00_primitives.dark.reds.500}" + }, + "warning": { + "type": "color", + "value": "{00_primitives.dark.reds.300}" + } + }, + "fontfamily": { + "heading": { + "type": "string", + "value": "Mona Sans" + }, + "body": { + "type": "string", + "value": "Mona Sans" + }, + "mono": { + "type": "string", + "value": "Mona Sans" + }, + "button": { + "type": "string", + "value": "Mona Sans" + } + } + }, + "feedback": { + "warning": { + "type": "color", + "value": "{00_primitives.dark.reds.300}" + }, + "success": { + "type": "color", + "value": "{00_primitives.dark.greens.400}" + }, + "alert": { + "type": "color", + "value": "{00_primitives.dark.reds.500}" + } + }, + "color": { + "neutral": { + "25": { + "type": "color", + "value": "{00_primitives.dark.grays.975}" + }, + "50": { + "type": "color", + "value": "{00_primitives.dark.grays.950}" + }, + "75": { + "type": "color", + "value": "{00_primitives.dark.grays.900}" + }, + "100": { + "type": "color", + "value": "{00_primitives.dark.grays.850}" + }, + "150": { + "type": "color", + "value": "{00_primitives.dark.grays.800}" + }, + "200": { + "type": "color", + "value": "{00_primitives.dark.grays.750}" + }, + "300": { + "type": "color", + "value": "{00_primitives.dark.grays.700}" + }, + "400": { + "type": "color", + "value": "{00_primitives.dark.grays.600}" + }, + "500": { + "type": "color", + "value": "{00_primitives.dark.grays.500}" + }, + "600": { + "type": "color", + "value": "{00_primitives.dark.grays.400}" + }, + "700": { + "type": "color", + "value": "{00_primitives.dark.grays.300}" + }, + "750": { + "type": "color", + "value": "{00_primitives.dark.grays.200}" + }, + "800": { + "type": "color", + "value": "{00_primitives.dark.grays.150}" + }, + "850": { + "type": "color", + "value": "{00_primitives.dark.grays.100}" + }, + "900": { + "type": "color", + "value": "{00_primitives.dark.grays.75}" + }, + "950": { + "type": "color", + "value": "{00_primitives.dark.grays.50}" + }, + "975": { + "type": "color", + "value": "{00_primitives.dark.grays.25}" + } + }, + "primary": { + "50": { + "type": "color", + "value": "{00_primitives.dark.blues.950}" + }, + "100": { + "type": "color", + "value": "{00_primitives.dark.blues.900}" + }, + "200": { + "type": "color", + "value": "{00_primitives.dark.blues.800}" + }, + "300": { + "type": "color", + "value": "{00_primitives.dark.blues.700}" + }, + "400": { + "type": "color", + "value": "{00_primitives.dark.blues.600}" + }, + "500": { + "type": "color", + "value": "{00_primitives.dark.blues.500}" + }, + "600": { + "type": "color", + "value": "{00_primitives.dark.blues.400}" + }, + "700": { + "type": "color", + "value": "{00_primitives.dark.blues.300}" + }, + "800": { + "type": "color", + "value": "{00_primitives.dark.blues.200}" + }, + "900": { + "type": "color", + "value": "{00_primitives.dark.blues.100}" + }, + "950": { + "type": "color", + "value": "{00_primitives.dark.blues.50}" + } + }, + "secondary": { + "100": { + "type": "color", + "value": "{00_primitives.dark.greens.800}" + }, + "200": { + "type": "color", + "value": "{00_primitives.dark.greens.700}" + }, + "300": { + "type": "color", + "value": "{00_primitives.dark.greens.600}" + }, + "400": { + "type": "color", + "value": "{00_primitives.dark.greens.500}" + }, + "500": { + "type": "color", + "value": "{00_primitives.dark.greens.400}" + }, + "600": { + "type": "color", + "value": "{00_primitives.dark.greens.300}" + }, + "700": { + "type": "color", + "value": "{00_primitives.dark.greens.200}" + }, + "800": { + "type": "color", + "value": "{00_primitives.dark.greens.100}" + } + }, + "tertiary": { + "200": { + "type": "color", + "value": "{00_primitives.dark.reds.500}" + }, + "300": { + "type": "color", + "value": "{00_primitives.dark.reds.400}" + }, + "400": { + "type": "color", + "value": "{00_primitives.dark.reds.300}" + }, + "600": { + "type": "color", + "value": "{00_primitives.dark.reds.200}" + } + } + }, + "button": { + "primary": { + "default": { + "label & icon": { + "type": "color", + "value": "{00_primitives.dark.grays.50}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.dark.blues.500}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{00_primitives.dark.grays.900}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.dark.grays.50}" + } + }, + "disabled": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.text.textcolors.disabled}" + }, + "fill": { + "type": "color", + "value": "{02_theme.dark.button.primary.default.fill}" + } + } + }, + "focus outline width": { + "type": "dimension", + "value": 2 + }, + "focus outline": { + "type": "color", + "value": "{02_theme.dark.color.primary.500}" + }, + "secondary": { + "default": { + "label & icon": { + "type": "color", + "value": "{00_primitives.dark.grays.900}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.dark.grays.50}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{00_primitives.dark.grays.900}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.dark.blues.500}" + } + }, + "disabled": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.text.textcolors.disabled}" + }, + "fill": { + "type": "color", + "value": "{02_theme.dark.color.neutral.50}" + } + } + }, + "ghost": { + "default": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.text.textcolors.primary}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{00_primitives.dark.blues.800}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.dark.grays.50}" + } + }, + "disabled": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.text.textcolors.disabled}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.dark.grays.850}" + } + } + }, + "radius": { + "md": { + "type": "dimension", + "value": 0 + }, + "xs": { + "type": "dimension", + "value": 0 + }, + "sm": { + "type": "dimension", + "value": 0 + }, + "lg": { + "type": "dimension", + "value": 0 + } + }, + "success": { + "default": { + "label & icon": { + "type": "color", + "value": "{00_primitives.dark.grays.900}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.dark.greens.300}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{00_primitives.dark.greens.500}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.dark.grays.50}" + } + }, + "disabled": { + "label & icon": { + "type": "color", + "value": "{00_primitives.dark.grays.950}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.dark.greens.200}" + } + } + }, + "alert": { + "default": { + "label & icon": { + "type": "color", + "value": "{00_primitives.dark.grays.50}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.dark.reds.500}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{00_primitives.dark.reds.400}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.dark.grays.900}" + } + }, + "disabled": { + "label & icon": { + "type": "color", + "value": "{00_primitives.dark.grays.50}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.dark.reds.500}" + } + } + }, + "navigation": { + "default": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.text.textcolors.secondary}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.text.textcolors.primary}" + }, + "fill": { + "type": "color", + "value": "{02_theme.dark.layer.1.fill}" + }, + "label & icon 2": { + "type": "color", + "value": "{02_theme.dark.text.textcolors.primary}" + } + }, + "current": { + "label & icon": { + "type": "color", + "value": "{00_primitives.dark.grays.50}" + }, + "fill": { + "type": "color", + "value": "{02_theme.dark.layer.highlight.fill}" + } + } + }, + "outlined": { + "default": { + "label & icon": { + "type": "color", + "value": "{00_primitives.dark.grays.50}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.dark.grays.700}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{00_primitives.dark.blues.500}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.dark.blues.500}" + } + }, + "disabled": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.text.textcolors.disabled}" + }, + "outline": { + "type": "color", + "value": "{02_theme.dark.text.textcolors.disabled}" + } + } + } + }, + "tabs": { + "contained": { + "default": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.text.textcolors.secondary}" + }, + "fill": { + "type": "color", + "value": "{02_theme.dark.color.neutral.200}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.color.neutral.50}" + }, + "fill": { + "type": "color", + "value": "{02_theme.dark.color.neutral.900}" + } + }, + "current": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.color.neutral.950}" + }, + "fill": { + "type": "color", + "value": "{02_theme.dark.layer.1.fill}" + }, + "outline": { + "type": "color", + "value": "{02_theme.dark.layer.highlight.outline}" + } + }, + "active": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.color.neutral.950}" + }, + "fill": { + "type": "color", + "value": "{02_theme.dark.layer.highlight.fill}" + }, + "outline": { + "type": "color", + "value": "{02_theme.dark.color.neutral.500}" + } + } + }, + "underlined": { + "default": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.text.textcolors.secondary}" + }, + "outline": { + "type": "color", + "value": "{02_theme.dark.layer.2.outline}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.text.textcolors.highlight}" + }, + "outline": { + "type": "color", + "value": "{02_theme.dark.layer.highlight.outline}" + } + }, + "current": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.text.textcolors.primary}" + }, + "outline": { + "type": "color", + "value": "{02_theme.dark.layer.highlight.outline}" + } + }, + "active": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.text.textcolors.highlight}" + }, + "outline": { + "type": "color", + "value": "{02_theme.dark.color.neutral.500}" + } + }, + "container border": { + "type": "color", + "value": "{01_surfaces&text.dark.dark.layer.1.outline}" + } + }, + "overlined": { + "default": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.text.textcolors.secondary}" + }, + "outline": { + "type": "color", + "value": "{02_theme.dark.layer.2.outline}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.text.textcolors.primary}" + }, + "outline": { + "type": "color", + "value": "{02_theme.dark.color.neutral.500}" + } + }, + "current": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.text.textcolors.primary}" + }, + "outline": { + "type": "color", + "value": "{02_theme.dark.layer.highlight.outline}" + }, + "fill": { + "type": "color", + "value": "{01_surfaces&text.dark.dark.layer.3.fill}" + } + }, + "active": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.text.textcolors.highlight}" + }, + "outline": { + "type": "color", + "value": "{02_theme.dark.color.neutral.500}" + } + } + } + }, + "toggles": { + "default": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.text.textcolors.primary}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.text.textcolors.highlight}" + }, + "fill": { + "type": "color", + "value": "{02_theme.dark.layer.3.fill}" + } + }, + "current": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.color.neutral.950}" + }, + "fill": { + "type": "color", + "value": "{02_theme.dark.color.neutral.900}" + } + } + }, + "radius": { + "md": { + "type": "color", + "value": "{01_mapped_sizes&spaces.dark.radius.md}" + }, + "xl": { + "type": "color", + "value": "{01_mapped_sizes&spaces.dark.radius.lg}" + }, + "sm": { + "type": "color", + "value": "{01_mapped_sizes&spaces.dark.radius.sm}" + }, + "xs": { + "type": "color", + "value": "{01_mapped_sizes&spaces.dark.radius.xs}" + }, + "square": { + "type": "dimension", + "value": 0 + }, + "rounded": { + "type": "dimension", + "value": "{01_mapped_sizes&spaces.dark.radius.round}" + } + }, + "chips": { + "default": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.text.textcolors.secondary}" + }, + "fill": { + "type": "color", + "value": "{02_theme.dark.layer.2.fill}" + }, + "stroke": { + "type": "color", + "value": "{02_theme.dark.layer.2.outline}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.color.neutral.50}" + }, + "fill": { + "type": "color", + "value": "{02_theme.dark.color.neutral.900}" + } + }, + "current": { + "label & icon": { + "type": "color", + "value": "{02_theme.dark.color.neutral.950}" + }, + "fill": { + "type": "color", + "value": "{02_theme.dark.layer.2.fill}" + }, + "outline": { + "type": "color", + "value": "{02_theme.dark.layer.highlight.outline}" + } + } + }, + "table": { + "header fill": { + "type": "color", + "value": "{01_surfaces&text.dark.dark.tables.header fill}" + } + }, + "input & select": { + "base": { + "default": { + "fill": { + "type": "color", + "value": "{00_primitives.dark.grays.850}" + }, + "border": { + "default": { + "type": "color", + "value": "{00_primitives.dark.grays.600}" + }, + "error": { + "type": "color", + "value": "{02_theme.dark.feedback.alert}" + }, + "active": { + "type": "color", + "value": "{01_surfaces&text.dark.dark.text.highlight}" + }, + "filled": { + "type": "color", + "value": "{00_primitives.dark.grays.75}" + } + } + }, + "nested": { + "nested": { + "type": "color", + "value": "{00_primitives.dark.grays.850}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.dark.grays.850}" + }, + "border": { + "default": { + "type": "color", + "value": "{00_primitives.dark.grays.600}" + }, + "active": { + "type": "color", + "value": "{01_surfaces&text.dark.dark.text.highlight}" + }, + "filled": { + "type": "color", + "value": "{00_primitives.dark.grays.75}" + }, + "error": { + "type": "color", + "value": "{02_theme.dark.feedback.alert}" + } + } + } + }, + "large": { + "default": { + "fill": { + "type": "color", + "value": "{00_primitives.dark.grays.975}" + } + } + } + } + }, + "chad": { + "layer": { + "1": { + "fill": { + "type": "color", + "value": "{01_surfaces&text.chad.chad.layer.1.fill}" + }, + "outline": { + "type": "color", + "value": "{01_surfaces&text.chad.chad.layer.1.outline}" + } + }, + "2": { + "fill": { + "type": "color", + "value": "{01_surfaces&text.chad.chad.layer.2.fill}" + }, + "outline": { + "type": "color", + "value": "{01_surfaces&text.chad.chad.layer.2.outline}" + } + }, + "3": { + "fill": { + "type": "color", + "value": "{01_surfaces&text.chad.chad.layer.3.fill}" + }, + "outline": { + "type": "color", + "value": "{01_surfaces&text.chad.chad.layer.3.outline}" + } + }, + "highlight": { + "outline": { + "type": "color", + "value": "{01_surfaces&text.chad.chad.layer.highlight}" + }, + "fill": { + "type": "color", + "value": "{01_surfaces&text.chad.chad.layer.highlight}" + } + }, + "app": { + "background": { + "type": "color", + "value": "#f2f2f7ff", + "blendMode": "normal" + } + } + }, + "text": { + "textcolors": { + "primary": { + "type": "color", + "value": "{01_surfaces&text.chad.chad.text.primary}" + }, + "secondary": { + "type": "color", + "value": "{01_surfaces&text.chad.chad.text.secondary}" + }, + "tertiary": { + "type": "color", + "value": "{01_surfaces&text.chad.chad.text.tertiary}" + }, + "highlight": { + "type": "color", + "value": "{01_surfaces&text.chad.chad.text.highlight}" + }, + "disabled": { + "type": "color", + "value": "{01_surfaces&text.chad.chad.text.disabled}" + }, + "success": { + "type": "color", + "value": "{00_primitives.chad.greens.500}" + }, + "alert": { + "type": "color", + "value": "{00_primitives.chad.reds.500}" + }, + "warning": { + "type": "color", + "value": "{00_primitives.chad.reds.400}" + } + }, + "fontfamily": { + "heading": { + "type": "string", + "value": "Minecraft" + }, + "body": { + "type": "string", + "value": "Hubot Sans" + }, + "mono": { + "type": "string", + "value": "Hubot Sans" + }, + "button": { + "type": "string", + "value": "Minecraft" + } + } + }, + "feedback": { + "warning": { + "type": "color", + "value": "{00_primitives.chad.reds.300}" + }, + "success": { + "type": "color", + "value": "{00_primitives.chad.greens.400}" + }, + "alert": { + "type": "color", + "value": "{00_primitives.chad.reds.500}" + } + }, + "color": { + "neutral": { + "25": { + "type": "color", + "value": "{00_primitives.chad.grays.25}" + }, + "50": { + "type": "color", + "value": "{00_primitives.chad.grays.50}" + }, + "75": { + "type": "color", + "value": "{00_primitives.chad.grays.75}" + }, + "100": { + "type": "color", + "value": "{00_primitives.chad.grays.100}" + }, + "150": { + "type": "color", + "value": "{00_primitives.chad.grays.150}" + }, + "200": { + "type": "color", + "value": "{00_primitives.chad.grays.200}" + }, + "300": { + "type": "color", + "value": "{00_primitives.chad.grays.300}" + }, + "400": { + "type": "color", + "value": "{00_primitives.chad.grays.400}" + }, + "500": { + "type": "color", + "value": "{00_primitives.chad.grays.500}" + }, + "600": { + "type": "color", + "value": "{00_primitives.chad.grays.600}" + }, + "700": { + "type": "color", + "value": "{00_primitives.chad.grays.700}" + }, + "750": { + "type": "color", + "value": "{00_primitives.chad.grays.750}" + }, + "800": { + "type": "color", + "value": "{00_primitives.chad.grays.800}" + }, + "850": { + "type": "color", + "value": "{00_primitives.chad.grays.850}" + }, + "900": { + "type": "color", + "value": "{00_primitives.chad.grays.900}" + }, + "950": { + "type": "color", + "value": "{00_primitives.chad.grays.950}" + }, + "975": { + "type": "color", + "value": "{00_primitives.chad.grays.975}" + } + }, + "primary": { + "50": { + "type": "color", + "value": "{00_primitives.chad.violet.50}" + }, + "100": { + "type": "color", + "value": "{00_primitives.chad.violet.100}" + }, + "200": { + "type": "color", + "value": "{00_primitives.chad.violet.200}" + }, + "300": { + "type": "color", + "value": "{00_primitives.chad.violet.300}" + }, + "400": { + "type": "color", + "value": "{00_primitives.chad.violet.400}" + }, + "500": { + "type": "color", + "value": "{00_primitives.chad.violet.500}" + }, + "600": { + "type": "color", + "value": "{00_primitives.chad.violet.600}" + }, + "700": { + "type": "color", + "value": "{00_primitives.chad.violet.700}" + }, + "800": { + "type": "color", + "value": "{00_primitives.chad.violet.800}" + }, + "900": { + "type": "color", + "value": "{00_primitives.chad.violet.900}" + }, + "950": { + "type": "color", + "value": "{00_primitives.chad.violet.950}" + } + }, + "secondary": { + "100": { + "type": "color", + "value": "{00_primitives.chad.greens.100}" + }, + "200": { + "type": "color", + "value": "{00_primitives.chad.greens.200}" + }, + "300": { + "type": "color", + "value": "{00_primitives.chad.greens.300}" + }, + "400": { + "type": "color", + "value": "{00_primitives.chad.greens.400}" + }, + "500": { + "type": "color", + "value": "{00_primitives.chad.greens.500}" + }, + "600": { + "type": "color", + "value": "{00_primitives.chad.greens.600}" + }, + "700": { + "type": "color", + "value": "{00_primitives.chad.greens.700}" + }, + "800": { + "type": "color", + "value": "{00_primitives.chad.greens.800}" + } + }, + "tertiary": { + "200": { + "type": "color", + "value": "{00_primitives.chad.reds.200}" + }, + "300": { + "type": "color", + "value": "{00_primitives.chad.reds.300}" + }, + "400": { + "type": "color", + "value": "{00_primitives.chad.reds.400}" + }, + "600": { + "type": "color", + "value": "{00_primitives.chad.reds.500}" + } + } + }, + "button": { + "primary": { + "default": { + "label & icon": { + "type": "color", + "value": "{00_primitives.chad.grays.50}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.chad.violet.500}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{00_primitives.chad.grays.50}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.chad.grays.900}" + } + }, + "disabled": { + "label & icon": { + "type": "color", + "value": "{02_theme.chad.text.textcolors.disabled}" + }, + "fill": { + "type": "color", + "value": "{02_theme.chad.button.primary.default.fill}" + } + } + }, + "focus outline width": { + "type": "dimension", + "value": 2 + }, + "focus outline": { + "type": "color", + "value": "{02_theme.chad.color.primary.600}" + }, + "secondary": { + "default": { + "label & icon": { + "type": "color", + "value": "{00_primitives.chad.grays.50}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.chad.violet.900}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{00_primitives.chad.grays.50}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.chad.violet.500}" + } + }, + "disabled": { + "label & icon": { + "type": "color", + "value": "{02_theme.chad.text.textcolors.disabled}" + }, + "fill": { + "type": "color", + "value": "{02_theme.chad.color.primary.950}" + } + } + }, + "ghost": { + "default": { + "label & icon": { + "type": "color", + "value": "{02_theme.chad.text.textcolors.highlight}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{00_primitives.chad.grays.50}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.chad.violet.500}" + } + }, + "disabled": { + "label & icon": { + "type": "color", + "value": "{02_theme.chad.text.textcolors.disabled}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.chad.violet.950}" + } + } + }, + "radius": { + "md": { + "type": "dimension", + "value": 0 + }, + "xs": { + "type": "dimension", + "value": 0 + }, + "sm": { + "type": "dimension", + "value": 0 + }, + "lg": { + "type": "dimension", + "value": 0 + } + }, + "success": { + "default": { + "label & icon": { + "type": "color", + "value": "{00_primitives.chad.grays.900}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.chad.greens.400}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{00_primitives.chad.greens.500}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.chad.grays.900}" + } + }, + "disabled": { + "label & icon": { + "type": "color", + "value": "{00_primitives.chad.grays.950}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.chad.greens.200}" + } + } + }, + "alert": { + "default": { + "label & icon": { + "type": "color", + "value": "{00_primitives.chad.grays.50}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.chad.reds.500}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{00_primitives.chad.reds.400}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.chad.grays.900}" + } + }, + "disabled": { + "label & icon": { + "type": "color", + "value": "{00_primitives.chad.grays.50}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.chad.reds.500}" + } + } + }, + "navigation": { + "default": { + "label & icon": { + "type": "color", + "value": "{02_theme.chad.text.textcolors.secondary}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{02_theme.chad.text.textcolors.primary}" + }, + "fill": { + "type": "color", + "value": "{02_theme.chad.layer.1.fill}" + }, + "label & icon 2": { + "type": "color", + "value": "{02_theme.chad.text.textcolors.primary}" + } + }, + "current": { + "label & icon": { + "type": "color", + "value": "{00_primitives.chad.grays.950}" + }, + "fill": { + "type": "color", + "value": "{02_theme.chad.layer.highlight.fill}" + } + } + }, + "outlined": { + "default": { + "label & icon": { + "type": "color", + "value": "{00_primitives.chad.grays.950}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.chad.grays.300}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{00_primitives.chad.violet.500}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.chad.violet.500}" + } + }, + "disabled": { + "label & icon": { + "type": "color", + "value": "{02_theme.chad.text.textcolors.disabled}" + }, + "outline": { + "type": "color", + "value": "{02_theme.chad.text.textcolors.disabled}" + } + } + } + }, + "tabs": { + "contained": { + "default": { + "label & icon": { + "type": "color", + "value": "{02_theme.chad.text.textcolors.secondary}" + }, + "fill": { + "type": "color", + "value": "{02_theme.chad.color.primary.200}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{02_theme.chad.color.neutral.50}" + }, + "fill": { + "type": "color", + "value": "{02_theme.chad.color.primary.950}" + } + }, + "current": { + "label & icon": { + "type": "color", + "value": "{02_theme.chad.text.textcolors.primary}" + }, + "fill": { + "type": "color", + "value": "{02_theme.chad.layer.1.fill}" + }, + "outline": { + "type": "color", + "value": "{02_theme.chad.layer.highlight.outline}" + } + }, + "active": { + "label & icon": { + "type": "color", + "value": "{00_primitives.chad.grays.900}" + }, + "fill": { + "type": "color", + "value": "{02_theme.chad.layer.highlight.fill}" + }, + "outline": { + "type": "color", + "value": "{02_theme.chad.color.neutral.500}" + } + } + }, + "underlined": { + "default": { + "label & icon": { + "type": "color", + "value": "{02_theme.chad.text.textcolors.secondary}" + }, + "outline": { + "type": "color", + "value": "{02_theme.chad.layer.2.outline}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{02_theme.chad.text.textcolors.highlight}" + }, + "outline": { + "type": "color", + "value": "{02_theme.chad.layer.highlight.outline}" + } + }, + "current": { + "label & icon": { + "type": "color", + "value": "{02_theme.chad.text.textcolors.primary}" + }, + "outline": { + "type": "color", + "value": "{02_theme.chad.layer.highlight.outline}" + } + }, + "active": { + "label & icon": { + "type": "color", + "value": "{02_theme.chad.text.textcolors.highlight}" + }, + "outline": { + "type": "color", + "value": "{02_theme.chad.color.neutral.500}" + } + }, + "container border": { + "type": "color", + "value": "{02_theme.chad.layer.1.outline}" + } + }, + "overlined": { + "default": { + "label & icon": { + "type": "color", + "value": "{02_theme.chad.text.textcolors.secondary}" + }, + "outline": { + "type": "color", + "value": "{02_theme.chad.layer.2.outline}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{02_theme.chad.text.textcolors.primary}" + }, + "outline": { + "type": "color", + "value": "{02_theme.chad.color.neutral.500}" + } + }, + "current": { + "label & icon": { + "type": "color", + "value": "{02_theme.chad.text.textcolors.highlight}" + }, + "outline": { + "type": "color", + "value": "{02_theme.chad.layer.highlight.outline}" + }, + "fill": { + "type": "color", + "value": "{01_surfaces&text.chad.chad.layer.3.fill}" + } + }, + "active": { + "label & icon": { + "type": "color", + "value": "{02_theme.chad.text.textcolors.highlight}" + }, + "outline": { + "type": "color", + "value": "{02_theme.chad.color.neutral.500}" + } + } + } + }, + "toggles": { + "default": { + "label & icon": { + "type": "color", + "value": "{02_theme.chad.text.textcolors.primary}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{02_theme.chad.text.textcolors.highlight}" + }, + "fill": { + "type": "color", + "value": "{02_theme.chad.layer.3.fill}" + } + }, + "current": { + "label & icon": { + "type": "color", + "value": "{00_primitives.chad.grays.50}" + }, + "fill": { + "type": "color", + "value": "{02_theme.chad.color.primary.800}" + } + } + }, + "radius": { + "md": { + "type": "dimension", + "value": 0 + }, + "xl": { + "type": "dimension", + "value": 0 + }, + "sm": { + "type": "dimension", + "value": 0 + }, + "xs": { + "type": "dimension", + "value": 0 + }, + "square": { + "type": "dimension", + "value": 0 + }, + "rounded": { + "type": "dimension", + "value": 0 + } + }, + "chips": { + "default": { + "label & icon": { + "type": "color", + "value": "{02_theme.chad.text.textcolors.secondary}" + }, + "fill": { + "type": "color", + "value": "{02_theme.chad.layer.1.fill}" + }, + "stroke": { + "type": "color", + "value": "{02_theme.chad.layer.2.outline}" + } + }, + "hover": { + "label & icon": { + "type": "color", + "value": "{02_theme.chad.color.neutral.50}" + }, + "fill": { + "type": "color", + "value": "{02_theme.chad.color.primary.950}" + } + }, + "current": { + "label & icon": { + "type": "color", + "value": "{02_theme.chad.text.textcolors.primary}" + }, + "fill": { + "type": "color", + "value": "{02_theme.chad.layer.2.fill}" + }, + "outline": { + "type": "color", + "value": "{02_theme.chad.layer.highlight.outline}" + } + } + }, + "table": { + "header fill": { + "type": "color", + "value": "{01_surfaces&text.chad.chad.tables.header fill}" + } + }, + "input & select": { + "base": { + "default": { + "fill": { + "type": "color", + "value": "{00_primitives.chad.violet.50}" + }, + "border": { + "default": { + "type": "color", + "value": "{00_primitives.chad.violet.200}" + }, + "error": { + "type": "color", + "value": "{02_theme.chad.feedback.alert}" + }, + "active": { + "type": "color", + "value": "{01_surfaces&text.chad.chad.text.highlight}" + }, + "filled": { + "type": "color", + "value": "{00_primitives.chad.violet.400}" + } + } + }, + "nested": { + "nested": { + "type": "color", + "value": "{00_primitives.chad.violet.50}" + }, + "fill": { + "type": "color", + "value": "{00_primitives.chad.violet.50}" + }, + "border": { + "default": { + "type": "color", + "value": "{00_primitives.chad.violet.200}" + }, + "active": { + "type": "color", + "value": "{01_surfaces&text.chad.chad.text.highlight}" + }, + "filled": { + "type": "color", + "value": "{00_primitives.chad.violet.400}" + }, + "error": { + "type": "color", + "value": "{02_theme.chad.feedback.alert}" + } + } + } + }, + "large": { + "default": { + "fill": { + "type": "color", + "value": "{00_primitives.chad.violet.50}" + } + } + } + } + } + }, + "00_primitives": { + "grays": { + "10": { + "type": "color", + "value": "#fdfcfcff", + "blendMode": "normal" + }, + "25": { + "type": "color", + "value": "#fafafaff", + "blendMode": "normal" + }, + "50": { + "type": "color", + "value": "#f8f7f7ff", + "blendMode": "normal" + }, + "75": { + "type": "color", + "value": "#f6f4f4ff", + "blendMode": "normal" + }, + "100": { + "type": "color", + "value": "#eeecebff", + "blendMode": "normal" + }, + "150": { + "type": "color", + "value": "#e7e4e2ff", + "blendMode": "normal" + }, + "200": { + "type": "color", + "value": "#dedbd8ff", + "blendMode": "normal" + }, + "300": { + "type": "color", + "value": "#d4d0ccff", + "blendMode": "normal" + }, + "400": { + "type": "color", + "value": "#bbb6afff", + "blendMode": "normal" + }, + "500": { + "type": "color", + "value": "#968e84ff", + "blendMode": "normal" + }, + "600": { + "type": "color", + "value": "#746e66ff", + "blendMode": "normal" + }, + "700": { + "type": "color", + "value": "#5a554fff", + "blendMode": "normal" + }, + "750": { + "type": "color", + "value": "#494540ff", + "blendMode": "normal" + }, + "800": { + "type": "color", + "value": "#3b3834ff", + "blendMode": "normal" + }, + "850": { + "type": "color", + "value": "#302e2aff", + "blendMode": "normal" + }, + "900": { + "type": "color", + "value": "#252420ff", + "blendMode": "normal" + }, + "950": { + "type": "color", + "value": "#1f1e1bff", + "blendMode": "normal" + }, + "975": { + "type": "color", + "value": "#191815ff", + "blendMode": "normal" + } + }, + "greens": { + "100": { + "type": "color", + "value": "#d4f7e3ff", + "blendMode": "normal" + }, + "200": { + "type": "color", + "value": "#a8efc6ff", + "blendMode": "normal" + }, + "300": { + "type": "color", + "value": "#32ce79ff", + "blendMode": "normal" + }, + "400": { + "type": "color", + "value": "#27b86cff", + "blendMode": "normal" + }, + "500": { + "type": "color", + "value": "#1fa25eff", + "blendMode": "normal" + }, + "600": { + "type": "color", + "value": "#167d4aff", + "blendMode": "normal" + }, + "700": { + "type": "color", + "value": "#0f5c38ff", + "blendMode": "normal" + }, + "800": { + "type": "color", + "value": "#0b3d26ff", + "blendMode": "normal" + } + }, + "reds": { + "200": { + "type": "color", + "value": "#ffd88bff", + "blendMode": "normal" + }, + "300": { + "type": "color", + "value": "#ffc300ff", + "blendMode": "normal" + }, + "400": { + "type": "color", + "value": "#f77f00ff", + "blendMode": "normal" + }, + "500": { + "type": "color", + "value": "#ed242fff", + "blendMode": "normal" + }, + "600": { + "type": "color", + "value": "#d41e26ff", + "blendMode": "normal" + }, + "700": { + "type": "color", + "value": "#b0151fff", + "blendMode": "normal" + }, + "800": { + "type": "color", + "value": "#8c111cff", + "blendMode": "normal" + } + }, + "blues": { + "50": { + "type": "color", + "value": "#fefaefff", + "blendMode": "normal" + }, + "100": { + "type": "color", + "value": "#d5dbf0ff", + "blendMode": "normal" + }, + "200": { + "type": "color", + "value": "#acbef1ff", + "blendMode": "normal" + }, + "300": { + "type": "color", + "value": "#839ff2ff", + "blendMode": "normal" + }, + "400": { + "type": "color", + "value": "#5a81f3ff", + "blendMode": "normal" + }, + "500": { + "type": "color", + "value": "#3162f4ff", + "blendMode": "normal" + }, + "600": { + "type": "color", + "value": "#2c55d5ff", + "blendMode": "normal" + }, + "700": { + "type": "color", + "value": "#2747b5ff", + "blendMode": "normal" + }, + "800": { + "type": "color", + "value": "#223995ff", + "blendMode": "normal" + }, + "900": { + "type": "color", + "value": "#1d2c75ff", + "blendMode": "normal" + }, + "950": { + "type": "color", + "value": "#171e55ff", + "blendMode": "normal" + } + }, + "violet": { + "50": { + "type": "color", + "value": "#efedfcff", + "blendMode": "normal" + }, + "100": { + "type": "color", + "value": "#dbd9f7ff", + "blendMode": "normal" + }, + "200": { + "type": "color", + "value": "#c6c4f2ff", + "blendMode": "normal" + }, + "300": { + "type": "color", + "value": "#b0aeeeff", + "blendMode": "normal" + }, + "400": { + "type": "color", + "value": "#9997e2ff", + "blendMode": "normal" + }, + "500": { + "type": "color", + "value": "#6a68b7ff", + "blendMode": "normal" + }, + "600": { + "type": "color", + "value": "#5f5caeff", + "blendMode": "normal" + }, + "700": { + "type": "color", + "value": "#554fa5ff", + "blendMode": "normal" + }, + "800": { + "type": "color", + "value": "#4a4395ff", + "blendMode": "normal" + }, + "900": { + "type": "color", + "value": "#3e3684ff", + "blendMode": "normal" + }, + "950": { + "type": "color", + "value": "#2f2862ff", + "blendMode": "normal" + } + }, + "spacing": { + "50": { + "type": "dimension", + "value": 0 + }, + "100": { + "type": "dimension", + "value": 2 + }, + "200": { + "type": "dimension", + "value": 4 + }, + "300": { + "type": "dimension", + "value": 8 + }, + "350": { + "type": "dimension", + "value": 14 + }, + "400": { + "type": "dimension", + "value": 16 + }, + "500": { + "type": "dimension", + "value": 24 + }, + "600": { + "type": "dimension", + "value": 32 + }, + "700": { + "type": "dimension", + "value": 48 + }, + "800": { + "type": "dimension", + "value": 64 + } + }, + "sizing": { + "50": { + "type": "dimension", + "value": 4 + }, + "100": { + "type": "dimension", + "value": 8 + }, + "125": { + "type": "dimension", + "value": 12 + }, + "150": { + "type": "dimension", + "value": 14 + }, + "200": { + "type": "dimension", + "value": 16 + }, + "250": { + "type": "dimension", + "value": 20 + }, + "300": { + "type": "dimension", + "value": 24 + }, + "350": { + "type": "dimension", + "value": 28 + }, + "400": { + "type": "dimension", + "value": 32 + }, + "500": { + "type": "dimension", + "value": 40 + }, + "600": { + "type": "dimension", + "value": 48 + }, + "700": { + "type": "dimension", + "value": 64 + }, + "800": { + "type": "dimension", + "value": 88 + } + } + }, + "01_mapped_sizes&spaces": { + "desktop": { + "radius": { + "round": { + "type": "dimension", + "value": 9999 + }, + "xs": { + "type": "dimension", + "value": "{00_primitives.desktop.spacing.200}" + }, + "sm": { + "type": "dimension", + "value": "{00_primitives.desktop.spacing.300}" + }, + "md": { + "type": "dimension", + "value": "{00_primitives.desktop.spacing.500}" + }, + "lg": { + "type": "dimension", + "value": "{00_primitives.desktop.spacing.700}" + }, + "xl": { + "type": "dimension", + "value": "{00_primitives.desktop.spacing.800}" + } + }, + "typography": { + "lineheight": { + "xs": { + "type": "dimension", + "value": 14 + }, + "sm": { + "type": "dimension", + "value": 16 + }, + "md": { + "type": "dimension", + "value": 24 + }, + "lg": { + "type": "dimension", + "value": 28 + }, + "xl": { + "type": "dimension", + "value": 40 + }, + "xxl": { + "type": "dimension", + "value": 64 + } + }, + "fontweight": { + "extra light": { + "type": "dimension", + "value": 200 + }, + "light": { + "type": "dimension", + "value": 300 + }, + "normal": { + "type": "dimension", + "value": 400 + }, + "medium": { + "type": "dimension", + "value": 500 + }, + "semi bold": { + "type": "dimension", + "value": 600 + }, + "bold": { + "type": "dimension", + "value": 700 + }, + "extra bold": { + "type": "dimension", + "value": 800 + } + }, + "fontsize": { + "xs": { + "type": "dimension", + "value": "{00_primitives.desktop.sizing.125}" + }, + "sm": { + "type": "dimension", + "value": "{00_primitives.desktop.sizing.150}" + }, + "md": { + "type": "dimension", + "value": "{00_primitives.desktop.sizing.200}" + }, + "lg": { + "type": "dimension", + "value": "{00_primitives.desktop.sizing.300}" + }, + "xl": { + "type": "dimension", + "value": "{00_primitives.desktop.sizing.400}" + }, + "xxl": { + "type": "dimension", + "value": "{00_primitives.desktop.sizing.700}" + } + } + }, + "spacing": { + "xs": { + "type": "dimension", + "value": "{00_primitives.desktop.spacing.200}" + }, + "sm": { + "type": "dimension", + "value": "{00_primitives.desktop.spacing.300}" + }, + "md": { + "type": "dimension", + "value": "{00_primitives.desktop.spacing.400}" + }, + "lg": { + "type": "dimension", + "value": "{00_primitives.desktop.spacing.500}" + }, + "xl": { + "type": "dimension", + "value": "{00_primitives.desktop.spacing.600}" + }, + "xxl": { + "type": "dimension", + "value": "{00_primitives.desktop.spacing.700}" + }, + "xxs": { + "type": "dimension", + "value": "{00_primitives.desktop.spacing.100}" + } + }, + "sizing": { + "xxs": { + "type": "dimension", + "value": "{00_primitives.desktop.sizing.100}" + }, + "xs": { + "type": "dimension", + "value": "{00_primitives.desktop.sizing.200}" + }, + "sm": { + "type": "dimension", + "value": "{00_primitives.desktop.sizing.300}" + }, + "md": { + "type": "dimension", + "value": "{00_primitives.desktop.sizing.400}" + }, + "lg": { + "type": "dimension", + "value": "{00_primitives.desktop.sizing.500}" + }, + "xl": { + "type": "dimension", + "value": "{00_primitives.desktop.sizing.600}" + }, + "xxl": { + "type": "dimension", + "value": "{00_primitives.desktop.sizing.700}" + }, + "3xl": { + "type": "dimension", + "value": "{00_primitives.desktop.sizing.800}" + } + }, + "iconsize": { + "xxs": { + "type": "dimension", + "value": "{00_primitives.desktop.sizing.125}" + }, + "xs": { + "type": "dimension", + "value": "{00_primitives.desktop.sizing.150}" + }, + "sm": { + "type": "dimension", + "value": "{00_primitives.desktop.sizing.200}" + }, + "md": { + "type": "dimension", + "value": "{00_primitives.desktop.sizing.250}" + }, + "lg": { + "type": "dimension", + "value": "{00_primitives.desktop.sizing.350}" + }, + "xl": { + "type": "dimension", + "value": "{00_primitives.desktop.sizing.500}" + }, + "xxl": { + "type": "dimension", + "value": "{00_primitives.desktop.sizing.600}" + }, + "3xl": { + "type": "dimension", + "value": "{00_primitives.desktop.sizing.700}" + }, + "4xl": { + "type": "dimension", + "value": "{00_primitives.desktop.sizing.800}" + } + }, + "grid": { + "column spacing": { + "type": "dimension", + "value": "{00_primitives.desktop.spacing.500}" + }, + "row spacing": { + "type": "dimension", + "value": "{00_primitives.desktop.spacing.500}" + } + } + }, + "mobile": { + "radius": { + "round": { + "type": "dimension", + "value": 9999 + }, + "xs": { + "type": "dimension", + "value": "{00_primitives.mobile.spacing.100}" + }, + "sm": { + "type": "dimension", + "value": "{00_primitives.mobile.spacing.200}" + }, + "md": { + "type": "dimension", + "value": "{00_primitives.mobile.spacing.400}" + }, + "lg": { + "type": "dimension", + "value": "{00_primitives.mobile.spacing.600}" + }, + "xl": { + "type": "dimension", + "value": "{00_primitives.mobile.spacing.700}" + } + }, + "typography": { + "lineheight": { + "xs": { + "type": "dimension", + "value": 12 + }, + "sm": { + "type": "dimension", + "value": 14 + }, + "md": { + "type": "dimension", + "value": 16 + }, + "lg": { + "type": "dimension", + "value": 24 + }, + "xl": { + "type": "dimension", + "value": 32 + }, + "xxl": { + "type": "dimension", + "value": 40 + } + }, + "fontweight": { + "extra light": { + "type": "dimension", + "value": 200 + }, + "light": { + "type": "dimension", + "value": 300 + }, + "normal": { + "type": "dimension", + "value": 400 + }, + "medium": { + "type": "dimension", + "value": 500 + }, + "semi bold": { + "type": "dimension", + "value": 600 + }, + "bold": { + "type": "dimension", + "value": 700 + }, + "extra bold": { + "type": "dimension", + "value": 800 + } + }, + "fontsize": { + "xs": { + "type": "dimension", + "value": "{00_primitives.mobile.sizing.125}" + }, + "sm": { + "type": "dimension", + "value": "{00_primitives.mobile.sizing.150}" + }, + "md": { + "type": "dimension", + "value": "{00_primitives.mobile.sizing.200}" + }, + "lg": { + "type": "dimension", + "value": "{00_primitives.mobile.sizing.250}" + }, + "xl": { + "type": "dimension", + "value": "{00_primitives.mobile.sizing.350}" + }, + "xxl": { + "type": "dimension", + "value": "{00_primitives.mobile.sizing.500}" + } + } + }, + "spacing": { + "xs": { + "type": "dimension", + "value": "{00_primitives.mobile.spacing.100}" + }, + "sm": { + "type": "dimension", + "value": "{00_primitives.mobile.spacing.200}" + }, + "md": { + "type": "dimension", + "value": "{00_primitives.mobile.spacing.300}" + }, + "lg": { + "type": "dimension", + "value": "{00_primitives.mobile.spacing.400}" + }, + "xl": { + "type": "dimension", + "value": "{00_primitives.mobile.spacing.500}" + }, + "xxl": { + "type": "dimension", + "value": "{00_primitives.mobile.spacing.600}" + }, + "xxs": { + "type": "dimension", + "value": "{00_primitives.mobile.spacing.100}" + } + }, + "sizing": { + "xxs": { + "type": "dimension", + "value": "{00_primitives.mobile.sizing.50}" + }, + "xs": { + "type": "dimension", + "value": "{00_primitives.mobile.sizing.150}" + }, + "sm": { + "type": "dimension", + "value": "{00_primitives.mobile.sizing.200}" + }, + "md": { + "type": "dimension", + "value": "{00_primitives.mobile.sizing.300}" + }, + "lg": { + "type": "dimension", + "value": "{00_primitives.mobile.sizing.400}" + }, + "xl": { + "type": "dimension", + "value": "{00_primitives.mobile.sizing.500}" + }, + "xxl": { + "type": "dimension", + "value": "{00_primitives.mobile.sizing.600}" + }, + "3xl": { + "type": "dimension", + "value": "{00_primitives.mobile.sizing.700}" + } + }, + "iconsize": { + "xxs": { + "type": "dimension", + "value": "{00_primitives.mobile.sizing.100}" + }, + "xs": { + "type": "dimension", + "value": "{00_primitives.mobile.sizing.125}" + }, + "sm": { + "type": "dimension", + "value": "{00_primitives.mobile.sizing.150}" + }, + "md": { + "type": "dimension", + "value": "{00_primitives.mobile.sizing.250}" + }, + "lg": { + "type": "dimension", + "value": "{00_primitives.mobile.sizing.300}" + }, + "xl": { + "type": "dimension", + "value": "{00_primitives.mobile.sizing.400}" + }, + "xxl": { + "type": "dimension", + "value": "{00_primitives.mobile.sizing.500}" + }, + "3xl": { + "type": "dimension", + "value": "{00_primitives.mobile.sizing.600}" + }, + "4xl": { + "type": "dimension", + "value": "{00_primitives.mobile.sizing.700}" + } + }, + "grid": { + "column spacing": { + "type": "dimension", + "value": "{00_primitives.mobile.spacing.500}" + }, + "row spacing": { + "type": "dimension", + "value": "{00_primitives.mobile.spacing.500}" + } + } + } + }, + "01_surfaces&text": { + "default": { + "light": { + "text": { + "primary": { + "type": "color", + "value": "{00_primitives.default.grays.950}" + }, + "secondary": { + "type": "color", + "value": "{00_primitives.default.grays.700}" + }, + "tertiary": { + "type": "color", + "value": "{00_primitives.default.grays.500}" + }, + "highlight": { + "type": "color", + "value": "{00_primitives.default.blues.500}" + }, + "disabled": { + "type": "color", + "value": "{00_primitives.default.grays.400}" + } + }, + "layer": { + "1": { + "fill": { + "type": "color", + "value": "{00_primitives.default.grays.50}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.default.grays.300}" + } + }, + "2": { + "fill": { + "type": "color", + "value": "{00_primitives.default.grays.100}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.default.grays.200}" + } + }, + "3": { + "fill": { + "type": "color", + "value": "{00_primitives.default.grays.50}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.default.grays.300}" + } + }, + "highlight": { + "type": "color", + "value": "{00_primitives.default.blues.500}" + } + }, + "tables": { + "header fill": { + "type": "color", + "value": "{00_primitives.default.grays.200}" + } + } + }, + "dark": { + "text": { + "primary": { + "type": "color", + "value": "{00_primitives.default.grays.50}" + }, + "secondary": { + "type": "color", + "value": "{00_primitives.default.grays.300}" + }, + "tertiary": { + "type": "color", + "value": "{00_primitives.default.grays.400}" + }, + "highlight": { + "type": "color", + "value": "{00_primitives.default.blues.500}" + }, + "disabled": { + "type": "color", + "value": "{00_primitives.default.grays.500}" + } + }, + "layer": { + "1": { + "fill": { + "type": "color", + "value": "{00_primitives.default.grays.950}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.default.grays.900}" + } + }, + "2": { + "fill": { + "type": "color", + "value": "{00_primitives.default.grays.900}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.default.grays.800}" + } + }, + "3": { + "fill": { + "type": "color", + "value": "{00_primitives.default.grays.800}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.default.grays.700}" + } + }, + "highlight": { + "type": "color", + "value": "{00_primitives.default.blues.500}" + } + }, + "tables": { + "header fill": { + "type": "color", + "value": "{00_primitives.default.grays.800}" + } + } + }, + "chad": { + "text": { + "primary": { + "type": "color", + "value": "{00_primitives.default.grays.950}" + }, + "secondary": { + "type": "color", + "value": "{00_primitives.default.grays.700}" + }, + "tertiary": { + "type": "color", + "value": "{00_primitives.default.grays.500}" + }, + "highlight": { + "type": "color", + "value": "{00_primitives.default.violet.600}" + }, + "disabled": { + "type": "color", + "value": "{00_primitives.default.grays.400}" + } + }, + "layer": { + "1": { + "fill": { + "type": "color", + "value": "{00_primitives.default.violet.100}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.default.violet.300}" + } + }, + "2": { + "fill": { + "type": "color", + "value": "{00_primitives.default.violet.200}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.default.violet.400}" + } + }, + "3": { + "fill": { + "type": "color", + "value": "{00_primitives.default.violet.300}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.default.violet.500}" + } + }, + "highlight": { + "type": "color", + "value": "{00_primitives.default.violet.800}" + } + }, + "tables": { + "header fill": { + "type": "color", + "value": "{00_primitives.default.violet.400}" + } + } + } + }, + "inverted": { + "light": { + "text": { + "primary": { + "type": "color", + "value": "{00_primitives.inverted.grays.50}" + }, + "secondary": { + "type": "color", + "value": "{00_primitives.inverted.grays.300}" + }, + "tertiary": { + "type": "color", + "value": "{00_primitives.inverted.grays.400}" + }, + "highlight": { + "type": "color", + "value": "{00_primitives.inverted.blues.500}" + }, + "disabled": { + "type": "color", + "value": "{00_primitives.inverted.grays.500}" + } + }, + "layer": { + "1": { + "fill": { + "type": "color", + "value": "{00_primitives.inverted.grays.950}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.inverted.grays.600}" + } + }, + "2": { + "fill": { + "type": "color", + "value": "{00_primitives.inverted.grays.900}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.inverted.grays.750}" + } + }, + "3": { + "fill": { + "type": "color", + "value": "{00_primitives.inverted.grays.750}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.inverted.grays.600}" + } + }, + "highlight": { + "type": "color", + "value": "{00_primitives.inverted.blues.500}" + } + }, + "tables": { + "header fill": { + "type": "color", + "value": "{00_primitives.inverted.grays.800}" + } + } + }, + "dark": { + "text": { + "primary": { + "type": "color", + "value": "{00_primitives.inverted.grays.950}" + }, + "secondary": { + "type": "color", + "value": "{00_primitives.inverted.grays.700}" + }, + "tertiary": { + "type": "color", + "value": "{00_primitives.inverted.grays.600}" + }, + "highlight": { + "type": "color", + "value": "{00_primitives.inverted.blues.500}" + }, + "disabled": { + "type": "color", + "value": "{00_primitives.inverted.grays.400}" + } + }, + "layer": { + "1": { + "fill": { + "type": "color", + "value": "{00_primitives.inverted.grays.75}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.inverted.grays.300}" + } + }, + "2": { + "fill": { + "type": "color", + "value": "{00_primitives.inverted.grays.100}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.inverted.grays.200}" + } + }, + "3": { + "fill": { + "type": "color", + "value": "{00_primitives.inverted.grays.50}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.inverted.grays.300}" + } + }, + "highlight": { + "type": "color", + "value": "{00_primitives.inverted.blues.500}" + } + }, + "tables": { + "header fill": { + "type": "color", + "value": "{00_primitives.inverted.grays.200}" + } + } + }, + "chad": { + "text": { + "primary": { + "type": "color", + "value": "{00_primitives.inverted.grays.50}" + }, + "secondary": { + "type": "color", + "value": "{00_primitives.inverted.grays.300}" + }, + "tertiary": { + "type": "color", + "value": "{00_primitives.inverted.grays.400}" + }, + "highlight": { + "type": "color", + "value": "{00_primitives.inverted.violet.400}" + }, + "disabled": { + "type": "color", + "value": "{00_primitives.inverted.grays.500}" + } + }, + "layer": { + "1": { + "fill": { + "type": "color", + "value": "{00_primitives.inverted.violet.950}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.inverted.violet.800}" + } + }, + "2": { + "fill": { + "type": "color", + "value": "{00_primitives.inverted.violet.800}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.inverted.violet.600}" + } + }, + "3": { + "fill": { + "type": "color", + "value": "{00_primitives.inverted.violet.700}" + }, + "outline": { + "type": "color", + "value": "{00_primitives.inverted.violet.500}" + } + }, + "highlight": { + "type": "color", + "value": "{00_primitives.inverted.violet.400}" + } + }, + "tables": { + "header fill": { + "type": "color", + "value": "{00_primitives.inverted.violet.800}" + } + } + } + } + }, + "typography": { + "heading": { + "xxl": { + "description": "To be used only in Hero Banners", + "fontSize": { + "type": "dimension", + "value": 64 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 700 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": -2.56 + }, + "lineHeight": { + "type": "dimension", + "value": 64 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 0 + }, + "textCase": { + "type": "string", + "value": "none" + } + }, + "mbold": { + "description": "To be used for large items, such as page titles, large navigation items", + "fontSize": { + "type": "dimension", + "value": 32 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 700 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": -1.28 + }, + "lineHeight": { + "type": "dimension", + "value": 36 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 72 + }, + "textCase": { + "type": "string", + "value": "uppercase" + } + }, + "mlight": { + "fontSize": { + "type": "dimension", + "value": 32 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 500 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": -1.28 + }, + "lineHeight": { + "type": "dimension", + "value": 36 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 0 + }, + "textCase": { + "type": "string", + "value": "uppercase" + } + }, + "sbold": { + "description": "To be used for medium items, such as section titles, small card titles, chart titles", + "fontSize": { + "type": "dimension", + "value": 24 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 700 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": -0.48 + }, + "lineHeight": { + "type": "dimension", + "value": 28 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 16 + }, + "textCase": { + "type": "string", + "value": "uppercase" + } + }, + "xsbold": { + "description": "To be used for the smallest highlighted items, such as small section titles, etc", + "fontSize": { + "type": "dimension", + "value": 14 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 700 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": 0 + }, + "lineHeight": { + "type": "dimension", + "value": 16 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 0 + }, + "textCase": { + "type": "string", + "value": "uppercase" + } + }, + "xsmedium": { + "fontSize": { + "type": "dimension", + "value": 14 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 500 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": 0 + }, + "lineHeight": { + "type": "dimension", + "value": 16 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 0 + }, + "textCase": { + "type": "string", + "value": "capitalize" + } + } + }, + "body": { + "mregular": { + "description": "For all the body of the app", + "fontSize": { + "type": "dimension", + "value": 16 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 500 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": 0 + }, + "lineHeight": { + "type": "dimension", + "value": 24 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 12 + }, + "textCase": { + "type": "string", + "value": "none" + } + }, + "mbold": { + "description": "For all the highlighted items of body of the app", + "fontSize": { + "type": "dimension", + "value": 16 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 700 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": 0 + }, + "lineHeight": { + "type": "dimension", + "value": 24 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 12 + }, + "textCase": { + "type": "string", + "value": "none" + } + }, + "sregular": { + "description": "For all the smaller informational items in the body of the app", + "fontSize": { + "type": "dimension", + "value": 14 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 500 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": 0 + }, + "lineHeight": { + "type": "dimension", + "value": 16 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 8 + }, + "textCase": { + "type": "string", + "value": "none" + } + }, + "sbold": { + "description": "For all the smaller informational items that need to be highlighted in the body of the app", + "fontSize": { + "type": "dimension", + "value": 14 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 700 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": 0 + }, + "lineHeight": { + "type": "dimension", + "value": 16 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 8 + }, + "textCase": { + "type": "string", + "value": "none" + } + }, + "xsregular": { + "description": "For the very fine details in the body of the app", + "fontSize": { + "type": "dimension", + "value": 12 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 500 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": 0 + }, + "lineHeight": { + "type": "dimension", + "value": 14 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 8 + }, + "textCase": { + "type": "string", + "value": "none" + } + }, + "xsbold": { + "description": "For the very fine details in the body of the app that need to be highlighted", + "fontSize": { + "type": "dimension", + "value": 12 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 700 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": 0 + }, + "lineHeight": { + "type": "dimension", + "value": 14 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 8 + }, + "textCase": { + "type": "string", + "value": "none" + } + } + }, + "buttonlabel": { + "xs": { + "description": "To be used ONLY on button labels.", + "fontSize": { + "type": "dimension", + "value": 14 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 700 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": 0 + }, + "lineHeight": { + "type": "dimension", + "value": 16 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 0 + }, + "textCase": { + "type": "string", + "value": "none" + } + }, + "s": { + "description": "To be used ONLY on button labels.", + "fontSize": { + "type": "dimension", + "value": 14 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 700 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": 0 + }, + "lineHeight": { + "type": "dimension", + "value": 24 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 20 + }, + "textCase": { + "type": "string", + "value": "uppercase" + } + }, + "m": { + "description": "To be used ONLY on button labels.", + "fontSize": { + "type": "dimension", + "value": 16 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 700 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": 0 + }, + "lineHeight": { + "type": "dimension", + "value": 40 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 0 + }, + "textCase": { + "type": "string", + "value": "uppercase" + } + } + }, + "table": { + "header": { + "m": { + "fontSize": { + "type": "dimension", + "value": 16 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 500 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": 0 + }, + "lineHeight": { + "type": "dimension", + "value": 16 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 16 + }, + "textCase": { + "type": "string", + "value": "none" + } + }, + "s": { + "fontSize": { + "type": "dimension", + "value": 14 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 500 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": 0 + }, + "lineHeight": { + "type": "dimension", + "value": 14 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 14 + }, + "textCase": { + "type": "string", + "value": "none" + } + } + }, + "cell": { + "l": { + "description": "This style should never be used outside of a table cell.\nIt applies to the larger labels of items in the first row.", + "fontSize": { + "type": "dimension", + "value": 20 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 700 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": 0 + }, + "lineHeight": { + "type": "dimension", + "value": 20 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 0 + }, + "textCase": { + "type": "string", + "value": "none" + } + }, + "mregular": { + "description": "This style should never be used outside of a table cell.\nIt applies to the Default labels of items of the first line of a cell.", + "fontSize": { + "type": "dimension", + "value": 16 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 500 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": 0 + }, + "lineHeight": { + "type": "dimension", + "value": 16 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 0 + }, + "textCase": { + "type": "string", + "value": "none" + } + }, + "mbold": { + "description": "This style should never be used outside of a table cell.\nIt applies to highlighted items of the first line of a cell.", + "fontSize": { + "type": "dimension", + "value": 16 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 600 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": 0 + }, + "lineHeight": { + "type": "dimension", + "value": 16 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 0 + }, + "textCase": { + "type": "string", + "value": "none" + } + }, + "sregular": { + "description": "This style should never be used outside of a table cell.\nIt applies to default item of the second line of a cell.", + "fontSize": { + "type": "dimension", + "value": 14 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 500 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": 0 + }, + "lineHeight": { + "type": "dimension", + "value": 14 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 0 + }, + "textCase": { + "type": "string", + "value": "none" + } + }, + "sbold": { + "description": "This style should never be used outside of a table cell.\nIt applies to highlighted items of the second line of a cell.", + "fontSize": { + "type": "dimension", + "value": 14 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 500 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": 0 + }, + "lineHeight": { + "type": "dimension", + "value": 14 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 0 + }, + "textCase": { + "type": "string", + "value": "none" + } + } + } + }, + "highlighted": { + "xsnotional": { + "description": "To be used on indvidual numbers and values that need to be highlighted. Not to be used in tables.", + "fontSize": { + "type": "dimension", + "value": 12 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 500 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": 0 + }, + "lineHeight": { + "type": "dimension", + "value": 14 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 0 + }, + "textCase": { + "type": "string", + "value": "none" + } + }, + "xs": { + "description": "To be used on indvidual numbers and values that need to be highlighted. Not to be used in tables.", + "fontSize": { + "type": "dimension", + "value": 12 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 700 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": 0 + }, + "lineHeight": { + "type": "dimension", + "value": 14 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 0 + }, + "textCase": { + "type": "string", + "value": "none" + } + }, + "s": { + "description": "To be used on indvidual numbers and values that need to be highlighted. Not to be used in tables.", + "fontSize": { + "type": "dimension", + "value": 14 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 700 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": 0 + }, + "lineHeight": { + "type": "dimension", + "value": 16 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 0 + }, + "textCase": { + "type": "string", + "value": "none" + } + }, + "m": { + "description": "To be used on indvidual numbers and values that need to be highlighted. Not to be used in tables.", + "fontSize": { + "type": "dimension", + "value": 16 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 700 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": 0 + }, + "lineHeight": { + "type": "dimension", + "value": 16 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 0 + }, + "textCase": { + "type": "string", + "value": "none" + } + }, + "l": { + "fontSize": { + "type": "dimension", + "value": 24 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 700 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": 0 + }, + "lineHeight": { + "type": "dimension", + "value": 24 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 0 + }, + "textCase": { + "type": "string", + "value": "none" + } + }, + "xl": { + "description": "To be used on indvidual numbers and values that need to be highlighted. Not to be used in tables.", + "fontSize": { + "type": "dimension", + "value": 32 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 700 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": -1.28 + }, + "lineHeight": { + "type": "dimension", + "value": 36 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 0 + }, + "textCase": { + "type": "string", + "value": "none" + } + }, + "xxl": { + "description": "To be used on indvidual numbers and values that need to be highlighted. Not to be used in tables.", + "fontSize": { + "type": "dimension", + "value": 64 + }, + "textDecoration": { + "type": "string", + "value": "none" + }, + "fontFamily": { + "type": "string", + "value": "Mona Sans" + }, + "fontWeight": { + "type": "number", + "value": 700 + }, + "fontStyle": { + "type": "string", + "value": "normal" + }, + "fontStretch": { + "type": "string", + "value": "normal" + }, + "letterSpacing": { + "type": "dimension", + "value": -2.56 + }, + "lineHeight": { + "type": "dimension", + "value": 64 + }, + "paragraphIndent": { + "type": "dimension", + "value": 0 + }, + "paragraphSpacing": { + "type": "dimension", + "value": 0 + }, + "textCase": { + "type": "string", + "value": "none" + } + } + } + } +} diff --git a/packages/curve-ui-kit/src/shared/api/figma-tokens/tokens/curve-figma-design.types.ts b/packages/curve-ui-kit/src/shared/api/figma-tokens/tokens/curve-figma-design.types.ts new file mode 100644 index 00000000..1ef124a2 --- /dev/null +++ b/packages/curve-ui-kit/src/shared/api/figma-tokens/tokens/curve-figma-design.types.ts @@ -0,0 +1,3 @@ +import curveFigmaDesignTokens from './curve-figma-design.tokens.json' + +export type CurveFigmaDesignTokens = typeof curveFigmaDesignTokens diff --git a/packages/curve-ui-kit/src/shared/api/figma-tokens/tokens/index.ts b/packages/curve-ui-kit/src/shared/api/figma-tokens/tokens/index.ts new file mode 100644 index 00000000..9ae33a8c --- /dev/null +++ b/packages/curve-ui-kit/src/shared/api/figma-tokens/tokens/index.ts @@ -0,0 +1,3 @@ +export * from './curve-figma-design.types' +export { default as curveFigmaDesignTokens } from './curve-figma-design.tokens.json' +export * from './variants.types' diff --git a/packages/curve-ui-kit/src/shared/api/figma-tokens/tokens/variants.types.ts b/packages/curve-ui-kit/src/shared/api/figma-tokens/tokens/variants.types.ts new file mode 100644 index 00000000..0b680069 --- /dev/null +++ b/packages/curve-ui-kit/src/shared/api/figma-tokens/tokens/variants.types.ts @@ -0,0 +1,30 @@ +export type ScreenType = 'desktop' | 'mobile' + +export type TextCase = 'none' | 'uppercase' | 'lowercase' | 'capitalize' +export type TextDecoration = 'none' | 'underline' | 'line-through' +export type FontStyle = 'normal' | 'italic' | 'oblique' +export type FontStretch = 'normal' | 'condensed' | 'expanded' + +export type StrokeAlign = 'center' | 'inside' | 'outside' +export type StrokeCap = 'none' | 'round' | 'square' | 'arrow_lines' | 'arrow_equilateral' | 'mixed' +export type StrokeJoin = 'miter' | 'bevel' | 'round' + +export type GridPattern = 'rows' | 'columns' | 'grid' +export type GridAlignment = 'stretch' | 'center' | 'min' | 'max' + +export type EffectType = 'dropShadow' | 'innerShadow' | 'layerBlur' | 'backgroundBlur' + +export type FigmaTypographyToken = { + description?: string + fontSize: number + textDecoration: TextDecoration + fontFamily: string + fontWeight: number + fontStyle: FontStyle + fontStretch: FontStretch + letterSpacing: number + lineHeight: number + paragraphIndent: number + paragraphSpacing: number + textCase: TextCase +} From 0d1259bb77972dc60b1ddf05d6e0f2e4f14dc4cf Mon Sep 17 00:00:00 2001 From: Ignat Date: Wed, 18 Sep 2024 14:45:30 +0500 Subject: [PATCH 02/17] feat: implement figma tokens validation --- .../api/figma-tokens/extract-figma-values.ts | 73 + .../src/shared/api/figma-tokens/index.ts | 3 + .../validation/analyze_figma_tokens.py | 36 + .../curve-figma-design.tokens.schema.json | 1939 +++++++++++++++++ .../validation/validate-figma-tokens.js | 16 + 5 files changed, 2067 insertions(+) create mode 100644 packages/curve-ui-kit/src/shared/api/figma-tokens/extract-figma-values.ts create mode 100644 packages/curve-ui-kit/src/shared/api/figma-tokens/index.ts create mode 100644 packages/curve-ui-kit/src/shared/api/figma-tokens/validation/analyze_figma_tokens.py create mode 100644 packages/curve-ui-kit/src/shared/api/figma-tokens/validation/curve-figma-design.tokens.schema.json create mode 100644 packages/curve-ui-kit/src/shared/api/figma-tokens/validation/validate-figma-tokens.js diff --git a/packages/curve-ui-kit/src/shared/api/figma-tokens/extract-figma-values.ts b/packages/curve-ui-kit/src/shared/api/figma-tokens/extract-figma-values.ts new file mode 100644 index 00000000..a83bda6c --- /dev/null +++ b/packages/curve-ui-kit/src/shared/api/figma-tokens/extract-figma-values.ts @@ -0,0 +1,73 @@ +/** + * Extracts values from a Figma token object, excluding specified keys. + * @param obj - The Figma token object to extract values from. + * @param excludeKeys - An array of keys to exclude from extraction. + * @returns An array of extracted values. + */ +export function extractValues>( + obj: T, + excludeKeys: string[] = [], +): ExtractedValues { + return Object.entries(obj) + .filter(([key]) => !excludeKeys.includes(key)) + .map(([, value]) => value) as ExtractedValues +} + +/** + * Extracts key-value pairs from a Figma token object, excluding specified keys. + * @param obj - The Figma token object to extract key-value pairs from. + * @param excludeKeys - An array of keys to exclude from extraction. + * @returns An object containing the extracted key-value pairs. + */ +export function extractPairs>( + obj: T, + excludeKeys: string[] = [], +): ExtractedKeyValuePairs { + return Object.entries(obj).reduce( + (acc, [key, value]) => { + if (!excludeKeys.includes(key)) { + // @ts-expect-error + acc[key] = value + } + return acc + }, + {} as ExtractedKeyValuePairs, + ) +} + +/** + * Extracts a number from a value of unknown type. + * @param value - The value to extract a number from. + * @returns A number if extraction is successful. + * @throws Error if extraction fails. + */ +export function extractNumber(value: unknown): number { + if (typeof value === 'number') { + return value + } + + if (typeof value === 'string') { + const parsed = parseFloat(value) + if (!isNaN(parsed)) { + return parsed + } + } + + if (typeof value === 'object' && value !== null && 'value' in value) { + return extractNumber((value as { value: unknown }).value) + } + + throw new Error(`Unable to extract number from value: ${JSON.stringify(value)}`) +} + +export type FigmaValueObject = { + [key in K]: V +} + +type ExcludeKeys = Exclude + +export type ExtractedValues = Array]> + +export type ExtractedKeyValuePairs = { + [P in ExcludeKeys]: T[P] +} diff --git a/packages/curve-ui-kit/src/shared/api/figma-tokens/index.ts b/packages/curve-ui-kit/src/shared/api/figma-tokens/index.ts new file mode 100644 index 00000000..ed7b0a2e --- /dev/null +++ b/packages/curve-ui-kit/src/shared/api/figma-tokens/index.ts @@ -0,0 +1,3 @@ +export * from './resolve' +export * from './tokens' +export * from './extract-figma-values' diff --git a/packages/curve-ui-kit/src/shared/api/figma-tokens/validation/analyze_figma_tokens.py b/packages/curve-ui-kit/src/shared/api/figma-tokens/validation/analyze_figma_tokens.py new file mode 100644 index 00000000..80344212 --- /dev/null +++ b/packages/curve-ui-kit/src/shared/api/figma-tokens/validation/analyze_figma_tokens.py @@ -0,0 +1,36 @@ +import json +import re +from collections import defaultdict + +def analyze_json_file(file_path): + with open(file_path, 'r') as file: + data = json.load(file) + + references = defaultdict(set) + reference_pattern = re.compile(r'\{([^}]+)\}') + + def traverse(obj, path): + if isinstance(obj, dict): + for key, value in obj.items(): + new_path = path + [key] + if isinstance(value, str): + matches = reference_pattern.findall(value) + for match in matches: + ref_parts = match.split('.') + if len(ref_parts) >= 3: + ref_key = '.'.join(ref_parts[:3]) + references['.'.join(path[:2])].add(ref_key) + traverse(value, new_path) + elif isinstance(obj, list): + for i, item in enumerate(obj): + traverse(item, path + [str(i)]) + + traverse(data, []) + + for category, refs in sorted(references.items()): + print(f"\n{category}:") + for ref in sorted(refs): + print(f" - {ref}") + +file_path = '../curve-figma-design-tokens/curve-figma-design.tokens.json' +analyze_json_file(file_path) diff --git a/packages/curve-ui-kit/src/shared/api/figma-tokens/validation/curve-figma-design.tokens.schema.json b/packages/curve-ui-kit/src/shared/api/figma-tokens/validation/curve-figma-design.tokens.schema.json new file mode 100644 index 00000000..b569a01d --- /dev/null +++ b/packages/curve-ui-kit/src/shared/api/figma-tokens/validation/curve-figma-design.tokens.schema.json @@ -0,0 +1,1939 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$ref": "#/definitions/CurveFigmaTokens", + "definitions": { + "0": { + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "$ref": "#/definitions/0_Type" + }, + "value": { + "$ref": "#/definitions/0_Value" + } + }, + "required": ["type", "value"], + "title": "0" + }, + "1": { + "type": "object", + "additionalProperties": false, + "properties": { + "fill": { + "$ref": "#/definitions/ColumnSpacing" + }, + "outline": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "required": ["fill", "outline"], + "title": "1" + }, + "CurveFigmaTokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "00_grid": { + "$ref": "#/definitions/00_Grid" + }, + "02_font": { + "$ref": "#/definitions/02_Font" + }, + "00_effect": { + "$ref": "#/definitions/00_Effect" + }, + "02_theme": { + "$ref": "#/definitions/02_Theme" + }, + "00_primitives": { + "$ref": "#/definitions/00_Primitives" + }, + "01_mapped_sizes&spaces": { + "$ref": "#/definitions/01_MappedSizesSpaces" + }, + "01_surfaces&text": { + "$ref": "#/definitions/01_SurfacesText" + }, + "typography": { + "$ref": "#/definitions/CurveFigmaTokensTypography" + } + }, + "required": [ + "00_effect", + "00_grid", + "00_primitives", + "01_mapped_sizes&spaces", + "01_surfaces&text", + "02_font", + "02_theme", + "typography" + ], + "title": "CurveFigmaTokens" + }, + "00_Effect": { + "type": "object", + "additionalProperties": false, + "properties": { + "activetabshadow": { + "$ref": "#/definitions/Activetabshadow" + }, + "elevation": { + "$ref": "#/definitions/Elevation" + } + }, + "required": ["activetabshadow", "elevation"], + "title": "00_Effect" + }, + "Activetabshadow": { + "type": "object", + "additionalProperties": false, + "properties": { + "0": { + "$ref": "#/definitions/0" + }, + "1": { + "$ref": "#/definitions/0" + }, + "2": { + "$ref": "#/definitions/0" + }, + "3": { + "$ref": "#/definitions/0" + }, + "4": { + "$ref": "#/definitions/0" + }, + "5": { + "$ref": "#/definitions/0" + }, + "6": { + "$ref": "#/definitions/0" + }, + "description": { + "type": "null" + } + }, + "required": ["0", "1", "2", "3", "4", "description"], + "title": "Activetabshadow" + }, + "0_Value": { + "type": "object", + "additionalProperties": false, + "properties": { + "shadowType": { + "$ref": "#/definitions/ShadowType" + }, + "radius": { + "type": "integer" + }, + "color": { + "type": "string" + }, + "offsetX": { + "type": "integer" + }, + "offsetY": { + "type": "integer" + }, + "spread": { + "type": "number" + } + }, + "required": ["color", "offsetX", "offsetY", "radius", "shadowType", "spread"], + "title": "0_Value" + }, + "Elevation": { + "type": "object", + "additionalProperties": false, + "properties": { + "level 3": { + "$ref": "#/definitions/Activetabshadow" + }, + "level 2": { + "$ref": "#/definitions/Activetabshadow" + }, + "level 1": { + "$ref": "#/definitions/Activetabshadow" + }, + "level -1": { + "$ref": "#/definitions/Level" + }, + "level -2": { + "$ref": "#/definitions/Level" + } + }, + "required": ["level -1", "level -2", "level 1", "level 2", "level 3"], + "title": "Elevation" + }, + "Level": { + "type": "object", + "additionalProperties": false, + "properties": { + "description": { + "type": "null" + }, + "type": { + "$ref": "#/definitions/0_Type" + }, + "value": { + "$ref": "#/definitions/0_Value" + } + }, + "required": ["description", "type", "value"], + "title": "Level" + }, + "00_Grid": { + "type": "object", + "additionalProperties": false, + "properties": { + "12-col_main": { + "$ref": "#/definitions/12-_ColCards" + }, + "12-col_cards": { + "$ref": "#/definitions/12-_ColCards" + }, + "no margin": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/12-_ColCards" + } + } + }, + "required": ["12-col_cards", "12-col_main", "no margin"], + "title": "00_Grid" + }, + "12-ColCardsValue": { + "type": "object", + "additionalProperties": false, + "properties": { + "pattern": { + "$ref": "#/definitions/Pattern" + }, + "gutterSize": { + "type": "integer" + }, + "alignment": { + "$ref": "#/definitions/Alignment" + }, + "count": { + "type": "integer" + }, + "offset": { + "type": "integer" + } + }, + "required": ["alignment", "count", "gutterSize", "offset", "pattern"], + "title": "12-ColCardsValue" + }, + "12-_ColCards": { + "type": "object", + "additionalProperties": false, + "properties": { + "description": { + "type": "null" + }, + "type": { + "$ref": "#/definitions/12-ColCardsType" + }, + "value": { + "$ref": "#/definitions/12-ColCardsValue" + } + }, + "required": ["description", "type", "value"], + "title": "12-_ColCards" + }, + "00_Primitives": { + "type": "object", + "additionalProperties": false, + "properties": { + "grays": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Blue" + } + }, + "greens": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Blue" + } + }, + "reds": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Blue" + } + }, + "blues": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Blue" + } + }, + "violet": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Blue" + } + }, + "spacing": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Sizing" + } + }, + "sizing": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Sizing" + } + } + }, + "required": ["blues", "grays", "greens", "reds", "sizing", "spacing", "violet"], + "title": "00_Primitives" + }, + "Blue": { + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "$ref": "#/definitions/BlueType" + }, + "value": { + "type": "string" + }, + "blendMode": { + "$ref": "#/definitions/BlendMode" + } + }, + "required": ["blendMode", "type", "value"], + "title": "Blue" + }, + "Sizing": { + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "$ref": "#/definitions/RoundType" + }, + "value": { + "type": "number" + } + }, + "required": ["type", "value"], + "title": "Sizing" + }, + "01_MappedSizesSpaces": { + "type": "object", + "additionalProperties": false, + "properties": { + "desktop": { + "$ref": "#/definitions/Desktop" + }, + "mobile": { + "$ref": "#/definitions/Desktop" + } + }, + "required": ["desktop", "mobile"], + "title": "01_MappedSizesSpaces" + }, + "Desktop": { + "type": "object", + "additionalProperties": false, + "properties": { + "radius": { + "$ref": "#/definitions/DesktopRadius" + }, + "typography": { + "$ref": "#/definitions/DesktopTypography" + }, + "spacing": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "sizing": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "iconsize": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "grid": { + "$ref": "#/definitions/Grid" + } + }, + "required": ["grid", "iconsize", "radius", "sizing", "spacing", "typography"], + "title": "Desktop" + }, + "Grid": { + "type": "object", + "additionalProperties": false, + "properties": { + "column spacing": { + "$ref": "#/definitions/ColumnSpacing" + }, + "row spacing": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "required": ["column spacing", "row spacing"], + "title": "Grid" + }, + "ColumnSpacing": { + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "$ref": "#/definitions/BlueType" + }, + "value": { + "type": "string" + } + }, + "required": ["type", "value"], + "title": "ColumnSpacing" + }, + "DesktopRadius": { + "type": "object", + "additionalProperties": false, + "properties": { + "round": { + "$ref": "#/definitions/Sizing" + }, + "xs": { + "$ref": "#/definitions/ColumnSpacing" + }, + "sm": { + "$ref": "#/definitions/ColumnSpacing" + }, + "md": { + "$ref": "#/definitions/ColumnSpacing" + }, + "lg": { + "$ref": "#/definitions/ColumnSpacing" + }, + "xl": { + "$ref": "#/definitions/ColumnSpacing" + }, + "xxl": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "required": ["lg", "md", "sm", "xl", "xs"], + "title": "DesktopRadius" + }, + "DesktopTypography": { + "type": "object", + "additionalProperties": false, + "properties": { + "lineheight": { + "$ref": "#/definitions/Lineheight" + }, + "fontweight": { + "$ref": "#/definitions/Fontweight" + }, + "fontsize": { + "$ref": "#/definitions/Fontsize" + } + }, + "required": ["fontsize", "fontweight", "lineheight"], + "title": "DesktopTypography" + }, + "Fontsize": { + "type": "object", + "additionalProperties": false, + "properties": { + "xs": { + "$ref": "#/definitions/ColumnSpacing" + }, + "sm": { + "$ref": "#/definitions/ColumnSpacing" + }, + "md": { + "$ref": "#/definitions/ColumnSpacing" + }, + "lg": { + "$ref": "#/definitions/ColumnSpacing" + }, + "xl": { + "$ref": "#/definitions/ColumnSpacing" + }, + "xxl": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "required": ["lg", "md", "sm", "xl", "xs", "xxl"], + "title": "Fontsize" + }, + "Fontweight": { + "type": "object", + "additionalProperties": false, + "properties": { + "extra light": { + "$ref": "#/definitions/Sizing" + }, + "light": { + "$ref": "#/definitions/Sizing" + }, + "normal": { + "$ref": "#/definitions/Sizing" + }, + "medium": { + "$ref": "#/definitions/Sizing" + }, + "semi bold": { + "$ref": "#/definitions/Sizing" + }, + "bold": { + "$ref": "#/definitions/Sizing" + }, + "extra bold": { + "$ref": "#/definitions/Sizing" + } + }, + "required": ["bold", "extra bold", "extra light", "light", "medium", "normal", "semi bold"], + "title": "Fontweight" + }, + "Lineheight": { + "type": "object", + "additionalProperties": false, + "properties": { + "xs": { + "$ref": "#/definitions/Sizing" + }, + "sm": { + "$ref": "#/definitions/Sizing" + }, + "md": { + "$ref": "#/definitions/Sizing" + }, + "lg": { + "$ref": "#/definitions/Sizing" + }, + "xl": { + "$ref": "#/definitions/Sizing" + }, + "xxl": { + "$ref": "#/definitions/Sizing" + } + }, + "required": ["lg", "md", "sm", "xl", "xs", "xxl"], + "title": "Lineheight" + }, + "01_SurfacesText": { + "type": "object", + "additionalProperties": false, + "properties": { + "default": { + "$ref": "#/definitions/InvertedClass" + }, + "inverted": { + "$ref": "#/definitions/InvertedClass" + } + }, + "required": ["default", "inverted"], + "title": "01_SurfacesText" + }, + "InvertedClass": { + "type": "object", + "additionalProperties": false, + "properties": { + "light": { + "$ref": "#/definitions/DarkClass" + }, + "dark": { + "$ref": "#/definitions/DarkClass" + }, + "chad": { + "$ref": "#/definitions/DarkClass" + } + }, + "required": ["chad", "dark", "light"], + "title": "InvertedClass" + }, + "DarkClass": { + "type": "object", + "additionalProperties": false, + "properties": { + "text": { + "$ref": "#/definitions/PurpleText" + }, + "layer": { + "$ref": "#/definitions/PurpleLayer" + }, + "tables": { + "$ref": "#/definitions/TablesClass" + } + }, + "required": ["layer", "tables", "text"], + "title": "DarkClass" + }, + "PurpleLayer": { + "type": "object", + "additionalProperties": false, + "properties": { + "1": { + "$ref": "#/definitions/1" + }, + "2": { + "$ref": "#/definitions/1" + }, + "3": { + "$ref": "#/definitions/1" + }, + "highlight": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "required": ["1", "2", "3", "highlight"], + "title": "PurpleLayer" + }, + "TablesClass": { + "type": "object", + "additionalProperties": false, + "properties": { + "header fill": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "required": ["header fill"], + "title": "TablesClass" + }, + "PurpleText": { + "type": "object", + "additionalProperties": false, + "properties": { + "primary": { + "$ref": "#/definitions/ColumnSpacing" + }, + "secondary": { + "$ref": "#/definitions/ColumnSpacing" + }, + "tertiary": { + "$ref": "#/definitions/ColumnSpacing" + }, + "highlight": { + "$ref": "#/definitions/ColumnSpacing" + }, + "disabled": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "required": ["disabled", "highlight", "primary", "secondary", "tertiary"], + "title": "PurpleText" + }, + "02_Font": { + "type": "object", + "additionalProperties": false, + "properties": { + "heading": { + "$ref": "#/definitions/02_FontHeading" + }, + "body": { + "$ref": "#/definitions/02_FontBody" + }, + "button-label": { + "$ref": "#/definitions/ButtonLabel" + }, + "table": { + "$ref": "#/definitions/02_FontTable" + }, + "highlighted": { + "$ref": "#/definitions/02_FontHighlighted" + } + }, + "required": ["body", "button-label", "heading", "highlighted", "table"], + "title": "02_Font" + }, + "02_FontBody": { + "type": "object", + "additionalProperties": false, + "properties": { + "mregular": { + "$ref": "#/definitions/ButtonLabelMbold" + }, + "mbold": { + "$ref": "#/definitions/ButtonLabelMbold" + }, + "sregular": { + "$ref": "#/definitions/ButtonLabelMbold" + }, + "sbold": { + "$ref": "#/definitions/ButtonLabelMbold" + }, + "xsregular": { + "$ref": "#/definitions/ButtonLabelMbold" + }, + "xsbold": { + "$ref": "#/definitions/ButtonLabelMbold" + } + }, + "required": ["mbold", "mregular", "sbold", "sregular", "xsbold", "xsregular"], + "title": "02_FontBody" + }, + "ButtonLabelMbold": { + "type": "object", + "additionalProperties": false, + "properties": { + "description": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/MboldType" + }, + "value": { + "$ref": "#/definitions/MboldValue" + } + }, + "required": ["description", "type", "value"], + "title": "ButtonLabelMbold" + }, + "MboldValue": { + "type": "object", + "additionalProperties": false, + "properties": { + "fontSize": { + "type": "integer" + }, + "textDecoration": { + "$ref": "#/definitions/Text" + }, + "fontFamily": { + "$ref": "#/definitions/FontFamily" + }, + "fontWeight": { + "type": "integer" + }, + "fontStyle": { + "$ref": "#/definitions/BlendMode" + }, + "fontStretch": { + "$ref": "#/definitions/BlendMode" + }, + "letterSpacing": { + "type": "number" + }, + "lineHeight": { + "type": "integer" + }, + "paragraphIndent": { + "type": "integer" + }, + "paragraphSpacing": { + "type": "integer" + }, + "textCase": { + "$ref": "#/definitions/Text" + } + }, + "required": [ + "fontFamily", + "fontSize", + "fontStretch", + "fontStyle", + "fontWeight", + "letterSpacing", + "lineHeight", + "paragraphIndent", + "paragraphSpacing", + "textCase", + "textDecoration" + ], + "title": "MboldValue" + }, + "ButtonLabel": { + "type": "object", + "additionalProperties": false, + "properties": { + "xs": { + "$ref": "#/definitions/ButtonLabelMbold" + }, + "s": { + "$ref": "#/definitions/ButtonLabelMbold" + }, + "m": { + "$ref": "#/definitions/ButtonLabelMbold" + } + }, + "required": ["m", "s", "xs"], + "title": "ButtonLabel" + }, + "02_FontHeading": { + "type": "object", + "additionalProperties": false, + "properties": { + "xxl": { + "$ref": "#/definitions/ButtonLabelMbold" + }, + "mbold": { + "$ref": "#/definitions/ButtonLabelMbold" + }, + "mlight": { + "$ref": "#/definitions/Mlight" + }, + "sbold": { + "$ref": "#/definitions/ButtonLabelMbold" + }, + "xsbold": { + "$ref": "#/definitions/ButtonLabelMbold" + }, + "xsmedium": { + "$ref": "#/definitions/Mlight" + } + }, + "required": ["mbold", "mlight", "sbold", "xsbold", "xsmedium", "xxl"], + "title": "02_FontHeading" + }, + "Mlight": { + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "$ref": "#/definitions/MboldType" + }, + "value": { + "$ref": "#/definitions/MboldValue" + } + }, + "required": ["type", "value"], + "title": "Mlight" + }, + "02_FontHighlighted": { + "type": "object", + "additionalProperties": false, + "properties": { + "xsnotional": { + "$ref": "#/definitions/ButtonLabelMbold" + }, + "xs": { + "$ref": "#/definitions/ButtonLabelMbold" + }, + "s": { + "$ref": "#/definitions/ButtonLabelMbold" + }, + "m": { + "$ref": "#/definitions/ButtonLabelMbold" + }, + "l": { + "$ref": "#/definitions/Mlight" + }, + "xl": { + "$ref": "#/definitions/ButtonLabelMbold" + }, + "xxl": { + "$ref": "#/definitions/ButtonLabelMbold" + } + }, + "required": ["l", "m", "s", "xl", "xs", "xsnotional", "xxl"], + "title": "02_FontHighlighted" + }, + "02_FontTable": { + "type": "object", + "additionalProperties": false, + "properties": { + "header": { + "$ref": "#/definitions/PurpleHeader" + }, + "cell": { + "$ref": "#/definitions/PurpleCell" + } + }, + "required": ["cell", "header"], + "title": "02_FontTable" + }, + "PurpleCell": { + "type": "object", + "additionalProperties": false, + "properties": { + "l": { + "$ref": "#/definitions/ButtonLabelMbold" + }, + "mregular": { + "$ref": "#/definitions/ButtonLabelMbold" + }, + "mbold": { + "$ref": "#/definitions/ButtonLabelMbold" + }, + "sregular": { + "$ref": "#/definitions/ButtonLabelMbold" + }, + "sbold": { + "$ref": "#/definitions/ButtonLabelMbold" + } + }, + "required": ["l", "mbold", "mregular", "sbold", "sregular"], + "title": "PurpleCell" + }, + "PurpleHeader": { + "type": "object", + "additionalProperties": false, + "properties": { + "m": { + "$ref": "#/definitions/Mlight" + }, + "s": { + "$ref": "#/definitions/Mlight" + } + }, + "required": ["m", "s"], + "title": "PurpleHeader" + }, + "02_Theme": { + "type": "object", + "additionalProperties": false, + "properties": { + "light": { + "$ref": "#/definitions/Dark" + }, + "dark": { + "$ref": "#/definitions/Dark" + }, + "chad": { + "$ref": "#/definitions/02_ThemeChad" + } + }, + "required": ["chad", "dark", "light"], + "title": "02_Theme" + }, + "02_ThemeChad": { + "type": "object", + "additionalProperties": false, + "properties": { + "layer": { + "$ref": "#/definitions/FluffyLayer" + }, + "text": { + "$ref": "#/definitions/FluffyText" + }, + "feedback": { + "$ref": "#/definitions/Feedback" + }, + "color": { + "$ref": "#/definitions/Color" + }, + "button": { + "$ref": "#/definitions/Button" + }, + "tabs": { + "$ref": "#/definitions/Tabs" + }, + "toggles": { + "$ref": "#/definitions/Toggles" + }, + "radius": { + "$ref": "#/definitions/ChadRadius" + }, + "chips": { + "$ref": "#/definitions/Chips" + }, + "table": { + "$ref": "#/definitions/TablesClass" + }, + "input & select": { + "$ref": "#/definitions/InputSelect" + } + }, + "required": [ + "button", + "chips", + "color", + "feedback", + "input & select", + "layer", + "radius", + "table", + "tabs", + "text", + "toggles" + ], + "title": "02_ThemeChad" + }, + "Button": { + "type": "object", + "additionalProperties": false, + "properties": { + "primary": { + "$ref": "#/definitions/Alert" + }, + "focus outline width": { + "$ref": "#/definitions/Sizing" + }, + "focus outline": { + "$ref": "#/definitions/ColumnSpacing" + }, + "secondary": { + "$ref": "#/definitions/Alert" + }, + "ghost": { + "$ref": "#/definitions/Ghost" + }, + "radius": { + "$ref": "#/definitions/ButtonRadius" + }, + "success": { + "$ref": "#/definitions/Alert" + }, + "alert": { + "$ref": "#/definitions/Alert" + }, + "navigation": { + "$ref": "#/definitions/Navigation" + }, + "outlined": { + "$ref": "#/definitions/Outlined" + } + }, + "required": [ + "alert", + "focus outline", + "focus outline width", + "ghost", + "navigation", + "outlined", + "primary", + "radius", + "secondary", + "success" + ], + "title": "Button" + }, + "Alert": { + "type": "object", + "additionalProperties": false, + "properties": { + "default": { + "$ref": "#/definitions/CurrentClass" + }, + "hover": { + "$ref": "#/definitions/CurrentClass" + }, + "disabled": { + "$ref": "#/definitions/CurrentClass" + } + }, + "required": ["default", "disabled", "hover"], + "title": "Alert" + }, + "CurrentClass": { + "type": "object", + "additionalProperties": false, + "properties": { + "label & icon": { + "$ref": "#/definitions/ColumnSpacing" + }, + "fill": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "required": ["fill", "label & icon"], + "title": "CurrentClass" + }, + "Ghost": { + "type": "object", + "additionalProperties": false, + "properties": { + "default": { + "$ref": "#/definitions/GhostDefault" + }, + "hover": { + "$ref": "#/definitions/CurrentClass" + }, + "disabled": { + "$ref": "#/definitions/CurrentClass" + } + }, + "required": ["default", "disabled", "hover"], + "title": "Ghost" + }, + "GhostDefault": { + "type": "object", + "additionalProperties": false, + "properties": { + "label & icon": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "required": ["label & icon"], + "title": "GhostDefault" + }, + "Navigation": { + "type": "object", + "additionalProperties": false, + "properties": { + "default": { + "$ref": "#/definitions/GhostDefault" + }, + "hover": { + "$ref": "#/definitions/PurpleHover" + }, + "current": { + "$ref": "#/definitions/CurrentClass" + } + }, + "required": ["current", "default", "hover"], + "title": "Navigation" + }, + "PurpleHover": { + "type": "object", + "additionalProperties": false, + "properties": { + "label & icon": { + "$ref": "#/definitions/ColumnSpacing" + }, + "fill": { + "$ref": "#/definitions/ColumnSpacing" + }, + "label & icon 2": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "required": ["fill", "label & icon", "label & icon 2"], + "title": "PurpleHover" + }, + "Outlined": { + "type": "object", + "additionalProperties": false, + "properties": { + "default": { + "$ref": "#/definitions/DisabledClass" + }, + "hover": { + "$ref": "#/definitions/DisabledClass" + }, + "disabled": { + "$ref": "#/definitions/DisabledClass" + } + }, + "required": ["default", "disabled", "hover"], + "title": "Outlined" + }, + "DisabledClass": { + "type": "object", + "additionalProperties": false, + "properties": { + "label & icon": { + "$ref": "#/definitions/ColumnSpacing" + }, + "outline": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "required": ["label & icon", "outline"], + "title": "DisabledClass" + }, + "ButtonRadius": { + "type": "object", + "additionalProperties": false, + "properties": { + "md": { + "$ref": "#/definitions/Sizing" + }, + "xs": { + "$ref": "#/definitions/Sizing" + }, + "sm": { + "$ref": "#/definitions/Sizing" + }, + "lg": { + "$ref": "#/definitions/Sizing" + } + }, + "required": ["lg", "md", "sm", "xs"], + "title": "ButtonRadius" + }, + "Chips": { + "type": "object", + "additionalProperties": false, + "properties": { + "default": { + "$ref": "#/definitions/ChipsDefault" + }, + "hover": { + "$ref": "#/definitions/CurrentClass" + }, + "current": { + "$ref": "#/definitions/Current" + } + }, + "required": ["current", "default", "hover"], + "title": "Chips" + }, + "Current": { + "type": "object", + "additionalProperties": false, + "properties": { + "label & icon": { + "$ref": "#/definitions/ColumnSpacing" + }, + "fill": { + "$ref": "#/definitions/ColumnSpacing" + }, + "outline": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "required": ["fill", "label & icon", "outline"], + "title": "Current" + }, + "ChipsDefault": { + "type": "object", + "additionalProperties": false, + "properties": { + "label & icon": { + "$ref": "#/definitions/ColumnSpacing" + }, + "fill": { + "$ref": "#/definitions/ColumnSpacing" + }, + "stroke": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "required": ["fill", "label & icon", "stroke"], + "title": "ChipsDefault" + }, + "Color": { + "type": "object", + "additionalProperties": false, + "properties": { + "neutral": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "primary": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "secondary": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "tertiary": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ColumnSpacing" + } + } + }, + "required": ["neutral", "primary", "secondary", "tertiary"], + "title": "Color" + }, + "Feedback": { + "type": "object", + "additionalProperties": false, + "properties": { + "warning": { + "$ref": "#/definitions/ColumnSpacing" + }, + "success": { + "$ref": "#/definitions/ColumnSpacing" + }, + "alert": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "required": ["alert", "success", "warning"], + "title": "Feedback" + }, + "InputSelect": { + "type": "object", + "additionalProperties": false, + "properties": { + "base": { + "$ref": "#/definitions/Base" + }, + "large": { + "$ref": "#/definitions/Large" + } + }, + "required": ["base", "large"], + "title": "InputSelect" + }, + "Base": { + "type": "object", + "additionalProperties": false, + "properties": { + "default": { + "$ref": "#/definitions/BaseDefault" + }, + "nested": { + "$ref": "#/definitions/Nested" + } + }, + "required": ["default", "nested"], + "title": "Base" + }, + "BaseDefault": { + "type": "object", + "additionalProperties": false, + "properties": { + "fill": { + "$ref": "#/definitions/ColumnSpacing" + }, + "border": { + "$ref": "#/definitions/Border" + } + }, + "required": ["border", "fill"], + "title": "BaseDefault" + }, + "Border": { + "type": "object", + "additionalProperties": false, + "properties": { + "default": { + "$ref": "#/definitions/ColumnSpacing" + }, + "error": { + "$ref": "#/definitions/ColumnSpacing" + }, + "active": { + "$ref": "#/definitions/ColumnSpacing" + }, + "filled": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "required": ["active", "default", "error", "filled"], + "title": "Border" + }, + "Nested": { + "type": "object", + "additionalProperties": false, + "properties": { + "nested": { + "$ref": "#/definitions/ColumnSpacing" + }, + "fill": { + "$ref": "#/definitions/ColumnSpacing" + }, + "border": { + "$ref": "#/definitions/Border" + } + }, + "required": ["border", "fill", "nested"], + "title": "Nested" + }, + "Large": { + "type": "object", + "additionalProperties": false, + "properties": { + "default": { + "$ref": "#/definitions/LargeDefault" + } + }, + "required": ["default"], + "title": "Large" + }, + "LargeDefault": { + "type": "object", + "additionalProperties": false, + "properties": { + "fill": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "required": ["fill"], + "title": "LargeDefault" + }, + "FluffyLayer": { + "type": "object", + "additionalProperties": false, + "properties": { + "1": { + "$ref": "#/definitions/1" + }, + "2": { + "$ref": "#/definitions/1" + }, + "3": { + "$ref": "#/definitions/1" + }, + "highlight": { + "$ref": "#/definitions/1" + }, + "app": { + "$ref": "#/definitions/App" + } + }, + "required": ["1", "2", "3", "app", "highlight"], + "title": "FluffyLayer" + }, + "App": { + "type": "object", + "additionalProperties": false, + "properties": { + "background": { + "$ref": "#/definitions/Blue" + } + }, + "required": ["background"], + "title": "App" + }, + "ChadRadius": { + "type": "object", + "additionalProperties": false, + "properties": { + "md": { + "$ref": "#/definitions/Sizing" + }, + "xl": { + "$ref": "#/definitions/Sizing" + }, + "sm": { + "$ref": "#/definitions/Sizing" + }, + "xs": { + "$ref": "#/definitions/Sizing" + }, + "square": { + "$ref": "#/definitions/Sizing" + }, + "rounded": { + "$ref": "#/definitions/Sizing" + } + }, + "required": ["md", "rounded", "sm", "square", "xl", "xs"], + "title": "ChadRadius" + }, + "Tabs": { + "type": "object", + "additionalProperties": false, + "properties": { + "contained": { + "$ref": "#/definitions/Contained" + }, + "underlined": { + "$ref": "#/definitions/Underlined" + }, + "overlined": { + "$ref": "#/definitions/Overlined" + } + }, + "required": ["contained", "overlined", "underlined"], + "title": "Tabs" + }, + "Contained": { + "type": "object", + "additionalProperties": false, + "properties": { + "default": { + "$ref": "#/definitions/CurrentClass" + }, + "hover": { + "$ref": "#/definitions/CurrentClass" + }, + "current": { + "$ref": "#/definitions/Current" + }, + "active": { + "$ref": "#/definitions/Current" + } + }, + "required": ["active", "current", "default", "hover"], + "title": "Contained" + }, + "Overlined": { + "type": "object", + "additionalProperties": false, + "properties": { + "default": { + "$ref": "#/definitions/DisabledClass" + }, + "hover": { + "$ref": "#/definitions/DisabledClass" + }, + "current": { + "$ref": "#/definitions/Current" + }, + "active": { + "$ref": "#/definitions/DisabledClass" + } + }, + "required": ["active", "current", "default", "hover"], + "title": "Overlined" + }, + "Underlined": { + "type": "object", + "additionalProperties": false, + "properties": { + "default": { + "$ref": "#/definitions/DisabledClass" + }, + "hover": { + "$ref": "#/definitions/DisabledClass" + }, + "current": { + "$ref": "#/definitions/DisabledClass" + }, + "active": { + "$ref": "#/definitions/DisabledClass" + }, + "container border": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "required": ["active", "container border", "current", "default", "hover"], + "title": "Underlined" + }, + "FluffyText": { + "type": "object", + "additionalProperties": false, + "properties": { + "textcolors": { + "$ref": "#/definitions/Textcolors" + }, + "fontfamily": { + "$ref": "#/definitions/Fontfamily" + } + }, + "required": ["fontfamily", "textcolors"], + "title": "FluffyText" + }, + "Fontfamily": { + "type": "object", + "additionalProperties": false, + "properties": { + "heading": { + "$ref": "#/definitions/ColumnSpacing" + }, + "body": { + "$ref": "#/definitions/ColumnSpacing" + }, + "mono": { + "$ref": "#/definitions/ColumnSpacing" + }, + "button": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "required": ["body", "button", "heading", "mono"], + "title": "Fontfamily" + }, + "Textcolors": { + "type": "object", + "additionalProperties": false, + "properties": { + "primary": { + "$ref": "#/definitions/ColumnSpacing" + }, + "secondary": { + "$ref": "#/definitions/ColumnSpacing" + }, + "tertiary": { + "$ref": "#/definitions/ColumnSpacing" + }, + "highlight": { + "$ref": "#/definitions/ColumnSpacing" + }, + "disabled": { + "$ref": "#/definitions/ColumnSpacing" + }, + "success": { + "$ref": "#/definitions/ColumnSpacing" + }, + "alert": { + "$ref": "#/definitions/ColumnSpacing" + }, + "warning": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "required": ["alert", "disabled", "highlight", "primary", "secondary", "success", "tertiary", "warning"], + "title": "Textcolors" + }, + "Toggles": { + "type": "object", + "additionalProperties": false, + "properties": { + "default": { + "$ref": "#/definitions/GhostDefault" + }, + "hover": { + "$ref": "#/definitions/CurrentClass" + }, + "current": { + "$ref": "#/definitions/CurrentClass" + } + }, + "required": ["current", "default", "hover"], + "title": "Toggles" + }, + "Dark": { + "type": "object", + "additionalProperties": false, + "properties": { + "layer": { + "$ref": "#/definitions/FluffyLayer" + }, + "text": { + "$ref": "#/definitions/FluffyText" + }, + "feedback": { + "$ref": "#/definitions/Feedback" + }, + "color": { + "$ref": "#/definitions/Color" + }, + "button": { + "$ref": "#/definitions/Button" + }, + "tabs": { + "$ref": "#/definitions/Tabs" + }, + "toggles": { + "$ref": "#/definitions/Toggles" + }, + "radius": { + "$ref": "#/definitions/DarkRadius" + }, + "chips": { + "$ref": "#/definitions/Chips" + }, + "table": { + "$ref": "#/definitions/TablesClass" + }, + "input & select": { + "$ref": "#/definitions/InputSelect" + } + }, + "required": [ + "button", + "chips", + "color", + "feedback", + "input & select", + "layer", + "radius", + "table", + "tabs", + "text", + "toggles" + ], + "title": "Dark" + }, + "DarkRadius": { + "type": "object", + "additionalProperties": false, + "properties": { + "md": { + "$ref": "#/definitions/ColumnSpacing" + }, + "xl": { + "$ref": "#/definitions/ColumnSpacing" + }, + "sm": { + "$ref": "#/definitions/ColumnSpacing" + }, + "xs": { + "$ref": "#/definitions/ColumnSpacing" + }, + "square": { + "$ref": "#/definitions/Sizing" + }, + "rounded": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "required": ["md", "rounded", "sm", "square", "xl", "xs"], + "title": "DarkRadius" + }, + "CurveFigmaTokensTypography": { + "type": "object", + "additionalProperties": false, + "properties": { + "heading": { + "$ref": "#/definitions/TypographyHeading" + }, + "body": { + "$ref": "#/definitions/TypographyBody" + }, + "buttonlabel": { + "$ref": "#/definitions/Buttonlabel" + }, + "table": { + "$ref": "#/definitions/TypographyTable" + }, + "highlighted": { + "$ref": "#/definitions/TypographyHighlighted" + } + }, + "required": ["body", "buttonlabel", "heading", "highlighted", "table"], + "title": "CurveFigmaTokensTypography" + }, + "TypographyBody": { + "type": "object", + "additionalProperties": false, + "properties": { + "mregular": { + "$ref": "#/definitions/MlightClass" + }, + "mbold": { + "$ref": "#/definitions/MlightClass" + }, + "sregular": { + "$ref": "#/definitions/MlightClass" + }, + "sbold": { + "$ref": "#/definitions/MlightClass" + }, + "xsregular": { + "$ref": "#/definitions/MlightClass" + }, + "xsbold": { + "$ref": "#/definitions/MlightClass" + } + }, + "required": ["mbold", "mregular", "sbold", "sregular", "xsbold", "xsregular"], + "title": "TypographyBody" + }, + "MlightClass": { + "type": "object", + "additionalProperties": false, + "properties": { + "description": { + "type": "string" + }, + "fontSize": { + "$ref": "#/definitions/Sizing" + }, + "textDecoration": { + "$ref": "#/definitions/ColumnSpacing" + }, + "fontFamily": { + "$ref": "#/definitions/ColumnSpacing" + }, + "fontWeight": { + "$ref": "#/definitions/Sizing" + }, + "fontStyle": { + "$ref": "#/definitions/ColumnSpacing" + }, + "fontStretch": { + "$ref": "#/definitions/ColumnSpacing" + }, + "letterSpacing": { + "$ref": "#/definitions/Sizing" + }, + "lineHeight": { + "$ref": "#/definitions/Sizing" + }, + "paragraphIndent": { + "$ref": "#/definitions/Sizing" + }, + "paragraphSpacing": { + "$ref": "#/definitions/Sizing" + }, + "textCase": { + "$ref": "#/definitions/ColumnSpacing" + } + }, + "required": [ + "fontFamily", + "fontSize", + "fontStretch", + "fontStyle", + "fontWeight", + "letterSpacing", + "lineHeight", + "paragraphIndent", + "paragraphSpacing", + "textCase", + "textDecoration" + ], + "title": "MlightClass" + }, + "Buttonlabel": { + "type": "object", + "additionalProperties": false, + "properties": { + "xs": { + "$ref": "#/definitions/MlightClass" + }, + "s": { + "$ref": "#/definitions/MlightClass" + }, + "m": { + "$ref": "#/definitions/MlightClass" + } + }, + "required": ["m", "s", "xs"], + "title": "Buttonlabel" + }, + "TypographyHeading": { + "type": "object", + "additionalProperties": false, + "properties": { + "xxl": { + "$ref": "#/definitions/MlightClass" + }, + "mbold": { + "$ref": "#/definitions/MlightClass" + }, + "mlight": { + "$ref": "#/definitions/MlightClass" + }, + "sbold": { + "$ref": "#/definitions/MlightClass" + }, + "xsbold": { + "$ref": "#/definitions/MlightClass" + }, + "xsmedium": { + "$ref": "#/definitions/MlightClass" + } + }, + "required": ["mbold", "mlight", "sbold", "xsbold", "xsmedium", "xxl"], + "title": "TypographyHeading" + }, + "TypographyHighlighted": { + "type": "object", + "additionalProperties": false, + "properties": { + "xsnotional": { + "$ref": "#/definitions/MlightClass" + }, + "xs": { + "$ref": "#/definitions/MlightClass" + }, + "s": { + "$ref": "#/definitions/MlightClass" + }, + "m": { + "$ref": "#/definitions/MlightClass" + }, + "l": { + "$ref": "#/definitions/MlightClass" + }, + "xl": { + "$ref": "#/definitions/MlightClass" + }, + "xxl": { + "$ref": "#/definitions/MlightClass" + } + }, + "required": ["l", "m", "s", "xl", "xs", "xsnotional", "xxl"], + "title": "TypographyHighlighted" + }, + "TypographyTable": { + "type": "object", + "additionalProperties": false, + "properties": { + "header": { + "$ref": "#/definitions/FluffyHeader" + }, + "cell": { + "$ref": "#/definitions/FluffyCell" + } + }, + "required": ["cell", "header"], + "title": "TypographyTable" + }, + "FluffyCell": { + "type": "object", + "additionalProperties": false, + "properties": { + "l": { + "$ref": "#/definitions/MlightClass" + }, + "mregular": { + "$ref": "#/definitions/MlightClass" + }, + "mbold": { + "$ref": "#/definitions/MlightClass" + }, + "sregular": { + "$ref": "#/definitions/MlightClass" + }, + "sbold": { + "$ref": "#/definitions/MlightClass" + } + }, + "required": ["l", "mbold", "mregular", "sbold", "sregular"], + "title": "FluffyCell" + }, + "FluffyHeader": { + "type": "object", + "additionalProperties": false, + "properties": { + "m": { + "$ref": "#/definitions/MlightClass" + }, + "s": { + "$ref": "#/definitions/MlightClass" + } + }, + "required": ["m", "s"], + "title": "FluffyHeader" + }, + "0_Type": { + "type": "string", + "enum": ["custom-shadow"], + "title": "0_Type" + }, + "ShadowType": { + "type": "string", + "enum": ["dropShadow", "innerShadow"], + "title": "ShadowType" + }, + "12-ColCardsType": { + "type": "string", + "enum": ["custom-grid"], + "title": "12-ColCardsType" + }, + "Alignment": { + "type": "string", + "enum": ["stretch"], + "title": "Alignment" + }, + "Pattern": { + "type": "string", + "enum": ["columns"], + "title": "Pattern" + }, + "BlendMode": { + "type": "string", + "enum": ["normal"], + "title": "BlendMode" + }, + "BlueType": { + "type": "string", + "enum": ["color", "dimension", "string"], + "title": "BlueType" + }, + "RoundType": { + "type": "string", + "enum": ["dimension", "number"], + "title": "RoundType" + }, + "MboldType": { + "type": "string", + "enum": ["custom-fontStyle"], + "title": "MboldType" + }, + "FontFamily": { + "type": "string", + "enum": ["Mona Sans"], + "title": "FontFamily" + }, + "Text": { + "type": "string", + "enum": ["none", "uppercase", "capitalize"], + "title": "Text" + } + } +} diff --git a/packages/curve-ui-kit/src/shared/api/figma-tokens/validation/validate-figma-tokens.js b/packages/curve-ui-kit/src/shared/api/figma-tokens/validation/validate-figma-tokens.js new file mode 100644 index 00000000..3c4b00e5 --- /dev/null +++ b/packages/curve-ui-kit/src/shared/api/figma-tokens/validation/validate-figma-tokens.js @@ -0,0 +1,16 @@ +import Ajv from 'ajv' + +const ajv = new Ajv() + +import schema from './curve-figma-design.tokens.schema.json' assert { type: 'json' } +import curveFigmaDesignTokens from '../tokens/curve-figma-design.tokens.json' assert { type: 'json' } + +const validate = ajv.compile(schema) +const valid = validate(curveFigmaDesignTokens) + +if (!valid) { + console.error('Figma tokens validation errors:', validate.errors) + process.exit(1) +} else { + console.log('Figma tokens JSON file successfully validated.') +} From 9ebd95fe4d66a0f7a7acc8611261d00e7b873c9c Mon Sep 17 00:00:00 2001 From: Ignat Date: Thu, 19 Sep 2024 15:45:30 +0500 Subject: [PATCH 03/17] =?UTF-8?q?feat:=20add=20`curve=E2=80=93ui=E2=80=93k?= =?UTF-8?q?it`=20package=20with=20`MUI`=20&=20`storybook`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc.js | 21 +- .gitignore | 4 + package.json | 4 +- packages/curve-ui-kit/package.json | 45 + packages/curve-ui-kit/tsconfig.json | 24 + packages/curve-ui-kit/turbo.json | 13 + turbo.json | 20 +- yarn.lock | 6054 ++++++++++++++++++++++++++- 8 files changed, 5949 insertions(+), 236 deletions(-) create mode 100644 packages/curve-ui-kit/package.json create mode 100644 packages/curve-ui-kit/tsconfig.json create mode 100644 packages/curve-ui-kit/turbo.json diff --git a/.eslintrc.js b/.eslintrc.js index 195f86e9..d33a1fac 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -4,33 +4,34 @@ module.exports = { extends: ['custom'], settings: { next: { - rootDir: ['apps/*/', 'packages/ui/*/', 'packages/onboard-helpers/*/'] - } + rootDir: ['apps/*/', 'packages/ui/*/', 'packages/onboard-helpers/*/', 'packages/curve-ui-kit/*/'], + }, }, overrides: [ // enforce Feature Sliced rules for loan app (except 'pages' folder) and curve-lib { files: [ 'apps/loan/src/{app,widgets,features,entities,shared}/**/*.{ts,tsx}', - 'packages/curve-lib/src/shared/**/*.ts' + 'packages/curve-lib/src/shared/**/*.ts', + 'packages/curve-ui-kit/src/**/*.{ts,tsx}', ], rules: { 'import/order': 'error', // feature-sliced/import-order 'import/no-internal-modules': 'error', // feature-sliced/public-api - 'boundaries/element-types': 'error' // feature-sliced/layers-slices - } + 'boundaries/element-types': 'error', // feature-sliced/layers-slices + }, }, // warn about Feature Sliced rules for main and lend apps, plus loan 'pages' folder { files: [ 'apps/{main,lend}/src/{app,pages,widgets,features,entities,shared}/**/*.{ts,tsx}', - 'apps/loan/src/pages/**/*.{ts,tsx}' + 'apps/loan/src/pages/**/*.{ts,tsx}', ], rules: { 'import/order': 'warn', // feature-sliced/import-order 'import/no-internal-modules': 'warn', // feature-sliced/public-api - 'boundaries/element-types': 'warn' // feature-sliced/layers-slices - } - } - ] + 'boundaries/element-types': 'warn', // feature-sliced/layers-slices + }, + }, + ], } diff --git a/.gitignore b/.gitignore index 87585717..df0ce53c 100644 --- a/.gitignore +++ b/.gitignore @@ -64,3 +64,7 @@ report.*.json # hardhat tests/cache + +# storybook +storybook-static +*storybook.log diff --git a/package.json b/package.json index c33838c4..f3e1b6c8 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,9 @@ "lint": "turbo lint", "lint:fix": "turbo lint -- --fix", "format": "prettier --write \"**/*.{ts,tsx,md}\"", - "prepare": "is-ci || husky" + "prepare": "is-ci || husky", + "storybook": "turbo run storybook --filter=curve-ui-kit", + "storybook:build": "turbo run storybook:build --filter=curve-ui-kit" }, "devDependencies": { "@commitlint/cli": "^19.5.0", diff --git a/packages/curve-ui-kit/package.json b/packages/curve-ui-kit/package.json new file mode 100644 index 00000000..295d2949 --- /dev/null +++ b/packages/curve-ui-kit/package.json @@ -0,0 +1,45 @@ +{ + "name": "curve-ui-kit", + "version": "0.1.0", + "type": "module", + "main": "src/index.ts", + "types": "src/index.ts", + "license": "MIT", + "private": true, + "scripts": { + "lint": "eslint \"**/*.ts*\"", + "validate:figma-tokens": "node src/shared/api/figma-tokens/validation/validate-figma-tokens.js", + "storybook": "yarn validate:figma-tokens && storybook dev -p 6006 --no-open", + "build:storybook": "yarn validate:figma-tokens && storybook build" + }, + "dependencies": { + "@emotion/react": "^11.13.3", + "@emotion/styled": "^11.13.0", + "@mui/material": "^6.1.4", + "@mui/utils": "^6.1.4" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + }, + "devDependencies": { + "@chromatic-com/storybook": "^2.0.2", + "@storybook/addon-a11y": "^8.3.5", + "@storybook/addon-docs": "^8.3.5", + "@storybook/addon-essentials": "^8.3.5", + "@storybook/addon-interactions": "^8.3.5", + "@storybook/addon-themes": "^8.3.5", + "@storybook/blocks": "^8.3.5", + "@storybook/nextjs": "^8.3.5", + "@storybook/react": "^8.3.5", + "@storybook/test": "^8.3.5", + "@types/react": "*", + "@types/react-dom": "*", + "ajv": "^8.17.1", + "prop-types": "^15.8.1", + "react-docgen-typescript": "^2.2.2", + "storybook": "^8.3.5", + "tsconfig": "*", + "type-fest": "^4.26.1" + } +} diff --git a/packages/curve-ui-kit/tsconfig.json b/packages/curve-ui-kit/tsconfig.json new file mode 100644 index 00000000..98571348 --- /dev/null +++ b/packages/curve-ui-kit/tsconfig.json @@ -0,0 +1,24 @@ +{ + "extends": "tsconfig/ui.json", + "compilerOptions": { + "strict": true, + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "allowSyntheticDefaultImports": true, + "resolveJsonModule": true, + "baseUrl": "./src", + "paths": { + "@/*": ["*"] + } + }, + "exclude": ["node_modules"], + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + "vite.config.mts", + "**/*.d.ts", + "src/shared/api/figma-tokens/validation/validate-figma-tokens.js" + ] +} diff --git a/packages/curve-ui-kit/turbo.json b/packages/curve-ui-kit/turbo.json new file mode 100644 index 00000000..10650401 --- /dev/null +++ b/packages/curve-ui-kit/turbo.json @@ -0,0 +1,13 @@ +{ + "extends": ["//"], + "tasks": { + "build:storybook": { + "dependsOn": ["^build:storybook"], + "outputs": ["storybook-static/**"] + }, + "storybook": { + "dependsOn": ["^storybook"], + "outputs": ["storybook-static/**"] + } + } +} diff --git a/turbo.json b/turbo.json index 9bd8eff4..f6b27801 100644 --- a/turbo.json +++ b/turbo.json @@ -1,8 +1,6 @@ { "$schema": "https://turborepo.org/schema.json", - "globalDependencies": [ - "**/.env.*local" - ], + "globalDependencies": ["**/.env.*local"], "globalEnv": [ "NEXT_PUBLIC_MAINTENANCE_MESSAGE", "NEXT_PUBLIC_ETHEREUM_DEV_RPC_URL", @@ -35,20 +33,16 @@ ], "tasks": { "build": { - "dependsOn": [ - "^build" - ], - "outputs": [ - "dist/**", - "out/**", - ".next/**", - "!.next/cache/**" - ] + "dependsOn": ["^build"], + "inputs": ["$TURBO_DEFAULT$", "!**/*.stories.{tsx,jsx,mdx}"], + "outputs": ["dist/**", "out/**", ".next/**", "!.next/cache/**", "storybook-static/**"] }, "lint": {}, "dev": { "cache": false, "persistent": true - } + }, + "build:storybook": {}, + "storybook": { "cache": false, "persistent": true } } } diff --git a/yarn.lock b/yarn.lock index 793cf250..0c568e4e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,6 +5,13 @@ __metadata: version: 8 cacheKey: 10c0 +"@adobe/css-tools@npm:^4.4.0": + version: 4.4.0 + resolution: "@adobe/css-tools@npm:4.4.0" + checksum: 10c0/d65ddc719389bf469097df80fb16a8af48a973dea4b57565789d70ac8e7ab4987e6dc0095da3ed5dc16c1b6f8960214a7590312eeda8abd543d91fd0f59e6c94 + languageName: node + linkType: hard + "@adraffy/ens-normalize@npm:1.10.0": version: 1.10.0 resolution: "@adraffy/ens-normalize@npm:1.10.0" @@ -38,6 +45,26 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/code-frame@npm:7.24.7" + dependencies: + "@babel/highlight": "npm:^7.24.7" + picocolors: "npm:^1.0.0" + checksum: 10c0/ab0af539473a9f5aeaac7047e377cb4f4edd255a81d84a76058595f8540784cc3fbe8acf73f1e073981104562490aabfb23008cd66dc677a456a4ed5390fdde6 + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/code-frame@npm:7.25.7" + dependencies: + "@babel/highlight": "npm:^7.25.7" + picocolors: "npm:^1.0.0" + checksum: 10c0/14825c298bdec914caf3d24d1383b6d4cd6b030714686004992f4fc251831ecf432236652896f99d5d341f17170ae9a07b58d8d7b15aa0df8cfa1c5a7d5474bc + languageName: node + linkType: hard + "@babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.23.5": version: 7.23.5 resolution: "@babel/code-frame@npm:7.23.5" @@ -48,16 +75,6 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/code-frame@npm:7.24.7" - dependencies: - "@babel/highlight": "npm:^7.24.7" - picocolors: "npm:^1.0.0" - checksum: 10c0/ab0af539473a9f5aeaac7047e377cb4f4edd255a81d84a76058595f8540784cc3fbe8acf73f1e073981104562490aabfb23008cd66dc677a456a4ed5390fdde6 - languageName: node - linkType: hard - "@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9, @babel/compat-data@npm:^7.23.3, @babel/compat-data@npm:^7.23.5": version: 7.23.5 resolution: "@babel/compat-data@npm:7.23.5" @@ -72,6 +89,36 @@ __metadata: languageName: node linkType: hard +"@babel/compat-data@npm:^7.25.7, @babel/compat-data@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/compat-data@npm:7.25.8" + checksum: 10c0/8b81c17580e5fb4cbb6a3c52079f8c283fc59c0c6bd2fe14cfcf9c44b32d2eaab71b02c5633e2c679f5896f73f8ac4036ba2e67a4c806e8f428e4b11f526d7f4 + languageName: node + linkType: hard + +"@babel/core@npm:^7.18.9, @babel/core@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/core@npm:7.25.2" + dependencies: + "@ampproject/remapping": "npm:^2.2.0" + "@babel/code-frame": "npm:^7.24.7" + "@babel/generator": "npm:^7.25.0" + "@babel/helper-compilation-targets": "npm:^7.25.2" + "@babel/helper-module-transforms": "npm:^7.25.2" + "@babel/helpers": "npm:^7.25.0" + "@babel/parser": "npm:^7.25.0" + "@babel/template": "npm:^7.25.0" + "@babel/traverse": "npm:^7.25.2" + "@babel/types": "npm:^7.25.2" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10c0/a425fa40e73cb72b6464063a57c478bc2de9dbcc19c280f1b55a3d88b35d572e87e8594e7d7b4880331addb6faef641bbeb701b91b41b8806cd4deae5d74f401 + languageName: node + linkType: hard + "@babel/core@npm:^7.21.0, @babel/core@npm:^7.21.3": version: 7.23.5 resolution: "@babel/core@npm:7.23.5" @@ -95,26 +142,26 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/core@npm:7.25.2" +"@babel/core@npm:^7.24.4": + version: 7.25.8 + resolution: "@babel/core@npm:7.25.8" dependencies: "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.24.7" - "@babel/generator": "npm:^7.25.0" - "@babel/helper-compilation-targets": "npm:^7.25.2" - "@babel/helper-module-transforms": "npm:^7.25.2" - "@babel/helpers": "npm:^7.25.0" - "@babel/parser": "npm:^7.25.0" - "@babel/template": "npm:^7.25.0" - "@babel/traverse": "npm:^7.25.2" - "@babel/types": "npm:^7.25.2" + "@babel/code-frame": "npm:^7.25.7" + "@babel/generator": "npm:^7.25.7" + "@babel/helper-compilation-targets": "npm:^7.25.7" + "@babel/helper-module-transforms": "npm:^7.25.7" + "@babel/helpers": "npm:^7.25.7" + "@babel/parser": "npm:^7.25.8" + "@babel/template": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.8" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 10c0/a425fa40e73cb72b6464063a57c478bc2de9dbcc19c280f1b55a3d88b35d572e87e8594e7d7b4880331addb6faef641bbeb701b91b41b8806cd4deae5d74f401 + checksum: 10c0/8411ea506e6f7c8a39ab5c1524b00589fa3b087edb47389708f7fe07170929192171734666e3ea10b95a951643a531a6d09eedfe071572c9ea28516646265086 languageName: node linkType: hard @@ -153,6 +200,18 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/generator@npm:7.25.7" + dependencies: + "@babel/types": "npm:^7.25.7" + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + jsesc: "npm:^3.0.2" + checksum: 10c0/c03a26c79864d60d04ce36b649c3fa0d6fd7b2bf6a22e22854a0457aa09206508392dd73ee40e7bc8d50b3602f9ff068afa47770cda091d332e7db1ca382ee96 + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" @@ -162,6 +221,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-annotate-as-pure@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-annotate-as-pure@npm:7.25.7" + dependencies: + "@babel/types": "npm:^7.25.7" + checksum: 10c0/2f020b0fa9d336b5778485cc2de3141561ec436a7591b685457a5bcdae4ce41d9ddee68169c95504e0789e5a4327e73b8b7e72e5b60e82e96d730c4d19255248 + languageName: node + linkType: hard + "@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.15": version: 7.22.15 resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.15" @@ -171,6 +239,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.25.7" + dependencies: + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/e9dc5a7920a1d74150dec53ccd5e34f2b31ae307df7cdeec6289866f7bda97ecb1328b49a7710ecde5db5b6daad768c904a030f9a0fa3184963b0017622c42aa + languageName: node + linkType: hard + "@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6": version: 7.22.15 resolution: "@babel/helper-compilation-targets@npm:7.22.15" @@ -197,6 +275,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-compilation-targets@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-compilation-targets@npm:7.25.7" + dependencies: + "@babel/compat-data": "npm:^7.25.7" + "@babel/helper-validator-option": "npm:^7.25.7" + browserslist: "npm:^4.24.0" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + checksum: 10c0/705be7e5274a3fdade68e3e2cf42e2b600316ab52794e13b91299a16f16c926f15886b6e9d6df20eb943ccc1cdba5a363d4766f8d01e47b8e6f4e01175f5e66c + languageName: node + linkType: hard + "@babel/helper-create-class-features-plugin@npm:^7.22.15, @babel/helper-create-class-features-plugin@npm:^7.23.5": version: 7.23.5 resolution: "@babel/helper-create-class-features-plugin@npm:7.23.5" @@ -216,6 +307,23 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-class-features-plugin@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-create-class-features-plugin@npm:7.25.7" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.7" + "@babel/helper-member-expression-to-functions": "npm:^7.25.7" + "@babel/helper-optimise-call-expression": "npm:^7.25.7" + "@babel/helper-replace-supers": "npm:^7.25.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/405c3c1a137acda1206380a96993cf2cfd808b3bee1c11c4af47ee0f03a20858497aa53394d6adc5431793c543be5e02010620e871a5ab39d938ae90a54b50f2 + languageName: node + linkType: hard + "@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.15, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": version: 7.22.15 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" @@ -229,6 +337,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-regexp-features-plugin@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.7" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.7" + regexpu-core: "npm:^6.1.1" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/75919fd5a67cd7be8497b56f7b9ed6b4843cb401956ba8d403aa9ae5b005bc28e35c7f27e704d820edbd1154394ed7a7984d4719916795d89d716f6980fe8bd4 + languageName: node + linkType: hard + "@babel/helper-define-polyfill-provider@npm:^0.4.3": version: 0.4.3 resolution: "@babel/helper-define-polyfill-provider@npm:0.4.3" @@ -244,6 +365,21 @@ __metadata: languageName: node linkType: hard +"@babel/helper-define-polyfill-provider@npm:^0.6.2": + version: 0.6.2 + resolution: "@babel/helper-define-polyfill-provider@npm:0.6.2" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.22.6" + "@babel/helper-plugin-utils": "npm:^7.22.5" + debug: "npm:^4.1.1" + lodash.debounce: "npm:^4.0.8" + resolve: "npm:^1.14.2" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 10c0/f777fe0ee1e467fdaaac059c39ed203bdc94ef2465fb873316e9e1acfc511a276263724b061e3b0af2f6d7ad3ff174f2bb368fde236a860e0f650fda43d7e022 + languageName: node + linkType: hard + "@babel/helper-environment-visitor@npm:^7.18.9": version: 7.18.9 resolution: "@babel/helper-environment-visitor@npm:7.18.9" @@ -305,6 +441,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-member-expression-to-functions@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-member-expression-to-functions@npm:7.25.7" + dependencies: + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/1e948162ab48d84593a7c6ec9570d14c906146f1697144fc369c59dbeb00e4a062da67dd06cb0d8f98a044cd8389002dcf2ab6f5613d99c35748307846ec63fc + languageName: node + linkType: hard + "@babel/helper-module-imports@npm:^7.0.0": version: 7.18.6 resolution: "@babel/helper-module-imports@npm:7.18.6" @@ -314,6 +460,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-module-imports@npm:7.24.7" + dependencies: + "@babel/traverse": "npm:^7.24.7" + "@babel/types": "npm:^7.24.7" + checksum: 10c0/97c57db6c3eeaea31564286e328a9fb52b0313c5cfcc7eee4bc226aebcf0418ea5b6fe78673c0e4a774512ec6c86e309d0f326e99d2b37bfc16a25a032498af0 + languageName: node + linkType: hard + "@babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.22.5": version: 7.22.15 resolution: "@babel/helper-module-imports@npm:7.22.15" @@ -323,13 +479,13 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-module-imports@npm:7.24.7" +"@babel/helper-module-imports@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-module-imports@npm:7.25.7" dependencies: - "@babel/traverse": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10c0/97c57db6c3eeaea31564286e328a9fb52b0313c5cfcc7eee4bc226aebcf0418ea5b6fe78673c0e4a774512ec6c86e309d0f326e99d2b37bfc16a25a032498af0 + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/0fd0c3673835e5bf75558e184bcadc47c1f6dd2fe2016d53ebe1e5a6ae931a44e093015c2f9a6651c1a89f25c76d9246710c2b0b460b95ee069c464f2837fa2c languageName: node linkType: hard @@ -362,6 +518,20 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-module-transforms@npm:7.25.7" + dependencies: + "@babel/helper-module-imports": "npm:^7.25.7" + "@babel/helper-simple-access": "npm:^7.25.7" + "@babel/helper-validator-identifier": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/f37fa7d1d4df21690535b278468cbd5faf0133a3080f282000cfa4f3ffc9462a1458f866b04b6a2f2d1eec4691236cba9a867da61270dab3ab19846e62f05090 + languageName: node + linkType: hard + "@babel/helper-optimise-call-expression@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-optimise-call-expression@npm:7.22.5" @@ -371,6 +541,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-optimise-call-expression@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-optimise-call-expression@npm:7.25.7" + dependencies: + "@babel/types": "npm:^7.25.7" + checksum: 10c0/19b4cc7e77811b1fedca4928dbc14026afef913c2ba4142e5e110ebdcb5c3b2efc0f0fbee9f362c23a194674147b9d627adea71c289b9be08b9067bc0085308b + languageName: node + linkType: hard + "@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": version: 7.16.7 resolution: "@babel/helper-plugin-utils@npm:7.16.7" @@ -385,6 +564,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-plugin-utils@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-plugin-utils@npm:7.25.7" + checksum: 10c0/241f8cf3c5b7700e91cab7cfe5b432a3c710ae3cd5bb96dc554da536a6d25f5b9f000cc0c0917501ceb4f76ba92599ee3beb25e10adaf96be59f8df89a842faf + languageName: node + linkType: hard + "@babel/helper-remap-async-to-generator@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" @@ -398,6 +584,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-remap-async-to-generator@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-remap-async-to-generator@npm:7.25.7" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.7" + "@babel/helper-wrap-function": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/972d84876adce6ab61c87a2df47e1afc790b73cff0d1767d0a1c5d9f7aa5e91d8c581a272b66b2051a26cfbb167d8a780564705e488e3ce1f477f1c15059bc5f + languageName: node + linkType: hard + "@babel/helper-replace-supers@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-replace-supers@npm:7.22.20" @@ -411,6 +610,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-replace-supers@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-replace-supers@npm:7.25.7" + dependencies: + "@babel/helper-member-expression-to-functions": "npm:^7.25.7" + "@babel/helper-optimise-call-expression": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/761d64ee74429f7326a6aa65e2cd5bfcb8de9e3bc3f1efb14b8f610d2410f003b0fca52778dc801d49ff8fbc90b057e8f51b27c62b0b05c95eaf23140ca1287b + languageName: node + linkType: hard + "@babel/helper-simple-access@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-simple-access@npm:7.22.5" @@ -430,6 +642,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-simple-access@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-simple-access@npm:7.25.7" + dependencies: + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/eed1b499bfb4f613c18debd61517e3de77b6da2727ca025aa05ac81599e0269f1dddb5237db04e8bb598115d015874752e0a7f11ff38672d74a4976097417059 + languageName: node + linkType: hard + "@babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.22.5" @@ -439,6 +661,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.7" + dependencies: + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/5804adb893849a9d8cfb548e3812566a81d95cb0c9a10d66b52912d13f488e577c33063bf19bc06ac70e6333162a7370d67ba1a1c3544d37fb50d5f4a00db4de + languageName: node + linkType: hard + "@babel/helper-split-export-declaration@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-split-export-declaration@npm:7.18.6" @@ -527,6 +759,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-option@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-validator-option@npm:7.25.7" + checksum: 10c0/12ed418c8e3ed9ed44c8c80d823f4e42d399b5eb2e423adccb975e31a31a008cd3b5d8eab688b31f740caff4a1bb28fe06ea2fa7d635aee34cc0ad6995d50f0a + languageName: node + linkType: hard + "@babel/helper-wrap-function@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-wrap-function@npm:7.22.20" @@ -538,6 +777,17 @@ __metadata: languageName: node linkType: hard +"@babel/helper-wrap-function@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-wrap-function@npm:7.25.7" + dependencies: + "@babel/template": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/b5d412f72697f4a4ce4cb9784fbaf82501c63cf95066c0eadd3179e3439cbbf0aa5fa4858d93590083671943cd357aeb87286958df34aa56fdf8a4c9dea39755 + languageName: node + linkType: hard + "@babel/helpers@npm:^7.23.5": version: 7.23.5 resolution: "@babel/helpers@npm:7.23.5" @@ -559,6 +809,16 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helpers@npm:7.25.7" + dependencies: + "@babel/template": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/3b3ae9e373bd785414195ef8f59976a69d5a6ebe0ef2165fdcc5165e5c3ee09e0fcee94bb457df2ddb8c0532e4146d0a9b7a96b3497399a4bff4ffe196b30228 + languageName: node + linkType: hard + "@babel/highlight@npm:^7.18.6": version: 7.18.6 resolution: "@babel/highlight@npm:7.18.6" @@ -593,6 +853,29 @@ __metadata: languageName: node linkType: hard +"@babel/highlight@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/highlight@npm:7.25.7" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.25.7" + chalk: "npm:^2.4.2" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.0.0" + checksum: 10c0/1f5894fdb0a0af6101fb2822369b2eeeae32cbeae2ef73ff73fc6a0a4a20471565cd9cfa589f54ed69df66adeca7c57266031ca9134b7bd244d023a488d419aa + languageName: node + linkType: hard + +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.6": + version: 7.25.6 + resolution: "@babel/parser@npm:7.25.6" + dependencies: + "@babel/types": "npm:^7.25.6" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/f88a0e895dbb096fd37c4527ea97d12b5fc013720602580a941ac3a339698872f0c911e318c292b184c36b5fbe23b612f05aff9d24071bc847c7b1c21552c41d + languageName: node + linkType: hard + "@babel/parser@npm:^7.18.10, @babel/parser@npm:^7.20.5": version: 7.20.5 resolution: "@babel/parser@npm:7.20.5" @@ -611,14 +894,37 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.6": - version: 7.25.6 - resolution: "@babel/parser@npm:7.25.6" +"@babel/parser@npm:^7.25.7, @babel/parser@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/parser@npm:7.25.8" dependencies: - "@babel/types": "npm:^7.25.6" + "@babel/types": "npm:^7.25.8" bin: parser: ./bin/babel-parser.js - checksum: 10c0/f88a0e895dbb096fd37c4527ea97d12b5fc013720602580a941ac3a339698872f0c911e318c292b184c36b5fbe23b612f05aff9d24071bc847c7b1c21552c41d + checksum: 10c0/a1a13845b7e8dda4c970791814a4bbf60004969882f18f470e260ad822d2e1f8941948f851e9335895563610f240fa6c98481ce8019865e469502bbf21daafa4 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/c6ba97c39973897a2ab021c4a77221e1e93e853a5811d498db325da1bd692e41fa521db6d91bb709ccafd4e54ddd00869ffb35846923c3ccd49d46124b316904 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/ac284868bf410f952c6959b0d77708464127160416f003b05c8127d30e64792d671abc167ebf778b17707e32174223ea8d3ff487276991fa90297d92f0dac6e2 languageName: node linkType: hard @@ -633,6 +939,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/1bffc0a20c8c82b4c77515eb4c99b961b38184116f008bb42bed4e12d3379ba7b2bc6cf299bcea8118d645bb7a5e0caa83969842f16dd1fce49fb3a050e4ac65 + languageName: node + linkType: hard + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.23.3" @@ -646,6 +963,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" + "@babel/plugin-transform-optional-chaining": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.13.0 + checksum: 10c0/32223f012614a0b2657579317ded7d0d09af2aa316285715c5012f974d0f15c2ce2fe0d8e80fdd9bac6c10c21c93cc925a9dfd6c8e21ce7ba1a9fe06a58088b4 + languageName: node + linkType: hard + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.23.3" @@ -658,6 +988,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/aa2ee7a5954d187de6cbcca0e0b64cfb79c4d224c332d1eb1e0e4afd92ef1a1f4bc4af24f66154097ccb348c08121a875456f47baed220b1b9e93584e6a19b65 + languageName: node + linkType: hard + "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2": version: 7.21.0-placeholder-for-preset-env.2 resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2" @@ -678,6 +1020,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-bigint@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-bigint@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/686891b81af2bc74c39013655da368a480f17dd237bf9fbc32048e5865cb706d5a8f65438030da535b332b1d6b22feba336da8fa931f663b6b34e13147d12dde + languageName: node + linkType: hard + "@babel/plugin-syntax-class-properties@npm:^7.12.13": version: 7.12.13 resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" @@ -733,6 +1086,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-import-assertions@npm:^7.24.1, @babel/plugin-syntax-import-assertions@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/0fee0d971f3c654749fdf92e09b6556bba26ab014c8e99b7252f6a7f1ca108f17edd7ceefb5401d7b7008e98ab1b6f8c3c6a5db72862e7c7b2fcd649d000d690 + languageName: node + linkType: hard + "@babel/plugin-syntax-import-attributes@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-syntax-import-attributes@npm:7.23.3" @@ -744,6 +1108,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-import-attributes@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/fe00cdb96fd289ab126830a98e1dcf5ab7b529a6ef1c01a72506b5e7b1197d6e46c3c4d029cd90d1d61eb9a15ef77c282d156d0c02c7e32f168bb09d84150db4 + languageName: node + linkType: hard + "@babel/plugin-syntax-import-meta@npm:^7.10.4": version: 7.10.4 resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" @@ -777,6 +1152,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-jsx@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-syntax-jsx@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/17db499c31fcfaa94d5408726d943955d51d478353d1e2dd84eda6024f7e3d104b9456a77f8aabfae0db7f4dc32f810d08357112f7fcbe305e7c9fcf5b3cac13 + languageName: node + linkType: hard + "@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": version: 7.10.4 resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" @@ -876,6 +1262,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-typescript@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-syntax-typescript@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/ed51fd81a5cf571a89fc4cf4c0e3b0b91285c367237374c133d2e5e718f3963cfa61b81997df39220a8837dc99f9e9a8ab7701d259c09fae379e4843d9db60c2 + languageName: node + linkType: hard + "@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" @@ -899,6 +1296,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-arrow-functions@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/c8d75ead93f130bf113b6d29493aca695092661ef039336d2a227169c3b7895aa5e9bcc548c42a95a6eaaaf49e512317b00699940bd40ccefd77443e703d3935 + languageName: node + linkType: hard + "@babel/plugin-transform-async-generator-functions@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.4" @@ -913,6 +1321,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-async-generator-functions@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.8" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-remap-async-to-generator": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/1698d0757d3dc895047120346cdbe6d539dae4a7bb930caf958c3623e89c850d378d1ebd971a1a8b4cba39c8f001cd9c25a1d6f430099022ab1e87aeddb5dd88 + languageName: node + linkType: hard + "@babel/plugin-transform-async-to-generator@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-async-to-generator@npm:7.23.3" @@ -926,6 +1347,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-async-to-generator@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.25.7" + dependencies: + "@babel/helper-module-imports": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-remap-async-to-generator": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/1dbefba9c1455f7a92b8c59a93c622091db945294c936fc2c09b1648308c5b4cb2ecaae92baae0d07a324ab890a8a2ee27ceb046bc120932845d27aede275821 + languageName: node + linkType: hard + "@babel/plugin-transform-block-scoped-functions@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.23.3" @@ -937,6 +1371,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-block-scoped-functions@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/b1e77492295d1b271ef850a81b0404cf3d0dd6a2bcbeab28a0fd99e61c6de4bda91dff583bb42138eec61bf71282bdd3b1bebcb53b7e373035e77fd6ba66caeb + languageName: node + linkType: hard + "@babel/plugin-transform-block-scoping@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-block-scoping@npm:7.23.4" @@ -948,6 +1393,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-block-scoping@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-block-scoping@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/b2057e00535cd0e8bd5ee5d4640aa2e952564aeafb1bcf4e7b6de33442422877bb0ca8669ad0a48262ec077271978c61eae87b6b3bc8f472d830fa781d6f7e44 + languageName: node + linkType: hard + "@babel/plugin-transform-class-properties@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-class-properties@npm:7.23.3" @@ -960,6 +1416,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-class-properties@npm:^7.24.1, @babel/plugin-transform-class-properties@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-class-properties@npm:7.25.7" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/1f41e6934b20ad3e05df63959cff9bc600ff3119153b9acbbd44c1731e7df04866397e6e17799173f4c53cdee6115e155632859aee20bf47ec7dcef3f2168a47 + languageName: node + linkType: hard + "@babel/plugin-transform-class-static-block@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-class-static-block@npm:7.23.4" @@ -973,6 +1441,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-class-static-block@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-class-static-block@npm:7.25.8" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.12.0 + checksum: 10c0/4f37853aef6920875022bbb2d7c6523218d9d718291464e2cacd9cc6f2c22d86a69948d8ea38f9248843bbfe9343f3fd18cf16b1615560124198bf999e3ba612 + languageName: node + linkType: hard + "@babel/plugin-transform-classes@npm:^7.23.5": version: 7.23.5 resolution: "@babel/plugin-transform-classes@npm:7.23.5" @@ -992,6 +1472,22 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-classes@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-classes@npm:7.25.7" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.7" + "@babel/helper-compilation-targets": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-replace-supers": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + globals: "npm:^11.1.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/8121781e1d8acd80e6169019106f73a399475ad9c895c1988a344dfed5a6ddd340938ac55123dc1e423bb8f25f255f5d11031116ad756ba3c314595a97c973af + languageName: node + linkType: hard + "@babel/plugin-transform-computed-properties@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-computed-properties@npm:7.23.3" @@ -1004,6 +1500,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-computed-properties@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-computed-properties@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/template": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/7ad0a1c126f50935a02e77d438ebc39078a9d644b3a60de60bec32c5d9f49e7f2b193fcecb8c61bb1bc3cdd4af1e93f72d022d448511fa76a171527c633cd1bf + languageName: node + linkType: hard + "@babel/plugin-transform-destructuring@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-destructuring@npm:7.23.3" @@ -1015,6 +1523,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-destructuring@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-destructuring@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/a563123b2fb267e03aa50104005f00b56226a685938906c42c1b251462e0cc9fc89e587d5656d3324159071eb8ebda8c68a6011f11d5a00fb1436cb5a5411b7b + languageName: node + linkType: hard + "@babel/plugin-transform-dotall-regex@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-dotall-regex@npm:7.23.3" @@ -1027,6 +1546,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-dotall-regex@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.25.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/7f1db3ec20b7fae46db4a9c4c257d75418b0896b72c0a3de20b3044f952801480f0a2e75ebb0d64f13e8cd4db0e49aa42c5c0edff372b23c41679b1ea5dd3ed4 + languageName: node + linkType: hard + "@babel/plugin-transform-duplicate-keys@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-duplicate-keys@npm:7.23.3" @@ -1038,6 +1569,29 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-duplicate-keys@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/b4079981e2db19737a0f1a00254e7388e2d3c01ce36e9fd826e4d86d3c1755339495e29c71fd7c84a068201ec24687328d48f3bf53b32b6d6224f51d9a34da74 + languageName: node + linkType: hard + +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/e4946090ff6d88d54b78265ee653079ec34c117ac046e22f66f7c4ac44249cdc2dfca385bc5bf4386db668b9948eeb12985589500188bc252e684c7714c31475 + languageName: node + linkType: hard + "@babel/plugin-transform-dynamic-import@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-dynamic-import@npm:7.23.4" @@ -1050,6 +1604,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-dynamic-import@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.25.8" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/9726abc1b07771a9c1e3670908ac425d21e29f54c775d10ed7a4e2bc0a18e07600f70bbc531deba3fb3ff7f6763c189200593264c6f784dac583e653b66fe754 + languageName: node + linkType: hard + "@babel/plugin-transform-exponentiation-operator@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.23.3" @@ -1062,6 +1627,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-exponentiation-operator@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.25.7" + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/c8537b9f3cddc5a8d3710f6980196dc7a0f4389f8f82617312a5f7b8b15bcd8ddaeba783c687c3ac6031eb0a4ba0bc380a98da6bf7efe98e225602a98ad42a1e + languageName: node + linkType: hard + "@babel/plugin-transform-export-namespace-from@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-export-namespace-from@npm:7.23.4" @@ -1074,6 +1651,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-export-namespace-from@npm:^7.24.1, @babel/plugin-transform-export-namespace-from@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.8" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/8a2e1205dd727a96a9adef0e981d68c61b1c286480b9136e2aa67ce3e2c742be4f87feb9fb4c5548a401aba0953d43d66e9ec36a54dea6a7c15f1ee9345baf57 + languageName: node + linkType: hard + "@babel/plugin-transform-for-of@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-for-of@npm:7.23.3" @@ -1085,6 +1673,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-for-of@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-for-of@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/08a37a1742368a422d095c998ed76f60f6bf3f9cc060033be121d803fd2dddc08fe543e48ee49c022bdc9ed80893ca79d084958d83d30684178b088774754277 + languageName: node + linkType: hard + "@babel/plugin-transform-function-name@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-function-name@npm:7.23.3" @@ -1098,6 +1698,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-function-name@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-function-name@npm:7.25.7" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/ca98e1116c0ada7211ed43e4b7f21ca15f95bbbdad70f2fbe1ec2d90a97daedf9f22fcb0a25c8b164a5e394f509f2e4d1f7609d26dc938a58d37c5ee9b80088a + languageName: node + linkType: hard + "@babel/plugin-transform-json-strings@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-json-strings@npm:7.23.4" @@ -1110,6 +1723,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-json-strings@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-json-strings@npm:7.25.8" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/2a6cf69ebe8deebc39c56adae75d609e16786dc4cbd83577eefdc838bd89ca8974671d47e2669b8e65ef9b7ace427f7c2c5a9fc6aa09247b10e141d15fee81cf + languageName: node + linkType: hard + "@babel/plugin-transform-literals@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-literals@npm:7.23.3" @@ -1121,6 +1745,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-literals@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-literals@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/c2c2488102f33e566f45becdcb632e53bd052ecfb2879deb07a614b3e9437e3b624c3b16d080096d50b0b622edebd03e438acbf9260bcc41167897963f64560e + languageName: node + linkType: hard + "@babel/plugin-transform-logical-assignment-operators@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.23.4" @@ -1133,6 +1768,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-logical-assignment-operators@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.8" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/9adc2634c94b283b682fbf71bbec553bd8448196213491a0ef9ea167993c9c36dcb2fbefbd834e113cfed843a67290131bc99e463f8702043c3f4e3a99bb807e + languageName: node + linkType: hard + "@babel/plugin-transform-member-expression-literals@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-member-expression-literals@npm:7.23.3" @@ -1144,6 +1790,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-member-expression-literals@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/d6936b98ae4d3daed850dc4e064042ea4375f815219ba9d8591373bf1fba4cfdb5be42623ae8882f2d666cc34af650a4855e2a5ad89e3c235d73a6f172f9969c + languageName: node + linkType: hard + "@babel/plugin-transform-modules-amd@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-modules-amd@npm:7.23.3" @@ -1156,6 +1813,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-amd@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-modules-amd@npm:7.25.7" + dependencies: + "@babel/helper-module-transforms": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/c0bc999206c3834c090e6559a6c8a55d7672d3573104e832223ebe7df99bd1b82fc850e15ba32f512c84b0db1cdb613b66fa60abe9abb9c7e8dcbff91649b356 + languageName: node + linkType: hard + "@babel/plugin-transform-modules-commonjs@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-modules-commonjs@npm:7.23.3" @@ -1169,6 +1838,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-commonjs@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.25.7" + dependencies: + "@babel/helper-module-transforms": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-simple-access": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/2f1c945fc3c9b690b0ddcf2c80156b2e4fbf2cf15aac43ac8fe6e4b34125869528839a53d07c564e62e4aed394ebdc1d2c3b796b547374455522581c11b7599c + languageName: node + linkType: hard + "@babel/plugin-transform-modules-systemjs@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.3" @@ -1183,6 +1865,20 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-systemjs@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.7" + dependencies: + "@babel/helper-module-transforms": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-validator-identifier": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/95eaea7082636710c61e49e58b3907e85ec79db4327411d3784f28592509fbe94a53cc3d20a36a1cf245efc6d3f0017eae15b45ffd645c1ab949bb4e1670e6bb + languageName: node + linkType: hard + "@babel/plugin-transform-modules-umd@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-modules-umd@npm:7.23.3" @@ -1195,6 +1891,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-umd@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-modules-umd@npm:7.25.7" + dependencies: + "@babel/helper-module-transforms": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/8849ab04eecdb73cd37e2d7289449fa5256331832b0304c220b2a6aaa12e2d2dd87684f2813412d1fc5bdb3d6b55cc08c6386d3273fe05a65177c09bee5b6769 + languageName: node + linkType: hard + "@babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.5": version: 7.22.5 resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.22.5" @@ -1207,6 +1915,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.25.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/eb55fec55dc930cd122911f3e4a421320fa8b1b4de85bfd7ef11b46c611ec69b0213c114a6e1c6bc224d6b954ff183a0caa7251267d5258ecc0f00d6d9ca1d52 + languageName: node + linkType: hard + "@babel/plugin-transform-new-target@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-new-target@npm:7.23.3" @@ -1218,6 +1938,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-new-target@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-new-target@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/8e5dce6d027e0f3fd394578ea1af7f515de157793a15c23a5aad7034a6d8a4005ef280238e67a232bb4dd4fafd3a264fed462deb149128ddd9ce59ff6f575cff + languageName: node + linkType: hard + "@babel/plugin-transform-nullish-coalescing-operator@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.23.4" @@ -1230,6 +1961,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.8" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/3cb7c44cffccae42e104755acb31b4f00bc27d8c88102ae6f30dca508832f98fa5b746bead0fc7c0c6ddcf83f336829be4b64245c6c7ce26b3ef591937ec54a4 + languageName: node + linkType: hard + "@babel/plugin-transform-numeric-separator@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-numeric-separator@npm:7.23.4" @@ -1242,6 +1984,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-numeric-separator@npm:^7.24.1, @babel/plugin-transform-numeric-separator@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.8" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/d23b3ebc50513f24510791ac2cad43e3c6ea08579f54dccfd4ed5e5d5084f02da0576ea42ea999fb51e1f94f42857cac96a1a29ac6728fc262fbe87ec966dc18 + languageName: node + linkType: hard + "@babel/plugin-transform-object-rest-spread@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-object-rest-spread@npm:7.23.4" @@ -1257,6 +2010,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-object-rest-spread@npm:^7.24.1, @babel/plugin-transform-object-rest-spread@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.8" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/plugin-transform-parameters": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/058d5f5bb61068997fb78855011dd175d441da84717640852bbfd12a5919acf8d8c5a14c1debfe87d230f3f4c47c22fcad3d7fa1acd72e5e48b2fff93b6c1dd9 + languageName: node + linkType: hard + "@babel/plugin-transform-object-super@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-object-super@npm:7.23.3" @@ -1269,6 +2035,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-object-super@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-object-super@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-replace-supers": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/7f2968d4da997101b63fd3b74445c9b16f56bd32cd8a0a16c368af9d3e983e7675c1b05d18601f32307cb06e7d884ee11d13ff18a1f6830c0db243a9a852afab + languageName: node + linkType: hard + "@babel/plugin-transform-optional-catch-binding@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.23.4" @@ -1281,6 +2059,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-optional-catch-binding@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.8" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/f4360e62ca4aa998db31548d0ef06836d958bcb29dee58f5c62d0c29b6b2bff1b54871195bd032825fe3dd79a4fd8275e165148c8d4b57694bcf72135c8f7d24 + languageName: node + linkType: hard + "@babel/plugin-transform-optional-chaining@npm:^7.23.3, @babel/plugin-transform-optional-chaining@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-optional-chaining@npm:7.23.4" @@ -1294,6 +2083,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-optional-chaining@npm:^7.25.7, @babel/plugin-transform-optional-chaining@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.8" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/a1cdbfc249619fa6b37e57f81600701281629d86a57e616b0c2b29816d0c43114a2296ce089564afd3aa7870c8aad62e907658ffef2c110662af14ee23d5247f + languageName: node + linkType: hard + "@babel/plugin-transform-parameters@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-parameters@npm:7.23.3" @@ -1305,6 +2106,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-parameters@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-parameters@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/b40ba70278842ce1e800d7ab400df730994941550da547ef453780023bd61a9b8acf4b9fb8419c1b5bcbe09819a1146ff59369db11db07eb71870bef86a12422 + languageName: node + linkType: hard + "@babel/plugin-transform-private-methods@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-private-methods@npm:7.23.3" @@ -1317,6 +2129,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-private-methods@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-private-methods@npm:7.25.7" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/92e076f63f7c4696e1321dafdd56c4212eb41784cdadba0ebc39091f959a76d357c3df61a6c668be81d6b6ad8964ee458e85752ab0c6cfbbaf2066903edda732 + languageName: node + linkType: hard + "@babel/plugin-transform-private-property-in-object@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-private-property-in-object@npm:7.23.4" @@ -1331,6 +2155,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-private-property-in-object@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.8" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.7" + "@babel/helper-create-class-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/61b5e3a4eb94caf38d6e9ff7bff1ac8927758141aaa4891036d3490866ecee53beaefd7893519fec42a4c55f33374a17fc0e49694cdaf95668082073f0fe4a79 + languageName: node + linkType: hard + "@babel/plugin-transform-property-literals@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-property-literals@npm:7.23.3" @@ -1342,6 +2179,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-property-literals@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-property-literals@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/6d5bccdc772207906666ad5201bd91e4e132e1d806dbcf4163a1d08e18c57cc3795578c4e10596514bcd6afaf9696f478ea4f0dea890176d93b9cb077b9e5c55 + languageName: node + linkType: hard + "@babel/plugin-transform-react-constant-elements@npm:^7.21.3": version: 7.23.3 resolution: "@babel/plugin-transform-react-constant-elements@npm:7.23.3" @@ -1364,6 +2212,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-display-name@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-react-display-name@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/a0c537cc7c328ed7468d3b6a37bf0d9cb15d94afcdf3f2849ce6e5a68494fc61f0fa4fc529482a6b95b00f3c5c734f310bf18085293bff40702789f06c816f36 + languageName: node + linkType: hard + "@babel/plugin-transform-react-jsx-development@npm:^7.22.5": version: 7.22.5 resolution: "@babel/plugin-transform-react-jsx-development@npm:7.22.5" @@ -1375,6 +2234,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-jsx-development@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-react-jsx-development@npm:7.25.7" + dependencies: + "@babel/plugin-transform-react-jsx": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/a3dc14644d09a6d22875af7b5584393ab53e467e0531cd192fc6242504dacaffa421e89265ba7f84fd4edef2b7b100d2e2ebf092a4dce2b55cf9c5fe29390c18 + languageName: node + linkType: hard + "@babel/plugin-transform-react-jsx@npm:^7.22.15, @babel/plugin-transform-react-jsx@npm:^7.22.5": version: 7.23.4 resolution: "@babel/plugin-transform-react-jsx@npm:7.23.4" @@ -1390,6 +2260,21 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-jsx@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-react-jsx@npm:7.25.7" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.7" + "@babel/helper-module-imports": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/plugin-syntax-jsx": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/6766b0357b8bbfcb77fca5350f06cf822c89bbe75ddcaea24614601ef23957504da24e76597d743038ce8fa081373b0663c8ad0c86d7c7226e8185f0680b8b56 + languageName: node + linkType: hard + "@babel/plugin-transform-react-pure-annotations@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.23.3" @@ -1402,6 +2287,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-pure-annotations@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.25.7" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/d92c9b511850fb6dea71966a0d4f313d67e317db7fc3633a7ff2e27d6df2e95cbc91c4c25abdb6c8db651fcda842a0cb7433835a8a9d4a3fdc5d452068428101 + languageName: node + linkType: hard + "@babel/plugin-transform-regenerator@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-regenerator@npm:7.23.3" @@ -1414,14 +2311,53 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-regenerator@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-regenerator@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + regenerator-transform: "npm:^0.15.2" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/7ee3a57c4050bc908ef7ac392d810826b294970a7182f4ec34a8ca93dbe36deb21bc862616d46a6f3d881d6b5749930e1679e875b638a00866d844a4250df212 + languageName: node + linkType: hard + "@babel/plugin-transform-reserved-words@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-reserved-words@npm:7.23.3" dependencies: - "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/4e6d61f6c9757592661cfbd2c39c4f61551557b98cb5f0995ef10f5540f67e18dde8a42b09716d58943b6e4b7ef5c9bcf19902839e7328a4d49149e0fecdbfcd + languageName: node + linkType: hard + +"@babel/plugin-transform-reserved-words@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-reserved-words@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/920c98130daff6c1288fb13a9a2d2e45863bba93e619cb88d90e1f5b5cb358a3ee8880a425a3adb1b4bd5dbb6bd0500eea3370fc612633045eec851b08cc586c + languageName: node + linkType: hard + +"@babel/plugin-transform-runtime@npm:^7.24.3": + version: 7.25.7 + resolution: "@babel/plugin-transform-runtime@npm:7.25.7" + dependencies: + "@babel/helper-module-imports": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + babel-plugin-polyfill-corejs2: "npm:^0.4.10" + babel-plugin-polyfill-corejs3: "npm:^0.10.6" + babel-plugin-polyfill-regenerator: "npm:^0.6.1" + semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/4e6d61f6c9757592661cfbd2c39c4f61551557b98cb5f0995ef10f5540f67e18dde8a42b09716d58943b6e4b7ef5c9bcf19902839e7328a4d49149e0fecdbfcd + checksum: 10c0/9b2514e9079361ac8e7e500ffd522dad869d61a3894302da7e29bbac80de00276c8a1b4394d1dcf0b51c57b2c854919928df9648be336139fdf1d6ecd6d1bb32 languageName: node linkType: hard @@ -1436,6 +2372,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-shorthand-properties@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/4250f89a0072f0f400be7a2e3515227b8e2518737899bd57d497e5173284a0e05d812e4a3c219ffcd484e9fa9a01c19fce5acd77bbb898f4d594512c56701eb4 + languageName: node + linkType: hard + "@babel/plugin-transform-spread@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-spread@npm:7.23.3" @@ -1448,6 +2395,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-spread@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-spread@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/258bd1b52388cd7425d0ae25fa39538734f7540ea503a1d8a72211d33f6f214cb4e3b73d6cd03016cbcff5d41169f1e578b9ea331965ad224d223591983e90a7 + languageName: node + linkType: hard + "@babel/plugin-transform-sticky-regex@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-sticky-regex@npm:7.23.3" @@ -1459,6 +2418,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-sticky-regex@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/0e466cfc3ca1e0db4bb11eb630215b0e1f43066d7678325e5ddadcf5a118b2351a528f67205729c32ac5b78ab68ab7f40517dd33bcb1fb6b456509f5f54ce097 + languageName: node + linkType: hard + "@babel/plugin-transform-template-literals@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-template-literals@npm:7.23.3" @@ -1470,6 +2440,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-template-literals@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-template-literals@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/a3455303b6841cb536ac66d1a2d03c194b9f371519482d8d1e8edbd33bf5ca7cdd5db1586b2b0ea5f909ebf74a0eafacf0fb28d257e4905445282dcdccfa6139 + languageName: node + linkType: hard + "@babel/plugin-transform-typeof-symbol@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-typeof-symbol@npm:7.23.3" @@ -1481,6 +2462,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-typeof-symbol@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/ce1a0744a900b05de1372a70508c4148f17eb941c482da26eb369b9f0347570dce45470c8a86d907bc3a0443190344da1e18489ecfecb30388ab6178e8a9916b + languageName: node + linkType: hard + "@babel/plugin-transform-typescript@npm:^7.23.3": version: 7.23.5 resolution: "@babel/plugin-transform-typescript@npm:7.23.5" @@ -1495,6 +2487,21 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-typescript@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-typescript@npm:7.25.7" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.7" + "@babel/helper-create-class-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" + "@babel/plugin-syntax-typescript": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/5fa839b9560221698edff5e00b5cccc658c7875efaa7971c66d478f5b026770f12dd47b1be024463a44f9e29b4e14e8ddddbf4a2b324b0b94f58370dd5ae7195 + languageName: node + linkType: hard + "@babel/plugin-transform-unicode-escapes@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-unicode-escapes@npm:7.23.3" @@ -1506,6 +2513,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-unicode-escapes@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/8b1f71fda0a832c6e26ba4c00f99e9033e6f9b36ced542a512921f4ad861a70e2fec2bd54a91a5ca2efa46aaa8c8893e4c602635c4ef172bd3ed6eef3178c70b + languageName: node + linkType: hard + "@babel/plugin-transform-unicode-property-regex@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.23.3" @@ -1518,6 +2536,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-unicode-property-regex@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.25.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/b4bfcf7529138d00671bf5cdfe606603d52cfe57ec1be837da57683f404fc0b0c171834a02515eb03379e5c806121866d097b90e31cb437d21d0ea59368ad82b + languageName: node + linkType: hard + "@babel/plugin-transform-unicode-regex@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-unicode-regex@npm:7.23.3" @@ -1530,6 +2560,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-unicode-regex@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.25.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/73ae34c02ea8b7ac7e4efa690f8c226089c074e3fef658d2a630ad898a93550d84146ce05e073c271c8b2bbba61cbbfd5a2002a7ea940dcad3274e5b5dcb6bcf + languageName: node + linkType: hard + "@babel/plugin-transform-unicode-sets-regex@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.23.3" @@ -1542,6 +2584,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-unicode-sets-regex@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.25.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/39e45ae3db7adfc3457b1d6ba5608ffbace957ad019785967e5357a6639f261765bda12363f655d39265f5a2834af26327037751420191d0b73152ccc7ce3c35 + languageName: node + linkType: hard + "@babel/preset-env@npm:^7.20.2": version: 7.23.5 resolution: "@babel/preset-env@npm:7.23.5" @@ -1632,6 +2686,84 @@ __metadata: languageName: node linkType: hard +"@babel/preset-env@npm:^7.24.4": + version: 7.25.8 + resolution: "@babel/preset-env@npm:7.25.8" + dependencies: + "@babel/compat-data": "npm:^7.25.8" + "@babel/helper-compilation-targets": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-validator-option": "npm:^7.25.7" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.25.7" + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.25.7" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.25.7" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.25.7" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.7" + "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-import-assertions": "npm:^7.25.7" + "@babel/plugin-syntax-import-attributes": "npm:^7.25.7" + "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" + "@babel/plugin-transform-arrow-functions": "npm:^7.25.7" + "@babel/plugin-transform-async-generator-functions": "npm:^7.25.8" + "@babel/plugin-transform-async-to-generator": "npm:^7.25.7" + "@babel/plugin-transform-block-scoped-functions": "npm:^7.25.7" + "@babel/plugin-transform-block-scoping": "npm:^7.25.7" + "@babel/plugin-transform-class-properties": "npm:^7.25.7" + "@babel/plugin-transform-class-static-block": "npm:^7.25.8" + "@babel/plugin-transform-classes": "npm:^7.25.7" + "@babel/plugin-transform-computed-properties": "npm:^7.25.7" + "@babel/plugin-transform-destructuring": "npm:^7.25.7" + "@babel/plugin-transform-dotall-regex": "npm:^7.25.7" + "@babel/plugin-transform-duplicate-keys": "npm:^7.25.7" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.7" + "@babel/plugin-transform-dynamic-import": "npm:^7.25.8" + "@babel/plugin-transform-exponentiation-operator": "npm:^7.25.7" + "@babel/plugin-transform-export-namespace-from": "npm:^7.25.8" + "@babel/plugin-transform-for-of": "npm:^7.25.7" + "@babel/plugin-transform-function-name": "npm:^7.25.7" + "@babel/plugin-transform-json-strings": "npm:^7.25.8" + "@babel/plugin-transform-literals": "npm:^7.25.7" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.25.8" + "@babel/plugin-transform-member-expression-literals": "npm:^7.25.7" + "@babel/plugin-transform-modules-amd": "npm:^7.25.7" + "@babel/plugin-transform-modules-commonjs": "npm:^7.25.7" + "@babel/plugin-transform-modules-systemjs": "npm:^7.25.7" + "@babel/plugin-transform-modules-umd": "npm:^7.25.7" + "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.25.7" + "@babel/plugin-transform-new-target": "npm:^7.25.7" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.25.8" + "@babel/plugin-transform-numeric-separator": "npm:^7.25.8" + "@babel/plugin-transform-object-rest-spread": "npm:^7.25.8" + "@babel/plugin-transform-object-super": "npm:^7.25.7" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.25.8" + "@babel/plugin-transform-optional-chaining": "npm:^7.25.8" + "@babel/plugin-transform-parameters": "npm:^7.25.7" + "@babel/plugin-transform-private-methods": "npm:^7.25.7" + "@babel/plugin-transform-private-property-in-object": "npm:^7.25.8" + "@babel/plugin-transform-property-literals": "npm:^7.25.7" + "@babel/plugin-transform-regenerator": "npm:^7.25.7" + "@babel/plugin-transform-reserved-words": "npm:^7.25.7" + "@babel/plugin-transform-shorthand-properties": "npm:^7.25.7" + "@babel/plugin-transform-spread": "npm:^7.25.7" + "@babel/plugin-transform-sticky-regex": "npm:^7.25.7" + "@babel/plugin-transform-template-literals": "npm:^7.25.7" + "@babel/plugin-transform-typeof-symbol": "npm:^7.25.7" + "@babel/plugin-transform-unicode-escapes": "npm:^7.25.7" + "@babel/plugin-transform-unicode-property-regex": "npm:^7.25.7" + "@babel/plugin-transform-unicode-regex": "npm:^7.25.7" + "@babel/plugin-transform-unicode-sets-regex": "npm:^7.25.7" + "@babel/preset-modules": "npm:0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2: "npm:^0.4.10" + babel-plugin-polyfill-corejs3: "npm:^0.10.6" + babel-plugin-polyfill-regenerator: "npm:^0.6.1" + core-js-compat: "npm:^3.38.1" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/a45cd64ca082262998f6cf508b413ff8a9e967bf33e58337a1fe41c6c939a4c25cc73cd58387792c00d43905cf5fb0ea5ef88dfdc2addf2e8133743088c86c72 + languageName: node + linkType: hard + "@babel/preset-modules@npm:0.1.6-no-external-plugins": version: 0.1.6-no-external-plugins resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins" @@ -1661,6 +2793,22 @@ __metadata: languageName: node linkType: hard +"@babel/preset-react@npm:^7.24.1": + version: 7.25.7 + resolution: "@babel/preset-react@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-validator-option": "npm:^7.25.7" + "@babel/plugin-transform-react-display-name": "npm:^7.25.7" + "@babel/plugin-transform-react-jsx": "npm:^7.25.7" + "@babel/plugin-transform-react-jsx-development": "npm:^7.25.7" + "@babel/plugin-transform-react-pure-annotations": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/b133b1a2f46c70a337d8b1ef442e09e3dbdaecb0d6bed8f1cb64dfddc31c16e248b017385ab909caeebd8462111c9c0e1c5409deb10f2be5cb5bcfdaa4d27718 + languageName: node + linkType: hard + "@babel/preset-typescript@npm:^7.21.0": version: 7.23.3 resolution: "@babel/preset-typescript@npm:7.23.3" @@ -1676,6 +2824,21 @@ __metadata: languageName: node linkType: hard +"@babel/preset-typescript@npm:^7.24.1": + version: 7.25.7 + resolution: "@babel/preset-typescript@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-validator-option": "npm:^7.25.7" + "@babel/plugin-syntax-jsx": "npm:^7.25.7" + "@babel/plugin-transform-modules-commonjs": "npm:^7.25.7" + "@babel/plugin-transform-typescript": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/8dc1258e3c5230bbe42ff9811f08924509238e6bd32fa0b7b0c0a6c5e1419512a8e1f733e1b114454d367b7c164beca2cf33acf2ed9e0d99be010c1c5cdbef0c + languageName: node + linkType: hard + "@babel/regjsgen@npm:^0.8.0": version: 0.8.0 resolution: "@babel/regjsgen@npm:0.8.0" @@ -1701,7 +2864,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.19.4, @babel/runtime@npm:^7.25.6": +"@babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.19.4, @babel/runtime@npm:^7.25.6, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.7": version: 7.25.6 resolution: "@babel/runtime@npm:7.25.6" dependencies: @@ -1710,6 +2873,15 @@ __metadata: languageName: node linkType: hard +"@babel/runtime@npm:^7.24.4, @babel/runtime@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/runtime@npm:7.25.7" + dependencies: + regenerator-runtime: "npm:^0.14.0" + checksum: 10c0/86b7829d2fc9343714a9afe92757cf96c4dc799006ca61d73cda62f4b9e29bfa1ce36794955bc6cb4c188f5b10db832c949339895e1bbe81a69022d9d578ce29 + languageName: node + linkType: hard + "@babel/template@npm:^7.18.10": version: 7.18.10 resolution: "@babel/template@npm:7.18.10" @@ -1743,6 +2915,32 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/template@npm:7.25.7" + dependencies: + "@babel/code-frame": "npm:^7.25.7" + "@babel/parser": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/8ae9e36e4330ee83d4832531d1d9bec7dc2ef6a2a8afa1ef1229506fd60667abcb17f306d1c3d7e582251270597022990c845d5d69e7add70a5aea66720decb9 + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.25.2": + version: 7.25.6 + resolution: "@babel/traverse@npm:7.25.6" + dependencies: + "@babel/code-frame": "npm:^7.24.7" + "@babel/generator": "npm:^7.25.6" + "@babel/parser": "npm:^7.25.6" + "@babel/template": "npm:^7.25.0" + "@babel/types": "npm:^7.25.6" + debug: "npm:^4.3.1" + globals: "npm:^11.1.0" + checksum: 10c0/964304c6fa46bd705428ba380bf73177eeb481c3f26d82ea3d0661242b59e0dd4329d23886035e9ca9a4ceb565c03a76fd615109830687a27bcd350059d6377e + languageName: node + linkType: hard + "@babel/traverse@npm:^7.23.5": version: 7.23.5 resolution: "@babel/traverse@npm:7.23.5" @@ -1761,18 +2959,18 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.25.2": - version: 7.25.6 - resolution: "@babel/traverse@npm:7.25.6" +"@babel/traverse@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/traverse@npm:7.25.7" dependencies: - "@babel/code-frame": "npm:^7.24.7" - "@babel/generator": "npm:^7.25.6" - "@babel/parser": "npm:^7.25.6" - "@babel/template": "npm:^7.25.0" - "@babel/types": "npm:^7.25.6" + "@babel/code-frame": "npm:^7.25.7" + "@babel/generator": "npm:^7.25.7" + "@babel/parser": "npm:^7.25.7" + "@babel/template": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 10c0/964304c6fa46bd705428ba380bf73177eeb481c3f26d82ea3d0661242b59e0dd4329d23886035e9ca9a4ceb565c03a76fd615109830687a27bcd350059d6377e + checksum: 10c0/75d73e52c507a7a7a4c7971d6bf4f8f26fdd094e0d3a0193d77edf6a5efa36fc3db91ec5cc48e8b94e6eb5d5ad21af0a1040e71309172851209415fd105efb1a languageName: node linkType: hard @@ -1794,6 +2992,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.9, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.6": + version: 7.25.6 + resolution: "@babel/types@npm:7.25.6" + dependencies: + "@babel/helper-string-parser": "npm:^7.24.8" + "@babel/helper-validator-identifier": "npm:^7.24.7" + to-fast-properties: "npm:^2.0.0" + checksum: 10c0/89d45fbee24e27a05dca2d08300a26b905bd384a480448823f6723c72d3a30327c517476389b7280ce8cb9a2c48ef8f47da7f9f6d326faf6f53fd6b68237bdc4 + languageName: node + linkType: hard + "@babel/types@npm:^7.18.10, @babel/types@npm:^7.18.6, @babel/types@npm:^7.19.0, @babel/types@npm:^7.20.5, @babel/types@npm:^7.4.4": version: 7.20.5 resolution: "@babel/types@npm:7.20.5" @@ -1816,14 +3025,14 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.24.7, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.6": - version: 7.25.6 - resolution: "@babel/types@npm:7.25.6" +"@babel/types@npm:^7.25.7, @babel/types@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/types@npm:7.25.8" dependencies: - "@babel/helper-string-parser": "npm:^7.24.8" - "@babel/helper-validator-identifier": "npm:^7.24.7" + "@babel/helper-string-parser": "npm:^7.25.7" + "@babel/helper-validator-identifier": "npm:^7.25.7" to-fast-properties: "npm:^2.0.0" - checksum: 10c0/89d45fbee24e27a05dca2d08300a26b905bd384a480448823f6723c72d3a30327c517476389b7280ce8cb9a2c48ef8f47da7f9f6d326faf6f53fd6b68237bdc4 + checksum: 10c0/55ca2d6df6426c98db2769ce884ce5e9de83a512ea2dd7bcf56c811984dc14351cacf42932a723630c5afcff2455809323decd645820762182f10b7b5252b59f languageName: node linkType: hard @@ -1838,6 +3047,13 @@ __metadata: languageName: node linkType: hard +"@base2/pretty-print-object@npm:1.0.1": + version: 1.0.1 + resolution: "@base2/pretty-print-object@npm:1.0.1" + checksum: 10c0/98f77ea185a30c854897feb2a68fe51be8451a1a0b531bac61a5dd67033926a0ba0c9be6e0f819b8cb72ca349b3e7648bf81c12fd21df0b45219c75a3a75784b + languageName: node + linkType: hard + "@bitget-wallet/web3-sdk@npm:^0.0.8": version: 0.0.8 resolution: "@bitget-wallet/web3-sdk@npm:0.0.8" @@ -1878,6 +3094,19 @@ __metadata: languageName: node linkType: hard +"@chromatic-com/storybook@npm:^2.0.2": + version: 2.0.2 + resolution: "@chromatic-com/storybook@npm:2.0.2" + dependencies: + chromatic: "npm:^11.4.0" + filesize: "npm:^10.0.12" + jsonfile: "npm:^6.1.0" + react-confetti: "npm:^6.1.0" + strip-ansi: "npm:^7.1.0" + checksum: 10c0/a997e8247168d9c30030966877836839951b6acd65899a4bb683d78d37e549a3285ca14a721893d75bef5b89e075d7090d084023c142680efaef60c9db64e7fa + languageName: node + linkType: hard + "@coinbase/wallet-sdk@npm:4.0.3": version: 4.0.3 resolution: "@coinbase/wallet-sdk@npm:4.0.3" @@ -2178,7 +3407,55 @@ __metadata: languageName: node linkType: hard -"@emotion/is-prop-valid@npm:^1.1.0": +"@emnapi/runtime@npm:^1.2.0": + version: 1.3.1 + resolution: "@emnapi/runtime@npm:1.3.1" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10c0/060ffede50f1b619c15083312b80a9e62a5b0c87aa8c1b54854c49766c9d69f8d1d3d87bd963a647071263a320db41b25eaa50b74d6a80dcc763c23dbeaafd6c + languageName: node + linkType: hard + +"@emotion/babel-plugin@npm:^11.12.0": + version: 11.12.0 + resolution: "@emotion/babel-plugin@npm:11.12.0" + dependencies: + "@babel/helper-module-imports": "npm:^7.16.7" + "@babel/runtime": "npm:^7.18.3" + "@emotion/hash": "npm:^0.9.2" + "@emotion/memoize": "npm:^0.9.0" + "@emotion/serialize": "npm:^1.2.0" + babel-plugin-macros: "npm:^3.1.0" + convert-source-map: "npm:^1.5.0" + escape-string-regexp: "npm:^4.0.0" + find-root: "npm:^1.1.0" + source-map: "npm:^0.5.7" + stylis: "npm:4.2.0" + checksum: 10c0/930ff6f8768b0c24d05896ad696be20e1c65f32ed61fb5c1488f571120a947ef0a2cf69187b17114cc76e7886f771fac150876ed7b5341324fec2377185d6573 + languageName: node + linkType: hard + +"@emotion/cache@npm:^11.13.0, @emotion/cache@npm:^11.13.1": + version: 11.13.1 + resolution: "@emotion/cache@npm:11.13.1" + dependencies: + "@emotion/memoize": "npm:^0.9.0" + "@emotion/sheet": "npm:^1.4.0" + "@emotion/utils": "npm:^1.4.0" + "@emotion/weak-memoize": "npm:^0.4.0" + stylis: "npm:4.2.0" + checksum: 10c0/321e97d8980885737de13b47e41fd4febfbd83086f10c620f865fcbddb29b8fe198adec7e1c69cc7b137638ea9242d7c475c57f954f7ca229157fa92e368f473 + languageName: node + linkType: hard + +"@emotion/hash@npm:^0.9.2": + version: 0.9.2 + resolution: "@emotion/hash@npm:0.9.2" + checksum: 10c0/0dc254561a3cc0a06a10bbce7f6a997883fd240c8c1928b93713f803a2e9153a257a488537012efe89dbe1246f2abfe2add62cdb3471a13d67137fcb808e81c2 + languageName: node + linkType: hard + +"@emotion/is-prop-valid@npm:^1.1.0, @emotion/is-prop-valid@npm:^1.3.0": version: 1.3.0 resolution: "@emotion/is-prop-valid@npm:1.3.0" dependencies: @@ -2194,6 +3471,80 @@ __metadata: languageName: node linkType: hard +"@emotion/react@npm:^11.13.3": + version: 11.13.3 + resolution: "@emotion/react@npm:11.13.3" + dependencies: + "@babel/runtime": "npm:^7.18.3" + "@emotion/babel-plugin": "npm:^11.12.0" + "@emotion/cache": "npm:^11.13.0" + "@emotion/serialize": "npm:^1.3.1" + "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.1.0" + "@emotion/utils": "npm:^1.4.0" + "@emotion/weak-memoize": "npm:^0.4.0" + hoist-non-react-statics: "npm:^3.3.1" + peerDependencies: + react: ">=16.8.0" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/a55e770b9ea35de5d35db05a7ad40a4a3f442809fa8e4fabaf56da63ac9444f09aaf691c4e75a1455dc388991ab0c0ab4e253ce67c5836f27513e45ebd01b673 + languageName: node + linkType: hard + +"@emotion/serialize@npm:^1.2.0, @emotion/serialize@npm:^1.3.0, @emotion/serialize@npm:^1.3.1": + version: 1.3.1 + resolution: "@emotion/serialize@npm:1.3.1" + dependencies: + "@emotion/hash": "npm:^0.9.2" + "@emotion/memoize": "npm:^0.9.0" + "@emotion/unitless": "npm:^0.10.0" + "@emotion/utils": "npm:^1.4.0" + csstype: "npm:^3.0.2" + checksum: 10c0/ac7158e2881b5f3f9ca1e4d865186d38623f997de888675297e0928b202d16273e43b0a19aa021c0b706edefae31118bc97c5fab095820109d09d502dbcf2092 + languageName: node + linkType: hard + +"@emotion/serialize@npm:^1.3.2": + version: 1.3.2 + resolution: "@emotion/serialize@npm:1.3.2" + dependencies: + "@emotion/hash": "npm:^0.9.2" + "@emotion/memoize": "npm:^0.9.0" + "@emotion/unitless": "npm:^0.10.0" + "@emotion/utils": "npm:^1.4.1" + csstype: "npm:^3.0.2" + checksum: 10c0/b4873b643721d28b4450f9d77b71e6c8d0109e6825c54fc79e649d2fa438fe4080d2fa696ec8fda421b8e713fcd42306d6197b6121ddd2486ffab8e4b6311ce0 + languageName: node + linkType: hard + +"@emotion/sheet@npm:^1.4.0": + version: 1.4.0 + resolution: "@emotion/sheet@npm:1.4.0" + checksum: 10c0/3ca72d1650a07d2fbb7e382761b130b4a887dcd04e6574b2d51ce578791240150d7072a9bcb4161933abbcd1e38b243a6fb4464a7fe991d700c17aa66bb5acc7 + languageName: node + linkType: hard + +"@emotion/styled@npm:^11.13.0": + version: 11.13.0 + resolution: "@emotion/styled@npm:11.13.0" + dependencies: + "@babel/runtime": "npm:^7.18.3" + "@emotion/babel-plugin": "npm:^11.12.0" + "@emotion/is-prop-valid": "npm:^1.3.0" + "@emotion/serialize": "npm:^1.3.0" + "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.1.0" + "@emotion/utils": "npm:^1.4.0" + peerDependencies: + "@emotion/react": ^11.0.0-rc.0 + react: ">=16.8.0" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/5e2cc85c8a2f6e7bd012731cf0b6da3aef5906225e87e8d4a5c19da50572e24d9aaf92615aa36aa863f0fe6b62a121033356e1cad62617c48bfdaa2c3cf0d8a4 + languageName: node + linkType: hard + "@emotion/stylis@npm:^0.8.4": version: 0.8.5 resolution: "@emotion/stylis@npm:0.8.5" @@ -2201,6 +3552,13 @@ __metadata: languageName: node linkType: hard +"@emotion/unitless@npm:^0.10.0": + version: 0.10.0 + resolution: "@emotion/unitless@npm:0.10.0" + checksum: 10c0/150943192727b7650eb9a6851a98034ddb58a8b6958b37546080f794696141c3760966ac695ab9af97efe10178690987aee4791f9f0ad1ff76783cdca83c1d49 + languageName: node + linkType: hard + "@emotion/unitless@npm:^0.7.4": version: 0.7.5 resolution: "@emotion/unitless@npm:0.7.5" @@ -2208,6 +3566,43 @@ __metadata: languageName: node linkType: hard +"@emotion/use-insertion-effect-with-fallbacks@npm:^1.1.0": + version: 1.1.0 + resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.1.0" + peerDependencies: + react: ">=16.8.0" + checksum: 10c0/a883480f3a7139fb4a43e71d3114ca57e2b7ae5ff204e05cd9e59251a113773b8f64eb75d3997726250aca85eb73447638c8f51930734bdd16b96762b65e58c3 + languageName: node + linkType: hard + +"@emotion/utils@npm:^1.4.0": + version: 1.4.0 + resolution: "@emotion/utils@npm:1.4.0" + checksum: 10c0/b2ae698d6e935f4961a8349286b5b0a6117a16e179459cbf9c8d97d5daa7d96c99876b950f09b1a793d6b295713b2c8f89544bd8c3f26b8e4db60a218a0d4c42 + languageName: node + linkType: hard + +"@emotion/utils@npm:^1.4.1": + version: 1.4.1 + resolution: "@emotion/utils@npm:1.4.1" + checksum: 10c0/f4704e0bdf48062fd6eb9c64771c88f521aab1e108a48cb23d65b6438597c63a6945301cef4c43611e79e0e76a304ec5481c31025ea8f573d7ad5423d747602c + languageName: node + linkType: hard + +"@emotion/weak-memoize@npm:^0.4.0": + version: 0.4.0 + resolution: "@emotion/weak-memoize@npm:0.4.0" + checksum: 10c0/64376af11f1266042d03b3305c30b7502e6084868e33327e944b539091a472f089db307af69240f7188f8bc6b319276fd7b141a36613f1160d73d12a60f6ca1a + languageName: node + linkType: hard + +"@esbuild/aix-ppc64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/aix-ppc64@npm:0.23.1" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/android-arm64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/android-arm64@npm:0.17.19" @@ -2215,6 +3610,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/android-arm64@npm:0.23.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/android-arm@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/android-arm@npm:0.17.19" @@ -2222,9 +3624,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/android-x64@npm:0.17.19" +"@esbuild/android-arm@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/android-arm@npm:0.23.1" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/android-x64@npm:0.17.19" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/android-x64@npm:0.23.1" conditions: os=android & cpu=x64 languageName: node linkType: hard @@ -2236,6 +3652,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/darwin-arm64@npm:0.23.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/darwin-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/darwin-x64@npm:0.17.19" @@ -2243,6 +3666,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/darwin-x64@npm:0.23.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@esbuild/freebsd-arm64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/freebsd-arm64@npm:0.17.19" @@ -2250,6 +3680,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/freebsd-arm64@npm:0.23.1" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/freebsd-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/freebsd-x64@npm:0.17.19" @@ -2257,6 +3694,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/freebsd-x64@npm:0.23.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/linux-arm64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-arm64@npm:0.17.19" @@ -2264,6 +3708,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-arm64@npm:0.23.1" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/linux-arm@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-arm@npm:0.17.19" @@ -2271,6 +3722,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-arm@npm:0.23.1" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-ia32@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-ia32@npm:0.17.19" @@ -2278,6 +3736,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ia32@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-ia32@npm:0.23.1" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-loong64@npm:0.17.19" @@ -2285,6 +3750,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-loong64@npm:0.23.1" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@esbuild/linux-mips64el@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-mips64el@npm:0.17.19" @@ -2292,6 +3764,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-mips64el@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-mips64el@npm:0.23.1" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + "@esbuild/linux-ppc64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-ppc64@npm:0.17.19" @@ -2299,6 +3778,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ppc64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-ppc64@npm:0.23.1" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/linux-riscv64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-riscv64@npm:0.17.19" @@ -2306,6 +3792,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-riscv64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-riscv64@npm:0.23.1" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "@esbuild/linux-s390x@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-s390x@npm:0.17.19" @@ -2313,6 +3806,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-s390x@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-s390x@npm:0.23.1" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "@esbuild/linux-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-x64@npm:0.17.19" @@ -2320,6 +3820,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-x64@npm:0.23.1" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "@esbuild/netbsd-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/netbsd-x64@npm:0.17.19" @@ -2327,6 +3834,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/netbsd-x64@npm:0.23.1" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/openbsd-arm64@npm:0.23.1" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/openbsd-x64@npm:0.17.19" @@ -2334,6 +3855,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/openbsd-x64@npm:0.23.1" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/sunos-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/sunos-x64@npm:0.17.19" @@ -2341,6 +3869,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/sunos-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/sunos-x64@npm:0.23.1" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + "@esbuild/win32-arm64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/win32-arm64@npm:0.17.19" @@ -2348,6 +3883,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/win32-arm64@npm:0.23.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/win32-ia32@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/win32-ia32@npm:0.17.19" @@ -2355,6 +3897,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/win32-ia32@npm:0.23.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/win32-x64@npm:0.17.19" @@ -2362,6 +3911,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/win32-x64@npm:0.23.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": version: 4.4.0 resolution: "@eslint-community/eslint-utils@npm:4.4.0" @@ -3886,6 +5442,181 @@ __metadata: languageName: node linkType: hard +"@img/sharp-darwin-arm64@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-darwin-arm64@npm:0.33.5" + dependencies: + "@img/sharp-libvips-darwin-arm64": "npm:1.0.4" + dependenciesMeta: + "@img/sharp-libvips-darwin-arm64": + optional: true + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@img/sharp-darwin-x64@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-darwin-x64@npm:0.33.5" + dependencies: + "@img/sharp-libvips-darwin-x64": "npm:1.0.4" + dependenciesMeta: + "@img/sharp-libvips-darwin-x64": + optional: true + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@img/sharp-libvips-darwin-arm64@npm:1.0.4": + version: 1.0.4 + resolution: "@img/sharp-libvips-darwin-arm64@npm:1.0.4" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@img/sharp-libvips-darwin-x64@npm:1.0.4": + version: 1.0.4 + resolution: "@img/sharp-libvips-darwin-x64@npm:1.0.4" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@img/sharp-libvips-linux-arm64@npm:1.0.4": + version: 1.0.4 + resolution: "@img/sharp-libvips-linux-arm64@npm:1.0.4" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-libvips-linux-arm@npm:1.0.5": + version: 1.0.5 + resolution: "@img/sharp-libvips-linux-arm@npm:1.0.5" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-libvips-linux-s390x@npm:1.0.4": + version: 1.0.4 + resolution: "@img/sharp-libvips-linux-s390x@npm:1.0.4" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-libvips-linux-x64@npm:1.0.4": + version: 1.0.4 + resolution: "@img/sharp-libvips-linux-x64@npm:1.0.4" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-libvips-linuxmusl-arm64@npm:1.0.4": + version: 1.0.4 + resolution: "@img/sharp-libvips-linuxmusl-arm64@npm:1.0.4" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@img/sharp-libvips-linuxmusl-x64@npm:1.0.4": + version: 1.0.4 + resolution: "@img/sharp-libvips-linuxmusl-x64@npm:1.0.4" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@img/sharp-linux-arm64@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-linux-arm64@npm:0.33.5" + dependencies: + "@img/sharp-libvips-linux-arm64": "npm:1.0.4" + dependenciesMeta: + "@img/sharp-libvips-linux-arm64": + optional: true + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linux-arm@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-linux-arm@npm:0.33.5" + dependencies: + "@img/sharp-libvips-linux-arm": "npm:1.0.5" + dependenciesMeta: + "@img/sharp-libvips-linux-arm": + optional: true + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linux-s390x@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-linux-s390x@npm:0.33.5" + dependencies: + "@img/sharp-libvips-linux-s390x": "npm:1.0.4" + dependenciesMeta: + "@img/sharp-libvips-linux-s390x": + optional: true + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linux-x64@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-linux-x64@npm:0.33.5" + dependencies: + "@img/sharp-libvips-linux-x64": "npm:1.0.4" + dependenciesMeta: + "@img/sharp-libvips-linux-x64": + optional: true + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linuxmusl-arm64@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-linuxmusl-arm64@npm:0.33.5" + dependencies: + "@img/sharp-libvips-linuxmusl-arm64": "npm:1.0.4" + dependenciesMeta: + "@img/sharp-libvips-linuxmusl-arm64": + optional: true + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@img/sharp-linuxmusl-x64@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-linuxmusl-x64@npm:0.33.5" + dependencies: + "@img/sharp-libvips-linuxmusl-x64": "npm:1.0.4" + dependenciesMeta: + "@img/sharp-libvips-linuxmusl-x64": + optional: true + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@img/sharp-wasm32@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-wasm32@npm:0.33.5" + dependencies: + "@emnapi/runtime": "npm:^1.2.0" + conditions: cpu=wasm32 + languageName: node + linkType: hard + +"@img/sharp-win32-ia32@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-win32-ia32@npm:0.33.5" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@img/sharp-win32-x64@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-win32-x64@npm:0.33.5" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@internationalized/date@npm:^3.0.2": version: 3.0.2 resolution: "@internationalized/date@npm:3.0.2" @@ -4027,6 +5758,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/source-map@npm:^0.3.3": + version: 0.3.6 + resolution: "@jridgewell/source-map@npm:0.3.6" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + checksum: 10c0/6a4ecc713ed246ff8e5bdcc1ef7c49aaa93f7463d948ba5054dda18b02dcc6a055e2828c577bcceee058f302ce1fc95595713d44f5c45e43d459f88d267f2f04 + languageName: node + linkType: hard + "@jridgewell/sourcemap-codec@npm:1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.10": version: 1.4.14 resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" @@ -4034,7 +5775,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.14": +"@jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0": version: 1.5.0 resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18 @@ -4058,7 +5799,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": +"@jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" dependencies: @@ -4249,6 +5990,18 @@ __metadata: languageName: node linkType: hard +"@mdx-js/react@npm:^3.0.0": + version: 3.0.1 + resolution: "@mdx-js/react@npm:3.0.1" + dependencies: + "@types/mdx": "npm:^2.0.0" + peerDependencies: + "@types/react": ">=16" + react: ">=16" + checksum: 10c0/d210d926ef488d39ad65f04d821936b668eadcdde3b6421e94ec4200ca7ad17f17d24c5cbc543882586af9f08b10e2eea715c728ce6277487945e05c5199f532 + languageName: node + linkType: hard + "@messageformat/parser@npm:^5.0.0": version: 5.0.0 resolution: "@messageformat/parser@npm:5.0.0" @@ -4574,13 +6327,156 @@ __metadata: languageName: node linkType: hard -"@motionone/vue@npm:^10.16.2": - version: 10.16.2 - resolution: "@motionone/vue@npm:10.16.2" +"@motionone/vue@npm:^10.16.2": + version: 10.16.2 + resolution: "@motionone/vue@npm:10.16.2" + dependencies: + "@motionone/dom": "npm:^10.16.2" + tslib: "npm:^2.3.1" + checksum: 10c0/f0fd7c46852d9df6f74074bb9d7e65af6947cb1616455c61ffa807d68b003445d168789fa7a8f9d5b74e015b73762f9286cd9f17590f9bdbe41c2cc604f16757 + languageName: node + linkType: hard + +"@mui/core-downloads-tracker@npm:^6.1.4": + version: 6.1.4 + resolution: "@mui/core-downloads-tracker@npm:6.1.4" + checksum: 10c0/bfd84a726c883dd681b2cda13b977eb6646c1da66ea59905dbe7b857ec4ac86576a318eb116d54633e7c479aecb52fe0c75fb957f1b6081a6c8857dd5ce4c5b9 + languageName: node + linkType: hard + +"@mui/material@npm:^6.1.4": + version: 6.1.4 + resolution: "@mui/material@npm:6.1.4" + dependencies: + "@babel/runtime": "npm:^7.25.7" + "@mui/core-downloads-tracker": "npm:^6.1.4" + "@mui/system": "npm:^6.1.4" + "@mui/types": "npm:^7.2.18" + "@mui/utils": "npm:^6.1.4" + "@popperjs/core": "npm:^2.11.8" + "@types/react-transition-group": "npm:^4.4.11" + clsx: "npm:^2.1.1" + csstype: "npm:^3.1.3" + prop-types: "npm:^15.8.1" + react-is: "npm:^18.3.1" + react-transition-group: "npm:^4.4.5" + peerDependencies: + "@emotion/react": ^11.5.0 + "@emotion/styled": ^11.3.0 + "@mui/material-pigment-css": ^6.1.4 + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + "@mui/material-pigment-css": + optional: true + "@types/react": + optional: true + checksum: 10c0/3729e56129b27706ebfab67428035dc7f0136dfd745281b467c7da07e78248cc8e2f36939cd6c33967fd565c5b5eff336629e3f7a2d877e9b176d24df67c9c81 + languageName: node + linkType: hard + +"@mui/private-theming@npm:^6.1.4": + version: 6.1.4 + resolution: "@mui/private-theming@npm:6.1.4" + dependencies: + "@babel/runtime": "npm:^7.25.7" + "@mui/utils": "npm:^6.1.4" + prop-types: "npm:^15.8.1" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/37c81ca4529afbec2a4710d4dfa1597a5f9a33ff3ae775fa68474f86b223ed4ab953526e49883d77638ad62f0c944716c2b0dc58a105624ca91fe60a633e3b4a + languageName: node + linkType: hard + +"@mui/styled-engine@npm:^6.1.4": + version: 6.1.4 + resolution: "@mui/styled-engine@npm:6.1.4" + dependencies: + "@babel/runtime": "npm:^7.25.7" + "@emotion/cache": "npm:^11.13.1" + "@emotion/serialize": "npm:^1.3.2" + "@emotion/sheet": "npm:^1.4.0" + csstype: "npm:^3.1.3" + prop-types: "npm:^15.8.1" + peerDependencies: + "@emotion/react": ^11.4.1 + "@emotion/styled": ^11.3.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + checksum: 10c0/ce8f53a704aa607152ef5ef25d95bdd5c4399f7dbf240acd6e4057c24d84536bb3c884fcb13c5e88d87dbfff42935c82af2e63800ba033ad481847b1967ccf52 + languageName: node + linkType: hard + +"@mui/system@npm:^6.1.4": + version: 6.1.4 + resolution: "@mui/system@npm:6.1.4" + dependencies: + "@babel/runtime": "npm:^7.25.7" + "@mui/private-theming": "npm:^6.1.4" + "@mui/styled-engine": "npm:^6.1.4" + "@mui/types": "npm:^7.2.18" + "@mui/utils": "npm:^6.1.4" + clsx: "npm:^2.1.1" + csstype: "npm:^3.1.3" + prop-types: "npm:^15.8.1" + peerDependencies: + "@emotion/react": ^11.5.0 + "@emotion/styled": ^11.3.0 + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + "@types/react": + optional: true + checksum: 10c0/766f1c695254df54b06de1af231cdf30752f71a79181edd4c24044405144b7a72c4c23248155f4041999993aa4f568878eccd130c100b4b332e7dd6b322dfd75 + languageName: node + linkType: hard + +"@mui/types@npm:^7.2.18": + version: 7.2.18 + resolution: "@mui/types@npm:7.2.18" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/338404bdef7c7f9ebcd389ebbf429c44d2cc9c25c65d8669dc900a24b2c8718240482273bf6cd953578965e3838ad40a8e7376c71d3d9146be3afb88bff1b67a + languageName: node + linkType: hard + +"@mui/utils@npm:^6.1.4": + version: 6.1.4 + resolution: "@mui/utils@npm:6.1.4" dependencies: - "@motionone/dom": "npm:^10.16.2" - tslib: "npm:^2.3.1" - checksum: 10c0/f0fd7c46852d9df6f74074bb9d7e65af6947cb1616455c61ffa807d68b003445d168789fa7a8f9d5b74e015b73762f9286cd9f17590f9bdbe41c2cc604f16757 + "@babel/runtime": "npm:^7.25.7" + "@mui/types": "npm:^7.2.18" + "@types/prop-types": "npm:^15.7.13" + clsx: "npm:^2.1.1" + prop-types: "npm:^15.8.1" + react-is: "npm:^18.3.1" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/cac4f05904897c28444e7ef2a6891678d36c0a8fae921ccacebcd7b53da99e4c6cab05669328fdabff624313de68f1b5bcd427cba36024b6c3505b5ee945eb05 languageName: node linkType: hard @@ -5190,6 +7086,43 @@ __metadata: languageName: node linkType: hard +"@pmmmwh/react-refresh-webpack-plugin@npm:^0.5.11": + version: 0.5.15 + resolution: "@pmmmwh/react-refresh-webpack-plugin@npm:0.5.15" + dependencies: + ansi-html: "npm:^0.0.9" + core-js-pure: "npm:^3.23.3" + error-stack-parser: "npm:^2.0.6" + html-entities: "npm:^2.1.0" + loader-utils: "npm:^2.0.4" + schema-utils: "npm:^4.2.0" + source-map: "npm:^0.7.3" + peerDependencies: + "@types/webpack": 4.x || 5.x + react-refresh: ">=0.10.0 <1.0.0" + sockjs-client: ^1.4.0 + type-fest: ">=0.17.0 <5.0.0" + webpack: ">=4.43.0 <6.0.0" + webpack-dev-server: 3.x || 4.x || 5.x + webpack-hot-middleware: 2.x + webpack-plugin-serve: 0.x || 1.x + peerDependenciesMeta: + "@types/webpack": + optional: true + sockjs-client: + optional: true + type-fest: + optional: true + webpack-dev-server: + optional: true + webpack-hot-middleware: + optional: true + webpack-plugin-serve: + optional: true + checksum: 10c0/ba310aa4d53070f59c8a374d1d256c5965c044c0c3fb1ff6b55353fb5e86de08a490a7bd59a31f0d4951f8f29f81864c7df224fe1342543a95d048b7413ff171 + languageName: node + linkType: hard + "@polka/url@npm:^1.0.0-next.20": version: 1.0.0-next.21 resolution: "@polka/url@npm:1.0.0-next.21" @@ -5197,6 +7130,13 @@ __metadata: languageName: node linkType: hard +"@popperjs/core@npm:^2.11.8": + version: 2.11.8 + resolution: "@popperjs/core@npm:2.11.8" + checksum: 10c0/4681e682abc006d25eb380d0cf3efc7557043f53b6aea7a5057d0d1e7df849a00e281cd8ea79c902a35a414d7919621fc2ba293ecec05f413598e0b23d5a1e63 + languageName: node + linkType: hard + "@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2": version: 1.1.2 resolution: "@protobufjs/aspromise@npm:1.1.2" @@ -7006,126 +8946,670 @@ __metadata: languageName: node linkType: hard -"@stablelib/constant-time@npm:^1.0.1": - version: 1.0.1 - resolution: "@stablelib/constant-time@npm:1.0.1" - checksum: 10c0/694a282441215735a1fdfa3d06db5a28ba92423890967a154514ef28e0d0298ce7b6a2bc65ebc4273573d6669a6b601d330614747aa2e69078c1d523d7069e12 +"@stablelib/constant-time@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/constant-time@npm:1.0.1" + checksum: 10c0/694a282441215735a1fdfa3d06db5a28ba92423890967a154514ef28e0d0298ce7b6a2bc65ebc4273573d6669a6b601d330614747aa2e69078c1d523d7069e12 + languageName: node + linkType: hard + +"@stablelib/ed25519@npm:^1.0.2": + version: 1.0.3 + resolution: "@stablelib/ed25519@npm:1.0.3" + dependencies: + "@stablelib/random": "npm:^1.0.2" + "@stablelib/sha512": "npm:^1.0.1" + "@stablelib/wipe": "npm:^1.0.1" + checksum: 10c0/b4a05e3c24dabd8a9e0b5bd72dea761bfb4b5c66404308e9f0529ef898e75d6f588234920762d5372cb920d9d47811250160109f02d04b6eed53835fb6916eb9 + languageName: node + linkType: hard + +"@stablelib/hash@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/hash@npm:1.0.1" + checksum: 10c0/58b5572a4067820b77a1606ed2d4a6dc4068c5475f68ba0918860a5f45adf60b33024a0cea9532dcd8b7345c53b3c9636a23723f5f8ae83e0c3648f91fb5b5cc + languageName: node + linkType: hard + +"@stablelib/hkdf@npm:1.0.1": + version: 1.0.1 + resolution: "@stablelib/hkdf@npm:1.0.1" + dependencies: + "@stablelib/hash": "npm:^1.0.1" + "@stablelib/hmac": "npm:^1.0.1" + "@stablelib/wipe": "npm:^1.0.1" + checksum: 10c0/722d30e36afa8029fda2a9e8c65ad753deff92a234e708820f9fd39309d2494e1c035a4185f29ae8d7fbf8a74862b27128c66a1fb4bd7a792bd300190080dbe9 + languageName: node + linkType: hard + +"@stablelib/hmac@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/hmac@npm:1.0.1" + dependencies: + "@stablelib/constant-time": "npm:^1.0.1" + "@stablelib/hash": "npm:^1.0.1" + "@stablelib/wipe": "npm:^1.0.1" + checksum: 10c0/a111d5e687966b62c81f7dbd390f13582b027edee9bd39df6474a6472e5ad89d705e735af32bae2c9280a205806649f54b5ff8c4e8c8a7b484083a35b257e9e6 + languageName: node + linkType: hard + +"@stablelib/int@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/int@npm:1.0.1" + checksum: 10c0/e1a6a7792fc2146d65de56e4ef42e8bc385dd5157eff27019b84476f564a1a6c43413235ed0e9f7c9bb8907dbdab24679467aeb10f44c92e6b944bcd864a7ee0 + languageName: node + linkType: hard + +"@stablelib/keyagreement@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/keyagreement@npm:1.0.1" + dependencies: + "@stablelib/bytes": "npm:^1.0.1" + checksum: 10c0/18c9e09772a058edee265c65992ec37abe4ab5118171958972e28f3bbac7f2a0afa6aaf152ec1d785452477bdab5366b3f5b750e8982ae9ad090f5fa2e5269ba + languageName: node + linkType: hard + +"@stablelib/poly1305@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/poly1305@npm:1.0.1" + dependencies: + "@stablelib/constant-time": "npm:^1.0.1" + "@stablelib/wipe": "npm:^1.0.1" + checksum: 10c0/080185ffa92f5111e6ecfeab7919368b9984c26d048b9c09a111fbc657ea62bb5dfe6b56245e1804ce692a445cc93ab6625936515fa0e7518b8f2d86feda9630 + languageName: node + linkType: hard + +"@stablelib/random@npm:1.0.2, @stablelib/random@npm:^1.0.1, @stablelib/random@npm:^1.0.2": + version: 1.0.2 + resolution: "@stablelib/random@npm:1.0.2" + dependencies: + "@stablelib/binary": "npm:^1.0.1" + "@stablelib/wipe": "npm:^1.0.1" + checksum: 10c0/ebb217cfb76db97d98ec07bd7ce03a650fa194b91f0cb12382738161adff1830f405de0e9bad22bbc352422339ff85f531873b6a874c26ea9b59cfcc7ea787e0 + languageName: node + linkType: hard + +"@stablelib/sha256@npm:1.0.1": + version: 1.0.1 + resolution: "@stablelib/sha256@npm:1.0.1" + dependencies: + "@stablelib/binary": "npm:^1.0.1" + "@stablelib/hash": "npm:^1.0.1" + "@stablelib/wipe": "npm:^1.0.1" + checksum: 10c0/e29ee9bc76eece4345e9155ce4bdeeb1df8652296be72bd2760523ad565e3b99dca85b81db3b75ee20b34837077eb8542ca88f153f162154c62ba1f75aecc24a + languageName: node + linkType: hard + +"@stablelib/sha512@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/sha512@npm:1.0.1" + dependencies: + "@stablelib/binary": "npm:^1.0.1" + "@stablelib/hash": "npm:^1.0.1" + "@stablelib/wipe": "npm:^1.0.1" + checksum: 10c0/84549070a383f4daf23d9065230eb81bc8f590c68bf5f7968f1b78901236b3bb387c14f63773dc6c3dc78e823b1c15470d2a04d398a2506391f466c16ba29b58 + languageName: node + linkType: hard + +"@stablelib/wipe@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/wipe@npm:1.0.1" + checksum: 10c0/c5a54f769c286a5b3ecff979471dfccd4311f2e84a959908e8c0e3aa4eed1364bd9707f7b69d1384b757e62cc295c221fa27286c7f782410eb8a690f30cfd796 + languageName: node + linkType: hard + +"@stablelib/x25519@npm:1.0.3, @stablelib/x25519@npm:^1.0.3": + version: 1.0.3 + resolution: "@stablelib/x25519@npm:1.0.3" + dependencies: + "@stablelib/keyagreement": "npm:^1.0.1" + "@stablelib/random": "npm:^1.0.2" + "@stablelib/wipe": "npm:^1.0.1" + checksum: 10c0/d8afe8a120923a434359d7d1c6759780426fed117a84a6c0f84d1a4878834cb4c2d7da78a1fa7cf227ce3924fdc300cd6ed6e46cf2508bf17b1545c319ab8418 + languageName: node + linkType: hard + +"@storybook/addon-a11y@npm:^8.3.5": + version: 8.3.5 + resolution: "@storybook/addon-a11y@npm:8.3.5" + dependencies: + "@storybook/addon-highlight": "npm:8.3.5" + axe-core: "npm:^4.2.0" + peerDependencies: + storybook: ^8.3.5 + checksum: 10c0/ecc99c83b69e72ea38db5ce844c77d8ef01b06c52770429ba933490f5625291d373a269fc8e2371430e73f06afdbd083ca6a110ac2177f5df2cd2cf311c96d87 + languageName: node + linkType: hard + +"@storybook/addon-actions@npm:8.3.5": + version: 8.3.5 + resolution: "@storybook/addon-actions@npm:8.3.5" + dependencies: + "@storybook/global": "npm:^5.0.0" + "@types/uuid": "npm:^9.0.1" + dequal: "npm:^2.0.2" + polished: "npm:^4.2.2" + uuid: "npm:^9.0.0" + peerDependencies: + storybook: ^8.3.5 + checksum: 10c0/c9872d9d41b33ae26be36dfb25ccb10e7c832d4677cffe4f3e8a42f2748d8c54e681810662b88e10d1e72223096ad1861e389ee7134974e9f3e2869958300e08 + languageName: node + linkType: hard + +"@storybook/addon-backgrounds@npm:8.3.5": + version: 8.3.5 + resolution: "@storybook/addon-backgrounds@npm:8.3.5" + dependencies: + "@storybook/global": "npm:^5.0.0" + memoizerific: "npm:^1.11.3" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.3.5 + checksum: 10c0/6a2ce804bd96827a0601b53ea1f15bec382e1099cf957a0ac3c9452da1a58702fb5cea4b76c564a78a3a4f66431eaf3d826ad400d3bd579fec94ec266f06e211 + languageName: node + linkType: hard + +"@storybook/addon-controls@npm:8.3.5": + version: 8.3.5 + resolution: "@storybook/addon-controls@npm:8.3.5" + dependencies: + "@storybook/global": "npm:^5.0.0" + dequal: "npm:^2.0.2" + lodash: "npm:^4.17.21" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.3.5 + checksum: 10c0/f0bf85a8f401649734ae63ece9b64fe77b10a290cd1e83f54d83da4ae58f5a3a9e3876497f8cb3e9ac12dd1814fe7d16cee88bd6985877422823965b20607385 + languageName: node + linkType: hard + +"@storybook/addon-docs@npm:8.3.5, @storybook/addon-docs@npm:^8.3.5": + version: 8.3.5 + resolution: "@storybook/addon-docs@npm:8.3.5" + dependencies: + "@mdx-js/react": "npm:^3.0.0" + "@storybook/blocks": "npm:8.3.5" + "@storybook/csf-plugin": "npm:8.3.5" + "@storybook/global": "npm:^5.0.0" + "@storybook/react-dom-shim": "npm:8.3.5" + "@types/react": "npm:^16.8.0 || ^17.0.0 || ^18.0.0" + fs-extra: "npm:^11.1.0" + react: "npm:^16.8.0 || ^17.0.0 || ^18.0.0" + react-dom: "npm:^16.8.0 || ^17.0.0 || ^18.0.0" + rehype-external-links: "npm:^3.0.0" + rehype-slug: "npm:^6.0.0" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.3.5 + checksum: 10c0/51f277079397ecc0e5fef721307a618e3aa4727069dba2b331cb4de2e6e318f4de338132e1ea886c0e9ee0824a10cbc9a0887e0f09f341221a31a09111ce4836 + languageName: node + linkType: hard + +"@storybook/addon-essentials@npm:^8.3.5": + version: 8.3.5 + resolution: "@storybook/addon-essentials@npm:8.3.5" + dependencies: + "@storybook/addon-actions": "npm:8.3.5" + "@storybook/addon-backgrounds": "npm:8.3.5" + "@storybook/addon-controls": "npm:8.3.5" + "@storybook/addon-docs": "npm:8.3.5" + "@storybook/addon-highlight": "npm:8.3.5" + "@storybook/addon-measure": "npm:8.3.5" + "@storybook/addon-outline": "npm:8.3.5" + "@storybook/addon-toolbars": "npm:8.3.5" + "@storybook/addon-viewport": "npm:8.3.5" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.3.5 + checksum: 10c0/dad5ec31342abafe93eefa10178278f2f3cb8f849824050cf9248ff976188fda9bdc167750a57c57f0f821a56dd46daef92e70816a62b3cba435484f263fb703 + languageName: node + linkType: hard + +"@storybook/addon-highlight@npm:8.3.5": + version: 8.3.5 + resolution: "@storybook/addon-highlight@npm:8.3.5" + dependencies: + "@storybook/global": "npm:^5.0.0" + peerDependencies: + storybook: ^8.3.5 + checksum: 10c0/9bd4d29d10d612aa6baf2a3c470fd571f32edd4d456e3c4eb0dfe416be7891b075f06a7f46da35274c58261db8be5e97d974edec3c11b477f1cc397b357a42ca + languageName: node + linkType: hard + +"@storybook/addon-interactions@npm:^8.3.5": + version: 8.3.5 + resolution: "@storybook/addon-interactions@npm:8.3.5" + dependencies: + "@storybook/global": "npm:^5.0.0" + "@storybook/instrumenter": "npm:8.3.5" + "@storybook/test": "npm:8.3.5" + polished: "npm:^4.2.2" + ts-dedent: "npm:^2.2.0" + peerDependencies: + storybook: ^8.3.5 + checksum: 10c0/66aef03bdaee184911db0ddd212ef5c87f30d985d363b65085a88d19aa0304feb2753f342338f7b675463405ddfd0f6c7938ec62acdad5bbcd43af3173738932 + languageName: node + linkType: hard + +"@storybook/addon-measure@npm:8.3.5": + version: 8.3.5 + resolution: "@storybook/addon-measure@npm:8.3.5" + dependencies: + "@storybook/global": "npm:^5.0.0" + tiny-invariant: "npm:^1.3.1" + peerDependencies: + storybook: ^8.3.5 + checksum: 10c0/49a8f2fac76a65fc2b4fdf6c90a4996e58cccf4a3db56a7f32a17eff2a34ebeccf7ad8042a3bd3b1e8deba1d9ba95ce95f8ee57f11a98de51ce6fc29b2a127b4 + languageName: node + linkType: hard + +"@storybook/addon-outline@npm:8.3.5": + version: 8.3.5 + resolution: "@storybook/addon-outline@npm:8.3.5" + dependencies: + "@storybook/global": "npm:^5.0.0" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.3.5 + checksum: 10c0/d1d4d734e1770aa4af8fba2d789ad5c570ae0eb66301d8c5444a92a07428f66cde4a32e48fc1ea8627801c7d5c99ae40563554eef7f1a5ad14e4144ee74f9726 + languageName: node + linkType: hard + +"@storybook/addon-themes@npm:^8.3.5": + version: 8.3.5 + resolution: "@storybook/addon-themes@npm:8.3.5" + dependencies: + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.3.5 + checksum: 10c0/f64ebbe0d6bbb2b60826a9f24aca223aef8a9c61f3b65b8ade10af6a32145838ee47987f8e467a75f31fe3690d217e83782fe2da1e1586d6e6c8436c66465038 + languageName: node + linkType: hard + +"@storybook/addon-toolbars@npm:8.3.5": + version: 8.3.5 + resolution: "@storybook/addon-toolbars@npm:8.3.5" + peerDependencies: + storybook: ^8.3.5 + checksum: 10c0/1e198ab1c87204f3ed69493484e94e6ad6bd4ed3c5a164ceeb0719cf2ddf96159d0fc481584c413d0bf3ff3943196ca123888ac67b0dbf967195d024387de84e + languageName: node + linkType: hard + +"@storybook/addon-viewport@npm:8.3.5": + version: 8.3.5 + resolution: "@storybook/addon-viewport@npm:8.3.5" + dependencies: + memoizerific: "npm:^1.11.3" + peerDependencies: + storybook: ^8.3.5 + checksum: 10c0/26e02754694d3422c19383ca330eb541394e54151e6c3d86865cbedcf49a323820b649e837e47ef94ea310c80ca47b9baa56fadee3a02db31bce5eaae6f43674 + languageName: node + linkType: hard + +"@storybook/blocks@npm:8.3.5, @storybook/blocks@npm:^8.3.5": + version: 8.3.5 + resolution: "@storybook/blocks@npm:8.3.5" + dependencies: + "@storybook/csf": "npm:^0.1.11" + "@storybook/global": "npm:^5.0.0" + "@storybook/icons": "npm:^1.2.10" + "@types/lodash": "npm:^4.14.167" + color-convert: "npm:^2.0.1" + dequal: "npm:^2.0.2" + lodash: "npm:^4.17.21" + markdown-to-jsx: "npm:^7.4.5" + memoizerific: "npm:^1.11.3" + polished: "npm:^4.2.2" + react-colorful: "npm:^5.1.2" + telejson: "npm:^7.2.0" + ts-dedent: "npm:^2.0.0" + util-deprecate: "npm:^1.0.2" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.3.5 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + checksum: 10c0/8b4d4b7761ff32de02c231231ef49457f96438916c9f5e2af6eebd90842a7de1f26781a768f5f2b080abd26c8da66c1fca60d304a87f530216eb01d6434e7ff9 + languageName: node + linkType: hard + +"@storybook/builder-webpack5@npm:8.3.5": + version: 8.3.5 + resolution: "@storybook/builder-webpack5@npm:8.3.5" + dependencies: + "@storybook/core-webpack": "npm:8.3.5" + "@types/node": "npm:^22.0.0" + "@types/semver": "npm:^7.3.4" + browser-assert: "npm:^1.2.1" + case-sensitive-paths-webpack-plugin: "npm:^2.4.0" + cjs-module-lexer: "npm:^1.2.3" + constants-browserify: "npm:^1.0.0" + css-loader: "npm:^6.7.1" + es-module-lexer: "npm:^1.5.0" + express: "npm:^4.19.2" + fork-ts-checker-webpack-plugin: "npm:^8.0.0" + fs-extra: "npm:^11.1.0" + html-webpack-plugin: "npm:^5.5.0" + magic-string: "npm:^0.30.5" + path-browserify: "npm:^1.0.1" + process: "npm:^0.11.10" + semver: "npm:^7.3.7" + style-loader: "npm:^3.3.1" + terser-webpack-plugin: "npm:^5.3.1" + ts-dedent: "npm:^2.0.0" + url: "npm:^0.11.0" + util: "npm:^0.12.4" + util-deprecate: "npm:^1.0.2" + webpack: "npm:5" + webpack-dev-middleware: "npm:^6.1.2" + webpack-hot-middleware: "npm:^2.25.1" + webpack-virtual-modules: "npm:^0.6.0" + peerDependencies: + storybook: ^8.3.5 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/03c2e8ff9e8a85ed1064ec0514a48bd3ede92872f9bc867d961049638ec8884a0fd341993214136ccfeddbb280ca397bba42379c2fddaac7eb3d8a007d25c6bf + languageName: node + linkType: hard + +"@storybook/components@npm:^8.3.5": + version: 8.3.5 + resolution: "@storybook/components@npm:8.3.5" + peerDependencies: + storybook: ^8.3.5 + checksum: 10c0/20b3217f1a0a48ab5a40c08960d966be1fc6842dd40fc9951328d9bdc76411e3d3820865fd93895eeccec718ef8c8512f19d1fcad9bdd2cb6a792f92ca4d73ce + languageName: node + linkType: hard + +"@storybook/core-webpack@npm:8.3.5": + version: 8.3.5 + resolution: "@storybook/core-webpack@npm:8.3.5" + dependencies: + "@types/node": "npm:^22.0.0" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.3.5 + checksum: 10c0/d9311fc697485b70e7e4b473a9fa496f4bde7fe5242a889c080167d19ea53b07beab1e6458b6133f360f2c5e68b7e1dee9fcdd41dff5364ebf97b5c567f0c40b + languageName: node + linkType: hard + +"@storybook/core@npm:8.3.5": + version: 8.3.5 + resolution: "@storybook/core@npm:8.3.5" + dependencies: + "@storybook/csf": "npm:^0.1.11" + "@types/express": "npm:^4.17.21" + better-opn: "npm:^3.0.2" + browser-assert: "npm:^1.2.1" + esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0" + esbuild-register: "npm:^3.5.0" + express: "npm:^4.19.2" + jsdoc-type-pratt-parser: "npm:^4.0.0" + process: "npm:^0.11.10" + recast: "npm:^0.23.5" + semver: "npm:^7.6.2" + util: "npm:^0.12.5" + ws: "npm:^8.2.3" + checksum: 10c0/f01d13c2309af518f1d029d27a3dd1ce80ea7423c9d4927d1096634a84887051c3581404971499ab81e5b28acca517bf1b31a3281fe7fdb0b418f0c45767f16f + languageName: node + linkType: hard + +"@storybook/csf-plugin@npm:8.3.5": + version: 8.3.5 + resolution: "@storybook/csf-plugin@npm:8.3.5" + dependencies: + unplugin: "npm:^1.3.1" + peerDependencies: + storybook: ^8.3.5 + checksum: 10c0/528af7509500afe1baf446fb8d52978c71d18df0abafd27a81ab821977cfb211bb02190f5a7d09005c4c10dac5e91ef978e35c74ee477ed7d6e45583ebc8412d + languageName: node + linkType: hard + +"@storybook/csf@npm:^0.1.11": + version: 0.1.11 + resolution: "@storybook/csf@npm:0.1.11" + dependencies: + type-fest: "npm:^2.19.0" + checksum: 10c0/c5329fc13e7d762049b5c91df1bc1c0e510a1a898c401b72b68f1ff64139a85ab64a92f8e681d2fcb226c0a4a55d0f23b569b2bdb517e0f067bd05ea46228356 languageName: node linkType: hard -"@stablelib/ed25519@npm:^1.0.2": - version: 1.0.3 - resolution: "@stablelib/ed25519@npm:1.0.3" - dependencies: - "@stablelib/random": "npm:^1.0.2" - "@stablelib/sha512": "npm:^1.0.1" - "@stablelib/wipe": "npm:^1.0.1" - checksum: 10c0/b4a05e3c24dabd8a9e0b5bd72dea761bfb4b5c66404308e9f0529ef898e75d6f588234920762d5372cb920d9d47811250160109f02d04b6eed53835fb6916eb9 +"@storybook/global@npm:^5.0.0": + version: 5.0.0 + resolution: "@storybook/global@npm:5.0.0" + checksum: 10c0/8f1b61dcdd3a89584540896e659af2ecc700bc740c16909a7be24ac19127ea213324de144a141f7caf8affaed017d064fea0618d453afbe027cf60f54b4a6d0b languageName: node linkType: hard -"@stablelib/hash@npm:^1.0.1": - version: 1.0.1 - resolution: "@stablelib/hash@npm:1.0.1" - checksum: 10c0/58b5572a4067820b77a1606ed2d4a6dc4068c5475f68ba0918860a5f45adf60b33024a0cea9532dcd8b7345c53b3c9636a23723f5f8ae83e0c3648f91fb5b5cc +"@storybook/icons@npm:^1.2.10": + version: 1.2.12 + resolution: "@storybook/icons@npm:1.2.12" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 10c0/97f6a7b7841fb5a0d1c8a30c36173469e7b0814a674c8103c7c0fd8803f0f7c2a778545af864012d40883195a533534dbc98541deac2bafe31e6a3fe37fdfc66 languageName: node linkType: hard -"@stablelib/hkdf@npm:1.0.1": - version: 1.0.1 - resolution: "@stablelib/hkdf@npm:1.0.1" +"@storybook/instrumenter@npm:8.3.5": + version: 8.3.5 + resolution: "@storybook/instrumenter@npm:8.3.5" dependencies: - "@stablelib/hash": "npm:^1.0.1" - "@stablelib/hmac": "npm:^1.0.1" - "@stablelib/wipe": "npm:^1.0.1" - checksum: 10c0/722d30e36afa8029fda2a9e8c65ad753deff92a234e708820f9fd39309d2494e1c035a4185f29ae8d7fbf8a74862b27128c66a1fb4bd7a792bd300190080dbe9 + "@storybook/global": "npm:^5.0.0" + "@vitest/utils": "npm:^2.0.5" + util: "npm:^0.12.4" + peerDependencies: + storybook: ^8.3.5 + checksum: 10c0/9dd4e9080591200aa410ae9f7c132b466173a4fc882ad78e06fdbe8d795b04cee3afc5b1385ecb3ff5b9fb314abc3da2ac1494a8bf815e1113c3e8a241c5b7b7 languageName: node linkType: hard -"@stablelib/hmac@npm:^1.0.1": - version: 1.0.1 - resolution: "@stablelib/hmac@npm:1.0.1" - dependencies: - "@stablelib/constant-time": "npm:^1.0.1" - "@stablelib/hash": "npm:^1.0.1" - "@stablelib/wipe": "npm:^1.0.1" - checksum: 10c0/a111d5e687966b62c81f7dbd390f13582b027edee9bd39df6474a6472e5ad89d705e735af32bae2c9280a205806649f54b5ff8c4e8c8a7b484083a35b257e9e6 +"@storybook/manager-api@npm:^8.3.5": + version: 8.3.5 + resolution: "@storybook/manager-api@npm:8.3.5" + peerDependencies: + storybook: ^8.3.5 + checksum: 10c0/4983af0e3a05abec0114acfa8bfe9d5df816b91f76614eb3c37dd654a0d4fdf5379d4d0cffc1676c6681d6142acd44e81abcb7c4f6de6108c8d26158cca9820d languageName: node linkType: hard -"@stablelib/int@npm:^1.0.1": - version: 1.0.1 - resolution: "@stablelib/int@npm:1.0.1" - checksum: 10c0/e1a6a7792fc2146d65de56e4ef42e8bc385dd5157eff27019b84476f564a1a6c43413235ed0e9f7c9bb8907dbdab24679467aeb10f44c92e6b944bcd864a7ee0 +"@storybook/nextjs@npm:^8.3.5": + version: 8.3.5 + resolution: "@storybook/nextjs@npm:8.3.5" + dependencies: + "@babel/core": "npm:^7.24.4" + "@babel/plugin-syntax-bigint": "npm:^7.8.3" + "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" + "@babel/plugin-syntax-import-assertions": "npm:^7.24.1" + "@babel/plugin-transform-class-properties": "npm:^7.24.1" + "@babel/plugin-transform-export-namespace-from": "npm:^7.24.1" + "@babel/plugin-transform-numeric-separator": "npm:^7.24.1" + "@babel/plugin-transform-object-rest-spread": "npm:^7.24.1" + "@babel/plugin-transform-runtime": "npm:^7.24.3" + "@babel/preset-env": "npm:^7.24.4" + "@babel/preset-react": "npm:^7.24.1" + "@babel/preset-typescript": "npm:^7.24.1" + "@babel/runtime": "npm:^7.24.4" + "@pmmmwh/react-refresh-webpack-plugin": "npm:^0.5.11" + "@storybook/builder-webpack5": "npm:8.3.5" + "@storybook/preset-react-webpack": "npm:8.3.5" + "@storybook/react": "npm:8.3.5" + "@storybook/test": "npm:8.3.5" + "@types/node": "npm:^22.0.0" + "@types/semver": "npm:^7.3.4" + babel-loader: "npm:^9.1.3" + css-loader: "npm:^6.7.3" + find-up: "npm:^5.0.0" + fs-extra: "npm:^11.1.0" + image-size: "npm:^1.0.0" + loader-utils: "npm:^3.2.1" + node-polyfill-webpack-plugin: "npm:^2.0.1" + pnp-webpack-plugin: "npm:^1.7.0" + postcss: "npm:^8.4.38" + postcss-loader: "npm:^8.1.1" + react-refresh: "npm:^0.14.0" + resolve-url-loader: "npm:^5.0.0" + sass-loader: "npm:^13.2.0" + semver: "npm:^7.3.5" + sharp: "npm:^0.33.3" + style-loader: "npm:^3.3.1" + styled-jsx: "npm:^5.1.6" + ts-dedent: "npm:^2.0.0" + tsconfig-paths: "npm:^4.0.0" + tsconfig-paths-webpack-plugin: "npm:^4.0.1" + peerDependencies: + next: ^13.5.0 || ^14.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.3.5 + webpack: ^5.0.0 + dependenciesMeta: + sharp: + optional: true + peerDependenciesMeta: + typescript: + optional: true + webpack: + optional: true + checksum: 10c0/7b8d53380476f292dcc7c88b305f947eb0108aac70e24f66d06d060078444264d3e6e9ca362afb344081e196cd3baa24d184286b9e82db3144b79e326495ae7f languageName: node linkType: hard -"@stablelib/keyagreement@npm:^1.0.1": - version: 1.0.1 - resolution: "@stablelib/keyagreement@npm:1.0.1" +"@storybook/preset-react-webpack@npm:8.3.5": + version: 8.3.5 + resolution: "@storybook/preset-react-webpack@npm:8.3.5" dependencies: - "@stablelib/bytes": "npm:^1.0.1" - checksum: 10c0/18c9e09772a058edee265c65992ec37abe4ab5118171958972e28f3bbac7f2a0afa6aaf152ec1d785452477bdab5366b3f5b750e8982ae9ad090f5fa2e5269ba + "@storybook/core-webpack": "npm:8.3.5" + "@storybook/react": "npm:8.3.5" + "@storybook/react-docgen-typescript-plugin": "npm:1.0.6--canary.9.0c3f3b7.0" + "@types/node": "npm:^22.0.0" + "@types/semver": "npm:^7.3.4" + find-up: "npm:^5.0.0" + fs-extra: "npm:^11.1.0" + magic-string: "npm:^0.30.5" + react-docgen: "npm:^7.0.0" + resolve: "npm:^1.22.8" + semver: "npm:^7.3.7" + tsconfig-paths: "npm:^4.2.0" + webpack: "npm:5" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.3.5 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/9f7b1748e00e7ebd6e20618a4e44b524977e8b6f36aa16ed9e937b3941930ef24e90f5f50cea339018276312d053549bef92845bc03f27a11de6eced55e52b1f languageName: node linkType: hard -"@stablelib/poly1305@npm:^1.0.1": - version: 1.0.1 - resolution: "@stablelib/poly1305@npm:1.0.1" - dependencies: - "@stablelib/constant-time": "npm:^1.0.1" - "@stablelib/wipe": "npm:^1.0.1" - checksum: 10c0/080185ffa92f5111e6ecfeab7919368b9984c26d048b9c09a111fbc657ea62bb5dfe6b56245e1804ce692a445cc93ab6625936515fa0e7518b8f2d86feda9630 +"@storybook/preview-api@npm:^8.3.5": + version: 8.3.5 + resolution: "@storybook/preview-api@npm:8.3.5" + peerDependencies: + storybook: ^8.3.5 + checksum: 10c0/12d81d57c0931983428b8621311de79a3846ec0f1c51ab94c5a9e7795a1e4bade74aa62de3693c488001630403c98a5372caca4be613f6f806e7265afb22e3d7 languageName: node linkType: hard -"@stablelib/random@npm:1.0.2, @stablelib/random@npm:^1.0.1, @stablelib/random@npm:^1.0.2": - version: 1.0.2 - resolution: "@stablelib/random@npm:1.0.2" +"@storybook/react-docgen-typescript-plugin@npm:1.0.6--canary.9.0c3f3b7.0": + version: 1.0.6--canary.9.0c3f3b7.0 + resolution: "@storybook/react-docgen-typescript-plugin@npm:1.0.6--canary.9.0c3f3b7.0" dependencies: - "@stablelib/binary": "npm:^1.0.1" - "@stablelib/wipe": "npm:^1.0.1" - checksum: 10c0/ebb217cfb76db97d98ec07bd7ce03a650fa194b91f0cb12382738161adff1830f405de0e9bad22bbc352422339ff85f531873b6a874c26ea9b59cfcc7ea787e0 + debug: "npm:^4.1.1" + endent: "npm:^2.0.1" + find-cache-dir: "npm:^3.3.1" + flat-cache: "npm:^3.0.4" + micromatch: "npm:^4.0.2" + react-docgen-typescript: "npm:^2.2.2" + tslib: "npm:^2.0.0" + peerDependencies: + typescript: ">= 4.x" + webpack: ">= 4" + checksum: 10c0/505a728f36df3f519f4985bdf18f2078ea18a1a8f7f837fc831f971363fb7643a182f01a6857a9729ac5a1246d370526fca5a19017f82e7493af4ca945cb7235 languageName: node linkType: hard -"@stablelib/sha256@npm:1.0.1": - version: 1.0.1 - resolution: "@stablelib/sha256@npm:1.0.1" - dependencies: - "@stablelib/binary": "npm:^1.0.1" - "@stablelib/hash": "npm:^1.0.1" - "@stablelib/wipe": "npm:^1.0.1" - checksum: 10c0/e29ee9bc76eece4345e9155ce4bdeeb1df8652296be72bd2760523ad565e3b99dca85b81db3b75ee20b34837077eb8542ca88f153f162154c62ba1f75aecc24a +"@storybook/react-dom-shim@npm:8.3.5": + version: 8.3.5 + resolution: "@storybook/react-dom-shim@npm:8.3.5" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.3.5 + checksum: 10c0/a765dc358ae2b1775197aa540024ff8f999c4d1673e76f632b74edd62bb609c8405f4ddfd392923ee6190bf0a1506a473cf41202323d8bda77b20681dc5a1594 languageName: node linkType: hard -"@stablelib/sha512@npm:^1.0.1": - version: 1.0.1 - resolution: "@stablelib/sha512@npm:1.0.1" +"@storybook/react@npm:8.3.5, @storybook/react@npm:^8.3.5": + version: 8.3.5 + resolution: "@storybook/react@npm:8.3.5" dependencies: - "@stablelib/binary": "npm:^1.0.1" - "@stablelib/hash": "npm:^1.0.1" - "@stablelib/wipe": "npm:^1.0.1" - checksum: 10c0/84549070a383f4daf23d9065230eb81bc8f590c68bf5f7968f1b78901236b3bb387c14f63773dc6c3dc78e823b1c15470d2a04d398a2506391f466c16ba29b58 + "@storybook/components": "npm:^8.3.5" + "@storybook/global": "npm:^5.0.0" + "@storybook/manager-api": "npm:^8.3.5" + "@storybook/preview-api": "npm:^8.3.5" + "@storybook/react-dom-shim": "npm:8.3.5" + "@storybook/theming": "npm:^8.3.5" + "@types/escodegen": "npm:^0.0.6" + "@types/estree": "npm:^0.0.51" + "@types/node": "npm:^22.0.0" + acorn: "npm:^7.4.1" + acorn-jsx: "npm:^5.3.1" + acorn-walk: "npm:^7.2.0" + escodegen: "npm:^2.1.0" + html-tags: "npm:^3.1.0" + prop-types: "npm:^15.7.2" + react-element-to-jsx-string: "npm:^15.0.0" + semver: "npm:^7.3.7" + ts-dedent: "npm:^2.0.0" + type-fest: "npm:~2.19" + util-deprecate: "npm:^1.0.2" + peerDependencies: + "@storybook/test": 8.3.5 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.3.5 + typescript: ">= 4.2.x" + peerDependenciesMeta: + "@storybook/test": + optional: true + typescript: + optional: true + checksum: 10c0/2db9aa673be975018c9a44cc4c0c662439a85298a4d931afe63bf4e1ca6f7ab6889eddf6d64a555483af84ccc65b3d81b712c2231096124063cf5afa77fcbb6d languageName: node linkType: hard -"@stablelib/wipe@npm:^1.0.1": - version: 1.0.1 - resolution: "@stablelib/wipe@npm:1.0.1" - checksum: 10c0/c5a54f769c286a5b3ecff979471dfccd4311f2e84a959908e8c0e3aa4eed1364bd9707f7b69d1384b757e62cc295c221fa27286c7f782410eb8a690f30cfd796 +"@storybook/test@npm:8.3.5, @storybook/test@npm:^8.3.5": + version: 8.3.5 + resolution: "@storybook/test@npm:8.3.5" + dependencies: + "@storybook/csf": "npm:^0.1.11" + "@storybook/global": "npm:^5.0.0" + "@storybook/instrumenter": "npm:8.3.5" + "@testing-library/dom": "npm:10.4.0" + "@testing-library/jest-dom": "npm:6.5.0" + "@testing-library/user-event": "npm:14.5.2" + "@vitest/expect": "npm:2.0.5" + "@vitest/spy": "npm:2.0.5" + util: "npm:^0.12.4" + peerDependencies: + storybook: ^8.3.5 + checksum: 10c0/1890aeab0b10d08f6b6bbaf68defaa2a0794e17e8f43ac3d92c3873d34771e198d088a2f4c0b135a299fe586407c4315cd443e270afa65d84914fcc5d63ea099 languageName: node linkType: hard -"@stablelib/x25519@npm:1.0.3, @stablelib/x25519@npm:^1.0.3": - version: 1.0.3 - resolution: "@stablelib/x25519@npm:1.0.3" - dependencies: - "@stablelib/keyagreement": "npm:^1.0.1" - "@stablelib/random": "npm:^1.0.2" - "@stablelib/wipe": "npm:^1.0.1" - checksum: 10c0/d8afe8a120923a434359d7d1c6759780426fed117a84a6c0f84d1a4878834cb4c2d7da78a1fa7cf227ce3924fdc300cd6ed6e46cf2508bf17b1545c319ab8418 +"@storybook/theming@npm:^8.3.5": + version: 8.3.5 + resolution: "@storybook/theming@npm:8.3.5" + peerDependencies: + storybook: ^8.3.5 + checksum: 10c0/25455033b2b3bdb86083f759df77df42bfff71405c6abd301963dd7596003b462a0960a86c5cec3503dc9e1eba565eeb82a897002c6823f9ee361155b9ddfd23 languageName: node linkType: hard @@ -7389,6 +9873,46 @@ __metadata: languageName: node linkType: hard +"@testing-library/dom@npm:10.4.0": + version: 10.4.0 + resolution: "@testing-library/dom@npm:10.4.0" + dependencies: + "@babel/code-frame": "npm:^7.10.4" + "@babel/runtime": "npm:^7.12.5" + "@types/aria-query": "npm:^5.0.1" + aria-query: "npm:5.3.0" + chalk: "npm:^4.1.0" + dom-accessibility-api: "npm:^0.5.9" + lz-string: "npm:^1.5.0" + pretty-format: "npm:^27.0.2" + checksum: 10c0/0352487720ecd433400671e773df0b84b8268fb3fe8e527cdfd7c11b1365b398b4e0eddba6e7e0c85e8d615f48257753283fccec41f6b986fd6c85f15eb5f84f + languageName: node + linkType: hard + +"@testing-library/jest-dom@npm:6.5.0": + version: 6.5.0 + resolution: "@testing-library/jest-dom@npm:6.5.0" + dependencies: + "@adobe/css-tools": "npm:^4.4.0" + aria-query: "npm:^5.0.0" + chalk: "npm:^3.0.0" + css.escape: "npm:^1.5.1" + dom-accessibility-api: "npm:^0.6.3" + lodash: "npm:^4.17.21" + redent: "npm:^3.0.0" + checksum: 10c0/fd5936a547f04608d8de15a7de3ae26516f21023f8f45169b10c8c8847015fd20ec259b7309f08aa1031bcbc37c6e5e6f532d1bb85ef8f91bad654193ec66a4c + languageName: node + linkType: hard + +"@testing-library/user-event@npm:14.5.2": + version: 14.5.2 + resolution: "@testing-library/user-event@npm:14.5.2" + peerDependencies: + "@testing-library/dom": ">=7.21.4" + checksum: 10c0/68a0c2aa28a3c8e6eb05cafee29705438d7d8a9427423ce5064d44f19c29e89b5636de46dd2f28620fb10abba75c67130185bbc3aa23ac1163a227a5f36641e1 + languageName: node + linkType: hard + "@toruslabs/http-helpers@npm:^4.0.0": version: 4.0.0 resolution: "@toruslabs/http-helpers@npm:4.0.0" @@ -7649,6 +10173,54 @@ __metadata: languageName: node linkType: hard +"@types/aria-query@npm:^5.0.1": + version: 5.0.4 + resolution: "@types/aria-query@npm:5.0.4" + checksum: 10c0/dc667bc6a3acc7bba2bccf8c23d56cb1f2f4defaa704cfef595437107efaa972d3b3db9ec1d66bc2711bfc35086821edd32c302bffab36f2e79b97f312069f08 + languageName: node + linkType: hard + +"@types/babel__core@npm:^7.18.0": + version: 7.20.5 + resolution: "@types/babel__core@npm:7.20.5" + dependencies: + "@babel/parser": "npm:^7.20.7" + "@babel/types": "npm:^7.20.7" + "@types/babel__generator": "npm:*" + "@types/babel__template": "npm:*" + "@types/babel__traverse": "npm:*" + checksum: 10c0/bdee3bb69951e833a4b811b8ee9356b69a61ed5b7a23e1a081ec9249769117fa83aaaf023bb06562a038eb5845155ff663e2d5c75dd95c1d5ccc91db012868ff + languageName: node + linkType: hard + +"@types/babel__generator@npm:*": + version: 7.6.8 + resolution: "@types/babel__generator@npm:7.6.8" + dependencies: + "@babel/types": "npm:^7.0.0" + checksum: 10c0/f0ba105e7d2296bf367d6e055bb22996886c114261e2cb70bf9359556d0076c7a57239d019dee42bb063f565bade5ccb46009bce2044b2952d964bf9a454d6d2 + languageName: node + linkType: hard + +"@types/babel__template@npm:*": + version: 7.4.4 + resolution: "@types/babel__template@npm:7.4.4" + dependencies: + "@babel/parser": "npm:^7.1.0" + "@babel/types": "npm:^7.0.0" + checksum: 10c0/cc84f6c6ab1eab1427e90dd2b76ccee65ce940b778a9a67be2c8c39e1994e6f5bbc8efa309f6cea8dc6754994524cd4d2896558df76d92e7a1f46ecffee7112b + languageName: node + linkType: hard + +"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.18.0": + version: 7.20.6 + resolution: "@types/babel__traverse@npm:7.20.6" + dependencies: + "@babel/types": "npm:^7.20.7" + checksum: 10c0/7ba7db61a53e28cac955aa99af280d2600f15a8c056619c05b6fc911cbe02c61aa4f2823299221b23ce0cce00b294c0e5f618ec772aa3f247523c2e48cf7b888 + languageName: node + linkType: hard + "@types/bn.js@npm:5.1.0, @types/bn.js@npm:^5.1.0": version: 5.1.0 resolution: "@types/bn.js@npm:5.1.0" @@ -7667,6 +10239,16 @@ __metadata: languageName: node linkType: hard +"@types/body-parser@npm:*": + version: 1.19.5 + resolution: "@types/body-parser@npm:1.19.5" + dependencies: + "@types/connect": "npm:*" + "@types/node": "npm:*" + checksum: 10c0/aebeb200f25e8818d8cf39cd0209026750d77c9b85381cdd8deeb50913e4d18a1ebe4b74ca9b0b4d21952511eeaba5e9fbbf739b52731a2061e206ec60d568df + languageName: node + linkType: hard + "@types/carbon__icons-react@npm:11.16.0": version: 11.16.0 resolution: "@types/carbon__icons-react@npm:11.16.0" @@ -7674,6 +10256,15 @@ __metadata: languageName: node linkType: hard +"@types/connect@npm:*": + version: 3.4.38 + resolution: "@types/connect@npm:3.4.38" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/2e1cdba2c410f25649e77856505cd60223250fa12dff7a503e492208dbfdd25f62859918f28aba95315251fd1f5e1ffbfca1e25e73037189ab85dd3f8d0a148c + languageName: node + linkType: hard + "@types/connect@npm:^3.4.33": version: 3.4.35 resolution: "@types/connect@npm:3.4.35" @@ -7779,6 +10370,13 @@ __metadata: languageName: node linkType: hard +"@types/doctrine@npm:^0.0.9": + version: 0.0.9 + resolution: "@types/doctrine@npm:0.0.9" + checksum: 10c0/cdaca493f13c321cf0cacd1973efc0ae74569633145d9e6fc1128f32217a6968c33bea1f858275239fe90c98f3be57ec8f452b416a9ff48b8e8c1098b20fa51c + languageName: node + linkType: hard + "@types/dom-screen-wake-lock@npm:^1.0.0": version: 1.0.3 resolution: "@types/dom-screen-wake-lock@npm:1.0.3" @@ -7786,6 +10384,13 @@ __metadata: languageName: node linkType: hard +"@types/escodegen@npm:^0.0.6": + version: 0.0.6 + resolution: "@types/escodegen@npm:0.0.6" + checksum: 10c0/bbef189319c7b0386486bc7224369f118c7aedf35cc13e40ae5879b9ab4f848936f31e8eea50e71d4de72d4b7a77d9e6e9e5ceec4406c648fbc0077ede634ed5 + languageName: node + linkType: hard + "@types/eslint-scope@npm:^3.7.3": version: 3.7.4 resolution: "@types/eslint-scope@npm:3.7.4" @@ -7813,6 +10418,53 @@ __metadata: languageName: node linkType: hard +"@types/estree@npm:^0.0.51": + version: 0.0.51 + resolution: "@types/estree@npm:0.0.51" + checksum: 10c0/a70c60d5e634e752fcd45b58c9c046ef22ad59ede4bc93ad5193c7e3b736ebd6bcd788ade59d9c3b7da6eeb0939235f011d4c59bb4fc04d8c346b76035099dd1 + languageName: node + linkType: hard + +"@types/estree@npm:^1.0.5": + version: 1.0.6 + resolution: "@types/estree@npm:1.0.6" + checksum: 10c0/cdfd751f6f9065442cd40957c07fd80361c962869aa853c1c2fd03e101af8b9389d8ff4955a43a6fcfa223dd387a089937f95be0f3eec21ca527039fd2d9859a + languageName: node + linkType: hard + +"@types/express-serve-static-core@npm:^4.17.33": + version: 4.19.5 + resolution: "@types/express-serve-static-core@npm:4.19.5" + dependencies: + "@types/node": "npm:*" + "@types/qs": "npm:*" + "@types/range-parser": "npm:*" + "@types/send": "npm:*" + checksum: 10c0/ba8d8d976ab797b2602c60e728802ff0c98a00f13d420d82770f3661b67fa36ea9d3be0b94f2ddd632afe1fbc6e41620008b01db7e4fabdd71a2beb5539b0725 + languageName: node + linkType: hard + +"@types/express@npm:^4.17.21": + version: 4.17.21 + resolution: "@types/express@npm:4.17.21" + dependencies: + "@types/body-parser": "npm:*" + "@types/express-serve-static-core": "npm:^4.17.33" + "@types/qs": "npm:*" + "@types/serve-static": "npm:*" + checksum: 10c0/12e562c4571da50c7d239e117e688dc434db1bac8be55613294762f84fd77fbd0658ccd553c7d3ab02408f385bc93980992369dd30e2ecd2c68c358e6af8fabf + languageName: node + linkType: hard + +"@types/hast@npm:^3.0.0": + version: 3.0.4 + resolution: "@types/hast@npm:3.0.4" + dependencies: + "@types/unist": "npm:*" + checksum: 10c0/3249781a511b38f1d330fd1e3344eed3c4e7ea8eff82e835d35da78e637480d36fad37a78be5a7aed8465d237ad0446abc1150859d0fde395354ea634decf9f7 + languageName: node + linkType: hard + "@types/hoist-non-react-statics@npm:*": version: 3.3.1 resolution: "@types/hoist-non-react-statics@npm:3.3.1" @@ -7823,6 +10475,20 @@ __metadata: languageName: node linkType: hard +"@types/html-minifier-terser@npm:^6.0.0": + version: 6.1.0 + resolution: "@types/html-minifier-terser@npm:6.1.0" + checksum: 10c0/a62fb8588e2f3818d82a2d7b953ad60a4a52fd767ae04671de1c16f5788bd72f1ed3a6109ed63fd190c06a37d919e3c39d8adbc1793a005def76c15a3f5f5dab + languageName: node + linkType: hard + +"@types/http-errors@npm:*": + version: 2.0.4 + resolution: "@types/http-errors@npm:2.0.4" + checksum: 10c0/494670a57ad4062fee6c575047ad5782506dd35a6b9ed3894cea65830a94367bd84ba302eb3dde331871f6d70ca287bfedb1b2cf658e6132cd2cbd427ab56836 + languageName: node + linkType: hard + "@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0": version: 2.0.3 resolution: "@types/istanbul-lib-coverage@npm:2.0.3" @@ -7855,6 +10521,13 @@ __metadata: languageName: node linkType: hard +"@types/json-schema@npm:^7.0.9": + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db + languageName: node + linkType: hard + "@types/json5@npm:^0.0.29": version: 0.0.29 resolution: "@types/json5@npm:0.0.29" @@ -7869,6 +10542,13 @@ __metadata: languageName: node linkType: hard +"@types/lodash@npm:^4.14.167": + version: 4.17.7 + resolution: "@types/lodash@npm:4.17.7" + checksum: 10c0/40c965b5ffdcf7ff5c9105307ee08b782da228c01b5c0529122c554c64f6b7168fc8f11dc79aa7bae4e67e17efafaba685dc3a47e294dbf52a65ed2b67100561 + languageName: node + linkType: hard + "@types/lru-cache@npm:^5.1.0": version: 5.1.1 resolution: "@types/lru-cache@npm:5.1.1" @@ -7876,6 +10556,20 @@ __metadata: languageName: node linkType: hard +"@types/mdx@npm:^2.0.0": + version: 2.0.13 + resolution: "@types/mdx@npm:2.0.13" + checksum: 10c0/5edf1099505ac568da55f9ae8a93e7e314e8cbc13d3445d0be61b75941226b005e1390d9b95caecf5dcb00c9d1bab2f1f60f6ff9876dc091a48b547495007720 + languageName: node + linkType: hard + +"@types/mime@npm:^1": + version: 1.3.5 + resolution: "@types/mime@npm:1.3.5" + checksum: 10c0/c2ee31cd9b993804df33a694d5aa3fa536511a49f2e06eeab0b484fef59b4483777dbb9e42a4198a0809ffbf698081fdbca1e5c2218b82b91603dfab10a10fbc + languageName: node + linkType: hard + "@types/ms@npm:*": version: 0.7.31 resolution: "@types/ms@npm:0.7.31" @@ -7918,6 +10612,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^22.0.0": + version: 22.5.5 + resolution: "@types/node@npm:22.5.5" + dependencies: + undici-types: "npm:~6.19.2" + checksum: 10c0/ead9495cfc6b1da5e7025856dcce2591e9bae635357410c0d2dd619fce797d2a1d402887580ca4b336cb78168b195224869967de370a23f61663cf1e4836121c + languageName: node + linkType: hard + "@types/parse-json@npm:^4.0.0": version: 4.0.0 resolution: "@types/parse-json@npm:4.0.0" @@ -7941,6 +10644,27 @@ __metadata: languageName: node linkType: hard +"@types/prop-types@npm:^15.7.13": + version: 15.7.13 + resolution: "@types/prop-types@npm:15.7.13" + checksum: 10c0/1b20fc67281902c6743379960247bc161f3f0406ffc0df8e7058745a85ea1538612109db0406290512947f9632fe9e10e7337bf0ce6338a91d6c948df16a7c61 + languageName: node + linkType: hard + +"@types/qs@npm:*": + version: 6.9.16 + resolution: "@types/qs@npm:6.9.16" + checksum: 10c0/a4e871b80fff623755e356fd1f225aea45ff7a29da30f99fddee1a05f4f5f33485b314ab5758145144ed45708f97e44595aa9a8368e9bbc083932f931b12dbb6 + languageName: node + linkType: hard + +"@types/range-parser@npm:*": + version: 1.2.7 + resolution: "@types/range-parser@npm:1.2.7" + checksum: 10c0/361bb3e964ec5133fa40644a0b942279ed5df1949f21321d77de79f48b728d39253e5ce0408c9c17e4e0fd95ca7899da36841686393b9f7a1e209916e9381a3c + languageName: node + linkType: hard + "@types/react-dom@npm:^18.3.1": version: 18.3.1 resolution: "@types/react-dom@npm:18.3.1" @@ -7950,6 +10674,15 @@ __metadata: languageName: node linkType: hard +"@types/react-transition-group@npm:^4.4.11": + version: 4.4.11 + resolution: "@types/react-transition-group@npm:4.4.11" + dependencies: + "@types/react": "npm:*" + checksum: 10c0/8fbf0dcc1b81985cdcebe3c59d769fe2ea3f4525f12c3a10a7429a59f93e303c82b2abb744d21cb762879f4514969d70a7ab11b9bf486f92213e8fe70e04098d + languageName: node + linkType: hard + "@types/react@npm:^18.3.1": version: 18.3.11 resolution: "@types/react@npm:18.3.11" @@ -7960,6 +10693,13 @@ __metadata: languageName: node linkType: hard +"@types/resolve@npm:^1.20.2": + version: 1.20.6 + resolution: "@types/resolve@npm:1.20.6" + checksum: 10c0/a9b0549d816ff2c353077365d865a33655a141d066d0f5a3ba6fd4b28bc2f4188a510079f7c1f715b3e7af505a27374adce2a5140a3ece2a059aab3d6e1a4244 + languageName: node + linkType: hard + "@types/secp256k1@npm:^4.0.1": version: 4.0.3 resolution: "@types/secp256k1@npm:4.0.3" @@ -7978,6 +10718,34 @@ __metadata: languageName: node linkType: hard +"@types/semver@npm:^7.3.4": + version: 7.5.8 + resolution: "@types/semver@npm:7.5.8" + checksum: 10c0/8663ff927234d1c5fcc04b33062cb2b9fcfbe0f5f351ed26c4d1e1581657deebd506b41ff7fdf89e787e3d33ce05854bc01686379b89e9c49b564c4cfa988efa + languageName: node + linkType: hard + +"@types/send@npm:*": + version: 0.17.4 + resolution: "@types/send@npm:0.17.4" + dependencies: + "@types/mime": "npm:^1" + "@types/node": "npm:*" + checksum: 10c0/7f17fa696cb83be0a104b04b424fdedc7eaba1c9a34b06027239aba513b398a0e2b7279778af521f516a397ced417c96960e5f50fcfce40c4bc4509fb1a5883c + languageName: node + linkType: hard + +"@types/serve-static@npm:*": + version: 1.15.7 + resolution: "@types/serve-static@npm:1.15.7" + dependencies: + "@types/http-errors": "npm:*" + "@types/node": "npm:*" + "@types/send": "npm:*" + checksum: 10c0/26ec864d3a626ea627f8b09c122b623499d2221bbf2f470127f4c9ebfe92bd8a6bb5157001372d4c4bd0dd37a1691620217d9dc4df5aa8f779f3fd996b1c60ae + languageName: node + linkType: hard + "@types/sinonjs__fake-timers@npm:8.1.1": version: 8.1.1 resolution: "@types/sinonjs__fake-timers@npm:8.1.1" @@ -8010,6 +10778,20 @@ __metadata: languageName: node linkType: hard +"@types/unist@npm:*, @types/unist@npm:^3.0.0": + version: 3.0.3 + resolution: "@types/unist@npm:3.0.3" + checksum: 10c0/2b1e4adcab78388e088fcc3c0ae8700f76619dbcb4741d7d201f87e2cb346bfc29a89003cfea2d76c996e1061452e14fcd737e8b25aacf949c1f2d6b2bc3dd60 + languageName: node + linkType: hard + +"@types/uuid@npm:^9.0.1": + version: 9.0.8 + resolution: "@types/uuid@npm:9.0.8" + checksum: 10c0/b411b93054cb1d4361919579ef3508a1f12bf15b5fdd97337d3d351bece6c921b52b6daeef89b62340fd73fd60da407878432a1af777f40648cbe53a01723489 + languageName: node + linkType: hard + "@types/validator@npm:^13.12.1": version: 13.12.1 resolution: "@types/validator@npm:13.12.1" @@ -8254,13 +11036,75 @@ __metadata: languageName: node linkType: hard -"@ungap/structured-clone@npm:^1.2.0": +"@ungap/structured-clone@npm:^1.0.0, @ungap/structured-clone@npm:^1.2.0": version: 1.2.0 resolution: "@ungap/structured-clone@npm:1.2.0" checksum: 10c0/8209c937cb39119f44eb63cf90c0b73e7c754209a6411c707be08e50e29ee81356dca1a848a405c8bdeebfe2f5e4f831ad310ae1689eeef65e7445c090c6657d languageName: node linkType: hard +"@vitest/expect@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/expect@npm:2.0.5" + dependencies: + "@vitest/spy": "npm:2.0.5" + "@vitest/utils": "npm:2.0.5" + chai: "npm:^5.1.1" + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/08cb1b0f106d16a5b60db733e3d436fa5eefc68571488eb570dfe4f599f214ab52e4342273b03dbe12331cc6c0cdc325ac6c94f651ad254cd62f3aa0e3d185aa + languageName: node + linkType: hard + +"@vitest/pretty-format@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/pretty-format@npm:2.0.5" + dependencies: + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/236c0798c5170a0b5ad5d4bd06118533738e820b4dd30079d8fbcb15baee949d41c60f42a9f769906c4a5ce366d7ef11279546070646c0efc03128c220c31f37 + languageName: node + linkType: hard + +"@vitest/pretty-format@npm:2.1.1": + version: 2.1.1 + resolution: "@vitest/pretty-format@npm:2.1.1" + dependencies: + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/21057465a794a037a7af2c48397531eadf9b2d8a7b4d1ee5af9081cf64216cd0039b9e06317319df79aa2240fed1dbb6767b530deae2bd4b42d6fb974297e97d + languageName: node + linkType: hard + +"@vitest/spy@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/spy@npm:2.0.5" + dependencies: + tinyspy: "npm:^3.0.0" + checksum: 10c0/70634c21921eb271b54d2986c21d7ab6896a31c0f4f1d266940c9bafb8ac36237846d6736638cbf18b958bd98e5261b158a6944352742accfde50b7818ff655e + languageName: node + linkType: hard + +"@vitest/utils@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/utils@npm:2.0.5" + dependencies: + "@vitest/pretty-format": "npm:2.0.5" + estree-walker: "npm:^3.0.3" + loupe: "npm:^3.1.1" + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/0d1de748298f07a50281e1ba058b05dcd58da3280c14e6f016265e950bd79adab6b97822de8f0ea82d3070f585654801a9b1bcf26db4372e51cf7746bf86d73b + languageName: node + linkType: hard + +"@vitest/utils@npm:^2.0.5": + version: 2.1.1 + resolution: "@vitest/utils@npm:2.1.1" + dependencies: + "@vitest/pretty-format": "npm:2.1.1" + loupe: "npm:^3.1.1" + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/b724c7f23591860bd24cd8e6d0cd803405f4fbff746db160a948290742144463287566a05ca400deb56817603b5185c4429707947869c3d453805860b5e3a3e5 + languageName: node + linkType: hard + "@walletconnect/browser-utils@npm:^1.8.0": version: 1.8.0 resolution: "@walletconnect/browser-utils@npm:1.8.0" @@ -9151,6 +11995,16 @@ __metadata: languageName: node linkType: hard +"@webassemblyjs/ast@npm:1.12.1, @webassemblyjs/ast@npm:^1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/ast@npm:1.12.1" + dependencies: + "@webassemblyjs/helper-numbers": "npm:1.11.6" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" + checksum: 10c0/ba7f2b96c6e67e249df6156d02c69eb5f1bd18d5005303cdc42accb053bebbbde673826e54db0437c9748e97abd218366a1d13fa46859b23cde611b6b409998c + languageName: node + linkType: hard + "@webassemblyjs/floating-point-hex-parser@npm:1.11.6": version: 1.11.6 resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.6" @@ -9172,6 +12026,13 @@ __metadata: languageName: node linkType: hard +"@webassemblyjs/helper-buffer@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/helper-buffer@npm:1.12.1" + checksum: 10c0/0270724afb4601237410f7fd845ab58ccda1d5456a8783aadfb16eaaf3f2c9610c28e4a5bcb6ad880cde5183c82f7f116d5ccfc2310502439d33f14b6888b48a + languageName: node + linkType: hard + "@webassemblyjs/helper-numbers@npm:1.11.6": version: 1.11.6 resolution: "@webassemblyjs/helper-numbers@npm:1.11.6" @@ -9202,6 +12063,18 @@ __metadata: languageName: node linkType: hard +"@webassemblyjs/helper-wasm-section@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/helper-wasm-section@npm:1.12.1" + dependencies: + "@webassemblyjs/ast": "npm:1.12.1" + "@webassemblyjs/helper-buffer": "npm:1.12.1" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" + "@webassemblyjs/wasm-gen": "npm:1.12.1" + checksum: 10c0/0546350724d285ae3c26e6fc444be4c3b5fb824f3be0ec8ceb474179dc3f4430336dd2e36a44b3e3a1a6815960e5eec98cd9b3a8ec66dc53d86daedd3296a6a2 + languageName: node + linkType: hard + "@webassemblyjs/ieee754@npm:1.11.6": version: 1.11.6 resolution: "@webassemblyjs/ieee754@npm:1.11.6" @@ -9243,6 +12116,22 @@ __metadata: languageName: node linkType: hard +"@webassemblyjs/wasm-edit@npm:^1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-edit@npm:1.12.1" + dependencies: + "@webassemblyjs/ast": "npm:1.12.1" + "@webassemblyjs/helper-buffer": "npm:1.12.1" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" + "@webassemblyjs/helper-wasm-section": "npm:1.12.1" + "@webassemblyjs/wasm-gen": "npm:1.12.1" + "@webassemblyjs/wasm-opt": "npm:1.12.1" + "@webassemblyjs/wasm-parser": "npm:1.12.1" + "@webassemblyjs/wast-printer": "npm:1.12.1" + checksum: 10c0/972f5e6c522890743999e0ed45260aae728098801c6128856b310dd21f1ee63435fc7b518e30e0ba1cdafd0d1e38275829c1e4451c3536a1d9e726e07a5bba0b + languageName: node + linkType: hard + "@webassemblyjs/wasm-gen@npm:1.11.6": version: 1.11.6 resolution: "@webassemblyjs/wasm-gen@npm:1.11.6" @@ -9256,6 +12145,19 @@ __metadata: languageName: node linkType: hard +"@webassemblyjs/wasm-gen@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-gen@npm:1.12.1" + dependencies: + "@webassemblyjs/ast": "npm:1.12.1" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" + "@webassemblyjs/ieee754": "npm:1.11.6" + "@webassemblyjs/leb128": "npm:1.11.6" + "@webassemblyjs/utf8": "npm:1.11.6" + checksum: 10c0/1e257288177af9fa34c69cab94f4d9036ebed611f77f3897c988874e75182eeeec759c79b89a7a49dd24624fc2d3d48d5580b62b67c4a1c9bfbdcd266b281c16 + languageName: node + linkType: hard + "@webassemblyjs/wasm-opt@npm:1.11.6": version: 1.11.6 resolution: "@webassemblyjs/wasm-opt@npm:1.11.6" @@ -9268,6 +12170,18 @@ __metadata: languageName: node linkType: hard +"@webassemblyjs/wasm-opt@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-opt@npm:1.12.1" + dependencies: + "@webassemblyjs/ast": "npm:1.12.1" + "@webassemblyjs/helper-buffer": "npm:1.12.1" + "@webassemblyjs/wasm-gen": "npm:1.12.1" + "@webassemblyjs/wasm-parser": "npm:1.12.1" + checksum: 10c0/992a45e1f1871033c36987459436ab4e6430642ca49328e6e32a13de9106fe69ae6c0ac27d7050efd76851e502d11cd1ac0e06b55655dfa889ad82f11a2712fb + languageName: node + linkType: hard + "@webassemblyjs/wasm-parser@npm:1.11.6, @webassemblyjs/wasm-parser@npm:^1.11.5": version: 1.11.6 resolution: "@webassemblyjs/wasm-parser@npm:1.11.6" @@ -9282,6 +12196,20 @@ __metadata: languageName: node linkType: hard +"@webassemblyjs/wasm-parser@npm:1.12.1, @webassemblyjs/wasm-parser@npm:^1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-parser@npm:1.12.1" + dependencies: + "@webassemblyjs/ast": "npm:1.12.1" + "@webassemblyjs/helper-api-error": "npm:1.11.6" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" + "@webassemblyjs/ieee754": "npm:1.11.6" + "@webassemblyjs/leb128": "npm:1.11.6" + "@webassemblyjs/utf8": "npm:1.11.6" + checksum: 10c0/e85cec1acad07e5eb65b92d37c8e6ca09c6ca50d7ca58803a1532b452c7321050a0328c49810c337cc2dfd100c5326a54d5ebd1aa5c339ebe6ef10c250323a0e + languageName: node + linkType: hard + "@webassemblyjs/wast-printer@npm:1.11.6": version: 1.11.6 resolution: "@webassemblyjs/wast-printer@npm:1.11.6" @@ -9292,6 +12220,16 @@ __metadata: languageName: node linkType: hard +"@webassemblyjs/wast-printer@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wast-printer@npm:1.12.1" + dependencies: + "@webassemblyjs/ast": "npm:1.12.1" + "@xtuc/long": "npm:4.2.2" + checksum: 10c0/39bf746eb7a79aa69953f194943bbc43bebae98bd7cadd4d8bc8c0df470ca6bf9d2b789effaa180e900fab4e2691983c1f7d41571458bd2a26267f2f0c73705a + languageName: node + linkType: hard + "@xtuc/ieee754@npm:^1.2.0": version: 1.2.0 resolution: "@xtuc/ieee754@npm:1.2.0" @@ -9384,6 +12322,16 @@ __metadata: languageName: node linkType: hard +"accepts@npm:~1.3.8": + version: 1.3.8 + resolution: "accepts@npm:1.3.8" + dependencies: + mime-types: "npm:~2.1.34" + negotiator: "npm:0.6.3" + checksum: 10c0/3a35c5f5586cfb9a21163ca47a5f77ac34fa8ceb5d17d2fa2c0d81f41cbd7f8c6fa52c77e2c039acc0f4d09e71abdc51144246900f6bef5e3c4b333f77d89362 + languageName: node + linkType: hard + "acorn-import-assertions@npm:^1.7.6": version: 1.9.0 resolution: "acorn-import-assertions@npm:1.9.0" @@ -9393,7 +12341,16 @@ __metadata: languageName: node linkType: hard -"acorn-jsx@npm:^5.3.2": +"acorn-import-attributes@npm:^1.9.5": + version: 1.9.5 + resolution: "acorn-import-attributes@npm:1.9.5" + peerDependencies: + acorn: ^8 + checksum: 10c0/5926eaaead2326d5a86f322ff1b617b0f698aa61dc719a5baa0e9d955c9885cc71febac3fb5bacff71bbf2c4f9c12db2056883c68c53eb962c048b952e1e013d + languageName: node + linkType: hard + +"acorn-jsx@npm:^5.3.1, acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" peerDependencies: @@ -9402,6 +12359,13 @@ __metadata: languageName: node linkType: hard +"acorn-walk@npm:^7.2.0": + version: 7.2.0 + resolution: "acorn-walk@npm:7.2.0" + checksum: 10c0/ff99f3406ed8826f7d6ef6ac76b7608f099d45a1ff53229fa267125da1924188dbacf02e7903dfcfd2ae4af46f7be8847dc7d564c73c4e230dfb69c8ea8e6b4c + languageName: node + linkType: hard + "acorn-walk@npm:^8.0.0": version: 8.2.0 resolution: "acorn-walk@npm:8.2.0" @@ -9418,6 +12382,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^7.4.1": + version: 7.4.1 + resolution: "acorn@npm:7.4.1" + bin: + acorn: bin/acorn + checksum: 10c0/bd0b2c2b0f334bbee48828ff897c12bd2eb5898d03bf556dcc8942022cec795ac5bb5b6b585e2de687db6231faf07e096b59a361231dd8c9344d5df5f7f0e526 + languageName: node + linkType: hard + "acorn@npm:^8.0.4, acorn@npm:^8.5.0, acorn@npm:^8.7.1": version: 8.8.2 resolution: "acorn@npm:8.8.2" @@ -9436,6 +12409,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.12.1, acorn@npm:^8.8.2": + version: 8.12.1 + resolution: "acorn@npm:8.12.1" + bin: + acorn: bin/acorn + checksum: 10c0/51fb26cd678f914e13287e886da2d7021f8c2bc0ccc95e03d3e0447ee278dd3b40b9c57dc222acd5881adcf26f3edc40901a4953403232129e3876793cd17386 + languageName: node + linkType: hard + "acorn@npm:^8.9.0": version: 8.11.3 resolution: "acorn@npm:8.11.3" @@ -9445,6 +12427,16 @@ __metadata: languageName: node linkType: hard +"adjust-sourcemap-loader@npm:^4.0.0": + version: 4.0.0 + resolution: "adjust-sourcemap-loader@npm:4.0.0" + dependencies: + loader-utils: "npm:^2.0.0" + regex-parser: "npm:^2.2.11" + checksum: 10c0/6a6e5bb8b670e4e1238c708f6163e92aa2ad0308fe5913de73c89e4cbf41738ee0bcc5552b94d0b7bf8be435ee49b78c6de8a6db7badd80762051e843c8aa14f + languageName: node + linkType: hard + "adm-zip@npm:^0.4.16": version: 0.4.16 resolution: "adm-zip@npm:0.4.16" @@ -9510,6 +12502,20 @@ __metadata: languageName: node linkType: hard +"ajv-formats@npm:^2.1.1": + version: 2.1.1 + resolution: "ajv-formats@npm:2.1.1" + dependencies: + ajv: "npm:^8.0.0" + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + checksum: 10c0/e43ba22e91b6a48d96224b83d260d3a3a561b42d391f8d3c6d2c1559f9aa5b253bfb306bc94bbeca1d967c014e15a6efe9a207309e95b3eaae07fcbcdc2af662 + languageName: node + linkType: hard + "ajv-keywords@npm:^3.5.2": version: 3.5.2 resolution: "ajv-keywords@npm:3.5.2" @@ -9519,6 +12525,17 @@ __metadata: languageName: node linkType: hard +"ajv-keywords@npm:^5.1.0": + version: 5.1.0 + resolution: "ajv-keywords@npm:5.1.0" + dependencies: + fast-deep-equal: "npm:^3.1.3" + peerDependencies: + ajv: ^8.8.2 + checksum: 10c0/18bec51f0171b83123ba1d8883c126e60c6f420cef885250898bf77a8d3e65e3bfb9e8564f497e30bdbe762a83e0d144a36931328616a973ee669dc74d4a9590 + languageName: node + linkType: hard + "ajv@npm:^6.12.4, ajv@npm:^6.12.5": version: 6.12.6 resolution: "ajv@npm:6.12.6" @@ -9531,6 +12548,18 @@ __metadata: languageName: node linkType: hard +"ajv@npm:^8.0.0, ajv@npm:^8.17.1, ajv@npm:^8.9.0": + version: 8.17.1 + resolution: "ajv@npm:8.17.1" + dependencies: + fast-deep-equal: "npm:^3.1.3" + fast-uri: "npm:^3.0.1" + json-schema-traverse: "npm:^1.0.0" + require-from-string: "npm:^2.0.2" + checksum: 10c0/ec3ba10a573c6b60f94639ffc53526275917a2df6810e4ab5a6b959d87459f9ef3f00d5e7865b82677cb7d21590355b34da14d1d0b9c32d75f95a187e76fff35 + languageName: node + linkType: hard + "ajv@npm:^8.11.0": version: 8.12.0 resolution: "ajv@npm:8.12.0" @@ -9584,6 +12613,24 @@ __metadata: languageName: node linkType: hard +"ansi-html-community@npm:0.0.8": + version: 0.0.8 + resolution: "ansi-html-community@npm:0.0.8" + bin: + ansi-html: bin/ansi-html + checksum: 10c0/45d3a6f0b4f10b04fdd44bef62972e2470bfd917bf00439471fa7473d92d7cbe31369c73db863cc45dda115cb42527f39e232e9256115534b8ee5806b0caeed4 + languageName: node + linkType: hard + +"ansi-html@npm:^0.0.9": + version: 0.0.9 + resolution: "ansi-html@npm:0.0.9" + bin: + ansi-html: bin/ansi-html + checksum: 10c0/4a5de9802fb50193e32b51a9ea48dc0d7e4436b860cb819d7110c62f2bfb1410288e1a2f9a848269f5eab8f903797a7f0309fe4c552f92a92b61a5b759ed52bd + languageName: node + linkType: hard + "ansi-regex@npm:^2.0.0": version: 2.1.1 resolution: "ansi-regex@npm:2.1.1" @@ -9685,7 +12732,7 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:^5.3.0": +"aria-query@npm:5.3.0, aria-query@npm:^5.3.0": version: 5.3.0 resolution: "aria-query@npm:5.3.0" dependencies: @@ -9694,6 +12741,13 @@ __metadata: languageName: node linkType: hard +"aria-query@npm:^5.0.0": + version: 5.3.1 + resolution: "aria-query@npm:5.3.1" + checksum: 10c0/2e9aca7d92d20b8539ee58fa1d29ba07e2269a68da8d27e9830d3cb816d49bb01648610ac3f2e365a8dedbf00168ac18c017ea49c512fbe2537a0b17184a458b + languageName: node + linkType: hard + "array-buffer-byte-length@npm:^1.0.1": version: 1.0.1 resolution: "array-buffer-byte-length@npm:1.0.1" @@ -9704,6 +12758,13 @@ __metadata: languageName: node linkType: hard +"array-flatten@npm:1.1.1": + version: 1.1.1 + resolution: "array-flatten@npm:1.1.1" + checksum: 10c0/806966c8abb2f858b08f5324d9d18d7737480610f3bd5d3498aaae6eb5efdc501a884ba019c9b4a8f02ff67002058749d05548fd42fa8643f02c9c7f22198b91 + languageName: node + linkType: hard + "array-ify@npm:^1.0.0": version: 1.0.0 resolution: "array-ify@npm:1.0.0" @@ -9851,6 +12912,17 @@ __metadata: languageName: node linkType: hard +"asn1.js@npm:^4.10.1": + version: 4.10.1 + resolution: "asn1.js@npm:4.10.1" + dependencies: + bn.js: "npm:^4.0.0" + inherits: "npm:^2.0.1" + minimalistic-assert: "npm:^1.0.0" + checksum: 10c0/afa7f3ab9e31566c80175a75b182e5dba50589dcc738aa485be42bdd787e2a07246a4b034d481861123cbe646a7656f318f4f1cad2e9e5e808a210d5d6feaa88 + languageName: node + linkType: hard + "asn1@npm:~0.2.3": version: 0.2.6 resolution: "asn1@npm:0.2.6" @@ -9879,6 +12951,13 @@ __metadata: languageName: node linkType: hard +"assertion-error@npm:^2.0.1": + version: 2.0.1 + resolution: "assertion-error@npm:2.0.1" + checksum: 10c0/bbbcb117ac6480138f8c93cf7f535614282dea9dc828f540cdece85e3c665e8f78958b96afac52f29ff883c72638e6a87d469ecc9fe5bc902df03ed24a55dba8 + languageName: node + linkType: hard + "ast-types-flow@npm:^0.0.8": version: 0.0.8 resolution: "ast-types-flow@npm:0.0.8" @@ -9886,6 +12965,15 @@ __metadata: languageName: node linkType: hard +"ast-types@npm:^0.16.1": + version: 0.16.1 + resolution: "ast-types@npm:0.16.1" + dependencies: + tslib: "npm:^2.0.1" + checksum: 10c0/abcc49e42eb921a7ebc013d5bec1154651fb6dbc3f497541d488859e681256901b2990b954d530ba0da4d0851271d484f7057d5eff5e07cb73e8b10909f711bf + languageName: node + linkType: hard + "astral-regex@npm:^2.0.0": version: 2.0.0 resolution: "astral-regex@npm:2.0.0" @@ -9958,6 +13046,13 @@ __metadata: languageName: node linkType: hard +"axe-core@npm:^4.2.0": + version: 4.10.0 + resolution: "axe-core@npm:4.10.0" + checksum: 10c0/732c171d48caaace5e784895c4dacb8ca6155e9d98045138ebe3952f78457dd05b92c57d05b41ce2a570aff87dbd0471e8398d2c0f6ebe79617b746c8f658998 + languageName: node + linkType: hard + "axios@npm:^0.21.1": version: 0.21.4 resolution: "axios@npm:0.21.4" @@ -9994,7 +13089,20 @@ __metadata: languageName: node linkType: hard -"babel-plugin-macros@npm:^3.0.1": +"babel-loader@npm:^9.1.3": + version: 9.2.1 + resolution: "babel-loader@npm:9.2.1" + dependencies: + find-cache-dir: "npm:^4.0.0" + schema-utils: "npm:^4.0.0" + peerDependencies: + "@babel/core": ^7.12.0 + webpack: ">=5" + checksum: 10c0/efb82faff4c7c27e9c15bb28bf11c73200e61cf365118a9514e8d74dd489d0afc2a0d5aaa62cb4254eefc2ab631579224d95a03fd245410f28ea75e24de54ba4 + languageName: node + linkType: hard + +"babel-plugin-macros@npm:^3.0.1, babel-plugin-macros@npm:^3.1.0": version: 3.1.0 resolution: "babel-plugin-macros@npm:3.1.0" dependencies: @@ -10005,6 +13113,19 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-corejs2@npm:^0.4.10": + version: 0.4.11 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.11" + dependencies: + "@babel/compat-data": "npm:^7.22.6" + "@babel/helper-define-polyfill-provider": "npm:^0.6.2" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 10c0/b2217bc8d5976cf8142453ed44daabf0b2e0e75518f24eac83b54a8892e87a88f1bd9089daa92fd25df979ecd0acfd29b6bc28c4182c1c46344cee15ef9bce84 + languageName: node + linkType: hard + "babel-plugin-polyfill-corejs2@npm:^0.4.6": version: 0.4.6 resolution: "babel-plugin-polyfill-corejs2@npm:0.4.6" @@ -10018,6 +13139,18 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-corejs3@npm:^0.10.6": + version: 0.10.6 + resolution: "babel-plugin-polyfill-corejs3@npm:0.10.6" + dependencies: + "@babel/helper-define-polyfill-provider": "npm:^0.6.2" + core-js-compat: "npm:^3.38.0" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 10c0/3a69220471b07722c2ae6537310bf26b772514e12b601398082965459c838be70a0ca70b0662f0737070654ff6207673391221d48599abb4a2b27765206d9f79 + languageName: node + linkType: hard + "babel-plugin-polyfill-corejs3@npm:^0.8.5": version: 0.8.6 resolution: "babel-plugin-polyfill-corejs3@npm:0.8.6" @@ -10041,6 +13174,17 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-regenerator@npm:^0.6.1": + version: 0.6.2 + resolution: "babel-plugin-polyfill-regenerator@npm:0.6.2" + dependencies: + "@babel/helper-define-polyfill-provider": "npm:^0.6.2" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 10c0/bc541037cf7620bc84ddb75a1c0ce3288f90e7d2799c070a53f8a495c8c8ae0316447becb06f958dd25dcce2a2fce855d318ecfa48036a1ddb218d55aa38a744 + languageName: node + linkType: hard + "babel-plugin-styled-components@npm:>= 1.12.0": version: 2.1.4 resolution: "babel-plugin-styled-components@npm:2.1.4" @@ -10128,6 +13272,15 @@ __metadata: languageName: node linkType: hard +"better-opn@npm:^3.0.2": + version: 3.0.2 + resolution: "better-opn@npm:3.0.2" + dependencies: + open: "npm:^8.0.4" + checksum: 10c0/911ef25d44da75aabfd2444ce7a4294a8000ebcac73068c04a60298b0f7c7506b60421aa4cd02ac82502fb42baaff7e4892234b51e6923eded44c5a11185f2f5 + languageName: node + linkType: hard + "big-integer@npm:1.6.36": version: 1.6.36 resolution: "big-integer@npm:1.6.36" @@ -10256,7 +13409,7 @@ __metadata: languageName: node linkType: hard -"bn.js@npm:^4.11.0, bn.js@npm:^4.11.8, bn.js@npm:^4.11.9": +"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.0, bn.js@npm:^4.11.8, bn.js@npm:^4.11.9": version: 4.12.0 resolution: "bn.js@npm:4.12.0" checksum: 10c0/9736aaa317421b6b3ed038ff3d4491935a01419ac2d83ddcfebc5717385295fcfcf0c57311d90fe49926d0abbd7a9dbefdd8861e6129939177f7e67ebc645b21 @@ -10282,6 +13435,26 @@ __metadata: languageName: node linkType: hard +"body-parser@npm:1.20.3": + version: 1.20.3 + resolution: "body-parser@npm:1.20.3" + dependencies: + bytes: "npm:3.1.2" + content-type: "npm:~1.0.5" + debug: "npm:2.6.9" + depd: "npm:2.0.0" + destroy: "npm:1.2.0" + http-errors: "npm:2.0.0" + iconv-lite: "npm:0.4.24" + on-finished: "npm:2.4.1" + qs: "npm:6.13.0" + raw-body: "npm:2.5.2" + type-is: "npm:~1.6.18" + unpipe: "npm:1.0.0" + checksum: 10c0/0a9a93b7518f222885498dcecaad528cf010dd109b071bf471c93def4bfe30958b83e03496eb9c1ad4896db543d999bb62be1a3087294162a88cfa1b42c16310 + languageName: node + linkType: hard + "boolbase@npm:^1.0.0": version: 1.0.0 resolution: "boolbase@npm:1.0.0" @@ -10360,13 +13533,20 @@ __metadata: languageName: node linkType: hard -"brorand@npm:^1.0.5, brorand@npm:^1.1.0": +"brorand@npm:^1.0.1, brorand@npm:^1.0.5, brorand@npm:^1.1.0": version: 1.1.0 resolution: "brorand@npm:1.1.0" checksum: 10c0/6f366d7c4990f82c366e3878492ba9a372a73163c09871e80d82fb4ae0d23f9f8924cb8a662330308206e6b3b76ba1d528b4601c9ef73c2166b440b2ea3b7571 languageName: node linkType: hard +"browser-assert@npm:^1.2.1": + version: 1.2.1 + resolution: "browser-assert@npm:1.2.1" + checksum: 10c0/902abf999f92c9c951fdb6d7352c09eea9a84706258699655f7e7906e42daa06a1ae286398a755872740e05a6a71c43c5d1a0c0431d67a8cdb66e5d859a3fc0c + languageName: node + linkType: hard + "browser-stdout@npm:1.3.1": version: 1.3.1 resolution: "browser-stdout@npm:1.3.1" @@ -10374,7 +13554,7 @@ __metadata: languageName: node linkType: hard -"browserify-aes@npm:^1.0.6, browserify-aes@npm:^1.2.0": +"browserify-aes@npm:^1.0.4, browserify-aes@npm:^1.0.6, browserify-aes@npm:^1.2.0": version: 1.2.0 resolution: "browserify-aes@npm:1.2.0" dependencies: @@ -10388,6 +13568,67 @@ __metadata: languageName: node linkType: hard +"browserify-cipher@npm:^1.0.0": + version: 1.0.1 + resolution: "browserify-cipher@npm:1.0.1" + dependencies: + browserify-aes: "npm:^1.0.4" + browserify-des: "npm:^1.0.0" + evp_bytestokey: "npm:^1.0.0" + checksum: 10c0/aa256dcb42bc53a67168bbc94ab85d243b0a3b56109dee3b51230b7d010d9b78985ffc1fb36e145c6e4db151f888076c1cfc207baf1525d3e375cbe8187fe27d + languageName: node + linkType: hard + +"browserify-des@npm:^1.0.0": + version: 1.0.2 + resolution: "browserify-des@npm:1.0.2" + dependencies: + cipher-base: "npm:^1.0.1" + des.js: "npm:^1.0.0" + inherits: "npm:^2.0.1" + safe-buffer: "npm:^5.1.2" + checksum: 10c0/943eb5d4045eff80a6cde5be4e5fbb1f2d5002126b5a4789c3c1aae3cdddb1eb92b00fb92277f512288e5c6af330730b1dbabcf7ce0923e749e151fcee5a074d + languageName: node + linkType: hard + +"browserify-rsa@npm:^4.0.0, browserify-rsa@npm:^4.1.0": + version: 4.1.1 + resolution: "browserify-rsa@npm:4.1.1" + dependencies: + bn.js: "npm:^5.2.1" + randombytes: "npm:^2.1.0" + safe-buffer: "npm:^5.2.1" + checksum: 10c0/b650ee1192e3d7f3d779edc06dd96ed8720362e72ac310c367b9d7fe35f7e8dbb983c1829142b2b3215458be8bf17c38adc7224920843024ed8cf39e19c513c0 + languageName: node + linkType: hard + +"browserify-sign@npm:^4.0.0": + version: 4.2.3 + resolution: "browserify-sign@npm:4.2.3" + dependencies: + bn.js: "npm:^5.2.1" + browserify-rsa: "npm:^4.1.0" + create-hash: "npm:^1.2.0" + create-hmac: "npm:^1.1.7" + elliptic: "npm:^6.5.5" + hash-base: "npm:~3.0" + inherits: "npm:^2.0.4" + parse-asn1: "npm:^5.1.7" + readable-stream: "npm:^2.3.8" + safe-buffer: "npm:^5.2.1" + checksum: 10c0/30c0eba3f5970a20866a4d3fbba2c5bd1928cd24f47faf995f913f1499214c6f3be14bb4d6ec1ab5c6cafb1eca9cb76ba1c2e1c04ed018370634d4e659c77216 + languageName: node + linkType: hard + +"browserify-zlib@npm:^0.2.0": + version: 0.2.0 + resolution: "browserify-zlib@npm:0.2.0" + dependencies: + pako: "npm:~1.0.5" + checksum: 10c0/9ab10b6dc732c6c5ec8ebcbe5cb7fe1467f97402c9b2140113f47b5f187b9438f93a8e065d8baf8b929323c18324fbf1105af479ee86d9d36cab7d7ef3424ad9 + languageName: node + linkType: hard + "browserslist@npm:^4.14.5": version: 4.21.5 resolution: "browserslist@npm:4.21.5" @@ -10402,6 +13643,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.21.10, browserslist@npm:^4.23.3, browserslist@npm:^4.24.0": + version: 4.24.0 + resolution: "browserslist@npm:4.24.0" + dependencies: + caniuse-lite: "npm:^1.0.30001663" + electron-to-chromium: "npm:^1.5.28" + node-releases: "npm:^2.0.18" + update-browserslist-db: "npm:^1.1.0" + bin: + browserslist: cli.js + checksum: 10c0/95e76ad522753c4c470427f6e3c8a4bb5478ff448841e22b3d3e53f89ecaf17b6984666d6c7e715c370f1e7fa0cf684f42e34e554236a8b2fab38ea76b9e4c52 + languageName: node + linkType: hard + "browserslist@npm:^4.21.9, browserslist@npm:^4.22.1": version: 4.22.1 resolution: "browserslist@npm:4.22.1" @@ -10540,6 +13795,13 @@ __metadata: languageName: node linkType: hard +"builtin-status-codes@npm:^3.0.0": + version: 3.0.0 + resolution: "builtin-status-codes@npm:3.0.0" + checksum: 10c0/c37bbba11a34c4431e56bd681b175512e99147defbe2358318d8152b3a01df7bf25e0305873947e5b350073d5ef41a364a22b37e48f1fb6d2fe6d5286a0f348c + languageName: node + linkType: hard + "busboy@npm:1.6.0": version: 1.6.0 resolution: "busboy@npm:1.6.0" @@ -10622,6 +13884,16 @@ __metadata: languageName: node linkType: hard +"camel-case@npm:^4.1.2": + version: 4.1.2 + resolution: "camel-case@npm:4.1.2" + dependencies: + pascal-case: "npm:^3.1.2" + tslib: "npm:^2.0.3" + checksum: 10c0/bf9eefaee1f20edbed2e9a442a226793bc72336e2b99e5e48c6b7252b6f70b080fc46d8246ab91939e2af91c36cdd422e0af35161e58dd089590f302f8f64c8a + languageName: node + linkType: hard + "camelcase@npm:^5.0.0": version: 5.3.1 resolution: "camelcase@npm:5.3.1" @@ -10664,6 +13936,20 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001663": + version: 1.0.30001668 + resolution: "caniuse-lite@npm:1.0.30001668" + checksum: 10c0/247b3200aeec55038f3a11f3e6ab66f656c54d30df7b01d8d447efaba9af96ad3e17128da2ddd42ddc9cb6c286bac65b634a20955b3cc6619be7ca4601fddc8e + languageName: node + linkType: hard + +"case-sensitive-paths-webpack-plugin@npm:^2.4.0": + version: 2.4.0 + resolution: "case-sensitive-paths-webpack-plugin@npm:2.4.0" + checksum: 10c0/310dab619b661a7fa44ed773870be6d6d7373faff6953ad92720f9553e2579e46dda5b9a79eae6d25ff3733cc15aa466b96e5811af16213f23c115aa220b4ab4 + languageName: node + linkType: hard + "caseless@npm:~0.12.0": version: 0.12.0 resolution: "caseless@npm:0.12.0" @@ -10689,7 +13975,20 @@ __metadata: languageName: node linkType: hard -"chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.1.0": +"chai@npm:^5.1.1": + version: 5.1.1 + resolution: "chai@npm:5.1.1" + dependencies: + assertion-error: "npm:^2.0.1" + check-error: "npm:^2.1.1" + deep-eql: "npm:^5.0.1" + loupe: "npm:^3.1.0" + pathval: "npm:^2.0.0" + checksum: 10c0/e7f00e5881e3d5224f08fe63966ed6566bd9fdde175863c7c16dd5240416de9b34c4a0dd925f4fd64ad56256ca6507d32cf6131c49e1db65c62578eb31d4566c + languageName: node + linkType: hard + +"chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.2": version: 4.1.2 resolution: "chalk@npm:4.1.2" dependencies: @@ -10723,6 +14022,16 @@ __metadata: languageName: node linkType: hard +"chalk@npm:^3.0.0": + version: 3.0.0 + resolution: "chalk@npm:3.0.0" + dependencies: + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 10c0/ee650b0a065b3d7a6fda258e75d3a86fc8e4effa55871da730a9e42ccb035bf5fd203525e5a1ef45ec2582ecc4f65b47eb11357c526b84dd29a14fb162c414d2 + languageName: node + linkType: hard + "chalk@npm:^5.3.0, chalk@npm:~5.3.0": version: 5.3.0 resolution: "chalk@npm:5.3.0" @@ -10737,6 +14046,13 @@ __metadata: languageName: node linkType: hard +"check-error@npm:^2.1.1": + version: 2.1.1 + resolution: "check-error@npm:2.1.1" + checksum: 10c0/979f13eccab306cf1785fa10941a590b4e7ea9916ea2a4f8c87f0316fc3eab07eabefb6e587424ef0f88cbcd3805791f172ea739863ca3d7ce2afc54641c7f0e + languageName: node + linkType: hard + "check-more-types@npm:^2.24.0": version: 2.24.0 resolution: "check-more-types@npm:2.24.0" @@ -10805,6 +14121,25 @@ __metadata: languageName: node linkType: hard +"chromatic@npm:^11.4.0": + version: 11.10.2 + resolution: "chromatic@npm:11.10.2" + peerDependencies: + "@chromatic-com/cypress": ^0.*.* || ^1.0.0 + "@chromatic-com/playwright": ^0.*.* || ^1.0.0 + peerDependenciesMeta: + "@chromatic-com/cypress": + optional: true + "@chromatic-com/playwright": + optional: true + bin: + chroma: dist/bin.js + chromatic: dist/bin.js + chromatic-cli: dist/bin.js + checksum: 10c0/167633dc1d3d0309af4524e7603a887d3481bc6005a2c0cb955d9ca0e17223bd0335a01844835fe34f1823df308032d6b238bced644a755a3f7c265728ac5e41 + languageName: node + linkType: hard + "chrome-trace-event@npm:^1.0.2": version: 1.0.3 resolution: "chrome-trace-event@npm:1.0.3" @@ -10845,6 +14180,13 @@ __metadata: languageName: node linkType: hard +"cjs-module-lexer@npm:^1.2.3": + version: 1.4.1 + resolution: "cjs-module-lexer@npm:1.4.1" + checksum: 10c0/5a7d8279629c9ba8ccf38078c2fed75b7737973ced22b9b5a54180efa57fb2fe2bb7bec6aec55e3b8f3f5044f5d7b240347ad9bd285e7c3d0ee5b0a1d0504dfc + languageName: node + linkType: hard + "classnames@npm:^2.2.5": version: 2.3.2 resolution: "classnames@npm:2.3.2" @@ -10852,6 +14194,15 @@ __metadata: languageName: node linkType: hard +"clean-css@npm:^5.2.2": + version: 5.3.3 + resolution: "clean-css@npm:5.3.3" + dependencies: + source-map: "npm:~0.6.0" + checksum: 10c0/381de7523e23f3762eb180e327dcc0cedafaf8cb1cd8c26b7cc1fc56e0829a92e734729c4f955394d65ed72fb62f82d8baf78af34b33b8a7d41ebad2accdd6fb + languageName: node + linkType: hard + "clean-stack@npm:^2.0.0": version: 2.2.0 resolution: "clean-stack@npm:2.2.0" @@ -11012,6 +14363,13 @@ __metadata: languageName: node linkType: hard +"clsx@npm:^2.1.1": + version: 2.1.1 + resolution: "clsx@npm:2.1.1" + checksum: 10c0/c4c8eb865f8c82baab07e71bfa8897c73454881c4f99d6bc81585aecd7c441746c1399d08363dc096c550cceaf97bd4ce1e8854e1771e9998d9f94c4fe075839 + languageName: node + linkType: hard + "cluster-key-slot@npm:^1.1.0": version: 1.1.2 resolution: "cluster-key-slot@npm:1.1.2" @@ -11071,6 +14429,13 @@ __metadata: languageName: node linkType: hard +"colorette@npm:^2.0.10, colorette@npm:^2.0.20": + version: 2.0.20 + resolution: "colorette@npm:2.0.20" + checksum: 10c0/e94116ff33b0ff56f3b83b9ace895e5bf87c2a7a47b3401b8c3f3226e050d5ef76cf4072fb3325f9dc24d1698f9b730baf4e05eeaf861d74a1883073f4c98a40 + languageName: node + linkType: hard + "colorette@npm:^2.0.16": version: 2.0.16 resolution: "colorette@npm:2.0.16" @@ -11078,13 +14443,6 @@ __metadata: languageName: node linkType: hard -"colorette@npm:^2.0.20": - version: 2.0.20 - resolution: "colorette@npm:2.0.20" - checksum: 10c0/e94116ff33b0ff56f3b83b9ace895e5bf87c2a7a47b3401b8c3f3226e050d5ef76cf4072fb3325f9dc24d1698f9b730baf4e05eeaf861d74a1883073f4c98a40 - languageName: node - linkType: hard - "colors@npm:1.0.3": version: 1.0.3 resolution: "colors@npm:1.0.3" @@ -11136,7 +14494,7 @@ __metadata: languageName: node linkType: hard -"commander@npm:^8.1.0": +"commander@npm:^8.1.0, commander@npm:^8.3.0": version: 8.3.0 resolution: "commander@npm:8.3.0" checksum: 10c0/8b043bb8322ea1c39664a1598a95e0495bfe4ca2fad0d84a92d7d1d8d213e2a155b441d2470c8e08de7c4a28cf2bc6e169211c49e1b21d9f7edc6ae4d9356060 @@ -11150,6 +14508,13 @@ __metadata: languageName: node linkType: hard +"common-path-prefix@npm:^3.0.0": + version: 3.0.0 + resolution: "common-path-prefix@npm:3.0.0" + checksum: 10c0/c4a74294e1b1570f4a8ab435285d185a03976c323caa16359053e749db4fde44e3e6586c29cd051100335e11895767cbbd27ea389108e327d62f38daf4548fdb + languageName: node + linkType: hard + "common-tags@npm:^1.4.0, common-tags@npm:^1.8.0": version: 1.8.2 resolution: "common-tags@npm:1.8.2" @@ -11157,6 +14522,13 @@ __metadata: languageName: node linkType: hard +"commondir@npm:^1.0.1": + version: 1.0.1 + resolution: "commondir@npm:1.0.1" + checksum: 10c0/33a124960e471c25ee19280c9ce31ccc19574b566dc514fe4f4ca4c34fa8b0b57cf437671f5de380e11353ea9426213fca17687dd2ef03134fea2dbc53809fd6 + languageName: node + linkType: hard + "compare-func@npm:^2.0.0": version: 2.0.0 resolution: "compare-func@npm:2.0.0" @@ -11181,6 +14553,36 @@ __metadata: languageName: node linkType: hard +"console-browserify@npm:^1.2.0": + version: 1.2.0 + resolution: "console-browserify@npm:1.2.0" + checksum: 10c0/89b99a53b7d6cee54e1e64fa6b1f7ac24b844b4019c5d39db298637e55c1f4ffa5c165457ad984864de1379df2c8e1886cbbdac85d9dbb6876a9f26c3106f226 + languageName: node + linkType: hard + +"constants-browserify@npm:^1.0.0": + version: 1.0.0 + resolution: "constants-browserify@npm:1.0.0" + checksum: 10c0/ab49b1d59a433ed77c964d90d19e08b2f77213fb823da4729c0baead55e3c597f8f97ebccfdfc47bd896d43854a117d114c849a6f659d9986420e97da0f83ac5 + languageName: node + linkType: hard + +"content-disposition@npm:0.5.4": + version: 0.5.4 + resolution: "content-disposition@npm:0.5.4" + dependencies: + safe-buffer: "npm:5.2.1" + checksum: 10c0/bac0316ebfeacb8f381b38285dc691c9939bf0a78b0b7c2d5758acadad242d04783cee5337ba7d12a565a19075af1b3c11c728e1e4946de73c6ff7ce45f3f1bb + languageName: node + linkType: hard + +"content-type@npm:~1.0.4, content-type@npm:~1.0.5": + version: 1.0.5 + resolution: "content-type@npm:1.0.5" + checksum: 10c0/b76ebed15c000aee4678c3707e0860cb6abd4e680a598c0a26e17f0bfae723ec9cc2802f0ff1bc6e4d80603719010431d2231018373d4dde10f9ccff9dadf5af + languageName: node + linkType: hard + "context@npm:^3.0.31": version: 3.0.31 resolution: "context@npm:3.0.31" @@ -11222,6 +14624,13 @@ __metadata: languageName: node linkType: hard +"convert-source-map@npm:^1.5.0, convert-source-map@npm:^1.7.0": + version: 1.9.0 + resolution: "convert-source-map@npm:1.9.0" + checksum: 10c0/281da55454bf8126cbc6625385928c43479f2060984180c42f3a86c8b8c12720a24eac260624a7d1e090004028d2dee78602330578ceec1a08e27cb8bb0a8a5b + languageName: node + linkType: hard + "convert-source-map@npm:^2.0.0": version: 2.0.0 resolution: "convert-source-map@npm:2.0.0" @@ -11236,6 +14645,20 @@ __metadata: languageName: node linkType: hard +"cookie-signature@npm:1.0.6": + version: 1.0.6 + resolution: "cookie-signature@npm:1.0.6" + checksum: 10c0/b36fd0d4e3fef8456915fcf7742e58fbfcc12a17a018e0eb9501c9d5ef6893b596466f03b0564b81af29ff2538fd0aa4b9d54fe5ccbfb4c90ea50ad29fe2d221 + languageName: node + linkType: hard + +"cookie@npm:0.6.0": + version: 0.6.0 + resolution: "cookie@npm:0.6.0" + checksum: 10c0/f2318b31af7a31b4ddb4a678d024514df5e705f9be5909a192d7f116cfb6d45cbacf96a473fa733faa95050e7cff26e7832bb3ef94751592f1387b71c8956686 + languageName: node + linkType: hard + "cookie@npm:^0.4.1": version: 0.4.2 resolution: "cookie@npm:0.4.2" @@ -11252,6 +14675,22 @@ __metadata: languageName: node linkType: hard +"core-js-compat@npm:^3.38.0, core-js-compat@npm:^3.38.1": + version: 3.38.1 + resolution: "core-js-compat@npm:3.38.1" + dependencies: + browserslist: "npm:^4.23.3" + checksum: 10c0/d8bc8a35591fc5fbf3e376d793f298ec41eb452619c7ef9de4ea59b74be06e9fda799e0dcbf9ba59880dae87e3b41fb191d744ffc988315642a1272bb9442b31 + languageName: node + linkType: hard + +"core-js-pure@npm:^3.23.3": + version: 3.38.1 + resolution: "core-js-pure@npm:3.38.1" + checksum: 10c0/466adbc0468b8c2a95b9bc49829492dece2cc6584d757c5b38555a26ed3d71f8364ac1ea3128a0a949e004e0e60206cc535ed84320982c3efb9a40c1785ddcc6 + languageName: node + linkType: hard + "core-util-is@npm:1.0.2": version: 1.0.2 resolution: "core-util-is@npm:1.0.2" @@ -11292,6 +14731,19 @@ __metadata: languageName: node linkType: hard +"cosmiconfig@npm:^7.0.1": + version: 7.1.0 + resolution: "cosmiconfig@npm:7.1.0" + dependencies: + "@types/parse-json": "npm:^4.0.0" + import-fresh: "npm:^3.2.1" + parse-json: "npm:^5.0.0" + path-type: "npm:^4.0.0" + yaml: "npm:^1.10.0" + checksum: 10c0/b923ff6af581638128e5f074a5450ba12c0300b71302398ea38dbeabd33bbcaa0245ca9adbedfcf284a07da50f99ede5658c80bb3e39e2ce770a99d28a21ef03 + languageName: node + linkType: hard + "cosmiconfig@npm:^8.0.0": version: 8.1.3 resolution: "cosmiconfig@npm:8.1.3" @@ -11350,6 +14802,16 @@ __metadata: languageName: node linkType: hard +"create-ecdh@npm:^4.0.0": + version: 4.0.4 + resolution: "create-ecdh@npm:4.0.4" + dependencies: + bn.js: "npm:^4.1.0" + elliptic: "npm:^6.5.3" + checksum: 10c0/77b11a51360fec9c3bce7a76288fc0deba4b9c838d5fb354b3e40c59194d23d66efe6355fd4b81df7580da0661e1334a235a2a5c040b7569ba97db428d466e7f + languageName: node + linkType: hard + "create-hash@npm:^1.1.0, create-hash@npm:^1.1.2, create-hash@npm:^1.2.0": version: 1.2.0 resolution: "create-hash@npm:1.2.0" @@ -11363,7 +14825,7 @@ __metadata: languageName: node linkType: hard -"create-hmac@npm:^1.1.4, create-hmac@npm:^1.1.7": +"create-hmac@npm:^1.1.0, create-hmac@npm:^1.1.4, create-hmac@npm:^1.1.7": version: 1.1.7 resolution: "create-hmac@npm:1.1.7" dependencies: @@ -11418,6 +14880,25 @@ __metadata: languageName: node linkType: hard +"crypto-browserify@npm:^3.12.0": + version: 3.12.0 + resolution: "crypto-browserify@npm:3.12.0" + dependencies: + browserify-cipher: "npm:^1.0.0" + browserify-sign: "npm:^4.0.0" + create-ecdh: "npm:^4.0.0" + create-hash: "npm:^1.1.0" + create-hmac: "npm:^1.1.0" + diffie-hellman: "npm:^5.0.0" + inherits: "npm:^2.0.1" + pbkdf2: "npm:^3.0.3" + public-encrypt: "npm:^4.0.0" + randombytes: "npm:^2.0.0" + randomfill: "npm:^1.0.3" + checksum: 10c0/0c20198886576050a6aa5ba6ae42f2b82778bfba1753d80c5e7a090836890dc372bdc780986b2568b4fb8ed2a91c958e61db1f0b6b1cc96af4bd03ffc298ba92 + languageName: node + linkType: hard + "crypto-es@npm:^1.2.2": version: 1.2.7 resolution: "crypto-es@npm:1.2.7" @@ -11432,6 +14913,43 @@ __metadata: languageName: node linkType: hard +"css-loader@npm:^6.7.1, css-loader@npm:^6.7.3": + version: 6.11.0 + resolution: "css-loader@npm:6.11.0" + dependencies: + icss-utils: "npm:^5.1.0" + postcss: "npm:^8.4.33" + postcss-modules-extract-imports: "npm:^3.1.0" + postcss-modules-local-by-default: "npm:^4.0.5" + postcss-modules-scope: "npm:^3.2.0" + postcss-modules-values: "npm:^4.0.0" + postcss-value-parser: "npm:^4.2.0" + semver: "npm:^7.5.4" + peerDependencies: + "@rspack/core": 0.x || 1.x + webpack: ^5.0.0 + peerDependenciesMeta: + "@rspack/core": + optional: true + webpack: + optional: true + checksum: 10c0/bb52434138085fed06a33e2ffbdae9ee9014ad23bf60f59d6b7ee67f28f26c6b1764024d3030bd19fd884d6ee6ee2224eaed64ad19eb18fbbb23d148d353a965 + languageName: node + linkType: hard + +"css-select@npm:^4.1.3": + version: 4.3.0 + resolution: "css-select@npm:4.3.0" + dependencies: + boolbase: "npm:^1.0.0" + css-what: "npm:^6.0.1" + domhandler: "npm:^4.3.1" + domutils: "npm:^2.8.0" + nth-check: "npm:^2.0.1" + checksum: 10c0/a489d8e5628e61063d5a8fe0fa1cc7ae2478cb334a388a354e91cf2908154be97eac9fa7ed4dffe87a3e06cf6fcaa6016553115335c4fd3377e13dac7bd5a8e1 + languageName: node + linkType: hard + "css-select@npm:^5.1.0": version: 5.1.0 resolution: "css-select@npm:5.1.0" @@ -11483,13 +15001,29 @@ __metadata: languageName: node linkType: hard -"css-what@npm:^6.1.0": +"css-what@npm:^6.0.1, css-what@npm:^6.1.0": version: 6.1.0 resolution: "css-what@npm:6.1.0" checksum: 10c0/a09f5a6b14ba8dcf57ae9a59474722e80f20406c53a61e9aedb0eedc693b135113ffe2983f4efc4b5065ae639442e9ae88df24941ef159c218b231011d733746 languageName: node linkType: hard +"css.escape@npm:^1.5.1": + version: 1.5.1 + resolution: "css.escape@npm:1.5.1" + checksum: 10c0/5e09035e5bf6c2c422b40c6df2eb1529657a17df37fda5d0433d722609527ab98090baf25b13970ca754079a0f3161dd3dfc0e743563ded8cfa0749d861c1525 + languageName: node + linkType: hard + +"cssesc@npm:^3.0.0": + version: 3.0.0 + resolution: "cssesc@npm:3.0.0" + bin: + cssesc: bin/cssesc + checksum: 10c0/6bcfd898662671be15ae7827120472c5667afb3d7429f1f917737f3bf84c4176003228131b643ae74543f17a394446247df090c597bb9a728cce298606ed0aa7 + languageName: node + linkType: hard + "csso@npm:5.0.5": version: 5.0.5 resolution: "csso@npm:5.0.5" @@ -11506,6 +15040,13 @@ __metadata: languageName: node linkType: hard +"csstype@npm:^3.1.3": + version: 3.1.3 + resolution: "csstype@npm:3.1.3" + checksum: 10c0/80c089d6f7e0c5b2bd83cf0539ab41474198579584fa10d86d0cafe0642202343cbc119e076a0b1aece191989477081415d66c9fefbf3c957fc2fc4b7009f248 + languageName: node + linkType: hard + "curve-frontend@workspace:.": version: 0.0.0-use.local resolution: "curve-frontend@workspace:." @@ -11549,6 +15090,38 @@ __metadata: languageName: unknown linkType: soft +"curve-ui-kit@workspace:packages/curve-ui-kit": + version: 0.0.0-use.local + resolution: "curve-ui-kit@workspace:packages/curve-ui-kit" + dependencies: + "@chromatic-com/storybook": "npm:^2.0.2" + "@emotion/react": "npm:^11.13.3" + "@emotion/styled": "npm:^11.13.0" + "@mui/material": "npm:^6.1.4" + "@mui/utils": "npm:^6.1.4" + "@storybook/addon-a11y": "npm:^8.3.5" + "@storybook/addon-docs": "npm:^8.3.5" + "@storybook/addon-essentials": "npm:^8.3.5" + "@storybook/addon-interactions": "npm:^8.3.5" + "@storybook/addon-themes": "npm:^8.3.5" + "@storybook/blocks": "npm:^8.3.5" + "@storybook/nextjs": "npm:^8.3.5" + "@storybook/react": "npm:^8.3.5" + "@storybook/test": "npm:^8.3.5" + "@types/react": "npm:*" + "@types/react-dom": "npm:*" + ajv: "npm:^8.17.1" + prop-types: "npm:^15.8.1" + react-docgen-typescript: "npm:^2.2.2" + storybook: "npm:^8.3.5" + tsconfig: "npm:*" + type-fest: "npm:^4.26.1" + peerDependencies: + react: "*" + react-dom: "*" + languageName: unknown + linkType: soft + "cypress@npm:*, cypress@npm:^13.9.0": version: 13.10.0 resolution: "cypress@npm:13.10.0" @@ -11783,6 +15356,15 @@ __metadata: languageName: node linkType: hard +"debug@npm:2.6.9": + version: 2.6.9 + resolution: "debug@npm:2.6.9" + dependencies: + ms: "npm:2.0.0" + checksum: 10c0/121908fb839f7801180b69a7e218a40b5a0b718813b886b7d6bdb82001b931c938e2941d1e4450f33a1b1df1da653f5f7a0440c197f29fbf8a6e9d45ff6ef589 + languageName: node + linkType: hard + "debug@npm:4, debug@npm:4.3.4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" @@ -11872,6 +15454,20 @@ __metadata: languageName: node linkType: hard +"dedent@npm:^0.7.0": + version: 0.7.0 + resolution: "dedent@npm:0.7.0" + checksum: 10c0/7c3aa00ddfe3e5fcd477958e156156a5137e3bb6ff1493ca05edff4decf29a90a057974cc77e75951f8eb801c1816cb45aea1f52d628cdd000b82b36ab839d1b + languageName: node + linkType: hard + +"deep-eql@npm:^5.0.1": + version: 5.0.2 + resolution: "deep-eql@npm:5.0.2" + checksum: 10c0/7102cf3b7bb719c6b9c0db2e19bf0aa9318d141581befe8c7ce8ccd39af9eaa4346e5e05adef7f9bd7015da0f13a3a25dcfe306ef79dc8668aedbecb658dd247 + languageName: node + linkType: hard + "deep-extend@npm:^0.6.0": version: 0.6.0 resolution: "deep-extend@npm:0.6.0" @@ -11983,13 +15579,23 @@ __metadata: languageName: node linkType: hard -"dequal@npm:^2.0.3": +"dequal@npm:^2.0.2, dequal@npm:^2.0.3": version: 2.0.3 resolution: "dequal@npm:2.0.3" checksum: 10c0/f98860cdf58b64991ae10205137c0e97d384c3a4edc7f807603887b7c4b850af1224a33d88012009f150861cbee4fa2d322c4cc04b9313bee312e47f6ecaa888 languageName: node linkType: hard +"des.js@npm:^1.0.0": + version: 1.1.0 + resolution: "des.js@npm:1.1.0" + dependencies: + inherits: "npm:^2.0.1" + minimalistic-assert: "npm:^1.0.0" + checksum: 10c0/671354943ad67493e49eb4c555480ab153edd7cee3a51c658082fcde539d2690ed2a4a0b5d1f401f9cde822edf3939a6afb2585f32c091f2d3a1b1665cd45236 + languageName: node + linkType: hard + "destr@npm:^2.0.1, destr@npm:^2.0.2": version: 2.0.2 resolution: "destr@npm:2.0.2" @@ -11997,6 +15603,13 @@ __metadata: languageName: node linkType: hard +"destroy@npm:1.2.0": + version: 1.2.0 + resolution: "destroy@npm:1.2.0" + checksum: 10c0/bd7633942f57418f5a3b80d5cb53898127bcf53e24cdf5d5f4396be471417671f0fee48a4ebe9a1e9defbde2a31280011af58a57e090ff822f589b443ed4e643 + languageName: node + linkType: hard + "detect-browser@npm:5.2.0": version: 5.2.0 resolution: "detect-browser@npm:5.2.0" @@ -12027,6 +15640,13 @@ __metadata: languageName: node linkType: hard +"detect-libc@npm:^2.0.3": + version: 2.0.3 + resolution: "detect-libc@npm:2.0.3" + checksum: 10c0/88095bda8f90220c95f162bf92cad70bd0e424913e655c20578600e35b91edc261af27531cf160a331e185c0ced93944bc7e09939143225f56312d7fd800fdb7 + languageName: node + linkType: hard + "diff@npm:5.0.0": version: 5.0.0 resolution: "diff@npm:5.0.0" @@ -12034,6 +15654,17 @@ __metadata: languageName: node linkType: hard +"diffie-hellman@npm:^5.0.0": + version: 5.0.3 + resolution: "diffie-hellman@npm:5.0.3" + dependencies: + bn.js: "npm:^4.1.0" + miller-rabin: "npm:^4.0.0" + randombytes: "npm:^2.0.0" + checksum: 10c0/ce53ccafa9ca544b7fc29b08a626e23a9b6562efc2a98559a0c97b4718937cebaa9b5d7d0a05032cc9c1435e9b3c1532b9e9bf2e0ede868525922807ad6e1ecf + languageName: node + linkType: hard + "dijkstrajs@npm:^1.0.1": version: 1.0.2 resolution: "dijkstrajs@npm:1.0.2" @@ -12075,6 +15706,29 @@ __metadata: languageName: node linkType: hard +"dom-accessibility-api@npm:^0.5.9": + version: 0.5.16 + resolution: "dom-accessibility-api@npm:0.5.16" + checksum: 10c0/b2c2eda4fae568977cdac27a9f0c001edf4f95a6a6191dfa611e3721db2478d1badc01db5bb4fa8a848aeee13e442a6c2a4386d65ec65a1436f24715a2f8d053 + languageName: node + linkType: hard + +"dom-accessibility-api@npm:^0.6.3": + version: 0.6.3 + resolution: "dom-accessibility-api@npm:0.6.3" + checksum: 10c0/10bee5aa514b2a9a37c87cd81268db607a2e933a050074abc2f6fa3da9080ebed206a320cbc123567f2c3087d22292853bdfdceaffdd4334ffe2af9510b29360 + languageName: node + linkType: hard + +"dom-converter@npm:^0.2.0": + version: 0.2.0 + resolution: "dom-converter@npm:0.2.0" + dependencies: + utila: "npm:~0.4" + checksum: 10c0/e96aa63bd8c6ee3cd9ce19c3aecfc2c42e50a460e8087114794d4f5ecf3a4f052b34ea3bf2d73b5d80b4da619073b49905e6d7d788ceb7814ca4c29be5354a11 + languageName: node + linkType: hard + "dom-helpers@npm:^3.4.0": version: 3.4.0 resolution: "dom-helpers@npm:3.4.0" @@ -12084,6 +15738,27 @@ __metadata: languageName: node linkType: hard +"dom-helpers@npm:^5.0.1": + version: 5.2.1 + resolution: "dom-helpers@npm:5.2.1" + dependencies: + "@babel/runtime": "npm:^7.8.7" + csstype: "npm:^3.0.2" + checksum: 10c0/f735074d66dd759b36b158fa26e9d00c9388ee0e8c9b16af941c38f014a37fc80782de83afefd621681b19ac0501034b4f1c4a3bff5caa1b8667f0212b5e124c + languageName: node + linkType: hard + +"dom-serializer@npm:^1.0.1": + version: 1.4.1 + resolution: "dom-serializer@npm:1.4.1" + dependencies: + domelementtype: "npm:^2.0.1" + domhandler: "npm:^4.2.0" + entities: "npm:^2.0.0" + checksum: 10c0/67d775fa1ea3de52035c98168ddcd59418356943b5eccb80e3c8b3da53adb8e37edb2cc2f885802b7b1765bf5022aec21dfc32910d7f9e6de4c3148f095ab5e0 + languageName: node + linkType: hard + "dom-serializer@npm:^2.0.0": version: 2.0.0 resolution: "dom-serializer@npm:2.0.0" @@ -12095,13 +15770,29 @@ __metadata: languageName: node linkType: hard -"domelementtype@npm:^2.3.0": +"domain-browser@npm:^4.22.0": + version: 4.23.0 + resolution: "domain-browser@npm:4.23.0" + checksum: 10c0/dfcc6ba070a2c968a4d922e7d99ef440d1076812af0d983404aadf64729f746bb4a0ad2c5e73ccd5d9cf41bc79037f2a1e4a915bdf33d07e0d77f487b635b5b2 + languageName: node + linkType: hard + +"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0, domelementtype@npm:^2.3.0": version: 2.3.0 resolution: "domelementtype@npm:2.3.0" checksum: 10c0/686f5a9ef0fff078c1412c05db73a0dce096190036f33e400a07e2a4518e9f56b1e324f5c576a0a747ef0e75b5d985c040b0d51945ce780c0dd3c625a18cd8c9 languageName: node linkType: hard +"domhandler@npm:^4.0.0, domhandler@npm:^4.2.0, domhandler@npm:^4.3.1": + version: 4.3.1 + resolution: "domhandler@npm:4.3.1" + dependencies: + domelementtype: "npm:^2.2.0" + checksum: 10c0/5c199c7468cb052a8b5ab80b13528f0db3d794c64fc050ba793b574e158e67c93f8336e87fd81e9d5ee43b0e04aea4d8b93ed7be4899cb726a1601b3ba18538b + languageName: node + linkType: hard + "domhandler@npm:^5.0.2, domhandler@npm:^5.0.3": version: 5.0.3 resolution: "domhandler@npm:5.0.3" @@ -12111,6 +15802,17 @@ __metadata: languageName: node linkType: hard +"domutils@npm:^2.5.2, domutils@npm:^2.8.0": + version: 2.8.0 + resolution: "domutils@npm:2.8.0" + dependencies: + dom-serializer: "npm:^1.0.1" + domelementtype: "npm:^2.2.0" + domhandler: "npm:^4.2.0" + checksum: 10c0/d58e2ae01922f0dd55894e61d18119924d88091837887bf1438f2327f32c65eb76426bd9384f81e7d6dcfb048e0f83c19b222ad7101176ad68cdc9c695b563db + languageName: node + linkType: hard + "domutils@npm:^3.0.1": version: 3.1.0 resolution: "domutils@npm:3.1.0" @@ -12239,6 +15941,13 @@ __metadata: languageName: node linkType: hard +"ee-first@npm:1.1.1": + version: 1.1.1 + resolution: "ee-first@npm:1.1.1" + checksum: 10c0/b5bb125ee93161bc16bfe6e56c6b04de5ad2aa44234d8f644813cc95d861a6910903132b05093706de2b706599367c4130eb6d170f6b46895686b95f87d017b7 + languageName: node + linkType: hard + "electron-to-chromium@npm:^1.4.284": version: 1.4.404 resolution: "electron-to-chromium@npm:1.4.404" @@ -12253,6 +15962,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.5.28": + version: 1.5.37 + resolution: "electron-to-chromium@npm:1.5.37" + checksum: 10c0/c71746968afd150aaf073478975f40712b18d4d6f6717d520bf1839b1f28464397d9a50ff81a1bb5109d6be75b4506c6a425baa9225a3475afe1d02f4ba1ffe1 + languageName: node + linkType: hard + "electron-to-chromium@npm:^1.5.4": version: 1.5.19 resolution: "electron-to-chromium@npm:1.5.19" @@ -12275,6 +15991,21 @@ __metadata: languageName: node linkType: hard +"elliptic@npm:^6.5.3, elliptic@npm:^6.5.5": + version: 6.5.7 + resolution: "elliptic@npm:6.5.7" + dependencies: + bn.js: "npm:^4.11.9" + brorand: "npm:^1.1.0" + hash.js: "npm:^1.0.0" + hmac-drbg: "npm:^1.0.1" + inherits: "npm:^2.0.4" + minimalistic-assert: "npm:^1.0.1" + minimalistic-crypto-utils: "npm:^1.0.1" + checksum: 10c0/799959b6c54ea3564e8961f35abdf8c77e37617f3051614b05ab1fb6a04ddb65bd1caa75ed1bae375b15dda312a0f79fed26ebe76ecf05c5a7af244152a601b8 + languageName: node + linkType: hard + "emoji-regex@npm:^10.3.0": version: 10.3.0 resolution: "emoji-regex@npm:10.3.0" @@ -12310,6 +16041,20 @@ __metadata: languageName: node linkType: hard +"encodeurl@npm:~1.0.2": + version: 1.0.2 + resolution: "encodeurl@npm:1.0.2" + checksum: 10c0/f6c2387379a9e7c1156c1c3d4f9cb7bb11cf16dd4c1682e1f6746512564b053df5781029b6061296832b59fb22f459dbe250386d217c2f6e203601abb2ee0bec + languageName: node + linkType: hard + +"encodeurl@npm:~2.0.0": + version: 2.0.0 + resolution: "encodeurl@npm:2.0.0" + checksum: 10c0/5d317306acb13e6590e28e27924c754163946a2480de11865c991a3a7eed4315cd3fba378b543ca145829569eefe9b899f3d84bb09870f675ae60bc924b01ceb + languageName: node + linkType: hard + "encoding@npm:^0.1.13": version: 0.1.13 resolution: "encoding@npm:0.1.13" @@ -12328,6 +16073,17 @@ __metadata: languageName: node linkType: hard +"endent@npm:^2.0.1": + version: 2.1.0 + resolution: "endent@npm:2.1.0" + dependencies: + dedent: "npm:^0.7.0" + fast-json-parse: "npm:^1.0.3" + objectorarray: "npm:^1.0.5" + checksum: 10c0/8cd6dae45e693ae2b2cbff2384348d3a5e2a06cc0396dddca8165e46bd2fd8d5394d44d338ba653bbfce4aead90eca1ec1abe7203843c84155c645d283b6b884 + languageName: node + linkType: hard + "engine.io-client@npm:~6.5.2": version: 6.5.4 resolution: "engine.io-client@npm:6.5.4" @@ -12368,7 +16124,7 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^5.15.0": +"enhanced-resolve@npm:^5.15.0, enhanced-resolve@npm:^5.17.1, enhanced-resolve@npm:^5.7.0": version: 5.17.1 resolution: "enhanced-resolve@npm:5.17.1" dependencies: @@ -12397,6 +16153,13 @@ __metadata: languageName: node linkType: hard +"entities@npm:^2.0.0": + version: 2.2.0 + resolution: "entities@npm:2.2.0" + checksum: 10c0/7fba6af1f116300d2ba1c5673fc218af1961b20908638391b4e1e6d5850314ee2ac3ec22d741b3a8060479911c99305164aed19b6254bde75e7e6b1b2c3f3aa3 + languageName: node + linkType: hard + "entities@npm:^4.2.0, entities@npm:^4.4.0": version: 4.5.0 resolution: "entities@npm:4.5.0" @@ -12434,6 +16197,15 @@ __metadata: languageName: node linkType: hard +"error-stack-parser@npm:^2.0.6": + version: 2.1.4 + resolution: "error-stack-parser@npm:2.1.4" + dependencies: + stackframe: "npm:^1.3.4" + checksum: 10c0/7679b780043c98b01fc546725484e0cfd3071bf5c906bbe358722972f04abf4fc3f0a77988017665bab367f6ef3fc2d0185f7528f45966b83e7c99c02d5509b9 + languageName: node + linkType: hard + "es-abstract@npm:^1.17.5, es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.1, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3": version: 1.23.3 resolution: "es-abstract@npm:1.23.3" @@ -12565,6 +16337,13 @@ __metadata: languageName: node linkType: hard +"es-module-lexer@npm:^1.5.0": + version: 1.5.4 + resolution: "es-module-lexer@npm:1.5.4" + checksum: 10c0/300a469488c2f22081df1e4c8398c78db92358496e639b0df7f89ac6455462aaf5d8893939087c1a1cbcbf20eed4610c70e0bcb8f3e4b0d80a5d2611c539408c + languageName: node + linkType: hard + "es-object-atoms@npm:^1.0.0": version: 1.0.0 resolution: "es-object-atoms@npm:1.0.0" @@ -12681,6 +16460,17 @@ __metadata: languageName: node linkType: hard +"esbuild-register@npm:^3.5.0": + version: 3.6.0 + resolution: "esbuild-register@npm:3.6.0" + dependencies: + debug: "npm:^4.3.4" + peerDependencies: + esbuild: ">=0.12 <1" + checksum: 10c0/77193b7ca32ba9f81b35ddf3d3d0138efb0b1429d71b39480cfee932e1189dd2e492bd32bf04a4d0bc3adfbc7ec7381ceb5ffd06efe35f3e70904f1f686566d5 + languageName: node + linkType: hard + "esbuild@npm:^0.17.10": version: 0.17.19 resolution: "esbuild@npm:0.17.19" @@ -12758,6 +16548,89 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0": + version: 0.23.1 + resolution: "esbuild@npm:0.23.1" + dependencies: + "@esbuild/aix-ppc64": "npm:0.23.1" + "@esbuild/android-arm": "npm:0.23.1" + "@esbuild/android-arm64": "npm:0.23.1" + "@esbuild/android-x64": "npm:0.23.1" + "@esbuild/darwin-arm64": "npm:0.23.1" + "@esbuild/darwin-x64": "npm:0.23.1" + "@esbuild/freebsd-arm64": "npm:0.23.1" + "@esbuild/freebsd-x64": "npm:0.23.1" + "@esbuild/linux-arm": "npm:0.23.1" + "@esbuild/linux-arm64": "npm:0.23.1" + "@esbuild/linux-ia32": "npm:0.23.1" + "@esbuild/linux-loong64": "npm:0.23.1" + "@esbuild/linux-mips64el": "npm:0.23.1" + "@esbuild/linux-ppc64": "npm:0.23.1" + "@esbuild/linux-riscv64": "npm:0.23.1" + "@esbuild/linux-s390x": "npm:0.23.1" + "@esbuild/linux-x64": "npm:0.23.1" + "@esbuild/netbsd-x64": "npm:0.23.1" + "@esbuild/openbsd-arm64": "npm:0.23.1" + "@esbuild/openbsd-x64": "npm:0.23.1" + "@esbuild/sunos-x64": "npm:0.23.1" + "@esbuild/win32-arm64": "npm:0.23.1" + "@esbuild/win32-ia32": "npm:0.23.1" + "@esbuild/win32-x64": "npm:0.23.1" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10c0/08c2ed1105cc3c5e3a24a771e35532fe6089dd24a39c10097899072cef4a99f20860e41e9294e000d86380f353b04d8c50af482483d7f69f5208481cce61eec7 + languageName: node + linkType: hard + "escalade@npm:^3.1.1": version: 3.1.1 resolution: "escalade@npm:3.1.1" @@ -12772,6 +16645,13 @@ __metadata: languageName: node linkType: hard +"escape-html@npm:~1.0.3": + version: 1.0.3 + resolution: "escape-html@npm:1.0.3" + checksum: 10c0/524c739d776b36c3d29fa08a22e03e8824e3b2fd57500e5e44ecf3cc4707c34c60f9ca0781c0e33d191f2991161504c295e98f68c78fe7baa6e57081ec6ac0a3 + languageName: node + linkType: hard + "escape-string-regexp@npm:2.0.0": version: 2.0.0 resolution: "escape-string-regexp@npm:2.0.0" @@ -12793,6 +16673,24 @@ __metadata: languageName: node linkType: hard +"escodegen@npm:^2.1.0": + version: 2.1.0 + resolution: "escodegen@npm:2.1.0" + dependencies: + esprima: "npm:^4.0.1" + estraverse: "npm:^5.2.0" + esutils: "npm:^2.0.2" + source-map: "npm:~0.6.1" + dependenciesMeta: + source-map: + optional: true + bin: + escodegen: bin/escodegen.js + esgenerate: bin/esgenerate.js + checksum: 10c0/e1450a1f75f67d35c061bf0d60888b15f62ab63aef9df1901cffc81cffbbb9e8b3de237c5502cf8613a017c1df3a3003881307c78835a1ab54d8c8d2206e01d3 + languageName: node + linkType: hard + "eslint-config-custom@npm:*, eslint-config-custom@workspace:packages/eslint-config-custom": version: 0.0.0-use.local resolution: "eslint-config-custom@workspace:packages/eslint-config-custom" @@ -13275,6 +17173,16 @@ __metadata: languageName: node linkType: hard +"esprima@npm:^4.0.1, esprima@npm:~4.0.0": + version: 4.0.1 + resolution: "esprima@npm:4.0.1" + bin: + esparse: ./bin/esparse.js + esvalidate: ./bin/esvalidate.js + checksum: 10c0/ad4bab9ead0808cf56501750fd9d3fb276f6b105f987707d059005d57e182d18a7c9ec7f3a01794ebddcca676773e42ca48a32d67a250c9d35e009ca613caba3 + languageName: node + linkType: hard + "esquery@npm:^1.4.0": version: 1.6.0 resolution: "esquery@npm:1.6.0" @@ -13323,6 +17231,15 @@ __metadata: languageName: node linkType: hard +"estree-walker@npm:^3.0.3": + version: 3.0.3 + resolution: "estree-walker@npm:3.0.3" + dependencies: + "@types/estree": "npm:^1.0.0" + checksum: 10c0/c12e3c2b2642d2bcae7d5aa495c60fa2f299160946535763969a1c83fc74518ffa9c2cd3a8b69ac56aea547df6a8aac25f729a342992ef0bbac5f1c73e78995d + languageName: node + linkType: hard + "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" @@ -13330,6 +17247,13 @@ __metadata: languageName: node linkType: hard +"etag@npm:~1.8.1": + version: 1.8.1 + resolution: "etag@npm:1.8.1" + checksum: 10c0/12be11ef62fb9817314d790089a0a49fae4e1b50594135dcb8076312b7d7e470884b5100d249b28c18581b7fd52f8b485689ffae22a11ed9ec17377a33a08f84 + languageName: node + linkType: hard + "eth-crypto@npm:^2.1.0": version: 2.3.0 resolution: "eth-crypto@npm:2.3.0" @@ -13701,7 +17625,7 @@ __metadata: languageName: node linkType: hard -"evp_bytestokey@npm:^1.0.3": +"evp_bytestokey@npm:^1.0.0, evp_bytestokey@npm:^1.0.3": version: 1.0.3 resolution: "evp_bytestokey@npm:1.0.3" dependencies: @@ -13793,6 +17717,45 @@ __metadata: languageName: node linkType: hard +"express@npm:^4.19.2": + version: 4.21.0 + resolution: "express@npm:4.21.0" + dependencies: + accepts: "npm:~1.3.8" + array-flatten: "npm:1.1.1" + body-parser: "npm:1.20.3" + content-disposition: "npm:0.5.4" + content-type: "npm:~1.0.4" + cookie: "npm:0.6.0" + cookie-signature: "npm:1.0.6" + debug: "npm:2.6.9" + depd: "npm:2.0.0" + encodeurl: "npm:~2.0.0" + escape-html: "npm:~1.0.3" + etag: "npm:~1.8.1" + finalhandler: "npm:1.3.1" + fresh: "npm:0.5.2" + http-errors: "npm:2.0.0" + merge-descriptors: "npm:1.0.3" + methods: "npm:~1.1.2" + on-finished: "npm:2.4.1" + parseurl: "npm:~1.3.3" + path-to-regexp: "npm:0.1.10" + proxy-addr: "npm:~2.0.7" + qs: "npm:6.13.0" + range-parser: "npm:~1.2.1" + safe-buffer: "npm:5.2.1" + send: "npm:0.19.0" + serve-static: "npm:1.16.2" + setprototypeof: "npm:1.2.0" + statuses: "npm:2.0.1" + type-is: "npm:~1.6.18" + utils-merge: "npm:1.0.1" + vary: "npm:~1.1.2" + checksum: 10c0/4cf7ca328f3fdeb720f30ccb2ea7708bfa7d345f9cc460b64a82bf1b2c91e5b5852ba15a9a11b2a165d6089acf83457fc477dc904d59cd71ed34c7a91762c6cc + languageName: node + linkType: hard + "ext@npm:^1.1.2": version: 1.5.0 resolution: "ext@npm:1.5.0" @@ -13932,6 +17895,13 @@ __metadata: languageName: node linkType: hard +"fast-json-parse@npm:^1.0.3": + version: 1.0.3 + resolution: "fast-json-parse@npm:1.0.3" + checksum: 10c0/2c58c7a0f7f1725c9da1272839f9bee3ccc13b77672b18ab4ac470c707999bca39828cd7e79b87c73017f21c3ddff37992d03fa2fd2da124d9bd06c1d02c9b7e + languageName: node + linkType: hard + "fast-json-stable-stringify@npm:^2.0.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" @@ -13967,6 +17937,13 @@ __metadata: languageName: node linkType: hard +"fast-uri@npm:^3.0.1": + version: 3.0.2 + resolution: "fast-uri@npm:3.0.2" + checksum: 10c0/8cdd3da7b4022a037d348d587d55caff74b7e4f862bbdd2cc35c1e6e3f97d0aedb567894d44c57ee8798d3192cceb97dcf41dbdabfa07dd2842a0474a6c6eeef + languageName: node + linkType: hard + "fastq@npm:^1.6.0": version: 1.13.0 resolution: "fastq@npm:1.13.0" @@ -14022,6 +17999,13 @@ __metadata: languageName: node linkType: hard +"filesize@npm:^10.0.12": + version: 10.1.6 + resolution: "filesize@npm:10.1.6" + checksum: 10c0/9a196d64da4e947b8c0d294be09a3dfa7a634434a1fc5fb3465f1c9acc1237ea0363f245ba6e24477ea612754d942bc964d86e0e500905a72e9e0e17ae1bbdbc + languageName: node + linkType: hard + "fill-range@npm:^7.0.1": version: 7.0.1 resolution: "fill-range@npm:7.0.1" @@ -14047,6 +18031,56 @@ __metadata: languageName: node linkType: hard +"filter-obj@npm:^2.0.2": + version: 2.0.2 + resolution: "filter-obj@npm:2.0.2" + checksum: 10c0/65899fb1151e16d3289c23e7d6c2a9276592de1e16ab8e14c29d225768273ac48a92d3be4182496a16d89a046cf24ebcbecef7fdac8c27c3c29feafc4fb9fdb3 + languageName: node + linkType: hard + +"finalhandler@npm:1.3.1": + version: 1.3.1 + resolution: "finalhandler@npm:1.3.1" + dependencies: + debug: "npm:2.6.9" + encodeurl: "npm:~2.0.0" + escape-html: "npm:~1.0.3" + on-finished: "npm:2.4.1" + parseurl: "npm:~1.3.3" + statuses: "npm:2.0.1" + unpipe: "npm:~1.0.0" + checksum: 10c0/d38035831865a49b5610206a3a9a9aae4e8523cbbcd01175d0480ffbf1278c47f11d89be3ca7f617ae6d94f29cf797546a4619cd84dd109009ef33f12f69019f + languageName: node + linkType: hard + +"find-cache-dir@npm:^3.3.1": + version: 3.3.2 + resolution: "find-cache-dir@npm:3.3.2" + dependencies: + commondir: "npm:^1.0.1" + make-dir: "npm:^3.0.2" + pkg-dir: "npm:^4.1.0" + checksum: 10c0/92747cda42bff47a0266b06014610981cfbb71f55d60f2c8216bc3108c83d9745507fb0b14ecf6ab71112bed29cd6fb1a137ee7436179ea36e11287e3159e587 + languageName: node + linkType: hard + +"find-cache-dir@npm:^4.0.0": + version: 4.0.0 + resolution: "find-cache-dir@npm:4.0.0" + dependencies: + common-path-prefix: "npm:^3.0.0" + pkg-dir: "npm:^7.0.0" + checksum: 10c0/0faa7956974726c8769671de696d24c643ca1e5b8f7a2401283caa9e07a5da093293e0a0f4bd18c920ec981d2ef945c7f5b946cde268dfc9077d833ad0293cff + languageName: node + linkType: hard + +"find-root@npm:^1.1.0": + version: 1.1.0 + resolution: "find-root@npm:1.1.0" + checksum: 10c0/1abc7f3bf2f8d78ff26d9e00ce9d0f7b32e5ff6d1da2857bcdf4746134c422282b091c672cde0572cac3840713487e0a7a636af9aa1b74cb11894b447a521efa + languageName: node + linkType: hard + "find-up@npm:5.0.0, find-up@npm:^5.0.0": version: 5.0.0 resolution: "find-up@npm:5.0.0" @@ -14075,7 +18109,7 @@ __metadata: languageName: node linkType: hard -"find-up@npm:^4.1.0": +"find-up@npm:^4.0.0, find-up@npm:^4.1.0": version: 4.1.0 resolution: "find-up@npm:4.1.0" dependencies: @@ -14085,6 +18119,16 @@ __metadata: languageName: node linkType: hard +"find-up@npm:^6.3.0": + version: 6.3.0 + resolution: "find-up@npm:6.3.0" + dependencies: + locate-path: "npm:^7.1.0" + path-exists: "npm:^5.0.0" + checksum: 10c0/07e0314362d316b2b13f7f11ea4692d5191e718ca3f7264110127520f3347996349bf9e16805abae3e196805814bc66ef4bff2b8904dc4a6476085fc9b0eba07 + languageName: node + linkType: hard + "find-up@npm:^7.0.0": version: 7.0.0 resolution: "find-up@npm:7.0.0" @@ -14175,6 +18219,29 @@ __metadata: languageName: node linkType: hard +"fork-ts-checker-webpack-plugin@npm:^8.0.0": + version: 8.0.0 + resolution: "fork-ts-checker-webpack-plugin@npm:8.0.0" + dependencies: + "@babel/code-frame": "npm:^7.16.7" + chalk: "npm:^4.1.2" + chokidar: "npm:^3.5.3" + cosmiconfig: "npm:^7.0.1" + deepmerge: "npm:^4.2.2" + fs-extra: "npm:^10.0.0" + memfs: "npm:^3.4.1" + minimatch: "npm:^3.0.4" + node-abort-controller: "npm:^3.0.1" + schema-utils: "npm:^3.1.1" + semver: "npm:^7.3.5" + tapable: "npm:^2.2.1" + peerDependencies: + typescript: ">3.6.0" + webpack: ^5.11.0 + checksum: 10c0/1a2bb9bbd3e943e3b3a45d7fa9e8383698f5fea1ba28f7d18c8372c804460c2f13af53f791360b973fddafd3e88de7af59082c3cb3375f4e7c3365cd85accedc + languageName: node + linkType: hard + "form-data@npm:^4.0.0": version: 4.0.0 resolution: "form-data@npm:4.0.0" @@ -14204,6 +18271,13 @@ __metadata: languageName: node linkType: hard +"forwarded@npm:0.2.0": + version: 0.2.0 + resolution: "forwarded@npm:0.2.0" + checksum: 10c0/9b67c3fac86acdbc9ae47ba1ddd5f2f81526fa4c8226863ede5600a3f7c7416ef451f6f1e240a3cc32d0fd79fcfe6beb08fd0da454f360032bde70bf80afbb33 + languageName: node + linkType: hard + "fp-ts@npm:1.19.3": version: 1.19.3 resolution: "fp-ts@npm:1.19.3" @@ -14218,6 +18292,13 @@ __metadata: languageName: node linkType: hard +"fresh@npm:0.5.2": + version: 0.5.2 + resolution: "fresh@npm:0.5.2" + checksum: 10c0/c6d27f3ed86cc5b601404822f31c900dd165ba63fff8152a3ef714e2012e7535027063bc67ded4cb5b3a49fa596495d46cacd9f47d6328459cf570f08b7d9e5a + languageName: node + linkType: hard + "fromentries@npm:^1.3.2": version: 1.3.2 resolution: "fromentries@npm:1.3.2" @@ -14232,6 +18313,28 @@ __metadata: languageName: node linkType: hard +"fs-extra@npm:^10.0.0": + version: 10.1.0 + resolution: "fs-extra@npm:10.1.0" + dependencies: + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 10c0/5f579466e7109719d162a9249abbeffe7f426eb133ea486e020b89bc6d67a741134076bf439983f2eb79276ceaf6bd7b7c1e43c3fd67fe889863e69072fb0a5e + languageName: node + linkType: hard + +"fs-extra@npm:^11.1.0": + version: 11.2.0 + resolution: "fs-extra@npm:11.2.0" + dependencies: + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 10c0/d77a9a9efe60532d2e790e938c81a02c1b24904ef7a3efb3990b835514465ba720e99a6ea56fd5e2db53b4695319b644d76d5a0e9988a2beef80aa7b1da63398 + languageName: node + linkType: hard + "fs-extra@npm:^7.0.1": version: 7.0.1 resolution: "fs-extra@npm:7.0.1" @@ -14273,6 +18376,13 @@ __metadata: languageName: node linkType: hard +"fs-monkey@npm:^1.0.4": + version: 1.0.6 + resolution: "fs-monkey@npm:1.0.6" + checksum: 10c0/6f2508e792a47e37b7eabd5afc79459c1ea72bce2a46007d2b7ed0bfc3a4d64af38975c6eb7e93edb69ac98bbb907c13ff1b1579b2cf52d3d02dbc0303fca79f + languageName: node + linkType: hard + "fs.realpath@npm:^1.0.0": version: 1.0.0 resolution: "fs.realpath@npm:1.0.0" @@ -14398,6 +18508,13 @@ __metadata: languageName: node linkType: hard +"get-func-name@npm:^2.0.1": + version: 2.0.2 + resolution: "get-func-name@npm:2.0.2" + checksum: 10c0/89830fd07623fa73429a711b9daecdb304386d237c71268007f788f113505ef1d4cc2d0b9680e072c5082490aec9df5d7758bf5ac6f1c37062855e8e3dc0b9df + languageName: node + linkType: hard + "get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.0, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3": version: 1.1.3 resolution: "get-intrinsic@npm:1.1.3" @@ -14529,6 +18646,13 @@ __metadata: languageName: node linkType: hard +"github-slugger@npm:^2.0.0": + version: 2.0.0 + resolution: "github-slugger@npm:2.0.0" + checksum: 10c0/21b912b6b1e48f1e5a50b2292b48df0ff6abeeb0691b161b3d93d84f4ae6b1acd6ae23702e914af7ea5d441c096453cf0f621b72d57893946618d21dd1a1c486 + languageName: node + linkType: hard + "glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.0, glob-parent@npm:~5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2" @@ -14707,7 +18831,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 @@ -14908,6 +19032,16 @@ __metadata: languageName: node linkType: hard +"hash-base@npm:~3.0": + version: 3.0.4 + resolution: "hash-base@npm:3.0.4" + dependencies: + inherits: "npm:^2.0.1" + safe-buffer: "npm:^5.0.1" + checksum: 10c0/a13357dccb3827f0bb0b56bf928da85c428dc8670f6e4a1c7265e4f1653ce02d69030b40fd01b0f1d218a995a066eea279cded9cec72d207b593bcdfe309c2f0 + languageName: node + linkType: hard + "hash.js@npm:1.1.7, hash.js@npm:^1.0.0, hash.js@npm:^1.0.3, hash.js@npm:^1.1.7": version: 1.1.7 resolution: "hash.js@npm:1.1.7" @@ -14927,6 +19061,33 @@ __metadata: languageName: node linkType: hard +"hast-util-heading-rank@npm:^3.0.0": + version: 3.0.0 + resolution: "hast-util-heading-rank@npm:3.0.0" + dependencies: + "@types/hast": "npm:^3.0.0" + checksum: 10c0/1879c84f629e73f1f13247ab349324355cd801363b44e3d46f763aa5c0ea3b42dcd47b46e5643a0502cf01a6b1fdb9208fd12852e44ca6c671b3e4bccf9369a1 + languageName: node + linkType: hard + +"hast-util-is-element@npm:^3.0.0": + version: 3.0.0 + resolution: "hast-util-is-element@npm:3.0.0" + dependencies: + "@types/hast": "npm:^3.0.0" + checksum: 10c0/f5361e4c9859c587ca8eb0d8343492f3077ccaa0f58a44cd09f35d5038f94d65152288dcd0c19336ef2c9491ec4d4e45fde2176b05293437021570aa0bc3613b + languageName: node + linkType: hard + +"hast-util-to-string@npm:^3.0.0": + version: 3.0.0 + resolution: "hast-util-to-string@npm:3.0.0" + dependencies: + "@types/hast": "npm:^3.0.0" + checksum: 10c0/649edd993cf244563ad86d861aa0863759a4fbec49c43b3d92240e42aa4b69f0c3332ddff9e80954bbd8756c86b0fddc20e97d281c6da59d00427f45da8dab68 + languageName: node + linkType: hard + "hdkey@npm:^2.0.1": version: 2.0.1 resolution: "hdkey@npm:2.0.1" @@ -14938,7 +19099,7 @@ __metadata: languageName: node linkType: hard -"he@npm:1.2.0": +"he@npm:1.2.0, he@npm:^1.2.0": version: 1.2.0 resolution: "he@npm:1.2.0" bin: @@ -14965,12 +19126,76 @@ __metadata: languageName: node linkType: hard -"hoist-non-react-statics@npm:^3.0.0, hoist-non-react-statics@npm:^3.3.0": +"hoist-non-react-statics@npm:^3.0.0, hoist-non-react-statics@npm:^3.3.0, hoist-non-react-statics@npm:^3.3.1": version: 3.3.2 resolution: "hoist-non-react-statics@npm:3.3.2" dependencies: - react-is: "npm:^16.7.0" - checksum: 10c0/fe0889169e845d738b59b64badf5e55fa3cf20454f9203d1eb088df322d49d4318df774828e789898dcb280e8a5521bb59b3203385662ca5e9218a6ca5820e74 + react-is: "npm:^16.7.0" + checksum: 10c0/fe0889169e845d738b59b64badf5e55fa3cf20454f9203d1eb088df322d49d4318df774828e789898dcb280e8a5521bb59b3203385662ca5e9218a6ca5820e74 + languageName: node + linkType: hard + +"html-entities@npm:^2.1.0": + version: 2.5.2 + resolution: "html-entities@npm:2.5.2" + checksum: 10c0/f20ffb4326606245c439c231de40a7c560607f639bf40ffbfb36b4c70729fd95d7964209045f1a4e62fe17f2364cef3d6e49b02ea09016f207fde51c2211e481 + languageName: node + linkType: hard + +"html-minifier-terser@npm:^6.0.2": + version: 6.1.0 + resolution: "html-minifier-terser@npm:6.1.0" + dependencies: + camel-case: "npm:^4.1.2" + clean-css: "npm:^5.2.2" + commander: "npm:^8.3.0" + he: "npm:^1.2.0" + param-case: "npm:^3.0.4" + relateurl: "npm:^0.2.7" + terser: "npm:^5.10.0" + bin: + html-minifier-terser: cli.js + checksum: 10c0/1aa4e4f01cf7149e3ac5ea84fb7a1adab86da40d38d77a6fff42852b5ee3daccb78b615df97264e3a6a5c33e57f0c77f471d607ca1e1debd1dab9b58286f4b5a + languageName: node + linkType: hard + +"html-tags@npm:^3.1.0": + version: 3.3.1 + resolution: "html-tags@npm:3.3.1" + checksum: 10c0/680165e12baa51bad7397452d247dbcc5a5c29dac0e6754b1187eee3bf26f514bc1907a431dd2f7eb56207611ae595ee76a0acc8eaa0d931e72c791dd6463d79 + languageName: node + linkType: hard + +"html-webpack-plugin@npm:^5.5.0": + version: 5.6.0 + resolution: "html-webpack-plugin@npm:5.6.0" + dependencies: + "@types/html-minifier-terser": "npm:^6.0.0" + html-minifier-terser: "npm:^6.0.2" + lodash: "npm:^4.17.21" + pretty-error: "npm:^4.0.0" + tapable: "npm:^2.0.0" + peerDependencies: + "@rspack/core": 0.x || 1.x + webpack: ^5.20.0 + peerDependenciesMeta: + "@rspack/core": + optional: true + webpack: + optional: true + checksum: 10c0/50d1a0f90d512463ea8d798985d91a7ccc9d5e461713dedb240125b2ff0671f58135dd9355f7969af341ff4725e73b2defbc0984cfdce930887a48506d970002 + languageName: node + linkType: hard + +"htmlparser2@npm:^6.1.0": + version: 6.1.0 + resolution: "htmlparser2@npm:6.1.0" + dependencies: + domelementtype: "npm:^2.0.1" + domhandler: "npm:^4.0.0" + domutils: "npm:^2.5.2" + entities: "npm:^2.0.0" + checksum: 10c0/3058499c95634f04dc66be8c2e0927cd86799413b2d6989d8ae542ca4dbf5fa948695d02c27d573acf44843af977aec6d9a7bdd0f6faa6b2d99e2a729b2a31b6 languageName: node linkType: hard @@ -15022,6 +19247,13 @@ __metadata: languageName: node linkType: hard +"https-browserify@npm:^1.0.0": + version: 1.0.0 + resolution: "https-browserify@npm:1.0.0" + checksum: 10c0/e17b6943bc24ea9b9a7da5714645d808670af75a425f29baffc3284962626efdc1eb3aa9bbffaa6e64028a6ad98af5b09fabcb454a8f918fb686abfdc9e9b8ae + languageName: node + linkType: hard + "https-proxy-agent@npm:^5.0.0": version: 5.0.1 resolution: "https-proxy-agent@npm:5.0.1" @@ -15117,6 +19349,15 @@ __metadata: languageName: node linkType: hard +"icss-utils@npm:^5.0.0, icss-utils@npm:^5.1.0": + version: 5.1.0 + resolution: "icss-utils@npm:5.1.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 10c0/39c92936fabd23169c8611d2b5cc39e39d10b19b0d223352f20a7579f75b39d5f786114a6b8fc62bee8c5fed59ba9e0d38f7219a4db383e324fb3061664b043d + languageName: node + linkType: hard + "idb-keyval@npm:^6.2.1": version: 6.2.1 resolution: "idb-keyval@npm:6.2.1" @@ -15145,6 +19386,17 @@ __metadata: languageName: node linkType: hard +"image-size@npm:^1.0.0": + version: 1.1.1 + resolution: "image-size@npm:1.1.1" + dependencies: + queue: "npm:6.0.2" + bin: + image-size: bin/image-size.js + checksum: 10c0/2660470096d12be82195f7e80fe03274689fbd14184afb78eaf66ade7cd06352518325814f88af4bde4b26647889fe49e573129f6e7ba8f5ff5b85cc7f559000 + languageName: node + linkType: hard + "immer@npm:^9.0.12": version: 9.0.12 resolution: "immer@npm:9.0.12" @@ -15368,6 +19620,13 @@ __metadata: languageName: node linkType: hard +"ipaddr.js@npm:1.9.1": + version: 1.9.1 + resolution: "ipaddr.js@npm:1.9.1" + checksum: 10c0/0486e775047971d3fdb5fb4f063829bac45af299ae0b82dcf3afa2145338e08290563a2a70f34b732d795ecc8311902e541a8530eeb30d75860a78ff4e94ce2a + languageName: node + linkType: hard + "iron-webcrypto@npm:^1.0.0": version: 1.0.0 resolution: "iron-webcrypto@npm:1.0.0" @@ -15375,6 +19634,13 @@ __metadata: languageName: node linkType: hard +"is-absolute-url@npm:^4.0.0": + version: 4.0.1 + resolution: "is-absolute-url@npm:4.0.1" + checksum: 10c0/6f8f603945bd9f2c6031758bbc12352fc647bd5d807cad10d96cc6300fd0e15240cc091521a61db767e4ec0bacff257b4f1015fd5249c147bbb4a4497356c72e + languageName: node + linkType: hard + "is-arguments@npm:^1.0.4": version: 1.1.1 resolution: "is-arguments@npm:1.1.1" @@ -15683,6 +19949,13 @@ __metadata: languageName: node linkType: hard +"is-plain-object@npm:5.0.0": + version: 5.0.0 + resolution: "is-plain-object@npm:5.0.0" + checksum: 10c0/893e42bad832aae3511c71fd61c0bf61aa3a6d853061c62a307261842727d0d25f761ce9379f7ba7226d6179db2a3157efa918e7fe26360f3bf0842d9f28942c + languageName: node + linkType: hard + "is-promise@npm:^2.2.2": version: 2.2.2 resolution: "is-promise@npm:2.2.2" @@ -16074,6 +20347,13 @@ __metadata: languageName: node linkType: hard +"jsdoc-type-pratt-parser@npm:^4.0.0": + version: 4.1.0 + resolution: "jsdoc-type-pratt-parser@npm:4.1.0" + checksum: 10c0/7700372d2e733a32f7ea0a1df9cec6752321a5345c11a91b2ab478a031a426e934f16d5c1f15c8566c7b2c10af9f27892a29c2c789039f595470e929a4aa60ea + languageName: node + linkType: hard + "jsesc@npm:^2.5.1": version: 2.5.2 resolution: "jsesc@npm:2.5.2" @@ -16083,6 +20363,15 @@ __metadata: languageName: node linkType: hard +"jsesc@npm:^3.0.2, jsesc@npm:~3.0.2": + version: 3.0.2 + resolution: "jsesc@npm:3.0.2" + bin: + jsesc: bin/jsesc + checksum: 10c0/ef22148f9e793180b14d8a145ee6f9f60f301abf443288117b4b6c53d0ecd58354898dc506ccbb553a5f7827965cd38bc5fb726575aae93c5e8915e2de8290e1 + languageName: node + linkType: hard + "jsesc@npm:~0.5.0": version: 0.5.0 resolution: "jsesc@npm:0.5.0" @@ -16170,7 +20459,7 @@ __metadata: languageName: node linkType: hard -"json5@npm:^2.2.3": +"json5@npm:^2.2.2, json5@npm:^2.2.3": version: 2.2.3 resolution: "json5@npm:2.2.3" bin: @@ -16198,7 +20487,7 @@ __metadata: languageName: node linkType: hard -"jsonfile@npm:^6.0.1": +"jsonfile@npm:^6.0.1, jsonfile@npm:^6.1.0": version: 6.1.0 resolution: "jsonfile@npm:6.1.0" dependencies: @@ -16568,6 +20857,24 @@ __metadata: languageName: node linkType: hard +"loader-utils@npm:^2.0.4": + version: 2.0.4 + resolution: "loader-utils@npm:2.0.4" + dependencies: + big.js: "npm:^5.2.2" + emojis-list: "npm:^3.0.0" + json5: "npm:^2.1.2" + checksum: 10c0/d5654a77f9d339ec2a03d88221a5a695f337bf71eb8dea031b3223420bb818964ba8ed0069145c19b095f6c8b8fd386e602a3fc7ca987042bd8bb1dcc90d7100 + languageName: node + linkType: hard + +"loader-utils@npm:^3.2.1": + version: 3.3.1 + resolution: "loader-utils@npm:3.3.1" + checksum: 10c0/f2af4eb185ac5bf7e56e1337b666f90744e9f443861ac521b48f093fb9e8347f191c8960b4388a3365147d218913bc23421234e7788db69f385bacfefa0b4758 + languageName: node + linkType: hard + "loan@workspace:apps/loan": version: 0.0.0-use.local resolution: "loan@workspace:apps/loan" @@ -16661,7 +20968,7 @@ __metadata: languageName: node linkType: hard -"locate-path@npm:^7.2.0": +"locate-path@npm:^7.1.0, locate-path@npm:^7.2.0": version: 7.2.0 resolution: "locate-path@npm:7.2.0" dependencies: @@ -16894,6 +21201,15 @@ __metadata: languageName: node linkType: hard +"loupe@npm:^3.1.0, loupe@npm:^3.1.1": + version: 3.1.1 + resolution: "loupe@npm:3.1.1" + dependencies: + get-func-name: "npm:^2.0.1" + checksum: 10c0/99f88badc47e894016df0c403de846fedfea61154aadabbf776c8428dd59e8d8378007135d385d737de32ae47980af07d22ba7bec5ef7beebd721de9baa0a0af + languageName: node + linkType: hard + "lower-case@npm:^2.0.2": version: 2.0.2 resolution: "lower-case@npm:2.0.2" @@ -16958,6 +21274,15 @@ __metadata: languageName: node linkType: hard +"lz-string@npm:^1.5.0": + version: 1.5.0 + resolution: "lz-string@npm:1.5.0" + bin: + lz-string: bin/bin.js + checksum: 10c0/36128e4de34791838abe979b19927c26e67201ca5acf00880377af7d765b38d1c60847e01c5ec61b1a260c48029084ab3893a3925fd6e48a04011364b089991b + languageName: node + linkType: hard + "magic-string@npm:^0.30.3": version: 0.30.10 resolution: "magic-string@npm:0.30.10" @@ -16967,6 +21292,15 @@ __metadata: languageName: node linkType: hard +"magic-string@npm:^0.30.5": + version: 0.30.12 + resolution: "magic-string@npm:0.30.12" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.5.0" + checksum: 10c0/469f457d18af37dfcca8617086ea8a65bcd8b60ba8a1182cb024ce43e470ace3c9d1cb6bee58d3b311768fb16bc27bd50bdeebcaa63dadd0fd46cac4d2e11d5f + languageName: node + linkType: hard + "main@workspace:apps/main": version: 0.0.0-use.local resolution: "main@workspace:apps/main" @@ -17028,6 +21362,15 @@ __metadata: languageName: unknown linkType: soft +"make-dir@npm:^3.0.2": + version: 3.1.0 + resolution: "make-dir@npm:3.1.0" + dependencies: + semver: "npm:^6.0.0" + checksum: 10c0/56aaafefc49c2dfef02c5c95f9b196c4eb6988040cf2c712185c7fe5c99b4091591a7fc4d4eafaaefa70ff763a26f6ab8c3ff60b9e75ea19876f49b18667ecaa + languageName: node + linkType: hard + "make-fetch-happen@npm:^13.0.0": version: 13.0.1 resolution: "make-fetch-happen@npm:13.0.1" @@ -17055,6 +21398,22 @@ __metadata: languageName: node linkType: hard +"map-or-similar@npm:^1.5.0": + version: 1.5.0 + resolution: "map-or-similar@npm:1.5.0" + checksum: 10c0/33c6ccfdc272992e33e4e99a69541a3e7faed9de3ac5bc732feb2500a9ee71d3f9d098980a70b7746e7eeb7f859ff7dfb8aa9b5ecc4e34170a32ab78cfb18def + languageName: node + linkType: hard + +"markdown-to-jsx@npm:^7.4.5": + version: 7.5.0 + resolution: "markdown-to-jsx@npm:7.5.0" + peerDependencies: + react: ">= 0.14.0" + checksum: 10c0/88213e64afd41d6934fbb70bcea0e2ef1f9553db1ba4c6f423b17d6e9c2b99c82b0fcbed29036dd5b91704b170803d1fae730ab40ae27af5c7994e2717686ebc + languageName: node + linkType: hard + "md5.js@npm:^1.3.4": version: 1.3.5 resolution: "md5.js@npm:1.3.5" @@ -17080,6 +21439,22 @@ __metadata: languageName: node linkType: hard +"media-typer@npm:0.3.0": + version: 0.3.0 + resolution: "media-typer@npm:0.3.0" + checksum: 10c0/d160f31246907e79fed398470285f21bafb45a62869dc469b1c8877f3f064f5eabc4bcc122f9479b8b605bc5c76187d7871cf84c4ee3ecd3e487da1993279928 + languageName: node + linkType: hard + +"memfs@npm:^3.4.1, memfs@npm:^3.4.12": + version: 3.5.3 + resolution: "memfs@npm:3.5.3" + dependencies: + fs-monkey: "npm:^1.0.4" + checksum: 10c0/038fc81bce17ea92dde15aaa68fa0fdaf4960c721ce3ffc7c2cb87a259333f5159784ea48b3b72bf9e054254d9d0d0d5209d0fdc3d07d08653a09933b168fbd7 + languageName: node + linkType: hard + "memoizee@npm:^0.4.15": version: 0.4.15 resolution: "memoizee@npm:0.4.15" @@ -17096,6 +21471,15 @@ __metadata: languageName: node linkType: hard +"memoizerific@npm:^1.11.3": + version: 1.11.3 + resolution: "memoizerific@npm:1.11.3" + dependencies: + map-or-similar: "npm:^1.5.0" + checksum: 10c0/661bf69b7afbfad57f0208f0c63324f4c96087b480708115b78ee3f0237d86c7f91347f6db31528740b2776c2e34c709bcb034e1e910edee2270c9603a0a469e + languageName: node + linkType: hard + "memorystream@npm:^0.3.1": version: 0.3.1 resolution: "memorystream@npm:0.3.1" @@ -17110,6 +21494,13 @@ __metadata: languageName: node linkType: hard +"merge-descriptors@npm:1.0.3": + version: 1.0.3 + resolution: "merge-descriptors@npm:1.0.3" + checksum: 10c0/866b7094afd9293b5ea5dcd82d71f80e51514bed33b4c4e9f516795dc366612a4cbb4dc94356e943a8a6914889a914530badff27f397191b9b75cda20b6bae93 + languageName: node + linkType: hard + "merge-stream@npm:^2.0.0": version: 2.0.0 resolution: "merge-stream@npm:2.0.0" @@ -17124,6 +21515,13 @@ __metadata: languageName: node linkType: hard +"methods@npm:~1.1.2": + version: 1.1.2 + resolution: "methods@npm:1.1.2" + checksum: 10c0/bdf7cc72ff0a33e3eede03708c08983c4d7a173f91348b4b1e4f47d4cdbf734433ad971e7d1e8c77247d9e5cd8adb81ea4c67b0a2db526b758b2233d7814b8b2 + languageName: node + linkType: hard + "micro-ftch@npm:^0.3.1": version: 0.3.1 resolution: "micro-ftch@npm:0.3.1" @@ -17151,6 +21549,16 @@ __metadata: languageName: node linkType: hard +"micromatch@npm:^4.0.2, micromatch@npm:~4.0.8": + version: 4.0.8 + resolution: "micromatch@npm:4.0.8" + dependencies: + braces: "npm:^3.0.3" + picomatch: "npm:^2.3.1" + checksum: 10c0/166fa6eb926b9553f32ef81f5f531d27b4ce7da60e5baf8c021d043b27a388fb95e46a8038d5045877881e673f8134122b59624d5cecbd16eb50a42e7a6b5ca8 + languageName: node + linkType: hard + "micromatch@npm:^4.0.4": version: 4.0.4 resolution: "micromatch@npm:4.0.4" @@ -17171,13 +21579,15 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:~4.0.8": - version: 4.0.8 - resolution: "micromatch@npm:4.0.8" +"miller-rabin@npm:^4.0.0": + version: 4.0.1 + resolution: "miller-rabin@npm:4.0.1" dependencies: - braces: "npm:^3.0.3" - picomatch: "npm:^2.3.1" - checksum: 10c0/166fa6eb926b9553f32ef81f5f531d27b4ce7da60e5baf8c021d043b27a388fb95e46a8038d5045877881e673f8134122b59624d5cecbd16eb50a42e7a6b5ca8 + bn.js: "npm:^4.0.0" + brorand: "npm:^1.0.1" + bin: + miller-rabin: bin/miller-rabin + checksum: 10c0/26b2b96f6e49dbcff7faebb78708ed2f5f9ae27ac8cbbf1d7c08f83cf39bed3d418c0c11034dce997da70d135cc0ff6f3a4c15dc452f8e114c11986388a64346 languageName: node linkType: hard @@ -17188,7 +21598,7 @@ __metadata: languageName: node linkType: hard -"mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:~2.1.19": +"mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": version: 2.1.35 resolution: "mime-types@npm:2.1.35" dependencies: @@ -17197,6 +21607,15 @@ __metadata: languageName: node linkType: hard +"mime@npm:1.6.0": + version: 1.6.0 + resolution: "mime@npm:1.6.0" + bin: + mime: cli.js + checksum: 10c0/b92cd0adc44888c7135a185bfd0dddc42c32606401c72896a842ae15da71eb88858f17669af41e498b463cd7eb998f7b48939a25b08374c7924a9c8a6f8a81b0 + languageName: node + linkType: hard + "mime@npm:^3.0.0": version: 3.0.0 resolution: "mime@npm:3.0.0" @@ -17234,6 +21653,13 @@ __metadata: languageName: node linkType: hard +"min-indent@npm:^1.0.0, min-indent@npm:^1.0.1": + version: 1.0.1 + resolution: "min-indent@npm:1.0.1" + checksum: 10c0/7e207bd5c20401b292de291f02913230cb1163abca162044f7db1d951fa245b174dc00869d40dd9a9f32a885ad6a5f3e767ee104cf278f399cb4e92d3f582d5c + languageName: node + linkType: hard + "minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1": version: 1.0.1 resolution: "minimalistic-assert@npm:1.0.1" @@ -17503,6 +21929,13 @@ __metadata: languageName: node linkType: hard +"ms@npm:2.0.0": + version: 2.0.0 + resolution: "ms@npm:2.0.0" + checksum: 10c0/f8fda810b39fd7255bbdc451c46286e549794fcc700dc9cd1d25658bbc4dc2563a5de6fe7c60f798a16a60c6ceb53f033cb353f493f0cf63e5199b702943159d + languageName: node + linkType: hard + "ms@npm:2.1.2": version: 2.1.2 resolution: "ms@npm:2.1.2" @@ -17568,7 +22001,7 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.3.6": +"nanoid@npm:^3.3.6, nanoid@npm:^3.3.7": version: 3.3.7 resolution: "nanoid@npm:3.3.7" bin: @@ -17607,7 +22040,7 @@ __metadata: languageName: node linkType: hard -"negotiator@npm:^0.6.3": +"negotiator@npm:0.6.3, negotiator@npm:^0.6.3": version: 0.6.3 resolution: "negotiator@npm:0.6.3" checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2 @@ -17721,6 +22154,13 @@ __metadata: languageName: node linkType: hard +"node-abort-controller@npm:^3.0.1": + version: 3.1.1 + resolution: "node-abort-controller@npm:3.1.1" + checksum: 10c0/f7ad0e7a8e33809d4f3a0d1d65036a711c39e9d23e0319d80ebe076b9a3b4432b4d6b86a7fab65521de3f6872ffed36fc35d1327487c48eb88c517803403eda3 + languageName: node + linkType: hard + "node-addon-api@npm:^2.0.0": version: 2.0.2 resolution: "node-addon-api@npm:2.0.2" @@ -17825,6 +22265,41 @@ __metadata: languageName: node linkType: hard +"node-polyfill-webpack-plugin@npm:^2.0.1": + version: 2.0.1 + resolution: "node-polyfill-webpack-plugin@npm:2.0.1" + dependencies: + assert: "npm:^2.0.0" + browserify-zlib: "npm:^0.2.0" + buffer: "npm:^6.0.3" + console-browserify: "npm:^1.2.0" + constants-browserify: "npm:^1.0.0" + crypto-browserify: "npm:^3.12.0" + domain-browser: "npm:^4.22.0" + events: "npm:^3.3.0" + filter-obj: "npm:^2.0.2" + https-browserify: "npm:^1.0.0" + os-browserify: "npm:^0.3.0" + path-browserify: "npm:^1.0.1" + process: "npm:^0.11.10" + punycode: "npm:^2.1.1" + querystring-es3: "npm:^0.2.1" + readable-stream: "npm:^4.0.0" + stream-browserify: "npm:^3.0.0" + stream-http: "npm:^3.2.0" + string_decoder: "npm:^1.3.0" + timers-browserify: "npm:^2.0.12" + tty-browserify: "npm:^0.0.1" + type-fest: "npm:^2.14.0" + url: "npm:^0.11.0" + util: "npm:^0.12.4" + vm-browserify: "npm:^1.1.2" + peerDependencies: + webpack: ">=5" + checksum: 10c0/fc3dcef5888c10d0ff9924a389e5bd9d9c95109e31cb7c8a27775b17ef14a63b587365b43bfedd81eb5f93cb16a04c0e8234a2c623bfaa2f2a528a9e45811f91 + languageName: node + linkType: hard + "node-releases@npm:^2.0.13": version: 2.0.13 resolution: "node-releases@npm:2.0.13" @@ -18040,6 +22515,13 @@ __metadata: languageName: node linkType: hard +"objectorarray@npm:^1.0.5": + version: 1.0.5 + resolution: "objectorarray@npm:1.0.5" + checksum: 10c0/3d3db66e2052df85617ac31b98f8e51a7a883ebce24123018dacf286712aa513a0a84e82b4a6bef68889d5fc39cf08e630ee78df013023fc5161e1fdf3eaaa5a + languageName: node + linkType: hard + "obliterator@npm:^2.0.0": version: 2.0.4 resolution: "obliterator@npm:2.0.4" @@ -18065,6 +22547,15 @@ __metadata: languageName: node linkType: hard +"on-finished@npm:2.4.1": + version: 2.4.1 + resolution: "on-finished@npm:2.4.1" + dependencies: + ee-first: "npm:1.1.1" + checksum: 10c0/46fb11b9063782f2d9968863d9cbba33d77aa13c17f895f56129c274318b86500b22af3a160fe9995aa41317efcd22941b6eba747f718ced08d9a73afdb087b4 + languageName: node + linkType: hard + "onboard-helpers@npm:*, onboard-helpers@workspace:packages/onboard-helpers": version: 0.0.0-use.local resolution: "onboard-helpers@workspace:packages/onboard-helpers" @@ -18132,7 +22623,7 @@ __metadata: languageName: node linkType: hard -"open@npm:^8.4.0": +"open@npm:^8.0.4, open@npm:^8.4.0": version: 8.4.2 resolution: "open@npm:8.4.2" dependencies: @@ -18183,6 +22674,13 @@ __metadata: languageName: node linkType: hard +"os-browserify@npm:^0.3.0": + version: 0.3.0 + resolution: "os-browserify@npm:0.3.0" + checksum: 10c0/6ff32cb1efe2bc6930ad0fd4c50e30c38010aee909eba8d65be60af55efd6cbb48f0287e3649b4e3f3a63dce5a667b23c187c4293a75e557f0d5489d735bcf52 + languageName: node + linkType: hard + "os-tmpdir@npm:~1.0.2": version: 1.0.2 resolution: "os-tmpdir@npm:1.0.2" @@ -18308,6 +22806,23 @@ __metadata: languageName: node linkType: hard +"pako@npm:~1.0.5": + version: 1.0.11 + resolution: "pako@npm:1.0.11" + checksum: 10c0/86dd99d8b34c3930345b8bbeb5e1cd8a05f608eeb40967b293f72fe469d0e9c88b783a8777e4cc7dc7c91ce54c5e93d88ff4b4f060e6ff18408fd21030d9ffbe + languageName: node + linkType: hard + +"param-case@npm:^3.0.4": + version: 3.0.4 + resolution: "param-case@npm:3.0.4" + dependencies: + dot-case: "npm:^3.0.4" + tslib: "npm:^2.0.3" + checksum: 10c0/ccc053f3019f878eca10e70ec546d92f51a592f762917dafab11c8b532715dcff58356118a6f350976e4ab109e321756f05739643ed0ca94298e82291e6f9e76 + languageName: node + linkType: hard + "parent-module@npm:^1.0.0": version: 1.0.1 resolution: "parent-module@npm:1.0.1" @@ -18317,6 +22832,20 @@ __metadata: languageName: node linkType: hard +"parse-asn1@npm:^5.0.0, parse-asn1@npm:^5.1.7": + version: 5.1.7 + resolution: "parse-asn1@npm:5.1.7" + dependencies: + asn1.js: "npm:^4.10.1" + browserify-aes: "npm:^1.2.0" + evp_bytestokey: "npm:^1.0.3" + hash-base: "npm:~3.0" + pbkdf2: "npm:^3.1.2" + safe-buffer: "npm:^5.2.1" + checksum: 10c0/05eb5937405c904eb5a7f3633bab1acc11f4ae3478a07ef5c6d81ce88c3c0e505ff51f9c7b935ebc1265c868343793698fc91025755a895d0276f620f95e8a82 + languageName: node + linkType: hard + "parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": version: 5.2.0 resolution: "parse-json@npm:5.2.0" @@ -18329,6 +22858,30 @@ __metadata: languageName: node linkType: hard +"parseurl@npm:~1.3.3": + version: 1.3.3 + resolution: "parseurl@npm:1.3.3" + checksum: 10c0/90dd4760d6f6174adb9f20cf0965ae12e23879b5f5464f38e92fce8073354341e4b3b76fa3d878351efe7d01e617121955284cfd002ab087fba1a0726ec0b4f5 + languageName: node + linkType: hard + +"pascal-case@npm:^3.1.2": + version: 3.1.2 + resolution: "pascal-case@npm:3.1.2" + dependencies: + no-case: "npm:^3.0.4" + tslib: "npm:^2.0.3" + checksum: 10c0/05ff7c344809fd272fc5030ae0ee3da8e4e63f36d47a1e0a4855ca59736254192c5a27b5822ed4bae96e54048eec5f6907713cfcfff7cdf7a464eaf7490786d8 + languageName: node + linkType: hard + +"path-browserify@npm:^1.0.1": + version: 1.0.1 + resolution: "path-browserify@npm:1.0.1" + checksum: 10c0/8b8c3fd5c66bd340272180590ae4ff139769e9ab79522e2eb82e3d571a89b8117c04147f65ad066dccfb42fcad902e5b7d794b3d35e0fd840491a8ddbedf8c66 + languageName: node + linkType: hard + "path-exists@npm:^3.0.0": version: 3.0.0 resolution: "path-exists@npm:3.0.0" @@ -18388,6 +22941,13 @@ __metadata: languageName: node linkType: hard +"path-to-regexp@npm:0.1.10": + version: 0.1.10 + resolution: "path-to-regexp@npm:0.1.10" + checksum: 10c0/34196775b9113ca6df88e94c8d83ba82c0e1a2063dd33bfe2803a980da8d49b91db8104f49d5191b44ea780d46b8670ce2b7f4a5e349b0c48c6779b653f1afe4 + languageName: node + linkType: hard + "path-type@npm:^4.0.0": version: 4.0.0 resolution: "path-type@npm:4.0.0" @@ -18402,7 +22962,14 @@ __metadata: languageName: node linkType: hard -"pbkdf2@npm:^3.0.17": +"pathval@npm:^2.0.0": + version: 2.0.0 + resolution: "pathval@npm:2.0.0" + checksum: 10c0/602e4ee347fba8a599115af2ccd8179836a63c925c23e04bd056d0674a64b39e3a081b643cc7bc0b84390517df2d800a46fcc5598d42c155fe4977095c2f77c5 + languageName: node + linkType: hard + +"pbkdf2@npm:^3.0.17, pbkdf2@npm:^3.0.3, pbkdf2@npm:^3.1.2": version: 3.1.2 resolution: "pbkdf2@npm:3.1.2" dependencies: @@ -18436,7 +23003,7 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.1": +"picocolors@npm:^1.0.1, picocolors@npm:^1.1.0": version: 1.1.0 resolution: "picocolors@npm:1.1.0" checksum: 10c0/86946f6032148801ef09c051c6fb13b5cf942eaf147e30ea79edb91dd32d700934edebe782a1078ff859fb2b816792e97ef4dab03d7f0b804f6b01a0df35e023 @@ -18515,6 +23082,24 @@ __metadata: languageName: node linkType: hard +"pkg-dir@npm:^4.1.0": + version: 4.2.0 + resolution: "pkg-dir@npm:4.2.0" + dependencies: + find-up: "npm:^4.0.0" + checksum: 10c0/c56bda7769e04907a88423feb320babaed0711af8c436ce3e56763ab1021ba107c7b0cafb11cde7529f669cfc22bffcaebffb573645cbd63842ea9fb17cd7728 + languageName: node + linkType: hard + +"pkg-dir@npm:^7.0.0": + version: 7.0.0 + resolution: "pkg-dir@npm:7.0.0" + dependencies: + find-up: "npm:^6.3.0" + checksum: 10c0/1afb23d2efb1ec9d8b2c4a0c37bf146822ad2774f074cb05b853be5dca1b40815c5960dd126df30ab8908349262a266f31b771e877235870a3b8fd313beebec5 + languageName: node + linkType: hard + "pkg-types@npm:^1.0.3": version: 1.0.3 resolution: "pkg-types@npm:1.0.3" @@ -18542,6 +23127,15 @@ __metadata: languageName: node linkType: hard +"pnp-webpack-plugin@npm:^1.7.0": + version: 1.7.0 + resolution: "pnp-webpack-plugin@npm:1.7.0" + dependencies: + ts-pnp: "npm:^1.1.6" + checksum: 10c0/79d1973ec0b04be6d44f15d5625991701a010dae28f2798d974d3aa164e8c60dc7fa22fd01a47fb6af369c4ba6585c3030d4deb775ccfecd7156594bc223d086 + languageName: node + linkType: hard + "pofile@npm:^1.1.4": version: 1.1.4 resolution: "pofile@npm:1.1.4" @@ -18549,6 +23143,15 @@ __metadata: languageName: node linkType: hard +"polished@npm:^4.2.2": + version: 4.3.1 + resolution: "polished@npm:4.3.1" + dependencies: + "@babel/runtime": "npm:^7.17.8" + checksum: 10c0/45480d4c7281a134281cef092f6ecc202a868475ff66a390fee6e9261386e16f3047b4de46a2f2e1cf7fb7aa8f52d30b4ed631a1e3bcd6f303ca31161d4f07fe + languageName: node + linkType: hard + "pony-cause@npm:^2.1.10": version: 2.1.11 resolution: "pony-cause@npm:2.1.11" @@ -18563,6 +23166,80 @@ __metadata: languageName: node linkType: hard +"postcss-loader@npm:^8.1.1": + version: 8.1.1 + resolution: "postcss-loader@npm:8.1.1" + dependencies: + cosmiconfig: "npm:^9.0.0" + jiti: "npm:^1.20.0" + semver: "npm:^7.5.4" + peerDependencies: + "@rspack/core": 0.x || 1.x + postcss: ^7.0.0 || ^8.0.1 + webpack: ^5.0.0 + peerDependenciesMeta: + "@rspack/core": + optional: true + webpack: + optional: true + checksum: 10c0/86cde94cd4c7c39892ef9bd4bf09342f422a21789654038694cf2b23c37c0ed9550c73608f656426a6631f0ade1eca82022781831e93d5362afe2f191388b85e + languageName: node + linkType: hard + +"postcss-modules-extract-imports@npm:^3.1.0": + version: 3.1.0 + resolution: "postcss-modules-extract-imports@npm:3.1.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 10c0/402084bcab376083c4b1b5111b48ec92974ef86066f366f0b2d5b2ac2b647d561066705ade4db89875a13cb175b33dd6af40d16d32b2ea5eaf8bac63bd2bf219 + languageName: node + linkType: hard + +"postcss-modules-local-by-default@npm:^4.0.5": + version: 4.0.5 + resolution: "postcss-modules-local-by-default@npm:4.0.5" + dependencies: + icss-utils: "npm:^5.0.0" + postcss-selector-parser: "npm:^6.0.2" + postcss-value-parser: "npm:^4.1.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 10c0/f4ad35abeb685ecb25f80c93d9fe23c8b89ee45ac4185f3560e701b4d7372f9b798577e79c5ed03b6d9c80bc923b001210c127c04ced781f43cda9e32b202a5b + languageName: node + linkType: hard + +"postcss-modules-scope@npm:^3.2.0": + version: 3.2.0 + resolution: "postcss-modules-scope@npm:3.2.0" + dependencies: + postcss-selector-parser: "npm:^6.0.4" + peerDependencies: + postcss: ^8.1.0 + checksum: 10c0/a2f5ffe372169b3feb8628cd785eb748bf12e344cfa57bce9e5cdc4fa5adcdb40d36daa86bb35dad53427703b185772aad08825b5783f745fcb1b6039454a84b + languageName: node + linkType: hard + +"postcss-modules-values@npm:^4.0.0": + version: 4.0.0 + resolution: "postcss-modules-values@npm:4.0.0" + dependencies: + icss-utils: "npm:^5.0.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 10c0/dd18d7631b5619fb9921b198c86847a2a075f32e0c162e0428d2647685e318c487a2566cc8cc669fc2077ef38115cde7a068e321f46fb38be3ad49646b639dbc + languageName: node + linkType: hard + +"postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4": + version: 6.1.2 + resolution: "postcss-selector-parser@npm:6.1.2" + dependencies: + cssesc: "npm:^3.0.0" + util-deprecate: "npm:^1.0.2" + checksum: 10c0/523196a6bd8cf660bdf537ad95abd79e546d54180f9afb165a4ab3e651ac705d0f8b8ce6b3164fb9e3279ce482c5f751a69eb2d3a1e8eb0fd5e82294fb3ef13e + languageName: node + linkType: hard + "postcss-value-parser@npm:^3.3.0": version: 3.3.1 resolution: "postcss-value-parser@npm:3.3.1" @@ -18577,6 +23254,13 @@ __metadata: languageName: node linkType: hard +"postcss-value-parser@npm:^4.1.0, postcss-value-parser@npm:^4.2.0": + version: 4.2.0 + resolution: "postcss-value-parser@npm:4.2.0" + checksum: 10c0/f4142a4f56565f77c1831168e04e3effd9ffcc5aebaf0f538eee4b2d465adfd4b85a44257bb48418202a63806a7da7fe9f56c330aebb3cac898e46b4cbf49161 + languageName: node + linkType: hard + "postcss@npm:8.4.31": version: 8.4.31 resolution: "postcss@npm:8.4.31" @@ -18588,6 +23272,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.2.14, postcss@npm:^8.4.33, postcss@npm:^8.4.38": + version: 8.4.47 + resolution: "postcss@npm:8.4.47" + dependencies: + nanoid: "npm:^3.3.7" + picocolors: "npm:^1.1.0" + source-map-js: "npm:^1.2.1" + checksum: 10c0/929f68b5081b7202709456532cee2a145c1843d391508c5a09de2517e8c4791638f71dd63b1898dba6712f8839d7a6da046c72a5e44c162e908f5911f57b5f44 + languageName: node + linkType: hard + "preact@npm:^10.16.0": version: 10.22.0 resolution: "preact@npm:10.22.0" @@ -18677,6 +23372,27 @@ __metadata: languageName: node linkType: hard +"pretty-error@npm:^4.0.0": + version: 4.0.0 + resolution: "pretty-error@npm:4.0.0" + dependencies: + lodash: "npm:^4.17.20" + renderkid: "npm:^3.0.0" + checksum: 10c0/dc292c087e2857b2e7592784ab31e37a40f3fa918caa11eba51f9fb2853e1d4d6e820b219917e35f5721d833cfd20fdf4f26ae931a90fd1ad0cae2125c345138 + languageName: node + linkType: hard + +"pretty-format@npm:^27.0.2": + version: 27.5.1 + resolution: "pretty-format@npm:27.5.1" + dependencies: + ansi-regex: "npm:^5.0.1" + ansi-styles: "npm:^5.0.0" + react-is: "npm:^17.0.1" + checksum: 10c0/0cbda1031aa30c659e10921fa94e0dd3f903ecbbbe7184a729ad66f2b6e7f17891e8c7d7654c458fa4ccb1a411ffb695b4f17bbcd3fe075fabe181027c4040ed + languageName: node + linkType: hard + "pretty-format@npm:^29.7.0": version: 29.7.0 resolution: "pretty-format@npm:29.7.0" @@ -18766,6 +23482,16 @@ __metadata: languageName: node linkType: hard +"proxy-addr@npm:~2.0.7": + version: 2.0.7 + resolution: "proxy-addr@npm:2.0.7" + dependencies: + forwarded: "npm:0.2.0" + ipaddr.js: "npm:1.9.1" + checksum: 10c0/c3eed999781a35f7fd935f398b6d8920b6fb00bbc14287bc6de78128ccc1a02c89b95b56742bf7cf0362cc333c61d138532049c7dedc7a328ef13343eff81210 + languageName: node + linkType: hard + "proxy-compare@npm:2.5.1": version: 2.5.1 resolution: "proxy-compare@npm:2.5.1" @@ -18805,6 +23531,20 @@ __metadata: languageName: node linkType: hard +"public-encrypt@npm:^4.0.0": + version: 4.0.3 + resolution: "public-encrypt@npm:4.0.3" + dependencies: + bn.js: "npm:^4.1.0" + browserify-rsa: "npm:^4.0.0" + create-hash: "npm:^1.1.0" + parse-asn1: "npm:^5.0.0" + randombytes: "npm:^2.0.1" + safe-buffer: "npm:^5.1.2" + checksum: 10c0/6c2cc19fbb554449e47f2175065d6b32f828f9b3badbee4c76585ac28ae8641aafb9bb107afc430c33c5edd6b05dbe318df4f7d6d7712b1093407b11c4280700 + languageName: node + linkType: hard + "pump@npm:^3.0.0": version: 3.0.0 resolution: "pump@npm:3.0.0" @@ -18815,6 +23555,13 @@ __metadata: languageName: node linkType: hard +"punycode@npm:^1.4.1": + version: 1.4.1 + resolution: "punycode@npm:1.4.1" + checksum: 10c0/354b743320518aef36f77013be6e15da4db24c2b4f62c5f1eb0529a6ed02fbaf1cb52925785f6ab85a962f2b590d9cd5ad730b70da72b5f180e2556b8bd3ca08 + languageName: node + linkType: hard + "punycode@npm:^2.1.0, punycode@npm:^2.1.1": version: 2.1.1 resolution: "punycode@npm:2.1.1" @@ -18879,6 +23626,15 @@ __metadata: languageName: node linkType: hard +"qs@npm:6.13.0, qs@npm:^6.12.3": + version: 6.13.0 + resolution: "qs@npm:6.13.0" + dependencies: + side-channel: "npm:^1.0.6" + checksum: 10c0/62372cdeec24dc83a9fb240b7533c0fdcf0c5f7e0b83343edd7310f0ab4c8205a5e7c56406531f2e47e1b4878a3821d652be4192c841de5b032ca83619d8f860 + languageName: node + linkType: hard + "query-string@npm:6.13.5": version: 6.13.5 resolution: "query-string@npm:6.13.5" @@ -18902,6 +23658,13 @@ __metadata: languageName: node linkType: hard +"querystring-es3@npm:^0.2.1": + version: 0.2.1 + resolution: "querystring-es3@npm:0.2.1" + checksum: 10c0/476938c1adb45c141f024fccd2ffd919a3746e79ed444d00e670aad68532977b793889648980e7ca7ff5ffc7bfece623118d0fbadcaf217495eeb7059ae51580 + languageName: node + linkType: hard + "querystringify@npm:^2.1.1": version: 2.2.0 resolution: "querystringify@npm:2.2.0" @@ -18923,6 +23686,15 @@ __metadata: languageName: node linkType: hard +"queue@npm:6.0.2": + version: 6.0.2 + resolution: "queue@npm:6.0.2" + dependencies: + inherits: "npm:~2.0.3" + checksum: 10c0/cf987476cc72e7d3aaabe23ccefaab1cd757a2b5e0c8d80b67c9575a6b5e1198807ffd4f0948a3f118b149d1111d810ee773473530b77a5c606673cac2c9c996 + languageName: node + linkType: hard + "quick-format-unescaped@npm:^4.0.3": version: 4.0.4 resolution: "quick-format-unescaped@npm:4.0.4" @@ -18944,7 +23716,7 @@ __metadata: languageName: node linkType: hard -"randombytes@npm:2.1.0, randombytes@npm:^2.1.0": +"randombytes@npm:2.1.0, randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5, randombytes@npm:^2.1.0": version: 2.1.0 resolution: "randombytes@npm:2.1.0" dependencies: @@ -18953,7 +23725,24 @@ __metadata: languageName: node linkType: hard -"raw-body@npm:^2.4.1": +"randomfill@npm:^1.0.3": + version: 1.0.4 + resolution: "randomfill@npm:1.0.4" + dependencies: + randombytes: "npm:^2.0.5" + safe-buffer: "npm:^5.1.0" + checksum: 10c0/11aeed35515872e8f8a2edec306734e6b74c39c46653607f03c68385ab8030e2adcc4215f76b5e4598e028c4750d820afd5c65202527d831d2a5f207fe2bc87c + languageName: node + linkType: hard + +"range-parser@npm:^1.2.1, range-parser@npm:~1.2.1": + version: 1.2.1 + resolution: "range-parser@npm:1.2.1" + checksum: 10c0/96c032ac2475c8027b7a4e9fe22dc0dfe0f6d90b85e496e0f016fbdb99d6d066de0112e680805075bd989905e2123b3b3d002765149294dce0c1f7f01fcc2ea0 + languageName: node + linkType: hard + +"raw-body@npm:2.5.2, raw-body@npm:^2.4.1": version: 2.5.2 resolution: "raw-body@npm:2.5.2" dependencies: @@ -19024,6 +23813,54 @@ __metadata: languageName: node linkType: hard +"react-colorful@npm:^5.1.2": + version: 5.6.1 + resolution: "react-colorful@npm:5.6.1" + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: 10c0/48eb73cf71e10841c2a61b6b06ab81da9fffa9876134c239bfdebcf348ce2a47e56b146338e35dfb03512c85966bfc9a53844fc56bc50154e71f8daee59ff6f0 + languageName: node + linkType: hard + +"react-confetti@npm:^6.1.0": + version: 6.1.0 + resolution: "react-confetti@npm:6.1.0" + dependencies: + tween-functions: "npm:^1.2.0" + peerDependencies: + react: ^16.3.0 || ^17.0.1 || ^18.0.0 + checksum: 10c0/5b4eb23eef564695f6db1d25b294ed31d5fa21ff4092c6a38e641f85cd10e3e0b50014366e3ac0f7cf772e73faaecd14614e5b11a5531336fa769dda8068ab59 + languageName: node + linkType: hard + +"react-docgen-typescript@npm:^2.2.2": + version: 2.2.2 + resolution: "react-docgen-typescript@npm:2.2.2" + peerDependencies: + typescript: ">= 4.3.x" + checksum: 10c0/d31a061a21b5d4b67d4af7bc742541fd9e16254bd32861cd29c52565bc2175f40421a3550d52b6a6b0d0478e7cc408558eb0060a0bdd2957b02cfceeb0ee1e88 + languageName: node + linkType: hard + +"react-docgen@npm:^7.0.0": + version: 7.0.3 + resolution: "react-docgen@npm:7.0.3" + dependencies: + "@babel/core": "npm:^7.18.9" + "@babel/traverse": "npm:^7.18.9" + "@babel/types": "npm:^7.18.9" + "@types/babel__core": "npm:^7.18.0" + "@types/babel__traverse": "npm:^7.18.0" + "@types/doctrine": "npm:^0.0.9" + "@types/resolve": "npm:^1.20.2" + doctrine: "npm:^3.0.0" + resolve: "npm:^1.22.1" + strip-indent: "npm:^4.0.0" + checksum: 10c0/74622750e60b287d2897a6887a2bd88303fadd84540247e162e9e970430864ae7b49152de043233d873a0aa7cffa406e5cd8fc1e8e2c277b8da73198b570f16b + languageName: node + linkType: hard + "react-dom@npm:^18.3.1": version: 18.3.1 resolution: "react-dom@npm:18.3.1" @@ -19036,6 +23873,20 @@ __metadata: languageName: node linkType: hard +"react-element-to-jsx-string@npm:^15.0.0": + version: 15.0.0 + resolution: "react-element-to-jsx-string@npm:15.0.0" + dependencies: + "@base2/pretty-print-object": "npm:1.0.1" + is-plain-object: "npm:5.0.0" + react-is: "npm:18.1.0" + peerDependencies: + react: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 + react-dom: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 + checksum: 10c0/0d60a0ea758529c32a706d0c69d70b69fb94de3c46442fffdee34f08f51ffceddbb5395b41dfd1565895653e9f60f98ca525835be9d5db1f16d6b22be12f4cd4 + languageName: node + linkType: hard + "react-hook-form@npm:^7.53.0": version: 7.53.0 resolution: "react-hook-form@npm:7.53.0" @@ -19052,6 +23903,20 @@ __metadata: languageName: node linkType: hard +"react-is@npm:18.1.0": + version: 18.1.0 + resolution: "react-is@npm:18.1.0" + checksum: 10c0/558874e4c3bd9805a9294426e090919ee6901be3ab07f80b997c36b5a01a8d691112802e7438d146f6c82fd6495d8c030f276ef05ec3410057f8740a8d723f8c + languageName: node + linkType: hard + +"react-is@npm:^17.0.1": + version: 17.0.2 + resolution: "react-is@npm:17.0.2" + checksum: 10c0/2bdb6b93fbb1820b024b496042cce405c57e2f85e777c9aabd55f9b26d145408f9f74f5934676ffdc46f3dcff656d78413a6e43968e7b3f92eea35b3052e9053 + languageName: node + linkType: hard + "react-is@npm:^18.0.0": version: 18.2.0 resolution: "react-is@npm:18.2.0" @@ -19059,6 +23924,13 @@ __metadata: languageName: node linkType: hard +"react-is@npm:^18.3.1": + version: 18.3.1 + resolution: "react-is@npm:18.3.1" + checksum: 10c0/f2f1e60010c683479e74c63f96b09fb41603527cd131a9959e2aee1e5a8b0caf270b365e5ca77d4a6b18aae659b60a86150bb3979073528877029b35aecd2072 + languageName: node + linkType: hard + "react-lifecycles-compat@npm:^3.0.4": version: 3.0.4 resolution: "react-lifecycles-compat@npm:3.0.4" @@ -19079,6 +23951,13 @@ __metadata: languageName: node linkType: hard +"react-refresh@npm:^0.14.0": + version: 0.14.2 + resolution: "react-refresh@npm:0.14.2" + checksum: 10c0/875b72ef56b147a131e33f2abd6ec059d1989854b3ff438898e4f9310bfcc73acff709445b7ba843318a953cb9424bcc2c05af2b3d80011cee28f25aef3e2ebb + languageName: node + linkType: hard + "react-resize-detector@npm:^7.1.2": version: 7.1.2 resolution: "react-resize-detector@npm:7.1.2" @@ -19175,6 +24054,21 @@ __metadata: languageName: node linkType: hard +"react-transition-group@npm:^4.4.5": + version: 4.4.5 + resolution: "react-transition-group@npm:4.4.5" + dependencies: + "@babel/runtime": "npm:^7.5.5" + dom-helpers: "npm:^5.0.1" + loose-envify: "npm:^1.4.0" + prop-types: "npm:^15.6.2" + peerDependencies: + react: ">=16.6.0" + react-dom: ">=16.6.0" + checksum: 10c0/2ba754ba748faefa15f87c96dfa700d5525054a0141de8c75763aae6734af0740e77e11261a1e8f4ffc08fd9ab78510122e05c21c2d79066c38bb6861a886c82 + languageName: node + linkType: hard + "react@npm:^18.3.1": version: 18.3.1 resolution: "react@npm:18.3.1" @@ -19184,7 +24078,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^2.3.3": +"readable-stream@npm:^2.3.3, readable-stream@npm:^2.3.8": version: 2.3.8 resolution: "readable-stream@npm:2.3.8" dependencies: @@ -19210,7 +24104,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^3.6.2 || ^4.4.2": +"readable-stream@npm:^3.6.2 || ^4.4.2, readable-stream@npm:^4.0.0": version: 4.5.2 resolution: "readable-stream@npm:4.5.2" dependencies: @@ -19268,6 +24162,19 @@ __metadata: languageName: node linkType: hard +"recast@npm:^0.23.5": + version: 0.23.9 + resolution: "recast@npm:0.23.9" + dependencies: + ast-types: "npm:^0.16.1" + esprima: "npm:~4.0.0" + source-map: "npm:~0.6.1" + tiny-invariant: "npm:^1.3.3" + tslib: "npm:^2.0.1" + checksum: 10c0/65d6e780351f0180ea4fe5c9593ac18805bf2b79977f5bedbbbf26f6d9b619ed0f6992c1bf9e06dd40fca1aea727ad6d62463cfb5d3a33342ee5a6e486305fe5 + languageName: node + linkType: hard + "recharts-scale@npm:^0.4.4": version: 0.4.5 resolution: "recharts-scale@npm:0.4.5" @@ -19298,6 +24205,16 @@ __metadata: languageName: node linkType: hard +"redent@npm:^3.0.0": + version: 3.0.0 + resolution: "redent@npm:3.0.0" + dependencies: + indent-string: "npm:^4.0.0" + strip-indent: "npm:^3.0.0" + checksum: 10c0/d64a6b5c0b50eb3ddce3ab770f866658a2b9998c678f797919ceb1b586bab9259b311407280bd80b804e2a7c7539b19238ae6a2a20c843f1a7fcff21d48c2eae + languageName: node + linkType: hard + "redis-errors@npm:^1.0.0, redis-errors@npm:^1.2.0": version: 1.2.0 resolution: "redis-errors@npm:1.2.0" @@ -19348,6 +24265,15 @@ __metadata: languageName: node linkType: hard +"regenerate-unicode-properties@npm:^10.2.0": + version: 10.2.0 + resolution: "regenerate-unicode-properties@npm:10.2.0" + dependencies: + regenerate: "npm:^1.4.2" + checksum: 10c0/5510785eeaf56bbfdf4e663d6753f125c08d2a372d4107bc1b756b7bf142e2ed80c2733a8b54e68fb309ba37690e66a0362699b0e21d5c1f0255dea1b00e6460 + languageName: node + linkType: hard + "regenerate@npm:^1.4.2": version: 1.4.2 resolution: "regenerate@npm:1.4.2" @@ -19378,6 +24304,13 @@ __metadata: languageName: node linkType: hard +"regex-parser@npm:^2.2.11": + version: 2.3.0 + resolution: "regex-parser@npm:2.3.0" + checksum: 10c0/de31c40e9d982735fdf5934c822cc5cafbe6a0f0909d9fef52e2bd4cc2198933c89fd5e7a17697f25591fdb5df386a088296612b45f0f8e194222070fc5b5cc7 + languageName: node + linkType: hard + "regexp.prototype.flags@npm:^1.4.3": version: 1.4.3 resolution: "regexp.prototype.flags@npm:1.4.3" @@ -19415,6 +24348,38 @@ __metadata: languageName: node linkType: hard +"regexpu-core@npm:^6.1.1": + version: 6.1.1 + resolution: "regexpu-core@npm:6.1.1" + dependencies: + regenerate: "npm:^1.4.2" + regenerate-unicode-properties: "npm:^10.2.0" + regjsgen: "npm:^0.8.0" + regjsparser: "npm:^0.11.0" + unicode-match-property-ecmascript: "npm:^2.0.0" + unicode-match-property-value-ecmascript: "npm:^2.1.0" + checksum: 10c0/07d49697e20f9b65977535abba4858b7f5171c13f7c366be53ec1886d3d5f69f1b98cc6a6e63cf271adda077c3366a4c851c7473c28bbd69cf5a6b6b008efc3e + languageName: node + linkType: hard + +"regjsgen@npm:^0.8.0": + version: 0.8.0 + resolution: "regjsgen@npm:0.8.0" + checksum: 10c0/44f526c4fdbf0b29286101a282189e4dbb303f4013cf3fea058668d96d113b9180d3d03d1e13f6d4cbde38b7728bf951aecd9dc199938c080093a9a6f0d7a6bd + languageName: node + linkType: hard + +"regjsparser@npm:^0.11.0": + version: 0.11.1 + resolution: "regjsparser@npm:0.11.1" + dependencies: + jsesc: "npm:~3.0.2" + bin: + regjsparser: bin/parser + checksum: 10c0/be4b40981a596b31eacd84ee12cfa474f1d33a6c05f7e995e8ec9d5ad8f1c3fbf7a5b690a05c443e1f312a1c0b16d4ea0b3384596a61d4fda97aa322879bb3cd + languageName: node + linkType: hard + "regjsparser@npm:^0.9.1": version: 0.9.1 resolution: "regjsparser@npm:0.9.1" @@ -19426,6 +24391,53 @@ __metadata: languageName: node linkType: hard +"rehype-external-links@npm:^3.0.0": + version: 3.0.0 + resolution: "rehype-external-links@npm:3.0.0" + dependencies: + "@types/hast": "npm:^3.0.0" + "@ungap/structured-clone": "npm:^1.0.0" + hast-util-is-element: "npm:^3.0.0" + is-absolute-url: "npm:^4.0.0" + space-separated-tokens: "npm:^2.0.0" + unist-util-visit: "npm:^5.0.0" + checksum: 10c0/486b5db73d8fe72611d62b4eb0b56ec71025ea32bba764ad54473f714ca627be75e057ac29243763f85a77c3810f31727ce3e03c975b3803c1c98643d038e9ae + languageName: node + linkType: hard + +"rehype-slug@npm:^6.0.0": + version: 6.0.0 + resolution: "rehype-slug@npm:6.0.0" + dependencies: + "@types/hast": "npm:^3.0.0" + github-slugger: "npm:^2.0.0" + hast-util-heading-rank: "npm:^3.0.0" + hast-util-to-string: "npm:^3.0.0" + unist-util-visit: "npm:^5.0.0" + checksum: 10c0/51303c33d039c271cabe62161b49fa737be488f70ced62f00c165e47a089a99de2060050385e5c00d0df83ed30c7fa1c79a51b78508702836aefa51f7e7a6760 + languageName: node + linkType: hard + +"relateurl@npm:^0.2.7": + version: 0.2.7 + resolution: "relateurl@npm:0.2.7" + checksum: 10c0/c248b4e3b32474f116a804b537fa6343d731b80056fb506dffd91e737eef4cac6be47a65aae39b522b0db9d0b1011d1a12e288d82a109ecd94a5299d82f6573a + languageName: node + linkType: hard + +"renderkid@npm:^3.0.0": + version: 3.0.0 + resolution: "renderkid@npm:3.0.0" + dependencies: + css-select: "npm:^4.1.3" + dom-converter: "npm:^0.2.0" + htmlparser2: "npm:^6.1.0" + lodash: "npm:^4.17.21" + strip-ansi: "npm:^6.0.1" + checksum: 10c0/24a9fae4cc50e731d059742d1b3eec163dc9e3872b12010d120c3fcbd622765d9cda41f79a1bbb4bf63c1d3442f18a08f6e1642cb5d7ebf092a0ce3f7a3bd143 + languageName: node + linkType: hard + "request-progress@npm:^3.0.0": version: 3.0.0 resolution: "request-progress@npm:3.0.0" @@ -19491,6 +24503,19 @@ __metadata: languageName: node linkType: hard +"resolve-url-loader@npm:^5.0.0": + version: 5.0.0 + resolution: "resolve-url-loader@npm:5.0.0" + dependencies: + adjust-sourcemap-loader: "npm:^4.0.0" + convert-source-map: "npm:^1.7.0" + loader-utils: "npm:^2.0.0" + postcss: "npm:^8.2.14" + source-map: "npm:0.6.1" + checksum: 10c0/53eef3620332f2fc35a4deffaa4395064b2ffd1bc28be380faa3f1e99c2fb7bbf0f705700b4539387d5b6c39586df54a92cd5d031606f19de4bf9e0ff1b6a522 + languageName: node + linkType: hard + "resolve@npm:1.17.0": version: 1.17.0 resolution: "resolve@npm:1.17.0" @@ -19513,7 +24538,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.22.4": +"resolve@npm:^1.22.1, resolve@npm:^1.22.4, resolve@npm:^1.22.8": version: 1.22.8 resolution: "resolve@npm:1.22.8" dependencies: @@ -19561,7 +24586,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A^1.22.4#optional!builtin": +"resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin": version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" dependencies: @@ -19838,7 +24863,7 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:~5.2.0": +"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 @@ -19888,6 +24913,30 @@ __metadata: languageName: node linkType: hard +"sass-loader@npm:^13.2.0": + version: 13.3.3 + resolution: "sass-loader@npm:13.3.3" + dependencies: + neo-async: "npm:^2.6.2" + peerDependencies: + fibers: ">= 3.1.0" + node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + sass: ^1.3.0 + sass-embedded: "*" + webpack: ^5.0.0 + peerDependenciesMeta: + fibers: + optional: true + node-sass: + optional: true + sass: + optional: true + sass-embedded: + optional: true + checksum: 10c0/5e955a4ffce35ee0a46fce677ce51eaa69587fb5371978588c83af00f49e7edc36dcf3bb559cbae27681c5e24a71284463ebe03a1fb65e6ecafa1db0620e3fc8 + languageName: node + linkType: hard + "scheduler@npm:^0.23.2": version: 0.23.2 resolution: "scheduler@npm:0.23.2" @@ -19908,6 +24957,29 @@ __metadata: languageName: node linkType: hard +"schema-utils@npm:^3.2.0": + version: 3.3.0 + resolution: "schema-utils@npm:3.3.0" + dependencies: + "@types/json-schema": "npm:^7.0.8" + ajv: "npm:^6.12.5" + ajv-keywords: "npm:^3.5.2" + checksum: 10c0/fafdbde91ad8aa1316bc543d4b61e65ea86970aebbfb750bfb6d8a6c287a23e415e0e926c2498696b242f63af1aab8e585252637fabe811fd37b604351da6500 + languageName: node + linkType: hard + +"schema-utils@npm:^4.0.0, schema-utils@npm:^4.2.0": + version: 4.2.0 + resolution: "schema-utils@npm:4.2.0" + dependencies: + "@types/json-schema": "npm:^7.0.9" + ajv: "npm:^8.9.0" + ajv-formats: "npm:^2.1.1" + ajv-keywords: "npm:^5.1.0" + checksum: 10c0/8dab7e7800316387fd8569870b4b668cfcecf95ac551e369ea799bbcbfb63fb0365366d4b59f64822c9f7904d8c5afcfaf5a6124a4b08783e558cd25f299a6b4 + languageName: node + linkType: hard + "scrypt-js@npm:3.0.1, scrypt-js@npm:^3.0.0": version: 3.0.1 resolution: "scrypt-js@npm:3.0.1" @@ -19965,6 +25037,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^6.0.0, semver@npm:^6.3.1": + version: 6.3.1 + resolution: "semver@npm:6.3.1" + bin: + semver: bin/semver.js + checksum: 10c0/e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d + languageName: node + linkType: hard + "semver@npm:^6.3.0": version: 6.3.0 resolution: "semver@npm:6.3.0" @@ -19974,15 +25055,6 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.3.1": - version: 6.3.1 - resolution: "semver@npm:6.3.1" - bin: - semver: bin/semver.js - checksum: 10c0/e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d - languageName: node - linkType: hard - "semver@npm:^7.3.5, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4": version: 7.5.4 resolution: "semver@npm:7.5.4" @@ -20003,7 +25075,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.6.3": +"semver@npm:^7.3.7, semver@npm:^7.6.2, semver@npm:^7.6.3": version: 7.6.3 resolution: "semver@npm:7.6.3" bin: @@ -20012,6 +25084,27 @@ __metadata: languageName: node linkType: hard +"send@npm:0.19.0": + version: 0.19.0 + resolution: "send@npm:0.19.0" + dependencies: + debug: "npm:2.6.9" + depd: "npm:2.0.0" + destroy: "npm:1.2.0" + encodeurl: "npm:~1.0.2" + escape-html: "npm:~1.0.3" + etag: "npm:~1.8.1" + fresh: "npm:0.5.2" + http-errors: "npm:2.0.0" + mime: "npm:1.6.0" + ms: "npm:2.1.3" + on-finished: "npm:2.4.1" + range-parser: "npm:~1.2.1" + statuses: "npm:2.0.1" + checksum: 10c0/ea3f8a67a8f0be3d6bf9080f0baed6d2c51d11d4f7b4470de96a5029c598a7011c497511ccc28968b70ef05508675cebff27da9151dd2ceadd60be4e6cf845e3 + languageName: node + linkType: hard + "serialize-javascript@npm:6.0.0": version: 6.0.0 resolution: "serialize-javascript@npm:6.0.0" @@ -20030,6 +25123,18 @@ __metadata: languageName: node linkType: hard +"serve-static@npm:1.16.2": + version: 1.16.2 + resolution: "serve-static@npm:1.16.2" + dependencies: + encodeurl: "npm:~2.0.0" + escape-html: "npm:~1.0.3" + parseurl: "npm:~1.3.3" + send: "npm:0.19.0" + checksum: 10c0/528fff6f5e12d0c5a391229ad893910709bc51b5705962b09404a1d813857578149b8815f35d3ee5752f44cd378d0f31669d4b1d7e2d11f41e08283d5134bd1f + languageName: node + linkType: hard + "set-blocking@npm:^2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" @@ -20063,7 +25168,7 @@ __metadata: languageName: node linkType: hard -"setimmediate@npm:^1.0.5": +"setimmediate@npm:^1.0.4, setimmediate@npm:^1.0.5": version: 1.0.5 resolution: "setimmediate@npm:1.0.5" checksum: 10c0/5bae81bfdbfbd0ce992893286d49c9693c82b1bcc00dcaaf3a09c8f428fdeacf4190c013598b81875dfac2b08a572422db7df779a99332d0fce186d15a3e4d49 @@ -20113,6 +25218,75 @@ __metadata: languageName: node linkType: hard +"sharp@npm:^0.33.3": + version: 0.33.5 + resolution: "sharp@npm:0.33.5" + dependencies: + "@img/sharp-darwin-arm64": "npm:0.33.5" + "@img/sharp-darwin-x64": "npm:0.33.5" + "@img/sharp-libvips-darwin-arm64": "npm:1.0.4" + "@img/sharp-libvips-darwin-x64": "npm:1.0.4" + "@img/sharp-libvips-linux-arm": "npm:1.0.5" + "@img/sharp-libvips-linux-arm64": "npm:1.0.4" + "@img/sharp-libvips-linux-s390x": "npm:1.0.4" + "@img/sharp-libvips-linux-x64": "npm:1.0.4" + "@img/sharp-libvips-linuxmusl-arm64": "npm:1.0.4" + "@img/sharp-libvips-linuxmusl-x64": "npm:1.0.4" + "@img/sharp-linux-arm": "npm:0.33.5" + "@img/sharp-linux-arm64": "npm:0.33.5" + "@img/sharp-linux-s390x": "npm:0.33.5" + "@img/sharp-linux-x64": "npm:0.33.5" + "@img/sharp-linuxmusl-arm64": "npm:0.33.5" + "@img/sharp-linuxmusl-x64": "npm:0.33.5" + "@img/sharp-wasm32": "npm:0.33.5" + "@img/sharp-win32-ia32": "npm:0.33.5" + "@img/sharp-win32-x64": "npm:0.33.5" + color: "npm:^4.2.3" + detect-libc: "npm:^2.0.3" + semver: "npm:^7.6.3" + dependenciesMeta: + "@img/sharp-darwin-arm64": + optional: true + "@img/sharp-darwin-x64": + optional: true + "@img/sharp-libvips-darwin-arm64": + optional: true + "@img/sharp-libvips-darwin-x64": + optional: true + "@img/sharp-libvips-linux-arm": + optional: true + "@img/sharp-libvips-linux-arm64": + optional: true + "@img/sharp-libvips-linux-s390x": + optional: true + "@img/sharp-libvips-linux-x64": + optional: true + "@img/sharp-libvips-linuxmusl-arm64": + optional: true + "@img/sharp-libvips-linuxmusl-x64": + optional: true + "@img/sharp-linux-arm": + optional: true + "@img/sharp-linux-arm64": + optional: true + "@img/sharp-linux-s390x": + optional: true + "@img/sharp-linux-x64": + optional: true + "@img/sharp-linuxmusl-arm64": + optional: true + "@img/sharp-linuxmusl-x64": + optional: true + "@img/sharp-wasm32": + optional: true + "@img/sharp-win32-ia32": + optional: true + "@img/sharp-win32-x64": + optional: true + checksum: 10c0/6b81421ddfe6ee524d8d77e325c5e147fef22884e1c7b1656dfd89a88d7025894115da02d5f984261bf2e6daa16f98cadd1721c4ba408b4212b1d2a60f233484 + languageName: node + linkType: hard + "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -20367,6 +25541,13 @@ __metadata: languageName: node linkType: hard +"source-map-js@npm:^1.2.1": + version: 1.2.1 + resolution: "source-map-js@npm:1.2.1" + checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf + languageName: node + linkType: hard + "source-map-support@npm:^0.5.13, source-map-support@npm:~0.5.20": version: 0.5.21 resolution: "source-map-support@npm:0.5.21" @@ -20377,14 +25558,21 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.6.0": +"source-map@npm:0.6.1, source-map@npm:^0.6.0, source-map@npm:~0.6.0, source-map@npm:~0.6.1": version: 0.6.1 resolution: "source-map@npm:0.6.1" checksum: 10c0/ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011 languageName: node linkType: hard -"source-map@npm:^0.7.4": +"source-map@npm:^0.5.7": + version: 0.5.7 + resolution: "source-map@npm:0.5.7" + checksum: 10c0/904e767bb9c494929be013017380cbba013637da1b28e5943b566031e29df04fba57edf3f093e0914be094648b577372bd8ad247fa98cfba9c600794cd16b599 + languageName: node + linkType: hard + +"source-map@npm:^0.7.3, source-map@npm:^0.7.4": version: 0.7.4 resolution: "source-map@npm:0.7.4" checksum: 10c0/dc0cf3768fe23c345ea8760487f8c97ef6fca8a73c83cd7c9bf2fde8bc2c34adb9c0824d6feb14bc4f9e37fb522e18af621543f1289038a66ac7586da29aa7dc @@ -20400,6 +25588,13 @@ __metadata: languageName: node linkType: hard +"space-separated-tokens@npm:^2.0.0": + version: 2.0.2 + resolution: "space-separated-tokens@npm:2.0.2" + checksum: 10c0/6173e1d903dca41dcab6a2deed8b4caf61bd13b6d7af8374713500570aa929ff9414ae09a0519f4f8772df993300305a395d4871f35bc4ca72b6db57e1f30af8 + languageName: node + linkType: hard + "split-on-first@npm:^1.0.0": version: 1.1.0 resolution: "split-on-first@npm:1.1.0" @@ -20451,6 +25646,13 @@ __metadata: languageName: node linkType: hard +"stackframe@npm:^1.3.4": + version: 1.3.4 + resolution: "stackframe@npm:1.3.4" + checksum: 10c0/18410f7a1e0c5d211a4effa83bdbf24adbe8faa8c34db52e1cd3e89837518c592be60b60d8b7270ac53eeeb8b807cd11b399a41667f6c9abb41059c3ccc8a989 + languageName: node + linkType: hard + "stacktrace-parser@npm:^0.1.10": version: 0.1.10 resolution: "stacktrace-parser@npm:0.1.10" @@ -20481,6 +25683,19 @@ __metadata: languageName: node linkType: hard +"storybook@npm:^8.3.5": + version: 8.3.5 + resolution: "storybook@npm:8.3.5" + dependencies: + "@storybook/core": "npm:8.3.5" + bin: + getstorybook: ./bin/index.cjs + sb: ./bin/index.cjs + storybook: ./bin/index.cjs + checksum: 10c0/8f8ffe54c5dad8bad9d8701f63f4670cf3f388acd0e21e5bedeb86ebd2af5adf905024b6b9a2c46cf1199a0c1c86a97fddfa1fc70546149e18263b3b47c80585 + languageName: node + linkType: hard + "stream-browserify@npm:^3.0.0": version: 3.0.0 resolution: "stream-browserify@npm:3.0.0" @@ -20491,6 +25706,18 @@ __metadata: languageName: node linkType: hard +"stream-http@npm:^3.2.0": + version: 3.2.0 + resolution: "stream-http@npm:3.2.0" + dependencies: + builtin-status-codes: "npm:^3.0.0" + inherits: "npm:^2.0.4" + readable-stream: "npm:^3.6.0" + xtend: "npm:^4.0.2" + checksum: 10c0/f128fb8076d60cd548f229554b6a1a70c08a04b7b2afd4dbe7811d20f27f7d4112562eb8bce86d72a8691df3b50573228afcf1271e55e81f981536c67498bc41 + languageName: node + linkType: hard + "stream-shift@npm:^1.0.0": version: 1.0.1 resolution: "stream-shift@npm:1.0.1" @@ -20732,6 +25959,24 @@ __metadata: languageName: node linkType: hard +"strip-indent@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-indent@npm:3.0.0" + dependencies: + min-indent: "npm:^1.0.0" + checksum: 10c0/ae0deaf41c8d1001c5d4fbe16cb553865c1863da4fae036683b474fa926af9fc121e155cb3fc57a68262b2ae7d5b8420aa752c97a6428c315d00efe2a3875679 + languageName: node + linkType: hard + +"strip-indent@npm:^4.0.0": + version: 4.0.0 + resolution: "strip-indent@npm:4.0.0" + dependencies: + min-indent: "npm:^1.0.1" + checksum: 10c0/6b1fb4e22056867f5c9e7a6f3f45922d9a2436cac758607d58aeaac0d3b16ec40b1c43317de7900f1b8dd7a4107352fa47fb960f2c23566538c51e8585c8870e + languageName: node + linkType: hard + "strip-json-comments@npm:3.1.1, strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" @@ -20755,6 +26000,15 @@ __metadata: languageName: node linkType: hard +"style-loader@npm:^3.3.1": + version: 3.3.4 + resolution: "style-loader@npm:3.3.4" + peerDependencies: + webpack: ^5.0.0 + checksum: 10c0/8f8027fc5c6e91400cbb60066e7db3315810f8eaa0d19b2a254936eb0bec399ba8a7043b1789da9d05ab7c3ba50faf9267765ae0bf3571e48aa34ecdc774be37 + languageName: node + linkType: hard + "styled-components@npm:5.3.11": version: 5.3.11 resolution: "styled-components@npm:5.3.11" @@ -20793,6 +26047,29 @@ __metadata: languageName: node linkType: hard +"styled-jsx@npm:^5.1.6": + version: 5.1.6 + resolution: "styled-jsx@npm:5.1.6" + dependencies: + client-only: "npm:0.0.1" + peerDependencies: + react: ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + peerDependenciesMeta: + "@babel/core": + optional: true + babel-plugin-macros: + optional: true + checksum: 10c0/ace50e7ea5ae5ae6a3b65a50994c51fca6ae7df9c7ecfd0104c36be0b4b3a9c5c1a2374d16e2a11e256d0b20be6d47256d768ecb4f91ab390f60752a075780f5 + languageName: node + linkType: hard + +"stylis@npm:4.2.0": + version: 4.2.0 + resolution: "stylis@npm:4.2.0" + checksum: 10c0/a7128ad5a8ed72652c6eba46bed4f416521bc9745a460ef5741edc725252cebf36ee45e33a8615a7057403c93df0866ab9ee955960792db210bb80abd5ac6543 + languageName: node + linkType: hard + "superstruct@npm:^0.14.2": version: 0.14.2 resolution: "superstruct@npm:0.14.2" @@ -20917,7 +26194,7 @@ __metadata: languageName: node linkType: hard -"tapable@npm:^2.1.1, tapable@npm:^2.2.0": +"tapable@npm:^2.0.0, tapable@npm:^2.1.1, tapable@npm:^2.2.0, tapable@npm:^2.2.1": version: 2.2.1 resolution: "tapable@npm:2.2.1" checksum: 10c0/bc40e6efe1e554d075469cedaba69a30eeb373552aaf41caeaaa45bf56ffacc2674261b106245bd566b35d8f3329b52d838e851ee0a852120acae26e622925c9 @@ -20985,6 +26262,37 @@ __metadata: languageName: node linkType: hard +"telejson@npm:^7.2.0": + version: 7.2.0 + resolution: "telejson@npm:7.2.0" + dependencies: + memoizerific: "npm:^1.11.3" + checksum: 10c0/d26e6cc93e54bfdcdb207b49905508c5db45862e811a2e2193a735409e47b14530e1c19351618a3e03ad2fd4ffc3759364fcd72851aba2df0300fab574b6151c + languageName: node + linkType: hard + +"terser-webpack-plugin@npm:^5.3.1, terser-webpack-plugin@npm:^5.3.10": + version: 5.3.10 + resolution: "terser-webpack-plugin@npm:5.3.10" + dependencies: + "@jridgewell/trace-mapping": "npm:^0.3.20" + jest-worker: "npm:^27.4.5" + schema-utils: "npm:^3.1.1" + serialize-javascript: "npm:^6.0.1" + terser: "npm:^5.26.0" + peerDependencies: + webpack: ^5.1.0 + peerDependenciesMeta: + "@swc/core": + optional: true + esbuild: + optional: true + uglify-js: + optional: true + checksum: 10c0/66d1ed3174542560911cf96f4716aeea8d60e7caab212291705d50072b6ba844c7391442541b13c848684044042bea9ec87512b8506528c12854943da05faf91 + languageName: node + linkType: hard + "terser-webpack-plugin@npm:^5.3.7": version: 5.3.9 resolution: "terser-webpack-plugin@npm:5.3.9" @@ -21007,6 +26315,20 @@ __metadata: languageName: node linkType: hard +"terser@npm:^5.10.0, terser@npm:^5.26.0": + version: 5.34.1 + resolution: "terser@npm:5.34.1" + dependencies: + "@jridgewell/source-map": "npm:^0.3.3" + acorn: "npm:^8.8.2" + commander: "npm:^2.20.0" + source-map-support: "npm:~0.5.20" + bin: + terser: bin/terser + checksum: 10c0/51c7d704c5c4ae88bf937124112c9972aed4e1fd29d805cc2d86e0f54cd631ecd4e69db5bb3c1e3b450c741c86e2313328bea0fde925329e8a31a07a7941723c + languageName: node + linkType: hard + "terser@npm:^5.16.8": version: 5.17.6 resolution: "terser@npm:5.17.6" @@ -21081,6 +26403,15 @@ __metadata: languageName: node linkType: hard +"timers-browserify@npm:^2.0.12": + version: 2.0.12 + resolution: "timers-browserify@npm:2.0.12" + dependencies: + setimmediate: "npm:^1.0.4" + checksum: 10c0/98e84db1a685bc8827c117a8bc62aac811ad56a995d07938fc7ed8cdc5bf3777bfe2d4e5da868847194e771aac3749a20f6cdd22091300fe889a76fe214a4641 + languageName: node + linkType: hard + "timers-ext@npm:^0.1.7": version: 0.1.7 resolution: "timers-ext@npm:0.1.7" @@ -21101,6 +26432,13 @@ __metadata: languageName: node linkType: hard +"tiny-invariant@npm:^1.3.1, tiny-invariant@npm:^1.3.3": + version: 1.3.3 + resolution: "tiny-invariant@npm:1.3.3" + checksum: 10c0/65af4a07324b591a059b35269cd696aba21bef2107f29b9f5894d83cc143159a204b299553435b03874ebb5b94d019afa8b8eff241c8a4cfee95872c2e1c1c4a + languageName: node + linkType: hard + "tiny-secp256k1@npm:^1.1.6": version: 1.1.6 resolution: "tiny-secp256k1@npm:1.1.6" @@ -21122,6 +26460,20 @@ __metadata: languageName: node linkType: hard +"tinyrainbow@npm:^1.2.0": + version: 1.2.0 + resolution: "tinyrainbow@npm:1.2.0" + checksum: 10c0/7f78a4b997e5ba0f5ecb75e7ed786f30bab9063716e7dff24dd84013fb338802e43d176cb21ed12480561f5649a82184cf31efb296601a29d38145b1cdb4c192 + languageName: node + linkType: hard + +"tinyspy@npm:^3.0.0": + version: 3.0.2 + resolution: "tinyspy@npm:3.0.2" + checksum: 10c0/55ffad24e346622b59292e097c2ee30a63919d5acb7ceca87fc0d1c223090089890587b426e20054733f97a58f20af2c349fb7cc193697203868ab7ba00bcea0 + languageName: node + linkType: hard + "tmp@npm:0.0.33, tmp@npm:^0.0.33": version: 0.0.33 resolution: "tmp@npm:0.0.33" @@ -21207,6 +26559,34 @@ __metadata: languageName: node linkType: hard +"ts-dedent@npm:^2.0.0, ts-dedent@npm:^2.2.0": + version: 2.2.0 + resolution: "ts-dedent@npm:2.2.0" + checksum: 10c0/175adea838468cc2ff7d5e97f970dcb798bbcb623f29c6088cb21aa2880d207c5784be81ab1741f56b9ac37840cbaba0c0d79f7f8b67ffe61c02634cafa5c303 + languageName: node + linkType: hard + +"ts-pnp@npm:^1.1.6": + version: 1.2.0 + resolution: "ts-pnp@npm:1.2.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/ff32b4f810f9d99f676d70fe2c0e327cb6c812214bd4fc7135870b039f9e85a85b2c20f8fe030d9bd36e9598a12faa391f10aecb95df624b92f1af6bd47dc397 + languageName: node + linkType: hard + +"tsconfig-paths-webpack-plugin@npm:^4.0.1": + version: 4.1.0 + resolution: "tsconfig-paths-webpack-plugin@npm:4.1.0" + dependencies: + chalk: "npm:^4.1.0" + enhanced-resolve: "npm:^5.7.0" + tsconfig-paths: "npm:^4.1.2" + checksum: 10c0/c030e867e70a3f6d1799fdffa209c3a35e1435ad99aac01946b9ebb0fa8208b7b508c1dfe8c8e13d6a2ef70c75b4db062fbfd3c1f3362c69b6c65ffd4a50e226 + languageName: node + linkType: hard + "tsconfig-paths@npm:^3.15.0": version: 3.15.0 resolution: "tsconfig-paths@npm:3.15.0" @@ -21219,6 +26599,17 @@ __metadata: languageName: node linkType: hard +"tsconfig-paths@npm:^4.0.0, tsconfig-paths@npm:^4.1.2, tsconfig-paths@npm:^4.2.0": + version: 4.2.0 + resolution: "tsconfig-paths@npm:4.2.0" + dependencies: + json5: "npm:^2.2.2" + minimist: "npm:^1.2.6" + strip-bom: "npm:^3.0.0" + checksum: 10c0/09a5877402d082bb1134930c10249edeebc0211f36150c35e1c542e5b91f1047b1ccf7da1e59babca1ef1f014c525510f4f870de7c9bda470c73bb4e2721b3ea + languageName: node + linkType: hard + "tsconfig@npm:*, tsconfig@workspace:packages/tsconfig": version: 0.0.0-use.local resolution: "tsconfig@workspace:packages/tsconfig" @@ -21239,6 +26630,13 @@ __metadata: languageName: node linkType: hard +"tslib@npm:^2.0.0, tslib@npm:^2.0.1": + version: 2.7.0 + resolution: "tslib@npm:2.7.0" + checksum: 10c0/469e1d5bf1af585742128827000711efa61010b699cb040ab1800bcd3ccdd37f63ec30642c9e07c4439c1db6e46345582614275daca3e0f4abae29b0083f04a6 + languageName: node + linkType: hard + "tslib@npm:^2.0.3": version: 2.6.2 resolution: "tslib@npm:2.6.2" @@ -21260,6 +26658,13 @@ __metadata: languageName: node linkType: hard +"tty-browserify@npm:^0.0.1": + version: 0.0.1 + resolution: "tty-browserify@npm:0.0.1" + checksum: 10c0/5e34883388eb5f556234dae75b08e069b9e62de12bd6d87687f7817f5569430a6dfef550b51dbc961715ae0cd0eb5a059e6e3fc34dc127ea164aa0f9b5bb033d + languageName: node + linkType: hard + "tunnel-agent@npm:^0.6.0": version: 0.6.0 resolution: "tunnel-agent@npm:0.6.0" @@ -21340,6 +26745,13 @@ __metadata: languageName: node linkType: hard +"tween-functions@npm:^1.2.0": + version: 1.2.0 + resolution: "tween-functions@npm:1.2.0" + checksum: 10c0/7e59295b8b0ee4132ed2fe335f56a9db5c87056dad6b6fd3011be72239fd20398003ddb4403bc98ad9f5c94468890830f64016edbbde35581faf95b32cda8305 + languageName: node + linkType: hard + "tweetnacl-util@npm:^0.15.1": version: 0.15.1 resolution: "tweetnacl-util@npm:0.15.1" @@ -21391,6 +26803,30 @@ __metadata: languageName: node linkType: hard +"type-fest@npm:^2.14.0, type-fest@npm:^2.19.0, type-fest@npm:~2.19": + version: 2.19.0 + resolution: "type-fest@npm:2.19.0" + checksum: 10c0/a5a7ecf2e654251613218c215c7493574594951c08e52ab9881c9df6a6da0aeca7528c213c622bc374b4e0cb5c443aa3ab758da4e3c959783ce884c3194e12cb + languageName: node + linkType: hard + +"type-fest@npm:^4.26.1": + version: 4.26.1 + resolution: "type-fest@npm:4.26.1" + checksum: 10c0/d2719ff8d380befe8a3c61068f37f28d6fa2849fd140c5d2f0f143099e371da6856aad7c97e56b83329d45bfe504afe9fd936a7cff600cc0d46aa9ffb008d6c6 + languageName: node + linkType: hard + +"type-is@npm:~1.6.18": + version: 1.6.18 + resolution: "type-is@npm:1.6.18" + dependencies: + media-typer: "npm:0.3.0" + mime-types: "npm:~2.1.24" + checksum: 10c0/a23daeb538591b7efbd61ecf06b6feb2501b683ffdc9a19c74ef5baba362b4347e42f1b4ed81f5882a8c96a3bfff7f93ce3ffaf0cbbc879b532b04c97a55db9d + languageName: node + linkType: hard + "type@npm:^1.0.1": version: 1.2.0 resolution: "type@npm:1.2.0" @@ -21591,6 +27027,13 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~6.19.2": + version: 6.19.8 + resolution: "undici-types@npm:6.19.8" + checksum: 10c0/078afa5990fba110f6824823ace86073b4638f1d5112ee26e790155f481f2a868cc3e0615505b6f4282bdf74a3d8caad715fd809e870c2bb0704e3ea6082f344 + languageName: node + linkType: hard + "undici@npm:^5.14.0": version: 5.28.4 resolution: "undici@npm:5.28.4" @@ -21676,6 +27119,36 @@ __metadata: languageName: node linkType: hard +"unist-util-is@npm:^6.0.0": + version: 6.0.0 + resolution: "unist-util-is@npm:6.0.0" + dependencies: + "@types/unist": "npm:^3.0.0" + checksum: 10c0/9419352181eaa1da35eca9490634a6df70d2217815bb5938a04af3a662c12c5607a2f1014197ec9c426fbef18834f6371bfdb6f033040fa8aa3e965300d70e7e + languageName: node + linkType: hard + +"unist-util-visit-parents@npm:^6.0.0": + version: 6.0.1 + resolution: "unist-util-visit-parents@npm:6.0.1" + dependencies: + "@types/unist": "npm:^3.0.0" + unist-util-is: "npm:^6.0.0" + checksum: 10c0/51b1a5b0aa23c97d3e03e7288f0cdf136974df2217d0999d3de573c05001ef04cccd246f51d2ebdfb9e8b0ed2704451ad90ba85ae3f3177cf9772cef67f56206 + languageName: node + linkType: hard + +"unist-util-visit@npm:^5.0.0": + version: 5.0.0 + resolution: "unist-util-visit@npm:5.0.0" + dependencies: + "@types/unist": "npm:^3.0.0" + unist-util-is: "npm:^6.0.0" + unist-util-visit-parents: "npm:^6.0.0" + checksum: 10c0/51434a1d80252c1540cce6271a90fd1a106dbe624997c09ed8879279667fb0b2d3a685e02e92bf66598dcbe6cdffa7a5f5fb363af8fdf90dda6c855449ae39a5 + languageName: node + linkType: hard + "universalify@npm:^0.1.0": version: 0.1.2 resolution: "universalify@npm:0.1.2" @@ -21697,13 +27170,28 @@ __metadata: languageName: node linkType: hard -"unpipe@npm:1.0.0": +"unpipe@npm:1.0.0, unpipe@npm:~1.0.0": version: 1.0.0 resolution: "unpipe@npm:1.0.0" checksum: 10c0/193400255bd48968e5c5383730344fbb4fa114cdedfab26e329e50dd2d81b134244bb8a72c6ac1b10ab0281a58b363d06405632c9d49ca9dfd5e90cbd7d0f32c languageName: node linkType: hard +"unplugin@npm:^1.3.1": + version: 1.14.1 + resolution: "unplugin@npm:1.14.1" + dependencies: + acorn: "npm:^8.12.1" + webpack-virtual-modules: "npm:^0.6.2" + peerDependencies: + webpack-sources: ^3 + peerDependenciesMeta: + webpack-sources: + optional: true + checksum: 10c0/a74342b8f0cbbdc7b1da1f78f1898c0c915e3f67b22281fcd61a5495a585f4a1fd0fc270a7e59643a41c138c94c852cb69ea17af72965fb15f86f18ee76c2ed1 + languageName: node + linkType: hard + "unraw@npm:^3.0.0": version: 3.0.0 resolution: "unraw@npm:3.0.0" @@ -21873,6 +27361,16 @@ __metadata: languageName: node linkType: hard +"url@npm:^0.11.0": + version: 0.11.4 + resolution: "url@npm:0.11.4" + dependencies: + punycode: "npm:^1.4.1" + qs: "npm:^6.12.3" + checksum: 10c0/cc93405ae4a9b97a2aa60ca67f1cb1481c0221cb4725a7341d149be5e2f9cfda26fd432d64dbbec693d16593b68b8a46aad8e5eab21f814932134c9d8620c662 + languageName: node + linkType: hard + "usb@npm:^2.9.0": version: 2.10.0 resolution: "usb@npm:2.10.0" @@ -21922,14 +27420,14 @@ __metadata: languageName: node linkType: hard -"util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1": +"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 languageName: node linkType: hard -"util@npm:^0.12.0, util@npm:^0.12.4": +"util@npm:^0.12.0, util@npm:^0.12.4, util@npm:^0.12.5": version: 0.12.5 resolution: "util@npm:0.12.5" dependencies: @@ -21942,7 +27440,21 @@ __metadata: languageName: node linkType: hard -"uuid@npm:9.0.1, uuid@npm:^9.0.1": +"utila@npm:~0.4": + version: 0.4.0 + resolution: "utila@npm:0.4.0" + checksum: 10c0/2791604e09ca4f77ae314df83e80d1805f867eb5c7e13e7413caee01273c278cf2c9a3670d8d25c889a877f7b149d892fe61b0181a81654b425e9622ab23d42e + languageName: node + linkType: hard + +"utils-merge@npm:1.0.1": + version: 1.0.1 + resolution: "utils-merge@npm:1.0.1" + checksum: 10c0/02ba649de1b7ca8854bfe20a82f1dfbdda3fb57a22ab4a8972a63a34553cf7aa51bc9081cf7e001b035b88186d23689d69e71b510e610a09a4c66f68aa95b672 + languageName: node + linkType: hard + +"uuid@npm:9.0.1, uuid@npm:^9.0.0, uuid@npm:^9.0.1": version: 9.0.1 resolution: "uuid@npm:9.0.1" bin: @@ -22009,6 +27521,13 @@ __metadata: languageName: node linkType: hard +"vary@npm:~1.1.2": + version: 1.1.2 + resolution: "vary@npm:1.1.2" + checksum: 10c0/f15d588d79f3675135ba783c91a4083dcd290a2a5be9fcb6514220a1634e23df116847b1cc51f66bfb0644cf9353b2abb7815ae499bab06e46dd33c1a6bf1f4f + languageName: node + linkType: hard + "vast@npm:^1.0.40": version: 1.0.40 resolution: "vast@npm:1.0.40" @@ -22145,6 +27664,13 @@ __metadata: languageName: node linkType: hard +"vm-browserify@npm:^1.1.2": + version: 1.1.2 + resolution: "vm-browserify@npm:1.1.2" + checksum: 10c0/0cc1af6e0d880deb58bc974921320c187f9e0a94f25570fca6b1bd64e798ce454ab87dfd797551b1b0cc1849307421aae0193cedf5f06bdb5680476780ee344b + languageName: node + linkType: hard + "vue-eslint-parser@npm:^9.1.0": version: 9.4.3 resolution: "vue-eslint-parser@npm:9.4.3" @@ -22187,6 +27713,16 @@ __metadata: languageName: node linkType: hard +"watchpack@npm:^2.4.1": + version: 2.4.2 + resolution: "watchpack@npm:2.4.2" + dependencies: + glob-to-regexp: "npm:^0.4.1" + graceful-fs: "npm:^4.1.2" + checksum: 10c0/ec60a5f0e9efaeca0102fd9126346b3b2d523e01c34030d3fddf5813a7125765121ebdc2552981136dcd2c852deb1af0b39340f2fcc235f292db5399d0283577 + languageName: node + linkType: hard + "wcwidth@npm:^1.0.1": version: 1.0.1 resolution: "wcwidth@npm:1.0.1" @@ -22253,6 +27789,35 @@ __metadata: languageName: node linkType: hard +"webpack-dev-middleware@npm:^6.1.2": + version: 6.1.3 + resolution: "webpack-dev-middleware@npm:6.1.3" + dependencies: + colorette: "npm:^2.0.10" + memfs: "npm:^3.4.12" + mime-types: "npm:^2.1.31" + range-parser: "npm:^1.2.1" + schema-utils: "npm:^4.0.0" + peerDependencies: + webpack: ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true + checksum: 10c0/0f31670835f3c0f588392235a6183facf314c0dca312467254a56458142be6fee746f7f6b304f281c740364fd36f256c597ab37d87e5971633cee2f70a8cd5e7 + languageName: node + linkType: hard + +"webpack-hot-middleware@npm:^2.25.1": + version: 2.26.1 + resolution: "webpack-hot-middleware@npm:2.26.1" + dependencies: + ansi-html-community: "npm:0.0.8" + html-entities: "npm:^2.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10c0/13a3e78009e373b4ee990ffe1d4d49046e9893148a7106f063e11f962d02b744ea58b1dec25f5e76723c9dce678b9e68c883e7f2af2940aaf4de7aab31264c83 + languageName: node + linkType: hard + "webpack-sources@npm:^3.2.3": version: 3.2.3 resolution: "webpack-sources@npm:3.2.3" @@ -22260,6 +27825,49 @@ __metadata: languageName: node linkType: hard +"webpack-virtual-modules@npm:^0.6.0, webpack-virtual-modules@npm:^0.6.2": + version: 0.6.2 + resolution: "webpack-virtual-modules@npm:0.6.2" + checksum: 10c0/5ffbddf0e84bf1562ff86cf6fcf039c74edf09d78358a6904a09bbd4484e8bb6812dc385fe14330b715031892dcd8423f7a88278b57c9f5002c84c2860179add + languageName: node + linkType: hard + +"webpack@npm:5": + version: 5.95.0 + resolution: "webpack@npm:5.95.0" + dependencies: + "@types/estree": "npm:^1.0.5" + "@webassemblyjs/ast": "npm:^1.12.1" + "@webassemblyjs/wasm-edit": "npm:^1.12.1" + "@webassemblyjs/wasm-parser": "npm:^1.12.1" + acorn: "npm:^8.7.1" + acorn-import-attributes: "npm:^1.9.5" + browserslist: "npm:^4.21.10" + chrome-trace-event: "npm:^1.0.2" + enhanced-resolve: "npm:^5.17.1" + es-module-lexer: "npm:^1.2.1" + eslint-scope: "npm:5.1.1" + events: "npm:^3.2.0" + glob-to-regexp: "npm:^0.4.1" + graceful-fs: "npm:^4.2.11" + json-parse-even-better-errors: "npm:^2.3.1" + loader-runner: "npm:^4.2.0" + mime-types: "npm:^2.1.27" + neo-async: "npm:^2.6.2" + schema-utils: "npm:^3.2.0" + tapable: "npm:^2.1.1" + terser-webpack-plugin: "npm:^5.3.10" + watchpack: "npm:^2.4.1" + webpack-sources: "npm:^3.2.3" + peerDependenciesMeta: + webpack-cli: + optional: true + bin: + webpack: bin/webpack.js + checksum: 10c0/b9e6d0f8ebcbf0632494ac0b90fe4acb8f4a9b83f7ace4a67a15545a36fe58599c912ab58e625e1bf58ab3b0916c75fe99da6196d412ee0cab0b5065edd84238 + languageName: node + linkType: hard + "webpack@npm:^5.83.1": version: 5.83.1 resolution: "webpack@npm:5.83.1" @@ -22592,6 +28200,21 @@ __metadata: languageName: node linkType: hard +"ws@npm:^8.2.3": + version: 8.18.0 + resolution: "ws@npm:8.18.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/25eb33aff17edcb90721ed6b0eb250976328533ad3cd1a28a274bd263682e7296a6591ff1436d6cbc50fa67463158b062f9d1122013b361cec99a05f84680e06 + languageName: node + linkType: hard + "xmlhttprequest-ssl@npm:~2.0.0": version: 2.0.0 resolution: "xmlhttprequest-ssl@npm:2.0.0" @@ -22599,6 +28222,13 @@ __metadata: languageName: node linkType: hard +"xtend@npm:^4.0.2": + version: 4.0.2 + resolution: "xtend@npm:4.0.2" + checksum: 10c0/366ae4783eec6100f8a02dff02ac907bf29f9a00b82ac0264b4d8b832ead18306797e283cf19de776538babfdcb2101375ec5646b59f08c52128ac4ab812ed0e + languageName: node + linkType: hard + "y18n@npm:^4.0.0": version: 4.0.3 resolution: "y18n@npm:4.0.3" From b39ead11469e84008e5a47964eb09a055faeeb20 Mon Sep 17 00:00:00 2001 From: Ignat Date: Fri, 20 Sep 2024 15:55:30 +0500 Subject: [PATCH 04/17] chore: implement `storybook` main preferences --- packages/curve-ui-kit/.storybook/main.ts | 77 +++++ .../curve-ui-kit/.storybook/preview-head.html | 17 ++ packages/curve-ui-kit/.storybook/preview.tsx | 55 ++++ .../curve-ui-kit/public/assets/sample.png | Bin 0 -> 31814 bytes .../public/fonts/Hubot-Sans.woff2 | Bin 0 -> 170164 bytes .../curve-ui-kit/public/fonts/Mona-Sans.woff2 | Bin 0 -> 137140 bytes .../src/pages/Introduction/Introduction.mdx | 275 ++++++++++++++++++ 7 files changed, 424 insertions(+) create mode 100644 packages/curve-ui-kit/.storybook/main.ts create mode 100644 packages/curve-ui-kit/.storybook/preview-head.html create mode 100644 packages/curve-ui-kit/.storybook/preview.tsx create mode 100644 packages/curve-ui-kit/public/assets/sample.png create mode 100644 packages/curve-ui-kit/public/fonts/Hubot-Sans.woff2 create mode 100644 packages/curve-ui-kit/public/fonts/Mona-Sans.woff2 create mode 100644 packages/curve-ui-kit/src/pages/Introduction/Introduction.mdx diff --git a/packages/curve-ui-kit/.storybook/main.ts b/packages/curve-ui-kit/.storybook/main.ts new file mode 100644 index 00000000..bff88fe5 --- /dev/null +++ b/packages/curve-ui-kit/.storybook/main.ts @@ -0,0 +1,77 @@ +import { join, dirname } from 'path' +import type { StorybookConfig } from '@storybook/nextjs' +import path from 'path' + +/** + * This function is used to resolve the absolute path of a package. + * It is needed in projects that use Yarn PnP or are set up within a monorepo. + */ +function getAbsolutePath(value) { + return dirname(require.resolve(join(value, 'package.json'))) +} + +const config: StorybookConfig = { + stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|mts|ts|tsx)'], + staticDirs: ['../public'], + addons: [ + getAbsolutePath('@storybook/addon-essentials'), + getAbsolutePath('@chromatic-com/storybook'), + getAbsolutePath('@storybook/addon-interactions'), + getAbsolutePath('@storybook/addon-themes'), + getAbsolutePath('@storybook/addon-a11y'), + ], + + framework: { + name: getAbsolutePath('@storybook/nextjs'), + options: {}, + }, + + core: { + disableTelemetry: true, + }, + + docs: {}, + typescript: {}, + + // TODO: wait for fix https://github.com/storybookjs/storybook/issues/12129 + // typescript: { + // reactDocgen: react-docgen-typescript, + // reactDocgenTypescriptOptions: { + // include: ['**/**.tsx', 'src/entities/theme/types/button.d.ts', '../src/**/*.ts', '../src/**/*.d.ts'], + // tsconfigPath: '../tsconfig.json', + // // Speeds up Storybook build time + // compilerOptions: { + // allowSyntheticDefaultImports: false, + // esModuleInterop: false, + // // include: ['../src/**/*.tsx', '../src/**/*.ts', '../src/**/*.d.ts'], + // }, + // // Makes union prop types like variant and size appear as select controls + // shouldExtractLiteralValuesFromEnum: true, + // // Makes string and boolean types that can be undefined appear as inputs and switches + // shouldRemoveUndefinedFromOptional: true, + // // Filter out third-party props from node_modules except @mui packages + // propFilter: (prop) => + // prop.parent ? /@mui/.test(prop.parent.fileName) || !/node_modules/.test(prop.parent.fileName) : true, + // }, + // }, + + webpackFinal: async (config) => { + if (config.resolve) { + config.resolve.alias = { + ...config.resolve.alias, + '@': path.resolve(__dirname, '../src'), + } + } + return config + }, + + previewHead: (head) => ` + ${head} + + `, +} +export default config diff --git a/packages/curve-ui-kit/.storybook/preview-head.html b/packages/curve-ui-kit/.storybook/preview-head.html new file mode 100644 index 00000000..8361eea7 --- /dev/null +++ b/packages/curve-ui-kit/.storybook/preview-head.html @@ -0,0 +1,17 @@ + + + + diff --git a/packages/curve-ui-kit/.storybook/preview.tsx b/packages/curve-ui-kit/.storybook/preview.tsx new file mode 100644 index 00000000..996d83e9 --- /dev/null +++ b/packages/curve-ui-kit/.storybook/preview.tsx @@ -0,0 +1,55 @@ +import { CssBaseline, ThemeProvider } from '@mui/material' +import { withThemeFromJSXProvider } from '@storybook/addon-themes' +import type { Decorator, Preview, ReactRenderer } from '@storybook/react' + +import { chadTheme, darkTheme, lightTheme } from '../src/entities/themes' + +console.log('lightTheme', lightTheme) +export const decorators: Decorator[] = [ + withThemeFromJSXProvider({ + themes: { + light: lightTheme, + dark: darkTheme, + chad: chadTheme, + }, + defaultTheme: 'light', + Provider: ThemeProvider, + GlobalStyles: CssBaseline, + }), +] + +const preview: Preview = { + decorators: decorators, + parameters: { + themes: { + light: lightTheme, + dark: darkTheme, + chad: chadTheme, + }, + controls: { + expanded: true, // Adds the description and default columns + matchers: { + color: /(background|color)$/i, + date: /Date$/i, + }, + }, + docs: { + // TODO: fix docs container theme + // container: ({ children, context }) => { + // const theme = context.store.userGlobals.globals.theme + // return ( + // + // + // + // {children} + // + // + // ) + // }, + }, + layout: 'centered', + }, + tags: ['autodocs'], +} + +export default preview diff --git a/packages/curve-ui-kit/public/assets/sample.png b/packages/curve-ui-kit/public/assets/sample.png new file mode 100644 index 0000000000000000000000000000000000000000..57b2347b42740d79e8396bc18bd14a259c893c77 GIT binary patch literal 31814 zcmeFZbyQSc8#jE0fuV-(Zb9jgENJ?Akoyg{{#SVu(vn>0R($F z^!s&&y?{KQsH*@)1I+8#hx>L$n)Z($19!0Z1OOguO_;-_Vxz2`mPRa4{XYv zoXE{#AGR|C1_uWEuzynh5|pCskTy6yIoMhm8V&k?5C3;OFc1@Y@%{t9tLP99^iU;( zABP_l2O`Gt1lM0HLS{i7U>%$j&}&dO*!xW}d+I&ZcNC>^2uu=o3mt;mK*gcx(I7Mj znoF7UzcOLJ137D%Qh*mA$Uu@F#(T8G7JxG`67kAl?c4`7hp0jn?uoO=)Dexdq|zk* zOFKat0<^pBg$`oZ2^$mI>P3n}Q>miWRzg3i;}ip13q76}3ga>~^nk{{lE-ZavN1Zi z(x0>Q+uf_#%TaL^uwJ}cAG z#dG-B|Mr_B0g;{#;z-Q<$6f@0|EIGN;wZ?8 zrE*r}_pb8Sttli#ug`j+qa9;W2u_VzBV=7@7|rx*r`Ji(rL(?Ode+RtCF{c;cu$|#Y@F6`jN7{{~Cf7+5xjr29l*bE)_u8Tm^4w)F1;Py3vDocRBpBtio&KzE(Piyy28j+Yjd&2v_&%bzXrS4zk!UcC^l zVcHfwCbM!Pxlvhw9{Eh0QxCdi2eaS{q%k5wzvYnnHXkbIQrhY}XbDs+Z(G6R-Hl5L z#1;~Ki*yS5gJ;9R89P^>Ps3YX8$VXDxk-z}g#~}OQ*W;hOy7?l`*r7{^Whkjbi2Vt$=L6D#%~K9pju z8~`7Kq+=7ktytbvzW?C9V$UwPQ@AP{gRQac2ipl-hNI<0`tdVD^0Rz0vv+^7;ugv34hg3PUZ6qv)~1{HsR2qDQGu{f zW?g^X#(eDRptQ4xW&M#nDgE#O?u;sE<-?ec<@$${V&LpaWTI*I-Yj8&zq)`?hta6f z$`u|GdbUuO$>I}uj3aGu>#u-uy8)@v8n)+#Ni;zhTuVW6yQZ**FzuZ80`M?(UJmWk;^i}|K61w3(2Jo~6;LjO>r{2+?YfQL* zk=x(z;Xb7UQv7MM7(^~vo%&W%mC{3d`^R2;;b0Z?7a_s7r#*C{LuydwI3t@P`qnZ-4>ujUL9e;E5OHtn-|W{p$BuYc>4u)-WF1>Hg)UI$@ciVF=bB^ zw~anO-#^iBYg9Wi+kVcue0RQL&pXqm%#+S~wc++(c~f_w$Y3&+JwH>L0u7ustonM8 z?-98oD5s^3m!0+wQv8Tvx*N18w}IE?(Coz;Lumw=l5@ABf9}Dsw2c4Agwv7B?dbg# z14<4Y&}t2huW)6nx!fF>op{&$k)9sfIxW)aD-+#3OBTmz;Iq*QpT)_ayDNByb3j-T zA+6Mq=RJp<=$R`YA?UZOMK~wJ}@)U61c&_H5BTr^y(tv8pHSmMQX09#id)qwf2!M ze8=BV^mDKLAg(=_+g(gVZkm)Om(NEV@gs&+>Nhi zMqf>-HQKYzIqo*0mk_^ekJ3X40#Qpp8oh>_7>-YIZ-2uF7jV9sf@_aWzf904t-=xb zBv7y!xI{C{#9Vl5s@08x5Bbo4@^;*0(E?9&|W!!s-3U<5yW4CM6Xl)^cK zxR6BSPbZKkH-#G8Z}B(HE3LBoNpaS{$7Rd@|Z(^o`+bri zCYiRL_NYY!9U#>9CK}{(MGH9t9e|iQF!Zq2K{fBT`#Fy$2tQ;xbS2uQ@45Y>@^{y6 z)-d1a-Y3HCPK)q^~A>AZsAzxGJrF z2dkLuN??3do~^4tURQ_{}bN4@DpKn11LVf;@koh|O1*;>HaYNx zVP_^Irrgu4uPY+{KOkifAyw-s@A)#~@8W+$5o!Q6Bl2_I;-Q>x^bDTy4d|HCr?Mgx z@jn{~WDbNhnRY$Nu+D)&d=Qt~Cnl3JjmJF!|M3Sk>|g<(H42`}W`>ZQH9Yau!@+7+ zsfY*_rTcZP_KDeK&5Kgo&k}zPJYD&oNyPB_h2BS9tdxtP%p^{k+co8$V*y7GIfA?5=cna@Ib5`;3v#O`;+ttubeW|%G5qo1RX$%+=(((d{ zQr5YuiTq%!{h;52W^IgjI(^njPyQsmiUEm|3xb2trwqz$P;%Nv;x}GRbpWcbISra+-92AGy}^cf)nrx?`vz!HwvHRiK_ozT z4QA9qmPaQJ$fKuZ7M-gF3g}3Si%YFR*WlG_{G?yuAWOXbTVA+K9nQPX0FoUAk$3zx zf#PkNKpmV2C{K70icRNkK6;-`zh({b8+>7S?;;~uLzZBZ9QhVSilg+Fw3Qe$kksz` z_i&P7Fd|(K0h!_L+CPlkRJm9hX=T6hjgm6!7^tJ$bLF0)BzNH;DLV*r4X%!%6 z%t4Q-0#U}nGE%sBk4Yi>Vj$^T$DHuO$pMh9#j}h(2(AfG-wn-S+XNy$maZRBPse%)qvd}&WwjSKHDAw~2OLrR8H%DVkJ)fa zr|EOQ$}n9y9rA^gun@e@1bnhwaArX&4IOr;?Hp)1gg!z65P};_;1J4$XXYQkON)#t zPUQ)%ZCD8V-M_snPiH{8Z5!o8Gvy1UGZ&@jrVCqljOVG=(!klkW`*sid!}jc={U8y78V)`1SW!Qz=T%ECN6& zIIbX3%Zn#?Y2q7`aqW&s%mb!11zqj(4qY<#ElhqW5m5KHVEls2g1e2avt51Xwo|dGDo@%xJ(|bJ*BFw4o?5)u8Aj+3at` zw;_K}D4(R+@Yl_*McOHkUUp`Ao=SnUaY~+jpFvAyvyy=zz>JXDqZ)A$qUgOz*O@Ik z-M!9!Wy|VoPV(OV&W?DUi*(RTBW3!S3xOMn2u1WVW6z-G*dI@`GE=w$Tn6q!JKJjt zjDbbHVKr_(&#;E@(H2HuPg>Sk4!+(g(j1j1iwJoWO22lTS0DQPvSo7n!_BaP4jZE z_oU>A;(&+XM;i~1!#Eme`6$3YMNl2G8zP2zUcSu($I8XeImxDe%AjWvD5D&z9oaF3 z3;C#0Hv$wdEG82)Y9NQ>3s&6zq`oE89ZJvl8nK-Cz5?wT9IT`KNg}vtN=(F4c2^PB zASwE%Ox_(M2U1V$02Ub&9-~g^Z4Q>j$A~gW3LzSsP~`R`F>IpD;?tL{?JgB@aK?2K z#sQw*Y80-DF^dTaYmfG7g26~GF7c2wx+w#{9HN(bV9coZ!)A-k>ui#LaGT0L9kA~D z44%}FsF<~?G}=Q}wn5p6HPNq{-VWmJHYlMgs7l6o#W^C)U!v5)lpq!mZWk!>r$gSk zBia&fX9D;Bvk1Qr#T`Vw-yIrWytLY-h}=OxaNE1J=#4Z}EfBI)2&AmW!LT6Zb|1so zQ9*O6RA=S%NDfp|fej)KevU9wr>&M!I87dB7{|XQaMEVyLuY#r`mPmK(A80aoWq-` zmH(F9di<_tR}&GRz<+J9=5CbrNude9kqn9>pz~0dOiNk}-^qL|z2~uTWKhw22!p$}v`~SZ%ca7;Z@^2cC} zx1*Ka&e-0sq`xfC{ zyvpG!7?n{ZVa2T{sovkve;t42jmiQnMvi?t(L(ol+s&e&uN??8|u6(ZD`=-p<*;qr5}ugL^$2 z)`*#=MXyc01Pn9IsVyALos?dg_?7?q5nP`_BbwNPvUImln5KRsmSsV|E+o0T{*oo_ zC@YjK3KR#tK{6N-Y_kx!DLg*#_PV@WMXDzB$SJnhS>TWUpcEyS08dx9SHO3ey=<3d zq`;+TGP|tko-YQkTYDU^;r~}W?mbbYyqO}QAHJI)*>qcey5;Zt7>fw+jE#!w=>lG{ zTM!}`T4>x$5N)z7+b_W%rqsy0)01oPx^9OB=p)ql(+te9&Efk&yG#{>jmU^XV?w>n zW}Om0H;Je6Ek)BmZ$;5F>kv854!)lp-;8XXzD7TXaVDlnIlUa%vcz)}=TO)R3r`~| z7Cd1Oy*-%yz zuZ6GCp3JifU?WJP7ajPLVp|U-u52^0u+UNldQX_B3r8k6Ey)e~YAYrL%bZQ|X#HTETefSz}sL&i34czs^T7SNEFL*tTiAmB0-+OjoGB1uji?u4Lrfn0d!%SH%@LcXwxbVNrOGX&_6MMb6 zN?_;O-=Ox@XL3aI&EMJJwd9h=K|c`1%999e8OG&+<4iDzYXNcrf^m1*IDeZPjoCFs zrH{OL;_E?eSr3IuQg4QIF!|gX9J}|O4tgPBh?^OFpp=k_`~3V_B0FIu=!&YXXQ=H-$iOZ91d!5-}p8G4ygt?Ig=5Oonk_y|{aX1sC0JTwr3&4G|p zg3WecawUGr2#NG+1?Ef{TW!f(YK4f&ehecM-uqeS6yfzzDb(~EWl3B1XPRP&Je$=T zEeB7|<1Ebk#|UKPs})3O6QdD{^ca#1W8qJ#g(+nCMfiU(Ut_-%ja-AfjG{}q_3_z> zA5M%I5%JP}|E*a)-+76$$HPC8-P|Dwq`~+$`*+vVyIJM1y*u{QwT+s$fIC6{a3|Le zJn0;bQ57!92csi8x*rH|0mzh1Soi#6v{WmMoN~2x9i<90wPV!IAw>8xWN{AyNZtW!y!P@H^pLIVS7Vxk6+<0&EI_Z&wgV~g51ezW;_)aI+5wCjYlqW2XFIzRRGwb?C zfq9@}f@jFFC1|G7hEpZ^ejmzvcSij*FPCbI^!O{QHkpah3#)_1#YrSRP0Xm{p-Qh zPU!u*Ea>4qqea9@Xxh<9ezfEKg51MRN9GdG!w}^@me0|`#bzfc)IDUtKE$G|StHmLP!c?UnP>2ltW{Bt9;*oA;5gJN z=W#PSq%+QYE79A$%~6z&;M9T*5*)8P%vf4}AX>D`@~T>})h| zP59*wylXAF?k)_jI(h;q?!0fKrDO9XdGe?wBG7Cor44;{N;Yo9{uQU z@D{X9$Vma7WkBPUzd$enb2^Rb0VkF8VbdemWbhrWxZ|#MJ(L$#M87_OlHHTN=Z-Wy zEUzdk{fj%;O`E&hT-mah-jPuh7F0Z^=hkqB?m8Y`14Y$Gddlf9-1Ot6~rH7PNq1Qra9Hj0G(F=<#om){6ZxbK1! zKC2lTN68Ovu!7@l-A4IZ_5Aaie_fTX@yXk}S%vEsi2mOyWM)?}h*$HXp=h5>! zPPKD}%!bLE*H4wFjZdx8k#srzouy{qx`vUyRrtGNi51G!N!!_7N{5Cs2?Fp>yjGr~ ze}i3Fa4$!98GJ`}E&8yK|8esXQ6T3Di!W<{Fz59QD4qZwF54wWu%M)zrJ{S^WS~8w zk=>yQ$8X`I*7h0CO+rWxOw4indLw(Mc8zz!JfC|R+I3WqvoO%RsIZH0qTBcM^#=nCv~Wkq355L9gv%!Bx@E1aE)^j~1#+s7KMRR!UJr3N6NP zd5D5|y&aW9;P)|(7(57$$D29Jbd_0q03yU@mXkm}`KP*84N6Q$*hF;X;MQ~I+X z$_41%=bjr$kFmub^&0Z+9No3Pn7gjMp?;E#0V-s(24BN=QkXt0_TdM zB3*G4S1letJfG1G>tCbWupj+dSTJH;ku@j&Nk{9M2)GOtoJ4owGVbt6M!(tpomDW6 z?SiKzZqcKJ7i&mp*83=WzA%tWnkNnHMIU8Q<4I#6Ljqj}{>DF}6M;{3tPd``$Ea*f z1Pt^1xd9)-|2WKBe&b9O{#w>uaPX?z zj1;1M>_%}-%4DXlYdArG2!devHier9II)l&jo76(f(SK`VyefKA~IcZyx$vBjJLzz z^EX}ze2Yf#CKfN_l9!fx#{5~+1GuKGm-uQ#F%n3gn_aU9LLyP^OS2Wh7FeDJ zYb>PYkld>PUggmP}=+VJuP^rL8Q9g?b&Zib9 z=ht!%ibn66-@Yv;3Y)lyQZ)@!DJpQwzoJ5UjPTa3{(8^d&I9?U5AgkdE|oalnXJ=D z+n^F(vk**VHn-IClgwuM)=DmmHmJIXM0W}4!}5hLl#vvvYr1@oKDyG)G%Tf&J~|a7 zba5%P`!0&!J~aLSG0W;4@!Xm-qjmy4UJsekGO*bOj4afc3~q0<+XplE39oVxZ+lhH z?B?Q|ig92K@f2DgAy5UGJxV+(MY@;c%jKpa1y;(+)!y$@c;cfWnK|v!f%b7vt&t*NgoN5PQ7RWRm`+ZflJGY z$u*IY>;ppHs72yA_M2=Yxf0lrBYe)EAZ)AsgEGrpR%tn5hD*#7>utcTmDtdD(m)i} zV1qVQBD;zYkGD}6Pa?$n=`B`pSG<|6=FE1hMJd+JaC>XbFxBMBuEZC<1y{g)UD0G< zrTwoU@E(%xPmlUXDOSmqA_gg<8_m;%Vk@On${tO1!KFptrf91dq4m&+BCHfK*=J_N zB1dN_o345jN1;{&2gcPoLU~U|AvfjKUn!vN5bGcO`GXO^#7Dz#RpQZVkLDAS=|zYV z*H_3NZBrYRZ)GmKWqjGaRjXbxsN!%F9#DWC*prtUs{&b{P-&0TR_~)E^K~BkMGL)B zhth2?t$oa#oab>{;{xMr<~Ct78N=z>X*?`9W|jm>U{r*1pEO}(2MUYApKhP$bVS|u zbU%xZwQT9vU9^}xL@U*-&qa~+;-s2TbK`M9YF{CiDT-f5;R`V)n2$&E9$C%m_^@)* zh@wtR4=j+}3Q;ch#a*s!6E3dN3iI&nfOEG8l2|IE6A-HN?l$J=v!J>)&g)^TN>G~C z)tlG(jU@1@qKM>|>1s4vDFYr42TI^PK7VF$G2>Ez{S8y@cc2b;Q$|8YUxvGqwbx3a zRyr^nrK!vkZMOvii}0jJBU}|}uiRG)+867W_D!$`p#v=>kjn;&yq|yU{25Na{9HP- zE%C(D>=kINfAxTbPNZXIoAzG4;>tE@zUe((dF)H1MR!e~FTc1*8}StU*`i%zSm0H_ zaeVOI+q?$r>IKc2(U)Ci0p?eE1*uDB(&={_eb%=_Nv`U2{}u(|`ms8|)}Oe-PGhNd z?!xm4h;4ka%#5Nao~fbbX~_3<;YV3>PHOj|Q5yop&$@`EE^=A^PGq-&Jq|1x70hn! zxD(S%p!g%bJLqmGz0=NuAvwqOmR;6^Cef{C3Q?~Hjsfl!Dy~?=B5WN(mld2m_WkYI z^5p*X-PN{Qr9HWw)$}2|DK0`dqF`QimN@lulRR);R*jOPrOY;0vJ8!%D7F21Q-1Mc z0bev77lVq99)7I4$K7Y{7=83z!+MiQicHk3ODc!ytiWy4(L}O9!=-P>N6k?;5j&|` zY}bbG)=|X9Y7mm*Wv14((Meqg=HZ$ajungrGyjs~Ta_8Rd%0(8=T{}E3h|;v?40QT z^oV?de^LChO{#FLatX_Hjd9=71#diPs;;V7{#~sAz7?-vurZ=UchXia&5Q2k7;97B zVlZN(Fkw{xQ%Xg#&wOeTNk1`)>`%gNL$U0(R}5vb=rZ>gZ9b3YpSSTV)4QYv-)sto z7Rz|}hiq&xQ5`fO+U9GDKkN0K6C#jqyvs699-*+N4vaA+zMS3@?jVsxSKdH;EWHu) zsmTKa;}hgIkvBD36SHDc%t}0CLa-Vj&_cpp{arphD5sMF$I5CogIp?tK(i6g0m8tt zpdBNQ6UVq^^h*YBj|fHd<<9)mo_gi%@65W5*6f@RjP~^$q8XBH?7Kxe4MXaM-*n?gxj}+ivB}N1b-u2dnjx(UW zP-I*7UrSLz{in|~^7a+pzajnG#PLrD%CGH!1-<>uy`q4M{+8BiQxUHzkvy-KAkDv!Ec-Zj zqZ{I2v--iR;$&Cu+!F8*F)wCzRUn@5&>TwL2j98Y99K`hZ@>@q z8^cx2H*uejuvxz9Nx-t*+Zrxc>cQJa_m%=4wyPQ+k}2fQT;j%+laytiNf0o7W%Rd* zOb*r;N8N^l{ZhGrKZb0DvIk&`imve_GNx-#vW5F1=!5f{6r80vbXOi>Ql(DpZLYE#aIx^2u| zB7%te?a~}wA}=dI3Aq35{)1^jMwh8k@u-*jtb<1z;-7n11`KXjs;)y@Uw7*cIOdrtNavjMs!5hf==Z*vMak60<>#cqqwngYBE{ z40}`ChjFD|?f-ViBBr5ku2gZ;Dt0d1sCZ*DL&{k#uD|8M>n^|k)xNSm?+MEYo8 z3vRv~`=I^9Uf8uve}$C0<0sLeznv<7cTZ%4&PHxdT6mt!eUsd)8-^uj;`?y^AKQ1w zCNdpe7B?nAsTYUYk3d5Py%GS^^^xQK|LO5>uGdDLenX=3V}w7tDIkQ=;c>Gh@=W)~o*a zPLUXp6I1$RhY}*tEQ;>I`klXK|Myi9A|i~>%%@iK(iHw-1)=?WB~W5RV@mk{*c&(f zE2nXKw9>WlBrG%l{}D%{93bIxdJ?WLoyYb+7Nh8(fm2Sl~P1I02h6f)D}RKAb)R-Px_?GE5*N`d!xy$_B7(TDxUT-%N@piJJ_( z1i4~yc{9f2r0X@pB`KJ|OGH^wTI+$L1$Y}Q1gWMlq_MNrUOEqgiNpNi!3}uGO$$f{ z*&{%O>a11{$%<0bOMao3tJuGak^_pn7lB0w^J6yn^$z!atAz?q^ETL_63ppGELq50WI5)mJ1OGLzSE|LP0o@An zT!G79^*4VE1mR>J5tA}1vw2Z<6yYjzV2qx37wWZRbX?H+O| z)zwM2vQ}-p#nDW#8jp!@vU|?sYSr^5OBK}$NOG1Cta6vNjo$7TM~c1>0Oet7O7Ru9 zA9c4bOVCk1mN+}6JS^Z#54n3b^KH|3uw+w+lv=PpxTrBfU{WS5XruKjKdhCAV6On^Ee{lJ83%T#+1>n^hJf$|av0Ds@=V)B<3%dU5YNu#yyZpmI*5^2|tx21I zk%CnY1!iNe%w2re#=@*qgliY6v$l%k{h@~_ zb~-j={@tbx&2qoJ7r6Ki|N8*J&Q%KELkTRcV8 zO4$AbXdncNsXlgXCEYqrG_Y!m(kXWjBa8Bw#H6TS2ki|F3|z_B^rl@DKuB2!(lqhb zNyXcKZ!=AgwjCx}o zo*OeP_c^c+7pLp<3Z4#?<07(G^GU{1Fo_eer42=BbL8MUt~O}xcGYFXDT%h=@KyQ1 z{T9@HO!t7ML8-KuebB-kGxV%p>^30cxk3J*6Y$95&J9@kMaXgb4~O*6mZ%xGK3`Q- z1U#;yi$7VF-_PgQm;`)~6vZ4}vWDlHs^ThM1y_yJ;?bS0GkJ5P2{9jQg z0xWR3`8FqrdZpyr*|QliB=6)!Ic`AUC9j0l1cMn|e^Zy*stPbPOkGaN_l^U(F8Lh8dO*8lph9;JA1D-TfMNZ_!XGohhdMl8LqtBH4LV&5@gQ zC{H-CYs`T55SgZZm^d3wOo&<_mg~Or0o$R{r&V#{3bLE4B>!p;~;OAj9_`OkUIBh@gBym=68O_(3d#F@KHsCcj& zGE1sF8d+eFlQEM2M1X(&_0f{Fx=Jux1qrFJ=&dCZw4`(IA<_&PyV&qnWq- zqphcUtC|mBZGw;1n4^Rgk=zLA^zAev=f1Ir2|D@GKX2yR;6}6UCj_mQKo2 zg!R0&bmDhWuNhA|7!_*qN1dBd%dJhvdIp+IvsJU9TU3a$54-moQA8+J<>#dVF{D2t z>XU^;m7Jc{+p7`E0V69Ciul9l!I#B9BU~KEgClYT$&^Ij&v$GT>@16;B!?@?bX<2J z7Aq+NZ>sK9J_7d;pWWreKvR7FA=XI?|rGmt&MGW55>VUXGubWfk-m;NqKa^e5 z_#(#uyBrLdG4QDP=`RPQ)V=)usj5P6&LEQo?#ulC^jF1)PcF~yDxNmsadUx;k9xGL z@We9mmL5%jV2g~kZb9lhp_zT>wn)e3E2NdpY6VkUY3iWZvai@SlN`aylx`n%1pi``aCm4U$^ zwX?5lYB-nCGy#Q7Pix05EmGcS>8^>A-9iSsYQuhO@~~*VUmb+pG37zf~y`%Sy@gzQH+HCf)*Sn=j3Zs)MDjq9*&FeK=kk3D>(Bzfb2@Gu+fr_@05 zlqWfAfzU0DYv>D60JFff5IQhoV=e4%7n{u4CZ)s21Im4QTBBco0`bnmk{l?bdRM=Y zCv^yL{u9aR zo55?G#&9lJ(HP$nDI;65+2a0}&IHstN?v)QrE=FBb(c0TF9hP~7@jGv*60b2`-vb5 z{{)zI8GUtYLp1!#gC_w|&uu6+cCU>|5Q?vNm}%T;o^>%R5Iyc;1;Nzc=zRSVK0-lU zDXWJTO#ps9u3p=*K$RXxWL%_&a5syi@Z;EUu0hHC6H`1%*>+`otGE3h;-j^sFKZC_ zG$ggO28xJaGQSb)HocTUR~$3qX;2_Bfia||#+!t+5og9J?J!E}a^T$axkW_i$U$1N zxs}N0{;4*D<6Wg0bc5L_W3;4IfJ`6#C@}8Wz_dnYv@Bl$T2JXg0ZSb}zly2jj63?$ zR5qIdYurUnKq>>j@4$;6J#3_<)nN(3@ApK?xlr1VTrD4XP8t)h%j_JIp#ivJ#I3-y zs;8S=IZ7qB`Lqe^N&05J>BTt1w;L@b#qM<5tKG62{kJ?K;zyuOk4V@M6l?- z_WdGkHs{-WKY6>a%(2<%wI-+OABWXB9!UZ@&iBGpgBhYVzqgX?-#_k1JBLM6%=hT?}}Se3kErS z?_<5itinq& z%EIbQjlU(~_j<|K%!k-!I=;=nNN`Y)mvCyK9Nts#Gdx8ZP`nfe1nS~j6ma~e4Q4$J z!e?V4GqT@HH?Kb>AiOmniE|E=eto_w;&zsLZ>*dk@zi7aV?lMJ%37MGT*H*RwOx*X zQLXtI=j#x*4p*RBqx7Ho-6pkxKRJD;zkM>pNdI}OAAduuG#1}z{#}Ov#z}LIvZ5*k(O9s*{J#T6L z#M8*NSAaHg`wVi~n9n9B6P1`M;`9$EFveKOn)tN64>3JaKCutGvLAZ9Z8aO0EX8fK zGA`;#;|(<0ZgU2*oG$AG#k~UwA&Jegxviz1*1H-Hx$OM+-H)Um@BG7!Mv|>gUg5a8 zG!j{TYM~%}I5@O$GN8Ls9$sLE(_W?jZUTg6Vkjylrgrc!IR4xzbD{>Vlosx-d13eg zKh|WnitUB z`HjpsEy(f+%PP!s22d&)gXdmGf&B7!BLwSe=mVS#IyQm}Mn4KZ)dclh#K}o|I;?dJ z2MgH3RZUrM(y_N{@a8)Mna#d$oQCteA)JOhmduK$zZwLPU&CBJwv=W@+cD;t$^lgO zW_8iS;rD|c^rNKxLi}PhpVR3BfZXSs{{=u{G^tYA>>QWbHVhgkk})|Hq>0x@X1$Z{ z^rasnLpvGKfeV4yHxn>FBfXCF&3zg%#rA3PZf}_8EK1;n zc?vCfV86zt5Y>9U8f}={8CxLK!a6>P(1Y{yW*&|=8{zVqRH{KTFEr$Qe}sh<&>xgT zjpeH4j3bs)RKp!J%H`&yZIxIyku8oXm0gR@C`LN{BCFjn7G)o!xWtg==SlL_<13en z`O&bc@ulduaoN8dnce@fX)J9G%<+itO<~Pj)W%yWg5yapB%f!$D0#a}*rR42Ib3B% z9pL4H;uSVCU!uYF2qcrHuEXC|$e}~4`eh#D1kbk`;WO3wNT)1QU&>29Z22ldwOi*q zQc|c?Ltt-!ZY(6q8Wtpy3nHmx2!YKfsS3;oVJ&MFIl6Y*0@tS!aWfOg;uH|;`<)EZYmD^ggT87w0 zceE6R>q>2}6T$8nY5{f18fs21iTP~$4vMhqmG{sKwkz52Ea!O`{HT@J+|WNiVnKs> z@yVpdEuaONkqdqSwjq<4Sohx;y=JP6`|jPNEgdqc)kB&PL1{6m>HKi2@Pwg zVx5`m)TFCg^W?ONjrcL%MBFc)BP!!06?nzQzpp(?+dSU}kV!Rlw_kq@QA~hlIVQz? z0VAIf2b8e9WFx)CM~f)UNm#80u%Y#^{Zp|p_@_``2B<6H%=Cy)Mp-|<(><&0dM%Q5 zVOPxTW6M*E+j4*dL#V|>&XlJ2{OuzBQintR=SUDtVj?rV2={o5TWP+HW*tsUA%bwYu| zzd*8v#Kk0IX>p(kP&tt!Ir~Gi(wK&dzH&Lkwc!nizq%|^6n@^1z+CsO^;=;*Ev2>H8Ikp!!ES9m9duNH{YA>H*L0T`YUhM=ksoqVFzacQ6?fX_#k!Xgao&ja!3JX^u+^v*ECSWON%WehXbD!n)F&W4)7ly0J9AsOteSm0tLk}! zXxoKRi<)fH`oeEt0cEac@_p6c@baGt{*enNnfFQI6pFiAR1Uy45>yO?{9z`wz$?_l z`hbyqXYxTA{Lj2@5)~Uf9B!Sd#D3@#d8^5APlhD}KK!(xchuH@yrhEx^K*ooUqkMnnYK~;}8{eGvLC4?HyI`%4euL;3Z zV$#nkRt-TfkuUpw&>5$}wX4;8%jzuVU61)B&hq#V?N>pFwB{s2Ps4XI4S^};Hp@RTE{KG_xaz@3_JO8^}!eVNA!pY<8C^J2E#H#Fh7G__xp(EsyiUUVovGeUa^V?)!ObM;F!z+{u8U!)YV^ zH;;D zQ4I-!F!kk)3ay69Ka+-Mh_q7=+;x=77gkiE6eZm?Pz;gCcY*$Rk~!JnExwp9#jS(XIX|Kk7O8J5oaVf@ z4Y{_ORz;Q$%CC01<(dvPCgtYsxqAbe0VorDbO5kG8+AnW4 z;`xs0wkxz~r&|Qr=YD~GsSYif<4eQZY|s5sjA$S9I*3O1 zrGlApq*lyB#%b`7#aYKwA=9HMzlYq$r&&Zaw~!N6^qtB_ekj(+JUv;ImPgClTx?=n z&{bK1PW`oD$bK5@s5~a2hC)eQ+s4FKp4Q9fN`Mv+yqif*btL9qrv?FwW%njeQpnMX zlvJdk9x43VLirVfX58uP3VCQs_^KRde+Wg^7WOAr7sT~UGZ8XNWt$vti=wn2CrBCg z-9>(Uvv}7W{;MbMO*Ce}a2@0zsZVMRF@IHuOA$$Dc)dh(C&y||x*^O)IW zVr$@A%pK3{d?S}qCjWE#g$rTqffl3EvG#G+sBGWqmE6a*)HDlwD!Lbn-X>fGi=KBq zqp#o_6@PIK+I*dbeJu#K@`mz{U%c-^LR&^YLj&h?A3i8>t7$R%Oe6DK?n{!A>`Sq2 zh1b{m^163nO7kX%yZhcWVMwAL>BnDP1Kuw|jyVCt5H@h+Q**rHOYdcc5LJ#b0Tq`# zL3y@WAukP&fm@5f3Q+Vd=3VBp@oiI2YN>M*)AYdJRL+l2RL0+?PsLOXhN`j`NG%XK zB>FVfC95gT;Y5lI<*$`fU3fivWyIwF+^A8Ne~1v0SmMa0&WU>75fHQyk0@N%q>4Gc zYFKQXmp{UD`s2xKU}<}gM%^0@`j)$?wO1e^H5r*l;fi2!7LPwFBW*5kxdv>*pl1!A zH`QA_=`mX~V(uR}zj=|3m|pWWb|CeA8)mHpZ008<^XL6pan0t%^$4=FZi=vlM^lfq z&Swn28{k2R*{H>w3t0A&I{EVWqjj203r%a)avT9KhSj?k>#6g|I;@dB@1#&;M*HW) z>{u)RcUi@-363Gp!&f3NGQMFT-p=18M{_uIJ<{urN}favKO|mxGMxIjh6?i(6B8BA zKK?rUX=qNlf&a%JHYu{N@j)r83r{UcQNrY+_ZLq?@@LkF*T9(3UTr$b?sG(<5lYq3 zCts50B2{#hw{4j^-O}EzKOnD@OQBiqwRBM8Uy0vXrhYy3D<%(FEoYwpJ z2y}A(){m*Lta*=FkGzKb6F*c^ua89(_<-&&Us3$4i?RQ}SKek{Q1&zu#J8|sCOwos zlc!_TK0%^ql#+QS?aZN?=*73-8kRRsT{rOAz z`C>msGG(0lJaIxfbwbb&%$6Kp0doQsH5qN&jLzj#BF&o`*ZYKDaQ-3~$}J!kD>`x5uw>YS^!S~Yg?0U-;YHgS}?ct{IFI+gH7Z#{6C zj&u`G)fXO~ZP>6u8=)SQzV?WrR9S+&WE$*IC0U4FEq=?{2M=*3ZDw6gVRdyjXk8^% zrCykgS2;8-a~i%eH7P&%^^Nk8?1!n3u~UVSNBdEFwOc)B$^`V@U3-{CQ_d@yZk=zO zvsewL?ClR*Dvf&N3v(r1pldU?+Ah%2! zB-KLfsEo?;gT8Bmn0>4lL+20mthhYL-O-a%-?P@mE zxZ~~+ySN(hZ3e&m^fs@Bp~D%HV;Q!OEq=xGvu`wd_KN0`d|CstYbS~KwAIITKVD^J5FJD!^dgSXG_2e~pWed=NHXc9*JdTdfxW=5q2VJ6s7M?j|$fSgQ zL0}BBqi3Iu^ty9=6C3V~+arJ_uzPGS9C7MwzA$8uk!@76yJb_)k>0D3WrCcN8kb{t zj=NYt)gjZgxEWX%nWZ{zv04M_t@h%dm}mPyi!$6|_TNY)=};_eP0Ki%I~!0`WMHMZ zlM&RvbMnidh}Eq-rro2vjHZkuRQ^g06hqZQ(A;v#q28oWCo5CSOaoO2|COmUB}#nf z4U#2lCNuHTvRwQOF~iTpwq52jv2)LGH(|BTxkH@z{iBO=L48$7MX#JfXIXFD!vgIl z`E@>F4SWE1&zG&F==FV)muq95igSFqCZucrnafeyS&ojxX8Qpszl7xtlB7DhwPw;= zDPPK(cX+}MEOexpGkc_oM*GJtibB(?Iy9ym8eUnkZ#~Sbcl#r-NMaCfc0|7qz(}Y% zgPlkc1+Go=xf9K!3qWyvlhn$T&u>t+@=PPxi68-)>|sM+(9J|8`y7<(VT-;`;LbqI zzwPb9=`|b-&S#v05kYd|y00o3&_Z^@+S0Yj`{wpR3h?xW#$#0pwi+51ng$vM!D#H^ z1W3se$ri*=1A(`}BB(TPxWF;K&|n&qlq&zvgKcJ(hfY~?eT{RNa9Tyae?(fqg~%SPqfM~SamuHsAw(an0$Jk~ zYWey9Cz*)_8+z4N4H?O>y90Wc)BVJO7oMj}r*Hlzup$hh-p5*TY>0ecx$i}aihe0# z=P{UA@?Y7~k1Rk<^Q$y=`LWOFYD$+!KUl-3Q~S6 zy@inTi*>}~zlFe3LY%QLpOB)SD%+5rYO>{w)oNn4{EQO&xy&34KRy4?o!U{9kQ5hC z)z-s`-q-BhHTyy}E}E=wWGc2FcKuQB02g{wLZo?y{lKI90iVtGPOxLdVJ#u*X8%W( zG=zQM-3sg@t!T%WjIM3Zu*`@W5mI=_k9qzl8!MB9r+aS3ipaY5JIM#v?BA%VCQQb5 z0>Zxkh{JBifZZ=RqApG&FK{iD5QLX4PcP=b3Zvnd=!YJ|l~YSMp5y3?C zCQ9XxGWQ>~76&BdlV2QnVJ8jfBI|>;h}YE=j|KKIDl9r0*b_=40s5gpThm-%OT*D2b z-cz3gcZK@b?{i;^+?d;F(lhyQbs*qy@)ZoV@6+a->}$RAC^RZsgoIy_K!oK4|F6HQ zmr`NYt;uk=gNwICVkaTy`$V~rGb@#Z?EluBu_DCJgBmOP-uVmFe*{-iXd%`bAIpWo zdmx(Gp@;7UdLRDxi*JU5&o6QS#Ui%$#7nQ|e)|8O$5dK^h(>>b4CEM$a)%Hui1q%{ zNutmJQiQ9mmQ>GP@q%8bqUoCtKdAk;m#JH^%7f93-MGZ7px_+xXCU(wwf`f1D`I&@ z^tF%-!2r*2AV$roL4knQBJKZaSa#_29ljZG)1y;XQ+rZW^Br(Ki2g|He_imeA<(bg zEL0>LugeCAz;V%tlf^Dr6aC?{{G${^udv`&RC7*CT=yGHNl`B6BuM&afMxYxW#Sdc zmZSuYSPA5`JQ<(0e|2d|9chN}h4bfHIfD!SPg%LCkWe)sGHW%H=Bp~xL^3Q!9WPGH zLAFNL57_qpt2@N7;1Czu*ez_EOR?iRh|hPaGgTC206OQI(?%QSlgW$zZ)i}!QAWp; z?eQf98wiY~fyN;bNIW{_HzMG&xkfuLD1zOeD;s(BA9$@$6O9E@=r)l%58hJz>nuN3 z_MI5u&^VApkZDd&vFu+PZvOhHty_^jH!fMac|vdIrMJRursye8Du z+J3>Y^<3pdQv?&%IVuaAe>+WzZN2o-fF%=>(ZM>0Jn&C}BC)Oy)U3Xj4*JEeR~M(> zEs=-1$-#!pqrLiE{gt#}x?nEbea*|U19%+=wJ^G8v&XehvCp&YqvD^&@^M3JVz-E~ zmAU5odwQm%W7coo89dOa~WpP2bGO9v50!D_DU#sy^?elOw` zVcde`&%qn8l>nX+GQNmgawF31X^6Ivlm2SiKMjv|f*#L-E(~1n+tdWRjk(GX&lH|m z**m-e1pMGZX^Q|)Qj#lL510WvN->G-S0$b&PM2zIbu&o>#an~l}Cd}mYPhxUxlnn`~vm0K3*@{=1+YeqQt1MB=|Ab<;cj_ zj=9P6J4;fZAI(L06TRKqsP1_*dYHwWiRQ>$uiY%kJ~i?xN^eS+vq~fJCBTo{2$($_ ze6m({i|CLAvB>?ko>{hr?o#%xe#VOXeQ-h4bGCWhqq2p^#C4ZlfR$(yDOl1-{4FEg zW+Y1u?05FC?u46`491~4{0#-Y*O$I93{Rw38dCe5vG zhA+9g(2q&JypLpf`I)GCcMNK}=uLif?YZ*d1C;4fIDoS=uRg5k6c3WTq69&ztb1a+ zuI$|$`!qis;u)K2)Fh9zoVXsj_D&PJ4~7BJY8tcFLC_D=2Y_A|Y!=M6cW!Bx$dJnN zQ4#{{4kRCbCSD)B>|`(eBTcx9M4Y{5;!EcwG5f@E1Z5}ttWwMErLNMp*wb4Nm@FAq zmNU9vvfPXYs}{*kx20@ym==~}L@|VNx2zs=8CjZp55*?TSB5wqBd(p!wZ47>qP+7$ z?0{vgH_Ygd@otN14JCqHqij97u;gC)G=XYI0PUgjdWCxLSVgpr7gyuBm zNLu!e{nuh#zxoJLXD9Jh{_~Opc)?&Bigo30z|*e`$vmGII$LO}M0%P}b~S>yXvC&jV4@m~Ik#WCx%#vPlXpZDCF2 zOK*F&)aml~c5*PL%X{=qN2w~3#>5cmmX$r!Ua;YA4!THD^zjMX94igR(8z9g@5p}a z_22ys!@7?Hz8mOuE70_#Qc8Ddj$A9**cW_-?%Js3`DhN<7b{MZffpH_*=!rx zmdTCv*@L5es)dkjW^X^-znU=9kKG&|}goB^}{bd9I6Z?_Jy)`!12T z_)^D=Y60NcP0pY?1HW#cd5z8C!zBAa@*z~%x`|e8rYRM>8=u{pyy8yO_+j2mRK;}A zZCS0^{7viqWXw2V2m*FfIcSSqPYCYIwYOPAs7){rCI0S4>87+B^Fx?(uEIrv-d*TS z%3o|vRkQa&$lnMu_fD$w2k8q~qGxrCvd$$^Hy1^r*B#)&he$PCInCRmM#yrg4`1YI zP*>LIv=zbj1-3RZkd+l4?YI$n(n8m zq4C<@NH+gRr-N5h=0PK8bdm%T2*>d_xCZh_L_|BNnf2&-uzeXl!de3fBdeDNs$_V8 z3h`d;pj7;A_L1;f#JNMCA|WDl&V6YYyihK1<@;bH!tA~*KW6N@M40^N^7`6 z2x*4<4X)y@(zn@{t_`yR{Nno++xIom|i#MHeO-lB=hXUxc|%LXL+d*3a7rs!EJxn843bG-EpME^M>Gv%3!y z>Mzx(l)SS~QSkx!<4`3AQb!-Y1aCS2xlo@iL2MbionNjFg(kT&-=V$}n|2^))-lA& zYSa9@SzDzAvEtVF&pl$nG)K%^!D@K+5gyniQxYcMsCj23bzs$kbco9Yw_RyX#Sw?d zpmdy`kraWtHa*rtpf3LAb1$^`wsST)LnM6(Ap)#_9_P&5dbNJKZDubO7C7HfMYM@+ z$^PbGdpNvZolTYLCen}mDRz6D#SjQyO}|!c_7dNHZ_jsIH5x2|p^#uB_#54tn2Tza zL$NGs%1^QAO>e?h0I-FI1lIaop4*+r@LN2^bqYCw2N4r`5o7c;6G6eCUuq;3>R0%5 z-ojD5X3fwWMC-kkdxtDz))Y~uB3~}Lu0LAmp~EMae40_a4J(%0>l$ACjWc)T<`DlK zwDjCWEPF2SJ5YKl$l4V(V!p+ysG&f(+S2H+8qFE0pc>j;K=6ALx)dRoqAjWiWi$wO zKGs|m%8jBBFYWo+#6cZpyGdLlxOyEL!1F+L?;%^&yG+011~UKl^WDC>Vw0Gx!P2-a zO2A-l^!MPaa2b#)?1#39PuBamBFd2IIb%{Rd$J8nzyRFMI?OHV zGwfqK$-PmgmB}H>3eoR&xr`8wrr;~`Bx&WQMDbnc;D|$F&z|CMv}2#3D$kBFr-Lz<-6F zW!`Rd9qkvyM$?`Gkf_MixtZ^|0aH;VWM|NYfAvVM1uwEjh6#J!j>mg-C?tR+Rfm8n+i_1Pzq{ z%-asHSuvf8p|E)beI7s@F_FLuzPABSI>`w-Ylk$&H|!JFX`7GMde+^oPIxCjZ=ai! z2XAJyskssF&-<_n;z;7z+yfDeMvJrJLYsI&(~-roNzv1d-SK$JI$aTtgUuUn8J@tX z5MFGlcTtMSj4a7w#K81EIy?!~xzWl#3IpD$!@-7noRo;tEIn55pR;kk&0r@`o$e(7 zZ*!r}Pwv%w^LcyJ8{e7-6qFsz#mw=e;mMK;{`G9DwL3ta)JPCaZ)TAkroHS9Y*q_J zHZRS2Q+u0tEiMY{4jEM9$$pDW5TImU|FHFALzxRe+5-^3jpu&r6o`qf*wDB_j^z;z z*@Md21h2?8lpDLOb~haa0=pR?k>K}Qa6NdyD;sb6K%(84*>uFi|Jf7$zPRRgUWnuc zrDgoBXEN^xP_Ew76nmy%F}j7@YLp z_Q1c%#OyvNrK;TN8DPD$ zXZ=5xyn!PkI2E zlh-WaYH$zr`&1CvUk4%BDfOGNs(n-?7v#XM|D80Xa2~cx=F#xAB-M*j455iNl3^=Ce}zw2>hrbF(k<*vGlOoE7ilLDh6@$(!u=y|?Oe6f?!!^qj&|HtvX-OqfjH=N#s(%c>+T(=t5F2sx>g_&BT>~ zR=+75a5lsm0IYwcx6uk@#|^$9Pn`MD!`t}k8563lxcmT_!=AGPnH-449fYI6Dl>Q~ zPwiqck~oqLQa)Lz?DJzT*Bc*d+dhi>NE)+2`nUx~^NRn9_v$zSm8vQv->#D6-9AxH zAXpz5`BKR*sw+ccz%})@o-sK-%ehv_&Fj8yyWS-+*Vifuj z%QLEMC(+5QZyqc7dQeU`Uxx$%lC}=aFU8ZR$}jL2^ttYm9bfQ;WyN!$Y9m&v8(GG8 zR^K*bd|1mUw=~yC3k-KxSeB6rT*@@hIB^N$Ig^K3Ij3333*s66aaLSXZ#b4_-1N1S zC-kthfuKBi(!Fo}*L@ftV5@0;y2#+lV$=G+w>4v0^5>EyN9RES&Z_ido^>mD~G zIEH(-b*W|8*TKMXHs5l00_WXj38p_CcY&Akzo`D|z}gZ2gNBR3$#wBJ@J*eTR z-l~Zln4MtZHVm6(55=lC=Pk1-5xgJVLRMx~R9SFQ%$q?YV4l=2t=Syl9snT1xT^vi z6FVJ?eV|?~uDbA@mf3ci0#PHsaQA+bK~PW)VT}Ui^)=`Z0J)*S-@WTc>Ec7Na)5dX zFwtismL(qy$G5r1QFx!w(^F2jV!@~qZ3D@aNEYPM_q9swHEgDOHRYz2>iUj#-0ZQ; zNsVK*je3U-E%cmemAadK`-Xanc8~>ddQY#m?gijl&JY$o6H84xKv0Vj`9f=K&<=DE z zUccjwLDCtgBPFcdtz$^y2o+&knIx*VFcy8WQ%z%Zr$Ze83{o6eVC|bU#%qp{U2+@3 z6VoTFh{ulb5S%B@fO`pV{bAF-<);Fc7QF~6(gKqUw)*XsKzkbun|AD`x)twVhdu@n zvP9QF$QfnF2_@!pFUL|oCCI`P7nIk}5Re;*e2CSO52a*@92U&H0j##XH^gdQFW3Wz zAe3xJJPRs6Znq6lIa;pYxXURBfzcywB;^3A$N#=L14y$rP72uY25*wn)+Qbw=#CBQ^O{iZdIhbkt(5h*v7WJ#JFhTN;_psT6iJ z=3;f!!DS@-jv)-w?V_zq0(5+1@T!4@XL)W8ks8G5i6ZmykQokVh91@Qt8hB^kdyNT z&SF@*g82Scfekx4n>Z6h$ZFo1#^-1(Tj8FfOc=@K9ft5{p0tUZNXpPIzC}qa{+tXu zl(xVrAE=DDP6*bIyNqZvKwM9cf{*e6i;DL;QnBQwrbG1=D4P-~N2m=$8l{dRRXIcA zml&oNY`Db4MibSRJiaOjJ$B9eWsPr{Aap_sn>PbN_n}i!SKOD{1ylt+8GyI4OVGVY ze4#37;)z7NQ5;1njlET;q5&NX#6OY*;sux{(ivZg5h2D>+nRTFxsRALl{;}HP@X{J54aO5)(lZ`RwrmvKxqKQbHO=k(1>O2M17d=F7y$ ziYCLq!nM^q&m#N;h^-{>i6DaT|}U z1b}E$cOO>L7&DpFQ1B-SivAlQZBpntwoz-<@VvTAVkrT^K4Q7~(*Ju&jTX)vdw+H< zF(aDpGB6X4Zqae5W$w}nITm3RjJ-^iqNq5C%!RV*wex|$tXXPEABY@W-*o(wH{zCt z0B|;XkY2}5Wq++;9&kkwi#aQ)=mD;4c=>|(pNy}kB!cGtL!q2<&&3bzK)~acv;+sK z$N~4J?LRk>gFI1hyMIJbiyU~PWF`odLmdE&DHY`-8Y2Hm=n6p3A)I8BE9||$d6a+Vsmdu%4hsqmNUcpF6s1eAq zK|2COMqs0TWY-;+*1#p0mYcg~>K1}R<4=wi;e_)Wu26mvgH~n7y?xF(zKBvmm!rRe zgg0;H90l)^!Ea)Z9ssAiVC7(k-u-2*QV9D#)~+wIqP&ofPvXRsO5iKOan0~gh0isjCk+PF1RYL-2b+pK$?iLQpMF_&T!s;5# z{%H_*Dpw-Ck(V!y?a`dz!M^IGVEIyd1O-6?&KZQ*I`LXiB1(fKwD*8YI7@g+-s`bq zRxtgl#DtkA-}#n`aR7V80cW4B)+sd@`1hZ7BmjX; zbL7>iQoD-dex9kR25F(NCe|@d=$AC9vJ`QyV{z{NbR@k{;AQ3>{T%!Nqbl@;=fbCqdL5HV;b~A4!d>zM|CSrx7q!! z`xdQwimCwYOFLi;Me{D!tH&_Dr_E7QU;Eg@1e_EFu*>HsIv>pkwGW1e0JRhi z-ed9l`o5i-imK&cmb$rqU3gTp5Uk965697HyIjPDHCrG9&Io~vz_hP@r||6bl*4cj z$F|b+iDCVxSQ_kr=_ywc8h3j{QdRP3JAKptpeXKKUtve4oEOcG_Cr;SrAN4Y(wa&L zf4H>G_O9da<(&q@%PIDfUxXlj!JhS_Hq;>cDc@X9llRg^b7LT7^5>WH@`jE~j(_`x zO9=%?)Ln7$26Kh3-PPV52^$Vm`5U3WqoE^}aD64z_@28How+#w-95g)hN+`PI)3x4 zMx?l8(D|Z+ZH(nP;+^-`ECToUGdDxI?hN&xj!xu^JCF1?4YYH5YS(J(zUXm4Iq^){UzoJ>%RTFce1?MSe%>JGVFM+1}?t z-zwCChRxormwHK2hUFvSR!qrSnSQ7`1&NKE}VH zYt5jji+<$A790Kwo(|7|fAGePWdVLCexEkf08CORh|rAKGyc}@v{EV#G;hZcQtS_mFD3k;r+@mexX!Ulp?%?# zLN7f1NJ|}F?`PLmb%n&Nd*7d$uttS-UNdOY``k3VS2siZsbkfUR=|wEOCU_PDf^lI zw=bKYt2gzFKB%$IWT+l$rhm47d>kATE-5oE(NXoI%vE1B`$U5s&yBy1=fmH?Kl&s& zcdT>YE>qCnL>){LA&h|4)eHLb94UUPGfEz4c$1WxNSbJ&YqGw};N<$=x~BTWNIErD ziYSvi6NmGsMHSd`QB164iW|~|??dDX>+W(2(B>wwKFK~QKB+!wKDE7RN52k*X5AM% zpEq;9A&Moh36;71WHz4+W0Y*9zt-o_j34irAs0_PNz6%lN>0Cxb}(O`^WMGZ8JtHW z_hE3IyifL#k|fFPM1e%sFs3JmTPG$LJ*9cUe95u_kmxzq@J#G*PwNwS*cVo7wAV+7I4F3d!jGfE=9dT(>g^OGY&&~)Hfo8 z&U{u?^&jmdY5e-kaI+G|p@v;>zpM`iV;mX!Wc$tMH?Cjw_50#i@+QQ`6w83h>3i2} z9udUVIq2f!Q~epkpZ6op-_YOfDaFmpFXAwT-*Xd`*)n$4zQ2dkj@wUp3P4E zoAG-WWr4Hb7Yei}rG(W=^fKgqwv3sJP7kFTJ+JV)SGfN3e7pQumxubV`Q>!0P4VR- zq&X1<{Pyex@21`mI&+J*lGjp~3tv2;dshey2?k^MXEIni$)b8yBK;4EC+mY_cM^q2 zua}u3G|Hq|mss@nI|R;qs(#*xcKB20kF-$H#|YauiS(x5E9I%(eLM}nxhwI~nx|tn z8&*A13WuJJC))nG)HpW{+xoYVf`yC)J~}43uZL!$*Z>`$bfe3%Ot!#yg2DK*5pRkS zU_vRGn7gABNn540&A$~6Oi^P#SU2=c;Zvf181qNI$~rRP&nbL30X%q~*gz zt)M>FuBqpo*uCiGcfFD{wQv4Bkvcknh(oejRZ!9+`D2R=iQA{@o0Zo(KKZ;!qO%vj z7v^)A)tJv+~B0j148}nn-rOI1&P8yg$T^aCb^Sjm(^rw0X zbGnj`Gp4@X-!Vxj-76RI*{oMN8_xN+oFgPPu7sVQmUkQNvR~(G(uNY>^}VTQWv?d* zHn?G#QdfPJTsL&X{MSD|?0 z6_oYLQdEBmj3TH9s&zS2W9^jD&3&!%q4;d~wAWM>d=*oL$UOmZc;Ck@dziKX@+ z$}0QH)V-2~>52s7P`GdpVul(B^{|veRPk&(-7!JAC*|^jB Sb?G)iz>lsr;GWlnhyFkLVDBdY literal 0 HcmV?d00001 diff --git a/packages/curve-ui-kit/public/fonts/Hubot-Sans.woff2 b/packages/curve-ui-kit/public/fonts/Hubot-Sans.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c8281213136fda52ff9d74167f5be12558cb74b5 GIT binary patch literal 170164 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 ZG(Giu+waHE=KLP3?{_}_7ii^D008U2F!ule literal 0 HcmV?d00001 diff --git a/packages/curve-ui-kit/public/fonts/Mona-Sans.woff2 b/packages/curve-ui-kit/public/fonts/Mona-Sans.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d88d5ff27bea51dfc9954392acd7933d642415c9 GIT binary patch literal 137140 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 z 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ෝ((*zrDe-Wb z1BD3;(}|#G1H%}`FowN{i+!xO9`~oaYM`C^`rT>{Oy(c+d%M3MZie@MuVZldb0tuZ zr~A^155BiP+G3?-L(;>84i1Qn)UGgZT6>8Ba-sF zxCxxX4{|iOl%|Wa9qgUB-g8WU>bp|an(L`aZh3WgP2Q>I8r0H0cl)54nYr6)={t!8 z5)#FzOkP@?rle)kx|5Qwr8yNvb9ggMm(7g`Ho`Jq&z);-rK~EW4YSlIzu)Y`93CE= zEUtI;5ep>vhfWr$D;L#P(`3Xr5K5LxERpAj`Sd@w!;9#R8*Z1?f77;36W`3=&Am8N zOdwOGTCJ>(g0faM^O@HluG0D%5qA9=#iO$%G4LcV*@LjA8}vC|V%1vSfY)s6lJqLh z9U8YxOJp-qclDf{^amzPBGH)708f?!9>)^P$_*~#qJz+kc;T*;1+V6PN+;nXV}j6} zs#dxS2h^o-0cok``QwP|Jymq7LYGGkVg0z!>IeJvB9!LU&e3HhW;Yt0g2>n7*jGNe z6jnUv$xkU6Hgr1a5$!g)Tgq+<2T-?kTg;FOEu`g&@ z7xJjys>LgX^8wcP+CjepuPZ^=& zUc|b#=uCIk+pP=18 zZN9l^w12O9@Oppjxm>B*>ZHx08sg>I^!1z7yx}{}{F&;hGSh3-FW-{BU;b|OhW3`H zG(I~wIN^6=#`*d20gpEoGFk#}hQ7`q5^Q}+u!bEd6PiLX+z7Kt)4d;&>nP1bKK81e zy-wWYbL*;NN;zjayT3D7!rhI?f~fB;kgRAB%>L6oKoW1ZZTD=#JL$V^aSEHID?F4n z{?CFme%R{9$ut7F97s50)88^4X+4e2sp@R1diiFH{$7F3|Ign~{r+h`@qDMUZz=++M64oTadu_JUsb>elG0rm=s2KL};nMPN|2n+mKJ<23VT zihXI_$FH|$Ca_SsQ`rx2UFx{giD`xyt;}7;EVL=BNz>I`J-WV}OfN>~F}=AvGWYxb zVI*SRT4?`za}8-o-P7Q>rpuaN`Np~}>&5qcIvm>G2dj#or)keNF>Y?^P+WrN^nx+O z;4T=R1FWLEn6^x2&J3Y(V}za1QS9Em9rJ5dnDB4kRz608Rc44SzkK_4_HxX`e~a6@ zZq>4zn<3QS+^d@|tsta!jsp`5=ewU&$m{c-(iD2;%;Ki`0lkfUc=)%jK4N5q-ePe_ z%JKoA3tA8KeXC{ef4olTPeu*i(Ke5HzVgZWNeRm+{*C4}Ivw6n%yz8)B8JZwi>NUS zB#=whimHc(!unLpLQ;H8&S~`h>!Vu-hGoSqMOkFS(M@UAJuOAVQqlEXN=u{ zo%ujs?&O1|xlo*tH4*Q8DN%kPR*CfDTOIj9f}WD1#KW$S z3h%}}xHsr`x{gya$(s~OW-QA25m3jebXr4{8R@w-opSMP2QHOJ-s#r-vM)nJw8tGO z^AZm2$!wJuv1l7gy2lO+^M`XijS%+e)~aT;_k$30h+UFUa*fV3ZZ2pn{G8kCojynK z7z6!d7QZm@dZ7iMr{Qw{ZJk%WXjfl1_*r};`R2!ERr+1Rf=T_laH3hcOcIqytBL<=Bs6)ql8P{zUN8YZ-?_?bifP30@R@OYr^Z zjdn~`X?50aZPsiJC_Lz{uyQMPIkky>bYKWf_`KKYgaXBzIB{iuFW*?Ptm=4?XKcrn zg~L3jF_th>BOSZ(!m$sGD`Q@)K_o;tfMb%Cj(c5JB-$x`PE@BH9g(Kbv%{*frU18E zLkDO>=6S?!D0l;#eZDE)xPxWCQUM{B6SxOdonkHsF$%j0dUvaxkd$CDG-VbYl{Gkv;Hi zPM?sV$J9?xL+AJpSH$%`N=v4V)$ylF&pjCnzm|b+-FcT)CAgYBOSoql7YE3|n@hRH zfj_ieF$nxEx31-CX}I+mCo_|ilEb#IiR`(3MC02Pur>(^^K(Li3r^hUY+HV7zXGil zUn~}>b@r3I_st$6F^krK1|Dj8p)RG`^3hx)hZpWE)5RO*`ITxc0hlV z)tX7R*4)xE=2s9=5*#t566`Zo0;SlF;SCwEt2s0Y#`G1ktQ}O-%CgKI5?f3`kZ)KY zDvB#JtY?gQN!V&1>iDEi*x_|qV|zf5LdQ4 z9O3d-cf9D%Q9LmHo?WJBRsFddh)}LnMP}#_@30xt>nmAy+%O(b_Gq(qo8G8W>9D%m z>L}};<pM`VRay)?rtE45(GD==vL0+~iT(xm;-{(*LAF$gU zb2O8&d>V2&hVrww?7jCh$?gNI8y%@l+T5f{YlL;TXyYO`7X=b}^11ozx^K|O-Em|) zIPl!5&gzOEP0R5HCa%8)f$F$5s~awZzACfo0h5~B*$TfAx2ThII=n2QQI`DD^mt{c z1CY)4-GPzvAd-Gh!7m;P$} z{7U=XwwC#?ymph_KJG3~dZk_WWs~-X@bweg%-q4_!-^;~rH669sc;Ov&bU?uOd!h% z-SPg85qBFbHQO=3vjCc2UGmNxmn6iImQB^(Z0TFtpc$shpWSyX-&W2% zhfjJfF8NB%hg@nqyQkcx@JEj6hMgaSJg)`6IfSyszT|9|X}YRg4GH+k!=pN+ zI8b@N_UNUQ->aB+f)AQ@DfN4vNy${z1XPM4rJb6}>&<wbj-qV;ibi99vRiVkhg>COBXbu^FBmJI*2@Cxy1Xu%yL7m*Y3|ly<&#z#ciwjjy@nL) zj$*Cj(BIIJyC=Vuw>lnlJ#!Tgyxa)AH|B=5?X(Ly$^*EmsoCU^e8!M7PW^XrW^tit zI!F=FS(Y;+KW1O0dUH%gm{-LY!YQj!6(cM6>cLzB#}BUB^%-@)ZyIAUxUAf}D2VEP zVN2(VPmA^$;+>B#7`!ELyk(4Od@H=vEzu<2T*cD0Q8Y+HbVtG46!f|2)z8JrVbiYc zJWpH`frTPij`{K}3FB8LeT$a(>j$>Z~rtY}o@$-juUY_Dv<38))k`h=ps zgu4}ofBnU-n!bDO>wc2SW7K!*{mnZv#^FNLb8C%aXzG(8yGYa4$g-B-{%I~T3&myO z%)xe#$Je*d{v<*sc)L%rR5usXrta-*89uGt{aEhxok`*4B4V@Q;DGE7U!TIo{RncS zDi_&t{@9+J(`#p~ChWrD79|t+Mq^P#kG392Uo^|Oa1olMo7N1xF~7C=zX^tbs#}fNLcG2#2imG zUY9yXJKwRquOlHTiu-Dbd9o;!TIB?TfsUK&oGhWPN62H0$(J11T7e5^Gqod_7RNyg z7jqtD0}YAglv3p*=`h|WdsM*8VS1c~!Xd>`#L@y20qFi!T1PXO%9K(phCWbH*v zLp~8NYfP%Q4wMC1dpz(?vS@_51qwuZR*+UN(Hn>Sjo@V_FflR`gTyu)h)>+Ml$BKr z_+}$eRxj+@T-@TZ1Vz>&foiKyQua%uOj8+K0hTm`r5Z=eibPjx;R!<`pF=ZXFE}oz-)XqB%!k`BF-yT$8?dD zgK(bE?YESj*V0z$I?Y0@wSU^1g4V&eg5;`Id5ECdDR~>0av+rhV;-N@b^QyQa>9P& zek1(Y*CW7KJ?$F$xjcYb zs`KB$>U>KO?dGefgb=&FU%$-<^VFemmG1evJs0n-jGD^_)mR-`&zn`1%=NZ4gR+o} z%gX571Uf6Fh(wzpiaLW*W-~ZhFxm1u=4I&hHJ9f5+YdEvb%-C+?$(W5VYT-T?YSKN zE0Mq^ayL^Nd4=2ZtHGm@im}?-?99jQHUr(ER*4%plom)Y9p=vPZr}T?$WLo5gocTv zO?VtQE~AUOih3{9`lNA^$n;SnvDSt=12+-~xc+r)YSLzz)sgm}#5pR7uJ+Irg?ylD zbOk1$E{&`uH#}-BeCvo}2rb6H;1l>={Ejalw^Ykj?G0+!vbNEa!{-IA>@_d$Ij~xn z49ql^KIv7iYJAvyNz?G*WFi^8>8(30yC+fs*bvA{zR24zuO|sKhr(i>F{hXlT_Yb7 ziR0bS(s{3@@4J`8E-Q&TSwhE4?sh#H*wuQes50r(1e3t z;D&ezL`YJ=hQt>@`9k#rO$b3TsYGZnUK+8NxTB4|%l)-B{n>9LKND7@)Mn&} zeWNo?BR70@`?x(56oVNE-2F#-`DOMcIAeOSr6A)NUoDe*Ms;s5?;}|RUpG-( zfsYF9xQU9W$C#kc8DoJS=Qs6gx*4+gh|i8;NWra1+xu^!oZy-hc`8|de1yVy#6lsSN;utk}cPEzQ*YplKu{X}EejL7nKgHkUZ^rnCx@dZ< zwXntB$>U?WC4+fx0-K6<}Fm&k<3!Y0-YKm`oMY>r_pdCusM4g)mdwhOJsvTDS-=YrNpa2% zi;)vk-6Um>I!m37ScNk4LeBNE)E0eiIc1ru{(+Ay(@j(NlV10cuLC8^ZECdj6ggvv zEh0K5(`=7Gjl-p4uUM}RM^r(n6Th=WQKhl#38>-kIp@$+tk``wd)vA?KdKv%THZf! zX}ra`3>Fs#aDT}-ByFSf0#Rn29}E!^XPEYN=;Tm2M0-u_ALoKNEz2k*%^YlJ#Ppco zWYgEt;*dk*@R8iI@w9-su^Lt)PkXFHs>HhMcaG=z}Hn1(D)Ts3rBps=D1d^qK zVk^Bf%h*fT&_^@EUj8WL-h_V0b0d@&eX|_K)#28F)w$5!!=~J9TvQF|Q&K?Atn!%F zvUt?5!hSc;vE|7+&0OEqR3dmmBtgEbxp{;sxsjQ5^}<5q$57FL7Ay}$eWge;N>T1p z7S+CDA?Gbn>(XkIq%j-bdgj@@ZmpkZ4yZ1RopSov-P(834n_1V)A9AhVi2e%$BoEj zsA@-)mEg)mpD*IsG$&!^q@PP_B?{xPQLh$xy5n?z^HjOvctIvZ*UhBo)~mtWs&z_7 zKos$hbUoOE&-u_77TMKi+;x(XNZjw(%U%pqmv+OOYVl|w0Jy=`V z))Vj8&wJ_KenS($r@PZW&(F`n)32mbQfIjwbwxp@8){Jd6@9j|mGAkar+p2ch|5ybp9utI+AS9EgQu2DOkWGu)K|2% z`0CO!-4Mbdj1JBMhqJJ-z*xHOO)f#yihV$-iECy67=Qg^frEv)MiuGOZA=$}7lT7G z!>-mbDg%4rng;T+LY(KYK2xEHs#efeAl>#V3kLxt@~R8_fwAhzXe>nOZa*_BfZr<# zE`h{Sk)hi}NqriEv(lA{W*`#g_`t~}n#{KeF&DciX>UM7K6Ewc9L8CytfM(od^7Q^pWdgC$D8ZR z)z|toUM}uH{mXTJ)6rX{xvVivxB>}ftUUv?K~fi-gBWIH#;lHVN=h?$8(qz*@yRJ= z+s9z130~fYUD;DCW4de?UzUp+#+`~?Pq@8);ebLC9A5vPm42>X{QXyd5G%m<@~^-D z?{{+cOK*AKO%qKMF{)-Ut-y+Xt=LY0701=>-B z)CKRO;9HBz$Q*kP(gBVRb-6bo*&jz~W_H}ILu9@$e>`r{fOW8>K zVKcUlTG`ZZq35}ktIeX}gLz#y(jTnO)@lXb(Ic3w@$tx;_23R_B&)`NZl()G^%ZcM zQ7y_kc&)>p6vFMODvc+5GO0h-~{Bps~l7N(K@hV!{O@(r_s$SwdE1;DQQAN~J?2 zQW&x34qSZ#Bb;Y9N3WO*W=TP><+K-h?0b<=r@MB=B8fGh?|RSl2zm+=wum`}vL)#- zAX0~$BxlYngx^lRYMP$ec#$ok523{AExEpqljEI*W zVdKs^#&pcoSlr`*23JwfQXW|1;BlU+sMM{T6OKSc{C@Velc@QBzan3~*?= zVsP*1kOW-XzmtI1-b~m@p*V@{9u$ImcO?X?A5R^{*V^@%=q!*a`I;*C%|m&xru?df z6%4EP%bL0}Zo)06L~Y7g%gHh%lJjpImuU$aIb}CSFG4+tpdwT2H5b}8;NY>tdY-3{ zD2a${mwgAZLab)0X7)T4QH?xI)5Ic#jZ%enEW}A7gHDFQSnAZ4k)6SkFtnz4kee5ahqIGpJ~q z{3J+PQyuRVDlj5*;W^JlpePGSg#@d$LWv9jQx!1GY?>U;^q$cU6&q5N1DoTtxZdO| zIVPc!HfPl)G<03RDXe-RP&F`tElb&P{Wm@has)agJt-Qx=V+OlP`$Y2ZL(pxH2%|66_G3Uw}Hq<~WDOxn0Nylh)#&Nl1JQfaQ zNq%N9V#9B4k_S}=Gw$96R;(%k++&cTMBg;v429#&f7yy?;MScYj< zHxcD-m|)`_2ot)IWAb#PAxH7J405s1UstR^kU8f=mQhYJ-^%#a5h+ILDDB2ib80UxR6*f zNz;^!Oyvn`FC8Lw=iF?HT9l$Ltk}_hPG(lAQtJ($bxk)hp-qPsR6vUPgzpE3nU;eP z5|VUxB@#SLi-$s)pZ3w_0ak|h8qq%reIgHK1(_D5V$q4P*D+8IVf5HT4z5i7hK24^ zy-R^9)m<++mz>nk7<|kd@lF5~1khbOppWl+Lqdu+ZOPVojM z?`#~xrehYChk3}6+<=`BOd$-DMXn=DIsg>Q3XQVPqupdDw23ttn2~LYYDhUS9Te`K zd!p68=*hTLK4j#hD5G;4$03i-J#Y;9UTl{9lojU!LDdHjN0mCXE9!uDvm_ikmGOF% z?}lDiQ5RiuuP8B01nj&;JiWwMH3xOSy8gF))B6U0b(&%qdN6YU^zt}kA1;;Jt!|J@ z4z!zU)i{SYf&nE78hrm;_pegWyez2f|F!C(uy4on<4?h`YeArIJ&{E>CV!BQ#^$bM z;r|{O_z@(($JK}Kfqr5kZ{Et9{rDl7fVW=!&MfWH#T;y(KY}?mp zI0~J}rv+N)Mo}3{J>fvu%G2m5*13SgQCLv~PsqVE;m1_Lth!?2S8B3iBg(A;heMzc zzhmHt!x3Rur_n)lWBv%fz-)e?rRw9;z44v?k~lv>4P~p7R6bV$x@wpOxjK3v zzl}qm`ew7g_zPH3iYX*nk-*s}@7#YH;lb|hyZ0YHKGA05!9YPY(tS*0)IWaw@WH*? zX&OkhLEFBSiZhx<)io5M|H5-Iz%um;^s@Lc{#Y%=3vWEok)H{9Hwx&u$lzKepbzhz zGca3mrHV6wPd- zA%D z(d(=7{5)MGLf~OOsA6y^gAhKO2tiUA4pK=W0cV>@36l(TDC+YI5Pl+j+5<7IQv|Fw zxOU@?Ev1sXzq-9wt%dI9m;rK|P_V3wRe8@mqLa3g)Wf=TwQyXshBgx&F`QZj2q_qP zqN*&Ws$&4rHcHI-9`4iFAuyg5Qwx<5ne{HucH)|oCm%6*uCCbi-i3t0S`}tv2#{Gl zNpvL_;xjqbvnK2U<7q~fMEV?>?_OijX!Qo2TCX!F{Ct@TY7SaQ5dERo8xH00UP&f0 zVqwJ&y@k77la{r$ONs&Y_yiEOo%@4u0!P1L5@NAdS}TPMdL@NbGb!7Jro~Ovnm=}j z@$UY(@2eSBHCRp>ZuHJtgG=W$O^%$XGjC5(Ynr)$dJ#)(gvjiGCGAZ&d(vn{_l4me z@g}l%86gcLFZgl693IRsqGn9yA!-V_#eKOkeqdQV4HOeF=|tMEB~hNH{TINo_3vn? zJHo&s#yjjVo_cLf=Z!XeVX~977NJR+YYZ}lU7&#GOoG2nCUK9ze z6a%6Xr!|_xGD5~7_EXx-X1v<19Edh&8hv3(>f&zQ22n2uRolhdvk!UN5)yL+FP#nJY@C3psqP%fCPG9@hbJ=$K6eF+NMJ^vz@oYE54Axhj|)?%ni!t zoK9Da?ARY2!m!6JhpNbFX6r;R7epCgo$E@bX8YFj1tbl$X8Hy7!$}u%h=FqI#Z%9v z=b_M^*QUAH{t&U&GK0dJ>8tzut(x_|GH(uRc1A>ee*6e_0}=NA zbd*Y^6)UM2_;wINNTXF*!tS)t0#<6_LtW_tk*%Y0?q)VkJWIlc6{1RvP#2}uZZ2#@ zNFht_((0^{0oIKSluhCJfK@0(#l3k<#ql?Ut6YuaSDKA}T%{w!Dq{`xmj~yIf zC|ZKZ9ym|(U>gTGe|t{Pzd!Y}-^y6P%}Un(=-Bvy0>?pPP$pZpB~8fyQdFkQ#R@O` zX~ldHNYqeOK`6!9#^(rGDV#W?^(oGF)sxh7^Q*$xQf;tew}S+!oPOYLZ$A{2q#F~* z>BiK&{6x7Er5m@4>wb-g7Quq*wk0S8U%^SwhWR9a-iVGdO}+qQ<>Ikqy-?2Ff7tEx z3;t3H<>f9IF(ps66nL$bOE$YA^NCOUAC3A&o4bS&fz+LLwg>@BaKGb8)U{{o^XcQs zj}kGs5l-SFEV)?^6%6z3)oj#n7Bw1xq(UMS5iTBCf_Lqf@h>$5g>+b&oJnJ|9*o3O zgmiz!q`?gF+-1+5SRJ;|^IcTb+@-3bs;a80V!5YWhJw4JP>fJ@0GO*R=~0RGeXc2J z$>Ji^N)j3BJXSv3;zr`Gc}6`+Xf#lk5c6yzw9JUrvl|gtuVf)dM8XYeVDMQ)SbJR0 zHC}TF7^=YbsXWzGYArfh7atm#Ci#IjKb}Go#yddaR1Hf+Ai%P&<{kBSNw*kYQXDMe zOkg%Ja9UU-;`JPPZ=$!$MYVt+o*y-J47b^IWI1Qw2*~WnLwl$~&Ab|tm5~d}krn~1 z8v!8^nb0n*1VNOAL{o2TvLHZgF2NJ{>Jg&eXuq|1l)L#Xa7A4Yk=4Dm&8tK4R65J^ zWrJsmXeGsHb;L5ccr>zRtSfb^Ifr7d`&G|sGmXJboZif~=N*76m5wdD0uU$^%A%ndkG*w8Z0#)G8n)ECgc{76*g&pr zm9&b*=|5Oj+qp79mtAK)Htin{n7#=u-f)rG;%M5gcK}MYurUT;rEu)*Y}#$?*{7C- z7W3>mOysTI&il$n)0u9~#!SMy54q$tPDT49dV;nqlsc5>ToU&ter)^UP?W^m3?iDz zr$g2PQa-V4nU$6#5cdoAm@{oZxw2t?VDO5Hb*GvgD_~Jj1ShS=ph^m zMrv--;TZ(ehrmO1FJ*Q+(+bGm2@`X(0OX>%TOl?e5hOmE_1Xv#jy+h_$mlZ8gxEyl zdd_h%-Kb-7?shJ*|1~8LWQ30&(SwsayK?e(WF?UN)a^ubd zO(-}Z4#5DzFHkv*uu+}3gSwDp`oNgyb0jO3G**nt}RNcK+?K}eC7vsrfW)<#H2`|!uMlpi6v!4@D&Q0u{ z`3vPLFNKA}WXGO_uCcb~@HnphC}Zom8yshxQe=ed{}qYh?79y$9_qzLtyVH*v=tqU zoob7g4AHC7$Pm+AaRaLTM??J~TzKD@8Rdqb1S<$2iGXg3T+t+Io3;A%z{hUpvzb(q zX)0|hl5{tq2Av+iN15)%#Rb!^*2ZIEojW@Lj68g6?4%|uq9TcPnQRDIxNv%$oNd?H zIa(gLxR$um7fQrq0q^a@lprx=S?gBRtw()Zw&j-mgR)R62c;XfJD^w@N1Ak61Yz*q zxTV=oJX!9K+8w;WyUWbQrp+vns~EfYW2i!-(v-8)xOZ9!&XNbu2@=-`2eXn0T8`pH z;5ecbVG;6rP8G9iqoT5Oh_;JOFfEw{dNFTXR+GnFsZx|>xz{uyZJ#I)yzg2Z;ef02 z$V3TFZn7h(S@?M4dw3(Lif1waW$&g9T4Y(<&Y9FycUo&Ki4HEAFDOdKpj|=l&2SA; zG8Sj`ZYE^G_~DNgJ*6*Sp6)Rq^_uQ60Hp3iG|k_@R)mLY=)HHrF=$AdKjgT3(g`iA z8H=%w8gqJ$XfFmI2oU_L0p%PWRIX{e)TfzssM#X3Mw~WIQB^eU^4GMYVe1agc@NL2 z@Bn5U2aKq$^4KkDD;UXr0{VxMPEwf zqlrWCmlQH(+38YB{d2}DsGttWg-M^jAM?jI*oy6h1xQz3#ANzKqP&0Um3_MJFB5^{IjPl_*#Q9 zGUxdKQdkfr`Ci>*g{i_6ct|OR2VrTr;k|aB(o@DG$bm44`wtE>E!^Mumpom6Upj$! zk=XB9v05#5lDq*JFJ~w!Og}& zuUn5y9=CQ@iw&%B1qB=ROZYXx^O|LtinG1$>P6iJ?|bjP2UnF1ow0nH8dHVwKb1pR zDeIHWt;F5Q>sFi(LB5qtyemcpQ34WyS1c}HigH5Z62o!zQ^hG+a=>2i>^~H^1UQza=?-sttf!NS@A+qik5ae8c_frKslt_#f(zpT>`FilF zcOOcc;}UK9w$rSHUw?ZFMpa#M9t|6_pgNFqoDB;}7(EKby z2uuZ$x{Yt!Q!Z@6EJ6(TZ(PA7#IcVGWiT}t6SIbyI|cvKA8nn12b-Z@4D{=aFZTrR z>~bRq6?UtMWN^hSTufwTk5AVTZr?xBtGj0ZK5TWc=DDIEp7yS()5pmjJk>wFljJ>} z-^{l#I7DJ5z;K|B;t>63NPIkV?>+a-b;8B2NwTf+)*6+=#nE1uesnj1LlQSvQ9pusRjc*d z)P%JP!UUKhk(lBG%a_4vpQg_2PATZ{;7Qk;7PD_bp|^*VL|G)#l1oKO{!8f*Lx!Ow z$Y)rkLmkI%&uJWB=L?y|6Q7bqWAI=-rg}CMB_)oF?a_E)#f-v+xj{c4g(}C;;a!bZ zyE|BNm=IXsqx9;PH#J@0SPmA!0R>$jO(+V?EG4RGxaP-wi&Q^JAc|pTL_@?(X>Can z3i3eTDeS@s)ht0-A1ol#0poy^$c}F$MnTvd2T^mS4onyh)S~Si%C^Kr)3Q2elIa)T zi1ULfgT&Q-5-!Hu;$XmU&7y84Z}qPZ>OU}uHXCs)VWc$lAl00xa<$$*O22OF0*xNg z%YL;1{zk)QxIK+3;LT7|J} zjnxKNh&2-1QGe`7$wU+h&S;a^}YSZJvGyH*i0qG=*s+worqUX_E1%#RF8`X2@+f6qDysTC+}N~L4Xwsiz35IhS4`929b zl0N{9r2Yx;ZGr&(WdAhytDQ5jZr(M_gQj{Auow_aV8l%@#V^CG_%!fz#a{wH#*p|i z3=et_;%u<*gSl^(G3z28etwrnes0-oQ+Yu43RsFvK^|84ZZuNp9`GAtDcH9o{|b1B zlB{(T&*_%V!j%lExM_sx#5etY?(+>k*|6lR!9OVWbLh~aRahkH{Q#oy3GmBm z9AN(s6|aIN@*H^+{w8-@*?7V>|82lNlRM^JcQSp5l$Ssu{WT!S{WzecvKN8B5YNC6 z`F%sjte!{(;p1 z?`?esD(eU#F@_irXrcpp(?i-A>iM_`e1+M5k_32Xr?5gc*t8yS9U}7#w<3)8E(qoO z)AkjD*6-i)`Fp-2-PysRo#-97(&$6BZK<@5=t{CkRRVEtq6x^x=z2~=k^Kh zEUWIeR^-C{Oi^!TfvnlXq1(sGt!c-nrN*az-DMj#mn<&o9w!(N)Qn-3M)QVa)eD;5 z=c=%$J-hzAqqV*nF0Xbc@sD(V+sAK{$HtN%>#57?fn%uDK-WM%*GI=j7z^-RVrChp zd=EZ{nwI3}dv|AtlKnKL%hC^H#gpFfWZf>lEnn4ixU*?K$P}KxGV#HoMgpdf9@eW# z!qtcFq5ZN0g5NweJ95cR_{!Wq3KpiC=p5Fux?3LSc_<}kXBE%6*JXAMJ4u8d$2krKE){xNl7jO= zzMF%H6#3R_BMCvy`J_YTd8dRN{*P9aep z?YsYPkNRnPTmX=1`qhw%+At2I+^P3`(_KJtWdLJLm`=*#4sCluB!p(mhe}NY^Fw1w zP*aJ4uTQ0TF?vi+jf@eg?W@HBmM<_gn}y#|JV_GE4UHRUKAVNtxD)c}N=(ol z_23pxDdq=)AOQr6Kp2Jy+4ldTyKXMRhiSns{M;}n0Y5PUXs4+U%zrl^y)rz#8{=qH zNUqb#J1ua8GPml%9_y=12^)c_-_vp>O5x<40v_XhBSA%-YvMoKTJ@zOW~_bQY7(`} z!0~y@kg;{!TZ+Oo!aC|UQ_7d9wO>EUe9#?i`)x&C^5(nUs<;jcQj?tT=rXxkXK(5( zofU-oMC6Uebl}Y&CT@<{oI(T>6CcuvqKQu78)3A`@ZVm2OtYH4oo>*n>bW&RX~ zj(l5;DAPA1p)r5#CXvVVvKiaM_)%R+fAxjAKW>4njc54U0t8#^NMMchc5d-InTvp* z{XELhwq8*oqSJ1SZD`zA1-FnNy!(y-1NK&Ehl?t`cc?_t?i3l6M;y{fmr)ifIX4?p zLd9;N?Ge&mbE%zNp(FiwE1I79i zcG5u1t4~-1;-D%(11CG*~Rms48O>JS`;labjQTxoB&uT9^WTB@B^1n?Q>AdqJEVJybfBOjZY@HBLh1uxS0MP+djB1w=G7m>nCN=j%E zORSJwhOW1%#XOBd^fzHB{h-878XcLgQvp~qq^P9pBH;*2swTWHS*lsTq?aVT; zq$(g0&&b>y5f;Lk#0{V-0%VlF1P`bpY~r;=q)e+n=Qb}X(??M#BfE&s=a0qx%k2~7 zTTMCCy;@In$!bLuf~pM~hGBv%X{)oJF7e5;DB3CS%;F!OKiB)nNy?pJfti5Mpd|0u zgW{Yl^9)fc(F`jYoxu<`(tOwO6o#JIo*^^2G{Lo9vNVMiVR$YsV;jiXHx%gB^xP+T zi@TwNq}V`Yf}&>N6^5*L0o3BPb|2@TM4_`D*-mYZ#rod&H>VtxghJ+cf(*h+hxA+v z-f5@76zy`Sz@cEO(9k7b8TA~j&?U8@Ad9+{Ac?xl!lQPyQco9>!$K@?5dn3=H!R1^{1Dp(DT zAy!i*LKG1;FdUj^p9v9x9Tx%69+p;egaq+UXGuhg)lYX@au-jE?VsObj3_~@)s9hI z!kpK2a4tlzwRT3=v94nP4!cr;P9heV`PPr#%m(JcY{`4!oI2DJ3N8u;u=KCvzH_Tm z;OAEwCNZ|b9g=z0YUd=U9Q?yy@2mv`*MN9Iz3M1Csp?bNbjP?`xT*xiK*VmU#{<&4 zh$vd*_0Do(rCLg}y;&;RjfY4%jk6MC8vVPpQ$_P&B2dS;ZOCTam|47eWUi{@1S0Q% zn?2f>%I;E7G`4}Uqa9Qpi5)LUcoH5ja99N$<@emb*;&!~;kA6pfllmtD3(Sqv^V3p z)9KYaw<1uQ4*51fV%narwZHmcCGZjN`R)xECB+BJhgSJ}^=QDboZr+<8(7)69sXRT z*@!XU2lTeB3yMk)HD^@SwtHpsH5aJA$}nW&HN$WluImRYuiu})naknHnIG;hA>ARo zfyHhe)y=@nYbq-==a>h5?^Z1tN+TVX2U|WKZ*Q{SHlnL=%zps;b&qjn1SDqx;X~9( z?qV9oj>GuMIFCc;p=OFWmIEH3unx$C{;)A8jR(+_fC64^5mk7$nZs*;=$N^)N_&PsY^$q_gyNJ=9l6zO9k zCrZN-73uqWOvL6oPQ0g! z1UoX8Jh&h5HTD=hM`)zP%k$%|=ox2JBKh?IVJvfNERLi-8SJx^S`5IBG zj2?|9$b-WcsY=5k?(ukvWJ>QU$>S{A+?SW0t+ba3rwvz@wXD`AoGJDXG)`=nmYqel zWtYVk4?J)}UEmn>=Kvj^GrOAxzNuD>JivFFC26>~Csmr;+?!;mIMrVNF|v21f1F|c z0Ze-DO`Jf7UV%c%vIAT+dCmgC zd@Z4>?lB!v?r^Ewrh-t9sD&0-Ro?(y5^P~1nHIVs&UOh)tcUR>MZw-brgdlML+))u zXj;SPgZF*rwm0i;76>PcW^^!8ca?g$t5%#fH>Sx`=tTF3>%#Vbr0C48-Fq-ViWH7#D!9EoO~ZegSwwRW~ef5bn;+Q=%-K1no>a<@ZK5Q6|o}N>h|K&#urMr ztz)cr@Y1+Qxgm<|{eXF(V#|%!YOJbJDzi9~P%~54T_mh-OI}mzHLlIf$aoKL6;`iy zeD;|!U;US+zI~|_{FH=!RE5qP2Itv~)T&{QnuH^@vG7(Tllh1T!+1=tmd#SALC05* zVy8{YnZ5aabRYn>gmK16XnJrlms`f4 zw8&F08#v>6fX^`=&w%p5V%{&!eV=I@HC+}s#)sLe4$Y6=Zk8k&ig8} zQ>KmGLQnYAyX5LaHG`(A5h2-NwbARy={ihys?ChHj(QMAnOSQ~7!oQ4aKtrHh*YyR zOi~wuxxjIgh&VgcynH@iTQNzZ$U1lHS7rI`!C7jV<(`dF!rE(`25R8DnY2^R5WtaJ znmz|U-1dH?DaMxQ&p4L&mHQilx&<5zd7J|SyeSk6pIe^lGdyrkHF^k3(lSID0tq`8~i!OY5=^ zV&UqYh3aGU!K{G1M5=bF`L}$=wb*LPj-l(f~$Y#`;De~4sg#s(rZFOHeed@aa z2C#A)!h1=5-WFRLrSEOs9~#c~2*Tj9oI}31&vg>kUe1F!aAx_~s$@kR_)f2aGXi^a zzFaneuJQ-y!*J`^TIeX(-tSHS+%&{g3v!dEE4`6+=@U`Gy$paW-G0mj;;HUDG(Hk_ z)jSdjKG-lN*dQ?n5h8r=LqcqNW|g%EWWGnW!DKWVOa`M#Yov?iYw@WKG10!y2$GmM zl{;P_P8IsycrZj4PVtizWxWg^2~(;SDLJUlN}5j#VxN7`?A?+P5pL{_yHDB72rmDf zc8_g@;tIVVH1?8C0`E+VyA`!o45jB`vclY1UN3}SNO(G9+GR&!*xZPAKD|5^yMdW~naws`H0|CnI7B~&p<;}Vnxxo*Yt@tW&~hhuNu}yRmBlRB2x&q* zm&+M%+2!PPY*q`dZHTx`bxU&!7N?!J6z3MwJ?h3)!LVgk3atiVYOZoXyrxjrdrD=x z?Bhf#QFN|sY9rp0DAjY;-}Sf^AkoRRu09G(JJIX5vR}VCFD#5*MToR)C~Ux+#if^K zYvmwjB1gaKX5$k{YiL7Lh8o(O#WLVWHEXDNeLsBhWp`EhZJ8xWE2V7;tPXK}Y<@v^?U zI%7HR_a;eqA~BnDiYk5;5#JCF!TGow@ThD2{SejN|5|8!XGl=X<=J9HEtXoUPKY~Oh>E-NKrtF#FqfFpfPmR zeSmzJcU2^t6l&~`he&9Y3P_I;HdiR1_skoKq)a9hH84gJM^$oIK!{+-yH@@J6B?LyPwFKcvB(ly(HKXKxuZ-eVut_QyUdx zrM(%53YquXOXp56(c=Nt9jkOE&VZSe)-lFr3&ThEIJ{>U)m9L(F!nA?LBI&<_Ebb@ z5wN2qq>d2D=0EXpxD)-Ec*w^vTr63NVn$zBK#h#qNMkBkLmSPmKtN}+S|}YHrPlB$ zcvfhA*;?Qp`78%H@2l|x{x}|e>G%i>dWDWI2R&^GoF5zsBuIBI7V@A{lS1D8mdp#Q zdkokuQIo3lu>^2F*pa`Ut^PJg&+n6ZJc%1lH-R57paT3SW2&{z#lwb`7oPJm5qAhpu z29T?NAQYE81a1e!hZNru7Y_au_o27i`tBBe$Qs($PXO7xNMcCzK#(iK1Md`DdqR6D zO-*$p{ydNd2-5p~j8|eaf90i?+A9*w!w5kTM+^e`pZ<6O&@ZrKJ+g>kj`Z1OWuV0R?15a8avzV>s4R zfQf+(2RL%p$O09j71+y9mIPSz{+sWEcJYBacp;Y0jEQ!P^01d z*Y)G}p-A%^cOq=feh|sMHZVROv*04k?xI2vpUh3l#M8R9mSoFig^>@ywBkh|&=j^~ z`&HF_Bn*{}DKFQ3uXNqV+v!$qdtTBfAV__Vv?0){17|>ms*hggLoK9@od%kcHPE0z z|20D7^W56h`y>HDw0rL=Q~qPH(v+bJQS%?=^OtoAo=5)WQu0r){^V5fylDJ(&e$If zUUT-%(t#sq*x6^?M?y=0`kB(sWYX_nj>RGocstPO^_(&80IEEdVjO1}Dv=xnpelks zXPAJgP6Z={B(s26brZ8N6f%w&k*Ja2GQrZZ72oz0{tpX8FYIXOtjKby}DeEco5E^YYy zn!~1P^he|?kHTC zoTd-6A)+li=d?r$@Tz?Yf$RqxYA+$StvHC)85+W_ox&QPw^tWwX>f7dEJPbwv~o;l zB3L>rHP3a>4NSN%ilAR7=3 zhC<;8`(dGnf>izHj@q#;q~6TWm8g`b-<6H~0`lysmbz&Pe6~Cf(r4Tpx363w+$z)? zt=@3Fuq16w>{eLUYd0IU*kYi2XOt%v^VGj`5Z$9P8mHv3a?>*jeL*C>=2L{#@9W#4 z{pQK*-=f{VX3=YX^y#kcmiv3?VbysR+;u{Lc~iGYZ#jl~w*%YsTDwgWSgfdI&V=-_ z_L5u5t)&W)A-o@bgH1ePS+{{zO&Q|%byQ)hI}yaoC2TtS_%!>n z);umPPVb2um_X0We@Wer!#o8G5JWe6<~B{kK^uVtd=RO@#m&ZU%;7jp-4RzvWe3_! zJNBIIV`@_~D`$rExU)%iahmVjy1M(^eaV!FFLtgeuU@@!<)2fmZR2VcTwgI}!goOF zeGV3d>zz~u5>cT#25C!uO)k}W3t%Bo-So>vYlxF2-Jo6%gXOd~1~8Z|5J9bobKKZ< zGwB{C99`L3BWYqoVgrhU&~&l6aV|JxRR417^lxR`SLIb-)VO#QNfJ2hPYQZJ5Hy|i z@IGJtttjTu01DL6Evw)No#)V4|hGaOR_;iZ=De(1j_a??bUIEPyI+Ga3#Y9BmtG9|rUBs9EVo(+&0o|M@G$0tF$@~qUEvZo z$~b#^^eV%m(3xC|cDoRZQWz!)TxQ4l4R4G)WvHj6Q}bfai|AE}v5ySVraBtBh^W#E z9ysG%@7~@YsU#_7>bTbw=^OUb0;jgOSBel-jax`U$1{{)A_8=3CEdC6OZKHk*B~kl zmk)(zqbOruzLeN?A6;-~LD~tSxA|p|@Zmw03-@MYETJzaD@YEd=9_eoj2bGalMe$@ zvmlLnM0cBa07-?^7{^4_hslbpO$>p+Zl#>VG2N&N5KNz{qZ<@UQ2@;%5b>=uC_Qhcx zqj82o4G5$D3{8-oIzOP9oGEQ;71DHT@NL@4P=(^KbyqGn3OQ!2cxQV9*%n16x?5;2 zGqr@F>C^CvFR880zz(>=)J-#NAr7%hhKALu5>O7ouP)-GGU&U0$M{Zv7GGF}W4ExI zp~#ZFx0|jr2t7Eb{e-BQS2ft)R6$~A#13$NO-3zJ4aN)$&ySDIB{9VXOLw`b8X)?# z5Cs;FhFmNNVTCo+5gKZ~2MY)SKA(r<^L!G&y2&4AS1!aibTCWRbNCKN&K>5U8hGay zEt|9`n1*C~)wfTv`2}lJM-cCo&g? zve=mw7Ci%mO@hs%v$%sJj4;A`qbOu+dK4ldNkpVT;jQ6kVTVz)Y`i4hHuMO3>N}Px zt2s$teb%E6Ik8e1;Rue|<}{qw!W=>>DTFLq7MUw0r}N2My}7F%kn7Sic~|SiPTC}x zX@3B-=dFhfUvWo==Z~nehud~*f8Md#_iYNQY-rsNtE9_PM3?D*a8^)N(!r7RXt!j-Z}lhyD=}1Yf$k z#T4C%&?tBLZT&JaDi8dmHCobM6wQxgZe-jlQ#sr3_6yfw_b?VEOmMf;_Lbx=ufuDXwUX0L|5sctGDdrE_7RekUOqkWegu-#0 z&Vtj&#XN94izapf=9nXPSDbmAA)@p4_L%XB-*Kig!&^otI9+cud4jbn9Hl^ZQ9?3x zb44`Y&_IO5>CWsqrO`MvB+JUdyM4FX)%fqcGkiz#%iP2r4?no+w{;-@+onaJ-kw4b z+y~y%%;r|1T0ZSvE}oL$hyShH?Gg%6`&A5V5cFmK0C{6P^B} zme=9Ja1@Gm|J4p4zrjuKfgfK!^kd-itnn&;1+)tU2tZ##SqDE3p$sK~Xr_wLiUM4C z3q(C@_qvC>>re~^(kVw?TjA=mV3I9)pMR@`xJ;}(t1&}4o1aOuzCJS)@7#RiYMAkGezyctw0;#%rH`EBQR}SzRs@-mO90<-f zBH@ESc62dqH};=L02kAx;a$&u9SF#(UYEeg#JlXBPHurdO5DVB1CSCSHknXgaN7rg zw00{yUPM>1?|+ z!hvW{T_Q9+I*G2Z=fSWp*Gm83I7Mm`M}{Y)6K&^Fy?we{XLE6gk9V&-7ZHK3aAJU` zaq#TdaA^1A=m38ppW(g!aR3fHm4G@0D4M57A93xcM%O|ahxN-)OGQOVsZ}1Bw^Fx1 zRos`}3>nA0FHFF8a~VKLct`+Z10Cna14@MgOHJbc=-e&}RF6~hwYC@s2BWM3A^~fp zM{z5u@_OpOu>ZAB=H2dt*IL6+8rQO+@w*}N|GJ_L{e87{Y zSXoff4Na~MFUIQ=BX<O(7n3tJU_iC1 zS#Nr8?l}E+qe_bgM>lo`13Pz)bsiMowJe&lUv#f7ISK#2-%>F zO%y2?0yicn3kWZcz4NAnz8^LfjuV*PF;SPW8{q||?9BgVMOXVH$>WfX7D?*41YfK& zy5o?iaUYD&0*w^pT<-*m1@UblXDjox;90X3|Q9%U@0*Nk%NkqM-|;jKPic&65Xgv0~}D5$L!V#mSt6fXNR|M-?4umAaO+^v5H)}Y*W4S#2QExrB=$3w#O`?E_y6y zoQ9br!IVt5o2^QjX&j3-nA$92lv}MG5y8H~(FJ3`e&qyB|#W>NL;x%AjiKb=GF z=gn-6D9Ea-MhJMmiPWnYxnn*97rXI}D9 zB(;!9(dOC6G>?H2~B%yLRiEauLZVITKQBg?b$2#}yFU zZxu!i6zH)`(sHPlVmRgQ5q3K>UU1FtCwWob64`r+gS_eH{92IXzrOKzH$K`)V%Y=Z zm)wY3vD+Vbva3EmFgE(pA2rKv)GL#V&i!mF}x&aS_ zXSjYTQk$()R~8awqI$|RP>3yz;W{aSOE@NZZi)TsWE|g82%e@ajOCDYI~ozjrJ<(g z>ZbZPjqTN_MjvSu!Ea+6qM6m;OzRPIJhd)5uG*l_?T^GgawU!OS>zVTO1Y)C*^dO+ zALhL0z-t_SdN{SxEE}m;6?*C0dQmYv7g2X%HcE}b7ghL@1;2dE-aq{7taO z%JyWuDSGxM)I+g|OU@#yO5omhi|$UlzyT}84RYj@mrE6>n_Y6?j#wozn2Ok-;6M4r z6#^AK3ql0=PaEu--h8#;CPryTtx2+O5pwjqLf>&V%jrf7iW>gtqRp+s=Ejy!Mern& z0^GA?Fh>Ecx6h=jqDv{0wRv!TJ!X=bsM;^D18!GAL_BT%>+vUdWP}GjJF5f#z#w~SMv$GUoFwy4#u5_I_cJh|1 zrcl^NgMw(!R4jb{C=y;ilh1Qsmsv#?Y|F)k?%lKZNAMi&rR24q7ISftX1KrF7_Vf~$NRrZl9kwTAICLHQoTGX|((2+P{e^P+p zvF_db`=>HmUQ?_QMvBFFODL|1^%v=1^Uqyf>S9FjD!X?n?q`v&l4`E#kWyzEk-EBA za86up(y;!KH_#gQyrj%IQxXt>c>t*)=X1~8TF}AsabvaP;ioNH{SOhbonP<`_`!^8 z`A(hz`J3O>nFTsnBssS^IbfK}X7C3&O&k^38uxT!^(+XmbI>Xf2!U5FSi1VO{6zPc z&=^TCp(hXHr1C_IMNS^HAa-9CURNa?`6;N8d66)cMsLXgShqGTEA)<}a418)r#f$# zQ+cgwNbS+(jLTV|lwWHLuOm`r5(UfHO8>r!NltyDrVVOzYk+v(KHa#E#2 zq*7U3<)w3eKca&o=p9KCY929_*Rs5byJs#lsV=}S#*m6CMU_5{`?`?XqUG{h3+d)j zYL<$0vb-(dlbtwmel2G)-{O%kPye8wZm3JRwaH7nn2ohebY_VleAAAQl$Q>afqK0# z6eRGHgj zKYTT;VWZR_Dprcfdu8eu9S#WrszS%j{4BI0z{l$HcFwUIePZOb5y4;$oC%bd^Mp#$ z(xrdP9Tt9{uo{1~=lJscqemzIb^X2+4!uGl@WzODHpu3UmXHs+TnG|M7K){ee6bKo zqG&jE`{#<67%X8^0XCt#^0`b}JsJqGNYqu=)G9_#qd~YTHH63ajcBFz+~mdU-Zcly zux?+9R5s&yPEkx(=Qtli6F#>0e)hp?mV-M9j)F&)r^a(5tsP zU#l?%`3jabtJRpI>m<&)YvjATB|mhd36%y^Ybpn$U(CA&@(Oz7T7@ZsSCCb?R%3eV z`dGZR{XUw(8I0fzMn(~g-V*&R4Pb-3oSwDeovCs;(`*q2i&%l6jKK?Vx63G`bGXCY9+5JhnPgN#P3VHJZG z8X*A%QGjKEtVu3V$W@lx0&6awHCTQtBPYl|$?f?R4^`(b}7 z-p6paoBovpwjkiF55L#x;Q-a5WUeBAp!-o(GOBvF;|?h54qXRPvjH~0}a47UaPe(_4yUygk3y?&WsJg^zon??yY&*;egHT{T3$XRs z@*$y0p`MAuP(jb5tT$7VK5A4O1AR9dI1`8q4b1{73I$dkV_3R43(QFbu)cZPQ*gZS?Z@4zg`*Obc`z|9l} zli#^XFudK+nhZ=pMuX5>l9}G6w=_S*j#r+)1s49=)K$5tQa5dN#vWlsY=s^e=JVe4FP@Nq>Td;4iBe&3p?5OdCy~aVc zXaLRb)h?1l?+L)a24>1n0mZo_jD>u@TKCZTv43u2-jhz_I4OD6uq)IcU{ia9C;O&J zjWh1+r8SSfI5TiO^0s^`&}S6j!6;5+o{%+?22Rfsa(0-+BtkX+ejeffD=sL~hO3~g zbMsHjzjXlcvP-T%{wC~qHK0UAnJFpwsV?OFg$oERhdR)}0Fb(%0k)n3Wx`nR%~TN- z=aw8K?<3G%gys7y{KPZ&(;QI9$7x%yX@DIrIGNMJ)lVXhW(c z>%69I>@F0EXq>9;)m7ICtIxWx?J8inx#(iKdDaYO9PjxED~$`UIc2*&bHm7jL+>wN zur9Wfsi}uZAOBw5Rvn~dnyk|P-s@}`mCb2a9S64(PmhJhPQ6iiyD`YI1Dy$1$ ztxN27o8ZXhPIliC9huO(DxvO5ndUPBD16vXR}t%!PQ}2TTr59HnN~pDlIhQ`lZ@ z-NhAZ$G-lyd_4AnV&&TM%92Dz*d3i5AD^BL`n}V`XEP6nOr=^CNvf=v+R^c;rh7PM z8{M{AVkt=MUhDquTmSa_-gowTCuh?|$d(m_3Vd%qgo9Sb2(^8=aNC&6MW6860A0-X z0l=rvEU=PPOa61DBG6rOCYd;N?MqwP-6c|M(@54*$>_4;;t&C}QkBo(@ zJVB9`MADj4$}7*!0$#ch<((X{h;5f; z7W4^PA~M!mm*QT}1)I25x{~xbHZtnjecAQd)#}!F$&1S+TT_}tH6J*;mhx-GY9H|G zV)jc4=-e6;7#%E78E{#CO8=6{4;A($28;T-eSu8`XKN#KX=1GAG3j7)Bm!nryfx7o zBHxW6CT9DSGbJgAZjh{q1s8+)~Vz6zD<6FLShn1hmUtBb4b+(DcaTqGtwtv^qZh_UYqG) zQehd~(sI4c-=OHlTpXs^xoTv;twLQ}avx<`cHSD<^M!HG;A_t~MvMXp?#VFlU<&h@q3jT=!>+b(rDZ*SlDx z>z~OrT`xgRDvvQ2cgn+H9L3c_TOC9)R>0gi$c)RyBnhQ3yA_OG%z5qw7T~ zK?mkL0y4Ic$HlBv-LcYY%hQeRAC-^r8)fDYN5jTx>tT~>>IERr?T(i%YWTDZgCn+L zI9sgGIn_SmQ@#JGATpwALwE4up&+)-DpYWNGcjf)N<%tzp`oKsTU);fL|HEH_Xi?z zz&iPG(d7m!o104h?xDLAAGKR7c30(d^0W*6><+tftx|vPocpd~PVcLiW2W_Z{W!ly zUIeUDmF2{%uAXrv6f2fn4gGnhfU_LW{!7+0&T)U-(0gf+w^qa6_MRECCz%b29V_3F z;r=CF_FDLArXFdlCr`3g(VBf%5odY95Hv2^52Lu&YBsBJ6#6n||ERzyT4QJ-l;Yvo z#U2)$bDkyg$#^^+i>22S+ipHA;O}U*>%~H3#e{?BbsENYOe9LzImkID7Uk|nL`>9L z+O}0sk}YdMG+Bou)0+7#XRXKGw+Xuiu7<}eSN(c(rIgEF+I9O$>uqquUI6U z06sv$zl6<I9SKTQinoAP(&X{!plWWhLK(1S!8YTSAmD05NEp1+jMRL7ue&5as^ zS`HV`1*gZ^T)wlt0DX}kCpVt6tVze^!4hPTQ|OECjO_@wX$5YQA%>|udz zfa8E~AJ3(pM^Q1d4?xn^ArStUL2hX>b?~CFO%U8UtrYdahE9&toagLl$EF=Iyqff* zc|V}dg)GkaApkB}8Iu5`lQ14P2ai${tm3zkVIdtYLjxDisXMigJfCW9^TM*83Pfrx zNxn&rbfvA`y6RaVFdd~Ei~5>6%s zwa%3Uz2tvn1C-*L`ygP{IM4Rta;vG7ZpY}ov#mb1#%W%mz>Vl}We`Jb4wu9#WACeq zMVdFtiTsrBUbW4&Q*c2M0WN7Kx7C2+yM`Ag7Y4~yMS3qwQ`LtN2TzkZY^ftIf+l%Y zcGE<5YO%8xS?ICPwt0wvxKtwrN1Ob3Fm2}}t_!YrwHjIuduSW756v%T3q4UkN5vY9 z!?0C_#grjgAQwuM&WE1fgK=%`D-pHw!_rrhxRY4qG)Hetj+v@*DcCVFLw&S-%*RSd z&&MdFrKP1gQ|H<|3p*?jS@}ld7gtg#1i7Ar-@7AS*F(DTAiX&VjY_$q@)H@lYm#_x zGd#ZDZlec@5t7YA((Jjn7q5UGji&G)p07(s4`d}5ejFYTG=J#=gnrPPN~uzPs2YZr zbw|NlqzqD^7@eJ;LhxI;-qFGCy|Wz-%UY5ICS>i=!)m2fq=Qg9okD!OLNUpYg13-$ z4lmnp33!NK@_rwI`mhf|q0m9JM%x#%fr06F0Xm}YyzQONPGw=Hdog=(Z>oD$QQ#N7 z7xYvX5x;b;V{gg1laQTvR;SCHj;y@V1B7F!FB9OAr)IJ;HNAY~V7B`l_)xzIU&xs6 z7Nr>LAT47Z3fx#q9W`WRBo$&Ya{~i2%XHcA&cY}}pr9{xQPiv5i7Npf1*^J9x37Y{ z8@kGoa9tv-*Y~C#ramUBssV<>F*JU&w!PtvWitKdi5htW)^W&#fE`Z4T#+5&&z| z4H$|dMRkz5Dwo6801L{%_V5H)fgCB!_ZmTl&I3N5(YRejuE~N zp-q`Q5NZ-_NG)biti7*>k4o%NAh04K2aA->dOy4ghWBwI^xFl$f%Ak6{j@Xkk4`1~ z;jUpA$BE2UNsQ@|AACQ`s^J~moYL8>yHKc}c}*Pn^RSp?N$B5zp8;aOwQgtapbq1t zv=)``Y{R*2a?EuR!_-0rH)O1=tdWs2)ezQb3M4GT7e@TyO$^|dIfGx;2mK1KrH}OP zF7{zd)rA)UkkQGnO#%GTkzYIpinuc2I&O@yyMjDa)D(`UvAAcT*ELQyK3akrOO=NGl|d1h3q6 zW5%Zp1EzG*EJ0J~yy=qOR-B+P~F^_<4{Y5cVa6 z0vF>?xB*$0-tmDmxp6{3LLTOh!k)g^J}wV99P!74f3k~{x9UD(XZ`zQmHzL++gDn? zgBR_*?3~wcVC`mhE@EwJzB4JxPE`rXTfr>VsaI9Ul>iO=>Mkge&n$cA;hbD1>;l4M z-mTk=6XebAoDfr>CL8;5ym?kTqmh*zn`J0GR<=Q4Vmt#Whb;i2yN3x!_U z!G=9F&s>@*pIQ&zy8b+4q>DfnJIVCP1C!TQ=4SEA zsq7YLS?0oeVZ`0efEmIJEc&=ywSQ*&iPQ{hR{%bmC1LqWB{fxeQVLDpf=$HTP9=35 zyrD#B64w*9;^G^ulT_tX6<0C!nZZaWPGT+>f9#_u5fI4rgtDKYtPlczYgQsB<~(R8 zBKA;82Zn49C75L_DA%Rz^Qfx9f&}Eu!lbMkg)AZyV-ULL*67L$dhMzI%zyBVE$PC! z?`wNj?Gb7V$k(waJ#&r3jqhw8vHomwC!?S1vG=VRQOq>(-Rj(gyQ)9a3mDf_Dk3U+ zkzY~+ZU0t}Lc)FJ$x}ZAFH96LbE-`G%;$$W^$av)8P90LXL21mR*DvE2Mq=-2lmra z&_v)U9R%#hU~&)!geUyN!)ZjT$YV9~Sd38kLiYF5>&yb*&%UekeA0ajE=nI6fnDnQzQBcG zyRPKPK6bZy;%#xRW%8OujzZ}HoR5!n%BUFrw37K!e?+&ITd-NYVL-9#ZyYuROKK(& zm33|zk&*%%xrIFLA&+a2xrlVRj51vK2-3_y;eOAp8t9bCAmN$k6XDoH$8Ks;WYgCR$Bx zvj=l~Efh^t61P}10~d>~+v$`_z+^2dmM0*0INE%5)Hy=iG+#D-AuZ>(tczXz^Yb7e ze1$ynUy$AKGjBC~^;N<7p8G?$sQ65OrH@5Vc}DdU?jvmdfb|%EmqR8<$0?3+ktcvJ zx=pQZPjQuHop<%7arT4iZ^VU)V3T5U z&^UO_SYRByW<)Y?WI*AWpURFw0CbZpHZQ?z;foJ{8X`Q%!8ZugcC-ol{~t=xSTN7DG9$D%O=aI-U_&+;IFT)HoXU0i-Ix??Zh-rU0DJ21Y=2 zCb#1ilpJXpm%-3h)E33Dg^K%L8KpQ4srPlr6Alf1Q_7shZRFz zD+eYX*s(Qk+^F=m$)1|*Za=r`jJ0qTi|z%ds&^9ZkhwpiO%Cw?{=SoMmDF43LMx;f z){|apqXJBfiNoRwVHqO!OpNV}#eSkCF8jkt;4vxk&@_#(=_1RrgZhBxxdwFbU4Z8) zFlu#s_oP$R>A~*R?@_U=H_|;If))dSP;gkjTR=UpF`=5zO(+3ArJwt8ct%j@A>_d$ zxFQo?XPQ$2RX;^vS*p=N{AmiLlb@?U4ofw<>0%KUctNIG1;&H}mcNh^I5LR~^kPi% z+7R{*JqQ?}_&Yrq;Tpn0925+3g)jV$n?x=MdsupfSYjQ2x;IS3S`I`1Gv48U{^Vo4 z#JY>uDweIVJs_ zA2V4~*+%%3y`6xEdKcpWAN_CYO>cLImcEiXXA0 zEvxONhLp}L=Q)d3FYw574`=)hyF8}vKgf7oKsTSIZICX^p|3rD=ZNmtuSW%My??4+ z=Fv%~WS@F#9^Q$M)B5^ek>9?(4Ztw@lzdgCmp~yQ7i67*aU~lh7kbfCRQ2Dp!*ksi z5cCBcM~%n6^nAZn?{Z>Ijg6H9)uDms`S9fvCoZFYPhUkeLXn+;`B#(ouFv(Neu zq_4ZouIOZam2(V6nYMk9dYYBg=%LroO@;JdC`K02jx~Q~MaaJ_7ytD8&^x-VywC4} zX}t$9I~8VtOC#od0l0`a;m>^a8OFc0(v<(^|7+Jy<9J|n?@iMTe7T)%&8aJb|vZO3T}LfGFR zTkDG6CZI=M>G2!=D<%6L7}or69{c>cij`#$%DH3_IpUYcVaN~y<0veTs=cNxdEApp zew%=we5J>K!2d1YwEOs0w$=AHd#0ah2vei92^jX7>i}u&1m;nYo?&+$*WR@^iy?FM zvmP{JUUUZhQ;dC^1WU*^jY9r4PGM{+H%d(PVX88qmrUMF8s2<~?v}diP$9Ow*a5Ys zdCpa`{P*6|cgr&h_zaeT`{tY+m&+jV3!_Lgb43IMEMp?-19;a){}(syXJ(eK){y5D zmsQGH7;M6k+{&WU?Xv1BzIsoWH@U?R1YMlZ7Yg@vnSat6BSqI0;x=qyVIT5T|M70D z_j=5H%h#*J?P_r+dbLYg)dbH=AICtlvG;cQ`}t5j>C&pT30yQXTGA0uX_48IX9!VE zb()Pt;st`phx}LU3;z+8#&|jMCoY@T@+d^ysx}v0zDObK)wkWuDx#=uPyG1;AFyjw zE)+oWJ}+|&eKYpX&%jP*gD^O+`p#cNLQIKj{MoXSW}+~tPIpaRJqDjkw>7GFmglYF z`0{-qGLHf%_j=h_=TxLuHSD*GR@4;@HuO^X-lW&he5t_ji`pQTA^Y*^aeLVDM-tK& zjAk$#4zHW$oDD2O96ViQOMv_cCfdkCsr$XWsb`=6whD{EQm^LM@bd=jLtpM%DgViJ zrPiyjO6WSf5a(r>At*L4o4YCcRy9I7m-Xifs<0WgcdwQ75hj_zG+J0UqGCREn$ zafoJvGvZmOs=_qIeX!-NkI_y6Sz^0C61@1Po4@(+UfPdU*~;O3ZNA4JCq+uzu`*v zsh>*;?}q%Q5Gz@3k^HUo7558Up^i7s_AbCI)yp=^3VAwfm-+`E2A+dOUITK0qxmF! z9$62^%-lMs8q#*wVJRhr(OzhA?QnLk!Rj>50+}$#3ULxx>ut*JKr=tFD41axza^Uv z*tF%+iGzS%A1q;P5av9+YpPNoA0!hQn;4(7c;o(H!US?OQc-i$)j**%*0(&Q=@h(o z#itL~@-jwn5Py#^Hw8UNtNtv8$_TLd8P=#I&$zt`n7M1q3ukt~J&lqhf*~xcy6@|z zsq3n|5*J3NN=kwS=i(if$THIRaG|~o$xSM)4~dJt@BNOe66H`)#XGEE#A=-G&XJcY zEJWSz6JO(2fQ^l85XcPf`vQ$L(~+C;PU>|1e&>R4WA`K7ICYcstG(5kDbtr-;%+xR z>v#YE1=S%wF0pDfq9pw03f)~E$SA4|85K_EbU43>CVQA!zo*@x4qEG_ml3S{qf9AOq))eHc| zzv@tX_gH~7-#R%Kh5e@53@tZmg&R#8$@Q|k-dfgJDR6TGn~ zeK}{ByhUqh#n{VJ^Bki^QOsP(-t^MsWEUBm9B`h8SFlglv=Ub0!5vNk5|yz^!b@` z&x)mc-?kG3Px1!I>EGOAieZk_at<{W5WMQcCovv%7fo_{?0BOZ{_-PR*AJec1(8h{ zk#TV^Z&s^kclhjQ1uX3>7~Pr1lI|DlY>nsLufE~N-=OeMHL(7%yNqyG+pfAsIz}zn zxg{w-*SfH^vMtJHdu6@)SC=1LA+G$tFSzpB>r4t>cVfl93wFtg9y`Sq1}@HxD`%^1 z2k>ox?IXVN>WR)x6(K*%Z-}fas6IZFo!zHZh&y1ucRZBg=@BYt2j(yo?5N7|OXYEh zbt9_Ch1`&-qY)xeU9Mb@M!xVU&MA$Wo-oG{^Kntt z9jpO;QHVv=T1ok$W*yMy93w&lmfCw`EqK&3)rX^29y}xc>~hl)(Uji}nrE?e zJxR&CFgR19<{U?I!^hG^C;qVEi3@x!yX1W|9Y@txh`x$Rm_FZyyL#;7eqnOzuN&gr zhA>Oq7}QFl2lvCv)#%R`8wF9UG=FccKL3BO$@EP=Gw<;KtHqM)IfF^>{P+;Qf95xe zTMqzWB1honti|D>>8^xfF4YdvBBHSdtO9`HSUXW1Z2s1y1cM;WZHS(kb{q5wLdK3~V4i}tzW2Ty5GlGC6cuq@Nd zx@zmR4;-~=ixa%1%;`t>>NQ@bNnW{OSWo>{$4;)9Rrj0J2vxm$f8u00A8Xh5%LX5& zxKG%kYt_WDPUz~de{ka5TLUjV%2)hX`4s9iyqNofb4DRjnz-1@E6v5no5No@48eSN zr}OkiB8X*7cU|UD6)3nmP5#3ZEXy=5{TLYrjZkd*+5w^KHlWzRD;{ z|HQ}s7L_QmNc6vZxbt%Z{0oz7mMoOCPT>3`CphbEW3Wn z%xSO3+hRN!@AEE8>Mp#M=!LhF5LD%4Z(u9>$$z!cJVwPofl-4AF~R4iYofQF$|IAg z(Mw@08+9{d|K8m_+ z+9&$sZiP(~qeE(KK>F)v#q>Gkrv`#;|jRkO|gHS}{oLtnM)ckYTS}&c-H5qjEY}AI}kliehX6H`r|J zzVuDg^+GJtZPT>7m9b!>gv7i&Dp+GdK2yQ>gsqXNkeA9F_71Q0kSNXCBZKuA5BHw{p5KKNWvo|1qhQtsMSYt<7@M5gz`;Xm&U4*UW6 zY4`&Fu>F^J9vbF8 z$`LP8JQ%!h+4FpORfMhjvA zep3oAZIW^UIO6M1fHSvYHapLZj1?HI*C&`dej+dQ%@Ds#xA=zdV%0y6FVNZd^`B`R zv0|OT3do7XRtD>hXu7lLVR>0-A9;gJ+9pT)0HUBgu?Lh@|IzEW;`#dJdaNOSCa;QZmsO_;GktU6#$tOg)Z*7~hT)WENnLH;yEJceV+~tYnx)K% z3>xDPU;pvv-~90Vkg$Lm)y|9%bw$F@K%G?VC-n5`BNCg_iDaReD|N4HI6m{&HJ6IV zf|ZD2!C)ZZkIu&unM@)QWIVLT1N6wKEsBfYk5mZdKAMskG%qY#NUO$!sR7B=qY7UR zZ1aL)$gW3j{)1`9nvIV2QM)^8_RZZLYIkn-+wGE6;}-q)1iQ8YWMB9H0`l>6FM!yh zBRh79i6EyDYFG+Li0P(~6RSZip41W$c2+*4V>!$AZ9>M+fQ6irS}`*vmo{N_g{!|B zg~ociDI-2FBu(GderrM0KRGAocW*i;v`N(S;NIzVnVmsF8$!094$Q!>Zmwr7Y?H!Z z%@$E$Pe+4(ni-?f)UslIII}!IFpW7zBs3Gq&O~k7R!3{bEj0@eSa2%Q&A??v!ZCCMq}V`e2(l!mG3Ww${*?3;=rLLWIzx zE0@W}bKC~;S>`rT#8UkY;i+-IeE6GLKfkXJnS)x>KfnHZ2Jo0Z9ZxkD&OiFcvRm=} zu}uo-vW8mG%SVp&MxL;~aqLS;&-P@bcqj+KzUY{2Hgs+l|kS{=v&xawwqNlvCn#O9j$ zfWE=^i|Qc4%p%AL5MU3Gpe76fYc=ITAst5iga~}f^`2qp8DLn@!R*I5LkAr+G&C}@ zGp2m;}b69?Hu3(4x*%E{DNXLKYb)Ou~1 z(}N)MS%qOy18`@EP8Lv(MqTEmNtSdnl#x_A4Y=ks(oE#{ay%!~oj2`Xo5L^ZC}t-w zGAd%PMJ+HYVpE=YBj~I3>|OPjA)t(M)4bv0(gW<;@!t-DSEZImwl8}hto(rQkcd`u zR+e#hNzE`jyUxE*U#cIRnT7aLOyfb16DzZi4wfO+1eON26*T7OI*Yn8o+|oTFGbG7 zBieE(r-a#7>pFp2g^6hSXT)rX#N$p4$dFRGA)$i0)uQBKW)5>hE2z+qqNN{xqDZ@Z zTi}v66CrjRvhQKAT_W8{^?Bw*^)MGX<>>_aCAGu!vm;Zg=Y+T=AD@=3-)@rR!PkB^*D$JJ{T><7I?%4^57D0VZ*v0H5&0HuHUg;7A5kVZ0ul_2Xrq?;e@%C<46YHP=@W zAN0HQr);7-7_UU_)@kzfuV0{o88QXG`X%|6F*=-HEL*xp;|y}tf#Qb&di8c zZ0$ll1RPnwY*h-_05~fY*eeLwsx(kl8GuzdP*oUERR~ZuLo+L&gKfR`(X`|qK%p*u zzMGfRKeOh4%tg=4Oa_Fm!YTJzOYs8)t#0P?AgJNRyE`x9)%&ou1~nk3gP5Al1^UXe zKPf53LG9U?FiKtx}N<5F@ruZ zgda9ZYh$5Ziz#DVRN9-5U(YXDE%kb9_r0dTtw4(Hfw-5M-J2=Wq$F*ej z3|0RqbgRJ%5DE(&SfiAG*rlh^{i)2RZ2(^ZV6e^Zz0z%Fqt4KMVNjnOF1T}hmHrc4 z;R@HI&5Ga~5#n@Y`R|Z}~YY9foQ%}y6 z9G#}`15vJ3YO)B*N(XI$M-&wSBEa{=Ny~tK3|EAvcJWw2fV_AYEV_ut^$y6h4h3Wz zPCA)4?&1@P-BresF#&Yq zxv!oQD{`AvsDA6KB>?+)&=@(CI7RH>ahhAMRZ0d-o`$1fQCk>!eC~gg0Fzv12vf1d zF+$bl98PvlJ*hOCHIEL_0CF#8jup$L9~GR+LrNt}>k--XE+VdhFK|yxtx-Tot0YAN zC22(RHRP4@vt_IMcu?(!6@a+oNA>+9`|bQ;ZEYO|y_ghzS)(M{*6`_LM93*}&{{R% zneroTv%WXMn?g#;vaaa5@{L$5TH1_ROk$EyHB8=7a)P>Op$zYB{y3z;@L4}dA+3%+ zKkfah2Q?<+sPU(L!|~G~WakC8dcD~!z#@k^baZbsX*YQm6!R=6sL5`86NIc0laUx; zZS+YckfdI=S-X|b>Vdll{YL;HWo#o(z@TJSQU_Yo4;>Cya22bgl{a>*$9UrZ0~ZR{ zyuJKES6ky`iz!M|*HR?c-3F=jDCNDWbF04Va^5P!flJe=e;~0o8KW4}#aK~zqC^y6 zucuALLltd7d#RfHwfs7<`rWRWtL3YHiqt+f9Fja3mga?t67%E}Gg5ccQ^4~@ z)DA)TED$MN;%_GsL-co|7E?+O`MtcKBF4kd%47brHel6AWie?(6dbI9I4XLy!@;WKZ?yji$ zceR)Cp&{5K8m#8TKY%2`TxT3OGx8t;aMU$_G&ArOo6q_`ool9s%wq$*0+Spu?5Hlq zTtNio`l6a1j!l+9tbHwjk40vYTNdJh;2?1XX++4SoTW+#blVr7yPUu`Hw>;#=7??} zCPrGD5&MKwVCk^7r!N}{madg#e)rkj_&DUi>$obYi8ycCV%e!cX3&NKRYArxzTLDh zfs*}9#v$il-u(B8^^bPM9YguMD$c(M1(^9~)@BAd$ax?SrU$AVbIwgcGvJw!;*2P? zX)+YRC1ojL282nO<(>E&RyfesahV{2D^r0Bn7P>8OezUPSOyb|MWe93xE&;OZR z7R4@Ycb$tYIg)_8O4!za=To(V*T)U?%ID(eeuTa90)##qOGoT*o~3NKy1eFD0GkrQ zm^YM|&mFghIgVpAk1OG@eb{-&DPO6>JXE+8`wINfm0g%?B~c08Jp=PeIGS}T>KUPz z*LqpCyw&$}=i&TThW4Gf0EWBgTToNpq6_W7as~pM?SVi}1ZL{VxylrW-JSo znPt&8mlqexaJJ7O!xf<;=WzPGwX# zT8=&F*b}Vf7S1{Zxf50BC<%!{;fO_l27?IULxs@!hL~EvP=Hye-R88B}nsdKcN$ap-AJwp450#c+ zi}z#Vf9G-EwgFc0SaQ*H%{Hu>+Fc2*L-|0Pb6jtkY04*+g#!8?qGhRGu1G$`_E3Q=VZR7k=vB*U$398+hyJnKm4o z`Xb0#CX0Q0uIuCe(UZO1{nPW2K3`b27XT+BhRh@1b>?Qj_vGPII6Rh5Q5n8Ub0WK$ zNL%ZfdW2`kmI>~%Fdh&LskEU+SPu&6^jHOg#e6oMj0~YIgX4uUpiJw$kRX`PCbwDi z∈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 L`RRHRxd#9MmJhQ4 literal 0 HcmV?d00001 diff --git a/packages/curve-ui-kit/src/pages/Introduction/Introduction.mdx b/packages/curve-ui-kit/src/pages/Introduction/Introduction.mdx new file mode 100644 index 00000000..dd8d2f7b --- /dev/null +++ b/packages/curve-ui-kit/src/pages/Introduction/Introduction.mdx @@ -0,0 +1,275 @@ +import { Meta } from '@storybook/blocks' + +export const RightArrow = () => ( + + + +) + +export const GitHubIcon = () => ( + + + + +) + +export const DiscordIcon = () => ( + + + + + + + + + + + + + + + +) + + + +
+
+ # Welcome to Curve.fi UI Kit + + This Storybook showcases the UI components and design system for Curve.fi. It serves as a living documentation and development environment for our frontend team. + +
+ +
+
+ Component library illustration +

Component Library

+

Explore our collection of reusable UI components built with Material-UI (MUI) and styled according to Curve.fi's design system.

+ View Components +
+
+ State management illustration +

State Management

+

Learn how we manage global state with Zustand and handle data fetching using Tanstack Query (React Query).

+ Read Guide +
+
+ Testing illustration +

Testing

+

Discover our testing strategies using Cypress for end-to-end tests and component testing.

+ Learn More +
+
+
+ +
+
+ # Key Features + + Our UI Kit is designed to streamline development and ensure consistency across Curve.fi's frontend applications. + +
+ +
+
+

TypeScript

+

All components and utilities are written in TypeScript for improved type safety and developer experience.

+
+
+

Feature-Sliced Design

+

Our project structure follows the Feature-Sliced Design methodology for better organization and scalability.

+
+
+

Material-UI (MUI)

+

We use MUI as our component library foundation, customized to fit Curve.fi's unique design language.

+
+
+

Zustand & Tanstack Query

+

State management is handled by Zustand for global state and Tanstack Query for data fetching and caching.

+
+
+

React Hook Form

+

Forms are managed using React Hook Form for efficient and flexible form handling.

+
+
+

Blockchain Integration

+

We use curve-js, curve-lending-js, and curve-stablecoin-js for seamless blockchain interactions.

+
+
+
+ +
+
+ +
+

Contribute on GitHub

+

Help us improve the Curve.fi UI Kit by contributing to our repository.

+ + Visit Repository + + +
+
+
+ +
+

Join Our Community

+

Connect with other Curve.fi developers and get support on Discord.

+ + Join Discord + + +
+
+
+ Curve.fi logo +
+

Curve.fi Website

+

Visit the main Curve.fi website to learn more about our DeFi platform.

+ + Go to Curve.fi + + +
+
+
+ + From 815d99b1161e8e03a63907b3d98200289a890669 Mon Sep 17 00:00:00 2001 From: Ignat Date: Sat, 21 Sep 2024 15:55:30 +0500 Subject: [PATCH 05/17] feat: implement basic `MUI` theme --- .../src/shared/lib/basic-theme/basic.ts | 8 +++++ .../src/shared/lib/basic-theme/breakpoints.ts | 11 +++++++ .../src/shared/lib/basic-theme/config.ts | 8 +++++ .../shared/lib/basic-theme/font-variants.d.ts | 2 ++ .../src/shared/lib/basic-theme/index.ts | 3 ++ .../lib/basic-theme/override-breakpoint.d.ts | 14 ++++++++ .../lib/basic-theme/override-palette.d.ts | 32 +++++++++++++++++++ .../src/shared/lib/basic-theme/theme.types.ts | 1 + .../curve-ui-kit/src/shared/lib/capitalize.ts | 32 +++++++++++++++++++ .../src/shared/lib/object-properties.ts | 13 ++++++++ 10 files changed, 124 insertions(+) create mode 100644 packages/curve-ui-kit/src/shared/lib/basic-theme/basic.ts create mode 100644 packages/curve-ui-kit/src/shared/lib/basic-theme/breakpoints.ts create mode 100644 packages/curve-ui-kit/src/shared/lib/basic-theme/config.ts create mode 100644 packages/curve-ui-kit/src/shared/lib/basic-theme/font-variants.d.ts create mode 100644 packages/curve-ui-kit/src/shared/lib/basic-theme/index.ts create mode 100644 packages/curve-ui-kit/src/shared/lib/basic-theme/override-breakpoint.d.ts create mode 100644 packages/curve-ui-kit/src/shared/lib/basic-theme/override-palette.d.ts create mode 100644 packages/curve-ui-kit/src/shared/lib/basic-theme/theme.types.ts create mode 100644 packages/curve-ui-kit/src/shared/lib/capitalize.ts create mode 100644 packages/curve-ui-kit/src/shared/lib/object-properties.ts diff --git a/packages/curve-ui-kit/src/shared/lib/basic-theme/basic.ts b/packages/curve-ui-kit/src/shared/lib/basic-theme/basic.ts new file mode 100644 index 00000000..c9ace1ba --- /dev/null +++ b/packages/curve-ui-kit/src/shared/lib/basic-theme/basic.ts @@ -0,0 +1,8 @@ +import { createTheme as createMuiTheme } from '@mui/material/styles' + +import { breakpoints } from './breakpoints' + +export const basicMuiTheme = createMuiTheme({ + breakpoints, + direction: 'ltr', +}) diff --git a/packages/curve-ui-kit/src/shared/lib/basic-theme/breakpoints.ts b/packages/curve-ui-kit/src/shared/lib/basic-theme/breakpoints.ts new file mode 100644 index 00000000..072d4bb2 --- /dev/null +++ b/packages/curve-ui-kit/src/shared/lib/basic-theme/breakpoints.ts @@ -0,0 +1,11 @@ +import type { BreakpointsOptions } from '@mui/material' + +export const breakpoints: BreakpointsOptions = { + keys: ['mobile', 'tablet', 'desktop'] as const, + values: { + mobile: 0, + tablet: 640, + desktop: 1200, + }, + unit: 'px', +} diff --git a/packages/curve-ui-kit/src/shared/lib/basic-theme/config.ts b/packages/curve-ui-kit/src/shared/lib/basic-theme/config.ts new file mode 100644 index 00000000..d7203980 --- /dev/null +++ b/packages/curve-ui-kit/src/shared/lib/basic-theme/config.ts @@ -0,0 +1,8 @@ +import { FontFamilyBasic, FontFamilyChad } from '@/shared/ui/Typography' +import type { ThemeKey } from './theme.types' + +export const ThemeFontFamily: Record = { + light: FontFamilyBasic, + dark: FontFamilyBasic, + chad: FontFamilyChad, +} diff --git a/packages/curve-ui-kit/src/shared/lib/basic-theme/font-variants.d.ts b/packages/curve-ui-kit/src/shared/lib/basic-theme/font-variants.d.ts new file mode 100644 index 00000000..85a0dfc7 --- /dev/null +++ b/packages/curve-ui-kit/src/shared/lib/basic-theme/font-variants.d.ts @@ -0,0 +1,2 @@ +declare module '*.woff' +declare module '*.woff2' diff --git a/packages/curve-ui-kit/src/shared/lib/basic-theme/index.ts b/packages/curve-ui-kit/src/shared/lib/basic-theme/index.ts new file mode 100644 index 00000000..99a42998 --- /dev/null +++ b/packages/curve-ui-kit/src/shared/lib/basic-theme/index.ts @@ -0,0 +1,3 @@ +export * from './theme.types' +export * from './basic' +export * from './config' diff --git a/packages/curve-ui-kit/src/shared/lib/basic-theme/override-breakpoint.d.ts b/packages/curve-ui-kit/src/shared/lib/basic-theme/override-breakpoint.d.ts new file mode 100644 index 00000000..29bf82a8 --- /dev/null +++ b/packages/curve-ui-kit/src/shared/lib/basic-theme/override-breakpoint.d.ts @@ -0,0 +1,14 @@ +declare module 'global' { + module '@mui/material' { + interface BreakpointOverrides { + xs: false + sm: false + md: false + lg: false + xl: false + mobile: true + tablet: true + desktop: true + } + } +} diff --git a/packages/curve-ui-kit/src/shared/lib/basic-theme/override-palette.d.ts b/packages/curve-ui-kit/src/shared/lib/basic-theme/override-palette.d.ts new file mode 100644 index 00000000..ca1c6a08 --- /dev/null +++ b/packages/curve-ui-kit/src/shared/lib/basic-theme/override-palette.d.ts @@ -0,0 +1,32 @@ +declare module 'global' { + declare module '@mui/material/styles' { + interface Color { + 10: string + 25: string + 75: string + 150: string + 750: string + 850: string + 950: string + 975: string + } + + interface Palette { + neutral: PaletteColor + tertiary: PaletteColor + green: PartialColor + violet: PartialColor + red: PartialColor + blue: PartialColor + } + + interface PaletteOptions { + neutral: PaletteColorOptions + tertiary: PaletteColorOptions + green: PartialColor + violet: PartialColor + red: PartialColor + blue: PartialColor + } + } +} diff --git a/packages/curve-ui-kit/src/shared/lib/basic-theme/theme.types.ts b/packages/curve-ui-kit/src/shared/lib/basic-theme/theme.types.ts new file mode 100644 index 00000000..b4f4b22c --- /dev/null +++ b/packages/curve-ui-kit/src/shared/lib/basic-theme/theme.types.ts @@ -0,0 +1 @@ +export type ThemeKey = 'light' | 'dark' | 'chad' diff --git a/packages/curve-ui-kit/src/shared/lib/capitalize.ts b/packages/curve-ui-kit/src/shared/lib/capitalize.ts new file mode 100644 index 00000000..d1954a1e --- /dev/null +++ b/packages/curve-ui-kit/src/shared/lib/capitalize.ts @@ -0,0 +1,32 @@ +import { escapeRegExp } from 'lodash' + +/** + * Capitalizes the first letter of a given string. + * @param {string} str - The input string to capitalize. + * @returns {string} The input string with its first letter capitalized. + */ +export const capitalizeFirstLetter = (str: string): string => { + if (str.length === 0) return str + return str.charAt(0).toUpperCase() + str.slice(1) +} + +/** + * Capitalizes specific words in a given text, even when they are part of longer words. + * @param {string} text - The input text to process. + * @param {string[]} [wordsToCapitalize=[]] - An array of words to capitalize. + * @returns {string} The input text with specified words capitalized. + */ +export const capitalizeSpecificWords = (text: string, wordsToCapitalize: string[] = []): string => { + if (wordsToCapitalize.length === 0) return text + + const escapedWords = wordsToCapitalize.map((word) => escapeRegExp(word)) + const pattern = new RegExp(`(${escapedWords.join('|')})`, 'gi') + + return text.replace(pattern, (match) => { + const lowercaseMatch = match.toLowerCase() + if (wordsToCapitalize.includes(lowercaseMatch)) { + return capitalizeFirstLetter(lowercaseMatch) + } + return match + }) +} diff --git a/packages/curve-ui-kit/src/shared/lib/object-properties.ts b/packages/curve-ui-kit/src/shared/lib/object-properties.ts new file mode 100644 index 00000000..d580f17d --- /dev/null +++ b/packages/curve-ui-kit/src/shared/lib/object-properties.ts @@ -0,0 +1,13 @@ +/** + * Removes a specified property from an object and returns a new object without that property. + * + * @template T - The type of the input object. + * @template K - The type of the key to be omitted (must be a key of T). + * @param {T} obj - The original object from which to omit a property. + * @param {K} propertyToOmit - The key of the property to be omitted. + * @returns {Omit} A new object with all properties of the original object except the omitted one. + */ +export function omitProperty(obj: T, propertyToOmit: K): Omit { + const { [propertyToOmit]: _, ...rest } = obj + return rest +} From f4e34e9d74c8726158686d0f2a541eb5be9700fe Mon Sep 17 00:00:00 2001 From: Ignat Date: Fri, 27 Sep 2024 15:55:30 +0500 Subject: [PATCH 06/17] feat: implement `CssBaseline` ui component --- .../src/shared/ui/CssBaseline/index.ts | 1 + .../shared/ui/CssBaseline/muiCssBaseline.ts | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 packages/curve-ui-kit/src/shared/ui/CssBaseline/index.ts create mode 100644 packages/curve-ui-kit/src/shared/ui/CssBaseline/muiCssBaseline.ts diff --git a/packages/curve-ui-kit/src/shared/ui/CssBaseline/index.ts b/packages/curve-ui-kit/src/shared/ui/CssBaseline/index.ts new file mode 100644 index 00000000..6ba52d3f --- /dev/null +++ b/packages/curve-ui-kit/src/shared/ui/CssBaseline/index.ts @@ -0,0 +1 @@ +export { defineMuiCssBaseline } from './muiCssBaseline' diff --git a/packages/curve-ui-kit/src/shared/ui/CssBaseline/muiCssBaseline.ts b/packages/curve-ui-kit/src/shared/ui/CssBaseline/muiCssBaseline.ts new file mode 100644 index 00000000..70abe1b3 --- /dev/null +++ b/packages/curve-ui-kit/src/shared/ui/CssBaseline/muiCssBaseline.ts @@ -0,0 +1,25 @@ +import type { Components } from '@mui/material/styles' + +export const defineMuiCssBaseline = () => { + const component: Components['MuiCssBaseline'] = { + styleOverrides: ` + @font-face { + font-family: 'Mona Sans'; + font-style: normal; + font-display: swap; + font-weight: 400; + src: local('Mona Sans'), local('MonaSans-Regular'), url('fonts/Mona-Sans.woff2') format('woff2'); + unicodeRange: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF; + } + @font-face { + font-family: 'Hubot Sans'; + font-style: normal; + font-display: swap; + font-weight: 400; + src: local('Hubot Sans'), local('HubotSans-Regular'), url('fonts/Hubot-Sans.woff2') format('woff2'); + unicodeRange: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF; + } + `, + } + return component +} From c6d0470d2b0b9a474d220457dd06830eb53bd604 Mon Sep 17 00:00:00 2001 From: Ignat Date: Mon, 30 Sep 2024 15:55:30 +0500 Subject: [PATCH 07/17] feat: implement `Typography` ui styling --- .../src/shared/ui/Typography/Typography.tsx | 7 ++ .../src/shared/ui/Typography/index.ts | 3 + .../src/shared/ui/Typography/muiTypography.ts | 26 +++++ .../shared/ui/Typography/variants/config.ts | 94 +++++++++++++++++++ .../shared/ui/Typography/variants/index.ts | 2 + .../variants/override-typography.d.ts | 17 ++++ .../Typography/variants/resolve-typography.ts | 78 +++++++++++++++ 7 files changed, 227 insertions(+) create mode 100644 packages/curve-ui-kit/src/shared/ui/Typography/Typography.tsx create mode 100644 packages/curve-ui-kit/src/shared/ui/Typography/index.ts create mode 100644 packages/curve-ui-kit/src/shared/ui/Typography/muiTypography.ts create mode 100644 packages/curve-ui-kit/src/shared/ui/Typography/variants/config.ts create mode 100644 packages/curve-ui-kit/src/shared/ui/Typography/variants/index.ts create mode 100644 packages/curve-ui-kit/src/shared/ui/Typography/variants/override-typography.d.ts create mode 100644 packages/curve-ui-kit/src/shared/ui/Typography/variants/resolve-typography.ts diff --git a/packages/curve-ui-kit/src/shared/ui/Typography/Typography.tsx b/packages/curve-ui-kit/src/shared/ui/Typography/Typography.tsx new file mode 100644 index 00000000..657b42bc --- /dev/null +++ b/packages/curve-ui-kit/src/shared/ui/Typography/Typography.tsx @@ -0,0 +1,7 @@ +import { Typography as MuiTypography, TypographyProps as MuiTypographyProps } from '@mui/material' + +export interface TypographyProps extends MuiTypographyProps {} + +export const Typography = ({ ...props }: TypographyProps) => { + return +} diff --git a/packages/curve-ui-kit/src/shared/ui/Typography/index.ts b/packages/curve-ui-kit/src/shared/ui/Typography/index.ts new file mode 100644 index 00000000..37134798 --- /dev/null +++ b/packages/curve-ui-kit/src/shared/ui/Typography/index.ts @@ -0,0 +1,3 @@ +export { defineMuiTypography } from './muiTypography' +export * from './variants' +export * from './Typography' diff --git a/packages/curve-ui-kit/src/shared/ui/Typography/muiTypography.ts b/packages/curve-ui-kit/src/shared/ui/Typography/muiTypography.ts new file mode 100644 index 00000000..6d003bce --- /dev/null +++ b/packages/curve-ui-kit/src/shared/ui/Typography/muiTypography.ts @@ -0,0 +1,26 @@ +import type { Components } from '@mui/material/styles' + +export const defineMuiTypography = () => { + const component: Components['MuiTypography'] = { + defaultProps: { + variant: 'bodyMRegular', + variantMapping: { + bodyMBold: 'p', + bodyMRegular: 'p', + bodySBold: 'p', + bodySRegular: 'p', + bodyXsBold: 'p', + bodyXsRegular: 'p', + + headingXxl: 'h1', + headingMBold: 'h2', + headingMLight: 'h3', + headingSBold: 'h4', + headingXsBold: 'h5', + headingXsMedium: 'h6', + }, + }, + } + + return component +} diff --git a/packages/curve-ui-kit/src/shared/ui/Typography/variants/config.ts b/packages/curve-ui-kit/src/shared/ui/Typography/variants/config.ts new file mode 100644 index 00000000..3719dd5b --- /dev/null +++ b/packages/curve-ui-kit/src/shared/ui/Typography/variants/config.ts @@ -0,0 +1,94 @@ +import type { TypographyOptions } from '@mui/material/styles/createTypography' + +const headingVariantKeys = [ + 'headingXxl', + 'headingMBold', + 'headingMLight', + 'headingSBold', + 'headingXsBold', + 'headingXsMedium', +] as const + +const bodyVariantKeys = [ + 'bodyMBold', + 'bodyMRegular', + 'bodySBold', + 'bodySRegular', + 'bodyXsBold', + 'bodyXsRegular', +] as const + +const buttonLabelVariantKeys = ['buttonLabelM', 'buttonLabelS', 'buttonLabelXs'] as const + +const tableHeaderVariantKeys = ['tableHeaderM', 'tableHeaderS'] as const + +const tableCellVariantKeys = [ + 'tableCellL', + 'tableCellMBold', + 'tableCellMRegular', + 'tableCellSBold', + 'tableCellSRegular', +] as const + +const highlightedVariantKeys = [ + 'highLightedXxl', + 'highLightedXl', + 'highLightedL', + 'highLightedM', + 'highLightedS', + 'highLightedXs', + 'highLightedXsNotional', +] as const + +export const typographyVariantsKeys = { + heading: headingVariantKeys, + body: bodyVariantKeys, + buttonLabel: buttonLabelVariantKeys, + table: { + header: tableHeaderVariantKeys, + cell: tableCellVariantKeys, + }, + highlighted: highlightedVariantKeys, +} as const + +export const disabledTypographyKeys: (keyof TypographyOptions)[] = [ + 'h1', + 'h2', + 'h3', + 'h4', + 'h5', + 'h6', + 'button', + 'body1', + 'body2', + 'caption', + 'overline', + 'subtitle1', + 'subtitle2', +] as const + +export type TypographyVariantKey = + | (typeof headingVariantKeys)[number] + | (typeof bodyVariantKeys)[number] + | (typeof buttonLabelVariantKeys)[number] + | (typeof tableHeaderVariantKeys)[number] + | (typeof tableCellVariantKeys)[number] + | (typeof highlightedVariantKeys)[number] + +export type DisabledTypographyVariantKey = (typeof disabledTypographyKeys)[number] + +export type NonTableTypographyVariantKey = Exclude +export type TableTypographyVariantKey = Extract + +export type ResolvedTypography = Record + +export const FontFamilyBasic = ['"Mona Sans"', '"Helvetica Neue"', 'sans-serif'].join(',') +export const FontFamilyChad = [ + '"Hubot Sans"', + '"Helvetica Neue"', + 'sans-serif', + 'Minecraft', + '"SF Mono Regular 11"', + '"Ubuntu Mono"', + 'monospace', +].join(',') diff --git a/packages/curve-ui-kit/src/shared/ui/Typography/variants/index.ts b/packages/curve-ui-kit/src/shared/ui/Typography/variants/index.ts new file mode 100644 index 00000000..93842781 --- /dev/null +++ b/packages/curve-ui-kit/src/shared/ui/Typography/variants/index.ts @@ -0,0 +1,2 @@ +export * from './resolve-typography' +export * from './config' diff --git a/packages/curve-ui-kit/src/shared/ui/Typography/variants/override-typography.d.ts b/packages/curve-ui-kit/src/shared/ui/Typography/variants/override-typography.d.ts new file mode 100644 index 00000000..b8b9b2f7 --- /dev/null +++ b/packages/curve-ui-kit/src/shared/ui/Typography/variants/override-typography.d.ts @@ -0,0 +1,17 @@ +declare module 'global' { + type NewTypographyVariants = { + [key in import('./config').TypographyVariantKey]: T + } + type DisabledTypographyVariants = { + [key in import('./config').DisabledTypographyVariantKey]: false + } + + module '@mui/material/styles' { + interface TypographyVariants extends NewTypographyVariants {} + interface TypographyVariantsOptions extends Partial> {} + } + + module '@mui/material/Typography' { + interface TypographyPropsVariantOverrides extends NewTypographyVariants, DisabledTypographyVariants {} + } +} diff --git a/packages/curve-ui-kit/src/shared/ui/Typography/variants/resolve-typography.ts b/packages/curve-ui-kit/src/shared/ui/Typography/variants/resolve-typography.ts new file mode 100644 index 00000000..1faa1c80 --- /dev/null +++ b/packages/curve-ui-kit/src/shared/ui/Typography/variants/resolve-typography.ts @@ -0,0 +1,78 @@ +import type { FigmaTypography, FigmaTypographyToken } from '@/shared/api/figma-tokens' +import { ThemeFontFamily, type ThemeKey } from '@/shared/lib/basic-theme' +import { capitalizeFirstLetter, capitalizeSpecificWords } from '@/shared/lib/capitalize' +import type { NonTableTypographyVariantKey, TableTypographyVariantKey, TypographyVariantKey } from './config' + +const wordsToCapitalize = ['bold', 'regular', 'medium', 'light', 'notional', 'label'] + +function transformTypographyToken(token: FigmaTypographyToken): React.CSSProperties & { description?: string } { + const { + fontSize, + fontStretch, + fontStyle, + fontWeight, + fontFamily, + letterSpacing, + lineHeight, + paragraphIndent, + paragraphSpacing, + textCase, + textDecoration, + description, + } = token + + return { + description, + fontSize: `${fontSize}px`, + fontWeight, + fontStyle, + fontStretch, + letterSpacing: `${letterSpacing}px`, + lineHeight: `${lineHeight}px`, + textDecoration, + fontFamily, + textIndent: paragraphIndent, + textTransform: textCase, + // We're not using paragraphSpacing here, as it's not a valid CSS property. + } +} + +export function resolveTypographyVariants>( + figmaTypography: T, +): Record { + const result: Partial> = {} + + for (const [category, styles] of Object.entries(figmaTypography)) { + if (category === 'table') { + continue + } + for (const [style, token] of Object.entries(styles) as [string, FigmaTypographyToken][]) { + const key = capitalizeSpecificWords( + `${category}${capitalizeFirstLetter(style)}`, + wordsToCapitalize, + ) as NonTableTypographyVariantKey + result[key] = transformTypographyToken(token) + } + } + + return result as Record +} + +export function resolveTableTypographyVariants>( + figmaTypography: T, +): Record { + const result: Partial> = {} + + for (const [tableType, styles] of Object.entries(figmaTypography.table)) { + for (const [style, token] of Object.entries(styles) as [string, FigmaTypographyToken][]) { + const key = capitalizeSpecificWords( + `table${capitalizeFirstLetter(tableType)}${capitalizeFirstLetter(style)}`, + wordsToCapitalize, + ) as TableTypographyVariantKey + + result[key] = transformTypographyToken(token) + } + } + + return result as Record +} From 9994cb0991e447165c6cc394c09cbce36d0a8473 Mon Sep 17 00:00:00 2001 From: Ignat Date: Tue, 1 Oct 2024 15:55:30 +0500 Subject: [PATCH 08/17] feat: implement `Typography` story --- .../Typography/stories/Typography.stories.tsx | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 packages/curve-ui-kit/src/shared/ui/Typography/stories/Typography.stories.tsx diff --git a/packages/curve-ui-kit/src/shared/ui/Typography/stories/Typography.stories.tsx b/packages/curve-ui-kit/src/shared/ui/Typography/stories/Typography.stories.tsx new file mode 100644 index 00000000..5b349ab4 --- /dev/null +++ b/packages/curve-ui-kit/src/shared/ui/Typography/stories/Typography.stories.tsx @@ -0,0 +1,71 @@ +import { Divider, Stack } from '@mui/material' +import type { Meta, StoryObj } from '@storybook/react' +import { figmaTokens } from '@/shared/api/figma-tokens' +import { Typography } from '../Typography' +import { typographyVariantsKeys, TypographyVariantKey } from '../variants' + +const meta: Meta = { + title: 'UI Kit/Primitives/Typography', + component: Typography, + argTypes: { + color: { + control: 'select', + options: ['primary', 'secondary', 'tertiary', 'neutral', 'info', 'success', 'error', 'grey', undefined], + description: 'The color of the component', + }, + }, + args: { + children: + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', + }, +} + +type Story = StoryObj + +interface TypographyDisplayProps { + variant: TypographyVariantKey + [key: string]: any +} + +const TypographyDisplay: React.FC = ({ variant, ...args }) => { + const typography = figmaTokens.typography[variant] + + return ( + + + {args.children} + + + + Variant: {variant} + + {typography?.description && ( + Description: {typography.description} + )} + + ) +} + +const createStory = (categoryKey: keyof typeof typographyVariantsKeys): Story => ({ + decorators: [ + (Story, { args }) => { + const variants = typographyVariantsKeys[categoryKey] + + return ( + + {(Array.isArray(variants) ? variants : Object.values(variants).flat()).map((variant) => ( + + ))} + + ) + }, + ], +}) + +export const Heading = createStory('heading') +export const Body = createStory('body') +export const ButtonLabel = createStory('buttonLabel') +export const Table = createStory('table') +export const Highlighted = createStory('highlighted') + +export default meta From 3707e6cd5c79c9f0720ec99c9cd57526f8c2b225 Mon Sep 17 00:00:00 2001 From: Ignat Date: Tue, 1 Oct 2024 16:55:30 +0500 Subject: [PATCH 09/17] feat: implement `Button` ui style --- .../src/shared/ui/Button/Button.tsx | 9 ++ .../shared/ui/Button/button-overrides.d.ts | 23 +++ .../src/shared/ui/Button/index.ts | 2 + .../src/shared/ui/Button/muiButton.ts | 136 ++++++++++++++++++ 4 files changed, 170 insertions(+) create mode 100644 packages/curve-ui-kit/src/shared/ui/Button/Button.tsx create mode 100644 packages/curve-ui-kit/src/shared/ui/Button/button-overrides.d.ts create mode 100644 packages/curve-ui-kit/src/shared/ui/Button/index.ts create mode 100644 packages/curve-ui-kit/src/shared/ui/Button/muiButton.ts diff --git a/packages/curve-ui-kit/src/shared/ui/Button/Button.tsx b/packages/curve-ui-kit/src/shared/ui/Button/Button.tsx new file mode 100644 index 00000000..2e3b0793 --- /dev/null +++ b/packages/curve-ui-kit/src/shared/ui/Button/Button.tsx @@ -0,0 +1,9 @@ +import { Button as MuiButton, ButtonProps as MuiButtonProps } from '@mui/material' + +export interface ButtonProps extends MuiButtonProps { + label: string +} + +export const Button = ({ label, ...props }: ButtonProps) => { + return {label} +} diff --git a/packages/curve-ui-kit/src/shared/ui/Button/button-overrides.d.ts b/packages/curve-ui-kit/src/shared/ui/Button/button-overrides.d.ts new file mode 100644 index 00000000..0fbd6f45 --- /dev/null +++ b/packages/curve-ui-kit/src/shared/ui/Button/button-overrides.d.ts @@ -0,0 +1,23 @@ +declare module 'global' { + module '@mui/material/Button' { + interface ButtonPropsVariantOverrides { + outlined: true + contained: true + ghost: true + + text: false + } + + interface ButtonPropsColorOverrides { + primary: true + secondary: true + navigation: true + success: true + alert: true + + error: false + info: false + warning: false + } + } +} diff --git a/packages/curve-ui-kit/src/shared/ui/Button/index.ts b/packages/curve-ui-kit/src/shared/ui/Button/index.ts new file mode 100644 index 00000000..bf775eb6 --- /dev/null +++ b/packages/curve-ui-kit/src/shared/ui/Button/index.ts @@ -0,0 +1,2 @@ +export { Button } from './Button' +export { defineMuiButton } from './muiButton' diff --git a/packages/curve-ui-kit/src/shared/ui/Button/muiButton.ts b/packages/curve-ui-kit/src/shared/ui/Button/muiButton.ts new file mode 100644 index 00000000..8e9e95f5 --- /dev/null +++ b/packages/curve-ui-kit/src/shared/ui/Button/muiButton.ts @@ -0,0 +1,136 @@ +import type { Components, CSSObject } from '@mui/material/styles' +import { type FigmaTokens, extractNumber } from '@/shared/api/figma-tokens' +import { basicMuiTheme, type ThemeKey } from '@/shared/lib/basic-theme' +import { omitProperty } from '@/shared/lib/object-properties' + +export const defineMuiButton = (figmaTokens: FigmaTokens, mode: ThemeKey) => { + const buttonDesktop = figmaTokens.themes.desktop[mode].button + const buttonMobile = figmaTokens.themes.mobile[mode].button + const spacingDesktop = figmaTokens.mappedSizesAndSpaces.desktop.spacing + const spacingMobile = figmaTokens.mappedSizesAndSpaces.mobile.spacing + + const getColorButtonStyle = (color: 'primary' | 'secondary' | 'success' | 'alert'): CSSObject => { + return { + backgroundColor: buttonDesktop[color].default?.fill, + color: buttonDesktop[color].default['label & icon'], + '&:hover': { + backgroundColor: buttonDesktop[color].hover.fill, + color: buttonDesktop[color].hover['label & icon'], + }, + '&:disabled': { + backgroundColor: buttonDesktop[color].disabled.fill, + color: buttonDesktop[color].disabled['label & icon'], + }, + } + } + + const getNavigationButtonStyle = (): CSSObject => { + return { + color: buttonDesktop.navigation.default['label & icon'], + '&:hover': { + backgroundColor: buttonDesktop.navigation.hover.fill, + color: buttonDesktop.navigation.hover['label & icon'], + }, + '&:current': { + backgroundColor: buttonDesktop.navigation.current.fill, + color: buttonDesktop.navigation.current['label & icon'], + }, + } + } + + const getVariantButtonStyle = (variant: 'outlined'): CSSObject => { + return { + backgroundColor: 'transparent', + borderColor: buttonDesktop[variant].default.outline, + color: buttonDesktop[variant].default['label & icon'], + '&:hover': { + borderColor: buttonDesktop[variant].hover.outline, + color: buttonDesktop[variant].hover['label & icon'], + }, + '&:disabled': { + borderColor: buttonDesktop[variant].disabled.outline, + color: buttonDesktop[variant].disabled['label & icon'], + }, + } + } + + const getGhostButtonStyle = (): CSSObject => { + return { + backgroundColor: 'transparent', + color: buttonDesktop.ghost.default['label & icon'], + '&:hover': { + backgroundColor: buttonDesktop.ghost.hover.fill, + color: buttonDesktop.ghost.hover['label & icon'], + }, + '&:disabled': { + backgroundColor: buttonDesktop.ghost.disabled.fill, + color: buttonDesktop.ghost.disabled['label & icon'], + }, + } + } + + const muiButton: Components['MuiButton'] = { + styleOverrides: { + root: { + variants: [ + { + props: { color: 'primary' }, + style: getColorButtonStyle('primary'), + }, + { + props: { color: 'secondary' }, + style: getColorButtonStyle('secondary'), + }, + { + props: { color: 'success' }, + style: getColorButtonStyle('success'), + }, + { + props: { color: 'alert' }, + style: getColorButtonStyle('alert'), + }, + { + props: { color: 'navigation' }, + style: getNavigationButtonStyle(), + }, + { + props: { variant: 'outlined' }, + style: getVariantButtonStyle('outlined'), + }, + { + props: { variant: 'ghost' }, + style: getGhostButtonStyle(), + }, + ], + borderRadius: extractNumber(buttonDesktop.radius.md), + }, + + sizeLarge: { + height: '56px', + padding: `${spacingDesktop.md}px ${spacingDesktop.sm}px`, + [basicMuiTheme.breakpoints.down('tablet')]: { + padding: `${spacingMobile.md}0px ${spacingMobile.sm}0px`, + }, + ...omitProperty(figmaTokens.typography.buttonLabelM, 'description'), + }, + sizeMedium: { + height: '48px', + padding: `${spacingDesktop.xs}px ${spacingDesktop.sm}px`, + [basicMuiTheme.breakpoints.down('tablet')]: { + padding: `${spacingMobile.xs}px ${spacingMobile.sm}px`, + }, + ...omitProperty(figmaTokens.typography.buttonLabelS, 'description'), + }, + sizeSmall: { + height: '40px', + padding: `${spacingDesktop.xs}px ${spacingDesktop.md}px`, + [basicMuiTheme.breakpoints.down('tablet')]: { + padding: `${spacingMobile.xs}px ${spacingMobile.md}px`, + }, + ...omitProperty(figmaTokens.typography.buttonLabelS, 'description'), + }, + }, + } + + return muiButton +} From b8f2407f55f3b06aabbd4e7714106b8befc9cb39 Mon Sep 17 00:00:00 2001 From: Ignat Date: Sat, 5 Oct 2024 16:55:30 +0500 Subject: [PATCH 10/17] feat: implement `Button` story --- .../ui/Button/stories/Button.stories.ts | 105 ++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 packages/curve-ui-kit/src/shared/ui/Button/stories/Button.stories.ts diff --git a/packages/curve-ui-kit/src/shared/ui/Button/stories/Button.stories.ts b/packages/curve-ui-kit/src/shared/ui/Button/stories/Button.stories.ts new file mode 100644 index 00000000..594c768e --- /dev/null +++ b/packages/curve-ui-kit/src/shared/ui/Button/stories/Button.stories.ts @@ -0,0 +1,105 @@ +import type { Meta, StoryObj } from '@storybook/react' +import { fn } from '@storybook/test' +import { Button } from '../Button' + +const meta: Meta = { + title: 'UI Kit/Primitives/Button', + component: Button, + argTypes: { + variant: { + control: 'select', + options: ['contained', 'outlined', 'ghost', undefined], + description: 'The variant of the component', + }, + color: { + control: 'select', + options: ['primary', 'secondary', 'success', 'alert', 'navigation', undefined], + description: 'The color of the component', + }, + label: { + control: 'text', + description: 'The label of the component', + }, + size: { + control: 'select', + options: ['small', 'medium', 'large'], + description: 'The size of the component', + }, + disabled: { + control: 'boolean', + description: 'The disabled state of the component', + }, + }, + args: { + size: 'medium', + disabled: false, + onClick: fn(), + }, +} + +type Story = StoryObj + +export const Primary: Story = { + parameters: { + docs: { + description: { + component: 'Primary button component', + story: 'Primary button with label', + }, + }, + }, + args: { + variant: 'contained', + color: 'primary', + label: 'Primary', + }, +} +export const Secondary: Story = { + args: { + variant: 'contained', + color: 'secondary', + label: 'Secondary', + }, +} + +export const Outlined: Story = { + args: { + variant: 'outlined', + color: undefined, + label: 'Outlined', + }, +} + +export const Ghost: Story = { + args: { + variant: 'ghost', + color: undefined, + label: 'Ghost', + }, +} + +export const Success: Story = { + args: { + variant: 'contained', + color: 'success', + label: 'Success', + }, +} + +export const Alert: Story = { + args: { + variant: 'contained', + color: 'alert', + label: 'Alert', + }, +} + +export const Navigation: Story = { + args: { + variant: 'contained', + color: 'navigation', + label: 'Navigation', + }, +} + +export default meta From a075c5c0f6412a5bb1182c66715aebd4c0811cf1 Mon Sep 17 00:00:00 2001 From: Ignat Date: Tue, 15 Oct 2024 16:55:30 +0500 Subject: [PATCH 11/17] feat: implement `MUI` themes generator --- .../curve-ui-kit/src/entities/themes/index.ts | 1 + .../entities/themes/lib/generate-themes.ts | 19 +++++ .../src/entities/themes/lib/index.ts | 1 + .../src/entities/themes/model/components.ts | 16 +++++ .../src/entities/themes/model/index.ts | 4 ++ .../src/entities/themes/model/pallette.ts | 69 +++++++++++++++++++ .../src/entities/themes/model/spacing.ts | 32 +++++++++ .../src/entities/themes/model/typography.ts | 34 +++++++++ 8 files changed, 176 insertions(+) create mode 100644 packages/curve-ui-kit/src/entities/themes/index.ts create mode 100644 packages/curve-ui-kit/src/entities/themes/lib/generate-themes.ts create mode 100644 packages/curve-ui-kit/src/entities/themes/lib/index.ts create mode 100644 packages/curve-ui-kit/src/entities/themes/model/components.ts create mode 100644 packages/curve-ui-kit/src/entities/themes/model/index.ts create mode 100644 packages/curve-ui-kit/src/entities/themes/model/pallette.ts create mode 100644 packages/curve-ui-kit/src/entities/themes/model/spacing.ts create mode 100644 packages/curve-ui-kit/src/entities/themes/model/typography.ts diff --git a/packages/curve-ui-kit/src/entities/themes/index.ts b/packages/curve-ui-kit/src/entities/themes/index.ts new file mode 100644 index 00000000..99b40968 --- /dev/null +++ b/packages/curve-ui-kit/src/entities/themes/index.ts @@ -0,0 +1 @@ +export * from './lib' diff --git a/packages/curve-ui-kit/src/entities/themes/lib/generate-themes.ts b/packages/curve-ui-kit/src/entities/themes/lib/generate-themes.ts new file mode 100644 index 00000000..9435e1e5 --- /dev/null +++ b/packages/curve-ui-kit/src/entities/themes/lib/generate-themes.ts @@ -0,0 +1,19 @@ +import { createTheme as createMuiTheme, type Theme } from '@mui/material/styles' +import { basicMuiTheme, type ThemeKey } from '@/shared/lib/basic-theme' +import { createComponents, createPalette, createSpacing, createTypography } from '../model' + +function generateTheme(mode: ThemeKey): Theme { + const muiTheme = createMuiTheme({ + ...basicMuiTheme, + palette: createPalette(mode), + typography: createTypography(mode), + components: createComponents(mode), + ...createSpacing(mode), + }) + + return muiTheme +} + +export const lightTheme = generateTheme('light') +export const darkTheme = generateTheme('dark') +export const chadTheme = generateTheme('chad') diff --git a/packages/curve-ui-kit/src/entities/themes/lib/index.ts b/packages/curve-ui-kit/src/entities/themes/lib/index.ts new file mode 100644 index 00000000..1c268304 --- /dev/null +++ b/packages/curve-ui-kit/src/entities/themes/lib/index.ts @@ -0,0 +1 @@ +export * from './generate-themes' diff --git a/packages/curve-ui-kit/src/entities/themes/model/components.ts b/packages/curve-ui-kit/src/entities/themes/model/components.ts new file mode 100644 index 00000000..1241cabc --- /dev/null +++ b/packages/curve-ui-kit/src/entities/themes/model/components.ts @@ -0,0 +1,16 @@ +import { type ThemeOptions } from '@mui/material/styles' +import { figmaTokens } from '@/shared/api/figma-tokens' +import type { ThemeKey } from '@/shared/lib/basic-theme' +import { defineMuiButton } from '@/shared/ui/Button' +import { defineMuiCssBaseline } from '@/shared/ui/CssBaseline' +import { defineMuiTypography } from '@/shared/ui/Typography' + +export const createComponents = (mode: ThemeKey) => { + const components: ThemeOptions['components'] = { + MuiTypography: defineMuiTypography(), + MuiCssBaseline: defineMuiCssBaseline(), + MuiButton: defineMuiButton(figmaTokens, mode), + } + + return components +} diff --git a/packages/curve-ui-kit/src/entities/themes/model/index.ts b/packages/curve-ui-kit/src/entities/themes/model/index.ts new file mode 100644 index 00000000..ffc8ef0b --- /dev/null +++ b/packages/curve-ui-kit/src/entities/themes/model/index.ts @@ -0,0 +1,4 @@ +export * from './components' +export * from './pallette' +export * from './spacing' +export * from './typography' diff --git a/packages/curve-ui-kit/src/entities/themes/model/pallette.ts b/packages/curve-ui-kit/src/entities/themes/model/pallette.ts new file mode 100644 index 00000000..e14f793b --- /dev/null +++ b/packages/curve-ui-kit/src/entities/themes/model/pallette.ts @@ -0,0 +1,69 @@ +import type { ThemeOptions } from '@mui/material' +import { extractPairs, figmaTokens } from '@/shared/api/figma-tokens' +import type { ThemeKey } from '@/shared/lib/basic-theme' + +export const createPalette = (mode: ThemeKey) => { + const theme = figmaTokens.themes.desktop[mode] + + const palette: ThemeOptions['palette'] = { + mode: mode === 'dark' ? 'dark' : 'light', + neutral: { + ...extractPairs(theme.color.neutral), + main: theme.color.neutral['500'], + light: theme.color.neutral['300'], + dark: theme.color.neutral['700'], + }, + primary: { + ...extractPairs(theme.color.primary), + main: theme.color.primary['500'], + light: theme.color.primary['300'], + dark: theme.color.primary['700'], + contrastText: theme.text.textcolors.primary, + }, + secondary: { + ...extractPairs(theme.color.secondary), + main: theme.color.secondary['500'], + light: theme.color.secondary['300'], + dark: theme.color.secondary['700'], + contrastText: theme.text.textcolors.secondary, + }, + tertiary: { + ...extractPairs(theme.color.tertiary), + main: theme.color.tertiary['400'], + contrastText: theme.text.textcolors.tertiary, + }, + error: { + main: theme.feedback.alert, + contrastText: theme.text.textcolors.alert, + }, + warning: { + main: theme.feedback.warning, + contrastText: theme.text.textcolors.warning, + }, + info: { + main: theme.color.primary['300'], + contrastText: theme.text.textcolors.primary, + }, + success: { + main: theme.feedback.success, + contrastText: theme.text.textcolors.success, + }, + text: { + primary: theme.text.textcolors.primary, + secondary: theme.text.textcolors.secondary, + disabled: theme.text.textcolors.disabled, + }, + background: { + default: theme.layer['1'].fill, + paper: theme.layer['2'].fill, + // TODO: add layer 3 fill, app background, highlight fill + }, + grey: extractPairs(figmaTokens.primitives.grays), + green: extractPairs(figmaTokens.primitives.greens), + red: extractPairs(figmaTokens.primitives.reds), + blue: extractPairs(figmaTokens.primitives.blues), + violet: extractPairs(figmaTokens.primitives.violet), + } + + return palette +} diff --git a/packages/curve-ui-kit/src/entities/themes/model/spacing.ts b/packages/curve-ui-kit/src/entities/themes/model/spacing.ts new file mode 100644 index 00000000..6bf9a48e --- /dev/null +++ b/packages/curve-ui-kit/src/entities/themes/model/spacing.ts @@ -0,0 +1,32 @@ +import { type ThemeOptions } from '@mui/material/styles' + +import { figmaTokens, extractNumber } from '@/shared/api/figma-tokens' +import { type ThemeKey } from '@/shared/lib/basic-theme' + +export const createSpacing = (mode: ThemeKey) => { + const { xxs, xs, sm, md, lg, xl, xxl } = figmaTokens.mappedSizesAndSpaces.desktop.spacing + const { + xxs: mXxs, + xs: mXs, + sm: mSm, + md: mMd, + lg: mLg, + xl: mXl, + xxl: mXxl, + } = figmaTokens.mappedSizesAndSpaces.mobile.spacing + const theme = figmaTokens.themes.desktop[mode] + + const spaces: ThemeOptions = { + spacing: [0, xxs, xs, sm, md, lg, xl, xxl], + + // TODO: realize mobile spacing + // [basicMuiTheme.breakpoints.down('tablet')]: { + // spacing: [0, mXxs, mXs, mSm, mMd, mLg, mXl, mXxl], + // }, + shape: { + borderRadius: extractNumber(theme.radius.md), + }, + } + + return spaces +} diff --git a/packages/curve-ui-kit/src/entities/themes/model/typography.ts b/packages/curve-ui-kit/src/entities/themes/model/typography.ts new file mode 100644 index 00000000..4caaadef --- /dev/null +++ b/packages/curve-ui-kit/src/entities/themes/model/typography.ts @@ -0,0 +1,34 @@ +import { type TypographyOptions } from '@mui/material/styles/createTypography' +import { figmaTokens } from '@/shared/api/figma-tokens' +import { basicMuiTheme, ThemeFontFamily, type ThemeKey } from '@/shared/lib/basic-theme' +import { omitProperty } from '@/shared/lib/object-properties' +import { disabledTypographyKeys } from '@/shared/ui/Typography' + +export const createTypography = (mode: ThemeKey) => { + const typographyVariants = Object.entries(figmaTokens.typography).reduce((acc, [key, value]) => { + acc[key as keyof typeof figmaTokens.typography] = omitProperty(value, 'description') + return acc + }, {} as TypographyOptions) + + const disabledTypographyVariants = disabledTypographyKeys.reduce((acc, variant) => { + acc[variant] = undefined + return acc + }, {} as TypographyOptions) + + const typography: TypographyOptions = { + fontFamily: ThemeFontFamily[mode], + fontWeightBold: 700, + fontWeightMedium: 600, + fontWeightRegular: 500, + fontWeightLight: 400, + fontSize: 16, + [basicMuiTheme.breakpoints.down('tablet')]: { + fontSize: 12, + }, + + ...disabledTypographyVariants, + ...typographyVariants, + } + + return typography +} From 3ce481bc37ce1150e86ce031acb015a2c3d47d96 Mon Sep 17 00:00:00 2001 From: Ignat Date: Mon, 21 Oct 2024 19:15:03 +0500 Subject: [PATCH 12/17] ci: `vercel` deployment branch filtering --- .gitignore | 3 --- .vercel/dao-branch-filtering.sh | 14 ++++++++++++++ .vercel/storybook-branch-filtering.sh | 14 ++++++++++++++ 3 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 .vercel/dao-branch-filtering.sh create mode 100644 .vercel/storybook-branch-filtering.sh diff --git a/.gitignore b/.gitignore index df0ce53c..ce1899a3 100644 --- a/.gitignore +++ b/.gitignore @@ -46,9 +46,6 @@ yarn-error.log* # husky .husky -# vercel -.vercel - # lingui compiled translation files src/locales/_build/ src/locales/**/*.js diff --git a/.vercel/dao-branch-filtering.sh b/.vercel/dao-branch-filtering.sh new file mode 100644 index 00000000..1e412306 --- /dev/null +++ b/.vercel/dao-branch-filtering.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +echo "VERCEL_GIT_COMMIT_REF: $VERCEL_GIT_COMMIT_REF" + +if [[ "$VERCEL_GIT_COMMIT_REF" == "staging" || "$VERCEL_GIT_COMMIT_REF" == "task/init-dao-app" ]] ; then + # Proceed with the build + echo "✅ - Build can proceed" + exit 1; + +else + # Don't build + echo "🛑 - Build cancelled" + exit 0; +fi \ No newline at end of file diff --git a/.vercel/storybook-branch-filtering.sh b/.vercel/storybook-branch-filtering.sh new file mode 100644 index 00000000..988b9e3b --- /dev/null +++ b/.vercel/storybook-branch-filtering.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +echo "VERCEL_GIT_COMMIT_REF: $VERCEL_GIT_COMMIT_REF" + +if [[ "$VERCEL_GIT_COMMIT_REF" == "develop" ]] ; then + # Proceed with the build + echo "✅ - Build can proceed" + exit 1; + +else + # Don't build + echo "🛑 - Build cancelled" + exit 0; +fi \ No newline at end of file From 547055ddaaece7c5fc9d54edabe5c6fd70ee820b Mon Sep 17 00:00:00 2001 From: Ignat Date: Mon, 21 Oct 2024 20:29:23 +0500 Subject: [PATCH 13/17] chore: add empty `dao` folder --- apps/dao/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/dao/.gitkeep diff --git a/apps/dao/.gitkeep b/apps/dao/.gitkeep new file mode 100644 index 00000000..e69de29b From 44eb911e3af4f065f94a71ed1134d235977e051e Mon Sep 17 00:00:00 2001 From: Ignat Date: Mon, 21 Oct 2024 22:00:30 +0500 Subject: [PATCH 14/17] chore: after review changes --- packages/curve-ui-kit/.storybook/main.ts | 4 +-- packages/curve-ui-kit/.storybook/preview.tsx | 13 +++++++-- .../entities/themes/lib/generate-themes.ts | 7 ++--- .../src/entities/themes/model/components.ts | 14 ++++------ .../src/entities/themes/model/pallette.ts | 6 ++--- .../src/entities/themes/model/spacing.ts | 6 ++--- .../src/entities/themes/model/typography.ts | 6 ++--- .../api/figma-tokens/extract-figma-values.ts | 20 +------------- .../api/figma-tokens/resolve/resolver.ts | 22 +++++++++++++++ .../validation/analyze_figma_tokens.py | 27 +++++++++++++++++++ .../src/shared/ui/Button/Button.tsx | 8 +++--- .../src/shared/ui/Button/muiButton.ts | 6 ++--- .../ui/Button/stories/Button.stories.ts | 16 +++++------ .../shared/ui/CssBaseline/muiCssBaseline.ts | 5 ++-- .../src/shared/ui/Typography/Typography.tsx | 8 +----- .../src/shared/ui/Typography/muiTypography.ts | 6 ++--- .../Typography/variants/resolve-typography.ts | 24 +++++++++++++++++ 17 files changed, 118 insertions(+), 80 deletions(-) diff --git a/packages/curve-ui-kit/.storybook/main.ts b/packages/curve-ui-kit/.storybook/main.ts index bff88fe5..82cdc12a 100644 --- a/packages/curve-ui-kit/.storybook/main.ts +++ b/packages/curve-ui-kit/.storybook/main.ts @@ -6,8 +6,8 @@ import path from 'path' * This function is used to resolve the absolute path of a package. * It is needed in projects that use Yarn PnP or are set up within a monorepo. */ -function getAbsolutePath(value) { - return dirname(require.resolve(join(value, 'package.json'))) +function getAbsolutePath(packageName: string) { + return dirname(require.resolve(join(packageName, 'package.json'))) } const config: StorybookConfig = { diff --git a/packages/curve-ui-kit/.storybook/preview.tsx b/packages/curve-ui-kit/.storybook/preview.tsx index 996d83e9..b4f80970 100644 --- a/packages/curve-ui-kit/.storybook/preview.tsx +++ b/packages/curve-ui-kit/.storybook/preview.tsx @@ -4,7 +4,6 @@ import type { Decorator, Preview, ReactRenderer } from '@storybook/react' import { chadTheme, darkTheme, lightTheme } from '../src/entities/themes' -console.log('lightTheme', lightTheme) export const decorators: Decorator[] = [ withThemeFromJSXProvider({ themes: { @@ -34,7 +33,17 @@ const preview: Preview = { }, }, docs: { - // TODO: fix docs container theme + // TODO: Fix docs container theme application + // The current issue is that the theme is only applied to individual components + // within the docs, but not to the root level of the documentation container. + // This results in inconsistent styling, where component examples may have the + // correct theme, but the surrounding documentation does not. + // + // Potential solution: + // Implement a custom docs container that applies the theme at the root level. + // This may involve creating a wrapper component that uses the current theme + // from the Storybook context and applies it to the entire docs container. + // // container: ({ children, context }) => { // const theme = context.store.userGlobals.globals.theme // return ( diff --git a/packages/curve-ui-kit/src/entities/themes/lib/generate-themes.ts b/packages/curve-ui-kit/src/entities/themes/lib/generate-themes.ts index 9435e1e5..76fb9e82 100644 --- a/packages/curve-ui-kit/src/entities/themes/lib/generate-themes.ts +++ b/packages/curve-ui-kit/src/entities/themes/lib/generate-themes.ts @@ -2,8 +2,8 @@ import { createTheme as createMuiTheme, type Theme } from '@mui/material/styles' import { basicMuiTheme, type ThemeKey } from '@/shared/lib/basic-theme' import { createComponents, createPalette, createSpacing, createTypography } from '../model' -function generateTheme(mode: ThemeKey): Theme { - const muiTheme = createMuiTheme({ +const generateTheme = (mode: ThemeKey): Theme => + createMuiTheme({ ...basicMuiTheme, palette: createPalette(mode), typography: createTypography(mode), @@ -11,9 +11,6 @@ function generateTheme(mode: ThemeKey): Theme { ...createSpacing(mode), }) - return muiTheme -} - export const lightTheme = generateTheme('light') export const darkTheme = generateTheme('dark') export const chadTheme = generateTheme('chad') diff --git a/packages/curve-ui-kit/src/entities/themes/model/components.ts b/packages/curve-ui-kit/src/entities/themes/model/components.ts index 1241cabc..50758d6c 100644 --- a/packages/curve-ui-kit/src/entities/themes/model/components.ts +++ b/packages/curve-ui-kit/src/entities/themes/model/components.ts @@ -5,12 +5,8 @@ import { defineMuiButton } from '@/shared/ui/Button' import { defineMuiCssBaseline } from '@/shared/ui/CssBaseline' import { defineMuiTypography } from '@/shared/ui/Typography' -export const createComponents = (mode: ThemeKey) => { - const components: ThemeOptions['components'] = { - MuiTypography: defineMuiTypography(), - MuiCssBaseline: defineMuiCssBaseline(), - MuiButton: defineMuiButton(figmaTokens, mode), - } - - return components -} +export const createComponents = (mode: ThemeKey): ThemeOptions['components'] => ({ + MuiTypography: defineMuiTypography(), + MuiCssBaseline: defineMuiCssBaseline(), + MuiButton: defineMuiButton(figmaTokens, mode), +}) diff --git a/packages/curve-ui-kit/src/entities/themes/model/pallette.ts b/packages/curve-ui-kit/src/entities/themes/model/pallette.ts index e14f793b..aeef287a 100644 --- a/packages/curve-ui-kit/src/entities/themes/model/pallette.ts +++ b/packages/curve-ui-kit/src/entities/themes/model/pallette.ts @@ -2,10 +2,10 @@ import type { ThemeOptions } from '@mui/material' import { extractPairs, figmaTokens } from '@/shared/api/figma-tokens' import type { ThemeKey } from '@/shared/lib/basic-theme' -export const createPalette = (mode: ThemeKey) => { +export const createPalette = (mode: ThemeKey): ThemeOptions['palette'] => { const theme = figmaTokens.themes.desktop[mode] - const palette: ThemeOptions['palette'] = { + return { mode: mode === 'dark' ? 'dark' : 'light', neutral: { ...extractPairs(theme.color.neutral), @@ -64,6 +64,4 @@ export const createPalette = (mode: ThemeKey) => { blue: extractPairs(figmaTokens.primitives.blues), violet: extractPairs(figmaTokens.primitives.violet), } - - return palette } diff --git a/packages/curve-ui-kit/src/entities/themes/model/spacing.ts b/packages/curve-ui-kit/src/entities/themes/model/spacing.ts index 6bf9a48e..1dd1c253 100644 --- a/packages/curve-ui-kit/src/entities/themes/model/spacing.ts +++ b/packages/curve-ui-kit/src/entities/themes/model/spacing.ts @@ -3,7 +3,7 @@ import { type ThemeOptions } from '@mui/material/styles' import { figmaTokens, extractNumber } from '@/shared/api/figma-tokens' import { type ThemeKey } from '@/shared/lib/basic-theme' -export const createSpacing = (mode: ThemeKey) => { +export const createSpacing = (mode: ThemeKey): ThemeOptions => { const { xxs, xs, sm, md, lg, xl, xxl } = figmaTokens.mappedSizesAndSpaces.desktop.spacing const { xxs: mXxs, @@ -16,7 +16,7 @@ export const createSpacing = (mode: ThemeKey) => { } = figmaTokens.mappedSizesAndSpaces.mobile.spacing const theme = figmaTokens.themes.desktop[mode] - const spaces: ThemeOptions = { + return { spacing: [0, xxs, xs, sm, md, lg, xl, xxl], // TODO: realize mobile spacing @@ -27,6 +27,4 @@ export const createSpacing = (mode: ThemeKey) => { borderRadius: extractNumber(theme.radius.md), }, } - - return spaces } diff --git a/packages/curve-ui-kit/src/entities/themes/model/typography.ts b/packages/curve-ui-kit/src/entities/themes/model/typography.ts index 4caaadef..f5d237ed 100644 --- a/packages/curve-ui-kit/src/entities/themes/model/typography.ts +++ b/packages/curve-ui-kit/src/entities/themes/model/typography.ts @@ -4,7 +4,7 @@ import { basicMuiTheme, ThemeFontFamily, type ThemeKey } from '@/shared/lib/basi import { omitProperty } from '@/shared/lib/object-properties' import { disabledTypographyKeys } from '@/shared/ui/Typography' -export const createTypography = (mode: ThemeKey) => { +export const createTypography = (mode: ThemeKey): TypographyOptions => { const typographyVariants = Object.entries(figmaTokens.typography).reduce((acc, [key, value]) => { acc[key as keyof typeof figmaTokens.typography] = omitProperty(value, 'description') return acc @@ -15,7 +15,7 @@ export const createTypography = (mode: ThemeKey) => { return acc }, {} as TypographyOptions) - const typography: TypographyOptions = { + return { fontFamily: ThemeFontFamily[mode], fontWeightBold: 700, fontWeightMedium: 600, @@ -29,6 +29,4 @@ export const createTypography = (mode: ThemeKey) => { ...disabledTypographyVariants, ...typographyVariants, } - - return typography } diff --git a/packages/curve-ui-kit/src/shared/api/figma-tokens/extract-figma-values.ts b/packages/curve-ui-kit/src/shared/api/figma-tokens/extract-figma-values.ts index a83bda6c..b539b344 100644 --- a/packages/curve-ui-kit/src/shared/api/figma-tokens/extract-figma-values.ts +++ b/packages/curve-ui-kit/src/shared/api/figma-tokens/extract-figma-values.ts @@ -1,18 +1,3 @@ -/** - * Extracts values from a Figma token object, excluding specified keys. - * @param obj - The Figma token object to extract values from. - * @param excludeKeys - An array of keys to exclude from extraction. - * @returns An array of extracted values. - */ -export function extractValues>( - obj: T, - excludeKeys: string[] = [], -): ExtractedValues { - return Object.entries(obj) - .filter(([key]) => !excludeKeys.includes(key)) - .map(([, value]) => value) as ExtractedValues -} - /** * Extracts key-value pairs from a Figma token object, excluding specified keys. * @param obj - The Figma token object to extract key-value pairs from. @@ -26,8 +11,7 @@ export function extractPairs>( return Object.entries(obj).reduce( (acc, [key, value]) => { if (!excludeKeys.includes(key)) { - // @ts-expect-error - acc[key] = value + return { ...acc, [key]: value } } return acc }, @@ -66,8 +50,6 @@ export type FigmaValueObject = { type ExcludeKeys = Exclude -export type ExtractedValues = Array]> - export type ExtractedKeyValuePairs = { [P in ExcludeKeys]: T[P] } diff --git a/packages/curve-ui-kit/src/shared/api/figma-tokens/resolve/resolver.ts b/packages/curve-ui-kit/src/shared/api/figma-tokens/resolve/resolver.ts index 19b4de3f..7d63693b 100644 --- a/packages/curve-ui-kit/src/shared/api/figma-tokens/resolve/resolver.ts +++ b/packages/curve-ui-kit/src/shared/api/figma-tokens/resolve/resolver.ts @@ -1,5 +1,11 @@ import type { CurveFigmaDesignTokens, ScreenType } from '../tokens' +/** + * Resolves nested token values in a Figma design token tree. + * This type recursively unwraps token objects and resolves referenced values. + * + * @template T - The type of the token tree + */ export type ResolvedValue = T extends { type: string; value: infer V } ? V extends string ? V extends `{${string}}` @@ -10,6 +16,13 @@ export type ResolvedValue = T extends { type: string; value: infer V } ? { [K in keyof T]: ResolvedValue } : T +/** + * Resolves a token value given a token path. + * This type navigates through the token tree to find and resolve the referenced value. + * + * @template TokenTree - The type of the entire token tree + * @template TokenPath - A string representing the path to a token value + */ export type ResolvedTokenValue = TokenPath extends `{${infer Path}}` ? Path extends keyof TokenTree ? TokenTree[Path] extends { value: infer V } @@ -22,6 +35,15 @@ export type ResolvedTokenValue = TokenPath : never : never +/** + * Resolves all token references in a Figma design token tree. + * This function traverses the entire token tree, resolving any referenced values + * and handling screen type-specific tokens. + * + * @param tokenTree - The original Figma design token tree + * @param screenType - The target screen type for resolution (default: 'desktop') + * @returns A new token tree with all references resolved + */ export function resolveFigmaTokens( tokenTree: T, screenType: ScreenType = 'desktop', diff --git a/packages/curve-ui-kit/src/shared/api/figma-tokens/validation/analyze_figma_tokens.py b/packages/curve-ui-kit/src/shared/api/figma-tokens/validation/analyze_figma_tokens.py index 80344212..c434384a 100644 --- a/packages/curve-ui-kit/src/shared/api/figma-tokens/validation/analyze_figma_tokens.py +++ b/packages/curve-ui-kit/src/shared/api/figma-tokens/validation/analyze_figma_tokens.py @@ -2,7 +2,21 @@ import re from collections import defaultdict +""" +This script analyzes a Figma design tokens JSON file to identify and categorize token references. +It helps in understanding the structure and dependencies within the design token system. +""" + def analyze_json_file(file_path): + """ + Analyzes a JSON file containing Figma design tokens. + + Args: + file_path (str): Path to the JSON file containing Figma design tokens. + + This function reads the JSON file, traverses its structure, and identifies token references. + It then prints out a categorized list of these references. + """ with open(file_path, 'r') as file: data = json.load(file) @@ -10,6 +24,15 @@ def analyze_json_file(file_path): reference_pattern = re.compile(r'\{([^}]+)\}') def traverse(obj, path): + """ + Recursively traverses the JSON object to find token references. + + Args: + obj: The current object or value being traversed. + path (list): The current path in the JSON structure. + + This function identifies references in string values and adds them to the references dictionary. + """ if isinstance(obj, dict): for key, value in obj.items(): new_path = path + [key] @@ -27,10 +50,14 @@ def traverse(obj, path): traverse(data, []) + # Print the categorized references for category, refs in sorted(references.items()): print(f"\n{category}:") for ref in sorted(refs): print(f" - {ref}") +# File path to the Figma design tokens JSON file file_path = '../curve-figma-design-tokens/curve-figma-design.tokens.json' + +# Run the analysis analyze_json_file(file_path) diff --git a/packages/curve-ui-kit/src/shared/ui/Button/Button.tsx b/packages/curve-ui-kit/src/shared/ui/Button/Button.tsx index 2e3b0793..69c0774c 100644 --- a/packages/curve-ui-kit/src/shared/ui/Button/Button.tsx +++ b/packages/curve-ui-kit/src/shared/ui/Button/Button.tsx @@ -1,9 +1,7 @@ import { Button as MuiButton, ButtonProps as MuiButtonProps } from '@mui/material' -export interface ButtonProps extends MuiButtonProps { - label: string -} +export interface ButtonProps extends MuiButtonProps {} -export const Button = ({ label, ...props }: ButtonProps) => { - return {label} +export const Button = ({ children, ...props }: ButtonProps) => { + return {children} } diff --git a/packages/curve-ui-kit/src/shared/ui/Button/muiButton.ts b/packages/curve-ui-kit/src/shared/ui/Button/muiButton.ts index 8e9e95f5..dc7641ad 100644 --- a/packages/curve-ui-kit/src/shared/ui/Button/muiButton.ts +++ b/packages/curve-ui-kit/src/shared/ui/Button/muiButton.ts @@ -3,7 +3,7 @@ import { type FigmaTokens, extractNumber } from '@/shared/api/figma-tokens' import { basicMuiTheme, type ThemeKey } from '@/shared/lib/basic-theme' import { omitProperty } from '@/shared/lib/object-properties' -export const defineMuiButton = (figmaTokens: FigmaTokens, mode: ThemeKey) => { +export const defineMuiButton = (figmaTokens: FigmaTokens, mode: ThemeKey): Components['MuiButton'] => { const buttonDesktop = figmaTokens.themes.desktop[mode].button const buttonMobile = figmaTokens.themes.mobile[mode].button const spacingDesktop = figmaTokens.mappedSizesAndSpaces.desktop.spacing @@ -69,7 +69,7 @@ export const defineMuiButton = (figmaTokens: FigmaTokens, mode: ThemeKey) => { } } - const muiButton: Components['MuiButton'] = { + return { styleOverrides: { root: { variants: [ @@ -131,6 +131,4 @@ export const defineMuiButton = (figmaTokens: FigmaTokens, mode: ThemeKey) => { }, }, } - - return muiButton } diff --git a/packages/curve-ui-kit/src/shared/ui/Button/stories/Button.stories.ts b/packages/curve-ui-kit/src/shared/ui/Button/stories/Button.stories.ts index 594c768e..ebf6ed7c 100644 --- a/packages/curve-ui-kit/src/shared/ui/Button/stories/Button.stories.ts +++ b/packages/curve-ui-kit/src/shared/ui/Button/stories/Button.stories.ts @@ -16,7 +16,7 @@ const meta: Meta = { options: ['primary', 'secondary', 'success', 'alert', 'navigation', undefined], description: 'The color of the component', }, - label: { + children: { control: 'text', description: 'The label of the component', }, @@ -51,14 +51,14 @@ export const Primary: Story = { args: { variant: 'contained', color: 'primary', - label: 'Primary', + children: 'Primary', }, } export const Secondary: Story = { args: { variant: 'contained', color: 'secondary', - label: 'Secondary', + children: 'Secondary', }, } @@ -66,7 +66,7 @@ export const Outlined: Story = { args: { variant: 'outlined', color: undefined, - label: 'Outlined', + children: 'Outlined', }, } @@ -74,7 +74,7 @@ export const Ghost: Story = { args: { variant: 'ghost', color: undefined, - label: 'Ghost', + children: 'Ghost', }, } @@ -82,7 +82,7 @@ export const Success: Story = { args: { variant: 'contained', color: 'success', - label: 'Success', + children: 'Success', }, } @@ -90,7 +90,7 @@ export const Alert: Story = { args: { variant: 'contained', color: 'alert', - label: 'Alert', + children: 'Alert', }, } @@ -98,7 +98,7 @@ export const Navigation: Story = { args: { variant: 'contained', color: 'navigation', - label: 'Navigation', + children: 'Navigation', }, } diff --git a/packages/curve-ui-kit/src/shared/ui/CssBaseline/muiCssBaseline.ts b/packages/curve-ui-kit/src/shared/ui/CssBaseline/muiCssBaseline.ts index 70abe1b3..dc27aefe 100644 --- a/packages/curve-ui-kit/src/shared/ui/CssBaseline/muiCssBaseline.ts +++ b/packages/curve-ui-kit/src/shared/ui/CssBaseline/muiCssBaseline.ts @@ -1,7 +1,7 @@ import type { Components } from '@mui/material/styles' -export const defineMuiCssBaseline = () => { - const component: Components['MuiCssBaseline'] = { +export const defineMuiCssBaseline = (): Components['MuiCssBaseline'] => { + return { styleOverrides: ` @font-face { font-family: 'Mona Sans'; @@ -21,5 +21,4 @@ export const defineMuiCssBaseline = () => { } `, } - return component } diff --git a/packages/curve-ui-kit/src/shared/ui/Typography/Typography.tsx b/packages/curve-ui-kit/src/shared/ui/Typography/Typography.tsx index 657b42bc..0b544be5 100644 --- a/packages/curve-ui-kit/src/shared/ui/Typography/Typography.tsx +++ b/packages/curve-ui-kit/src/shared/ui/Typography/Typography.tsx @@ -1,7 +1 @@ -import { Typography as MuiTypography, TypographyProps as MuiTypographyProps } from '@mui/material' - -export interface TypographyProps extends MuiTypographyProps {} - -export const Typography = ({ ...props }: TypographyProps) => { - return -} +export { Typography, type TypographyProps } from '@mui/material' diff --git a/packages/curve-ui-kit/src/shared/ui/Typography/muiTypography.ts b/packages/curve-ui-kit/src/shared/ui/Typography/muiTypography.ts index 6d003bce..4ca1d41d 100644 --- a/packages/curve-ui-kit/src/shared/ui/Typography/muiTypography.ts +++ b/packages/curve-ui-kit/src/shared/ui/Typography/muiTypography.ts @@ -1,7 +1,7 @@ import type { Components } from '@mui/material/styles' -export const defineMuiTypography = () => { - const component: Components['MuiTypography'] = { +export const defineMuiTypography = (): Components['MuiTypography'] => { + return { defaultProps: { variant: 'bodyMRegular', variantMapping: { @@ -21,6 +21,4 @@ export const defineMuiTypography = () => { }, }, } - - return component } diff --git a/packages/curve-ui-kit/src/shared/ui/Typography/variants/resolve-typography.ts b/packages/curve-ui-kit/src/shared/ui/Typography/variants/resolve-typography.ts index 1faa1c80..00e57ee4 100644 --- a/packages/curve-ui-kit/src/shared/ui/Typography/variants/resolve-typography.ts +++ b/packages/curve-ui-kit/src/shared/ui/Typography/variants/resolve-typography.ts @@ -3,8 +3,18 @@ import { ThemeFontFamily, type ThemeKey } from '@/shared/lib/basic-theme' import { capitalizeFirstLetter, capitalizeSpecificWords } from '@/shared/lib/capitalize' import type { NonTableTypographyVariantKey, TableTypographyVariantKey, TypographyVariantKey } from './config' +/** + * List of words that should be capitalized in typography variant keys. + */ const wordsToCapitalize = ['bold', 'regular', 'medium', 'light', 'notional', 'label'] +/** + * Transforms a Figma typography token into a React CSS properties object. + * This function maps Figma-specific typography properties to their CSS equivalents. + * + * @param token - The Figma typography token to transform + * @returns A React CSS properties object with an optional description + */ function transformTypographyToken(token: FigmaTypographyToken): React.CSSProperties & { description?: string } { const { fontSize, @@ -37,6 +47,13 @@ function transformTypographyToken(token: FigmaTypographyToken): React.CSSPropert } } +/** + * Resolves typography variants from Figma typography tokens, excluding table-specific styles. + * This function creates a mapping of typography variant keys to their corresponding CSS properties. + * + * @param figmaTypography - The Figma typography object containing all typography styles + * @returns An object mapping non-table typography variant keys to their CSS properties + */ export function resolveTypographyVariants>( figmaTypography: T, ): Record { @@ -58,6 +75,13 @@ export function resolveTypographyVariants } +/** + * Resolves table-specific typography variants from Figma typography tokens. + * This function creates a mapping of table typography variant keys to their corresponding CSS properties. + * + * @param figmaTypography - The Figma typography object containing table-specific styles + * @returns An object mapping table typography variant keys to their CSS properties + */ export function resolveTableTypographyVariants>( figmaTypography: T, ): Record { From 6e1cc76ecfce0d1cc75e5152428f3e646a9df67a Mon Sep 17 00:00:00 2001 From: Ignat Date: Mon, 21 Oct 2024 22:02:40 +0500 Subject: [PATCH 15/17] ci: deploy storybook from the current branch --- .vercel/storybook-branch-filtering.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vercel/storybook-branch-filtering.sh b/.vercel/storybook-branch-filtering.sh index 988b9e3b..7af20624 100644 --- a/.vercel/storybook-branch-filtering.sh +++ b/.vercel/storybook-branch-filtering.sh @@ -2,7 +2,7 @@ echo "VERCEL_GIT_COMMIT_REF: $VERCEL_GIT_COMMIT_REF" -if [[ "$VERCEL_GIT_COMMIT_REF" == "develop" ]] ; then +if [[ "$VERCEL_GIT_COMMIT_REF" == "develop" || "$VERCEL_GIT_COMMIT_REF" == "task/new-design-system" ]] ; then # Proceed with the build echo "✅ - Build can proceed" exit 1; From 54d20505af5cd148f675e6ada53994745017478c Mon Sep 17 00:00:00 2001 From: Ignat Date: Mon, 21 Oct 2024 22:20:42 +0500 Subject: [PATCH 16/17] chore: remove `.gitkeep` file --- packages/curve-ui-kit/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 packages/curve-ui-kit/.gitkeep diff --git a/packages/curve-ui-kit/.gitkeep b/packages/curve-ui-kit/.gitkeep deleted file mode 100644 index e69de29b..00000000 From 5b7dd47a910fa9fb3249c8a7cd7821cf4ed477ac Mon Sep 17 00:00:00 2001 From: Ignat Date: Tue, 22 Oct 2024 20:10:51 +0500 Subject: [PATCH 17/17] chore: after review changes --- packages/curve-ui-kit/.storybook/main.ts | 28 ++++- .../src/pages/Introduction/Introduction.mdx | 2 +- .../src/shared/ui/Button/muiButton.ts | 104 ++++++++---------- .../src/shared/ui/Typography/muiTypography.ts | 38 +++---- 4 files changed, 94 insertions(+), 78 deletions(-) diff --git a/packages/curve-ui-kit/.storybook/main.ts b/packages/curve-ui-kit/.storybook/main.ts index 82cdc12a..07439793 100644 --- a/packages/curve-ui-kit/.storybook/main.ts +++ b/packages/curve-ui-kit/.storybook/main.ts @@ -33,7 +33,33 @@ const config: StorybookConfig = { docs: {}, typescript: {}, - // TODO: wait for fix https://github.com/storybookjs/storybook/issues/12129 + /** + * TODO: Temporary workaround for Storybook issue #12129 + * + * There's currently a bug in Storybook that affects the TypeScript configuration + * and causes issues with react-docgen-typescript. The configuration below is commented out + * due to these issues. + * + * Instead, we're currently using a solution proposed in a comment on the GitHub issue: + * https://github.com/storybookjs/storybook/issues/12129#issuecomment-1486722918 + * + * This solution involves manually defining `argTypes` in each story file. While this + * requires more work, it allows us to have proper typing and avoid build errors. + * + * Example usage in a story file: + * ``` + * export default { + * component: MyComponent, + * argTypes: { + * prop1: { control: 'text' }, + * prop2: { control: 'boolean' }, + * }, + * } as Meta; + * ``` + * + * Once the Storybook issue is resolved, we can revisit this configuration and potentially + * switch back to using react-docgen-typescript for automatic prop type inference. + */ // typescript: { // reactDocgen: react-docgen-typescript, // reactDocgenTypescriptOptions: { diff --git a/packages/curve-ui-kit/src/pages/Introduction/Introduction.mdx b/packages/curve-ui-kit/src/pages/Introduction/Introduction.mdx index dd8d2f7b..41cd364f 100644 --- a/packages/curve-ui-kit/src/pages/Introduction/Introduction.mdx +++ b/packages/curve-ui-kit/src/pages/Introduction/Introduction.mdx @@ -146,7 +146,7 @@ export const DiscordIcon = () => (

Contribute on GitHub

Help us improve the Curve.fi UI Kit by contributing to our repository.

- + Visit Repository diff --git a/packages/curve-ui-kit/src/shared/ui/Button/muiButton.ts b/packages/curve-ui-kit/src/shared/ui/Button/muiButton.ts index dc7641ad..2b4f4539 100644 --- a/packages/curve-ui-kit/src/shared/ui/Button/muiButton.ts +++ b/packages/curve-ui-kit/src/shared/ui/Button/muiButton.ts @@ -9,65 +9,57 @@ export const defineMuiButton = (figmaTokens: FigmaTokens, mode: ThemeKey): Compo const spacingDesktop = figmaTokens.mappedSizesAndSpaces.desktop.spacing const spacingMobile = figmaTokens.mappedSizesAndSpaces.mobile.spacing - const getColorButtonStyle = (color: 'primary' | 'secondary' | 'success' | 'alert'): CSSObject => { - return { - backgroundColor: buttonDesktop[color].default?.fill, - color: buttonDesktop[color].default['label & icon'], - '&:hover': { - backgroundColor: buttonDesktop[color].hover.fill, - color: buttonDesktop[color].hover['label & icon'], - }, - '&:disabled': { - backgroundColor: buttonDesktop[color].disabled.fill, - color: buttonDesktop[color].disabled['label & icon'], - }, - } - } + const getColorButtonStyle = (color: 'primary' | 'secondary' | 'success' | 'alert'): CSSObject => ({ + backgroundColor: buttonDesktop[color].default?.fill, + color: buttonDesktop[color].default['label & icon'], + '&:hover': { + backgroundColor: buttonDesktop[color].hover.fill, + color: buttonDesktop[color].hover['label & icon'], + }, + '&:disabled': { + backgroundColor: buttonDesktop[color].disabled.fill, + color: buttonDesktop[color].disabled['label & icon'], + }, + }) - const getNavigationButtonStyle = (): CSSObject => { - return { - color: buttonDesktop.navigation.default['label & icon'], - '&:hover': { - backgroundColor: buttonDesktop.navigation.hover.fill, - color: buttonDesktop.navigation.hover['label & icon'], - }, - '&:current': { - backgroundColor: buttonDesktop.navigation.current.fill, - color: buttonDesktop.navigation.current['label & icon'], - }, - } - } + const getNavigationButtonStyle = (): CSSObject => ({ + color: buttonDesktop.navigation.default['label & icon'], + '&:hover': { + backgroundColor: buttonDesktop.navigation.hover.fill, + color: buttonDesktop.navigation.hover['label & icon'], + }, + '&:current': { + backgroundColor: buttonDesktop.navigation.current.fill, + color: buttonDesktop.navigation.current['label & icon'], + }, + }) - const getVariantButtonStyle = (variant: 'outlined'): CSSObject => { - return { - backgroundColor: 'transparent', - borderColor: buttonDesktop[variant].default.outline, - color: buttonDesktop[variant].default['label & icon'], - '&:hover': { - borderColor: buttonDesktop[variant].hover.outline, - color: buttonDesktop[variant].hover['label & icon'], - }, - '&:disabled': { - borderColor: buttonDesktop[variant].disabled.outline, - color: buttonDesktop[variant].disabled['label & icon'], - }, - } - } + const getVariantButtonStyle = (variant: 'outlined'): CSSObject => ({ + backgroundColor: 'transparent', + borderColor: buttonDesktop[variant].default.outline, + color: buttonDesktop[variant].default['label & icon'], + '&:hover': { + borderColor: buttonDesktop[variant].hover.outline, + color: buttonDesktop[variant].hover['label & icon'], + }, + '&:disabled': { + borderColor: buttonDesktop[variant].disabled.outline, + color: buttonDesktop[variant].disabled['label & icon'], + }, + }) - const getGhostButtonStyle = (): CSSObject => { - return { - backgroundColor: 'transparent', - color: buttonDesktop.ghost.default['label & icon'], - '&:hover': { - backgroundColor: buttonDesktop.ghost.hover.fill, - color: buttonDesktop.ghost.hover['label & icon'], - }, - '&:disabled': { - backgroundColor: buttonDesktop.ghost.disabled.fill, - color: buttonDesktop.ghost.disabled['label & icon'], - }, - } - } + const getGhostButtonStyle = (): CSSObject => ({ + backgroundColor: 'transparent', + color: buttonDesktop.ghost.default['label & icon'], + '&:hover': { + backgroundColor: buttonDesktop.ghost.hover.fill, + color: buttonDesktop.ghost.hover['label & icon'], + }, + '&:disabled': { + backgroundColor: buttonDesktop.ghost.disabled.fill, + color: buttonDesktop.ghost.disabled['label & icon'], + }, + }) return { styleOverrides: { diff --git a/packages/curve-ui-kit/src/shared/ui/Typography/muiTypography.ts b/packages/curve-ui-kit/src/shared/ui/Typography/muiTypography.ts index 4ca1d41d..c6d8924c 100644 --- a/packages/curve-ui-kit/src/shared/ui/Typography/muiTypography.ts +++ b/packages/curve-ui-kit/src/shared/ui/Typography/muiTypography.ts @@ -1,24 +1,22 @@ import type { Components } from '@mui/material/styles' -export const defineMuiTypography = (): Components['MuiTypography'] => { - return { - defaultProps: { - variant: 'bodyMRegular', - variantMapping: { - bodyMBold: 'p', - bodyMRegular: 'p', - bodySBold: 'p', - bodySRegular: 'p', - bodyXsBold: 'p', - bodyXsRegular: 'p', +export const defineMuiTypography = (): Components['MuiTypography'] => ({ + defaultProps: { + variant: 'bodyMRegular', + variantMapping: { + bodyMBold: 'p', + bodyMRegular: 'p', + bodySBold: 'p', + bodySRegular: 'p', + bodyXsBold: 'p', + bodyXsRegular: 'p', - headingXxl: 'h1', - headingMBold: 'h2', - headingMLight: 'h3', - headingSBold: 'h4', - headingXsBold: 'h5', - headingXsMedium: 'h6', - }, + headingXxl: 'h1', + headingMBold: 'h2', + headingMLight: 'h3', + headingSBold: 'h4', + headingXsBold: 'h5', + headingXsMedium: 'h6', }, - } -} + }, +})