@octoguide/mui-ui-toolkit 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ThemeProvider.tsx","../src/themes/defaultTheme.ts","../src/themes/mergeTheme.ts","../src/themes/theme1/index.ts","../src/themes/theme2/index.ts","../src/themes/cps/index.ts","../src/themes/registry.ts","../src/themes/config.ts","../src/themes/createMuiTheme.ts","../src/components/Button/Button.tsx","../src/components/Chip/Chip.tsx","../src/components/Card/Card.tsx","../src/components/TextField/TextField.tsx","../src/components/Alert/Alert.tsx","../src/components/Accordion/Accordion.tsx","../src/components/Avatar/Avatar.tsx","../src/components/ToggleButton/ToggleButton.tsx","../src/components/DatePicker/DatePicker.tsx","../src/foundation/Grid/Grid.tsx","../src/foundation/H1/H1.tsx","../src/foundation/H2/H2.tsx","../src/foundation/H3/H3.tsx","../src/foundation/H4/H4.tsx","../src/foundation/H5/H5.tsx","../src/foundation/H6/H6.tsx","../src/foundation/Subtitle1/Subtitle1.tsx","../src/foundation/Subtitle2/Subtitle2.tsx","../src/foundation/Body1/Body1.tsx","../src/foundation/Body2/Body2.tsx","../src/foundation/Caption/Caption.tsx","../src/foundation/Overline/Overline.tsx","../src/foundation/TypographyButton/TypographyButton.tsx"],"sourcesContent":["import React from 'react';\nimport { ThemeProvider as MuiThemeProvider, CssBaseline } from '@mui/material';\nimport { ThemeName, getThemeTokens } from './themes/registry';\nimport { resolveThemeName } from './themes/config';\nimport { createMuiTheme } from './themes/createMuiTheme';\n\ninterface ToolkitThemeProviderProps {\n /**\n * Explicitly override which theme to use.\n *\n * If omitted, the theme is read from the environment variable\n * configured in your app's .env file (VITE_THEME, REACT_APP_THEME,\n * or NEXT_PUBLIC_THEME).\n *\n * Passing this prop is useful in tests, Storybook, or when you want\n * to let a user switch themes at runtime.\n */\n theme?: ThemeName;\n children: React.ReactNode;\n /**\n * Inject MUI's CssBaseline (recommended for normalizing browser styles).\n * Defaults to true.\n */\n injectCssBaseline?: boolean;\n}\n\n/**\n * Drop-in ThemeProvider for any app using the mui-ui-toolkit.\n *\n * Usage in your app root:\n *\n * // .env\n * VITE_THEME=theme2\n *\n * // main.tsx\n * import { ToolkitThemeProvider } from '@mui-ui-toolkit/core';\n *\n * <ToolkitThemeProvider>\n * <App />\n * </ToolkitThemeProvider>\n *\n * Or to override at runtime (e.g. user preference):\n *\n * <ToolkitThemeProvider theme=\"theme1\">\n * <App />\n * </ToolkitThemeProvider>\n */\nexport function ToolkitThemeProvider({\n theme,\n children,\n injectCssBaseline = true,\n}: ToolkitThemeProviderProps) {\n const themeName = theme ?? resolveThemeName();\n const tokens = getThemeTokens(themeName);\n const muiTheme = createMuiTheme(tokens);\n\n return (\n <MuiThemeProvider theme={muiTheme}>\n {injectCssBaseline && <CssBaseline />}\n {children}\n </MuiThemeProvider>\n );\n}\n","import { ThemeTokens } from './tokens';\n\n/**\n * Default theme — the baseline every theme builds on.\n *\n * Contains all values that are shared across themes (spacing, zIndex,\n * component sizes/paddings, etc.) plus neutral placeholder values for\n * brand-specific tokens (colors, shadows, typography fonts).\n *\n * Themes only need to override what differs from these defaults.\n */\nconst defaultTheme: ThemeTokens = {\n colors: {\n primary: '#BE0D00',\n primaryDark: '#003c8f',\n primaryLight: '#5e92f3',\n primaryContrast: '#ffffff',\n\n secondary: '#c95109',\n secondaryDark: '#38006b',\n secondaryLight: '#9c4dcc',\n secondaryContrast: '#ffffff',\n\n success: '#1A6D29',\n warning: '#E6920A',\n error: '#990000',\n info: '#0288D1',\n\n background: '#F5F7FA',\n backgroundPaper: '#ffffff',\n backgroundSubtle: '#EEF2F7',\n\n textPrimary: '#1A2340',\n textSecondary: '#546080',\n textDisabled: '#A0AABF',\n\n divider: '#DDE3EE',\n border: '#C5CFE0',\n borderFocus: '#1565C0',\n\n overlayLight: 'rgba(255, 255, 255, 0.8)',\n overlayDark: 'rgba(0, 0, 0, 0.12)',\n },\n\n typography: {\n fontFamilyBase: '\"Source Sans Pro\", sans-serif',\n fontFamilyMono: '\"Inter\", \"Roboto\", \"Helvetica Neue\", Arial, sans-serif',\n\n // ── Sizes (identical across all themes) ──────────────────────────────\n fontSizeXs: '0.625rem', // 10px\n fontSizeSm: '0.75rem', // 12px\n fontSizeMd: '0.875rem', // 14px\n fontSizeLg: '1rem', // 16px\n fontSizeXl: '1.125rem', // 18px\n fontSize2xl: '1.375rem', // 22px\n fontSize3xl: '1.75rem', // 28px\n\n // ── Weights (identical across all themes) ─────────────────────────────\n fontWeightLight: 300,\n fontWeightRegular: 400,\n fontWeightMedium: 500,\n fontWeightSemiBold: 600,\n fontWeightBold: 700,\n\n lineHeightTight: 1.2,\n lineHeightBase: 1.5,\n lineHeightRelaxed: 1.75,\n\n letterSpacingTight: '-0.02em',\n letterSpacingBase: '0em',\n letterSpacingWide: '0.06em',\n },\n\n // ── Spacing (identical across all themes) ──────────────────────────────\n spacing: {\n unit: 8,\n xs: '4px',\n sm: '8px',\n md: '16px',\n lg: '24px',\n xl: '32px',\n xxl: '48px',\n },\n\n borderRadius: {\n none: '0px',\n xs: '2px',\n sm: '4px',\n md: '8px',\n lg: '12px',\n xl: '16px',\n full: '9999px',\n },\n\n shadows: {\n none: 'none',\n xs: '0 1px 2px rgba(0, 0, 0, 0.08)',\n sm: '0 2px 6px rgba(0, 0, 0, 0.10)',\n md: '0 4px 12px rgba(0, 0, 0, 0.12)',\n lg: '0 8px 24px rgba(0, 0, 0, 0.14)',\n xl: '0 16px 48px rgba(0, 0, 0, 0.18)',\n },\n\n transitions: {\n durationFast: '120ms',\n durationBase: '200ms',\n durationSlow: '350ms',\n easingDefault: 'cubic-bezier(0.4, 0, 0.2, 1)',\n easingIn: 'cubic-bezier(0.4, 0, 1, 1)',\n easingOut: 'cubic-bezier(0, 0, 0.2, 1)',\n },\n\n // ── Z-index (identical across all themes) ──────────────────────────────\n zIndex: {\n base: 0,\n dropdown: 100,\n sticky: 200,\n overlay: 300,\n modal: 400,\n popover: 500,\n toast: 600,\n tooltip: 700,\n },\n\n components: {\n button: {\n // Sizes & paddings (identical across themes)\n paddingX: '12px',\n paddingY: '6px',\n paddingXSm: '8px',\n paddingYSm: '4px',\n paddingXLg: '16px',\n paddingYLg: '8px',\n paddingXXl: '16px',\n paddingYXl: '8px',\n fontSizeSm: '0.8125rem',\n fontSizeMd: '0.875rem',\n fontSizeLg: '0.9375rem',\n heightSm: '30px',\n heightMd: '36px',\n heightLg: '48px',\n heightXl: '56px',\n // Typography & style (identical across themes)\n borderWidth: '1.5px',\n fontWeight: 700,\n letterSpacing: '0em',\n textTransform: 'none',\n iconGap: '8px',\n // Brand-specific — overridden per theme\n borderRadius: '8px',\n minWidth: '200px'\n },\n\n input: {\n // Sizes & paddings (identical across themes)\n paddingX: '14px',\n paddingY: '10px',\n borderWidthFocus: '2px',\n background: '#ffffff',\n labelFontSize: '0.875rem',\n helperFontSize: '0.75rem',\n // Brand-specific — overridden per theme\n borderRadius: '8px',\n borderWidth: '1px',\n backgroundDisabled: '#F5F7FA',\n minHeight: '44px',\n },\n\n card: {\n // Layout (identical across themes)\n padding: '24px',\n paddingCompact: '16px',\n borderWidth: '1px',\n background: '#ffffff',\n // Brand-specific — overridden per theme\n borderRadius: '12px',\n },\n\n // ── Chip (identical across all themes) ───────────────────────────────\n chip: {\n height: '32px',\n heightSm: '24px',\n paddingX: '12px',\n borderRadius: '9999px',\n fontSize: '0.8125rem',\n fontWeight: 500,\n iconSize: '16px',\n },\n\n // ── Badge (identical across all themes) ──────────────────────────────\n badge: {\n height: '20px',\n minWidth: '20px',\n paddingX: '6px',\n borderRadius: '9999px',\n fontSize: '0.6875rem',\n fontWeight: 700,\n borderWidth: '2px',\n },\n\n tooltip: {\n paddingX: '10px',\n paddingY: '6px',\n fontSize: '0.75rem',\n maxWidth: '280px',\n color: '#ffffff',\n // Brand-specific — overridden per theme\n borderRadius: '6px',\n background: '#1A2340',\n },\n\n dialog: {\n // Layout (identical across themes)\n padding: '32px',\n maxWidth: '600px',\n background: '#ffffff',\n // Brand-specific — overridden per theme\n borderRadius: '16px',\n },\n\n table: {\n // Layout (identical across themes)\n cellPaddingX: '16px',\n headerFontWeight: 600,\n borderWidth: '1px',\n // Brand-specific — overridden per theme\n cellPaddingY: '12px',\n headerBackground: '#EEF2F7',\n rowHoverBackground: '#F5F7FA',\n borderColor: '#DDE3EE',\n },\n\n avatar: {\n // Sizes (identical across themes)\n sizeXs: '24px',\n sizeSm: '32px',\n sizeMd: '40px',\n sizeLg: '56px',\n sizeXl: '80px',\n sizeXxl: '128px',\n // Style (identical across themes)\n borderRadius: '50%',\n groupSpacing: '-8px',\n groupBorderWidth: '2px',\n // Brand-specific — overridden per theme\n borderRadiusRounded: '12px',\n },\n\n divider: {\n thickness: '1px',\n // Brand-specific — overridden per theme\n color: '#DDE3EE',\n },\n\n alert: {\n // Layout (identical across themes)\n padding: '6px 16px',\n // Brand-specific — overridden per theme\n borderRadius: '8px',\n },\n\n accordion: {\n // Layout (identical across themes)\n standaloneRadius: '16px',\n summaryPaddingX: '16px',\n summaryPaddingY: '16px',\n summaryFontWeight: 600,\n detailsPaddingX: '16px',\n detailsPaddingBottom: '16px',\n standaloneBackground: 'rgba(145, 158, 171, 0.08)',\n standaloneBackgroundExpanded: 'rgba(145, 158, 171, 0.16)',\n // Brand-specific — overridden per theme\n borderRadius: '8px',\n },\n\n toggleButton: {\n borderRadius: '8px',\n borderWidth: '1px',\n paddingXSm: '7px',\n paddingYSm: '5px',\n paddingXMd: '11px',\n paddingYMd: '11px',\n paddingXLg: '15px',\n paddingYLg: '15px',\n fontWeight: 700,\n },\n },\n};\n\nexport default defaultTheme;\n","import { ThemeTokens, ThemeOverrides } from './tokens';\n\nfunction isPlainObject(val: unknown): val is Record<string, unknown> {\n return typeof val === 'object' && val !== null && !Array.isArray(val);\n}\n\nfunction deepMerge<T>(base: T, overrides: Record<string, unknown>): T {\n const result: Record<string, unknown> = { ...(base as Record<string, unknown>) };\n for (const key of Object.keys(overrides)) {\n const baseVal = result[key];\n const overrideVal = overrides[key];\n if (isPlainObject(baseVal) && isPlainObject(overrideVal)) {\n result[key] = deepMerge(baseVal, overrideVal);\n } else if (overrideVal !== undefined) {\n result[key] = overrideVal;\n }\n }\n return result as T;\n}\n\n/**\n * Merges a ThemeOverrides partial on top of a complete ThemeTokens base.\n * Only the keys present in `overrides` replace values in `base` —\n * missing keys fall through to the default.\n */\nexport function mergeTheme(base: ThemeTokens, overrides: ThemeOverrides): ThemeTokens {\n return deepMerge(base, overrides as Record<string, unknown>);\n}\n","import { ThemeOverrides } from '../tokens';\n\n/**\n * Theme 1 — \"Ocean Blue\"\n * A clean, professional theme with a deep blue primary palette.\n * Only brand-specific overrides are listed here — everything else\n * inherits from the default theme.\n */\nconst theme1Overrides: ThemeOverrides = {\n colors: {\n primary: '#1565C0',\n primaryDark: '#003c8f',\n primaryLight: '#5e92f3',\n primaryContrast: '#ffffff',\n\n secondary: '#6A1B9A',\n secondaryDark: '#38006b',\n secondaryLight: '#9c4dcc',\n secondaryContrast: '#ffffff',\n\n success: '#2E7D32',\n warning: '#ED6C02',\n error: '#D32F2F',\n info: '#0288D1',\n\n background: '#F5F7FA',\n backgroundPaper: '#ffffff',\n backgroundSubtle: '#EEF2F7',\n\n textPrimary: '#1A2340',\n textSecondary: '#546080',\n textDisabled: '#A0AABF',\n\n divider: '#DDE3EE',\n border: '#C5CFE0',\n borderFocus: '#1565C0',\n\n overlayLight: 'rgba(255, 255, 255, 0.8)',\n overlayDark: 'rgba(21, 101, 192, 0.12)',\n },\n\n typography: {\n fontFamilyBase: '\"Inter\", \"Roboto\", \"Helvetica Neue\", Arial, sans-serif',\n fontFamilyMono: '\"Fira Code\", \"Courier New\", monospace',\n lineHeightTight: 1.2,\n lineHeightBase: 1.5,\n lineHeightRelaxed: 1.75,\n letterSpacingTight: '-0.02em',\n letterSpacingWide: '0.06em',\n },\n\n borderRadius: {\n xs: '2px',\n sm: '4px',\n md: '8px',\n lg: '12px',\n xl: '16px',\n },\n\n shadows: {\n xs: '0 1px 2px rgba(21, 101, 192, 0.08)',\n sm: '0 2px 6px rgba(21, 101, 192, 0.10)',\n md: '0 4px 12px rgba(21, 101, 192, 0.12)',\n lg: '0 8px 24px rgba(21, 101, 192, 0.14)',\n xl: '0 16px 48px rgba(21, 101, 192, 0.18)',\n },\n\n transitions: {\n durationFast: '120ms',\n durationBase: '200ms',\n durationSlow: '350ms',\n },\n\n components: {\n button: { borderRadius: '8px' },\n input: {\n borderRadius: '8px',\n borderWidth: '1px',\n backgroundDisabled: '#F5F7FA',\n minHeight: '44px',\n },\n card: { borderRadius: '12px' },\n tooltip: {\n borderRadius: '6px',\n background: '#1A2340',\n },\n dialog: { borderRadius: '16px' },\n table: {\n cellPaddingY: '12px',\n headerBackground: '#EEF2F7',\n rowHoverBackground: '#F5F7FA',\n borderColor: '#DDE3EE',\n },\n avatar: { borderRadiusRounded: '12px' },\n divider: { color: '#DDE3EE' },\n alert: { borderRadius: '8px' },\n accordion: { borderRadius: '8px' },\n },\n};\n\nexport default theme1Overrides;\n","import { ThemeOverrides } from '../tokens';\n\n/**\n * Theme 2 — \"Forest Green\"\n * A warm, earthy theme with a rich green primary palette and softer,\n * more rounded shapes than Theme 1.\n * Only brand-specific overrides are listed here — everything else\n * inherits from the default theme.\n */\nconst theme2Overrides: ThemeOverrides = {\n colors: {\n primary: '#2E7D32',\n primaryDark: '#1B5E20',\n primaryLight: '#60AD5E',\n primaryContrast: '#ffffff',\n\n secondary: '#F57F17',\n secondaryDark: '#BC5100',\n secondaryLight: '#FFAD42',\n secondaryContrast: '#1A1A1A',\n\n success: '#388E3C',\n warning: '#F57C00',\n error: '#C62828',\n info: '#01579B',\n\n background: '#F7F9F5',\n backgroundPaper: '#ffffff',\n backgroundSubtle: '#EDF3EB',\n\n textPrimary: '#1C2A1E',\n textSecondary: '#4A6350',\n textDisabled: '#9DB09F',\n\n divider: '#D4E5D0',\n border: '#B8D4B2',\n borderFocus: '#2E7D32',\n\n overlayLight: 'rgba(255, 255, 255, 0.8)',\n overlayDark: 'rgba(46, 125, 50, 0.12)',\n },\n\n typography: {\n fontFamilyBase: '\"DM Sans\", \"Roboto\", \"Helvetica Neue\", Arial, sans-serif',\n fontFamilyMono: '\"JetBrains Mono\", \"Courier New\", monospace',\n lineHeightTight: 1.25,\n lineHeightBase: 1.6,\n lineHeightRelaxed: 1.8,\n letterSpacingTight: '-0.01em',\n letterSpacingWide: '0.04em',\n },\n\n borderRadius: {\n xs: '4px',\n sm: '8px',\n md: '12px',\n lg: '20px',\n xl: '28px',\n },\n\n shadows: {\n xs: '0 1px 2px rgba(46, 125, 50, 0.06)',\n sm: '0 2px 8px rgba(46, 125, 50, 0.08)',\n md: '0 4px 16px rgba(46, 125, 50, 0.10)',\n lg: '0 8px 28px rgba(46, 125, 50, 0.13)',\n xl: '0 16px 56px rgba(46, 125, 50, 0.16)',\n },\n\n transitions: {\n durationFast: '150ms',\n durationBase: '250ms',\n durationSlow: '400ms',\n },\n\n components: {\n button: { borderRadius: '12px' },\n input: {\n borderRadius: '12px',\n borderWidth: '1.5px',\n backgroundDisabled: '#F7F9F5',\n minHeight: '46px',\n },\n card: { borderRadius: '20px' },\n tooltip: {\n borderRadius: '8px',\n background: '#1C2A1E',\n },\n dialog: { borderRadius: '24px' },\n table: {\n cellPaddingY: '14px',\n headerBackground: '#EDF3EB',\n rowHoverBackground: '#F7F9F5',\n borderColor: '#D4E5D0',\n },\n avatar: { borderRadiusRounded: '16px' },\n divider: { color: '#D4E5D0' },\n alert: { borderRadius: '12px' },\n accordion: { borderRadius: '12px' },\n },\n};\n\nexport default theme2Overrides;\n","import { ThemeOverrides } from '../tokens';\n\n/**\n * CPS — \"uses the default theme - minimal overrides\"\n */\nconst cpsThemeOverrides: ThemeOverrides = {\n};\n\nexport default cpsThemeOverrides;\n","import { ThemeTokens, ThemeOverrides } from './tokens';\nimport defaultTheme from './defaultTheme';\nimport { mergeTheme } from './mergeTheme';\nimport theme1Overrides from './theme1';\nimport theme2Overrides from './theme2';\nimport cpsThemeOverrides from './cps';\n\n/**\n * All available theme names. Add a new key here whenever you create a\n * new theme in its own sub-directory.\n */\nexport type ThemeName = 'theme1' | 'theme2' | 'cpsTheme';\n\n/**\n * Each entry is a partial override on top of the default theme.\n * Only brand-specific values need to be listed.\n */\nconst themeRegistry: Record<ThemeName, ThemeOverrides> = {\n theme1: theme1Overrides,\n theme2: theme2Overrides,\n cpsTheme: cpsThemeOverrides,\n};\n\n/**\n * Returns the fully resolved token set for the given theme name —\n * the default theme deep-merged with the theme's overrides.\n * Throws at runtime if an unknown name is provided.\n */\nexport function getThemeTokens(name: ThemeName): ThemeTokens {\n const overrides = themeRegistry[name];\n if (!overrides) {\n const available = Object.keys(themeRegistry).join(', ');\n throw new Error(`Unknown theme \"${name}\". Available themes: ${available}`);\n }\n return mergeTheme(defaultTheme, overrides);\n}\n\nexport { themeRegistry };\n","import { ThemeName } from './registry';\n\n/**\n * Resolves the active theme name from the environment.\n *\n * Priority order (first match wins):\n * 1. VITE_THEME — used by Vite-based apps\n * 2. REACT_APP_THEME — used by Create React App\n * 3. NEXT_PUBLIC_THEME — used by Next.js\n * 4. 'cpsTheme' — hardcoded fallback\n *\n * In your app's .env file, add one of:\n *\n * VITE_THEME=theme2\n * REACT_APP_THEME=theme2\n * NEXT_PUBLIC_THEME=theme2\n *\n * The value must match one of the keys in ThemeName ('theme1' | 'theme2' | …).\n * A typo will throw at runtime when getThemeTokens() is called.\n */\nexport function resolveThemeName(): ThemeName {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const importMetaEnv: Record<string, string | undefined> | undefined =\n typeof (import.meta as any)?.env === 'object' ? (import.meta as any).env : undefined;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const env: Record<string, string | undefined> =\n importMetaEnv ||\n (typeof globalThis !== 'undefined' && (globalThis as any).process?.env) ||\n {};\n\n const raw = env['VITE_THEME'] || env['REACT_APP_THEME'] || env['NEXT_PUBLIC_THEME'] || 'cpsTheme';\n\n return raw as ThemeName;\n}\n","import { createTheme, Theme, alpha, darken } from '@mui/material/styles';\nimport { ThemeTokens } from './tokens';\n\n/**\n * Takes a ThemeTokens object and produces a fully configured MUI Theme.\n *\n * MUI's own theme properties (palette, typography, shape, shadows, etc.)\n * are derived from our tokens — not from hard-coded values — so that\n * swapping the tokens object swaps the entire visual language.\n *\n * The raw tokens are also attached as `theme.tokens` (via module\n * augmentation in types/mui.d.ts) so components can read any token\n * not already exposed by MUI's built-in theme shape.\n */\nexport function createMuiTheme(tokens: ThemeTokens): Theme {\n return createTheme({\n palette: {\n primary: {\n main: tokens.colors.primary,\n dark: tokens.colors.primaryDark,\n light: tokens.colors.primaryLight,\n contrastText: tokens.colors.primaryContrast,\n },\n secondary: {\n main: tokens.colors.secondary,\n dark: tokens.colors.secondaryDark,\n light: tokens.colors.secondaryLight,\n contrastText: tokens.colors.secondaryContrast,\n },\n success: { main: tokens.colors.success },\n warning: { main: tokens.colors.warning },\n error: { main: tokens.colors.error },\n info: { main: tokens.colors.info },\n background: {\n default: tokens.colors.background,\n paper: tokens.colors.backgroundPaper,\n subtle: tokens.colors.backgroundSubtle,\n },\n border: tokens.colors.border,\n text: {\n primary: tokens.colors.textPrimary,\n secondary: tokens.colors.textSecondary,\n disabled: tokens.colors.textDisabled,\n },\n divider: tokens.colors.divider,\n },\n\n typography: {\n fontFamily: tokens.typography.fontFamilyBase,\n fontWeightLight: tokens.typography.fontWeightLight,\n fontWeightRegular: tokens.typography.fontWeightRegular,\n fontWeightMedium: tokens.typography.fontWeightMedium,\n fontWeightBold: tokens.typography.fontWeightBold,\n fontSize: 14, // MUI base, actual sizes come from tokens\n },\n\n shape: {\n borderRadius: 8, // MUI uses a number; components use tokens directly\n },\n\n spacing: tokens.spacing.unit,\n\n zIndex: {\n appBar: tokens.zIndex.sticky,\n drawer: tokens.zIndex.overlay,\n modal: tokens.zIndex.modal,\n snackbar: tokens.zIndex.toast,\n tooltip: tokens.zIndex.tooltip,\n },\n\n components: {\n MuiButton: {\n defaultProps: {\n disableElevation: true,\n },\n styleOverrides: {\n root: {\n borderRadius: tokens.components.button.borderRadius,\n fontWeight: tokens.components.button.fontWeight,\n letterSpacing: tokens.components.button.letterSpacing,\n textTransform: tokens.components.button.textTransform as 'none',\n fontSize: tokens.components.button.fontSizeMd,\n minHeight: tokens.components.button.heightMd,\n paddingLeft: tokens.components.button.paddingX,\n paddingRight: tokens.components.button.paddingX,\n paddingTop: tokens.components.button.paddingY,\n paddingBottom: tokens.components.button.paddingY,\n boxShadow: tokens.shadows.none,\n transition: `all ${tokens.transitions.durationBase} ${tokens.transitions.easingDefault}`,\n '&:hover': {\n boxShadow: tokens.shadows.none,\n },\n },\n sizeSmall: {\n fontSize: tokens.components.button.fontSizeSm,\n minHeight: tokens.components.button.heightSm,\n paddingLeft: tokens.components.button.paddingXSm,\n paddingRight: tokens.components.button.paddingXSm,\n paddingTop: tokens.components.button.paddingYSm,\n paddingBottom: tokens.components.button.paddingYSm,\n },\n sizeLarge: {\n fontSize: tokens.components.button.fontSizeLg,\n minHeight: tokens.components.button.heightLg,\n paddingLeft: tokens.components.button.paddingXLg,\n paddingRight: tokens.components.button.paddingXLg,\n paddingTop: tokens.components.button.paddingYLg,\n paddingBottom: tokens.components.button.paddingYLg,\n },\n },\n variants: [\n // xlarge size\n {\n props: { size: 'xlarge' },\n style: {\n fontSize: tokens.components.button.fontSizeLg,\n minHeight: tokens.components.button.heightXl,\n paddingLeft: tokens.components.button.paddingXXl,\n paddingRight: tokens.components.button.paddingXXl,\n paddingTop: tokens.components.button.paddingYXl,\n paddingBottom: tokens.components.button.paddingYXl,\n },\n },\n // soft variant — base (inherit/no color)\n {\n props: { variant: 'soft' },\n style: {\n backgroundColor: alpha(tokens.colors.textSecondary, 0.12),\n color: tokens.colors.textPrimary,\n boxShadow: tokens.shadows.none,\n '&:hover': {\n backgroundColor: alpha(tokens.colors.textSecondary, 0.2),\n boxShadow: tokens.shadows.none,\n },\n '&.Mui-disabled': {\n backgroundColor: alpha(tokens.colors.textDisabled, 0.12),\n color: tokens.colors.textDisabled,\n },\n },\n },\n // soft variant — primary\n {\n props: { variant: 'soft', color: 'primary' },\n style: {\n backgroundColor: alpha(tokens.colors.primary, 0.16),\n color: tokens.colors.primaryDark,\n '&:hover': { backgroundColor: alpha(tokens.colors.primary, 0.24) },\n },\n },\n // soft variant — secondary\n {\n props: { variant: 'soft', color: 'secondary' },\n style: {\n backgroundColor: alpha(tokens.colors.secondary, 0.16),\n color: tokens.colors.secondaryDark,\n '&:hover': { backgroundColor: alpha(tokens.colors.secondary, 0.24) },\n },\n },\n // soft variant — error\n {\n props: { variant: 'soft', color: 'error' },\n style: {\n backgroundColor: alpha(tokens.colors.error, 0.16),\n color: darken(tokens.colors.error, 0.2),\n '&:hover': { backgroundColor: alpha(tokens.colors.error, 0.24) },\n },\n },\n // soft variant — warning\n {\n props: { variant: 'soft', color: 'warning' },\n style: {\n backgroundColor: alpha(tokens.colors.warning, 0.16),\n color: darken(tokens.colors.warning, 0.2),\n '&:hover': { backgroundColor: alpha(tokens.colors.warning, 0.24) },\n },\n },\n // soft variant — success\n {\n props: { variant: 'soft', color: 'success' },\n style: {\n backgroundColor: alpha(tokens.colors.success, 0.16),\n color: darken(tokens.colors.success, 0.2),\n '&:hover': { backgroundColor: alpha(tokens.colors.success, 0.24) },\n },\n },\n // soft variant — info\n {\n props: { variant: 'soft', color: 'info' },\n style: {\n backgroundColor: alpha(tokens.colors.info, 0.16),\n color: darken(tokens.colors.info, 0.2),\n '&:hover': { backgroundColor: alpha(tokens.colors.info, 0.24) },\n },\n },\n ],\n },\n\n MuiTextField: {\n styleOverrides: {\n root: {\n '& .MuiOutlinedInput-root': {\n borderRadius: tokens.components.input.borderRadius,\n backgroundColor: tokens.components.input.background,\n minHeight: tokens.components.input.minHeight,\n '& fieldset': {\n borderWidth: tokens.components.input.borderWidth,\n borderColor: tokens.colors.border,\n },\n '&:hover fieldset': {\n borderColor: tokens.colors.primary,\n },\n '&.Mui-focused fieldset': {\n borderWidth: tokens.components.input.borderWidthFocus,\n borderColor: tokens.colors.borderFocus,\n },\n '&.Mui-disabled': {\n backgroundColor: tokens.components.input.backgroundDisabled,\n },\n },\n '& .MuiInputLabel-root': {\n fontSize: tokens.components.input.labelFontSize,\n },\n '& .MuiFormHelperText-root': {\n fontSize: tokens.components.input.helperFontSize,\n },\n },\n },\n },\n\n MuiCard: {\n styleOverrides: {\n root: {\n borderRadius: tokens.components.card.borderRadius,\n backgroundColor: tokens.components.card.background,\n boxShadow: tokens.shadows.sm,\n border: `${tokens.components.card.borderWidth} solid ${tokens.colors.divider}`,\n },\n },\n },\n\n MuiCardContent: {\n styleOverrides: {\n root: {\n padding: tokens.components.card.padding,\n '&:last-child': {\n paddingBottom: tokens.components.card.padding,\n },\n },\n },\n },\n\n MuiChip: {\n styleOverrides: {\n root: {\n height: tokens.components.chip.height,\n borderRadius: tokens.components.chip.borderRadius,\n fontSize: tokens.components.chip.fontSize,\n fontWeight: tokens.components.chip.fontWeight,\n paddingLeft: tokens.components.chip.paddingX,\n paddingRight: tokens.components.chip.paddingX,\n },\n sizeSmall: {\n height: tokens.components.chip.heightSm,\n },\n icon: {\n width: tokens.components.chip.iconSize,\n height: tokens.components.chip.iconSize,\n },\n },\n variants: [\n // ── soft — base (default color) ───────────────────────────────────\n {\n props: { variant: 'soft' },\n style: {\n backgroundColor: alpha(tokens.colors.textSecondary, 0.12),\n color: tokens.colors.textPrimary,\n '&:hover': { backgroundColor: alpha(tokens.colors.textSecondary, 0.2) },\n '&.Mui-disabled': { opacity: 0.6 },\n },\n },\n { props: { variant: 'soft', color: 'primary' }, style: { backgroundColor: alpha(tokens.colors.primary, 0.16), color: darken(tokens.colors.primary, 0.2), '&:hover': { backgroundColor: alpha(tokens.colors.primary, 0.24) } } },\n { props: { variant: 'soft', color: 'secondary' }, style: { backgroundColor: alpha(tokens.colors.secondary, 0.16), color: darken(tokens.colors.secondary, 0.2), '&:hover': { backgroundColor: alpha(tokens.colors.secondary, 0.24) } } },\n { props: { variant: 'soft', color: 'info' }, style: { backgroundColor: alpha(tokens.colors.info, 0.16), color: darken(tokens.colors.info, 0.2), '&:hover': { backgroundColor: alpha(tokens.colors.info, 0.24) } } },\n { props: { variant: 'soft', color: 'success' }, style: { backgroundColor: alpha(tokens.colors.success, 0.16), color: darken(tokens.colors.success, 0.2), '&:hover': { backgroundColor: alpha(tokens.colors.success, 0.24) } } },\n { props: { variant: 'soft', color: 'warning' }, style: { backgroundColor: alpha(tokens.colors.warning, 0.16), color: darken(tokens.colors.warning, 0.2), '&:hover': { backgroundColor: alpha(tokens.colors.warning, 0.24) } } },\n { props: { variant: 'soft', color: 'error' }, style: { backgroundColor: alpha(tokens.colors.error, 0.16), color: darken(tokens.colors.error, 0.2), '&:hover': { backgroundColor: alpha(tokens.colors.error, 0.24) } } },\n // ── black ─────────────────────────────────────────────────────────\n { props: { variant: 'filled', color: 'black' }, style: { backgroundColor: tokens.colors.textPrimary, color: tokens.colors.backgroundPaper, '&:hover': { backgroundColor: darken(tokens.colors.textPrimary, 0.1) } } },\n { props: { variant: 'outlined', color: 'black' }, style: { borderColor: tokens.colors.textPrimary, color: tokens.colors.textPrimary } },\n { props: { variant: 'soft', color: 'black' }, style: { backgroundColor: alpha(tokens.colors.textPrimary, 0.12), color: tokens.colors.textPrimary, '&:hover': { backgroundColor: alpha(tokens.colors.textPrimary, 0.2) } } },\n // ── white ─────────────────────────────────────────────────────────\n { props: { variant: 'filled', color: 'white' }, style: { backgroundColor: tokens.colors.backgroundPaper, color: tokens.colors.textPrimary, border: `1px solid ${tokens.colors.divider}`, '&:hover': { backgroundColor: tokens.colors.backgroundSubtle } } },\n { props: { variant: 'outlined', color: 'white' }, style: { borderColor: alpha(tokens.colors.backgroundPaper, 0.32), color: tokens.colors.backgroundPaper } },\n { props: { variant: 'soft', color: 'white' }, style: { backgroundColor: alpha(tokens.colors.backgroundPaper, 0.16), color: tokens.colors.backgroundPaper, '&:hover': { backgroundColor: alpha(tokens.colors.backgroundPaper, 0.24) } } },\n ],\n },\n\n MuiBadge: {\n styleOverrides: {\n badge: {\n height: tokens.components.badge.height,\n minWidth: tokens.components.badge.minWidth,\n borderRadius: tokens.components.badge.borderRadius,\n fontSize: tokens.components.badge.fontSize,\n fontWeight: tokens.components.badge.fontWeight,\n padding: `0 ${tokens.components.badge.paddingX}`,\n },\n },\n },\n\n MuiTooltip: {\n styleOverrides: {\n tooltip: {\n backgroundColor: tokens.components.tooltip.background,\n color: tokens.components.tooltip.color,\n borderRadius: tokens.components.tooltip.borderRadius,\n fontSize: tokens.components.tooltip.fontSize,\n padding: `${tokens.components.tooltip.paddingY} ${tokens.components.tooltip.paddingX}`,\n maxWidth: tokens.components.tooltip.maxWidth,\n },\n },\n },\n\n MuiDialog: {\n styleOverrides: {\n paper: {\n borderRadius: tokens.components.dialog.borderRadius,\n backgroundColor: tokens.components.dialog.background,\n maxWidth: tokens.components.dialog.maxWidth,\n },\n },\n },\n\n MuiDialogContent: {\n styleOverrides: {\n root: {\n padding: tokens.components.dialog.padding,\n },\n },\n },\n\n MuiTableCell: {\n styleOverrides: {\n root: {\n paddingLeft: tokens.components.table.cellPaddingX,\n paddingRight: tokens.components.table.cellPaddingX,\n paddingTop: tokens.components.table.cellPaddingY,\n paddingBottom: tokens.components.table.cellPaddingY,\n borderBottom: `${tokens.components.table.borderWidth} solid ${tokens.components.table.borderColor}`,\n },\n head: {\n fontWeight: tokens.components.table.headerFontWeight,\n backgroundColor: tokens.components.table.headerBackground,\n },\n },\n },\n\n MuiTableRow: {\n styleOverrides: {\n root: {\n '&:hover': {\n backgroundColor: tokens.components.table.rowHoverBackground,\n },\n },\n },\n },\n\n MuiAvatar: {\n styleOverrides: {\n root: {\n width: tokens.components.avatar.sizeMd,\n height: tokens.components.avatar.sizeMd,\n borderRadius: tokens.components.avatar.borderRadius,\n fontSize: tokens.typography.fontSizeLg,\n fontWeight: tokens.typography.fontWeightSemiBold,\n },\n rounded: {\n borderRadius: tokens.components.avatar.borderRadiusRounded,\n },\n },\n },\n\n MuiAvatarGroup: {\n styleOverrides: {\n root: {\n '& .MuiAvatar-root': {\n marginLeft: tokens.components.avatar.groupSpacing,\n border: `${tokens.components.avatar.groupBorderWidth} solid ${tokens.colors.backgroundPaper}`,\n boxSizing: 'content-box',\n },\n },\n },\n },\n\n MuiDivider: {\n styleOverrides: {\n root: {\n borderColor: tokens.components.divider.color,\n borderBottomWidth: tokens.components.divider.thickness,\n },\n },\n },\n\n MuiAlert: {\n styleOverrides: {\n root: {\n alignItems: 'center',\n borderRadius: tokens.components.alert.borderRadius,\n padding: tokens.components.alert.padding,\n fontSize: tokens.typography.fontSizeMd,\n },\n // ── Standard ──────────────────────────────────────────────────────\n standardInfo: {\n backgroundColor: alpha(tokens.colors.info, 0.16),\n color: darken(tokens.colors.info, 0.4),\n '& .MuiAlert-icon': { color: tokens.colors.info },\n },\n standardSuccess: {\n backgroundColor: alpha(tokens.colors.success, 0.16),\n color: darken(tokens.colors.success, 0.4),\n '& .MuiAlert-icon': { color: tokens.colors.success },\n },\n standardWarning: {\n backgroundColor: alpha(tokens.colors.warning, 0.16),\n color: darken(tokens.colors.warning, 0.4),\n '& .MuiAlert-icon': { color: tokens.colors.warning },\n },\n standardError: {\n backgroundColor: alpha(tokens.colors.error, 0.16),\n color: darken(tokens.colors.error, 0.4),\n '& .MuiAlert-icon': { color: tokens.colors.error },\n },\n // ── Filled ────────────────────────────────────────────────────────\n filledInfo: {\n backgroundColor: tokens.colors.info,\n color: tokens.colors.primaryContrast,\n fontWeight: tokens.typography.fontWeightMedium,\n },\n filledSuccess: {\n backgroundColor: tokens.colors.success,\n color: tokens.colors.primaryContrast,\n fontWeight: tokens.typography.fontWeightMedium,\n },\n filledWarning: {\n backgroundColor: tokens.colors.warning,\n // Warning is light enough to need dark text\n color: tokens.colors.textPrimary,\n fontWeight: tokens.typography.fontWeightMedium,\n '& .MuiAlert-icon': { color: tokens.colors.textPrimary },\n },\n filledError: {\n backgroundColor: tokens.colors.error,\n color: tokens.colors.primaryContrast,\n fontWeight: tokens.typography.fontWeightMedium,\n },\n // ── Outlined ──────────────────────────────────────────────────────\n outlinedInfo: {\n backgroundColor: alpha(tokens.colors.info, 0.08),\n color: darken(tokens.colors.info, 0.2),\n borderColor: alpha(tokens.colors.info, 0.32),\n '& .MuiAlert-icon': { color: tokens.colors.info },\n },\n outlinedSuccess: {\n backgroundColor: alpha(tokens.colors.success, 0.08),\n color: darken(tokens.colors.success, 0.2),\n borderColor: alpha(tokens.colors.success, 0.32),\n '& .MuiAlert-icon': { color: tokens.colors.success },\n },\n outlinedWarning: {\n backgroundColor: alpha(tokens.colors.warning, 0.08),\n color: darken(tokens.colors.warning, 0.2),\n borderColor: alpha(tokens.colors.warning, 0.32),\n '& .MuiAlert-icon': { color: tokens.colors.warning },\n },\n outlinedError: {\n backgroundColor: alpha(tokens.colors.error, 0.08),\n color: darken(tokens.colors.error, 0.2),\n borderColor: alpha(tokens.colors.error, 0.32),\n '& .MuiAlert-icon': { color: tokens.colors.error },\n },\n icon: {\n opacity: 1,\n padding: 0,\n },\n message: {\n padding: '4px 0',\n },\n },\n },\n\n MuiAlertTitle: {\n styleOverrides: {\n root: {\n fontWeight: tokens.typography.fontWeightSemiBold,\n marginBottom: '4px',\n },\n },\n },\n\n MuiAccordion: {\n styleOverrides: {\n root: {\n borderRadius: tokens.components.accordion.borderRadius,\n boxShadow: tokens.shadows.md,\n marginBottom: tokens.spacing.sm,\n '&:before': { display: 'none' },\n '&.Mui-expanded': { margin: `0 0 ${tokens.spacing.sm}` },\n '&:first-of-type': { borderRadius: tokens.components.accordion.borderRadius },\n '&:last-of-type': { borderRadius: tokens.components.accordion.borderRadius },\n },\n },\n },\n\n MuiAccordionSummary: {\n styleOverrides: {\n root: {\n padding: `${tokens.components.accordion.summaryPaddingY} 8px ${tokens.components.accordion.summaryPaddingY} ${tokens.components.accordion.summaryPaddingX}`,\n fontWeight: tokens.components.accordion.summaryFontWeight,\n minHeight: 'auto',\n '&.Mui-expanded': { minHeight: 'auto' },\n },\n content: {\n margin: 0,\n '&.Mui-expanded': { margin: 0 },\n },\n expandIconWrapper: {\n color: tokens.colors.textSecondary,\n },\n },\n },\n\n MuiAccordionDetails: {\n styleOverrides: {\n root: {\n padding: `0 ${tokens.components.accordion.detailsPaddingX} ${tokens.components.accordion.detailsPaddingBottom}`,\n },\n },\n },\n\n MuiToggleButton: {\n styleOverrides: {\n root: {\n borderRadius: tokens.components.toggleButton.borderRadius,\n borderWidth: tokens.components.toggleButton.borderWidth,\n borderColor: tokens.colors.border,\n fontWeight: tokens.components.toggleButton.fontWeight,\n paddingLeft: tokens.components.toggleButton.paddingXMd,\n paddingRight: tokens.components.toggleButton.paddingXMd,\n paddingTop: tokens.components.toggleButton.paddingYMd,\n paddingBottom: tokens.components.toggleButton.paddingYMd,\n textTransform: 'none' as const,\n transition: `all ${tokens.transitions.durationBase} ${tokens.transitions.easingDefault}`,\n '&.Mui-selected': {\n backgroundColor: alpha(tokens.colors.textPrimary, 0.08),\n color: tokens.colors.textPrimary,\n '&:hover': {\n backgroundColor: alpha(tokens.colors.textPrimary, 0.16),\n },\n },\n '&.Mui-disabled': {\n borderColor: tokens.colors.border,\n },\n },\n sizeSmall: {\n paddingLeft: tokens.components.toggleButton.paddingXSm,\n paddingRight: tokens.components.toggleButton.paddingXSm,\n paddingTop: tokens.components.toggleButton.paddingYSm,\n paddingBottom: tokens.components.toggleButton.paddingYSm,\n },\n sizeLarge: {\n paddingLeft: tokens.components.toggleButton.paddingXLg,\n paddingRight: tokens.components.toggleButton.paddingXLg,\n paddingTop: tokens.components.toggleButton.paddingYLg,\n paddingBottom: tokens.components.toggleButton.paddingYLg,\n },\n },\n variants: [\n { props: { color: 'primary' }, style: { '&.Mui-selected': { backgroundColor: alpha(tokens.colors.primary, 0.16), color: tokens.colors.primary, '&:hover': { backgroundColor: alpha(tokens.colors.primary, 0.24) } } } },\n { props: { color: 'secondary' }, style: { '&.Mui-selected': { backgroundColor: alpha(tokens.colors.secondary, 0.16), color: tokens.colors.secondary, '&:hover': { backgroundColor: alpha(tokens.colors.secondary, 0.24) } } } },\n { props: { color: 'info' }, style: { '&.Mui-selected': { backgroundColor: alpha(tokens.colors.info, 0.16), color: tokens.colors.info, '&:hover': { backgroundColor: alpha(tokens.colors.info, 0.24) } } } },\n { props: { color: 'success' }, style: { '&.Mui-selected': { backgroundColor: alpha(tokens.colors.success, 0.16), color: tokens.colors.success, '&:hover': { backgroundColor: alpha(tokens.colors.success, 0.24) } } } },\n { props: { color: 'warning' }, style: { '&.Mui-selected': { backgroundColor: alpha(tokens.colors.warning, 0.16), color: tokens.colors.warning, '&:hover': { backgroundColor: alpha(tokens.colors.warning, 0.24) } } } },\n { props: { color: 'error' }, style: { '&.Mui-selected': { backgroundColor: alpha(tokens.colors.error, 0.16), color: tokens.colors.error, '&:hover': { backgroundColor: alpha(tokens.colors.error, 0.24) } } } },\n ],\n },\n\n MuiToggleButtonGroup: {\n styleOverrides: {\n root: {\n borderRadius: tokens.components.toggleButton.borderRadius,\n },\n grouped: {\n '&:not(:first-of-type)': {\n borderColor: tokens.colors.border,\n },\n },\n },\n },\n\n MuiPaper: {\n styleOverrides: {\n root: {\n backgroundImage: 'none', // Remove MUI's default gradient on dark mode\n },\n elevation1: { boxShadow: tokens.shadows.sm },\n elevation2: { boxShadow: tokens.shadows.md },\n elevation3: { boxShadow: tokens.shadows.lg },\n },\n },\n },\n\n // Attach the raw tokens to the theme so any component can access\n // values not already covered by MUI's built-in theme shape.\n // @ts-ignore — augmented in src/types/mui.d.ts\n tokens,\n });\n}\n","import React from 'react';\nimport {\n Button as MuiButton,\n ButtonProps as MuiButtonProps,\n CircularProgress,\n} from '@mui/material';\nimport { styled } from '@mui/material/styles';\n\nexport interface ButtonProps extends MuiButtonProps {\n /** Show a loading spinner and disable interaction */\n loading?: boolean;\n}\n\n/**\n * Extended Button.\n *\n * All visual values — border radius, padding, font weight, letter spacing,\n * transition timing — come from the active theme's token set via\n * createMuiTheme.ts. No hard-coded CSS values appear here.\n *\n * The `styled()` call accesses the MUI theme (which already has our tokens\n * baked in by createMuiTheme) so every property can reference\n * `theme.tokens.*` for anything not already handled by MUI's style overrides.\n */\nconst StyledButton = styled(MuiButton)(({ theme }) => ({\n // Gap between icon and label — not surfaced by MUI's styleOverrides\n '& .MuiButton-startIcon': {\n marginRight: theme.tokens.components.button.iconGap,\n },\n '& .MuiButton-endIcon': {\n marginLeft: theme.tokens.components.button.iconGap,\n },\n}));\n\nexport function Button({ loading, disabled, children, ...props }: ButtonProps) {\n const baseLabel = props['aria-label'] ?? (typeof children === 'string' ? children : undefined);\n const ariaLabel = loading && baseLabel ? `${baseLabel}, loading` : props['aria-label'];\n\n return (\n <StyledButton\n {...props}\n disabled={disabled || loading}\n aria-busy={loading || undefined}\n aria-label={ariaLabel}\n startIcon={\n loading ? <CircularProgress size={16} color=\"inherit\" /> : props.startIcon\n }\n >\n {children}\n </StyledButton>\n );\n}\n\nButton.displayName = 'ToolkitButton';\n","import React from 'react';\nimport { Chip as MuiChip, ChipProps as MuiChipProps, SvgIcon, SvgIconProps } from '@mui/material';\n\n/**\n * Circular X delete icon — matches the minimals.cc design system.\n * Used as the default deleteIcon when onDelete is provided.\n */\nfunction CircleXIcon(props: SvgIconProps) {\n return (\n <SvgIcon {...props} viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M22 12c0 5.523-4.477 10-10 10S2 17.523 2 12S6.477 2 12 2s10 4.477 10 10M8.97 8.97a.75.75 0 0 1 1.06 0L12 10.94l1.97-1.97a.75.75 0 0 1 1.06 1.06L13.06 12l1.97 1.97a.75.75 0 0 1-1.06 1.06L12 13.06l-1.97 1.97a.75.75 0 0 1-1.06-1.06L10.94 12l-1.97-1.97a.75.75 0 0 1 0-1.06\"\n clipRule=\"evenodd\"\n />\n </SvgIcon>\n );\n}\n\nexport type ChipProps = MuiChipProps;\n\n/**\n * Chip component extending MUI Chip.\n *\n * Adds a `soft` variant (like Button) and `black`/`white` color options.\n * Uses a custom circular-X delete icon by default when `onDelete` is provided.\n *\n * All visual values come from the active theme's token set — no hard-coded CSS.\n */\nexport function Chip({ deleteIcon, onDelete, ...props }: ChipProps) {\n return (\n <MuiChip\n {...props}\n onDelete={onDelete}\n deleteIcon={onDelete ? (deleteIcon ?? <CircleXIcon />) : undefined}\n />\n );\n}\n\nChip.displayName = 'ToolkitChip';\n","import React from 'react';\nimport {\n Card as MuiCard,\n CardContent as MuiCardContent,\n CardHeader as MuiCardHeader,\n CardActions as MuiCardActions,\n CardProps as MuiCardProps,\n CardHeaderProps as MuiCardHeaderProps,\n CardActionsProps as MuiCardActionsProps,\n} from '@mui/material';\nimport { styled } from '@mui/material/styles';\n\nexport interface CardProps extends MuiCardProps {\n /** Use the more compact inner padding variant */\n compact?: boolean;\n}\n\n/**\n * Extended Card.\n *\n * Border radius, padding, shadow, and border colour all come from the\n * active theme tokens — no hard-coded values.\n */\nconst StyledCard = styled(MuiCard, {\n shouldForwardProp: (prop) => prop !== 'compact',\n})<CardProps>(({ theme, compact }) => ({\n padding: compact\n ? theme.tokens.components.card.paddingCompact\n : theme.tokens.components.card.padding,\n // Override MUI CardContent's own padding since we set it at the Card level\n '& .MuiCardContent-root': {\n padding: 0,\n '&:last-child': { paddingBottom: 0 },\n },\n '&:hover': {\n boxShadow: theme.tokens.shadows.md,\n transition: `box-shadow ${theme.tokens.transitions.durationBase} ${theme.tokens.transitions.easingDefault}`,\n },\n}));\n\nexport function Card({ compact, children, ...props }: CardProps) {\n return (\n <StyledCard compact={compact} {...props}>\n {children}\n </StyledCard>\n );\n}\n\n// Re-export MUI sub-components with the same name so consumers get one import\nexport const CardContent = MuiCardContent;\nexport const CardHeader = MuiCardHeader;\nexport const CardActions = MuiCardActions;\n\nexport type { MuiCardHeaderProps as CardHeaderProps, MuiCardActionsProps as CardActionsProps };\n\nCard.displayName = 'ToolkitCard';\n","import React, { useState } from 'react';\nimport {\n TextField as MuiTextField,\n TextFieldProps as MuiTextFieldProps,\n InputAdornment,\n IconButton,\n SvgIcon,\n} from '@mui/material';\nimport { styled } from '@mui/material/styles';\n\nconst VisibilityIcon = (\n <SvgIcon viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5M12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5m0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3\" />\n </SvgIcon>\n);\n\nconst VisibilityOffIcon = (\n <SvgIcon viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75C21.27 5.61 17 2.5 12 2.5c-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 5.13 11.35 5 12 5M2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27M7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2m4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01\" />\n </SvgIcon>\n);\n\nexport type TextFieldProps = MuiTextFieldProps & {\n /** When true and type=\"password\", renders a visibility toggle icon button as end adornment. */\n showPasswordToggle?: boolean;\n};\n\n/**\n * Extended TextField.\n *\n * Border radius, border widths, background colours, and font sizes all\n * come from the active theme tokens. The MUI style overrides in\n * createMuiTheme.ts handle most of the work; this component adds any\n * extras that require the styled() API.\n *\n * Accessibility notes for callers:\n * - Always provide `label`, `aria-label`, or `aria-labelledby` — an unlabelled\n * input is inaccessible to screen readers.\n * - When using `error`, pair it with a descriptive `helperText` so users know\n * what to correct. The helper text is automatically announced as an alert.\n */\nconst StyledTextField = styled(MuiTextField)(({ theme }) => ({\n // Transition on the entire field when focus changes\n '& .MuiOutlinedInput-root': {\n transition: `box-shadow ${theme.tokens.transitions.durationFast} ${theme.tokens.transitions.easingDefault}`,\n '&.Mui-focused': {\n boxShadow: theme.tokens.shadows.xs,\n },\n },\n}));\n\nexport const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\n function TextField({ error, FormHelperTextProps, inputProps, label, showPasswordToggle, type, slotProps, ...props }, ref) {\n const [showPassword, setShowPassword] = useState(false);\n\n if (process.env.NODE_ENV !== 'production') {\n if (!label && !props['aria-label'] && !props['aria-labelledby'] && !inputProps?.['aria-label'] && !inputProps?.['aria-labelledby']) {\n console.warn('[ToolkitTextField] Missing accessible label. Provide `label`, `aria-label`, or `aria-labelledby`.');\n }\n }\n\n const resolvedType = showPasswordToggle && type === 'password'\n ? (showPassword ? 'text' : 'password')\n : type;\n\n const toggleAdornment = showPasswordToggle && type === 'password' ? (\n <InputAdornment position=\"end\">\n <IconButton\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n onClick={() => setShowPassword((prev) => !prev)}\n edge=\"end\"\n >\n {showPassword ? VisibilityOffIcon : VisibilityIcon}\n </IconButton>\n </InputAdornment>\n ) : null;\n\n const mergedSlotProps: TextFieldProps['slotProps'] = toggleAdornment\n ? { ...slotProps, input: { endAdornment: toggleAdornment, ...(slotProps as { input?: object })?.input } }\n : slotProps;\n\n return (\n <StyledTextField\n fullWidth\n variant=\"outlined\"\n label={label}\n error={error}\n type={resolvedType}\n inputRef={ref}\n inputProps={inputProps}\n slotProps={mergedSlotProps}\n FormHelperTextProps={error ? { role: 'alert', ...FormHelperTextProps } : FormHelperTextProps}\n {...props}\n />\n );\n }\n);\n\nTextField.displayName = 'ToolkitTextField';\n","import React from 'react';\nimport {\n Alert as MuiAlert,\n AlertProps as MuiAlertProps,\n AlertTitle as MuiAlertTitle,\n AlertTitleProps as MuiAlertTitleProps,\n SvgIcon,\n} from '@mui/material';\n\nexport type AlertProps = MuiAlertProps;\nexport type AlertTitleProps = MuiAlertTitleProps;\n\n// Custom severity icons matching the minimals.cc design system\nconst InfoIcon = (\n <SvgIcon viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M22 12c0 5.523-4.477 10-10 10S2 17.523 2 12S6.477 2 12 2s10 4.477 10 10m-10 5.75a.75.75 0 0 0 .75-.75v-6a.75.75 0 0 0-1.5 0v6c0 .414.336.75.75.75M12 7a1 1 0 1 1 0 2a1 1 0 0 1 0-2\" clipRule=\"evenodd\" />\n </SvgIcon>\n);\n\nconst SuccessIcon = (\n <SvgIcon viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M22 12c0 5.523-4.477 10-10 10S2 17.523 2 12S6.477 2 12 2s10 4.477 10 10m-5.97-3.03a.75.75 0 0 1 0 1.06l-5 5a.75.75 0 0 1-1.06 0l-2-2a.75.75 0 1 1 1.06-1.06l1.47 1.47l2.235-2.235L14.97 8.97a.75.75 0 0 1 1.06 0\" clipRule=\"evenodd\" />\n </SvgIcon>\n);\n\nconst WarningIcon = (\n <SvgIcon viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M5.312 10.762C8.23 5.587 9.689 3 12 3c2.31 0 3.77 2.587 6.688 7.762l.364.644c2.425 4.3 3.638 6.45 2.542 8.022S17.786 21 12.364 21h-.728c-5.422 0-8.134 0-9.23-1.572s.117-3.722 2.542-8.022zM12 7.25a.75.75 0 0 1 .75.75v5a.75.75 0 0 1-1.5 0V8a.75.75 0 0 1 .75-.75M12 17a1 1 0 1 0 0-2a1 1 0 0 0 0 2\" clipRule=\"evenodd\" />\n </SvgIcon>\n);\n\nconst ErrorIcon = (\n <SvgIcon viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M7.843 3.802C9.872 2.601 10.886 2 12 2c1.114 0 2.128.6 4.157 1.802l.686.406c2.029 1.202 3.043 1.803 3.6 2.792c.557.99.557 2.19.557 4.594v.812c0 2.403 0 3.605-.557 4.594c-.557.99-1.571 1.59-3.6 2.791l-.686.407C14.128 21.399 13.114 22 12 22c-1.114 0-2.128-.6-4.157-1.802l-.686-.407c-2.029-1.2-3.043-1.802-3.6-2.791C3 16.01 3 14.81 3 12.406v-.812C3 9.19 3 7.989 3.557 7c.557-.99 1.571-1.59 3.6-2.792zM13 16a1 1 0 1 1-2 0a1 1 0 0 1 2 0m-1-9.75a.75.75 0 0 1 .75.75v6a.75.75 0 0 1-1.5 0V7a.75.75 0 0 1 .75-.75\" clipRule=\"evenodd\" />\n </SvgIcon>\n);\n\nconst defaultIconMapping: MuiAlertProps['iconMapping'] = {\n info: InfoIcon,\n success: SuccessIcon,\n warning: WarningIcon,\n error: ErrorIcon,\n};\n\n/**\n * Extended Alert.\n *\n * Supports all three MUI variants (standard, filled, outlined) across all\n * four severities (info, success, warning, error). Uses custom minimals-style\n * severity icons by default; override via the `iconMapping` prop.\n *\n * Visual values come from the active theme tokens — no hard-coded CSS.\n */\nexport function Alert({ iconMapping, ...props }: AlertProps) {\n return <MuiAlert iconMapping={{ ...defaultIconMapping, ...iconMapping }} {...props} />;\n}\n\nexport function AlertTitle(props: AlertTitleProps) {\n return <MuiAlertTitle {...props} />;\n}\n\nAlert.displayName = 'ToolkitAlert';\nAlertTitle.displayName = 'ToolkitAlertTitle';\n","import React from 'react';\nimport {\n Accordion as MuiAccordion,\n AccordionProps as MuiAccordionProps,\n AccordionSummary as MuiAccordionSummary,\n AccordionSummaryProps as MuiAccordionSummaryProps,\n AccordionDetails as MuiAccordionDetails,\n AccordionDetailsProps as MuiAccordionDetailsProps,\n} from '@mui/material';\nimport { styled } from '@mui/material/styles';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\n\nexport type AccordionProps = MuiAccordionProps;\nexport type AccordionSummaryProps = MuiAccordionSummaryProps;\nexport type AccordionDetailsProps = MuiAccordionDetailsProps;\n\n/**\n * Standalone accordion variant — each item is its own card with a\n * subtle grey background. Expands to a slightly darker tint.\n * Drop-in replacement for Accordion in contexts where you want\n * independent card-per-item styling.\n */\nexport const StandaloneAccordion = styled(MuiAccordion)(({ theme }) => ({\n borderRadius: `${theme.tokens.components.accordion.standaloneRadius} !important`,\n backgroundColor: theme.tokens.components.accordion.standaloneBackground,\n boxShadow: 'none',\n marginBottom: theme.spacing(1),\n '&.Mui-expanded': {\n backgroundColor: theme.tokens.components.accordion.standaloneBackgroundExpanded,\n margin: `0 0 ${theme.spacing(1)}`,\n },\n '& .MuiAccordionSummary-root': {\n padding: `${theme.tokens.components.accordion.summaryPaddingY} ${theme.tokens.components.accordion.summaryPaddingX}`,\n },\n '& .MuiAccordionDetails-root': {\n padding: `0 ${theme.tokens.components.accordion.detailsPaddingX} ${theme.tokens.components.accordion.detailsPaddingBottom}`,\n },\n}));\n\nexport function Accordion(props: AccordionProps) {\n return <MuiAccordion {...props} />;\n}\n\n/**\n * Renders the clickable header of an accordion panel.\n *\n * A default expand/collapse chevron is injected automatically; pass\n * `expandIcon` to override it.\n *\n * For reliable screen-reader support, pair `id` on this component with\n * a matching `aria-controls` pointing to the AccordionDetails panel id,\n * or let MUI auto-generate them by passing a consistent `id` to the\n * parent Accordion:\n *\n * <Accordion>\n * <AccordionSummary id=\"panel1-header\" aria-controls=\"panel1-content\">\n * Title\n * </AccordionSummary>\n * <AccordionDetails id=\"panel1-content\">…</AccordionDetails>\n * </Accordion>\n */\nexport function AccordionSummary({ expandIcon, ...props }: AccordionSummaryProps) {\n return (\n <MuiAccordionSummary expandIcon={expandIcon ?? <ExpandMoreIcon />} {...props} />\n );\n}\n\nexport function AccordionDetails(props: AccordionDetailsProps) {\n return <MuiAccordionDetails {...props} />;\n}\n\nAccordion.displayName = 'ToolkitAccordion';\nAccordionSummary.displayName = 'ToolkitAccordionSummary';\nAccordionDetails.displayName = 'ToolkitAccordionDetails';\nStandaloneAccordion.displayName = 'ToolkitStandaloneAccordion';\n","import React from 'react';\nimport MuiAvatar, { AvatarProps as MuiAvatarProps } from '@mui/material/Avatar';\nimport { styled } from '@mui/material/styles';\nimport { ThemeTokens } from '../../themes/tokens';\nexport { default as AvatarGroup } from '@mui/material/AvatarGroup';\nexport type { AvatarGroupProps } from '@mui/material/AvatarGroup';\n\nexport type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';\n\nexport interface AvatarProps extends Omit<MuiAvatarProps, 'ref'> {\n size?: AvatarSize;\n}\n\nexport function getDimension(avatar: ThemeTokens['components']['avatar'], size: AvatarSize): string {\n const map: Record<AvatarSize, string> = {\n xs: avatar.sizeXs,\n sm: avatar.sizeSm,\n md: avatar.sizeMd,\n lg: avatar.sizeLg,\n xl: avatar.sizeXl,\n xxl: avatar.sizeXxl,\n };\n return map[size];\n}\n\nconst StyledAvatar = styled(MuiAvatar, {\n shouldForwardProp: (prop) => prop !== 'size',\n})<AvatarProps>(({ theme, size = 'md' }) => {\n const dimension = getDimension(theme.tokens.components.avatar, size);\n return {\n width: dimension,\n height: dimension,\n };\n});\n\nexport function Avatar({ size = 'md', ...props }: AvatarProps) {\n return <StyledAvatar size={size} {...props} />;\n}\n","import {\n ToggleButton as MuiToggleButton,\n ToggleButtonProps as MuiToggleButtonProps,\n ToggleButtonGroup as MuiToggleButtonGroup,\n ToggleButtonGroupProps as MuiToggleButtonGroupProps,\n} from '@mui/material';\n\nexport type ToggleButtonProps = MuiToggleButtonProps;\nexport type ToggleButtonGroupProps = MuiToggleButtonGroupProps;\n\nexport function ToggleButton(props: ToggleButtonProps) {\n return <MuiToggleButton {...props} />;\n}\nToggleButton.displayName = 'ToolkitToggleButton';\n\nexport function ToggleButtonGroup(props: ToggleButtonGroupProps) {\n return <MuiToggleButtonGroup {...props} />;\n}\nToggleButtonGroup.displayName = 'ToolkitToggleButtonGroup';\n","import React, { useState } from 'react';\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\nimport {\n DatePicker as MuiDatePicker,\n DatePickerProps as MuiDatePickerProps,\n} from '@mui/x-date-pickers/DatePicker';\nimport {\n DesktopDatePicker as MuiDesktopDatePicker,\n DesktopDatePickerProps as MuiDesktopDatePickerProps,\n} from '@mui/x-date-pickers/DesktopDatePicker';\nimport {\n MobileDatePicker as MuiMobileDatePicker,\n MobileDatePickerProps as MuiMobileDatePickerProps,\n} from '@mui/x-date-pickers/MobileDatePicker';\nimport {\n DateField as MuiDateField,\n DateFieldProps as MuiDateFieldProps,\n} from '@mui/x-date-pickers/DateField';\nimport {\n StaticDatePicker as MuiStaticDatePicker,\n StaticDatePickerProps as MuiStaticDatePickerProps,\n} from '@mui/x-date-pickers/StaticDatePicker';\nimport {\n TimePicker as MuiTimePicker,\n TimePickerProps as MuiTimePickerProps,\n} from '@mui/x-date-pickers/TimePicker';\nimport {\n DesktopTimePicker as MuiDesktopTimePicker,\n DesktopTimePickerProps as MuiDesktopTimePickerProps,\n} from '@mui/x-date-pickers/DesktopTimePicker';\nimport {\n MobileTimePicker as MuiMobileTimePicker,\n MobileTimePickerProps as MuiMobileTimePickerProps,\n} from '@mui/x-date-pickers/MobileTimePicker';\nimport {\n TimeField as MuiTimeField,\n TimeFieldProps as MuiTimeFieldProps,\n} from '@mui/x-date-pickers/TimeField';\nimport {\n StaticTimePicker as MuiStaticTimePicker,\n StaticTimePickerProps as MuiStaticTimePickerProps,\n} from '@mui/x-date-pickers/StaticTimePicker';\nimport {\n DateTimePicker as MuiDateTimePicker,\n DateTimePickerProps as MuiDateTimePickerProps,\n} from '@mui/x-date-pickers/DateTimePicker';\nimport {\n DesktopDateTimePicker as MuiDesktopDateTimePicker,\n DesktopDateTimePickerProps as MuiDesktopDateTimePickerProps,\n} from '@mui/x-date-pickers/DesktopDateTimePicker';\nimport {\n MobileDateTimePicker as MuiMobileDateTimePicker,\n MobileDateTimePickerProps as MuiMobileDateTimePickerProps,\n} from '@mui/x-date-pickers/MobileDateTimePicker';\nimport {\n DateTimeField as MuiDateTimeField,\n DateTimeFieldProps as MuiDateTimeFieldProps,\n} from '@mui/x-date-pickers/DateTimeField';\nimport {\n StaticDateTimePicker as MuiStaticDateTimePicker,\n StaticDateTimePickerProps as MuiStaticDateTimePickerProps,\n} from '@mui/x-date-pickers/StaticDateTimePicker';\nimport {\n DateCalendar as MuiDateCalendar,\n DateCalendarProps as MuiDateCalendarProps,\n} from '@mui/x-date-pickers/DateCalendar';\nimport type { Dayjs } from 'dayjs';\nimport Dialog from '@mui/material/Dialog';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport Button from '@mui/material/Button';\nimport Box from '@mui/material/Box';\nimport TextField from '@mui/material/TextField';\nimport { styled } from '@mui/material/styles';\n\n// ─── Re-export types ────────────────────────────────────────────────────────────\n// MUI X v8 removed the date-value generic from component props — types are inferred\n// from the adapter registered via LocalizationProvider.\n\nexport type DatePickerProps = MuiDatePickerProps;\nexport type DesktopDatePickerProps = MuiDesktopDatePickerProps;\nexport type MobileDatePickerProps = MuiMobileDatePickerProps;\nexport type DateFieldProps = MuiDateFieldProps;\nexport type StaticDatePickerProps = MuiStaticDatePickerProps;\nexport type TimePickerProps = MuiTimePickerProps;\nexport type DesktopTimePickerProps = MuiDesktopTimePickerProps;\nexport type MobileTimePickerProps = MuiMobileTimePickerProps;\nexport type TimeFieldProps = MuiTimeFieldProps;\nexport type StaticTimePickerProps = MuiStaticTimePickerProps;\nexport type DateTimePickerProps = MuiDateTimePickerProps;\nexport type DesktopDateTimePickerProps = MuiDesktopDateTimePickerProps;\nexport type MobileDateTimePickerProps = MuiMobileDateTimePickerProps;\nexport type DateTimeFieldProps = MuiDateTimeFieldProps;\nexport type StaticDateTimePickerProps = MuiStaticDateTimePickerProps;\nexport type DateCalendarProps = MuiDateCalendarProps;\n\n// ─── Provider ──────────────────────────────────────────────────────────────────\n\nexport interface DateLocalizationProviderProps {\n children: React.ReactNode;\n}\n\nexport function DateLocalizationProvider({ children }: DateLocalizationProviderProps) {\n return (\n <LocalizationProvider dateAdapter={AdapterDayjs}>\n {children}\n </LocalizationProvider>\n );\n}\n\nDateLocalizationProvider.displayName = 'ToolkitDateLocalizationProvider';\n\n// ─── Date Pickers ──────────────────────────────────────────────────────────────\n\nexport function DatePicker(props: DatePickerProps) {\n return <MuiDatePicker {...props} />;\n}\nDatePicker.displayName = 'ToolkitDatePicker';\n\nexport function DesktopDatePicker(props: DesktopDatePickerProps) {\n return <MuiDesktopDatePicker {...props} />;\n}\nDesktopDatePicker.displayName = 'ToolkitDesktopDatePicker';\n\nexport function MobileDatePicker(props: MobileDatePickerProps) {\n return <MuiMobileDatePicker {...props} />;\n}\nMobileDatePicker.displayName = 'ToolkitMobileDatePicker';\n\nexport function DateField(props: DateFieldProps) {\n return <MuiDateField {...props} />;\n}\nDateField.displayName = 'ToolkitDateField';\n\nexport function StaticDatePicker(props: StaticDatePickerProps) {\n return <MuiStaticDatePicker {...props} />;\n}\nStaticDatePicker.displayName = 'ToolkitStaticDatePicker';\n\n// ─── Time Pickers ──────────────────────────────────────────────────────────────\n\nexport function TimePicker(props: TimePickerProps) {\n return <MuiTimePicker {...props} />;\n}\nTimePicker.displayName = 'ToolkitTimePicker';\n\nexport function DesktopTimePicker(props: DesktopTimePickerProps) {\n return <MuiDesktopTimePicker {...props} />;\n}\nDesktopTimePicker.displayName = 'ToolkitDesktopTimePicker';\n\nexport function MobileTimePicker(props: MobileTimePickerProps) {\n return <MuiMobileTimePicker {...props} />;\n}\nMobileTimePicker.displayName = 'ToolkitMobileTimePicker';\n\nexport function TimeField(props: TimeFieldProps) {\n return <MuiTimeField {...props} />;\n}\nTimeField.displayName = 'ToolkitTimeField';\n\nexport function StaticTimePicker(props: StaticTimePickerProps) {\n return <MuiStaticTimePicker {...props} />;\n}\nStaticTimePicker.displayName = 'ToolkitStaticTimePicker';\n\n// ─── Date Time Pickers ─────────────────────────────────────────────────────────\n\nexport function DateTimePicker(props: DateTimePickerProps) {\n return <MuiDateTimePicker {...props} />;\n}\nDateTimePicker.displayName = 'ToolkitDateTimePicker';\n\nexport function DesktopDateTimePicker(props: DesktopDateTimePickerProps) {\n return <MuiDesktopDateTimePicker {...props} />;\n}\nDesktopDateTimePicker.displayName = 'ToolkitDesktopDateTimePicker';\n\nexport function MobileDateTimePicker(props: MobileDateTimePickerProps) {\n return <MuiMobileDateTimePicker {...props} />;\n}\nMobileDateTimePicker.displayName = 'ToolkitMobileDateTimePicker';\n\nexport function DateTimeField(props: DateTimeFieldProps) {\n return <MuiDateTimeField {...props} />;\n}\nDateTimeField.displayName = 'ToolkitDateTimeField';\n\nexport function StaticDateTimePicker(props: StaticDateTimePickerProps) {\n return <MuiStaticDateTimePicker {...props} />;\n}\nStaticDateTimePicker.displayName = 'ToolkitStaticDateTimePicker';\n\nexport function DateCalendar(props: DateCalendarProps) {\n return <MuiDateCalendar {...props} />;\n}\nDateCalendar.displayName = 'ToolkitDateCalendar';\n\n// ─── Custom Range Picker ────────────────────────────────────────────────────────\n\nexport interface DateRangeValue {\n start: Dayjs | null;\n end: Dayjs | null;\n}\n\nexport interface DateRangePickerInputProps {\n value: DateRangeValue;\n onChange: (value: DateRangeValue) => void;\n startLabel?: string;\n endLabel?: string;\n buttonLabel?: string;\n}\n\nconst RangeRow = styled(Box)(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(2),\n alignItems: 'center',\n}));\n\nexport function DateRangePickerInput({\n value,\n onChange,\n startLabel = 'Start date',\n endLabel = 'End date',\n buttonLabel = 'Click me!',\n}: DateRangePickerInputProps) {\n const [open, setOpen] = useState(false);\n const [draft, setDraft] = useState<DateRangeValue>(value);\n\n const handleOpen = () => {\n setDraft(value);\n setOpen(true);\n };\n\n const handleCancel = () => setOpen(false);\n\n const handleOk = () => {\n onChange(draft);\n setOpen(false);\n };\n\n return (\n <>\n <Button variant=\"contained\" color=\"inherit\" disableElevation onClick={handleOpen}>\n {buttonLabel}\n </Button>\n <Dialog open={open} onClose={handleCancel} maxWidth=\"sm\" fullWidth>\n <DialogContent>\n <RangeRow>\n <MuiDatePicker\n label={startLabel}\n value={draft.start}\n onChange={(v) => setDraft((prev) => ({ ...prev, start: v }))}\n slotProps={{ textField: { fullWidth: true } }}\n />\n <MuiDatePicker\n label={endLabel}\n value={draft.end}\n onChange={(v) => setDraft((prev) => ({ ...prev, end: v }))}\n slotProps={{ textField: { fullWidth: true } }}\n />\n </RangeRow>\n </DialogContent>\n <DialogActions>\n <Button onClick={handleCancel} color=\"inherit\">Cancel</Button>\n <Button onClick={handleOk} color=\"inherit\">OK</Button>\n </DialogActions>\n </Dialog>\n </>\n );\n}\n\nDateRangePickerInput.displayName = 'ToolkitDateRangePickerInput';\n\nexport interface DateRangePickerCalendarProps {\n value: DateRangeValue;\n onChange: (value: DateRangeValue) => void;\n buttonLabel?: string;\n}\n\nexport function DateRangePickerCalendar({\n value,\n onChange,\n buttonLabel = 'Click me!',\n}: DateRangePickerCalendarProps) {\n const [open, setOpen] = useState(false);\n const [draft, setDraft] = useState<DateRangeValue>(value);\n const [selecting, setSelecting] = useState<'start' | 'end'>('start');\n\n const handleOpen = () => {\n setDraft(value);\n setSelecting('start');\n setOpen(true);\n };\n\n const handleCancel = () => setOpen(false);\n\n const handleOk = () => {\n onChange(draft);\n setOpen(false);\n };\n\n const handleDaySelect = (date: Dayjs | null) => {\n if (selecting === 'start') {\n setDraft({ start: date, end: null });\n setSelecting('end');\n } else {\n setDraft((prev) => ({ ...prev, end: date }));\n }\n };\n\n return (\n <>\n <Button variant=\"contained\" color=\"inherit\" disableElevation onClick={handleOpen}>\n {buttonLabel}\n </Button>\n <Dialog open={open} onClose={handleCancel}>\n <DialogContent sx={{ p: 1 }}>\n <Box sx={{ mb: 1, px: 1 }}>\n <TextField\n size=\"small\"\n label=\"Selecting\"\n value={selecting === 'start' ? 'Start date' : 'End date'}\n inputProps={{ readOnly: true }}\n fullWidth\n />\n </Box>\n <MuiDateCalendar\n value={selecting === 'start' ? draft.start : draft.end}\n onChange={handleDaySelect}\n />\n </DialogContent>\n <DialogActions>\n <Button onClick={handleCancel} color=\"inherit\">Cancel</Button>\n <Button onClick={handleOk} color=\"inherit\">OK</Button>\n </DialogActions>\n </Dialog>\n </>\n );\n}\n\nDateRangePickerCalendar.displayName = 'ToolkitDateRangePickerCalendar';\n","import { Grid2 as MuiGrid2, Grid2Props as MuiGrid2Props } from '@mui/material';\n\nexport type GridProps = MuiGrid2Props;\n\n/**\n * 12-column layout grid, based on MUI Grid2.\n *\n * Use `container` on the wrapper and `size` on children to set column spans.\n * `size` accepts a number (fixed across all breakpoints) or a responsive\n * object mapping breakpoints to spans:\n *\n * size={6} // 6/12 at all sizes\n * size={{ xs: 12, md: 6 }} // full width → half width\n * size=\"grow\" // fills remaining space\n * size=\"auto\" // shrinks to content\n *\n * Spacing multiplies the theme spacing unit (8px):\n * spacing={1} → 8px gap\n * spacing={2} → 16px gap (default on containers)\n * spacing={3} → 24px gap\n * spacing={4} → 32px gap\n * spacing={5} → 40px gap\n *\n * @example\n * // 2-column layout, 16px gap, stacks on mobile\n * <Grid container spacing={2}>\n * <Grid size={{ xs: 12, md: 6 }}>Left</Grid>\n * <Grid size={{ xs: 12, md: 6 }}>Right</Grid>\n * </Grid>\n *\n * @example\n * // 4-column card grid\n * <Grid container spacing={3}>\n * {items.map((item) => (\n * <Grid key={item.id} size={{ xs: 12, sm: 6, md: 3 }}>\n * <Card>…</Card>\n * </Grid>\n * ))}\n * </Grid>\n */\nexport function Grid({ container, spacing, ...props }: GridProps) {\n return (\n <MuiGrid2\n container={container}\n spacing={container && spacing === undefined ? 2 : spacing}\n {...props}\n />\n );\n}\n\nGrid.displayName = 'ToolkitGrid';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface H1Props extends Omit<TypographyProps, 'variant'> {}\n\nexport function H1({ color = 'text.primary', children, ...props }: H1Props) {\n return (\n <Typography variant=\"h1\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nH1.displayName = 'ToolkitH1';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface H2Props extends Omit<TypographyProps, 'variant'> {}\n\nexport function H2({ color = 'text.primary', children, ...props }: H2Props) {\n return (\n <Typography variant=\"h2\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nH2.displayName = 'ToolkitH2';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface H3Props extends Omit<TypographyProps, 'variant'> {}\n\nexport function H3({ color = 'text.primary', children, ...props }: H3Props) {\n return (\n <Typography variant=\"h3\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nH3.displayName = 'ToolkitH3';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface H4Props extends Omit<TypographyProps, 'variant'> {}\n\nexport function H4({ color = 'text.primary', children, ...props }: H4Props) {\n return (\n <Typography variant=\"h4\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nH4.displayName = 'ToolkitH4';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface H5Props extends Omit<TypographyProps, 'variant'> {}\n\nexport function H5({ color = 'text.primary', children, ...props }: H5Props) {\n return (\n <Typography variant=\"h5\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nH5.displayName = 'ToolkitH5';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface H6Props extends Omit<TypographyProps, 'variant'> {}\n\nexport function H6({ color = 'text.primary', children, ...props }: H6Props) {\n return (\n <Typography variant=\"h6\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nH6.displayName = 'ToolkitH6';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface Subtitle1Props extends Omit<TypographyProps, 'variant'> {}\n\nexport function Subtitle1({ color = 'text.primary', children, ...props }: Subtitle1Props) {\n return (\n <Typography variant=\"subtitle1\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nSubtitle1.displayName = 'ToolkitSubtitle1';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface Subtitle2Props extends Omit<TypographyProps, 'variant'> {}\n\nexport function Subtitle2({ color = 'text.primary', children, ...props }: Subtitle2Props) {\n return (\n <Typography variant=\"subtitle2\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nSubtitle2.displayName = 'ToolkitSubtitle2';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface Body1Props extends Omit<TypographyProps, 'variant'> {}\n\nexport function Body1({ color = 'text.primary', children, ...props }: Body1Props) {\n return (\n <Typography variant=\"body1\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nBody1.displayName = 'ToolkitBody1';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface Body2Props extends Omit<TypographyProps, 'variant'> {}\n\nexport function Body2({ color = 'text.primary', children, ...props }: Body2Props) {\n return (\n <Typography variant=\"body2\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nBody2.displayName = 'ToolkitBody2';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface CaptionProps extends Omit<TypographyProps, 'variant'> {}\n\nexport function Caption({ color = 'text.primary', children, ...props }: CaptionProps) {\n return (\n <Typography variant=\"caption\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nCaption.displayName = 'ToolkitCaption';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface OverlineProps extends Omit<TypographyProps, 'variant'> {}\n\nexport function Overline({ color = 'text.primary', children, ...props }: OverlineProps) {\n return (\n <Typography variant=\"overline\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nOverline.displayName = 'ToolkitOverline';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface TypographyButtonProps extends Omit<TypographyProps, 'variant'> {}\n\nexport function TypographyButton({ color = 'text.primary', children, ...props }: TypographyButtonProps) {\n return (\n <Typography variant=\"button\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nTypographyButton.displayName = 'ToolkitTypographyButton';\n"],"mappings":"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","names":["jsx","jsx","styled","jsx","SvgIcon","styled","jsx","TextField","SvgIcon","jsx","styled","jsx","styled","default","jsx","jsx","useState","Button","TextField","styled","jsx","jsxs","jsx","jsx","Typography","jsx","Typography","jsx","Typography","jsx","Typography","jsx","Typography","jsx","Typography","jsx","Typography","jsx","Typography","jsx","Typography","jsx","Typography","jsx","Typography","jsx","Typography","jsx"]}
1
+ {"version":3,"sources":["../src/ThemeProvider.tsx","../src/themes/defaultTheme.ts","../src/themes/mergeTheme.ts","../src/themes/theme1/index.ts","../src/themes/theme2/index.ts","../src/themes/cps/index.ts","../src/themes/registry.ts","../src/themes/config.ts","../src/themes/createMuiTheme.ts","../src/components/Button/Button.tsx","../src/components/Chip/Chip.tsx","../src/components/Card/Card.tsx","../src/components/TextField/TextField.tsx","../src/components/Alert/Alert.tsx","../src/components/Accordion/Accordion.tsx","../src/components/Avatar/Avatar.tsx","../src/components/ToggleButton/ToggleButton.tsx","../src/components/DatePicker/DatePicker.tsx","../src/foundation/Grid/Grid.tsx","../src/foundation/H1/H1.tsx","../src/foundation/H2/H2.tsx","../src/foundation/H3/H3.tsx","../src/foundation/H4/H4.tsx","../src/foundation/H5/H5.tsx","../src/foundation/H6/H6.tsx","../src/foundation/Subtitle1/Subtitle1.tsx","../src/foundation/Subtitle2/Subtitle2.tsx","../src/foundation/Body1/Body1.tsx","../src/foundation/Body2/Body2.tsx","../src/foundation/Caption/Caption.tsx","../src/foundation/Overline/Overline.tsx","../src/foundation/TypographyButton/TypographyButton.tsx"],"sourcesContent":["import React from 'react';\nimport { ThemeProvider as MuiThemeProvider, CssBaseline } from '@mui/material';\nimport { ThemeName, getThemeTokens } from './themes/registry';\nimport { resolveThemeName } from './themes/config';\nimport { createMuiTheme } from './themes/createMuiTheme';\n\ninterface ToolkitThemeProviderProps {\n /**\n * Explicitly override which theme to use.\n *\n * If omitted, the theme is read from the environment variable\n * configured in your app's .env file (VITE_THEME, REACT_APP_THEME,\n * or NEXT_PUBLIC_THEME).\n *\n * Passing this prop is useful in tests, Storybook, or when you want\n * to let a user switch themes at runtime.\n */\n theme?: ThemeName;\n children: React.ReactNode;\n /**\n * Inject MUI's CssBaseline (recommended for normalizing browser styles).\n * Defaults to true.\n */\n injectCssBaseline?: boolean;\n}\n\n/**\n * Drop-in ThemeProvider for any app using the mui-ui-toolkit.\n *\n * Usage in your app root:\n *\n * // .env\n * VITE_THEME=theme2\n *\n * // main.tsx\n * import { ToolkitThemeProvider } from '@mui-ui-toolkit/core';\n *\n * <ToolkitThemeProvider>\n * <App />\n * </ToolkitThemeProvider>\n *\n * Or to override at runtime (e.g. user preference):\n *\n * <ToolkitThemeProvider theme=\"theme1\">\n * <App />\n * </ToolkitThemeProvider>\n */\nexport function ToolkitThemeProvider({\n theme,\n children,\n injectCssBaseline = true,\n}: ToolkitThemeProviderProps) {\n const themeName = theme ?? resolveThemeName();\n const tokens = getThemeTokens(themeName);\n const muiTheme = createMuiTheme(tokens);\n\n return (\n <MuiThemeProvider theme={muiTheme}>\n {injectCssBaseline && <CssBaseline />}\n {children}\n </MuiThemeProvider>\n );\n}\n","import { ThemeTokens } from './tokens';\n\n/**\n * Default theme — the baseline every theme builds on.\n *\n * Contains all values that are shared across themes (spacing, zIndex,\n * component sizes/paddings, etc.) plus neutral placeholder values for\n * brand-specific tokens (colors, shadows, typography fonts).\n *\n * Themes only need to override what differs from these defaults.\n */\nconst defaultTheme: ThemeTokens = {\n colors: {\n primary: '#BE0D00',\n primaryDark: '#003c8f',\n primaryLight: '#5e92f3',\n primaryContrast: '#ffffff',\n\n secondary: '#c95109',\n secondaryDark: '#38006b',\n secondaryLight: '#9c4dcc',\n secondaryContrast: '#ffffff',\n\n success: '#1A6D29',\n warning: '#E6920A',\n error: '#990000',\n info: '#0288D1',\n\n background: '#F5F7FA',\n backgroundPaper: '#ffffff',\n backgroundSubtle: '#EEF2F7',\n\n textPrimary: '#1A2340',\n textSecondary: '#546080',\n textDisabled: '#A0AABF',\n\n divider: '#DDE3EE',\n border: '#C5CFE0',\n borderFocus: '#1565C0',\n\n overlayLight: 'rgba(255, 255, 255, 0.8)',\n overlayDark: 'rgba(0, 0, 0, 0.12)',\n\n overlayLight60: 'rgba(255, 255, 255, 0.6)',\n overlayLight70: 'rgba(255, 255, 255, 0.7)',\n overlayLight75: 'rgba(255, 255, 255, 0.75)',\n overlayLight85: 'rgba(255, 255, 255, 0.85)',\n\n colorRed: '#FF5630',\n colorAmber: '#FFAB00',\n colorOrange: '#FF8B00',\n colorGreen: '#36B37E',\n colorBlue: '#0065FF',\n colorGrey: '#6B778C',\n },\n\n typography: {\n fontFamilyBase: '\"Source Sans Pro\", sans-serif',\n fontFamilyMono: '\"Inter\", \"Roboto\", \"Helvetica Neue\", Arial, sans-serif',\n\n // ── Sizes (identical across all themes) ──────────────────────────────\n fontSizeXs: '0.625rem', // 10px\n fontSizeSm: '0.75rem', // 12px\n fontSizeMd: '0.875rem', // 14px\n fontSizeLg: '1rem', // 16px\n fontSizeXl: '1.125rem', // 18px\n fontSize2xl: '1.375rem', // 22px\n fontSize3xl: '1.75rem', // 28px\n fontSize4xl: '2.25rem', // 36px\n\n // ── Weights (identical across all themes) ─────────────────────────────\n fontWeightLight: 300,\n fontWeightRegular: 400,\n fontWeightMedium: 500,\n fontWeightSemiBold: 600,\n fontWeightBold: 700,\n\n lineHeightTight: 1.2,\n lineHeightBase: 1.5,\n lineHeightRelaxed: 1.75,\n\n letterSpacingTight: '-0.02em',\n letterSpacingBase: '0em',\n letterSpacingWide: '0.06em',\n },\n\n // ── Spacing (identical across all themes) ──────────────────────────────\n spacing: {\n unit: 8,\n xs: '4px',\n sm: '8px',\n md: '16px',\n lg: '24px',\n xl: '32px',\n xxl: '48px',\n },\n\n borderRadius: {\n none: '0px',\n xs: '2px',\n sm: '4px',\n md: '8px',\n lg: '12px',\n xl: '16px',\n full: '9999px',\n },\n\n shadows: {\n none: 'none',\n xs: '0 1px 2px rgba(0, 0, 0, 0.08)',\n sm: '0 2px 6px rgba(0, 0, 0, 0.10)',\n md: '0 4px 12px rgba(0, 0, 0, 0.12)',\n lg: '0 8px 24px rgba(0, 0, 0, 0.14)',\n xl: '0 16px 48px rgba(0, 0, 0, 0.18)',\n },\n\n transitions: {\n durationFast: '120ms',\n durationBase: '200ms',\n durationSlow: '350ms',\n easingDefault: 'cubic-bezier(0.4, 0, 0.2, 1)',\n easingIn: 'cubic-bezier(0.4, 0, 1, 1)',\n easingOut: 'cubic-bezier(0, 0, 0.2, 1)',\n },\n\n // ── Z-index (identical across all themes) ──────────────────────────────\n zIndex: {\n base: 0,\n dropdown: 100,\n sticky: 200,\n overlay: 300,\n modal: 400,\n popover: 500,\n toast: 600,\n tooltip: 700,\n },\n\n components: {\n footer: {\n background: '#003c8f',\n textColor: 'rgba(255, 255, 255, 0.7)',\n linkColor: 'rgba(255, 255, 255, 0.7)',\n linkHoverColor: '#ffffff',\n },\n\n icon: {\n xs: '12px',\n sm: '16px',\n md: '20px',\n lg: '24px',\n xl: '28px',\n xxl: '32px',\n xxxl: '36px',\n display: '56px',\n },\n\n button: {\n // Sizes & paddings (identical across themes)\n paddingX: '12px',\n paddingY: '6px',\n paddingXSm: '8px',\n paddingYSm: '4px',\n paddingXLg: '16px',\n paddingYLg: '8px',\n paddingXXl: '16px',\n paddingYXl: '8px',\n fontSizeSm: '0.8125rem',\n fontSizeMd: '0.875rem',\n fontSizeLg: '0.9375rem',\n heightSm: '30px',\n heightMd: '36px',\n heightLg: '48px',\n heightXl: '56px',\n // Typography & style (identical across themes)\n borderWidth: '1.5px',\n fontWeight: 700,\n letterSpacing: '0em',\n textTransform: 'none',\n iconGap: '8px',\n // Brand-specific — overridden per theme\n borderRadius: '8px',\n minWidth: '200px'\n },\n\n input: {\n // Sizes & paddings (identical across themes)\n paddingX: '14px',\n paddingY: '10px',\n borderWidthFocus: '2px',\n background: '#ffffff',\n labelFontSize: '0.875rem',\n helperFontSize: '0.75rem',\n // Brand-specific — overridden per theme\n borderRadius: '8px',\n borderWidth: '1px',\n backgroundDisabled: '#F5F7FA',\n minHeight: '44px',\n },\n\n card: {\n // Layout (identical across themes)\n padding: '24px',\n paddingCompact: '16px',\n borderWidth: '1px',\n background: '#ffffff',\n // Brand-specific — overridden per theme\n borderRadius: '12px',\n },\n\n // ── Chip (identical across all themes) ───────────────────────────────\n chip: {\n height: '32px',\n heightSm: '24px',\n paddingX: '12px',\n borderRadius: '9999px',\n fontSize: '0.8125rem',\n fontWeight: 500,\n iconSize: '16px',\n },\n\n // ── Badge (identical across all themes) ──────────────────────────────\n badge: {\n height: '20px',\n minWidth: '20px',\n paddingX: '6px',\n borderRadius: '9999px',\n fontSize: '0.6875rem',\n fontWeight: 700,\n borderWidth: '2px',\n },\n\n tooltip: {\n paddingX: '10px',\n paddingY: '6px',\n fontSize: '0.75rem',\n maxWidth: '280px',\n color: '#ffffff',\n // Brand-specific — overridden per theme\n borderRadius: '6px',\n background: '#1A2340',\n },\n\n dialog: {\n // Layout (identical across themes)\n padding: '32px',\n maxWidth: '600px',\n background: '#ffffff',\n // Brand-specific — overridden per theme\n borderRadius: '16px',\n },\n\n table: {\n // Layout (identical across themes)\n cellPaddingX: '16px',\n headerFontWeight: 600,\n borderWidth: '1px',\n // Brand-specific — overridden per theme\n cellPaddingY: '12px',\n headerBackground: '#EEF2F7',\n rowHoverBackground: '#F5F7FA',\n borderColor: '#DDE3EE',\n },\n\n avatar: {\n // Sizes (identical across themes)\n sizeXs: '24px',\n sizeSm: '32px',\n sizeMd: '40px',\n sizeLg: '56px',\n sizeXl: '80px',\n sizeXxl: '128px',\n // Style (identical across themes)\n borderRadius: '50%',\n groupSpacing: '-8px',\n groupBorderWidth: '2px',\n // Brand-specific — overridden per theme\n borderRadiusRounded: '12px',\n },\n\n divider: {\n thickness: '1px',\n // Brand-specific — overridden per theme\n color: '#DDE3EE',\n },\n\n alert: {\n // Layout (identical across themes)\n padding: '6px 16px',\n // Brand-specific — overridden per theme\n borderRadius: '8px',\n },\n\n accordion: {\n // Layout (identical across themes)\n standaloneRadius: '16px',\n summaryPaddingX: '16px',\n summaryPaddingY: '16px',\n summaryFontWeight: 600,\n detailsPaddingX: '16px',\n detailsPaddingBottom: '16px',\n standaloneBackground: 'rgba(145, 158, 171, 0.08)',\n standaloneBackgroundExpanded: 'rgba(145, 158, 171, 0.16)',\n // Brand-specific — overridden per theme\n borderRadius: '8px',\n },\n\n toggleButton: {\n borderRadius: '8px',\n borderWidth: '1px',\n paddingXSm: '7px',\n paddingYSm: '5px',\n paddingXMd: '11px',\n paddingYMd: '11px',\n paddingXLg: '15px',\n paddingYLg: '15px',\n fontWeight: 700,\n },\n },\n};\n\nexport default defaultTheme;\n","import { ThemeTokens, ThemeOverrides } from './tokens';\n\nfunction isPlainObject(val: unknown): val is Record<string, unknown> {\n return typeof val === 'object' && val !== null && !Array.isArray(val);\n}\n\nfunction deepMerge<T>(base: T, overrides: Record<string, unknown>): T {\n const result: Record<string, unknown> = { ...(base as Record<string, unknown>) };\n for (const key of Object.keys(overrides)) {\n const baseVal = result[key];\n const overrideVal = overrides[key];\n if (isPlainObject(baseVal) && isPlainObject(overrideVal)) {\n result[key] = deepMerge(baseVal, overrideVal);\n } else if (overrideVal !== undefined) {\n result[key] = overrideVal;\n }\n }\n return result as T;\n}\n\n/**\n * Merges a ThemeOverrides partial on top of a complete ThemeTokens base.\n * Only the keys present in `overrides` replace values in `base` —\n * missing keys fall through to the default.\n */\nexport function mergeTheme(base: ThemeTokens, overrides: ThemeOverrides): ThemeTokens {\n return deepMerge(base, overrides as Record<string, unknown>);\n}\n","import { ThemeOverrides } from '../tokens';\n\n/**\n * Theme 1 — \"Ocean Blue\"\n * A clean, professional theme with a deep blue primary palette.\n * Only brand-specific overrides are listed here — everything else\n * inherits from the default theme.\n */\nconst theme1Overrides: ThemeOverrides = {\n colors: {\n primary: '#1565C0',\n primaryDark: '#003c8f',\n primaryLight: '#5e92f3',\n primaryContrast: '#ffffff',\n\n secondary: '#6A1B9A',\n secondaryDark: '#38006b',\n secondaryLight: '#9c4dcc',\n secondaryContrast: '#ffffff',\n\n success: '#2E7D32',\n warning: '#ED6C02',\n error: '#D32F2F',\n info: '#0288D1',\n\n background: '#F5F7FA',\n backgroundPaper: '#ffffff',\n backgroundSubtle: '#EEF2F7',\n\n textPrimary: '#1A2340',\n textSecondary: '#546080',\n textDisabled: '#A0AABF',\n\n divider: '#DDE3EE',\n border: '#C5CFE0',\n borderFocus: '#1565C0',\n\n overlayLight: 'rgba(255, 255, 255, 0.8)',\n overlayDark: 'rgba(21, 101, 192, 0.12)',\n },\n\n typography: {\n fontFamilyBase: '\"Inter\", \"Roboto\", \"Helvetica Neue\", Arial, sans-serif',\n fontFamilyMono: '\"Fira Code\", \"Courier New\", monospace',\n lineHeightTight: 1.2,\n lineHeightBase: 1.5,\n lineHeightRelaxed: 1.75,\n letterSpacingTight: '-0.02em',\n letterSpacingWide: '0.06em',\n },\n\n borderRadius: {\n xs: '2px',\n sm: '4px',\n md: '8px',\n lg: '12px',\n xl: '16px',\n },\n\n shadows: {\n xs: '0 1px 2px rgba(21, 101, 192, 0.08)',\n sm: '0 2px 6px rgba(21, 101, 192, 0.10)',\n md: '0 4px 12px rgba(21, 101, 192, 0.12)',\n lg: '0 8px 24px rgba(21, 101, 192, 0.14)',\n xl: '0 16px 48px rgba(21, 101, 192, 0.18)',\n },\n\n transitions: {\n durationFast: '120ms',\n durationBase: '200ms',\n durationSlow: '350ms',\n },\n\n components: {\n button: { borderRadius: '8px' },\n input: {\n borderRadius: '8px',\n borderWidth: '1px',\n backgroundDisabled: '#F5F7FA',\n minHeight: '44px',\n },\n card: { borderRadius: '12px' },\n tooltip: {\n borderRadius: '6px',\n background: '#1A2340',\n },\n dialog: { borderRadius: '16px' },\n table: {\n cellPaddingY: '12px',\n headerBackground: '#EEF2F7',\n rowHoverBackground: '#F5F7FA',\n borderColor: '#DDE3EE',\n },\n avatar: { borderRadiusRounded: '12px' },\n divider: { color: '#DDE3EE' },\n alert: { borderRadius: '8px' },\n accordion: { borderRadius: '8px' },\n },\n};\n\nexport default theme1Overrides;\n","import { ThemeOverrides } from '../tokens';\n\n/**\n * Theme 2 — \"Forest Green\"\n * A warm, earthy theme with a rich green primary palette and softer,\n * more rounded shapes than Theme 1.\n * Only brand-specific overrides are listed here — everything else\n * inherits from the default theme.\n */\nconst theme2Overrides: ThemeOverrides = {\n colors: {\n primary: '#2E7D32',\n primaryDark: '#1B5E20',\n primaryLight: '#60AD5E',\n primaryContrast: '#ffffff',\n\n secondary: '#F57F17',\n secondaryDark: '#BC5100',\n secondaryLight: '#FFAD42',\n secondaryContrast: '#1A1A1A',\n\n success: '#388E3C',\n warning: '#F57C00',\n error: '#C62828',\n info: '#01579B',\n\n background: '#F7F9F5',\n backgroundPaper: '#ffffff',\n backgroundSubtle: '#EDF3EB',\n\n textPrimary: '#1C2A1E',\n textSecondary: '#4A6350',\n textDisabled: '#9DB09F',\n\n divider: '#D4E5D0',\n border: '#B8D4B2',\n borderFocus: '#2E7D32',\n\n overlayLight: 'rgba(255, 255, 255, 0.8)',\n overlayDark: 'rgba(46, 125, 50, 0.12)',\n },\n\n typography: {\n fontFamilyBase: '\"DM Sans\", \"Roboto\", \"Helvetica Neue\", Arial, sans-serif',\n fontFamilyMono: '\"JetBrains Mono\", \"Courier New\", monospace',\n lineHeightTight: 1.25,\n lineHeightBase: 1.6,\n lineHeightRelaxed: 1.8,\n letterSpacingTight: '-0.01em',\n letterSpacingWide: '0.04em',\n },\n\n borderRadius: {\n xs: '4px',\n sm: '8px',\n md: '12px',\n lg: '20px',\n xl: '28px',\n },\n\n shadows: {\n xs: '0 1px 2px rgba(46, 125, 50, 0.06)',\n sm: '0 2px 8px rgba(46, 125, 50, 0.08)',\n md: '0 4px 16px rgba(46, 125, 50, 0.10)',\n lg: '0 8px 28px rgba(46, 125, 50, 0.13)',\n xl: '0 16px 56px rgba(46, 125, 50, 0.16)',\n },\n\n transitions: {\n durationFast: '150ms',\n durationBase: '250ms',\n durationSlow: '400ms',\n },\n\n components: {\n button: { borderRadius: '12px' },\n input: {\n borderRadius: '12px',\n borderWidth: '1.5px',\n backgroundDisabled: '#F7F9F5',\n minHeight: '46px',\n },\n card: { borderRadius: '20px' },\n tooltip: {\n borderRadius: '8px',\n background: '#1C2A1E',\n },\n dialog: { borderRadius: '24px' },\n table: {\n cellPaddingY: '14px',\n headerBackground: '#EDF3EB',\n rowHoverBackground: '#F7F9F5',\n borderColor: '#D4E5D0',\n },\n avatar: { borderRadiusRounded: '16px' },\n divider: { color: '#D4E5D0' },\n alert: { borderRadius: '12px' },\n accordion: { borderRadius: '12px' },\n },\n};\n\nexport default theme2Overrides;\n","import { ThemeOverrides } from '../tokens';\n\n/**\n * CPS — \"uses the default theme - minimal overrides\"\n */\nconst cpsThemeOverrides: ThemeOverrides = {\n};\n\nexport default cpsThemeOverrides;\n","import { ThemeTokens, ThemeOverrides } from './tokens';\nimport defaultTheme from './defaultTheme';\nimport { mergeTheme } from './mergeTheme';\nimport theme1Overrides from './theme1';\nimport theme2Overrides from './theme2';\nimport cpsThemeOverrides from './cps';\n\n/**\n * All available theme names. Add a new key here whenever you create a\n * new theme in its own sub-directory.\n */\nexport type ThemeName = 'theme1' | 'theme2' | 'cpsTheme';\n\n/**\n * Each entry is a partial override on top of the default theme.\n * Only brand-specific values need to be listed.\n */\nconst themeRegistry: Record<ThemeName, ThemeOverrides> = {\n theme1: theme1Overrides,\n theme2: theme2Overrides,\n cpsTheme: cpsThemeOverrides,\n};\n\n/**\n * Returns the fully resolved token set for the given theme name —\n * the default theme deep-merged with the theme's overrides.\n * Throws at runtime if an unknown name is provided.\n */\nexport function getThemeTokens(name: ThemeName): ThemeTokens {\n const overrides = themeRegistry[name];\n if (!overrides) {\n const available = Object.keys(themeRegistry).join(', ');\n throw new Error(`Unknown theme \"${name}\". Available themes: ${available}`);\n }\n return mergeTheme(defaultTheme, overrides);\n}\n\nexport { themeRegistry };\n","import { ThemeName } from './registry';\n\n/**\n * Resolves the active theme name from the environment.\n *\n * Priority order (first match wins):\n * 1. VITE_THEME — used by Vite-based apps\n * 2. REACT_APP_THEME — used by Create React App\n * 3. NEXT_PUBLIC_THEME — used by Next.js\n * 4. 'cpsTheme' — hardcoded fallback\n *\n * In your app's .env file, add one of:\n *\n * VITE_THEME=theme2\n * REACT_APP_THEME=theme2\n * NEXT_PUBLIC_THEME=theme2\n *\n * The value must match one of the keys in ThemeName ('theme1' | 'theme2' | …).\n * A typo will throw at runtime when getThemeTokens() is called.\n */\nexport function resolveThemeName(): ThemeName {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const importMetaEnv: Record<string, string | undefined> | undefined =\n typeof (import.meta as any)?.env === 'object' ? (import.meta as any).env : undefined;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const env: Record<string, string | undefined> =\n importMetaEnv ||\n (typeof globalThis !== 'undefined' && (globalThis as any).process?.env) ||\n {};\n\n const raw = env['VITE_THEME'] || env['REACT_APP_THEME'] || env['NEXT_PUBLIC_THEME'] || 'cpsTheme';\n\n return raw as ThemeName;\n}\n","import { createTheme, Theme, alpha, darken } from '@mui/material/styles';\nimport { ThemeTokens } from './tokens';\n\n/**\n * Takes a ThemeTokens object and produces a fully configured MUI Theme.\n *\n * MUI's own theme properties (palette, typography, shape, shadows, etc.)\n * are derived from our tokens — not from hard-coded values — so that\n * swapping the tokens object swaps the entire visual language.\n *\n * The raw tokens are also attached as `theme.tokens` (via module\n * augmentation in types/mui.d.ts) so components can read any token\n * not already exposed by MUI's built-in theme shape.\n */\nexport function createMuiTheme(tokens: ThemeTokens): Theme {\n return createTheme({\n palette: {\n primary: {\n main: tokens.colors.primary,\n dark: tokens.colors.primaryDark,\n light: tokens.colors.primaryLight,\n contrastText: tokens.colors.primaryContrast,\n },\n secondary: {\n main: tokens.colors.secondary,\n dark: tokens.colors.secondaryDark,\n light: tokens.colors.secondaryLight,\n contrastText: tokens.colors.secondaryContrast,\n },\n success: { main: tokens.colors.success },\n warning: { main: tokens.colors.warning },\n error: { main: tokens.colors.error },\n info: { main: tokens.colors.info },\n background: {\n default: tokens.colors.background,\n paper: tokens.colors.backgroundPaper,\n subtle: tokens.colors.backgroundSubtle,\n },\n border: tokens.colors.border,\n text: {\n primary: tokens.colors.textPrimary,\n secondary: tokens.colors.textSecondary,\n disabled: tokens.colors.textDisabled,\n },\n divider: tokens.colors.divider,\n },\n\n typography: {\n fontFamily: tokens.typography.fontFamilyBase,\n fontWeightLight: tokens.typography.fontWeightLight,\n fontWeightRegular: tokens.typography.fontWeightRegular,\n fontWeightMedium: tokens.typography.fontWeightMedium,\n fontWeightBold: tokens.typography.fontWeightBold,\n fontSize: 14, // MUI base, actual sizes come from tokens\n },\n\n shape: {\n borderRadius: 8, // MUI uses a number; components use tokens directly\n },\n\n spacing: tokens.spacing.unit,\n\n zIndex: {\n appBar: tokens.zIndex.sticky,\n drawer: tokens.zIndex.overlay,\n modal: tokens.zIndex.modal,\n snackbar: tokens.zIndex.toast,\n tooltip: tokens.zIndex.tooltip,\n },\n\n components: {\n MuiButton: {\n defaultProps: {\n disableElevation: true,\n },\n styleOverrides: {\n root: {\n borderRadius: tokens.components.button.borderRadius,\n fontWeight: tokens.components.button.fontWeight,\n letterSpacing: tokens.components.button.letterSpacing,\n textTransform: tokens.components.button.textTransform as 'none',\n fontSize: tokens.components.button.fontSizeMd,\n minHeight: tokens.components.button.heightMd,\n paddingLeft: tokens.components.button.paddingX,\n paddingRight: tokens.components.button.paddingX,\n paddingTop: tokens.components.button.paddingY,\n paddingBottom: tokens.components.button.paddingY,\n boxShadow: tokens.shadows.none,\n transition: `all ${tokens.transitions.durationBase} ${tokens.transitions.easingDefault}`,\n '&:hover': {\n boxShadow: tokens.shadows.none,\n },\n },\n sizeSmall: {\n fontSize: tokens.components.button.fontSizeSm,\n minHeight: tokens.components.button.heightSm,\n paddingLeft: tokens.components.button.paddingXSm,\n paddingRight: tokens.components.button.paddingXSm,\n paddingTop: tokens.components.button.paddingYSm,\n paddingBottom: tokens.components.button.paddingYSm,\n },\n sizeLarge: {\n fontSize: tokens.components.button.fontSizeLg,\n minHeight: tokens.components.button.heightLg,\n paddingLeft: tokens.components.button.paddingXLg,\n paddingRight: tokens.components.button.paddingXLg,\n paddingTop: tokens.components.button.paddingYLg,\n paddingBottom: tokens.components.button.paddingYLg,\n },\n },\n variants: [\n // xlarge size\n {\n props: { size: 'xlarge' },\n style: {\n fontSize: tokens.components.button.fontSizeLg,\n minHeight: tokens.components.button.heightXl,\n paddingLeft: tokens.components.button.paddingXXl,\n paddingRight: tokens.components.button.paddingXXl,\n paddingTop: tokens.components.button.paddingYXl,\n paddingBottom: tokens.components.button.paddingYXl,\n },\n },\n // soft variant — base (inherit/no color)\n {\n props: { variant: 'soft' },\n style: {\n backgroundColor: alpha(tokens.colors.textSecondary, 0.12),\n color: tokens.colors.textPrimary,\n boxShadow: tokens.shadows.none,\n '&:hover': {\n backgroundColor: alpha(tokens.colors.textSecondary, 0.2),\n boxShadow: tokens.shadows.none,\n },\n '&.Mui-disabled': {\n backgroundColor: alpha(tokens.colors.textDisabled, 0.12),\n color: tokens.colors.textDisabled,\n },\n },\n },\n // soft variant — primary\n {\n props: { variant: 'soft', color: 'primary' },\n style: {\n backgroundColor: alpha(tokens.colors.primary, 0.16),\n color: tokens.colors.primaryDark,\n '&:hover': { backgroundColor: alpha(tokens.colors.primary, 0.24) },\n },\n },\n // soft variant — secondary\n {\n props: { variant: 'soft', color: 'secondary' },\n style: {\n backgroundColor: alpha(tokens.colors.secondary, 0.16),\n color: tokens.colors.secondaryDark,\n '&:hover': { backgroundColor: alpha(tokens.colors.secondary, 0.24) },\n },\n },\n // soft variant — error\n {\n props: { variant: 'soft', color: 'error' },\n style: {\n backgroundColor: alpha(tokens.colors.error, 0.16),\n color: darken(tokens.colors.error, 0.2),\n '&:hover': { backgroundColor: alpha(tokens.colors.error, 0.24) },\n },\n },\n // soft variant — warning\n {\n props: { variant: 'soft', color: 'warning' },\n style: {\n backgroundColor: alpha(tokens.colors.warning, 0.16),\n color: darken(tokens.colors.warning, 0.2),\n '&:hover': { backgroundColor: alpha(tokens.colors.warning, 0.24) },\n },\n },\n // soft variant — success\n {\n props: { variant: 'soft', color: 'success' },\n style: {\n backgroundColor: alpha(tokens.colors.success, 0.16),\n color: darken(tokens.colors.success, 0.2),\n '&:hover': { backgroundColor: alpha(tokens.colors.success, 0.24) },\n },\n },\n // soft variant — info\n {\n props: { variant: 'soft', color: 'info' },\n style: {\n backgroundColor: alpha(tokens.colors.info, 0.16),\n color: darken(tokens.colors.info, 0.2),\n '&:hover': { backgroundColor: alpha(tokens.colors.info, 0.24) },\n },\n },\n ],\n },\n\n MuiTextField: {\n styleOverrides: {\n root: {\n '& .MuiOutlinedInput-root': {\n borderRadius: tokens.components.input.borderRadius,\n backgroundColor: tokens.components.input.background,\n minHeight: tokens.components.input.minHeight,\n '& fieldset': {\n borderWidth: tokens.components.input.borderWidth,\n borderColor: tokens.colors.border,\n },\n '&:hover fieldset': {\n borderColor: tokens.colors.primary,\n },\n '&.Mui-focused fieldset': {\n borderWidth: tokens.components.input.borderWidthFocus,\n borderColor: tokens.colors.borderFocus,\n },\n '&.Mui-disabled': {\n backgroundColor: tokens.components.input.backgroundDisabled,\n },\n },\n '& .MuiInputLabel-root': {\n fontSize: tokens.components.input.labelFontSize,\n },\n '& .MuiFormHelperText-root': {\n fontSize: tokens.components.input.helperFontSize,\n },\n },\n },\n },\n\n MuiCard: {\n styleOverrides: {\n root: {\n borderRadius: tokens.components.card.borderRadius,\n backgroundColor: tokens.components.card.background,\n boxShadow: tokens.shadows.sm,\n border: `${tokens.components.card.borderWidth} solid ${tokens.colors.divider}`,\n },\n },\n },\n\n MuiCardContent: {\n styleOverrides: {\n root: {\n padding: tokens.components.card.padding,\n '&:last-child': {\n paddingBottom: tokens.components.card.padding,\n },\n },\n },\n },\n\n MuiChip: {\n styleOverrides: {\n root: {\n height: tokens.components.chip.height,\n borderRadius: tokens.components.chip.borderRadius,\n fontSize: tokens.components.chip.fontSize,\n fontWeight: tokens.components.chip.fontWeight,\n paddingLeft: tokens.components.chip.paddingX,\n paddingRight: tokens.components.chip.paddingX,\n },\n sizeSmall: {\n height: tokens.components.chip.heightSm,\n },\n icon: {\n width: tokens.components.chip.iconSize,\n height: tokens.components.chip.iconSize,\n },\n },\n variants: [\n // ── soft — base (default color) ───────────────────────────────────\n {\n props: { variant: 'soft' },\n style: {\n backgroundColor: alpha(tokens.colors.textSecondary, 0.12),\n color: tokens.colors.textPrimary,\n '&:hover': { backgroundColor: alpha(tokens.colors.textSecondary, 0.2) },\n '&.Mui-disabled': { opacity: 0.6 },\n },\n },\n { props: { variant: 'soft', color: 'primary' }, style: { backgroundColor: alpha(tokens.colors.primary, 0.16), color: darken(tokens.colors.primary, 0.2), '&:hover': { backgroundColor: alpha(tokens.colors.primary, 0.24) } } },\n { props: { variant: 'soft', color: 'secondary' }, style: { backgroundColor: alpha(tokens.colors.secondary, 0.16), color: darken(tokens.colors.secondary, 0.2), '&:hover': { backgroundColor: alpha(tokens.colors.secondary, 0.24) } } },\n { props: { variant: 'soft', color: 'info' }, style: { backgroundColor: alpha(tokens.colors.info, 0.16), color: darken(tokens.colors.info, 0.2), '&:hover': { backgroundColor: alpha(tokens.colors.info, 0.24) } } },\n { props: { variant: 'soft', color: 'success' }, style: { backgroundColor: alpha(tokens.colors.success, 0.16), color: darken(tokens.colors.success, 0.2), '&:hover': { backgroundColor: alpha(tokens.colors.success, 0.24) } } },\n { props: { variant: 'soft', color: 'warning' }, style: { backgroundColor: alpha(tokens.colors.warning, 0.16), color: darken(tokens.colors.warning, 0.2), '&:hover': { backgroundColor: alpha(tokens.colors.warning, 0.24) } } },\n { props: { variant: 'soft', color: 'error' }, style: { backgroundColor: alpha(tokens.colors.error, 0.16), color: darken(tokens.colors.error, 0.2), '&:hover': { backgroundColor: alpha(tokens.colors.error, 0.24) } } },\n // ── black ─────────────────────────────────────────────────────────\n { props: { variant: 'filled', color: 'black' }, style: { backgroundColor: tokens.colors.textPrimary, color: tokens.colors.backgroundPaper, '&:hover': { backgroundColor: darken(tokens.colors.textPrimary, 0.1) } } },\n { props: { variant: 'outlined', color: 'black' }, style: { borderColor: tokens.colors.textPrimary, color: tokens.colors.textPrimary } },\n { props: { variant: 'soft', color: 'black' }, style: { backgroundColor: alpha(tokens.colors.textPrimary, 0.12), color: tokens.colors.textPrimary, '&:hover': { backgroundColor: alpha(tokens.colors.textPrimary, 0.2) } } },\n // ── white ─────────────────────────────────────────────────────────\n { props: { variant: 'filled', color: 'white' }, style: { backgroundColor: tokens.colors.backgroundPaper, color: tokens.colors.textPrimary, border: `1px solid ${tokens.colors.divider}`, '&:hover': { backgroundColor: tokens.colors.backgroundSubtle } } },\n { props: { variant: 'outlined', color: 'white' }, style: { borderColor: alpha(tokens.colors.backgroundPaper, 0.32), color: tokens.colors.backgroundPaper } },\n { props: { variant: 'soft', color: 'white' }, style: { backgroundColor: alpha(tokens.colors.backgroundPaper, 0.16), color: tokens.colors.backgroundPaper, '&:hover': { backgroundColor: alpha(tokens.colors.backgroundPaper, 0.24) } } },\n ],\n },\n\n MuiBadge: {\n styleOverrides: {\n badge: {\n height: tokens.components.badge.height,\n minWidth: tokens.components.badge.minWidth,\n borderRadius: tokens.components.badge.borderRadius,\n fontSize: tokens.components.badge.fontSize,\n fontWeight: tokens.components.badge.fontWeight,\n padding: `0 ${tokens.components.badge.paddingX}`,\n },\n },\n },\n\n MuiTooltip: {\n styleOverrides: {\n tooltip: {\n backgroundColor: tokens.components.tooltip.background,\n color: tokens.components.tooltip.color,\n borderRadius: tokens.components.tooltip.borderRadius,\n fontSize: tokens.components.tooltip.fontSize,\n padding: `${tokens.components.tooltip.paddingY} ${tokens.components.tooltip.paddingX}`,\n maxWidth: tokens.components.tooltip.maxWidth,\n },\n },\n },\n\n MuiDialog: {\n styleOverrides: {\n paper: {\n borderRadius: tokens.components.dialog.borderRadius,\n backgroundColor: tokens.components.dialog.background,\n maxWidth: tokens.components.dialog.maxWidth,\n },\n },\n },\n\n MuiDialogContent: {\n styleOverrides: {\n root: {\n padding: tokens.components.dialog.padding,\n },\n },\n },\n\n MuiTableCell: {\n styleOverrides: {\n root: {\n paddingLeft: tokens.components.table.cellPaddingX,\n paddingRight: tokens.components.table.cellPaddingX,\n paddingTop: tokens.components.table.cellPaddingY,\n paddingBottom: tokens.components.table.cellPaddingY,\n borderBottom: `${tokens.components.table.borderWidth} solid ${tokens.components.table.borderColor}`,\n },\n head: {\n fontWeight: tokens.components.table.headerFontWeight,\n backgroundColor: tokens.components.table.headerBackground,\n },\n },\n },\n\n MuiTableRow: {\n styleOverrides: {\n root: {\n '&:hover': {\n backgroundColor: tokens.components.table.rowHoverBackground,\n },\n },\n },\n },\n\n MuiAvatar: {\n styleOverrides: {\n root: {\n width: tokens.components.avatar.sizeMd,\n height: tokens.components.avatar.sizeMd,\n borderRadius: tokens.components.avatar.borderRadius,\n fontSize: tokens.typography.fontSizeLg,\n fontWeight: tokens.typography.fontWeightSemiBold,\n },\n rounded: {\n borderRadius: tokens.components.avatar.borderRadiusRounded,\n },\n },\n },\n\n MuiAvatarGroup: {\n styleOverrides: {\n root: {\n '& .MuiAvatar-root': {\n marginLeft: tokens.components.avatar.groupSpacing,\n border: `${tokens.components.avatar.groupBorderWidth} solid ${tokens.colors.backgroundPaper}`,\n boxSizing: 'content-box',\n },\n },\n },\n },\n\n MuiDivider: {\n styleOverrides: {\n root: {\n borderColor: tokens.components.divider.color,\n borderBottomWidth: tokens.components.divider.thickness,\n },\n },\n },\n\n MuiAlert: {\n styleOverrides: {\n root: {\n alignItems: 'center',\n borderRadius: tokens.components.alert.borderRadius,\n padding: tokens.components.alert.padding,\n fontSize: tokens.typography.fontSizeMd,\n },\n // ── Standard ──────────────────────────────────────────────────────\n standardInfo: {\n backgroundColor: alpha(tokens.colors.info, 0.16),\n color: darken(tokens.colors.info, 0.4),\n '& .MuiAlert-icon': { color: tokens.colors.info },\n },\n standardSuccess: {\n backgroundColor: alpha(tokens.colors.success, 0.16),\n color: darken(tokens.colors.success, 0.4),\n '& .MuiAlert-icon': { color: tokens.colors.success },\n },\n standardWarning: {\n backgroundColor: alpha(tokens.colors.warning, 0.16),\n color: darken(tokens.colors.warning, 0.4),\n '& .MuiAlert-icon': { color: tokens.colors.warning },\n },\n standardError: {\n backgroundColor: alpha(tokens.colors.error, 0.16),\n color: darken(tokens.colors.error, 0.4),\n '& .MuiAlert-icon': { color: tokens.colors.error },\n },\n // ── Filled ────────────────────────────────────────────────────────\n filledInfo: {\n backgroundColor: tokens.colors.info,\n color: tokens.colors.primaryContrast,\n fontWeight: tokens.typography.fontWeightMedium,\n },\n filledSuccess: {\n backgroundColor: tokens.colors.success,\n color: tokens.colors.primaryContrast,\n fontWeight: tokens.typography.fontWeightMedium,\n },\n filledWarning: {\n backgroundColor: tokens.colors.warning,\n // Warning is light enough to need dark text\n color: tokens.colors.textPrimary,\n fontWeight: tokens.typography.fontWeightMedium,\n '& .MuiAlert-icon': { color: tokens.colors.textPrimary },\n },\n filledError: {\n backgroundColor: tokens.colors.error,\n color: tokens.colors.primaryContrast,\n fontWeight: tokens.typography.fontWeightMedium,\n },\n // ── Outlined ──────────────────────────────────────────────────────\n outlinedInfo: {\n backgroundColor: alpha(tokens.colors.info, 0.08),\n color: darken(tokens.colors.info, 0.2),\n borderColor: alpha(tokens.colors.info, 0.32),\n '& .MuiAlert-icon': { color: tokens.colors.info },\n },\n outlinedSuccess: {\n backgroundColor: alpha(tokens.colors.success, 0.08),\n color: darken(tokens.colors.success, 0.2),\n borderColor: alpha(tokens.colors.success, 0.32),\n '& .MuiAlert-icon': { color: tokens.colors.success },\n },\n outlinedWarning: {\n backgroundColor: alpha(tokens.colors.warning, 0.08),\n color: darken(tokens.colors.warning, 0.2),\n borderColor: alpha(tokens.colors.warning, 0.32),\n '& .MuiAlert-icon': { color: tokens.colors.warning },\n },\n outlinedError: {\n backgroundColor: alpha(tokens.colors.error, 0.08),\n color: darken(tokens.colors.error, 0.2),\n borderColor: alpha(tokens.colors.error, 0.32),\n '& .MuiAlert-icon': { color: tokens.colors.error },\n },\n icon: {\n opacity: 1,\n padding: 0,\n },\n message: {\n padding: '4px 0',\n },\n },\n },\n\n MuiAlertTitle: {\n styleOverrides: {\n root: {\n fontWeight: tokens.typography.fontWeightSemiBold,\n marginBottom: '4px',\n },\n },\n },\n\n MuiAccordion: {\n styleOverrides: {\n root: {\n borderRadius: tokens.components.accordion.borderRadius,\n boxShadow: tokens.shadows.md,\n marginBottom: tokens.spacing.sm,\n '&:before': { display: 'none' },\n '&.Mui-expanded': { margin: `0 0 ${tokens.spacing.sm}` },\n '&:first-of-type': { borderRadius: tokens.components.accordion.borderRadius },\n '&:last-of-type': { borderRadius: tokens.components.accordion.borderRadius },\n },\n },\n },\n\n MuiAccordionSummary: {\n styleOverrides: {\n root: {\n padding: `${tokens.components.accordion.summaryPaddingY} 8px ${tokens.components.accordion.summaryPaddingY} ${tokens.components.accordion.summaryPaddingX}`,\n fontWeight: tokens.components.accordion.summaryFontWeight,\n minHeight: 'auto',\n '&.Mui-expanded': { minHeight: 'auto' },\n },\n content: {\n margin: 0,\n '&.Mui-expanded': { margin: 0 },\n },\n expandIconWrapper: {\n color: tokens.colors.textSecondary,\n },\n },\n },\n\n MuiAccordionDetails: {\n styleOverrides: {\n root: {\n padding: `0 ${tokens.components.accordion.detailsPaddingX} ${tokens.components.accordion.detailsPaddingBottom}`,\n },\n },\n },\n\n MuiToggleButton: {\n styleOverrides: {\n root: {\n borderRadius: tokens.components.toggleButton.borderRadius,\n borderWidth: tokens.components.toggleButton.borderWidth,\n borderColor: tokens.colors.border,\n fontWeight: tokens.components.toggleButton.fontWeight,\n paddingLeft: tokens.components.toggleButton.paddingXMd,\n paddingRight: tokens.components.toggleButton.paddingXMd,\n paddingTop: tokens.components.toggleButton.paddingYMd,\n paddingBottom: tokens.components.toggleButton.paddingYMd,\n textTransform: 'none' as const,\n transition: `all ${tokens.transitions.durationBase} ${tokens.transitions.easingDefault}`,\n '&.Mui-selected': {\n backgroundColor: alpha(tokens.colors.textPrimary, 0.08),\n color: tokens.colors.textPrimary,\n '&:hover': {\n backgroundColor: alpha(tokens.colors.textPrimary, 0.16),\n },\n },\n '&.Mui-disabled': {\n borderColor: tokens.colors.border,\n },\n },\n sizeSmall: {\n paddingLeft: tokens.components.toggleButton.paddingXSm,\n paddingRight: tokens.components.toggleButton.paddingXSm,\n paddingTop: tokens.components.toggleButton.paddingYSm,\n paddingBottom: tokens.components.toggleButton.paddingYSm,\n },\n sizeLarge: {\n paddingLeft: tokens.components.toggleButton.paddingXLg,\n paddingRight: tokens.components.toggleButton.paddingXLg,\n paddingTop: tokens.components.toggleButton.paddingYLg,\n paddingBottom: tokens.components.toggleButton.paddingYLg,\n },\n },\n variants: [\n { props: { color: 'primary' }, style: { '&.Mui-selected': { backgroundColor: alpha(tokens.colors.primary, 0.16), color: tokens.colors.primary, '&:hover': { backgroundColor: alpha(tokens.colors.primary, 0.24) } } } },\n { props: { color: 'secondary' }, style: { '&.Mui-selected': { backgroundColor: alpha(tokens.colors.secondary, 0.16), color: tokens.colors.secondary, '&:hover': { backgroundColor: alpha(tokens.colors.secondary, 0.24) } } } },\n { props: { color: 'info' }, style: { '&.Mui-selected': { backgroundColor: alpha(tokens.colors.info, 0.16), color: tokens.colors.info, '&:hover': { backgroundColor: alpha(tokens.colors.info, 0.24) } } } },\n { props: { color: 'success' }, style: { '&.Mui-selected': { backgroundColor: alpha(tokens.colors.success, 0.16), color: tokens.colors.success, '&:hover': { backgroundColor: alpha(tokens.colors.success, 0.24) } } } },\n { props: { color: 'warning' }, style: { '&.Mui-selected': { backgroundColor: alpha(tokens.colors.warning, 0.16), color: tokens.colors.warning, '&:hover': { backgroundColor: alpha(tokens.colors.warning, 0.24) } } } },\n { props: { color: 'error' }, style: { '&.Mui-selected': { backgroundColor: alpha(tokens.colors.error, 0.16), color: tokens.colors.error, '&:hover': { backgroundColor: alpha(tokens.colors.error, 0.24) } } } },\n ],\n },\n\n MuiToggleButtonGroup: {\n styleOverrides: {\n root: {\n borderRadius: tokens.components.toggleButton.borderRadius,\n },\n grouped: {\n '&:not(:first-of-type)': {\n borderColor: tokens.colors.border,\n },\n },\n },\n },\n\n MuiPaper: {\n styleOverrides: {\n root: {\n backgroundImage: 'none', // Remove MUI's default gradient on dark mode\n },\n elevation1: { boxShadow: tokens.shadows.sm },\n elevation2: { boxShadow: tokens.shadows.md },\n elevation3: { boxShadow: tokens.shadows.lg },\n },\n },\n },\n\n // Attach the raw tokens to the theme so any component can access\n // values not already covered by MUI's built-in theme shape.\n // @ts-ignore — augmented in src/types/mui.d.ts\n tokens,\n });\n}\n","import React from 'react';\nimport {\n Button as MuiButton,\n ButtonProps as MuiButtonProps,\n CircularProgress,\n} from '@mui/material';\nimport { styled } from '@mui/material/styles';\n\nexport interface ButtonProps extends MuiButtonProps {\n /** Show a loading spinner and disable interaction */\n loading?: boolean;\n}\n\n/**\n * Extended Button.\n *\n * All visual values — border radius, padding, font weight, letter spacing,\n * transition timing — come from the active theme's token set via\n * createMuiTheme.ts. No hard-coded CSS values appear here.\n *\n * The `styled()` call accesses the MUI theme (which already has our tokens\n * baked in by createMuiTheme) so every property can reference\n * `theme.tokens.*` for anything not already handled by MUI's style overrides.\n */\nconst StyledButton = styled(MuiButton)(({ theme }) => ({\n // Gap between icon and label — not surfaced by MUI's styleOverrides\n '& .MuiButton-startIcon': {\n marginRight: theme.tokens.components.button.iconGap,\n },\n '& .MuiButton-endIcon': {\n marginLeft: theme.tokens.components.button.iconGap,\n },\n}));\n\nexport function Button({ loading, disabled, children, ...props }: ButtonProps) {\n const baseLabel = props['aria-label'] ?? (typeof children === 'string' ? children : undefined);\n const ariaLabel = loading && baseLabel ? `${baseLabel}, loading` : props['aria-label'];\n\n return (\n <StyledButton\n {...props}\n disabled={disabled || loading}\n aria-busy={loading || undefined}\n aria-label={ariaLabel}\n startIcon={\n loading ? <CircularProgress size={16} color=\"inherit\" /> : props.startIcon\n }\n >\n {children}\n </StyledButton>\n );\n}\n\nButton.displayName = 'ToolkitButton';\n","import React from 'react';\nimport { Chip as MuiChip, ChipProps as MuiChipProps, SvgIcon, SvgIconProps } from '@mui/material';\n\n/**\n * Circular X delete icon — matches the minimals.cc design system.\n * Used as the default deleteIcon when onDelete is provided.\n */\nfunction CircleXIcon(props: SvgIconProps) {\n return (\n <SvgIcon {...props} viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M22 12c0 5.523-4.477 10-10 10S2 17.523 2 12S6.477 2 12 2s10 4.477 10 10M8.97 8.97a.75.75 0 0 1 1.06 0L12 10.94l1.97-1.97a.75.75 0 0 1 1.06 1.06L13.06 12l1.97 1.97a.75.75 0 0 1-1.06 1.06L12 13.06l-1.97 1.97a.75.75 0 0 1-1.06-1.06L10.94 12l-1.97-1.97a.75.75 0 0 1 0-1.06\"\n clipRule=\"evenodd\"\n />\n </SvgIcon>\n );\n}\n\nexport type ChipProps = MuiChipProps;\n\n/**\n * Chip component extending MUI Chip.\n *\n * Adds a `soft` variant (like Button) and `black`/`white` color options.\n * Uses a custom circular-X delete icon by default when `onDelete` is provided.\n *\n * All visual values come from the active theme's token set — no hard-coded CSS.\n */\nexport function Chip({ deleteIcon, onDelete, ...props }: ChipProps) {\n return (\n <MuiChip\n {...props}\n onDelete={onDelete}\n deleteIcon={onDelete ? (deleteIcon ?? <CircleXIcon />) : undefined}\n />\n );\n}\n\nChip.displayName = 'ToolkitChip';\n","import React from 'react';\nimport {\n Card as MuiCard,\n CardContent as MuiCardContent,\n CardHeader as MuiCardHeader,\n CardActions as MuiCardActions,\n CardProps as MuiCardProps,\n CardHeaderProps as MuiCardHeaderProps,\n CardActionsProps as MuiCardActionsProps,\n} from '@mui/material';\nimport { styled } from '@mui/material/styles';\n\nexport interface CardProps extends MuiCardProps {\n /** Use the more compact inner padding variant */\n compact?: boolean;\n}\n\n/**\n * Extended Card.\n *\n * Border radius, padding, shadow, and border colour all come from the\n * active theme tokens — no hard-coded values.\n */\nconst StyledCard = styled(MuiCard, {\n shouldForwardProp: (prop) => prop !== 'compact',\n})<CardProps>(({ theme, compact }) => ({\n padding: compact\n ? theme.tokens.components.card.paddingCompact\n : theme.tokens.components.card.padding,\n // Override MUI CardContent's own padding since we set it at the Card level\n '& .MuiCardContent-root': {\n padding: 0,\n '&:last-child': { paddingBottom: 0 },\n },\n '&:hover': {\n boxShadow: theme.tokens.shadows.md,\n transition: `box-shadow ${theme.tokens.transitions.durationBase} ${theme.tokens.transitions.easingDefault}`,\n },\n}));\n\nexport function Card({ compact, children, ...props }: CardProps) {\n return (\n <StyledCard compact={compact} {...props}>\n {children}\n </StyledCard>\n );\n}\n\n// Re-export MUI sub-components with the same name so consumers get one import\nexport const CardContent = MuiCardContent;\nexport const CardHeader = MuiCardHeader;\nexport const CardActions = MuiCardActions;\n\nexport type { MuiCardHeaderProps as CardHeaderProps, MuiCardActionsProps as CardActionsProps };\n\nCard.displayName = 'ToolkitCard';\n","import React, { useState } from 'react';\nimport {\n TextField as MuiTextField,\n TextFieldProps as MuiTextFieldProps,\n InputAdornment,\n IconButton,\n SvgIcon,\n} from '@mui/material';\nimport { styled } from '@mui/material/styles';\n\nconst VisibilityIcon = (\n <SvgIcon viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5M12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5m0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3\" />\n </SvgIcon>\n);\n\nconst VisibilityOffIcon = (\n <SvgIcon viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75C21.27 5.61 17 2.5 12 2.5c-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 5.13 11.35 5 12 5M2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27M7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2m4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01\" />\n </SvgIcon>\n);\n\nexport type TextFieldProps = MuiTextFieldProps & {\n /** When true and type=\"password\", renders a visibility toggle icon button as end adornment. */\n showPasswordToggle?: boolean;\n};\n\n/**\n * Extended TextField.\n *\n * Border radius, border widths, background colours, and font sizes all\n * come from the active theme tokens. The MUI style overrides in\n * createMuiTheme.ts handle most of the work; this component adds any\n * extras that require the styled() API.\n *\n * Accessibility notes for callers:\n * - Always provide `label`, `aria-label`, or `aria-labelledby` — an unlabelled\n * input is inaccessible to screen readers.\n * - When using `error`, pair it with a descriptive `helperText` so users know\n * what to correct. The helper text is automatically announced as an alert.\n */\nconst StyledTextField = styled(MuiTextField)(({ theme }) => ({\n // Transition on the entire field when focus changes\n '& .MuiOutlinedInput-root': {\n transition: `box-shadow ${theme.tokens.transitions.durationFast} ${theme.tokens.transitions.easingDefault}`,\n '&.Mui-focused': {\n boxShadow: theme.tokens.shadows.xs,\n },\n },\n}));\n\nexport const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\n function TextField({ error, FormHelperTextProps, inputProps, label, showPasswordToggle, type, slotProps, ...props }, ref) {\n const [showPassword, setShowPassword] = useState(false);\n\n if (process.env.NODE_ENV !== 'production') {\n if (!label && !props['aria-label'] && !props['aria-labelledby'] && !inputProps?.['aria-label'] && !inputProps?.['aria-labelledby']) {\n console.warn('[ToolkitTextField] Missing accessible label. Provide `label`, `aria-label`, or `aria-labelledby`.');\n }\n }\n\n const resolvedType = showPasswordToggle && type === 'password'\n ? (showPassword ? 'text' : 'password')\n : type;\n\n const toggleAdornment = showPasswordToggle && type === 'password' ? (\n <InputAdornment position=\"end\">\n <IconButton\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n onClick={() => setShowPassword((prev) => !prev)}\n edge=\"end\"\n >\n {showPassword ? VisibilityOffIcon : VisibilityIcon}\n </IconButton>\n </InputAdornment>\n ) : null;\n\n const mergedSlotProps: TextFieldProps['slotProps'] = toggleAdornment\n ? { ...slotProps, input: { endAdornment: toggleAdornment, ...(slotProps as { input?: object })?.input } }\n : slotProps;\n\n return (\n <StyledTextField\n fullWidth\n variant=\"outlined\"\n label={label}\n error={error}\n type={resolvedType}\n inputRef={ref}\n inputProps={inputProps}\n slotProps={mergedSlotProps}\n FormHelperTextProps={error ? { role: 'alert', ...FormHelperTextProps } : FormHelperTextProps}\n {...props}\n />\n );\n }\n);\n\nTextField.displayName = 'ToolkitTextField';\n","import React from 'react';\nimport {\n Alert as MuiAlert,\n AlertProps as MuiAlertProps,\n AlertTitle as MuiAlertTitle,\n AlertTitleProps as MuiAlertTitleProps,\n SvgIcon,\n} from '@mui/material';\n\nexport type AlertProps = MuiAlertProps;\nexport type AlertTitleProps = MuiAlertTitleProps;\n\n// Custom severity icons matching the minimals.cc design system\nconst InfoIcon = (\n <SvgIcon viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M22 12c0 5.523-4.477 10-10 10S2 17.523 2 12S6.477 2 12 2s10 4.477 10 10m-10 5.75a.75.75 0 0 0 .75-.75v-6a.75.75 0 0 0-1.5 0v6c0 .414.336.75.75.75M12 7a1 1 0 1 1 0 2a1 1 0 0 1 0-2\" clipRule=\"evenodd\" />\n </SvgIcon>\n);\n\nconst SuccessIcon = (\n <SvgIcon viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M22 12c0 5.523-4.477 10-10 10S2 17.523 2 12S6.477 2 12 2s10 4.477 10 10m-5.97-3.03a.75.75 0 0 1 0 1.06l-5 5a.75.75 0 0 1-1.06 0l-2-2a.75.75 0 1 1 1.06-1.06l1.47 1.47l2.235-2.235L14.97 8.97a.75.75 0 0 1 1.06 0\" clipRule=\"evenodd\" />\n </SvgIcon>\n);\n\nconst WarningIcon = (\n <SvgIcon viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M5.312 10.762C8.23 5.587 9.689 3 12 3c2.31 0 3.77 2.587 6.688 7.762l.364.644c2.425 4.3 3.638 6.45 2.542 8.022S17.786 21 12.364 21h-.728c-5.422 0-8.134 0-9.23-1.572s.117-3.722 2.542-8.022zM12 7.25a.75.75 0 0 1 .75.75v5a.75.75 0 0 1-1.5 0V8a.75.75 0 0 1 .75-.75M12 17a1 1 0 1 0 0-2a1 1 0 0 0 0 2\" clipRule=\"evenodd\" />\n </SvgIcon>\n);\n\nconst ErrorIcon = (\n <SvgIcon viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M7.843 3.802C9.872 2.601 10.886 2 12 2c1.114 0 2.128.6 4.157 1.802l.686.406c2.029 1.202 3.043 1.803 3.6 2.792c.557.99.557 2.19.557 4.594v.812c0 2.403 0 3.605-.557 4.594c-.557.99-1.571 1.59-3.6 2.791l-.686.407C14.128 21.399 13.114 22 12 22c-1.114 0-2.128-.6-4.157-1.802l-.686-.407c-2.029-1.2-3.043-1.802-3.6-2.791C3 16.01 3 14.81 3 12.406v-.812C3 9.19 3 7.989 3.557 7c.557-.99 1.571-1.59 3.6-2.792zM13 16a1 1 0 1 1-2 0a1 1 0 0 1 2 0m-1-9.75a.75.75 0 0 1 .75.75v6a.75.75 0 0 1-1.5 0V7a.75.75 0 0 1 .75-.75\" clipRule=\"evenodd\" />\n </SvgIcon>\n);\n\nconst defaultIconMapping: MuiAlertProps['iconMapping'] = {\n info: InfoIcon,\n success: SuccessIcon,\n warning: WarningIcon,\n error: ErrorIcon,\n};\n\n/**\n * Extended Alert.\n *\n * Supports all three MUI variants (standard, filled, outlined) across all\n * four severities (info, success, warning, error). Uses custom minimals-style\n * severity icons by default; override via the `iconMapping` prop.\n *\n * Visual values come from the active theme tokens — no hard-coded CSS.\n */\nexport function Alert({ iconMapping, ...props }: AlertProps) {\n return <MuiAlert iconMapping={{ ...defaultIconMapping, ...iconMapping }} {...props} />;\n}\n\nexport function AlertTitle(props: AlertTitleProps) {\n return <MuiAlertTitle {...props} />;\n}\n\nAlert.displayName = 'ToolkitAlert';\nAlertTitle.displayName = 'ToolkitAlertTitle';\n","import React from 'react';\nimport {\n Accordion as MuiAccordion,\n AccordionProps as MuiAccordionProps,\n AccordionSummary as MuiAccordionSummary,\n AccordionSummaryProps as MuiAccordionSummaryProps,\n AccordionDetails as MuiAccordionDetails,\n AccordionDetailsProps as MuiAccordionDetailsProps,\n} from '@mui/material';\nimport { styled } from '@mui/material/styles';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\n\nexport type AccordionProps = MuiAccordionProps;\nexport type AccordionSummaryProps = MuiAccordionSummaryProps;\nexport type AccordionDetailsProps = MuiAccordionDetailsProps;\n\n/**\n * Standalone accordion variant — each item is its own card with a\n * subtle grey background. Expands to a slightly darker tint.\n * Drop-in replacement for Accordion in contexts where you want\n * independent card-per-item styling.\n */\nexport const StandaloneAccordion = styled(MuiAccordion)(({ theme }) => ({\n borderRadius: `${theme.tokens.components.accordion.standaloneRadius} !important`,\n backgroundColor: theme.tokens.components.accordion.standaloneBackground,\n boxShadow: 'none',\n marginBottom: theme.spacing(1),\n '&.Mui-expanded': {\n backgroundColor: theme.tokens.components.accordion.standaloneBackgroundExpanded,\n margin: `0 0 ${theme.spacing(1)}`,\n },\n '& .MuiAccordionSummary-root': {\n padding: `${theme.tokens.components.accordion.summaryPaddingY} ${theme.tokens.components.accordion.summaryPaddingX}`,\n },\n '& .MuiAccordionDetails-root': {\n padding: `0 ${theme.tokens.components.accordion.detailsPaddingX} ${theme.tokens.components.accordion.detailsPaddingBottom}`,\n },\n}));\n\nexport function Accordion(props: AccordionProps) {\n return <MuiAccordion {...props} />;\n}\n\n/**\n * Renders the clickable header of an accordion panel.\n *\n * A default expand/collapse chevron is injected automatically; pass\n * `expandIcon` to override it.\n *\n * For reliable screen-reader support, pair `id` on this component with\n * a matching `aria-controls` pointing to the AccordionDetails panel id,\n * or let MUI auto-generate them by passing a consistent `id` to the\n * parent Accordion:\n *\n * <Accordion>\n * <AccordionSummary id=\"panel1-header\" aria-controls=\"panel1-content\">\n * Title\n * </AccordionSummary>\n * <AccordionDetails id=\"panel1-content\">…</AccordionDetails>\n * </Accordion>\n */\nexport function AccordionSummary({ expandIcon, ...props }: AccordionSummaryProps) {\n return (\n <MuiAccordionSummary expandIcon={expandIcon ?? <ExpandMoreIcon />} {...props} />\n );\n}\n\nexport function AccordionDetails(props: AccordionDetailsProps) {\n return <MuiAccordionDetails {...props} />;\n}\n\nAccordion.displayName = 'ToolkitAccordion';\nAccordionSummary.displayName = 'ToolkitAccordionSummary';\nAccordionDetails.displayName = 'ToolkitAccordionDetails';\nStandaloneAccordion.displayName = 'ToolkitStandaloneAccordion';\n","import React from 'react';\nimport MuiAvatar, { AvatarProps as MuiAvatarProps } from '@mui/material/Avatar';\nimport { styled } from '@mui/material/styles';\nimport { ThemeTokens } from '../../themes/tokens';\nexport { default as AvatarGroup } from '@mui/material/AvatarGroup';\nexport type { AvatarGroupProps } from '@mui/material/AvatarGroup';\n\nexport type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';\n\nexport interface AvatarProps extends Omit<MuiAvatarProps, 'ref'> {\n size?: AvatarSize;\n}\n\nexport function getDimension(avatar: ThemeTokens['components']['avatar'], size: AvatarSize): string {\n const map: Record<AvatarSize, string> = {\n xs: avatar.sizeXs,\n sm: avatar.sizeSm,\n md: avatar.sizeMd,\n lg: avatar.sizeLg,\n xl: avatar.sizeXl,\n xxl: avatar.sizeXxl,\n };\n return map[size];\n}\n\nconst StyledAvatar = styled(MuiAvatar, {\n shouldForwardProp: (prop) => prop !== 'size',\n})<AvatarProps>(({ theme, size = 'md' }) => {\n const dimension = getDimension(theme.tokens.components.avatar, size);\n return {\n width: dimension,\n height: dimension,\n };\n});\n\nexport function Avatar({ size = 'md', ...props }: AvatarProps) {\n return <StyledAvatar size={size} {...props} />;\n}\n","import {\n ToggleButton as MuiToggleButton,\n ToggleButtonProps as MuiToggleButtonProps,\n ToggleButtonGroup as MuiToggleButtonGroup,\n ToggleButtonGroupProps as MuiToggleButtonGroupProps,\n} from '@mui/material';\n\nexport type ToggleButtonProps = MuiToggleButtonProps;\nexport type ToggleButtonGroupProps = MuiToggleButtonGroupProps;\n\nexport function ToggleButton(props: ToggleButtonProps) {\n return <MuiToggleButton {...props} />;\n}\nToggleButton.displayName = 'ToolkitToggleButton';\n\nexport function ToggleButtonGroup(props: ToggleButtonGroupProps) {\n return <MuiToggleButtonGroup {...props} />;\n}\nToggleButtonGroup.displayName = 'ToolkitToggleButtonGroup';\n","import React, { useState } from 'react';\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\nimport {\n DatePicker as MuiDatePicker,\n DatePickerProps as MuiDatePickerProps,\n} from '@mui/x-date-pickers/DatePicker';\nimport {\n DesktopDatePicker as MuiDesktopDatePicker,\n DesktopDatePickerProps as MuiDesktopDatePickerProps,\n} from '@mui/x-date-pickers/DesktopDatePicker';\nimport {\n MobileDatePicker as MuiMobileDatePicker,\n MobileDatePickerProps as MuiMobileDatePickerProps,\n} from '@mui/x-date-pickers/MobileDatePicker';\nimport {\n DateField as MuiDateField,\n DateFieldProps as MuiDateFieldProps,\n} from '@mui/x-date-pickers/DateField';\nimport {\n StaticDatePicker as MuiStaticDatePicker,\n StaticDatePickerProps as MuiStaticDatePickerProps,\n} from '@mui/x-date-pickers/StaticDatePicker';\nimport {\n TimePicker as MuiTimePicker,\n TimePickerProps as MuiTimePickerProps,\n} from '@mui/x-date-pickers/TimePicker';\nimport {\n DesktopTimePicker as MuiDesktopTimePicker,\n DesktopTimePickerProps as MuiDesktopTimePickerProps,\n} from '@mui/x-date-pickers/DesktopTimePicker';\nimport {\n MobileTimePicker as MuiMobileTimePicker,\n MobileTimePickerProps as MuiMobileTimePickerProps,\n} from '@mui/x-date-pickers/MobileTimePicker';\nimport {\n TimeField as MuiTimeField,\n TimeFieldProps as MuiTimeFieldProps,\n} from '@mui/x-date-pickers/TimeField';\nimport {\n StaticTimePicker as MuiStaticTimePicker,\n StaticTimePickerProps as MuiStaticTimePickerProps,\n} from '@mui/x-date-pickers/StaticTimePicker';\nimport {\n DateTimePicker as MuiDateTimePicker,\n DateTimePickerProps as MuiDateTimePickerProps,\n} from '@mui/x-date-pickers/DateTimePicker';\nimport {\n DesktopDateTimePicker as MuiDesktopDateTimePicker,\n DesktopDateTimePickerProps as MuiDesktopDateTimePickerProps,\n} from '@mui/x-date-pickers/DesktopDateTimePicker';\nimport {\n MobileDateTimePicker as MuiMobileDateTimePicker,\n MobileDateTimePickerProps as MuiMobileDateTimePickerProps,\n} from '@mui/x-date-pickers/MobileDateTimePicker';\nimport {\n DateTimeField as MuiDateTimeField,\n DateTimeFieldProps as MuiDateTimeFieldProps,\n} from '@mui/x-date-pickers/DateTimeField';\nimport {\n StaticDateTimePicker as MuiStaticDateTimePicker,\n StaticDateTimePickerProps as MuiStaticDateTimePickerProps,\n} from '@mui/x-date-pickers/StaticDateTimePicker';\nimport {\n DateCalendar as MuiDateCalendar,\n DateCalendarProps as MuiDateCalendarProps,\n} from '@mui/x-date-pickers/DateCalendar';\nimport type { Dayjs } from 'dayjs';\nimport Dialog from '@mui/material/Dialog';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport Button from '@mui/material/Button';\nimport Box from '@mui/material/Box';\nimport TextField from '@mui/material/TextField';\nimport { styled } from '@mui/material/styles';\n\n// ─── Re-export types ────────────────────────────────────────────────────────────\n// MUI X v8 removed the date-value generic from component props — types are inferred\n// from the adapter registered via LocalizationProvider.\n\nexport type DatePickerProps = MuiDatePickerProps;\nexport type DesktopDatePickerProps = MuiDesktopDatePickerProps;\nexport type MobileDatePickerProps = MuiMobileDatePickerProps;\nexport type DateFieldProps = MuiDateFieldProps;\nexport type StaticDatePickerProps = MuiStaticDatePickerProps;\nexport type TimePickerProps = MuiTimePickerProps;\nexport type DesktopTimePickerProps = MuiDesktopTimePickerProps;\nexport type MobileTimePickerProps = MuiMobileTimePickerProps;\nexport type TimeFieldProps = MuiTimeFieldProps;\nexport type StaticTimePickerProps = MuiStaticTimePickerProps;\nexport type DateTimePickerProps = MuiDateTimePickerProps;\nexport type DesktopDateTimePickerProps = MuiDesktopDateTimePickerProps;\nexport type MobileDateTimePickerProps = MuiMobileDateTimePickerProps;\nexport type DateTimeFieldProps = MuiDateTimeFieldProps;\nexport type StaticDateTimePickerProps = MuiStaticDateTimePickerProps;\nexport type DateCalendarProps = MuiDateCalendarProps;\n\n// ─── Provider ──────────────────────────────────────────────────────────────────\n\nexport interface DateLocalizationProviderProps {\n children: React.ReactNode;\n}\n\nexport function DateLocalizationProvider({ children }: DateLocalizationProviderProps) {\n return (\n <LocalizationProvider dateAdapter={AdapterDayjs}>\n {children}\n </LocalizationProvider>\n );\n}\n\nDateLocalizationProvider.displayName = 'ToolkitDateLocalizationProvider';\n\n// ─── Date Pickers ──────────────────────────────────────────────────────────────\n\nexport function DatePicker(props: DatePickerProps) {\n return <MuiDatePicker {...props} />;\n}\nDatePicker.displayName = 'ToolkitDatePicker';\n\nexport function DesktopDatePicker(props: DesktopDatePickerProps) {\n return <MuiDesktopDatePicker {...props} />;\n}\nDesktopDatePicker.displayName = 'ToolkitDesktopDatePicker';\n\nexport function MobileDatePicker(props: MobileDatePickerProps) {\n return <MuiMobileDatePicker {...props} />;\n}\nMobileDatePicker.displayName = 'ToolkitMobileDatePicker';\n\nexport function DateField(props: DateFieldProps) {\n return <MuiDateField {...props} />;\n}\nDateField.displayName = 'ToolkitDateField';\n\nexport function StaticDatePicker(props: StaticDatePickerProps) {\n return <MuiStaticDatePicker {...props} />;\n}\nStaticDatePicker.displayName = 'ToolkitStaticDatePicker';\n\n// ─── Time Pickers ──────────────────────────────────────────────────────────────\n\nexport function TimePicker(props: TimePickerProps) {\n return <MuiTimePicker {...props} />;\n}\nTimePicker.displayName = 'ToolkitTimePicker';\n\nexport function DesktopTimePicker(props: DesktopTimePickerProps) {\n return <MuiDesktopTimePicker {...props} />;\n}\nDesktopTimePicker.displayName = 'ToolkitDesktopTimePicker';\n\nexport function MobileTimePicker(props: MobileTimePickerProps) {\n return <MuiMobileTimePicker {...props} />;\n}\nMobileTimePicker.displayName = 'ToolkitMobileTimePicker';\n\nexport function TimeField(props: TimeFieldProps) {\n return <MuiTimeField {...props} />;\n}\nTimeField.displayName = 'ToolkitTimeField';\n\nexport function StaticTimePicker(props: StaticTimePickerProps) {\n return <MuiStaticTimePicker {...props} />;\n}\nStaticTimePicker.displayName = 'ToolkitStaticTimePicker';\n\n// ─── Date Time Pickers ─────────────────────────────────────────────────────────\n\nexport function DateTimePicker(props: DateTimePickerProps) {\n return <MuiDateTimePicker {...props} />;\n}\nDateTimePicker.displayName = 'ToolkitDateTimePicker';\n\nexport function DesktopDateTimePicker(props: DesktopDateTimePickerProps) {\n return <MuiDesktopDateTimePicker {...props} />;\n}\nDesktopDateTimePicker.displayName = 'ToolkitDesktopDateTimePicker';\n\nexport function MobileDateTimePicker(props: MobileDateTimePickerProps) {\n return <MuiMobileDateTimePicker {...props} />;\n}\nMobileDateTimePicker.displayName = 'ToolkitMobileDateTimePicker';\n\nexport function DateTimeField(props: DateTimeFieldProps) {\n return <MuiDateTimeField {...props} />;\n}\nDateTimeField.displayName = 'ToolkitDateTimeField';\n\nexport function StaticDateTimePicker(props: StaticDateTimePickerProps) {\n return <MuiStaticDateTimePicker {...props} />;\n}\nStaticDateTimePicker.displayName = 'ToolkitStaticDateTimePicker';\n\nexport function DateCalendar(props: DateCalendarProps) {\n return <MuiDateCalendar {...props} />;\n}\nDateCalendar.displayName = 'ToolkitDateCalendar';\n\n// ─── Custom Range Picker ────────────────────────────────────────────────────────\n\nexport interface DateRangeValue {\n start: Dayjs | null;\n end: Dayjs | null;\n}\n\nexport interface DateRangePickerInputProps {\n value: DateRangeValue;\n onChange: (value: DateRangeValue) => void;\n startLabel?: string;\n endLabel?: string;\n buttonLabel?: string;\n}\n\nconst RangeRow = styled(Box)(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(2),\n alignItems: 'center',\n}));\n\nexport function DateRangePickerInput({\n value,\n onChange,\n startLabel = 'Start date',\n endLabel = 'End date',\n buttonLabel = 'Click me!',\n}: DateRangePickerInputProps) {\n const [open, setOpen] = useState(false);\n const [draft, setDraft] = useState<DateRangeValue>(value);\n\n const handleOpen = () => {\n setDraft(value);\n setOpen(true);\n };\n\n const handleCancel = () => setOpen(false);\n\n const handleOk = () => {\n onChange(draft);\n setOpen(false);\n };\n\n return (\n <>\n <Button variant=\"contained\" color=\"inherit\" disableElevation onClick={handleOpen}>\n {buttonLabel}\n </Button>\n <Dialog open={open} onClose={handleCancel} maxWidth=\"sm\" fullWidth>\n <DialogContent>\n <RangeRow>\n <MuiDatePicker\n label={startLabel}\n value={draft.start}\n onChange={(v) => setDraft((prev) => ({ ...prev, start: v }))}\n slotProps={{ textField: { fullWidth: true } }}\n />\n <MuiDatePicker\n label={endLabel}\n value={draft.end}\n onChange={(v) => setDraft((prev) => ({ ...prev, end: v }))}\n slotProps={{ textField: { fullWidth: true } }}\n />\n </RangeRow>\n </DialogContent>\n <DialogActions>\n <Button onClick={handleCancel} color=\"inherit\">Cancel</Button>\n <Button onClick={handleOk} color=\"inherit\">OK</Button>\n </DialogActions>\n </Dialog>\n </>\n );\n}\n\nDateRangePickerInput.displayName = 'ToolkitDateRangePickerInput';\n\nexport interface DateRangePickerCalendarProps {\n value: DateRangeValue;\n onChange: (value: DateRangeValue) => void;\n buttonLabel?: string;\n}\n\nexport function DateRangePickerCalendar({\n value,\n onChange,\n buttonLabel = 'Click me!',\n}: DateRangePickerCalendarProps) {\n const [open, setOpen] = useState(false);\n const [draft, setDraft] = useState<DateRangeValue>(value);\n const [selecting, setSelecting] = useState<'start' | 'end'>('start');\n\n const handleOpen = () => {\n setDraft(value);\n setSelecting('start');\n setOpen(true);\n };\n\n const handleCancel = () => setOpen(false);\n\n const handleOk = () => {\n onChange(draft);\n setOpen(false);\n };\n\n const handleDaySelect = (date: Dayjs | null) => {\n if (selecting === 'start') {\n setDraft({ start: date, end: null });\n setSelecting('end');\n } else {\n setDraft((prev) => ({ ...prev, end: date }));\n }\n };\n\n return (\n <>\n <Button variant=\"contained\" color=\"inherit\" disableElevation onClick={handleOpen}>\n {buttonLabel}\n </Button>\n <Dialog open={open} onClose={handleCancel}>\n <DialogContent sx={{ p: 1 }}>\n <Box sx={{ mb: 1, px: 1 }}>\n <TextField\n size=\"small\"\n label=\"Selecting\"\n value={selecting === 'start' ? 'Start date' : 'End date'}\n inputProps={{ readOnly: true }}\n fullWidth\n />\n </Box>\n <MuiDateCalendar\n value={selecting === 'start' ? draft.start : draft.end}\n onChange={handleDaySelect}\n />\n </DialogContent>\n <DialogActions>\n <Button onClick={handleCancel} color=\"inherit\">Cancel</Button>\n <Button onClick={handleOk} color=\"inherit\">OK</Button>\n </DialogActions>\n </Dialog>\n </>\n );\n}\n\nDateRangePickerCalendar.displayName = 'ToolkitDateRangePickerCalendar';\n","import { Grid2 as MuiGrid2, Grid2Props as MuiGrid2Props } from '@mui/material';\n\nexport type GridProps = MuiGrid2Props;\n\n/**\n * 12-column layout grid, based on MUI Grid2.\n *\n * Use `container` on the wrapper and `size` on children to set column spans.\n * `size` accepts a number (fixed across all breakpoints) or a responsive\n * object mapping breakpoints to spans:\n *\n * size={6} // 6/12 at all sizes\n * size={{ xs: 12, md: 6 }} // full width → half width\n * size=\"grow\" // fills remaining space\n * size=\"auto\" // shrinks to content\n *\n * Spacing multiplies the theme spacing unit (8px):\n * spacing={1} → 8px gap\n * spacing={2} → 16px gap (default on containers)\n * spacing={3} → 24px gap\n * spacing={4} → 32px gap\n * spacing={5} → 40px gap\n *\n * @example\n * // 2-column layout, 16px gap, stacks on mobile\n * <Grid container spacing={2}>\n * <Grid size={{ xs: 12, md: 6 }}>Left</Grid>\n * <Grid size={{ xs: 12, md: 6 }}>Right</Grid>\n * </Grid>\n *\n * @example\n * // 4-column card grid\n * <Grid container spacing={3}>\n * {items.map((item) => (\n * <Grid key={item.id} size={{ xs: 12, sm: 6, md: 3 }}>\n * <Card>…</Card>\n * </Grid>\n * ))}\n * </Grid>\n */\nexport function Grid({ container, spacing, ...props }: GridProps) {\n return (\n <MuiGrid2\n container={container}\n spacing={container && spacing === undefined ? 2 : spacing}\n {...props}\n />\n );\n}\n\nGrid.displayName = 'ToolkitGrid';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface H1Props extends Omit<TypographyProps, 'variant'> {}\n\nexport function H1({ color = 'text.primary', children, ...props }: H1Props) {\n return (\n <Typography variant=\"h1\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nH1.displayName = 'ToolkitH1';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface H2Props extends Omit<TypographyProps, 'variant'> {}\n\nexport function H2({ color = 'text.primary', children, ...props }: H2Props) {\n return (\n <Typography variant=\"h2\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nH2.displayName = 'ToolkitH2';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface H3Props extends Omit<TypographyProps, 'variant'> {}\n\nexport function H3({ color = 'text.primary', children, ...props }: H3Props) {\n return (\n <Typography variant=\"h3\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nH3.displayName = 'ToolkitH3';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface H4Props extends Omit<TypographyProps, 'variant'> {}\n\nexport function H4({ color = 'text.primary', children, ...props }: H4Props) {\n return (\n <Typography variant=\"h4\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nH4.displayName = 'ToolkitH4';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface H5Props extends Omit<TypographyProps, 'variant'> {}\n\nexport function H5({ color = 'text.primary', children, ...props }: H5Props) {\n return (\n <Typography variant=\"h5\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nH5.displayName = 'ToolkitH5';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface H6Props extends Omit<TypographyProps, 'variant'> {}\n\nexport function H6({ color = 'text.primary', children, ...props }: H6Props) {\n return (\n <Typography variant=\"h6\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nH6.displayName = 'ToolkitH6';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface Subtitle1Props extends Omit<TypographyProps, 'variant'> {}\n\nexport function Subtitle1({ color = 'text.primary', children, ...props }: Subtitle1Props) {\n return (\n <Typography variant=\"subtitle1\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nSubtitle1.displayName = 'ToolkitSubtitle1';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface Subtitle2Props extends Omit<TypographyProps, 'variant'> {}\n\nexport function Subtitle2({ color = 'text.primary', children, ...props }: Subtitle2Props) {\n return (\n <Typography variant=\"subtitle2\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nSubtitle2.displayName = 'ToolkitSubtitle2';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface Body1Props extends Omit<TypographyProps, 'variant'> {}\n\nexport function Body1({ color = 'text.primary', children, ...props }: Body1Props) {\n return (\n <Typography variant=\"body1\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nBody1.displayName = 'ToolkitBody1';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface Body2Props extends Omit<TypographyProps, 'variant'> {}\n\nexport function Body2({ color = 'text.primary', children, ...props }: Body2Props) {\n return (\n <Typography variant=\"body2\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nBody2.displayName = 'ToolkitBody2';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface CaptionProps extends Omit<TypographyProps, 'variant'> {}\n\nexport function Caption({ color = 'text.primary', children, ...props }: CaptionProps) {\n return (\n <Typography variant=\"caption\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nCaption.displayName = 'ToolkitCaption';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface OverlineProps extends Omit<TypographyProps, 'variant'> {}\n\nexport function Overline({ color = 'text.primary', children, ...props }: OverlineProps) {\n return (\n <Typography variant=\"overline\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nOverline.displayName = 'ToolkitOverline';\n","import React from 'react';\nimport { Typography, TypographyProps } from '@mui/material';\n\nexport interface TypographyButtonProps extends Omit<TypographyProps, 'variant'> {}\n\nexport function TypographyButton({ color = 'text.primary', children, ...props }: TypographyButtonProps) {\n return (\n <Typography variant=\"button\" color={color} {...props}>\n {children}\n </Typography>\n );\n}\nTypographyButton.displayName = 'ToolkitTypographyButton';\n"],"mappings":";AACA,SAAS,iBAAiB,kBAAkB,mBAAmB;;;ACU/D,IAAM,eAA4B;AAAA,EAChC,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,aAAa;AAAA,IACb,cAAc;AAAA,IACd,iBAAiB;AAAA,IAEjB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,mBAAmB;AAAA,IAEnB,SAAS;AAAA,IACT,SAAS;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IAEN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAElB,aAAa;AAAA,IACb,eAAe;AAAA,IACf,cAAc;AAAA,IAEd,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,aAAa;AAAA,IAEb,cAAc;AAAA,IACd,aAAa;AAAA,IAEb,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAEhB,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,WAAW;AAAA,EACb;AAAA,EAEA,YAAY;AAAA,IACV,gBAAgB;AAAA,IAChB,gBAAgB;AAAA;AAAA,IAGhB,YAAY;AAAA;AAAA,IACZ,YAAY;AAAA;AAAA,IACZ,YAAY;AAAA;AAAA,IACZ,YAAY;AAAA;AAAA,IACZ,YAAY;AAAA;AAAA,IACZ,aAAa;AAAA;AAAA,IACb,aAAa;AAAA;AAAA,IACb,aAAa;AAAA;AAAA;AAAA,IAGb,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB,kBAAkB;AAAA,IAClB,oBAAoB;AAAA,IACpB,gBAAgB;AAAA,IAEhB,iBAAiB;AAAA,IACjB,gBAAgB;AAAA,IAChB,mBAAmB;AAAA,IAEnB,oBAAoB;AAAA,IACpB,mBAAmB;AAAA,IACnB,mBAAmB;AAAA,EACrB;AAAA;AAAA,EAGA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,KAAK;AAAA,EACP;AAAA,EAEA,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,MAAM;AAAA,EACR;AAAA,EAEA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AAAA,EAEA,aAAa;AAAA,IACX,cAAc;AAAA,IACd,cAAc;AAAA,IACd,cAAc;AAAA,IACd,eAAe;AAAA,IACf,UAAU;AAAA,IACV,WAAW;AAAA,EACb;AAAA;AAAA,EAGA,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SAAS;AAAA,EACX;AAAA,EAEA,YAAY;AAAA,IACV,QAAQ;AAAA,MACN,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,MACX,gBAAgB;AAAA,IAClB;AAAA,IAEA,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,QAAQ;AAAA;AAAA,MAEN,UAAU;AAAA,MACV,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,MAEV,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,eAAe;AAAA,MACf,SAAS;AAAA;AAAA,MAET,cAAc;AAAA,MACd,UAAU;AAAA,IACZ;AAAA,IAEA,OAAO;AAAA;AAAA,MAEL,UAAU;AAAA,MACV,UAAU;AAAA,MACV,kBAAkB;AAAA,MAClB,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,gBAAgB;AAAA;AAAA,MAEhB,cAAc;AAAA,MACd,aAAa;AAAA,MACb,oBAAoB;AAAA,MACpB,WAAW;AAAA,IACb;AAAA,IAEA,MAAM;AAAA;AAAA,MAEJ,SAAS;AAAA,MACT,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,YAAY;AAAA;AAAA,MAEZ,cAAc;AAAA,IAChB;AAAA;AAAA,IAGA,MAAM;AAAA,MACJ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,UAAU;AAAA,MACV,cAAc;AAAA,MACd,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,UAAU;AAAA,IACZ;AAAA;AAAA,IAGA,OAAO;AAAA,MACL,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,UAAU;AAAA,MACV,cAAc;AAAA,MACd,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,aAAa;AAAA,IACf;AAAA,IAEA,SAAS;AAAA,MACP,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,MACV,OAAO;AAAA;AAAA,MAEP,cAAc;AAAA,MACd,YAAY;AAAA,IACd;AAAA,IAEA,QAAQ;AAAA;AAAA,MAEN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,YAAY;AAAA;AAAA,MAEZ,cAAc;AAAA,IAChB;AAAA,IAEA,OAAO;AAAA;AAAA,MAEL,cAAc;AAAA,MACd,kBAAkB;AAAA,MAClB,aAAa;AAAA;AAAA,MAEb,cAAc;AAAA,MACd,kBAAkB;AAAA,MAClB,oBAAoB;AAAA,MACpB,aAAa;AAAA,IACf;AAAA,IAEA,QAAQ;AAAA;AAAA,MAEN,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,SAAS;AAAA;AAAA,MAET,cAAc;AAAA,MACd,cAAc;AAAA,MACd,kBAAkB;AAAA;AAAA,MAElB,qBAAqB;AAAA,IACvB;AAAA,IAEA,SAAS;AAAA,MACP,WAAW;AAAA;AAAA,MAEX,OAAO;AAAA,IACT;AAAA,IAEA,OAAO;AAAA;AAAA,MAEL,SAAS;AAAA;AAAA,MAET,cAAc;AAAA,IAChB;AAAA,IAEA,WAAW;AAAA;AAAA,MAET,kBAAkB;AAAA,MAClB,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,mBAAmB;AAAA,MACnB,iBAAiB;AAAA,MACjB,sBAAsB;AAAA,MACtB,sBAAsB;AAAA,MACtB,8BAA8B;AAAA;AAAA,MAE9B,cAAc;AAAA,IAChB;AAAA,IAEA,cAAc;AAAA,MACZ,cAAc;AAAA,MACd,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,EACF;AACF;AAEA,IAAO,uBAAQ;;;AC9Tf,SAAS,cAAc,KAA8C;AACnE,SAAO,OAAO,QAAQ,YAAY,QAAQ,QAAQ,CAAC,MAAM,QAAQ,GAAG;AACtE;AAEA,SAAS,UAAa,MAAS,WAAuC;AACpE,QAAM,SAAkC,EAAE,GAAI,KAAiC;AAC/E,aAAW,OAAO,OAAO,KAAK,SAAS,GAAG;AACxC,UAAM,UAAU,OAAO,GAAG;AAC1B,UAAM,cAAc,UAAU,GAAG;AACjC,QAAI,cAAc,OAAO,KAAK,cAAc,WAAW,GAAG;AACxD,aAAO,GAAG,IAAI,UAAU,SAAS,WAAW;AAAA,IAC9C,WAAW,gBAAgB,QAAW;AACpC,aAAO,GAAG,IAAI;AAAA,IAChB;AAAA,EACF;AACA,SAAO;AACT;AAOO,SAAS,WAAW,MAAmB,WAAwC;AACpF,SAAO,UAAU,MAAM,SAAoC;AAC7D;;;ACnBA,IAAM,kBAAkC;AAAA,EACtC,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,aAAa;AAAA,IACb,cAAc;AAAA,IACd,iBAAiB;AAAA,IAEjB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,mBAAmB;AAAA,IAEnB,SAAS;AAAA,IACT,SAAS;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IAEN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAElB,aAAa;AAAA,IACb,eAAe;AAAA,IACf,cAAc;AAAA,IAEd,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,aAAa;AAAA,IAEb,cAAc;AAAA,IACd,aAAa;AAAA,EACf;AAAA,EAEA,YAAY;AAAA,IACV,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,gBAAgB;AAAA,IAChB,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,mBAAmB;AAAA,EACrB;AAAA,EAEA,cAAc;AAAA,IACZ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AAAA,EAEA,SAAS;AAAA,IACP,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AAAA,EAEA,aAAa;AAAA,IACX,cAAc;AAAA,IACd,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EAEA,YAAY;AAAA,IACV,QAAQ,EAAE,cAAc,MAAM;AAAA,IAC9B,OAAO;AAAA,MACL,cAAc;AAAA,MACd,aAAa;AAAA,MACb,oBAAoB;AAAA,MACpB,WAAW;AAAA,IACb;AAAA,IACA,MAAM,EAAE,cAAc,OAAO;AAAA,IAC7B,SAAS;AAAA,MACP,cAAc;AAAA,MACd,YAAY;AAAA,IACd;AAAA,IACA,QAAQ,EAAE,cAAc,OAAO;AAAA,IAC/B,OAAO;AAAA,MACL,cAAc;AAAA,MACd,kBAAkB;AAAA,MAClB,oBAAoB;AAAA,MACpB,aAAa;AAAA,IACf;AAAA,IACA,QAAQ,EAAE,qBAAqB,OAAO;AAAA,IACtC,SAAS,EAAE,OAAO,UAAU;AAAA,IAC5B,OAAO,EAAE,cAAc,MAAM;AAAA,IAC7B,WAAW,EAAE,cAAc,MAAM;AAAA,EACnC;AACF;AAEA,IAAO,iBAAQ;;;AC3Ff,IAAM,kBAAkC;AAAA,EACtC,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,aAAa;AAAA,IACb,cAAc;AAAA,IACd,iBAAiB;AAAA,IAEjB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,mBAAmB;AAAA,IAEnB,SAAS;AAAA,IACT,SAAS;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IAEN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAElB,aAAa;AAAA,IACb,eAAe;AAAA,IACf,cAAc;AAAA,IAEd,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,aAAa;AAAA,IAEb,cAAc;AAAA,IACd,aAAa;AAAA,EACf;AAAA,EAEA,YAAY;AAAA,IACV,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,gBAAgB;AAAA,IAChB,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,mBAAmB;AAAA,EACrB;AAAA,EAEA,cAAc;AAAA,IACZ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AAAA,EAEA,SAAS;AAAA,IACP,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AAAA,EAEA,aAAa;AAAA,IACX,cAAc;AAAA,IACd,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EAEA,YAAY;AAAA,IACV,QAAQ,EAAE,cAAc,OAAO;AAAA,IAC/B,OAAO;AAAA,MACL,cAAc;AAAA,MACd,aAAa;AAAA,MACb,oBAAoB;AAAA,MACpB,WAAW;AAAA,IACb;AAAA,IACA,MAAM,EAAE,cAAc,OAAO;AAAA,IAC7B,SAAS;AAAA,MACP,cAAc;AAAA,MACd,YAAY;AAAA,IACd;AAAA,IACA,QAAQ,EAAE,cAAc,OAAO;AAAA,IAC/B,OAAO;AAAA,MACL,cAAc;AAAA,MACd,kBAAkB;AAAA,MAClB,oBAAoB;AAAA,MACpB,aAAa;AAAA,IACf;AAAA,IACA,QAAQ,EAAE,qBAAqB,OAAO;AAAA,IACtC,SAAS,EAAE,OAAO,UAAU;AAAA,IAC5B,OAAO,EAAE,cAAc,OAAO;AAAA,IAC9B,WAAW,EAAE,cAAc,OAAO;AAAA,EACpC;AACF;AAEA,IAAO,iBAAQ;;;AChGf,IAAM,oBAAoC,CAC1C;AAEA,IAAO,cAAQ;;;ACSf,IAAM,gBAAmD;AAAA,EACvD,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,UAAU;AACZ;AAOO,SAAS,eAAe,MAA8B;AAC3D,QAAM,YAAY,cAAc,IAAI;AACpC,MAAI,CAAC,WAAW;AACd,UAAM,YAAY,OAAO,KAAK,aAAa,EAAE,KAAK,IAAI;AACtD,UAAM,IAAI,MAAM,kBAAkB,IAAI,wBAAwB,SAAS,EAAE;AAAA,EAC3E;AACA,SAAO,WAAW,sBAAc,SAAS;AAC3C;;;ACfO,SAAS,mBAA8B;AAE5C,QAAM,gBACJ,OAAQ,aAAqB,QAAQ,WAAY,YAAoB,MAAM;AAG7E,QAAM,MACJ,iBACC,OAAO,eAAe,eAAgB,WAAmB,SAAS,OACnE,CAAC;AAEH,QAAM,MAAM,IAAI,YAAY,KAAK,IAAI,iBAAiB,KAAK,IAAI,mBAAmB,KAAK;AAEvF,SAAO;AACT;;;AClCA,SAAS,aAAoB,OAAO,cAAc;AAc3C,SAAS,eAAe,QAA4B;AACzD,SAAO,YAAY;AAAA,IACjB,SAAS;AAAA,MACP,SAAS;AAAA,QACP,MAAM,OAAO,OAAO;AAAA,QACpB,MAAM,OAAO,OAAO;AAAA,QACpB,OAAO,OAAO,OAAO;AAAA,QACrB,cAAc,OAAO,OAAO;AAAA,MAC9B;AAAA,MACA,WAAW;AAAA,QACT,MAAM,OAAO,OAAO;AAAA,QACpB,MAAM,OAAO,OAAO;AAAA,QACpB,OAAO,OAAO,OAAO;AAAA,QACrB,cAAc,OAAO,OAAO;AAAA,MAC9B;AAAA,MACA,SAAS,EAAE,MAAM,OAAO,OAAO,QAAQ;AAAA,MACvC,SAAS,EAAE,MAAM,OAAO,OAAO,QAAQ;AAAA,MACvC,OAAO,EAAE,MAAM,OAAO,OAAO,MAAM;AAAA,MACnC,MAAM,EAAE,MAAM,OAAO,OAAO,KAAK;AAAA,MACjC,YAAY;AAAA,QACV,SAAS,OAAO,OAAO;AAAA,QACvB,OAAO,OAAO,OAAO;AAAA,QACrB,QAAQ,OAAO,OAAO;AAAA,MACxB;AAAA,MACA,QAAQ,OAAO,OAAO;AAAA,MACtB,MAAM;AAAA,QACJ,SAAS,OAAO,OAAO;AAAA,QACvB,WAAW,OAAO,OAAO;AAAA,QACzB,UAAU,OAAO,OAAO;AAAA,MAC1B;AAAA,MACA,SAAS,OAAO,OAAO;AAAA,IACzB;AAAA,IAEA,YAAY;AAAA,MACV,YAAY,OAAO,WAAW;AAAA,MAC9B,iBAAiB,OAAO,WAAW;AAAA,MACnC,mBAAmB,OAAO,WAAW;AAAA,MACrC,kBAAkB,OAAO,WAAW;AAAA,MACpC,gBAAgB,OAAO,WAAW;AAAA,MAClC,UAAU;AAAA;AAAA,IACZ;AAAA,IAEA,OAAO;AAAA,MACL,cAAc;AAAA;AAAA,IAChB;AAAA,IAEA,SAAS,OAAO,QAAQ;AAAA,IAExB,QAAQ;AAAA,MACN,QAAQ,OAAO,OAAO;AAAA,MACtB,QAAQ,OAAO,OAAO;AAAA,MACtB,OAAO,OAAO,OAAO;AAAA,MACrB,UAAU,OAAO,OAAO;AAAA,MACxB,SAAS,OAAO,OAAO;AAAA,IACzB;AAAA,IAEA,YAAY;AAAA,MACV,WAAW;AAAA,QACT,cAAc;AAAA,UACZ,kBAAkB;AAAA,QACpB;AAAA,QACA,gBAAgB;AAAA,UACd,MAAM;AAAA,YACJ,cAAc,OAAO,WAAW,OAAO;AAAA,YACvC,YAAY,OAAO,WAAW,OAAO;AAAA,YACrC,eAAe,OAAO,WAAW,OAAO;AAAA,YACxC,eAAe,OAAO,WAAW,OAAO;AAAA,YACxC,UAAU,OAAO,WAAW,OAAO;AAAA,YACnC,WAAW,OAAO,WAAW,OAAO;AAAA,YACpC,aAAa,OAAO,WAAW,OAAO;AAAA,YACtC,cAAc,OAAO,WAAW,OAAO;AAAA,YACvC,YAAY,OAAO,WAAW,OAAO;AAAA,YACrC,eAAe,OAAO,WAAW,OAAO;AAAA,YACxC,WAAW,OAAO,QAAQ;AAAA,YAC1B,YAAY,OAAO,OAAO,YAAY,YAAY,IAAI,OAAO,YAAY,aAAa;AAAA,YACtF,WAAW;AAAA,cACT,WAAW,OAAO,QAAQ;AAAA,YAC5B;AAAA,UACF;AAAA,UACA,WAAW;AAAA,YACT,UAAU,OAAO,WAAW,OAAO;AAAA,YACnC,WAAW,OAAO,WAAW,OAAO;AAAA,YACpC,aAAa,OAAO,WAAW,OAAO;AAAA,YACtC,cAAc,OAAO,WAAW,OAAO;AAAA,YACvC,YAAY,OAAO,WAAW,OAAO;AAAA,YACrC,eAAe,OAAO,WAAW,OAAO;AAAA,UAC1C;AAAA,UACA,WAAW;AAAA,YACT,UAAU,OAAO,WAAW,OAAO;AAAA,YACnC,WAAW,OAAO,WAAW,OAAO;AAAA,YACpC,aAAa,OAAO,WAAW,OAAO;AAAA,YACtC,cAAc,OAAO,WAAW,OAAO;AAAA,YACvC,YAAY,OAAO,WAAW,OAAO;AAAA,YACrC,eAAe,OAAO,WAAW,OAAO;AAAA,UAC1C;AAAA,QACF;AAAA,QACA,UAAU;AAAA;AAAA,UAER;AAAA,YACE,OAAO,EAAE,MAAM,SAAS;AAAA,YACxB,OAAO;AAAA,cACL,UAAU,OAAO,WAAW,OAAO;AAAA,cACnC,WAAW,OAAO,WAAW,OAAO;AAAA,cACpC,aAAa,OAAO,WAAW,OAAO;AAAA,cACtC,cAAc,OAAO,WAAW,OAAO;AAAA,cACvC,YAAY,OAAO,WAAW,OAAO;AAAA,cACrC,eAAe,OAAO,WAAW,OAAO;AAAA,YAC1C;AAAA,UACF;AAAA;AAAA,UAEA;AAAA,YACE,OAAO,EAAE,SAAS,OAAO;AAAA,YACzB,OAAO;AAAA,cACL,iBAAiB,MAAM,OAAO,OAAO,eAAe,IAAI;AAAA,cACxD,OAAO,OAAO,OAAO;AAAA,cACrB,WAAW,OAAO,QAAQ;AAAA,cAC1B,WAAW;AAAA,gBACT,iBAAiB,MAAM,OAAO,OAAO,eAAe,GAAG;AAAA,gBACvD,WAAW,OAAO,QAAQ;AAAA,cAC5B;AAAA,cACA,kBAAkB;AAAA,gBAChB,iBAAiB,MAAM,OAAO,OAAO,cAAc,IAAI;AAAA,gBACvD,OAAO,OAAO,OAAO;AAAA,cACvB;AAAA,YACF;AAAA,UACF;AAAA;AAAA,UAEA;AAAA,YACE,OAAO,EAAE,SAAS,QAAQ,OAAO,UAAU;AAAA,YAC3C,OAAO;AAAA,cACL,iBAAiB,MAAM,OAAO,OAAO,SAAS,IAAI;AAAA,cAClD,OAAO,OAAO,OAAO;AAAA,cACrB,WAAW,EAAE,iBAAiB,MAAM,OAAO,OAAO,SAAS,IAAI,EAAE;AAAA,YACnE;AAAA,UACF;AAAA;AAAA,UAEA;AAAA,YACE,OAAO,EAAE,SAAS,QAAQ,OAAO,YAAY;AAAA,YAC7C,OAAO;AAAA,cACL,iBAAiB,MAAM,OAAO,OAAO,WAAW,IAAI;AAAA,cACpD,OAAO,OAAO,OAAO;AAAA,cACrB,WAAW,EAAE,iBAAiB,MAAM,OAAO,OAAO,WAAW,IAAI,EAAE;AAAA,YACrE;AAAA,UACF;AAAA;AAAA,UAEA;AAAA,YACE,OAAO,EAAE,SAAS,QAAQ,OAAO,QAAQ;AAAA,YACzC,OAAO;AAAA,cACL,iBAAiB,MAAM,OAAO,OAAO,OAAO,IAAI;AAAA,cAChD,OAAO,OAAO,OAAO,OAAO,OAAO,GAAG;AAAA,cACtC,WAAW,EAAE,iBAAiB,MAAM,OAAO,OAAO,OAAO,IAAI,EAAE;AAAA,YACjE;AAAA,UACF;AAAA;AAAA,UAEA;AAAA,YACE,OAAO,EAAE,SAAS,QAAQ,OAAO,UAAU;AAAA,YAC3C,OAAO;AAAA,cACL,iBAAiB,MAAM,OAAO,OAAO,SAAS,IAAI;AAAA,cAClD,OAAO,OAAO,OAAO,OAAO,SAAS,GAAG;AAAA,cACxC,WAAW,EAAE,iBAAiB,MAAM,OAAO,OAAO,SAAS,IAAI,EAAE;AAAA,YACnE;AAAA,UACF;AAAA;AAAA,UAEA;AAAA,YACE,OAAO,EAAE,SAAS,QAAQ,OAAO,UAAU;AAAA,YAC3C,OAAO;AAAA,cACL,iBAAiB,MAAM,OAAO,OAAO,SAAS,IAAI;AAAA,cAClD,OAAO,OAAO,OAAO,OAAO,SAAS,GAAG;AAAA,cACxC,WAAW,EAAE,iBAAiB,MAAM,OAAO,OAAO,SAAS,IAAI,EAAE;AAAA,YACnE;AAAA,UACF;AAAA;AAAA,UAEA;AAAA,YACE,OAAO,EAAE,SAAS,QAAQ,OAAO,OAAO;AAAA,YACxC,OAAO;AAAA,cACL,iBAAiB,MAAM,OAAO,OAAO,MAAM,IAAI;AAAA,cAC/C,OAAO,OAAO,OAAO,OAAO,MAAM,GAAG;AAAA,cACrC,WAAW,EAAE,iBAAiB,MAAM,OAAO,OAAO,MAAM,IAAI,EAAE;AAAA,YAChE;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MAEA,cAAc;AAAA,QACZ,gBAAgB;AAAA,UACd,MAAM;AAAA,YACJ,4BAA4B;AAAA,cAC1B,cAAc,OAAO,WAAW,MAAM;AAAA,cACtC,iBAAiB,OAAO,WAAW,MAAM;AAAA,cACzC,WAAW,OAAO,WAAW,MAAM;AAAA,cACnC,cAAc;AAAA,gBACZ,aAAa,OAAO,WAAW,MAAM;AAAA,gBACrC,aAAa,OAAO,OAAO;AAAA,cAC7B;AAAA,cACA,oBAAoB;AAAA,gBAClB,aAAa,OAAO,OAAO;AAAA,cAC7B;AAAA,cACA,0BAA0B;AAAA,gBACxB,aAAa,OAAO,WAAW,MAAM;AAAA,gBACrC,aAAa,OAAO,OAAO;AAAA,cAC7B;AAAA,cACA,kBAAkB;AAAA,gBAChB,iBAAiB,OAAO,WAAW,MAAM;AAAA,cAC3C;AAAA,YACF;AAAA,YACA,yBAAyB;AAAA,cACvB,UAAU,OAAO,WAAW,MAAM;AAAA,YACpC;AAAA,YACA,6BAA6B;AAAA,cAC3B,UAAU,OAAO,WAAW,MAAM;AAAA,YACpC;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MAEA,SAAS;AAAA,QACP,gBAAgB;AAAA,UACd,MAAM;AAAA,YACJ,cAAc,OAAO,WAAW,KAAK;AAAA,YACrC,iBAAiB,OAAO,WAAW,KAAK;AAAA,YACxC,WAAW,OAAO,QAAQ;AAAA,YAC1B,QAAQ,GAAG,OAAO,WAAW,KAAK,WAAW,UAAU,OAAO,OAAO,OAAO;AAAA,UAC9E;AAAA,QACF;AAAA,MACF;AAAA,MAEA,gBAAgB;AAAA,QACd,gBAAgB;AAAA,UACd,MAAM;AAAA,YACJ,SAAS,OAAO,WAAW,KAAK;AAAA,YAChC,gBAAgB;AAAA,cACd,eAAe,OAAO,WAAW,KAAK;AAAA,YACxC;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MAEA,SAAS;AAAA,QACP,gBAAgB;AAAA,UACd,MAAM;AAAA,YACJ,QAAQ,OAAO,WAAW,KAAK;AAAA,YAC/B,cAAc,OAAO,WAAW,KAAK;AAAA,YACrC,UAAU,OAAO,WAAW,KAAK;AAAA,YACjC,YAAY,OAAO,WAAW,KAAK;AAAA,YACnC,aAAa,OAAO,WAAW,KAAK;AAAA,YACpC,cAAc,OAAO,WAAW,KAAK;AAAA,UACvC;AAAA,UACA,WAAW;AAAA,YACT,QAAQ,OAAO,WAAW,KAAK;AAAA,UACjC;AAAA,UACA,MAAM;AAAA,YACJ,OAAO,OAAO,WAAW,KAAK;AAAA,YAC9B,QAAQ,OAAO,WAAW,KAAK;AAAA,UACjC;AAAA,QACF;AAAA,QACA,UAAU;AAAA;AAAA,UAER;AAAA,YACE,OAAO,EAAE,SAAS,OAAO;AAAA,YACzB,OAAO;AAAA,cACL,iBAAiB,MAAM,OAAO,OAAO,eAAe,IAAI;AAAA,cACxD,OAAO,OAAO,OAAO;AAAA,cACrB,WAAW,EAAE,iBAAiB,MAAM,OAAO,OAAO,eAAe,GAAG,EAAE;AAAA,cACtE,kBAAkB,EAAE,SAAS,IAAI;AAAA,YACnC;AAAA,UACF;AAAA,UACA,EAAE,OAAO,EAAE,SAAS,QAAQ,OAAO,UAAU,GAAG,OAAO,EAAE,iBAAiB,MAAM,OAAO,OAAO,SAAS,IAAI,GAAG,OAAO,OAAO,OAAO,OAAO,SAAS,GAAG,GAAG,WAAW,EAAE,iBAAiB,MAAM,OAAO,OAAO,SAAS,IAAI,EAAE,EAAE,EAAE;AAAA,UAC9N,EAAE,OAAO,EAAE,SAAS,QAAQ,OAAO,YAAY,GAAG,OAAO,EAAE,iBAAiB,MAAM,OAAO,OAAO,WAAW,IAAI,GAAG,OAAO,OAAO,OAAO,OAAO,WAAW,GAAG,GAAG,WAAW,EAAE,iBAAiB,MAAM,OAAO,OAAO,WAAW,IAAI,EAAE,EAAE,EAAE;AAAA,UACtO,EAAE,OAAO,EAAE,SAAS,QAAQ,OAAO,OAAO,GAAG,OAAO,EAAE,iBAAiB,MAAM,OAAO,OAAO,MAAM,IAAI,GAAG,OAAO,OAAO,OAAO,OAAO,MAAM,GAAG,GAAG,WAAW,EAAE,iBAAiB,MAAM,OAAO,OAAO,MAAM,IAAI,EAAE,EAAE,EAAE;AAAA,UAClN,EAAE,OAAO,EAAE,SAAS,QAAQ,OAAO,UAAU,GAAG,OAAO,EAAE,iBAAiB,MAAM,OAAO,OAAO,SAAS,IAAI,GAAG,OAAO,OAAO,OAAO,OAAO,SAAS,GAAG,GAAG,WAAW,EAAE,iBAAiB,MAAM,OAAO,OAAO,SAAS,IAAI,EAAE,EAAE,EAAE;AAAA,UAC9N,EAAE,OAAO,EAAE,SAAS,QAAQ,OAAO,UAAU,GAAG,OAAO,EAAE,iBAAiB,MAAM,OAAO,OAAO,SAAS,IAAI,GAAG,OAAO,OAAO,OAAO,OAAO,SAAS,GAAG,GAAG,WAAW,EAAE,iBAAiB,MAAM,OAAO,OAAO,SAAS,IAAI,EAAE,EAAE,EAAE;AAAA,UAC9N,EAAE,OAAO,EAAE,SAAS,QAAQ,OAAO,QAAQ,GAAG,OAAO,EAAE,iBAAiB,MAAM,OAAO,OAAO,OAAO,IAAI,GAAG,OAAO,OAAO,OAAO,OAAO,OAAO,GAAG,GAAG,WAAW,EAAE,iBAAiB,MAAM,OAAO,OAAO,OAAO,IAAI,EAAE,EAAE,EAAE;AAAA;AAAA,UAEtN,EAAE,OAAO,EAAE,SAAS,UAAU,OAAO,QAAQ,GAAG,OAAO,EAAE,iBAAiB,OAAO,OAAO,aAAa,OAAO,OAAO,OAAO,iBAAiB,WAAW,EAAE,iBAAiB,OAAO,OAAO,OAAO,aAAa,GAAG,EAAE,EAAE,EAAE;AAAA,UACpN,EAAE,OAAO,EAAE,SAAS,YAAY,OAAO,QAAQ,GAAG,OAAO,EAAE,aAAa,OAAO,OAAO,aAAa,OAAO,OAAO,OAAO,YAAY,EAAE;AAAA,UACtI,EAAE,OAAO,EAAE,SAAS,QAAQ,OAAO,QAAQ,GAAG,OAAO,EAAE,iBAAiB,MAAM,OAAO,OAAO,aAAa,IAAI,GAAG,OAAO,OAAO,OAAO,aAAa,WAAW,EAAE,iBAAiB,MAAM,OAAO,OAAO,aAAa,GAAG,EAAE,EAAE,EAAE;AAAA;AAAA,UAE1N,EAAE,OAAO,EAAE,SAAS,UAAU,OAAO,QAAQ,GAAG,OAAO,EAAE,iBAAiB,OAAO,OAAO,iBAAiB,OAAO,OAAO,OAAO,aAAa,QAAQ,aAAa,OAAO,OAAO,OAAO,IAAI,WAAW,EAAE,iBAAiB,OAAO,OAAO,iBAAiB,EAAE,EAAE;AAAA,UAC1P,EAAE,OAAO,EAAE,SAAS,YAAY,OAAO,QAAQ,GAAG,OAAO,EAAE,aAAa,MAAM,OAAO,OAAO,iBAAiB,IAAI,GAAG,OAAO,OAAO,OAAO,gBAAgB,EAAE;AAAA,UAC3J,EAAE,OAAO,EAAE,SAAS,QAAQ,OAAO,QAAQ,GAAG,OAAO,EAAE,iBAAiB,MAAM,OAAO,OAAO,iBAAiB,IAAI,GAAG,OAAO,OAAO,OAAO,iBAAiB,WAAW,EAAE,iBAAiB,MAAM,OAAO,OAAO,iBAAiB,IAAI,EAAE,EAAE,EAAE;AAAA,QACzO;AAAA,MACF;AAAA,MAEA,UAAU;AAAA,QACR,gBAAgB;AAAA,UACd,OAAO;AAAA,YACL,QAAQ,OAAO,WAAW,MAAM;AAAA,YAChC,UAAU,OAAO,WAAW,MAAM;AAAA,YAClC,cAAc,OAAO,WAAW,MAAM;AAAA,YACtC,UAAU,OAAO,WAAW,MAAM;AAAA,YAClC,YAAY,OAAO,WAAW,MAAM;AAAA,YACpC,SAAS,KAAK,OAAO,WAAW,MAAM,QAAQ;AAAA,UAChD;AAAA,QACF;AAAA,MACF;AAAA,MAEA,YAAY;AAAA,QACV,gBAAgB;AAAA,UACd,SAAS;AAAA,YACP,iBAAiB,OAAO,WAAW,QAAQ;AAAA,YAC3C,OAAO,OAAO,WAAW,QAAQ;AAAA,YACjC,cAAc,OAAO,WAAW,QAAQ;AAAA,YACxC,UAAU,OAAO,WAAW,QAAQ;AAAA,YACpC,SAAS,GAAG,OAAO,WAAW,QAAQ,QAAQ,IAAI,OAAO,WAAW,QAAQ,QAAQ;AAAA,YACpF,UAAU,OAAO,WAAW,QAAQ;AAAA,UACtC;AAAA,QACF;AAAA,MACF;AAAA,MAEA,WAAW;AAAA,QACT,gBAAgB;AAAA,UACd,OAAO;AAAA,YACL,cAAc,OAAO,WAAW,OAAO;AAAA,YACvC,iBAAiB,OAAO,WAAW,OAAO;AAAA,YAC1C,UAAU,OAAO,WAAW,OAAO;AAAA,UACrC;AAAA,QACF;AAAA,MACF;AAAA,MAEA,kBAAkB;AAAA,QAChB,gBAAgB;AAAA,UACd,MAAM;AAAA,YACJ,SAAS,OAAO,WAAW,OAAO;AAAA,UACpC;AAAA,QACF;AAAA,MACF;AAAA,MAEA,cAAc;AAAA,QACZ,gBAAgB;AAAA,UACd,MAAM;AAAA,YACJ,aAAa,OAAO,WAAW,MAAM;AAAA,YACrC,cAAc,OAAO,WAAW,MAAM;AAAA,YACtC,YAAY,OAAO,WAAW,MAAM;AAAA,YACpC,eAAe,OAAO,WAAW,MAAM;AAAA,YACvC,cAAc,GAAG,OAAO,WAAW,MAAM,WAAW,UAAU,OAAO,WAAW,MAAM,WAAW;AAAA,UACnG;AAAA,UACA,MAAM;AAAA,YACJ,YAAY,OAAO,WAAW,MAAM;AAAA,YACpC,iBAAiB,OAAO,WAAW,MAAM;AAAA,UAC3C;AAAA,QACF;AAAA,MACF;AAAA,MAEA,aAAa;AAAA,QACX,gBAAgB;AAAA,UACd,MAAM;AAAA,YACJ,WAAW;AAAA,cACT,iBAAiB,OAAO,WAAW,MAAM;AAAA,YAC3C;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MAEA,WAAW;AAAA,QACT,gBAAgB;AAAA,UACd,MAAM;AAAA,YACJ,OAAO,OAAO,WAAW,OAAO;AAAA,YAChC,QAAQ,OAAO,WAAW,OAAO;AAAA,YACjC,cAAc,OAAO,WAAW,OAAO;AAAA,YACvC,UAAU,OAAO,WAAW;AAAA,YAC5B,YAAY,OAAO,WAAW;AAAA,UAChC;AAAA,UACA,SAAS;AAAA,YACP,cAAc,OAAO,WAAW,OAAO;AAAA,UACzC;AAAA,QACF;AAAA,MACF;AAAA,MAEA,gBAAgB;AAAA,QACd,gBAAgB;AAAA,UACd,MAAM;AAAA,YACJ,qBAAqB;AAAA,cACnB,YAAY,OAAO,WAAW,OAAO;AAAA,cACrC,QAAQ,GAAG,OAAO,WAAW,OAAO,gBAAgB,UAAU,OAAO,OAAO,eAAe;AAAA,cAC3F,WAAW;AAAA,YACb;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MAEA,YAAY;AAAA,QACV,gBAAgB;AAAA,UACd,MAAM;AAAA,YACJ,aAAa,OAAO,WAAW,QAAQ;AAAA,YACvC,mBAAmB,OAAO,WAAW,QAAQ;AAAA,UAC/C;AAAA,QACF;AAAA,MACF;AAAA,MAEA,UAAU;AAAA,QACR,gBAAgB;AAAA,UACd,MAAM;AAAA,YACJ,YAAY;AAAA,YACZ,cAAc,OAAO,WAAW,MAAM;AAAA,YACtC,SAAS,OAAO,WAAW,MAAM;AAAA,YACjC,UAAU,OAAO,WAAW;AAAA,UAC9B;AAAA;AAAA,UAEA,cAAc;AAAA,YACZ,iBAAiB,MAAM,OAAO,OAAO,MAAM,IAAI;AAAA,YAC/C,OAAO,OAAO,OAAO,OAAO,MAAM,GAAG;AAAA,YACrC,oBAAoB,EAAE,OAAO,OAAO,OAAO,KAAK;AAAA,UAClD;AAAA,UACA,iBAAiB;AAAA,YACf,iBAAiB,MAAM,OAAO,OAAO,SAAS,IAAI;AAAA,YAClD,OAAO,OAAO,OAAO,OAAO,SAAS,GAAG;AAAA,YACxC,oBAAoB,EAAE,OAAO,OAAO,OAAO,QAAQ;AAAA,UACrD;AAAA,UACA,iBAAiB;AAAA,YACf,iBAAiB,MAAM,OAAO,OAAO,SAAS,IAAI;AAAA,YAClD,OAAO,OAAO,OAAO,OAAO,SAAS,GAAG;AAAA,YACxC,oBAAoB,EAAE,OAAO,OAAO,OAAO,QAAQ;AAAA,UACrD;AAAA,UACA,eAAe;AAAA,YACb,iBAAiB,MAAM,OAAO,OAAO,OAAO,IAAI;AAAA,YAChD,OAAO,OAAO,OAAO,OAAO,OAAO,GAAG;AAAA,YACtC,oBAAoB,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,UACnD;AAAA;AAAA,UAEA,YAAY;AAAA,YACV,iBAAiB,OAAO,OAAO;AAAA,YAC/B,OAAO,OAAO,OAAO;AAAA,YACrB,YAAY,OAAO,WAAW;AAAA,UAChC;AAAA,UACA,eAAe;AAAA,YACb,iBAAiB,OAAO,OAAO;AAAA,YAC/B,OAAO,OAAO,OAAO;AAAA,YACrB,YAAY,OAAO,WAAW;AAAA,UAChC;AAAA,UACA,eAAe;AAAA,YACb,iBAAiB,OAAO,OAAO;AAAA;AAAA,YAE/B,OAAO,OAAO,OAAO;AAAA,YACrB,YAAY,OAAO,WAAW;AAAA,YAC9B,oBAAoB,EAAE,OAAO,OAAO,OAAO,YAAY;AAAA,UACzD;AAAA,UACA,aAAa;AAAA,YACX,iBAAiB,OAAO,OAAO;AAAA,YAC/B,OAAO,OAAO,OAAO;AAAA,YACrB,YAAY,OAAO,WAAW;AAAA,UAChC;AAAA;AAAA,UAEA,cAAc;AAAA,YACZ,iBAAiB,MAAM,OAAO,OAAO,MAAM,IAAI;AAAA,YAC/C,OAAO,OAAO,OAAO,OAAO,MAAM,GAAG;AAAA,YACrC,aAAa,MAAM,OAAO,OAAO,MAAM,IAAI;AAAA,YAC3C,oBAAoB,EAAE,OAAO,OAAO,OAAO,KAAK;AAAA,UAClD;AAAA,UACA,iBAAiB;AAAA,YACf,iBAAiB,MAAM,OAAO,OAAO,SAAS,IAAI;AAAA,YAClD,OAAO,OAAO,OAAO,OAAO,SAAS,GAAG;AAAA,YACxC,aAAa,MAAM,OAAO,OAAO,SAAS,IAAI;AAAA,YAC9C,oBAAoB,EAAE,OAAO,OAAO,OAAO,QAAQ;AAAA,UACrD;AAAA,UACA,iBAAiB;AAAA,YACf,iBAAiB,MAAM,OAAO,OAAO,SAAS,IAAI;AAAA,YAClD,OAAO,OAAO,OAAO,OAAO,SAAS,GAAG;AAAA,YACxC,aAAa,MAAM,OAAO,OAAO,SAAS,IAAI;AAAA,YAC9C,oBAAoB,EAAE,OAAO,OAAO,OAAO,QAAQ;AAAA,UACrD;AAAA,UACA,eAAe;AAAA,YACb,iBAAiB,MAAM,OAAO,OAAO,OAAO,IAAI;AAAA,YAChD,OAAO,OAAO,OAAO,OAAO,OAAO,GAAG;AAAA,YACtC,aAAa,MAAM,OAAO,OAAO,OAAO,IAAI;AAAA,YAC5C,oBAAoB,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,UACnD;AAAA,UACA,MAAM;AAAA,YACJ,SAAS;AAAA,YACT,SAAS;AAAA,UACX;AAAA,UACA,SAAS;AAAA,YACP,SAAS;AAAA,UACX;AAAA,QACF;AAAA,MACF;AAAA,MAEA,eAAe;AAAA,QACb,gBAAgB;AAAA,UACd,MAAM;AAAA,YACJ,YAAY,OAAO,WAAW;AAAA,YAC9B,cAAc;AAAA,UAChB;AAAA,QACF;AAAA,MACF;AAAA,MAEA,cAAc;AAAA,QACZ,gBAAgB;AAAA,UACd,MAAM;AAAA,YACJ,cAAc,OAAO,WAAW,UAAU;AAAA,YAC1C,WAAW,OAAO,QAAQ;AAAA,YAC1B,cAAc,OAAO,QAAQ;AAAA,YAC7B,YAAY,EAAE,SAAS,OAAO;AAAA,YAC9B,kBAAkB,EAAE,QAAQ,OAAO,OAAO,QAAQ,EAAE,GAAG;AAAA,YACvD,mBAAmB,EAAE,cAAc,OAAO,WAAW,UAAU,aAAa;AAAA,YAC5E,kBAAkB,EAAE,cAAc,OAAO,WAAW,UAAU,aAAa;AAAA,UAC7E;AAAA,QACF;AAAA,MACF;AAAA,MAEA,qBAAqB;AAAA,QACnB,gBAAgB;AAAA,UACd,MAAM;AAAA,YACJ,SAAS,GAAG,OAAO,WAAW,UAAU,eAAe,QAAQ,OAAO,WAAW,UAAU,eAAe,IAAI,OAAO,WAAW,UAAU,eAAe;AAAA,YACzJ,YAAY,OAAO,WAAW,UAAU;AAAA,YACxC,WAAW;AAAA,YACX,kBAAkB,EAAE,WAAW,OAAO;AAAA,UACxC;AAAA,UACA,SAAS;AAAA,YACP,QAAQ;AAAA,YACR,kBAAkB,EAAE,QAAQ,EAAE;AAAA,UAChC;AAAA,UACA,mBAAmB;AAAA,YACjB,OAAO,OAAO,OAAO;AAAA,UACvB;AAAA,QACF;AAAA,MACF;AAAA,MAEA,qBAAqB;AAAA,QACnB,gBAAgB;AAAA,UACd,MAAM;AAAA,YACJ,SAAS,KAAK,OAAO,WAAW,UAAU,eAAe,IAAI,OAAO,WAAW,UAAU,oBAAoB;AAAA,UAC/G;AAAA,QACF;AAAA,MACF;AAAA,MAEA,iBAAiB;AAAA,QACf,gBAAgB;AAAA,UACd,MAAM;AAAA,YACJ,cAAc,OAAO,WAAW,aAAa;AAAA,YAC7C,aAAa,OAAO,WAAW,aAAa;AAAA,YAC5C,aAAa,OAAO,OAAO;AAAA,YAC3B,YAAY,OAAO,WAAW,aAAa;AAAA,YAC3C,aAAa,OAAO,WAAW,aAAa;AAAA,YAC5C,cAAc,OAAO,WAAW,aAAa;AAAA,YAC7C,YAAY,OAAO,WAAW,aAAa;AAAA,YAC3C,eAAe,OAAO,WAAW,aAAa;AAAA,YAC9C,eAAe;AAAA,YACf,YAAY,OAAO,OAAO,YAAY,YAAY,IAAI,OAAO,YAAY,aAAa;AAAA,YACtF,kBAAkB;AAAA,cAChB,iBAAiB,MAAM,OAAO,OAAO,aAAa,IAAI;AAAA,cACtD,OAAO,OAAO,OAAO;AAAA,cACrB,WAAW;AAAA,gBACT,iBAAiB,MAAM,OAAO,OAAO,aAAa,IAAI;AAAA,cACxD;AAAA,YACF;AAAA,YACA,kBAAkB;AAAA,cAChB,aAAa,OAAO,OAAO;AAAA,YAC7B;AAAA,UACF;AAAA,UACA,WAAW;AAAA,YACT,aAAa,OAAO,WAAW,aAAa;AAAA,YAC5C,cAAc,OAAO,WAAW,aAAa;AAAA,YAC7C,YAAY,OAAO,WAAW,aAAa;AAAA,YAC3C,eAAe,OAAO,WAAW,aAAa;AAAA,UAChD;AAAA,UACA,WAAW;AAAA,YACT,aAAa,OAAO,WAAW,aAAa;AAAA,YAC5C,cAAc,OAAO,WAAW,aAAa;AAAA,YAC7C,YAAY,OAAO,WAAW,aAAa;AAAA,YAC3C,eAAe,OAAO,WAAW,aAAa;AAAA,UAChD;AAAA,QACF;AAAA,QACA,UAAU;AAAA,UACR,EAAE,OAAO,EAAE,OAAO,UAAU,GAAG,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,MAAM,OAAO,OAAO,SAAS,IAAI,GAAG,OAAO,OAAO,OAAO,SAAS,WAAW,EAAE,iBAAiB,MAAM,OAAO,OAAO,SAAS,IAAI,EAAE,EAAE,EAAE,EAAE;AAAA,UACtN,EAAE,OAAO,EAAE,OAAO,YAAY,GAAG,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,MAAM,OAAO,OAAO,WAAW,IAAI,GAAG,OAAO,OAAO,OAAO,WAAW,WAAW,EAAE,iBAAiB,MAAM,OAAO,OAAO,WAAW,IAAI,EAAE,EAAE,EAAE,EAAE;AAAA,UAC9N,EAAE,OAAO,EAAE,OAAO,OAAO,GAAG,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,MAAM,OAAO,OAAO,MAAM,IAAI,GAAG,OAAO,OAAO,OAAO,MAAM,WAAW,EAAE,iBAAiB,MAAM,OAAO,OAAO,MAAM,IAAI,EAAE,EAAE,EAAE,EAAE;AAAA,UAC1M,EAAE,OAAO,EAAE,OAAO,UAAU,GAAG,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,MAAM,OAAO,OAAO,SAAS,IAAI,GAAG,OAAO,OAAO,OAAO,SAAS,WAAW,EAAE,iBAAiB,MAAM,OAAO,OAAO,SAAS,IAAI,EAAE,EAAE,EAAE,EAAE;AAAA,UACtN,EAAE,OAAO,EAAE,OAAO,UAAU,GAAG,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,MAAM,OAAO,OAAO,SAAS,IAAI,GAAG,OAAO,OAAO,OAAO,SAAS,WAAW,EAAE,iBAAiB,MAAM,OAAO,OAAO,SAAS,IAAI,EAAE,EAAE,EAAE,EAAE;AAAA,UACtN,EAAE,OAAO,EAAE,OAAO,QAAQ,GAAG,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,MAAM,OAAO,OAAO,OAAO,IAAI,GAAG,OAAO,OAAO,OAAO,OAAO,WAAW,EAAE,iBAAiB,MAAM,OAAO,OAAO,OAAO,IAAI,EAAE,EAAE,EAAE,EAAE;AAAA,QAChN;AAAA,MACF;AAAA,MAEA,sBAAsB;AAAA,QACpB,gBAAgB;AAAA,UACd,MAAM;AAAA,YACJ,cAAc,OAAO,WAAW,aAAa;AAAA,UAC/C;AAAA,UACA,SAAS;AAAA,YACP,yBAAyB;AAAA,cACvB,aAAa,OAAO,OAAO;AAAA,YAC7B;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MAEA,UAAU;AAAA,QACR,gBAAgB;AAAA,UACd,MAAM;AAAA,YACJ,iBAAiB;AAAA;AAAA,UACnB;AAAA,UACA,YAAY,EAAE,WAAW,OAAO,QAAQ,GAAG;AAAA,UAC3C,YAAY,EAAE,WAAW,OAAO,QAAQ,GAAG;AAAA,UAC3C,YAAY,EAAE,WAAW,OAAO,QAAQ,GAAG;AAAA,QAC7C;AAAA,MACF;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA;AAAA,EACF,CAAC;AACH;;;AR/iBI,SACwB,KADxB;AAVG,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA;AAAA,EACA,oBAAoB;AACtB,GAA8B;AAC5B,QAAM,YAAY,SAAS,iBAAiB;AAC5C,QAAM,SAAS,eAAe,SAAS;AACvC,QAAM,WAAW,eAAe,MAAM;AAEtC,SACE,qBAAC,oBAAiB,OAAO,UACtB;AAAA,yBAAqB,oBAAC,eAAY;AAAA,IAClC;AAAA,KACH;AAEJ;;;AS7DA;AAAA,EACE,UAAU;AAAA,EAEV;AAAA,OACK;AACP,SAAS,cAAc;AAuCL,gBAAAA,YAAA;AArBlB,IAAM,eAAe,OAAO,SAAS,EAAE,CAAC,EAAE,MAAM,OAAO;AAAA;AAAA,EAErD,0BAA0B;AAAA,IACxB,aAAa,MAAM,OAAO,WAAW,OAAO;AAAA,EAC9C;AAAA,EACA,wBAAwB;AAAA,IACtB,YAAY,MAAM,OAAO,WAAW,OAAO;AAAA,EAC7C;AACF,EAAE;AAEK,SAAS,OAAO,EAAE,SAAS,UAAU,UAAU,GAAG,MAAM,GAAgB;AAC7E,QAAM,YAAY,MAAM,YAAY,MAAM,OAAO,aAAa,WAAW,WAAW;AACpF,QAAM,YAAY,WAAW,YAAY,GAAG,SAAS,cAAc,MAAM,YAAY;AAErF,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,UAAU,YAAY;AAAA,MACtB,aAAW,WAAW;AAAA,MACtB,cAAY;AAAA,MACZ,WACE,UAAU,gBAAAA,KAAC,oBAAiB,MAAM,IAAI,OAAM,WAAU,IAAK,MAAM;AAAA,MAGlE;AAAA;AAAA,EACH;AAEJ;AAEA,OAAO,cAAc;;;ACpDrB,SAAS,QAAQ,SAAoC,eAA6B;AAS5E,gBAAAC,YAAA;AAHN,SAAS,YAAY,OAAqB;AACxC,SACE,gBAAAA,KAAC,WAAS,GAAG,OAAO,SAAQ,aAC1B,0BAAAA;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,UAAS;AAAA,MACT,GAAE;AAAA,MACF,UAAS;AAAA;AAAA,EACX,GACF;AAEJ;AAYO,SAAS,KAAK,EAAE,YAAY,UAAU,GAAG,MAAM,GAAc;AAClE,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA,YAAY,WAAY,cAAc,gBAAAA,KAAC,eAAY,IAAM;AAAA;AAAA,EAC3D;AAEJ;AAEA,KAAK,cAAc;;;ACvCnB;AAAA,EACE,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,cAAc;AAAA,EACd,eAAe;AAAA,OAIV;AACP,SAAS,UAAAC,eAAc;AAgCnB,gBAAAC,YAAA;AAnBJ,IAAM,aAAaD,QAAO,SAAS;AAAA,EACjC,mBAAmB,CAAC,SAAS,SAAS;AACxC,CAAC,EAAa,CAAC,EAAE,OAAO,QAAQ,OAAO;AAAA,EACrC,SAAS,UACL,MAAM,OAAO,WAAW,KAAK,iBAC7B,MAAM,OAAO,WAAW,KAAK;AAAA;AAAA,EAEjC,0BAA0B;AAAA,IACxB,SAAS;AAAA,IACT,gBAAgB,EAAE,eAAe,EAAE;AAAA,EACrC;AAAA,EACA,WAAW;AAAA,IACT,WAAW,MAAM,OAAO,QAAQ;AAAA,IAChC,YAAY,cAAc,MAAM,OAAO,YAAY,YAAY,IAAI,MAAM,OAAO,YAAY,aAAa;AAAA,EAC3G;AACF,EAAE;AAEK,SAAS,KAAK,EAAE,SAAS,UAAU,GAAG,MAAM,GAAc;AAC/D,SACE,gBAAAC,KAAC,cAAW,SAAmB,GAAG,OAC/B,UACH;AAEJ;AAGO,IAAM,cAAc;AACpB,IAAM,aAAa;AACnB,IAAM,cAAc;AAI3B,KAAK,cAAc;;;ACvDnB,OAAO,SAAS,gBAAgB;AAChC;AAAA,EACE,aAAa;AAAA,EAEb;AAAA,EACA;AAAA,EACA,WAAAC;AAAA,OACK;AACP,SAAS,UAAAC,eAAc;AAInB,gBAAAC,YAAA;AAFJ,IAAM,iBACJ,gBAAAA,KAACF,UAAA,EAAQ,SAAQ,aACf,0BAAAE,KAAC,UAAK,MAAK,gBAAe,GAAE,kNAAiN,GAC/O;AAGF,IAAM,oBACJ,gBAAAA,KAACF,UAAA,EAAQ,SAAQ,aACf,0BAAAE,KAAC,UAAK,MAAK,gBAAe,GAAE,4fAA2f,GACzhB;AAsBF,IAAM,kBAAkBD,QAAO,YAAY,EAAE,CAAC,EAAE,MAAM,OAAO;AAAA;AAAA,EAE3D,4BAA4B;AAAA,IAC1B,YAAY,cAAc,MAAM,OAAO,YAAY,YAAY,IAAI,MAAM,OAAO,YAAY,aAAa;AAAA,IACzG,iBAAiB;AAAA,MACf,WAAW,MAAM,OAAO,QAAQ;AAAA,IAClC;AAAA,EACF;AACF,EAAE;AAEK,IAAM,YAAY,MAAM;AAAA,EAC7B,SAASE,WAAU,EAAE,OAAO,qBAAqB,YAAY,OAAO,oBAAoB,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK;AACxH,UAAM,CAAC,cAAc,eAAe,IAAI,SAAS,KAAK;AAEtD,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,UAAI,CAAC,SAAS,CAAC,MAAM,YAAY,KAAK,CAAC,MAAM,iBAAiB,KAAK,CAAC,aAAa,YAAY,KAAK,CAAC,aAAa,iBAAiB,GAAG;AAClI,gBAAQ,KAAK,mGAAmG;AAAA,MAClH;AAAA,IACF;AAEA,UAAM,eAAe,sBAAsB,SAAS,aAC/C,eAAe,SAAS,aACzB;AAEJ,UAAM,kBAAkB,sBAAsB,SAAS,aACrD,gBAAAD,KAAC,kBAAe,UAAS,OACvB,0BAAAA;AAAA,MAAC;AAAA;AAAA,QACC,cAAY,eAAe,kBAAkB;AAAA,QAC7C,SAAS,MAAM,gBAAgB,CAAC,SAAS,CAAC,IAAI;AAAA,QAC9C,MAAK;AAAA,QAEJ,yBAAe,oBAAoB;AAAA;AAAA,IACtC,GACF,IACE;AAEJ,UAAM,kBAA+C,kBACjD,EAAE,GAAG,WAAW,OAAO,EAAE,cAAc,iBAAiB,GAAI,WAAkC,MAAM,EAAE,IACtG;AAEJ,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAS;AAAA,QACT,SAAQ;AAAA,QACR;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,UAAU;AAAA,QACV;AAAA,QACA,WAAW;AAAA,QACX,qBAAqB,QAAQ,EAAE,MAAM,SAAS,GAAG,oBAAoB,IAAI;AAAA,QACxE,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AAEA,UAAU,cAAc;;;ACjGxB;AAAA,EACE,SAAS;AAAA,EAET,cAAc;AAAA,EAEd,WAAAE;AAAA,OACK;AAQH,gBAAAC,YAAA;AAFJ,IAAM,WACJ,gBAAAA,KAACD,UAAA,EAAQ,SAAQ,aACf,0BAAAC,KAAC,UAAK,MAAK,gBAAe,UAAS,WAAU,GAAE,sLAAqL,UAAS,WAAU,GACzP;AAGF,IAAM,cACJ,gBAAAA,KAACD,UAAA,EAAQ,SAAQ,aACf,0BAAAC,KAAC,UAAK,MAAK,gBAAe,UAAS,WAAU,GAAE,oNAAmN,UAAS,WAAU,GACvR;AAGF,IAAM,cACJ,gBAAAA,KAACD,UAAA,EAAQ,SAAQ,aACf,0BAAAC,KAAC,UAAK,MAAK,gBAAe,UAAS,WAAU,GAAE,ySAAwS,UAAS,WAAU,GAC5W;AAGF,IAAM,YACJ,gBAAAA,KAACD,UAAA,EAAQ,SAAQ,aACf,0BAAAC,KAAC,UAAK,MAAK,gBAAe,UAAS,WAAU,GAAE,2fAA0f,UAAS,WAAU,GAC9jB;AAGF,IAAM,qBAAmD;AAAA,EACvD,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AACT;AAWO,SAAS,MAAM,EAAE,aAAa,GAAG,MAAM,GAAe;AAC3D,SAAO,gBAAAA,KAAC,YAAS,aAAa,EAAE,GAAG,oBAAoB,GAAG,YAAY,GAAI,GAAG,OAAO;AACtF;AAEO,SAAS,WAAW,OAAwB;AACjD,SAAO,gBAAAA,KAAC,iBAAe,GAAG,OAAO;AACnC;AAEA,MAAM,cAAc;AACpB,WAAW,cAAc;;;AC7DzB;AAAA,EACE,aAAa;AAAA,EAEb,oBAAoB;AAAA,EAEpB,oBAAoB;AAAA,OAEf;AACP,SAAS,UAAAC,eAAc;AACvB,OAAO,oBAAoB;AA8BlB,gBAAAC,YAAA;AAlBF,IAAM,sBAAsBD,QAAO,YAAY,EAAE,CAAC,EAAE,MAAM,OAAO;AAAA,EACtE,cAAc,GAAG,MAAM,OAAO,WAAW,UAAU,gBAAgB;AAAA,EACnE,iBAAiB,MAAM,OAAO,WAAW,UAAU;AAAA,EACnD,WAAW;AAAA,EACX,cAAc,MAAM,QAAQ,CAAC;AAAA,EAC7B,kBAAkB;AAAA,IAChB,iBAAiB,MAAM,OAAO,WAAW,UAAU;AAAA,IACnD,QAAQ,OAAO,MAAM,QAAQ,CAAC,CAAC;AAAA,EACjC;AAAA,EACA,+BAA+B;AAAA,IAC7B,SAAS,GAAG,MAAM,OAAO,WAAW,UAAU,eAAe,IAAI,MAAM,OAAO,WAAW,UAAU,eAAe;AAAA,EACpH;AAAA,EACA,+BAA+B;AAAA,IAC7B,SAAS,KAAK,MAAM,OAAO,WAAW,UAAU,eAAe,IAAI,MAAM,OAAO,WAAW,UAAU,oBAAoB;AAAA,EAC3H;AACF,EAAE;AAEK,SAAS,UAAU,OAAuB;AAC/C,SAAO,gBAAAC,KAAC,gBAAc,GAAG,OAAO;AAClC;AAoBO,SAAS,iBAAiB,EAAE,YAAY,GAAG,MAAM,GAA0B;AAChF,SACE,gBAAAA,KAAC,uBAAoB,YAAY,cAAc,gBAAAA,KAAC,kBAAe,GAAK,GAAG,OAAO;AAElF;AAEO,SAAS,iBAAiB,OAA8B;AAC7D,SAAO,gBAAAA,KAAC,uBAAqB,GAAG,OAAO;AACzC;AAEA,UAAU,cAAc;AACxB,iBAAiB,cAAc;AAC/B,iBAAiB,cAAc;AAC/B,oBAAoB,cAAc;;;ACzElC,OAAO,eAAkD;AACzD,SAAS,UAAAC,eAAc;AAEvB,SAAoB,WAAXC,gBAA8B;AAgC9B,gBAAAC,YAAA;AAvBF,SAAS,aAAa,QAA6C,MAA0B;AAClG,QAAM,MAAkC;AAAA,IACtC,IAAI,OAAO;AAAA,IACX,IAAI,OAAO;AAAA,IACX,IAAI,OAAO;AAAA,IACX,IAAI,OAAO;AAAA,IACX,IAAI,OAAO;AAAA,IACX,KAAK,OAAO;AAAA,EACd;AACA,SAAO,IAAI,IAAI;AACjB;AAEA,IAAM,eAAeF,QAAO,WAAW;AAAA,EACrC,mBAAmB,CAAC,SAAS,SAAS;AACxC,CAAC,EAAe,CAAC,EAAE,OAAO,OAAO,KAAK,MAAM;AAC1C,QAAM,YAAY,aAAa,MAAM,OAAO,WAAW,QAAQ,IAAI;AACnE,SAAO;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AACF,CAAC;AAEM,SAAS,OAAO,EAAE,OAAO,MAAM,GAAG,MAAM,GAAgB;AAC7D,SAAO,gBAAAE,KAAC,gBAAa,MAAa,GAAG,OAAO;AAC9C;;;ACrCA;AAAA,EACE,gBAAgB;AAAA,EAEhB,qBAAqB;AAAA,OAEhB;AAME,gBAAAC,YAAA;AADF,SAAS,aAAa,OAA0B;AACrD,SAAO,gBAAAA,KAAC,mBAAiB,GAAG,OAAO;AACrC;AACA,aAAa,cAAc;AAEpB,SAAS,kBAAkB,OAA+B;AAC/D,SAAO,gBAAAA,KAAC,wBAAsB,GAAG,OAAO;AAC1C;AACA,kBAAkB,cAAc;;;AClBhC,SAAgB,YAAAC,iBAAgB;AAChC,SAAS,oBAAoB;AAC7B,SAAS,4BAA4B;AACrC;AAAA,EACE,cAAc;AAAA,OAET;AACP;AAAA,EACE,qBAAqB;AAAA,OAEhB;AACP;AAAA,EACE,oBAAoB;AAAA,OAEf;AACP;AAAA,EACE,aAAa;AAAA,OAER;AACP;AAAA,EACE,oBAAoB;AAAA,OAEf;AACP;AAAA,EACE,cAAc;AAAA,OAET;AACP;AAAA,EACE,qBAAqB;AAAA,OAEhB;AACP;AAAA,EACE,oBAAoB;AAAA,OAEf;AACP;AAAA,EACE,aAAa;AAAA,OAER;AACP;AAAA,EACE,oBAAoB;AAAA,OAEf;AACP;AAAA,EACE,kBAAkB;AAAA,OAEb;AACP;AAAA,EACE,yBAAyB;AAAA,OAEpB;AACP;AAAA,EACE,wBAAwB;AAAA,OAEnB;AACP;AAAA,EACE,iBAAiB;AAAA,OAEZ;AACP;AAAA,EACE,wBAAwB;AAAA,OAEnB;AACP;AAAA,EACE,gBAAgB;AAAA,OAEX;AAEP,OAAO,YAAY;AACnB,OAAO,mBAAmB;AAC1B,OAAO,mBAAmB;AAC1B,OAAOC,aAAY;AACnB,OAAO,SAAS;AAChB,OAAOC,gBAAe;AACtB,SAAS,UAAAC,eAAc;AA+BnB,SA0IA,UA1IA,OAAAC,OAgJM,QAAAC,aAhJN;AAFG,SAAS,yBAAyB,EAAE,SAAS,GAAkC;AACpF,SACE,gBAAAD,MAAC,wBAAqB,aAAa,cAChC,UACH;AAEJ;AAEA,yBAAyB,cAAc;AAIhC,SAAS,WAAW,OAAwB;AACjD,SAAO,gBAAAA,MAAC,iBAAe,GAAG,OAAO;AACnC;AACA,WAAW,cAAc;AAElB,SAAS,kBAAkB,OAA+B;AAC/D,SAAO,gBAAAA,MAAC,wBAAsB,GAAG,OAAO;AAC1C;AACA,kBAAkB,cAAc;AAEzB,SAAS,iBAAiB,OAA8B;AAC7D,SAAO,gBAAAA,MAAC,uBAAqB,GAAG,OAAO;AACzC;AACA,iBAAiB,cAAc;AAExB,SAAS,UAAU,OAAuB;AAC/C,SAAO,gBAAAA,MAAC,gBAAc,GAAG,OAAO;AAClC;AACA,UAAU,cAAc;AAEjB,SAAS,iBAAiB,OAA8B;AAC7D,SAAO,gBAAAA,MAAC,uBAAqB,GAAG,OAAO;AACzC;AACA,iBAAiB,cAAc;AAIxB,SAAS,WAAW,OAAwB;AACjD,SAAO,gBAAAA,MAAC,iBAAe,GAAG,OAAO;AACnC;AACA,WAAW,cAAc;AAElB,SAAS,kBAAkB,OAA+B;AAC/D,SAAO,gBAAAA,MAAC,wBAAsB,GAAG,OAAO;AAC1C;AACA,kBAAkB,cAAc;AAEzB,SAAS,iBAAiB,OAA8B;AAC7D,SAAO,gBAAAA,MAAC,uBAAqB,GAAG,OAAO;AACzC;AACA,iBAAiB,cAAc;AAExB,SAAS,UAAU,OAAuB;AAC/C,SAAO,gBAAAA,MAAC,gBAAc,GAAG,OAAO;AAClC;AACA,UAAU,cAAc;AAEjB,SAAS,iBAAiB,OAA8B;AAC7D,SAAO,gBAAAA,MAAC,uBAAqB,GAAG,OAAO;AACzC;AACA,iBAAiB,cAAc;AAIxB,SAAS,eAAe,OAA4B;AACzD,SAAO,gBAAAA,MAAC,qBAAmB,GAAG,OAAO;AACvC;AACA,eAAe,cAAc;AAEtB,SAAS,sBAAsB,OAAmC;AACvE,SAAO,gBAAAA,MAAC,4BAA0B,GAAG,OAAO;AAC9C;AACA,sBAAsB,cAAc;AAE7B,SAAS,qBAAqB,OAAkC;AACrE,SAAO,gBAAAA,MAAC,2BAAyB,GAAG,OAAO;AAC7C;AACA,qBAAqB,cAAc;AAE5B,SAAS,cAAc,OAA2B;AACvD,SAAO,gBAAAA,MAAC,oBAAkB,GAAG,OAAO;AACtC;AACA,cAAc,cAAc;AAErB,SAAS,qBAAqB,OAAkC;AACrE,SAAO,gBAAAA,MAAC,2BAAyB,GAAG,OAAO;AAC7C;AACA,qBAAqB,cAAc;AAE5B,SAAS,aAAa,OAA0B;AACrD,SAAO,gBAAAA,MAAC,mBAAiB,GAAG,OAAO;AACrC;AACA,aAAa,cAAc;AAiB3B,IAAM,WAAWD,QAAO,GAAG,EAAE,CAAC,EAAE,MAAM,OAAO;AAAA,EAC3C,SAAS;AAAA,EACT,KAAK,MAAM,QAAQ,CAAC;AAAA,EACpB,YAAY;AACd,EAAE;AAEK,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,WAAW;AAAA,EACX,cAAc;AAChB,GAA8B;AAC5B,QAAM,CAAC,MAAM,OAAO,IAAIH,UAAS,KAAK;AACtC,QAAM,CAAC,OAAO,QAAQ,IAAIA,UAAyB,KAAK;AAExD,QAAM,aAAa,MAAM;AACvB,aAAS,KAAK;AACd,YAAQ,IAAI;AAAA,EACd;AAEA,QAAM,eAAe,MAAM,QAAQ,KAAK;AAExC,QAAM,WAAW,MAAM;AACrB,aAAS,KAAK;AACd,YAAQ,KAAK;AAAA,EACf;AAEA,SACE,gBAAAK,MAAA,YACE;AAAA,oBAAAD,MAACH,SAAA,EAAO,SAAQ,aAAY,OAAM,WAAU,kBAAgB,MAAC,SAAS,YACnE,uBACH;AAAA,IACA,gBAAAI,MAAC,UAAO,MAAY,SAAS,cAAc,UAAS,MAAK,WAAS,MAChE;AAAA,sBAAAD,MAAC,iBACC,0BAAAC,MAAC,YACC;AAAA,wBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,OAAO;AAAA,YACP,OAAO,MAAM;AAAA,YACb,UAAU,CAAC,MAAM,SAAS,CAAC,UAAU,EAAE,GAAG,MAAM,OAAO,EAAE,EAAE;AAAA,YAC3D,WAAW,EAAE,WAAW,EAAE,WAAW,KAAK,EAAE;AAAA;AAAA,QAC9C;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,OAAO;AAAA,YACP,OAAO,MAAM;AAAA,YACb,UAAU,CAAC,MAAM,SAAS,CAAC,UAAU,EAAE,GAAG,MAAM,KAAK,EAAE,EAAE;AAAA,YACzD,WAAW,EAAE,WAAW,EAAE,WAAW,KAAK,EAAE;AAAA;AAAA,QAC9C;AAAA,SACF,GACF;AAAA,MACA,gBAAAC,MAAC,iBACC;AAAA,wBAAAD,MAACH,SAAA,EAAO,SAAS,cAAc,OAAM,WAAU,oBAAM;AAAA,QACrD,gBAAAG,MAACH,SAAA,EAAO,SAAS,UAAU,OAAM,WAAU,gBAAE;AAAA,SAC/C;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,qBAAqB,cAAc;AAQ5B,SAAS,wBAAwB;AAAA,EACtC;AAAA,EACA;AAAA,EACA,cAAc;AAChB,GAAiC;AAC/B,QAAM,CAAC,MAAM,OAAO,IAAID,UAAS,KAAK;AACtC,QAAM,CAAC,OAAO,QAAQ,IAAIA,UAAyB,KAAK;AACxD,QAAM,CAAC,WAAW,YAAY,IAAIA,UAA0B,OAAO;AAEnE,QAAM,aAAa,MAAM;AACvB,aAAS,KAAK;AACd,iBAAa,OAAO;AACpB,YAAQ,IAAI;AAAA,EACd;AAEA,QAAM,eAAe,MAAM,QAAQ,KAAK;AAExC,QAAM,WAAW,MAAM;AACrB,aAAS,KAAK;AACd,YAAQ,KAAK;AAAA,EACf;AAEA,QAAM,kBAAkB,CAAC,SAAuB;AAC9C,QAAI,cAAc,SAAS;AACzB,eAAS,EAAE,OAAO,MAAM,KAAK,KAAK,CAAC;AACnC,mBAAa,KAAK;AAAA,IACpB,OAAO;AACL,eAAS,CAAC,UAAU,EAAE,GAAG,MAAM,KAAK,KAAK,EAAE;AAAA,IAC7C;AAAA,EACF;AAEA,SACE,gBAAAK,MAAA,YACE;AAAA,oBAAAD,MAACH,SAAA,EAAO,SAAQ,aAAY,OAAM,WAAU,kBAAgB,MAAC,SAAS,YACnE,uBACH;AAAA,IACA,gBAAAI,MAAC,UAAO,MAAY,SAAS,cAC3B;AAAA,sBAAAA,MAAC,iBAAc,IAAI,EAAE,GAAG,EAAE,GACxB;AAAA,wBAAAD,MAAC,OAAI,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,GACtB,0BAAAA;AAAA,UAACF;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,OAAM;AAAA,YACN,OAAO,cAAc,UAAU,eAAe;AAAA,YAC9C,YAAY,EAAE,UAAU,KAAK;AAAA,YAC7B,WAAS;AAAA;AAAA,QACX,GACF;AAAA,QACA,gBAAAE;AAAA,UAAC;AAAA;AAAA,YACC,OAAO,cAAc,UAAU,MAAM,QAAQ,MAAM;AAAA,YACnD,UAAU;AAAA;AAAA,QACZ;AAAA,SACF;AAAA,MACA,gBAAAC,MAAC,iBACC;AAAA,wBAAAD,MAACH,SAAA,EAAO,SAAS,cAAc,OAAM,WAAU,oBAAM;AAAA,QACrD,gBAAAG,MAACH,SAAA,EAAO,SAAS,UAAU,OAAM,WAAU,gBAAE;AAAA,SAC/C;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,wBAAwB,cAAc;;;ACtVtC,SAAS,SAAS,gBAA6C;AA0C3D,gBAAAK,aAAA;AAFG,SAAS,KAAK,EAAE,WAAW,SAAS,GAAG,MAAM,GAAc;AAChE,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,SAAS,aAAa,YAAY,SAAY,IAAI;AAAA,MACjD,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,KAAK,cAAc;;;ACjDnB,SAAS,kBAAmC;AAMxC,gBAAAC,aAAA;AAFG,SAAS,GAAG,EAAE,QAAQ,gBAAgB,UAAU,GAAG,MAAM,GAAY;AAC1E,SACE,gBAAAA,MAAC,cAAW,SAAQ,MAAK,OAAe,GAAG,OACxC,UACH;AAEJ;AACA,GAAG,cAAc;;;ACXjB,SAAS,cAAAC,mBAAmC;AAMxC,gBAAAC,aAAA;AAFG,SAAS,GAAG,EAAE,QAAQ,gBAAgB,UAAU,GAAG,MAAM,GAAY;AAC1E,SACE,gBAAAA,MAACD,aAAA,EAAW,SAAQ,MAAK,OAAe,GAAG,OACxC,UACH;AAEJ;AACA,GAAG,cAAc;;;ACXjB,SAAS,cAAAE,mBAAmC;AAMxC,gBAAAC,aAAA;AAFG,SAAS,GAAG,EAAE,QAAQ,gBAAgB,UAAU,GAAG,MAAM,GAAY;AAC1E,SACE,gBAAAA,MAACD,aAAA,EAAW,SAAQ,MAAK,OAAe,GAAG,OACxC,UACH;AAEJ;AACA,GAAG,cAAc;;;ACXjB,SAAS,cAAAE,mBAAmC;AAMxC,gBAAAC,aAAA;AAFG,SAAS,GAAG,EAAE,QAAQ,gBAAgB,UAAU,GAAG,MAAM,GAAY;AAC1E,SACE,gBAAAA,MAACD,aAAA,EAAW,SAAQ,MAAK,OAAe,GAAG,OACxC,UACH;AAEJ;AACA,GAAG,cAAc;;;ACXjB,SAAS,cAAAE,mBAAmC;AAMxC,gBAAAC,aAAA;AAFG,SAAS,GAAG,EAAE,QAAQ,gBAAgB,UAAU,GAAG,MAAM,GAAY;AAC1E,SACE,gBAAAA,MAACD,aAAA,EAAW,SAAQ,MAAK,OAAe,GAAG,OACxC,UACH;AAEJ;AACA,GAAG,cAAc;;;ACXjB,SAAS,cAAAE,mBAAmC;AAMxC,gBAAAC,aAAA;AAFG,SAAS,GAAG,EAAE,QAAQ,gBAAgB,UAAU,GAAG,MAAM,GAAY;AAC1E,SACE,gBAAAA,MAACD,aAAA,EAAW,SAAQ,MAAK,OAAe,GAAG,OACxC,UACH;AAEJ;AACA,GAAG,cAAc;;;ACXjB,SAAS,cAAAE,mBAAmC;AAMxC,gBAAAC,aAAA;AAFG,SAAS,UAAU,EAAE,QAAQ,gBAAgB,UAAU,GAAG,MAAM,GAAmB;AACxF,SACE,gBAAAA,MAACD,aAAA,EAAW,SAAQ,aAAY,OAAe,GAAG,OAC/C,UACH;AAEJ;AACA,UAAU,cAAc;;;ACXxB,SAAS,cAAAE,mBAAmC;AAMxC,gBAAAC,aAAA;AAFG,SAAS,UAAU,EAAE,QAAQ,gBAAgB,UAAU,GAAG,MAAM,GAAmB;AACxF,SACE,gBAAAA,MAACD,aAAA,EAAW,SAAQ,aAAY,OAAe,GAAG,OAC/C,UACH;AAEJ;AACA,UAAU,cAAc;;;ACXxB,SAAS,cAAAE,mBAAmC;AAMxC,gBAAAC,aAAA;AAFG,SAAS,MAAM,EAAE,QAAQ,gBAAgB,UAAU,GAAG,MAAM,GAAe;AAChF,SACE,gBAAAA,MAACD,aAAA,EAAW,SAAQ,SAAQ,OAAe,GAAG,OAC3C,UACH;AAEJ;AACA,MAAM,cAAc;;;ACXpB,SAAS,cAAAE,oBAAmC;AAMxC,gBAAAC,aAAA;AAFG,SAAS,MAAM,EAAE,QAAQ,gBAAgB,UAAU,GAAG,MAAM,GAAe;AAChF,SACE,gBAAAA,MAACD,cAAA,EAAW,SAAQ,SAAQ,OAAe,GAAG,OAC3C,UACH;AAEJ;AACA,MAAM,cAAc;;;ACXpB,SAAS,cAAAE,oBAAmC;AAMxC,gBAAAC,aAAA;AAFG,SAAS,QAAQ,EAAE,QAAQ,gBAAgB,UAAU,GAAG,MAAM,GAAiB;AACpF,SACE,gBAAAA,MAACD,cAAA,EAAW,SAAQ,WAAU,OAAe,GAAG,OAC7C,UACH;AAEJ;AACA,QAAQ,cAAc;;;ACXtB,SAAS,cAAAE,oBAAmC;AAMxC,gBAAAC,aAAA;AAFG,SAAS,SAAS,EAAE,QAAQ,gBAAgB,UAAU,GAAG,MAAM,GAAkB;AACtF,SACE,gBAAAA,MAACD,cAAA,EAAW,SAAQ,YAAW,OAAe,GAAG,OAC9C,UACH;AAEJ;AACA,SAAS,cAAc;;;ACXvB,SAAS,cAAAE,oBAAmC;AAMxC,gBAAAC,aAAA;AAFG,SAAS,iBAAiB,EAAE,QAAQ,gBAAgB,UAAU,GAAG,MAAM,GAA0B;AACtG,SACE,gBAAAA,MAACD,cAAA,EAAW,SAAQ,UAAS,OAAe,GAAG,OAC5C,UACH;AAEJ;AACA,iBAAiB,cAAc;","names":["jsx","jsx","styled","jsx","SvgIcon","styled","jsx","TextField","SvgIcon","jsx","styled","jsx","styled","default","jsx","jsx","useState","Button","TextField","styled","jsx","jsxs","jsx","jsx","Typography","jsx","Typography","jsx","Typography","jsx","Typography","jsx","Typography","jsx","Typography","jsx","Typography","jsx","Typography","jsx","Typography","jsx","Typography","jsx","Typography","jsx","Typography","jsx"]}