@matteoaliano/forest-ui 1.2.0 → 1.2.2
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.
- package/bin/dense.mjs +128 -0
- package/bin/sync.mjs +15 -1
- package/dist/{chunk-VIQ5IYUZ.mjs → chunk-4PNVZETQ.mjs} +50 -17
- package/dist/chunk-4PNVZETQ.mjs.map +1 -0
- package/dist/index.d.mts +21 -31
- package/dist/index.d.ts +21 -31
- package/dist/index.js +402 -130
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +558 -319
- package/dist/index.mjs.map +1 -1
- package/dist/theme.js +49 -16
- package/dist/theme.js.map +1 -1
- package/dist/theme.mjs +1 -1
- package/package.json +2 -2
- package/skills/forest-alkemy-plus/SKILL.md +2 -2
- package/skills/forest-alkemy-plus/references/components.md +2 -2
- package/skills/forest-alkemy-plus/references/patterns.md +3 -3
- package/dist/chunk-VIQ5IYUZ.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/theme/buildTheme.ts","../src/theme/palette.ts","../src/theme/typography.ts","../src/theme/shadows.ts","../src/theme/components.ts","../src/theme/tokens.ts","../src/theme/presets/forest-alkemy-plus.dark.ts","../src/theme/presets/forest-alkemy-plus.ts","../src/theme/presets/index.ts","../src/theme/index.ts"],"sourcesContent":["import { createTheme, type Theme, type ThemeOptions } from \"@mui/material/styles\";\nimport type { DesignTokens } from \"./types\";\nimport { buildPalette } from \"./palette\";\nimport { buildTypography } from \"./typography\";\nimport { buildShadows } from \"./shadows\";\nimport { buildComponents } from \"./components\";\n\n// Recursively replace each string leaf of a token group with a reference to\n// its MUI palette CSS variable (`var(--mui-palette-<path>, <light fallback>)`).\n// MUI emits those vars per color scheme, so component overrides built from the\n// result adapt to dark mode automatically. The light value is kept as the\n// fallback for the single-scheme (no-cssVariables) path.\nfunction toVars<T>(value: T, path: string): T {\n if (typeof value === \"string\") {\n return `var(--mui-palette-${path}, ${value})` as unknown as T;\n }\n const out: Record<string, unknown> = {};\n for (const key of Object.keys(value as Record<string, unknown>)) {\n out[key] = toVars((value as Record<string, unknown>)[key], `${path}-${key}`);\n }\n return out as T;\n}\n\n// Point the mode-sensitive color groups at their palette CSS vars. Hue scales\n// (base/error/warning/success/info/highlight) and non-color tokens\n// (radius/shadows/focusRings/type) are left raw — they don't change per scheme.\nfunction varifyColorTokens(tokens: DesignTokens): DesignTokens {\n return {\n ...tokens,\n text: toVars(tokens.text, \"text\"),\n bg: toVars(tokens.bg, \"bg\"),\n fg: toVars(tokens.fg, \"fg\"),\n border: toVars(tokens.border, \"border\"),\n buttonColors: toVars(tokens.buttonColors, \"buttonColors\"),\n sliderColors: toVars(tokens.sliderColors, \"sliderColors\"),\n avatarColors: toVars(tokens.avatarColors, \"avatarColors\"),\n breadcrumbColors: toVars(tokens.breadcrumbColors, \"breadcrumbColors\"),\n };\n}\n\n/**\n * Assemble a MUI ThemeOptions object from a full set of design tokens.\n * When `tokensDark` is supplied, the theme carries both `light` and `dark`\n * color schemes (CSS variables, `.dark` class selector) so consumers get a\n * native MUI dark mode. Without it, the theme stays single-scheme (light).\n */\nexport function buildThemeOptions(\n tokens: DesignTokens,\n tokensDark?: DesignTokens,\n): ThemeOptions {\n // With a dark scheme, component overrides read palette CSS vars so they swap\n // per scheme; without one (single light scheme, no cssVariables) they must\n // use the raw light values.\n const componentTokens = tokensDark ? varifyColorTokens(tokens) : tokens;\n const shared: ThemeOptions = {\n typography: buildTypography(tokens),\n components: buildComponents(componentTokens),\n shadows: buildShadows(tokens),\n shape: {\n borderRadius: tokens.radius.md,\n },\n };\n if (!tokensDark) {\n return { ...shared, palette: buildPalette(tokens, \"light\") };\n }\n return {\n ...shared,\n cssVariables: { colorSchemeSelector: \"class\" },\n colorSchemes: {\n light: { palette: buildPalette(tokens, \"light\") },\n dark: { palette: buildPalette(tokensDark, \"dark\") },\n },\n };\n}\n\n/** Create a fully resolved MUI Theme from a full set of design tokens. */\nexport function buildTheme(tokens: DesignTokens, tokensDark?: DesignTokens): Theme {\n return createTheme(buildThemeOptions(tokens, tokensDark));\n}\n","import type { PaletteOptions } from \"@mui/material/styles\";\nimport type { DesignTokens } from \"./types\";\n\n// ─── MUI Palette Augmentation ────────────────────────────────────────\n// Allows consumers to access chart tokens via theme.palette.chart\n\n// Allow Chip to accept color=\"highlight\" (rendered via variants in components.ts)\ndeclare module \"@mui/material/Chip\" {\n interface ChipPropsColorOverrides {\n highlight: true;\n }\n}\n\n// Allow Alert to accept variant=\"featured\" (rendered via variants in components.ts)\ndeclare module \"@mui/material/Alert\" {\n interface AlertPropsVariantOverrides {\n featured: true;\n }\n}\n\n// The forest semantic token groups are registered as palette namespaces so\n// MUI's `cssVariables` emits `--mui-palette-<group>-<key>` for each color, in\n// BOTH the light and dark color schemes. Component overrides read these via\n// var references (see buildTheme's varify step), so they swap per scheme with\n// no per-override dark duplication.\ndeclare module \"@mui/material/styles\" {\n interface Palette {\n chart: DesignTokens[\"chartColors\"];\n highlight: {\n main: string;\n light: string;\n dark: string;\n contrastText: string;\n };\n bg: DesignTokens[\"bg\"];\n fg: DesignTokens[\"fg\"];\n border: DesignTokens[\"border\"];\n buttonColors: DesignTokens[\"buttonColors\"];\n sliderColors: DesignTokens[\"sliderColors\"];\n avatarColors: DesignTokens[\"avatarColors\"];\n breadcrumbColors: DesignTokens[\"breadcrumbColors\"];\n navColors: DesignTokens[\"navColors\"];\n }\n interface PaletteOptions {\n chart?: DesignTokens[\"chartColors\"];\n highlight?: {\n main: string;\n light: string;\n dark: string;\n contrastText: string;\n };\n bg?: DesignTokens[\"bg\"];\n fg?: DesignTokens[\"fg\"];\n border?: DesignTokens[\"border\"];\n buttonColors?: DesignTokens[\"buttonColors\"];\n sliderColors?: DesignTokens[\"sliderColors\"];\n avatarColors?: DesignTokens[\"avatarColors\"];\n breadcrumbColors?: DesignTokens[\"breadcrumbColors\"];\n navColors?: DesignTokens[\"navColors\"];\n }\n interface TypeText {\n placeholder: string;\n secondaryHover: string;\n tertiary: string;\n tertiaryHover: string;\n quaternary: string;\n placeholderSubtle: string;\n white: string;\n brandPrimary: string;\n brandSecondary: string;\n brandTertiary: string;\n brandTertiaryAlt: string;\n primaryOnBrand: string;\n secondaryOnBrand: string;\n tertiaryOnBrand: string;\n quaternaryOnBrand: string;\n errorPrimary: string;\n warningPrimary: string;\n successPrimary: string;\n }\n}\n\nexport function buildPalette(\n tokens: DesignTokens,\n mode: \"light\" | \"dark\" = \"light\",\n): PaletteOptions {\n const { base, error, warning, success, info, text, bg, fg, border } = tokens;\n\n return {\n mode,\n primary: {\n main: tokens.bg.brandSolid,\n light: tokens.fg.brandPrimary,\n dark: tokens.bg.brandSolidHover,\n contrastText: tokens.base.white,\n },\n secondary: {\n main: tokens.bg.secondarySolid,\n light: tokens.fg.secondary,\n dark: tokens.text.secondaryHover,\n contrastText: tokens.base.white,\n },\n error: {\n main: tokens.error[600],\n light: tokens.error[300],\n dark: tokens.error[700],\n contrastText: tokens.base.white,\n },\n warning: {\n main: tokens.warning[600],\n light: tokens.warning[300],\n dark: tokens.warning[700],\n contrastText: tokens.base.white,\n },\n success: {\n main: tokens.success[600],\n light: tokens.success[300],\n dark: tokens.success[700],\n contrastText: tokens.base.white,\n },\n info: {\n main: tokens.info[600],\n light: tokens.info[300],\n dark: tokens.info[700],\n contrastText: tokens.base.white,\n },\n background: {\n default: bg.primary,\n paper: bg.secondary,\n },\n // Spread the full forest text scale so every key gets a CSS var; MUI's\n // own components still read primary/secondary/disabled from here.\n text: { ...text },\n divider: border.secondary,\n action: {\n active: fg.tertiary,\n hover: bg.primaryHover,\n selected: bg.brandPrimary,\n disabled: fg.disabled,\n disabledBackground: bg.disabled,\n },\n chart: tokens.chartColors,\n bg: tokens.bg,\n fg: tokens.fg,\n border: tokens.border,\n buttonColors: tokens.buttonColors,\n sliderColors: tokens.sliderColors,\n avatarColors: tokens.avatarColors,\n breadcrumbColors: tokens.breadcrumbColors,\n navColors: tokens.navColors,\n ...(tokens.highlight && {\n highlight: {\n main: tokens.highlight[600],\n light: tokens.highlight[300],\n dark: tokens.highlight[700],\n contrastText: tokens.base.white,\n },\n }),\n };\n}\n\n","import type { TypographyVariantsOptions } from \"@mui/material/styles\";\nimport type { DesignTokens } from \"./types\";\n\nexport function buildTypography(tokens: DesignTokens): TypographyVariantsOptions {\n const { fontFamily, display, fontSize, lineHeight, fontWeight, letterSpacing } = tokens;\n const ls = letterSpacing ?? {};\n\n return {\n fontFamily,\n fontWeightRegular: fontWeight.regular,\n fontWeightMedium: fontWeight.medium,\n fontWeightBold: fontWeight.bold,\n\n // Display styles → MUI headings\n h1: {\n fontSize: display.xl.fontSize,\n lineHeight: display.xl.lineHeight,\n letterSpacing: ls.h1 ?? display.xl.letterSpacing,\n fontWeight: fontWeight.semibold,\n },\n h2: {\n fontSize: display.lg.fontSize,\n lineHeight: display.lg.lineHeight,\n letterSpacing: ls.h2 ?? display.lg.letterSpacing,\n fontWeight: fontWeight.semibold,\n },\n h3: {\n fontSize: display.md.fontSize,\n lineHeight: display.md.lineHeight,\n letterSpacing: ls.h3 ?? display.md.letterSpacing,\n fontWeight: fontWeight.semibold,\n },\n h4: {\n fontSize: display.sm.fontSize,\n lineHeight: display.sm.lineHeight,\n ...(ls.h4 !== undefined && { letterSpacing: ls.h4 }),\n fontWeight: fontWeight.semibold,\n },\n h5: {\n fontSize: display.xs.fontSize,\n lineHeight: display.xs.lineHeight,\n ...(ls.h5 !== undefined && { letterSpacing: ls.h5 }),\n fontWeight: fontWeight.semibold,\n },\n h6: {\n fontSize: fontSize.xl,\n lineHeight: lineHeight.xl,\n ...(ls.h6 !== undefined && { letterSpacing: ls.h6 }),\n fontWeight: fontWeight.semibold,\n },\n subtitle1: {\n fontSize: fontSize.lg,\n lineHeight: lineHeight.lg,\n ...(ls.subtitle1 !== undefined && { letterSpacing: ls.subtitle1 }),\n fontWeight: fontWeight.medium,\n },\n subtitle2: {\n fontSize: fontSize.md,\n lineHeight: lineHeight.md,\n ...(ls.subtitle2 !== undefined && { letterSpacing: ls.subtitle2 }),\n fontWeight: fontWeight.medium,\n },\n body1: {\n fontSize: fontSize.md,\n lineHeight: lineHeight.md,\n ...(ls.body1 !== undefined && { letterSpacing: ls.body1 }),\n fontWeight: fontWeight.regular,\n },\n body2: {\n fontSize: fontSize.sm,\n lineHeight: lineHeight.sm,\n ...(ls.body2 !== undefined && { letterSpacing: ls.body2 }),\n fontWeight: fontWeight.regular,\n },\n caption: {\n fontSize: fontSize.xs,\n lineHeight: lineHeight.xs,\n ...(ls.caption !== undefined && { letterSpacing: ls.caption }),\n fontWeight: fontWeight.regular,\n },\n overline: {\n fontSize: fontSize.xxs,\n lineHeight: lineHeight.xxs,\n fontWeight: fontWeight.medium,\n textTransform: \"uppercase\",\n letterSpacing: ls.overline ?? \"0.08em\",\n },\n button: {\n fontSize: fontSize.sm,\n lineHeight: lineHeight.sm,\n fontWeight: fontWeight.semibold,\n textTransform: \"none\",\n ...(ls.button !== undefined && { letterSpacing: ls.button }),\n },\n };\n}\n\n","import type { Shadows } from \"@mui/material/styles\";\nimport type { DesignTokens } from \"./types\";\n\nexport function buildShadows(tokens: DesignTokens): Shadows {\n const tokenShadows = tokens.shadows;\n\n // MUI expects exactly 25 shadow entries (indices 0–24).\n // We map our token shadows to sensible elevation levels.\n return [\n \"none\", // 0\n tokenShadows.xs, // 1\n tokenShadows.sm, // 2\n tokenShadows.sm, // 3\n tokenShadows.md, // 4\n tokenShadows.md, // 5\n tokenShadows.md, // 6\n tokenShadows.lg, // 7\n tokenShadows.lg, // 8\n tokenShadows.lg, // 9\n tokenShadows.xl, // 10\n tokenShadows.xl, // 11\n tokenShadows.xl, // 12\n tokenShadows[\"2xl\"], // 13\n tokenShadows[\"2xl\"], // 14\n tokenShadows[\"2xl\"], // 15\n tokenShadows[\"3xl\"], // 16\n tokenShadows[\"3xl\"], // 17\n tokenShadows[\"3xl\"], // 18\n tokenShadows[\"3xl\"], // 19\n tokenShadows[\"3xl\"], // 20\n tokenShadows[\"3xl\"], // 21\n tokenShadows[\"3xl\"], // 22\n tokenShadows[\"3xl\"], // 23\n tokenShadows[\"3xl\"], // 24\n ];\n}\n\n","import type { Components, CSSObject, Theme } from \"@mui/material/styles\";\nimport type { DesignTokens } from \"./types\";\n\nexport function buildComponents(tokens: DesignTokens): Components<Theme> {\n const {\n base,\n error,\n warning,\n success,\n info,\n highlight,\n radius,\n focusRings,\n shadows: tokenShadows,\n text,\n bg,\n fg,\n border,\n buttonColors,\n sliderColors,\n avatarColors,\n breadcrumbColors,\n } = tokens;\n\n // Greyscale system: `primary` and `secondary` colors render identically.\n // `contained` = charcoal fill, `outlined` = light outline, `text` = quiet.\n // Sharing these objects across the Primary/Secondary slots guarantees parity.\n const containedFill = {\n backgroundColor: buttonColors.primary.bg,\n color: buttonColors.primary.fg,\n \"&:hover\": {\n backgroundColor: buttonColors.primary.bgHover,\n },\n };\n const outlinedFill = {\n borderColor: buttonColors.secondaryColor.border,\n color: buttonColors.secondaryColor.fg,\n \"&:hover\": {\n // Darken the whole outlined button on hover via brightness (< 1) — single\n // mechanism, no separate border-color change. 0.97 is a barely-there darken.\n // No-tint is the spec: suppress MUI's ~4% --variant-outlinedBg hover tint\n // so the ButtonGroup/IconButton outlined replicas match exactly.\n backgroundColor: \"transparent\",\n filter: \"brightness(0.97)\",\n },\n };\n const fabFill = {\n ...containedFill,\n \"&:hover\": {\n backgroundColor: buttonColors.primary.bgHover,\n color: buttonColors.primary.fgHover,\n },\n };\n const textFill = {\n color: buttonColors.tertiaryColor.fg,\n \"&:hover\": {\n backgroundColor: buttonColors.tertiaryColor.bgHover,\n },\n };\n\n // Shared faux-3D bevel: thick bottom edge at rest → flips to top on hover →\n // collapses on press. Single source for IconButton + ToggleButton. MuiButton\n // keeps its own inline copy because it interleaves per-variant conditionals\n // (sweep color/opacity, semantic-color bevels) into the same blocks; MuiFab\n // likewise (no radius swap on its silhouettes).\n const bevelHover: CSSObject = {\n borderTopWidth: 4,\n borderBottomWidth: 1,\n borderTopLeftRadius: radius.lg,\n borderTopRightRadius: radius.lg,\n borderBottomLeftRadius: radius.md,\n borderBottomRightRadius: radius.md,\n };\n const bevelPress: CSSObject = {\n // Snap the press faster than the 300ms hover flip so it feels tactile.\n transition:\n \"border-width 120ms ease, border-radius 120ms ease, opacity 120ms ease\",\n borderTopWidth: 1,\n borderTopLeftRadius: radius.md,\n borderTopRightRadius: radius.md,\n opacity: 0.75,\n };\n const bevel3D: CSSObject = {\n position: \"relative\",\n overflow: \"hidden\",\n transition:\n \"filter 300ms ease, border-width 300ms ease, border-radius 300ms ease, opacity 300ms ease, background-color 300ms ease\",\n borderStyle: \"solid\",\n borderTopWidth: 1,\n borderRightWidth: 1,\n borderLeftWidth: 1,\n borderBottomWidth: 4,\n borderBottomLeftRadius: radius.lg,\n borderBottomRightRadius: radius.lg,\n \"&::before\": {\n content: '\"\"',\n position: \"absolute\",\n left: 0,\n top: \"-150%\",\n width: \"100%\",\n height: 5,\n borderRadius: 4,\n backgroundColor: \"currentColor\",\n boxShadow: \"0 0 24px 4px currentColor\",\n // 0.3 matches MuiButton's contained sweep exactly — the consts and the\n // Button/Fab inline copies must not drift.\n opacity: 0.3,\n filter: \"blur(2px)\",\n pointerEvents: \"none\",\n transition: \"top 500ms ease-in-out\",\n },\n \"&:hover\": bevelHover,\n \"&:hover::before\": {\n top: \"150%\",\n },\n \"&:active\": bevelPress,\n \"@media (prefers-reduced-motion: reduce)\": {\n transition: \"none\",\n \"&::before\": { display: \"none\" },\n },\n };\n\n return {\n // ─── CssBaseline (global) ───────────────────────────────────────\n MuiCssBaseline: {\n styleOverrides: {\n body: {\n fontFeatureSettings: \"normal\",\n },\n },\n },\n\n // ─── Button ─────────────────────────────────────────────────────\n MuiButton: {\n defaultProps: {\n disableElevation: true,\n },\n styleOverrides: {\n // The interactive behaviour (faux-3D bevel that flips on hover, a\n // light sweep via ::before, brightness lift on filled, active press)\n // mirrors the forest-web Button. Colors are untouched — the bevel and\n // sweep use translucent `currentColor` so they adapt per variant.\n // Applied to `contained` + `outlined`; `text` keeps its flat styling.\n root: ({ ownerState, theme }) => {\n const interactive = ownerState.variant !== \"text\";\n const isContained = ownerState.variant === \"contained\";\n const isOutlined = ownerState.variant === \"outlined\";\n // Outlined sits on a light surface, so its `currentColor` sweep reads\n // too dark — lighten it toward white, drop opacity, add blur.\n const sweepColor = isOutlined\n ? \"color-mix(in srgb, currentColor 45%, #fff)\"\n : \"currentColor\";\n // Semantic colored faces (error/warning/success/info) need an in-hue\n // bevel — a translucent-white `currentColor` border washes out on a\n // colored background, especially under the hover brightness. Use a\n // darker shade of the button's own color scale instead (darker still\n // on hover so it survives the brightness).\n const colorScales = { error, warning, success, info } as Record<\n string,\n Record<number, string>\n >;\n const faceScale = ownerState.color\n ? colorScales[ownerState.color]\n : undefined;\n return {\n borderRadius: radius.md,\n fontWeight: 600,\n boxShadow: tokenShadows.xs,\n height: 32,\n padding: \"6px 12px\",\n fontSize: 14,\n lineHeight: \"20px\",\n \"&:focus-visible\": {\n boxShadow: focusRings.brandShadowXs,\n },\n ...(interactive && {\n position: \"relative\",\n overflow: \"hidden\",\n transition:\n \"filter 300ms ease, border-width 300ms ease, border-radius 300ms ease, opacity 300ms ease, background-color 300ms ease\",\n borderStyle: \"solid\",\n borderTopWidth: 1,\n borderRightWidth: 1,\n borderLeftWidth: 1,\n borderBottomWidth: 4,\n // Round the thick-bevel side more than the rest so the inner\n // surface isn't squared off. Follows the bevel: bottom at rest,\n // top on hover.\n borderBottomLeftRadius: radius.lg,\n borderBottomRightRadius: radius.lg,\n // Contained buttons have no border of their own — give them a\n // translucent bevel. Outlined keeps its own border color.\n ...(isContained && {\n // Greyscale bevel — visible on both the charcoal face and a\n // light page (white washed out on hover). Semantic colors keep\n // their in-hue bevel.\n borderColor: faceScale ? faceScale[700] : fg.tertiary,\n }),\n \"&::before\": {\n content: '\"\"',\n position: \"absolute\",\n left: 0,\n top: \"-150%\",\n width: \"100%\",\n height: 5,\n borderRadius: 4,\n backgroundColor: sweepColor,\n boxShadow: `0 0 24px 4px ${sweepColor}`,\n opacity: isOutlined ? 0.2 : 0.3,\n filter: isOutlined ? \"blur(3px)\" : \"blur(2px)\",\n pointerEvents: \"none\",\n transition: \"top 500ms ease-in-out\",\n },\n \"&:hover\": {\n borderTopWidth: 4,\n borderBottomWidth: 1,\n borderTopLeftRadius: radius.lg,\n borderTopRightRadius: radius.lg,\n borderBottomLeftRadius: radius.md,\n borderBottomRightRadius: radius.md,\n // One step lighter than the default bevel (60% → 70%) so it\n // stays visible against the brightened face on hover.\n ...(isContained && {\n // Light mode: the face is dark (charcoal/vivid), so a\n // brightness lift reads as a hover. Dark mode: the face is\n // already light — brightness(1.5) blows it out to near-white\n // and swallows the top bevel, so drop the lift and let the\n // bgHover darken provide the feedback instead.\n filter: \"brightness(1.5)\",\n ...(faceScale && { borderColor: faceScale[900] }),\n ...theme.applyStyles(\"dark\", {\n filter: \"brightness(1)\",\n }),\n }),\n },\n \"&:hover::before\": {\n top: \"150%\",\n },\n // Press: collapse the raised top bevel back to a thin edge so the\n // surface visibly sinks — the button reads as pushed deeper into\n // the page. Animated by the shared border-width transition above.\n \"&:active\": {\n // Snap the press faster than the 300ms hover flip so it feels\n // like a tactile click rather than a slow settle.\n transition:\n \"border-width 120ms ease, border-radius 120ms ease, opacity 120ms ease\",\n borderTopWidth: 1,\n borderTopLeftRadius: radius.md,\n borderTopRightRadius: radius.md,\n opacity: 0.75,\n },\n \"@media (prefers-reduced-motion: reduce)\": {\n transition: \"none\",\n \"&::before\": { display: \"none\" },\n },\n }),\n };\n },\n // Primary and Secondary are intentionally identical (greyscale system).\n containedPrimary: containedFill,\n containedSecondary: containedFill,\n outlinedPrimary: outlinedFill,\n outlinedSecondary: outlinedFill,\n text: {\n boxShadow: \"none\",\n },\n textPrimary: textFill,\n textSecondary: textFill,\n },\n },\n\n // ─── Button Group ───────────────────────────────────────────────\n // Variant alignment: each group variant renders its children EXACTLY like\n // the standalone <Button> of the same variant (contained = charcoal fill /\n // light-grey in dark; outlined = transparent + grey border; text = quiet).\n // Forest <Button> children force variant=\"contained\", so the outlined and\n // text groups must repaint the face at group level; contained needs no\n // repaint. Two group classes out-specify MuiButton's single variant class,\n // and the `:not(.Mui-disabled)` guard keeps MUI's disabled styling winning.\n MuiButtonGroup: {\n defaultProps: {\n disableElevation: true,\n },\n styleOverrides: {\n root: {\n borderRadius: radius.md,\n // contained group → children already render as contained Buttons; only\n // re-pin the bevel border color, which MUI's own grouped-contained\n // default (palette grey) otherwise overrides away from the standalone\n // Button's greyscale bevel.\n \"&.MuiButtonGroup-contained .MuiButtonGroup-grouped:not(.Mui-disabled)\":\n {\n borderColor: fg.tertiary,\n },\n // outlined group → the outlined-Button look (outlinedFill), including\n // its lightened hover sweep (the forced-contained children would\n // otherwise sweep at full currentColor strength).\n \"&.MuiButtonGroup-outlined .MuiButtonGroup-grouped:not(.Mui-disabled)\":\n {\n backgroundColor: \"transparent\",\n color: buttonColors.secondaryColor.fg,\n borderColor: buttonColors.secondaryColor.border,\n \"&::before\": {\n backgroundColor: \"color-mix(in srgb, currentColor 45%, #fff)\",\n boxShadow:\n \"0 0 24px 4px color-mix(in srgb, currentColor 45%, #fff)\",\n opacity: 0.2,\n filter: \"blur(3px)\",\n },\n \"&:hover\": {\n backgroundColor: \"transparent\",\n filter: \"brightness(0.97)\",\n },\n },\n // text group → the quiet text-Button look: flatten the inherited\n // bevel/sweep (incl. the contained hover brightness + radius flips),\n // kill the :active press-dim, keep the brand focus ring reachable.\n \"&.MuiButtonGroup-text .MuiButtonGroup-grouped:not(.Mui-disabled)\": {\n backgroundColor: \"transparent\",\n color: buttonColors.tertiaryColor.fg,\n borderWidth: 0,\n borderRadius: radius.md,\n boxShadow: \"none\",\n \"&::before\": { display: \"none\" },\n \"&:active\": { opacity: 1 },\n \"&:hover\": {\n backgroundColor: buttonColors.tertiaryColor.bgHover,\n filter: \"none\",\n },\n \"&:focus-visible\": {\n boxShadow: focusRings.brandShadowXs,\n },\n },\n // Text-group divider, painted per orientation (child borders are 0).\n \"&.MuiButtonGroup-text.MuiButtonGroup-horizontal .MuiButtonGroup-grouped:not(.Mui-disabled):not(:last-of-type)\":\n {\n borderRight: `1px solid ${border.secondary}`,\n },\n \"&.MuiButtonGroup-text.MuiButtonGroup-vertical .MuiButtonGroup-grouped:not(.Mui-disabled):not(:last-of-type)\":\n {\n borderBottom: `1px solid ${border.secondary}`,\n },\n },\n // No `grouped` divider override: contained/outlined separation comes\n // from the children's own (re-pinned) borders, same as standalone\n // Buttons sitting side by side; the text group paints its own divider.\n },\n },\n\n // ─── IconButton ─────────────────────────────────────────────────\n // Default (text) icon buttons stay bare. The forest IconButton wrapper can\n // opt into `variant=\"contained\" | \"outlined\"`, which adds the ForestIconButton\n // class(es) — those get the same faux-3D bevel + press as <Button>.\n MuiIconButton: {\n styleOverrides: {\n root: ({ theme }) => ({\n borderRadius: radius.md,\n padding: 6,\n \"& .MuiSvgIcon-root\": {\n fontSize: 20,\n },\n \"&.ForestIconButton\": {\n ...bevel3D,\n boxShadow: tokenShadows.xs,\n \"&:focus-visible\": {\n boxShadow: focusRings.brandShadowXs,\n },\n },\n \"&.ForestIconButton-contained\": {\n backgroundColor: buttonColors.primary.bg,\n color: buttonColors.primary.fg,\n borderColor: fg.tertiary,\n \"&:hover\": {\n backgroundColor: buttonColors.primary.bgHover,\n // Light mode: dark face, brightness lift reads as hover. Dark\n // mode: the face is already light — a lift blows out the top\n // bevel, so drop it and let bgHover provide the feedback.\n filter: \"brightness(1.5)\",\n ...theme.applyStyles(\"dark\", {\n filter: \"brightness(1)\",\n }),\n },\n },\n \"&.ForestIconButton-outlined\": {\n backgroundColor: \"transparent\",\n color: buttonColors.secondaryColor.fg,\n borderColor: buttonColors.secondaryColor.border,\n // Same lightened sweep as the outlined Button — full currentColor\n // reads too dark on the light outlined face.\n \"&::before\": {\n backgroundColor: \"color-mix(in srgb, currentColor 45%, #fff)\",\n boxShadow:\n \"0 0 24px 4px color-mix(in srgb, currentColor 45%, #fff)\",\n opacity: 0.2,\n filter: \"blur(3px)\",\n },\n \"&:hover\": {\n backgroundColor: \"transparent\",\n filter: \"brightness(0.97)\",\n },\n },\n // Disabled parity with the Button variants: MUI IconButton's own\n // .Mui-disabled (transparent bg + action.disabled icon) ties with the\n // variant faces at (0,2,0) and loses on insertion order — pin the\n // disabled treatment one class higher.\n \"&.ForestIconButton-contained.Mui-disabled\": {\n backgroundColor: (theme.vars || theme).palette.action\n .disabledBackground,\n color: (theme.vars || theme).palette.action.disabled,\n },\n \"&.ForestIconButton-outlined.Mui-disabled\": {\n color: (theme.vars || theme).palette.action.disabled,\n borderColor: border.disabled,\n },\n }),\n },\n },\n\n // ─── FAB ────────────────────────────────────────────────────────\n // A Fab is a round contained Button: same faux-3D bevel, light sweep,\n // brightness lift, and press. The border radii are left untouched so the\n // circular / extended silhouettes survive the bevel flip (no radius swap\n // like Button/IconButton do on their rounded corners).\n MuiFab: {\n styleOverrides: {\n root: ({ theme, ownerState }) => ({\n // `default` has no dedicated slot class, so fold it into root —\n // it renders the same contained fill as primary/secondary.\n ...((!ownerState.color || ownerState.color === \"default\") && fabFill),\n position: \"relative\",\n overflow: \"hidden\",\n boxShadow: tokenShadows.xs,\n transition:\n \"filter 300ms ease, border-width 300ms ease, opacity 300ms ease, background-color 300ms ease\",\n borderStyle: \"solid\",\n borderColor: fg.tertiary,\n borderTopWidth: 1,\n borderRightWidth: 1,\n borderLeftWidth: 1,\n borderBottomWidth: 4,\n \"&::before\": {\n content: '\"\"',\n position: \"absolute\",\n left: 0,\n top: \"-150%\",\n width: \"100%\",\n height: 5,\n borderRadius: 4,\n backgroundColor: \"currentColor\",\n boxShadow: \"0 0 24px 4px currentColor\",\n opacity: 0.3,\n filter: \"blur(2px)\",\n pointerEvents: \"none\",\n transition: \"top 500ms ease-in-out\",\n },\n \"&:hover\": {\n boxShadow: tokenShadows.xs,\n borderTopWidth: 4,\n borderBottomWidth: 1,\n // Light mode: dark face, brightness lift reads as hover. Dark\n // mode: the face is already light — a lift blows out the top\n // bevel, so drop it and let bgHover provide the feedback.\n filter: \"brightness(1.5)\",\n ...theme.applyStyles(\"dark\", {\n filter: \"brightness(1)\",\n }),\n },\n \"&:hover::before\": {\n top: \"150%\",\n },\n \"&:active\": {\n transition: \"border-width 120ms ease, opacity 120ms ease\",\n boxShadow: tokenShadows.xs,\n borderTopWidth: 1,\n opacity: 0.75,\n },\n \"&:focus-visible\": {\n boxShadow: focusRings.brandShadowSm,\n },\n \"@media (prefers-reduced-motion: reduce)\": {\n transition: \"none\",\n \"&::before\": { display: \"none\" },\n },\n }),\n // Greyscale parity with Button: primary and secondary both render the\n // contained charcoal fill. MUI defaults the icon color to\n // contrastText (always white); in dark the Fab face is light, so pin\n // the mode-aware fg (dark icon).\n primary: fabFill,\n secondary: fabFill,\n },\n },\n\n // ─── TextField / Input ──────────────────────────────────────────\n MuiTextField: {\n defaultProps: {\n variant: \"outlined\",\n },\n },\n MuiFormControl: {\n styleOverrides: {\n root: {\n \"&:has(.Mui-disabled)\": {\n opacity: 0.5,\n },\n },\n },\n },\n MuiInputBase: {\n styleOverrides: {\n input: {\n \"&::placeholder\": {\n color: text.placeholder,\n WebkitTextFillColor: text.placeholder,\n fontWeight: 400,\n opacity: 1,\n },\n },\n },\n },\n MuiOutlinedInput: {\n styleOverrides: {\n root: {\n borderRadius: radius.md,\n boxShadow: tokenShadows.xs,\n \"&&:hover:not(.Mui-focused):not(.Mui-disabled) .MuiOutlinedInput-notchedOutline\": {\n borderColor: border.brand,\n },\n \"&&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: border.brandSolid,\n borderWidth: 1,\n boxShadow: \"none\",\n },\n \"&&.Mui-error:not(.Mui-focused) .MuiOutlinedInput-notchedOutline\": {\n borderColor: border.error,\n },\n \"&&.Mui-error.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: border.errorSolid,\n boxShadow: \"none\",\n },\n \"& .MuiInputAdornment-root .MuiIconButton-root\": {\n color: fg.quaternary,\n \"&:hover\": {\n backgroundColor: bg.primaryHover,\n color: fg.brandPrimary,\n },\n },\n },\n notchedOutline: {\n borderColor: border.primary,\n },\n input: {\n padding: \"6px 12px\",\n fontSize: 14,\n lineHeight: \"20px\",\n },\n },\n },\n MuiFormLabel: {\n styleOverrides: {\n root: {\n color: text.placeholder,\n \"&.Mui-focused\": {\n color: text.placeholder,\n },\n \"&.Mui-error\": {\n color: text.errorPrimary,\n },\n },\n },\n },\n MuiInputLabel: {\n styleOverrides: {\n root: {\n fontSize: 14,\n fontWeight: 500,\n color: text.placeholder,\n \"&.Mui-focused\": {\n color: text.placeholder,\n },\n \"&.Mui-error\": {\n color: text.errorPrimary,\n },\n },\n outlined: {\n transform: \"translate(12px, 6px) scale(1)\",\n \"&.MuiInputLabel-shrink\": {\n transform: \"translate(14px, -9px) scale(0.75)\",\n },\n },\n },\n },\n MuiFormHelperText: {\n styleOverrides: {\n root: {\n fontSize: 14,\n lineHeight: \"20px\",\n marginTop: 6,\n marginLeft: 0,\n \"&.Mui-error\": {\n color: text.errorPrimary,\n },\n },\n },\n },\n\n // ─── Menu ──────────────────────────────────────────────────────\n MuiMenu: {\n defaultProps: {\n autoFocus: false,\n },\n styleOverrides: {\n root: {\n \"& .MuiBackdrop-root\": {\n backgroundColor: \"transparent\",\n },\n },\n },\n },\n\n // ─── Select ─────────────────────────────────────────────────────\n MuiSelect: {\n styleOverrides: {\n select: {\n \"&.MuiSelect-select\": {\n minHeight: \"auto\",\n padding: \"6px 32px 6px 12px\",\n fontSize: 14,\n lineHeight: \"20px\",\n },\n },\n icon: {\n color: text.placeholder,\n right: 8,\n },\n },\n },\n MuiMenuItem: {\n styleOverrides: {\n root: ({ theme }) => ({\n borderRadius: radius.md,\n padding: \"6px 8px\",\n gap: 4,\n \"&:hover\": {\n backgroundColor: bg.primaryHover,\n ...theme.applyStyles(\"dark\", { backgroundColor: bg.active }),\n },\n // Selected: keep the label color, mark it with weight + a neutral\n // (non-violet) background. bg.active adapts per scheme.\n \"&.Mui-selected\": {\n backgroundColor: bg.active,\n fontWeight: 600,\n // ListItemText primary hardcodes its own color/weight — re-point\n // weight here so selected labels bold (e.g. MultiSelect).\n \"& .MuiListItemText-primary\": {\n fontWeight: 600,\n },\n \"&:hover\": {\n backgroundColor: bg.active,\n },\n },\n }),\n },\n },\n\n // ─── Autocomplete ───────────────────────────────────────────────\n MuiAutocomplete: {\n styleOverrides: {\n paper: {\n borderRadius: radius.md,\n boxShadow: tokenShadows.lg,\n border: `1px solid ${border.secondary}`,\n marginTop: 4,\n },\n inputRoot: {\n // Override Autocomplete's default padding so the input height stays 32px\n padding: \"0 12px\",\n \"&.MuiOutlinedInput-root .MuiAutocomplete-input\": {\n padding: \"6px 0\",\n fontSize: 14,\n lineHeight: \"20px\",\n },\n },\n option: {\n fontSize: 14,\n lineHeight: \"20px\",\n padding: \"6px 12px\",\n // Hover + selected backgrounds come from MUI's theme-aware action\n // overlays (a light overlay on dark, so they stay visible — a solid\n // dark-grey tier here reads as \"no hover\"). Selected keeps the text\n // color (no violet) and is marked with weight only.\n '&[aria-selected=\"true\"]': {\n fontWeight: 600,\n },\n },\n listbox: {\n padding: 4,\n },\n },\n },\n\n // ─── Checkbox ───────────────────────────────────────────────────\n MuiCheckbox: {\n defaultProps: {\n disableRipple: true,\n },\n styleOverrides: {\n root: {\n color: border.primary,\n borderRadius: radius.xs,\n padding: 0,\n width: 20,\n height: 20,\n \"&:hover\": {\n backgroundColor: \"transparent\",\n color: fg.brandPrimary,\n },\n \"&.Mui-checked\": {\n color: fg.brandPrimary,\n },\n \"&.Mui-checked:hover\": {\n color: buttonColors.primary.bgHover,\n },\n \"&.Mui-focusVisible\": {\n outline: \"none\",\n boxShadow: focusRings.brand,\n borderRadius: radius.xs,\n },\n \"&.Mui-disabled\": {\n color: border.primary,\n },\n },\n },\n },\n\n // ─── Radio ──────────────────────────────────────────────────────\n MuiRadio: {\n defaultProps: {\n disableRipple: true,\n },\n styleOverrides: {\n root: {\n color: border.primary,\n padding: 0,\n \"&:hover\": {\n backgroundColor: \"transparent\",\n color: fg.brandPrimary,\n },\n \"&.Mui-checked\": {\n color: fg.brandPrimary,\n },\n \"&.Mui-checked:hover\": {\n color: buttonColors.primary.bgHover,\n },\n \"&.Mui-focusVisible\": {\n outline: \"none\",\n boxShadow: focusRings.brand,\n borderRadius: radius.full,\n },\n \"&.Mui-disabled\": {\n color: border.primary,\n },\n },\n },\n },\n\n // ─── Switch ─────────────────────────────────────────────────────\n MuiSwitch: {\n defaultProps: {\n disableRipple: true,\n },\n styleOverrides: {\n root: {\n width: 44,\n height: 24,\n padding: 0,\n // MUI's `size=\"small\"` variant only half-applies here: the theme pins\n // the track at the wide 44px medium geometry, but MUI still shrinks the\n // thumb (16px), bumps switchBase padding (4px), and cuts the checked\n // travel to 16px — leaving the thumb parked mid-track. Forest ships a\n // single calibrated 24px switch, so neutralize `small` back to it.\n \"&.MuiSwitch-sizeSmall\": {\n \"& .MuiSwitch-switchBase\": {\n padding: 2,\n \"&.Mui-checked\": { transform: \"translateX(20px)\" },\n },\n \"& .MuiSwitch-thumb\": { width: 20, height: 20 },\n },\n },\n switchBase: {\n padding: 2,\n \"&.Mui-checked\": {\n transform: \"translateX(20px)\",\n // Thumb sits on the brand track. In dark the track is light-grey, so\n // a white thumb vanished — use the mode-aware on-brand fg (dark in\n // dark, white in light).\n color: buttonColors.primary.fg,\n \"& + .MuiSwitch-track\": {\n backgroundColor: fg.brandPrimary,\n opacity: 1,\n },\n },\n \"&.Mui-checked:hover + .MuiSwitch-track\": {\n backgroundColor: buttonColors.primary.bgHover,\n },\n \"&.Mui-focusVisible .MuiSwitch-thumb\": {\n boxShadow: focusRings.brand,\n },\n \"&.Mui-disabled .MuiSwitch-thumb\": {\n color: bg.disabled,\n },\n \"&.Mui-disabled + .MuiSwitch-track\": {\n opacity: 0.5,\n },\n },\n thumb: {\n width: 20,\n height: 20,\n boxShadow: \"0px 1px 2px 0px #1018280d\",\n },\n track: {\n borderRadius: radius.full,\n backgroundColor: border.secondary,\n opacity: 1,\n // Faux-3D bottom edge (button-family cue), adapted for a pill: an\n // inset bottom shadow instead of a real border, so the sliding thumb\n // never collides with it. Reads on both light and dark tracks.\n boxShadow: \"inset 0 -3px 0 0 rgba(0,0,0,0.18)\",\n },\n },\n },\n\n // ─── Toggle Button ─────────────────────────────────────────────\n // Aligned with the contained <Button>: same face, same faux-3D bevel and\n // hover flip. Selected = the pressed Button held down — bevel collapsed,\n // dimmed, slightly inset. A toggle is a button that stays pushed in.\n MuiToggleButton: {\n styleOverrides: {\n root: ({ theme }) => ({\n ...bevel3D,\n ...containedFill,\n borderColor: fg.tertiary,\n fontSize: 14,\n fontWeight: 600,\n lineHeight: \"20px\",\n height: 32,\n padding: \"6px 12px\",\n textTransform: \"none\",\n boxShadow: tokenShadows.xs,\n \"&:hover\": {\n ...bevelHover,\n backgroundColor: buttonColors.primary.bgHover,\n // Same mode split as the contained Button: the brightness lift\n // reads on the dark light-mode face but blows out the light\n // dark-mode face.\n filter: \"brightness(1.5)\",\n ...theme.applyStyles(\"dark\", {\n filter: \"brightness(1)\",\n }),\n },\n \"&.Mui-selected\": {\n backgroundColor: buttonColors.primary.bg,\n color: buttonColors.primary.fg,\n borderTopWidth: 1,\n borderBottomWidth: 1,\n borderTopLeftRadius: radius.md,\n borderTopRightRadius: radius.md,\n borderBottomLeftRadius: radius.md,\n borderBottomRightRadius: radius.md,\n opacity: 0.75,\n boxShadow: \"inset 0 2px 4px 0 rgba(0,0,0,0.3)\",\n \"&::before\": { display: \"none\" },\n // Stays pressed on hover — no bevel re-raise, no brightness lift.\n \"&:hover\": {\n backgroundColor: buttonColors.primary.bg,\n filter: \"none\",\n borderTopWidth: 1,\n borderBottomWidth: 1,\n borderTopLeftRadius: radius.md,\n borderTopRightRadius: radius.md,\n },\n },\n // Disabled parity with the disabled contained Button: greyed face +\n // disabled fg, bevel geometry retained. MUI's own .Mui-disabled rule\n // only swaps color and border-shorthands the bevel away — and ties\n // with .Mui-selected at (0,2,0) — so this block sits AFTER selected\n // to win both.\n \"&.Mui-disabled\": {\n backgroundColor: (theme.vars || theme).palette.action\n .disabledBackground,\n color: (theme.vars || theme).palette.action.disabled,\n borderStyle: \"solid\",\n borderColor: fg.tertiary,\n borderTopWidth: 1,\n borderRightWidth: 1,\n borderLeftWidth: 1,\n borderBottomWidth: 4,\n \"&::before\": { display: \"none\" },\n // selected+disabled keeps the pressed-in cue, greyed.\n \"&.Mui-selected\": {\n borderBottomWidth: 1,\n boxShadow: \"inset 0 2px 4px 0 rgba(0,0,0,0.15)\",\n },\n },\n \"&:focus-visible\": {\n boxShadow: focusRings.brandShadowXs,\n },\n }),\n },\n },\n MuiToggleButtonGroup: {\n styleOverrides: {\n root: {\n borderRadius: radius.md,\n overflow: \"hidden\",\n },\n // The child ToggleButton's selected/hover/active rules set per-corner\n // radii and win insertion-order ties at (0,2,0), which would round the\n // internal seam corners of a segmented control. Re-pin every state at\n // higher specificity: seams stay square, only outer corners round.\n grouped: {\n borderRadius: 0,\n \"&:hover, &:active, &.Mui-selected\": {\n borderRadius: 0,\n },\n \"&:not(:first-of-type)\": {\n marginLeft: -1,\n },\n \"&:first-of-type\": {\n \"&, &:hover, &:active, &.Mui-selected\": {\n borderTopLeftRadius: radius.md,\n borderBottomLeftRadius: radius.md,\n },\n },\n \"&:last-of-type\": {\n \"&, &:hover, &:active, &.Mui-selected\": {\n borderTopRightRadius: radius.md,\n borderBottomRightRadius: radius.md,\n },\n },\n },\n },\n },\n\n\n\n // ─── Drawer (used by Sidebar) ─────────────────────────────────\n MuiDrawer: {\n styleOverrides: {\n paper: {\n backgroundColor: bg.primary,\n borderRight: `1px solid ${border.secondary}`,\n },\n },\n },\n\n // ─── Card ───────────────────────────────────────────────────────\n MuiCard: {\n defaultProps: {\n elevation: 0,\n },\n styleOverrides: {\n root: {\n borderRadius: radius.xl,\n border: `1px solid ${border.secondary}`,\n backgroundColor: bg.primary,\n boxShadow: tokenShadows.xs,\n overflow: \"hidden\",\n },\n },\n },\n MuiCardContent: {\n styleOverrides: {\n root: {\n padding: \"24px\",\n \"&:last-child\": {\n paddingBottom: \"24px\",\n },\n },\n },\n },\n MuiCardHeader: {\n styleOverrides: {\n root: {\n padding: \"24px 24px 0 24px\",\n },\n title: {\n fontSize: 18,\n fontWeight: 600,\n lineHeight: \"28px\",\n },\n subheader: {\n fontSize: 14,\n lineHeight: \"20px\",\n marginTop: 4,\n },\n action: {\n marginTop: -4,\n marginRight: -4,\n },\n },\n },\n\n // ─── Paper ──────────────────────────────────────────────────────\n MuiPaper: {\n defaultProps: {\n elevation: 0,\n },\n styleOverrides: {\n root: {\n backgroundImage: \"none\",\n },\n rounded: {\n borderRadius: radius.lg,\n },\n elevation1: {\n boxShadow: tokenShadows.xs,\n border: `1px solid ${border.secondary}`,\n },\n elevation2: {\n boxShadow: tokenShadows.sm,\n border: `1px solid ${border.secondary}`,\n },\n elevation3: {\n boxShadow: tokenShadows.md,\n border: `1px solid ${border.secondary}`,\n },\n elevation4: {\n boxShadow: tokenShadows.lg,\n border: `1px solid ${border.secondary}`,\n },\n elevation8: {\n boxShadow: tokenShadows.xl,\n border: `1px solid ${border.secondary}`,\n },\n elevation16: {\n boxShadow: tokenShadows[\"2xl\"],\n border: `1px solid ${border.secondary}`,\n },\n elevation24: {\n boxShadow: tokenShadows[\"3xl\"],\n border: `1px solid ${border.secondary}`,\n },\n },\n },\n\n // ─── Accordion ──────────────────────────────────────────────────\n MuiAccordion: {\n defaultProps: {\n disableGutters: true,\n elevation: 0,\n },\n styleOverrides: {\n root: {\n border: `1px solid ${border.secondary}`,\n borderRadius: radius.lg,\n \"&:not(:last-child)\": {\n marginBottom: 8,\n },\n \"&:before\": {\n display: \"none\",\n },\n \"&.Mui-expanded\": {\n margin: 0,\n marginBottom: 8,\n borderRadius: radius.lg,\n },\n },\n },\n },\n MuiAccordionSummary: {\n styleOverrides: {\n root: {\n padding: \"0 24px\",\n minHeight: 56,\n \"&.Mui-expanded\": {\n minHeight: 56,\n borderBottom: `1px solid ${border.secondary}`,\n },\n },\n content: {\n margin: \"12px 0\",\n \"&.Mui-expanded\": {\n margin: \"12px 0\",\n },\n },\n },\n },\n MuiAccordionDetails: {\n styleOverrides: {\n root: {\n padding: \"24px\",\n },\n },\n },\n\n // ─── AppBar ─────────────────────────────────────────────────────\n MuiAppBar: {\n defaultProps: {\n elevation: 0,\n color: \"transparent\",\n },\n styleOverrides: {\n root: {\n borderBottom: `1px solid ${border.secondary}`,\n backgroundColor: bg.primary,\n },\n },\n },\n MuiToolbar: {\n styleOverrides: {\n root: {\n minHeight: 64,\n \"@media (min-width: 600px)\": {\n minHeight: 64,\n },\n },\n dense: {\n minHeight: 48,\n \"@media (min-width: 600px)\": {\n minHeight: 48,\n },\n },\n },\n },\n\n // ─── Tabs ──────────────────────────────────────────────────────────\n MuiTabs: {\n styleOverrides: {\n root: {\n minHeight: 48,\n },\n // Primary (brand) scale via varified tokens so it adapts per scheme:\n // charcoal on light, light-grey on dark.\n indicator: {\n backgroundColor: bg.brandSolid,\n height: 2,\n },\n },\n },\n MuiTab: {\n styleOverrides: {\n root: {\n minHeight: 48,\n height: 48,\n padding: \"12px 16px\",\n fontSize: 14,\n fontWeight: 600,\n lineHeight: \"20px\",\n textTransform: \"none\",\n color: text.tertiary,\n borderRadius: `${radius.md}px ${radius.md}px 0 0`,\n \"&:hover\": {\n backgroundColor: bg.primaryHover,\n },\n // Selected face uses brand bg/text tokens — light brand tint + dark\n // text on light; dark-grey face + light text on dark.\n \"&.Mui-selected\": {\n color: text.brandPrimary,\n backgroundColor: bg.brandPrimary,\n },\n },\n },\n },\n\n // ─── Chip ───────────────────────────────────────────────────────\n MuiChip: {\n variants: [\n ...(highlight\n ? [\n {\n props: { color: \"highlight\" as const },\n style: {\n \"&.MuiChip-filled\": {\n backgroundColor: highlight[600],\n color: base.white,\n \"& .MuiChip-deleteIcon\": { color: highlight[200] },\n },\n \"&.MuiChip-outlined\": {\n borderColor: highlight[300],\n color: highlight[700],\n \"& .MuiChip-deleteIcon\": { color: highlight[400] },\n },\n },\n },\n ]\n : []),\n ],\n styleOverrides: {\n // ponytail: single 20px chip size — sizeSmall/sizeMedium render identically\n root: {\n borderRadius: radius.md,\n height: 20,\n fontSize: 14,\n lineHeight: \"20px\",\n },\n label: {\n fontWeight: 500,\n paddingLeft: 6,\n paddingRight: 6,\n },\n icon: {\n marginLeft: 6,\n marginRight: -2, // 4px gap to label (label pads 6)\n },\n deleteIcon: {\n fontSize: 14,\n marginRight: 6,\n marginLeft: -2,\n },\n colorDefault: {\n \"&.MuiChip-filled\": {\n backgroundColor: tokens.bg.secondaryHover,\n color: tokens.fg.secondary,\n \"& .MuiChip-deleteIcon\": { color: tokens.fg.quinary },\n },\n },\n colorPrimary: {\n \"&.MuiChip-filled\": {\n backgroundColor: tokens.bg.brandPrimary,\n color: tokens.fg.brandPrimary,\n \"& .MuiChip-deleteIcon\": { color: tokens.fg.brandPrimary },\n },\n },\n colorSecondary: {\n \"&.MuiChip-filled\": {\n backgroundColor: highlight ? highlight[50] : tokens.bg.secondarySubtle,\n color: highlight ? highlight[700] : tokens.text.secondary,\n \"& .MuiChip-deleteIcon\": {\n color: highlight ? highlight[500] : tokens.fg.secondary,\n },\n },\n },\n colorError: {\n \"&.MuiChip-filled\": {\n backgroundColor: error[50],\n color: error[700],\n \"& .MuiChip-deleteIcon\": { color: error[400] },\n },\n },\n colorWarning: {\n \"&.MuiChip-filled\": {\n backgroundColor: warning[50],\n color: warning[700],\n \"& .MuiChip-deleteIcon\": { color: warning[400] },\n },\n },\n colorSuccess: {\n \"&.MuiChip-filled\": {\n backgroundColor: success[50],\n color: success[700],\n \"& .MuiChip-deleteIcon\": { color: success[400] },\n },\n },\n colorInfo: {\n \"&.MuiChip-filled\": {\n backgroundColor: info[50],\n color: info[700],\n \"& .MuiChip-deleteIcon\": { color: info[400] },\n },\n },\n },\n },\n\n // ─── Form Control / Label ───────────────────────────────────────\n MuiFormControlLabel: {\n styleOverrides: {\n root: {\n marginLeft: 0,\n gap: 8,\n },\n label: {\n fontSize: 14,\n lineHeight: \"20px\",\n fontWeight: 500,\n color: text.secondary,\n },\n },\n },\n\n // ─── Table ───────────────────────────────────────────────────────\n MuiTable: {\n styleOverrides: {\n root: {\n borderCollapse: \"separate\",\n borderSpacing: 0,\n },\n },\n },\n MuiTableCell: {\n styleOverrides: {\n root: {\n borderBottom: `1px solid ${border.secondary}`,\n padding: \"16px 24px\",\n fontSize: 14,\n lineHeight: \"20px\",\n color: fg.tertiary,\n },\n head: {\n backgroundColor: bg.secondary,\n color: fg.tertiary,\n fontWeight: 500,\n fontSize: 12,\n lineHeight: \"18px\",\n },\n body: {\n color: fg.tertiary,\n },\n },\n },\n MuiTableHead: {\n styleOverrides: {\n root: {\n backgroundColor: bg.secondary,\n \"& .MuiTableRow-root:last-child .MuiTableCell-root\": {\n borderBottom: `1px solid ${border.secondary}`,\n },\n },\n },\n },\n MuiTableRow: {\n styleOverrides: {\n root: {\n backgroundColor: bg.secondary,\n \"&:last-child td, &:last-child th\": {\n border: 0,\n },\n \"&:hover\": {\n backgroundColor: bg.primaryHover,\n },\n \"&.Mui-selected\": {\n backgroundColor: info[50],\n \"&:hover\": {\n backgroundColor: info[100],\n },\n },\n },\n },\n },\n MuiTableContainer: {\n styleOverrides: {\n root: {\n borderRadius: radius.xl,\n border: `1px solid ${border.secondary}`,\n boxShadow: \"none\",\n },\n },\n },\n\n // ─── Badge ──────────────────────────────────────────────────────\n MuiBadge: {\n styleOverrides: {\n standard: {\n fontWeight: 500,\n fontSize: 12,\n lineHeight: \"18px\",\n minWidth: 20,\n height: 20,\n borderRadius: radius.full,\n },\n colorPrimary: {\n backgroundColor: bg.brandSolid,\n // brandSolid is a dark charcoal in light mode but a LIGHT grey in\n // dark; MUI's default white contrastText then vanishes on it. Pin the\n // on-brand fg (white in light / dark in dark) so the count stays legible.\n color: buttonColors.primary.fg,\n },\n colorSecondary: {\n // secondarySolid inverts to a LIGHT grey in dark; the raw MUI\n // contrastText stays white and is unreadable. Pin a mode-aware fg.\n backgroundColor: bg.secondarySolid,\n color: buttonColors.secondary.fg,\n },\n colorError: {\n backgroundColor: bg.errorSolid,\n },\n colorSuccess: {\n backgroundColor: bg.successSolid,\n },\n colorWarning: {\n backgroundColor: bg.warningSolid,\n },\n dot: {\n minWidth: 8,\n height: 8,\n borderRadius: radius.full,\n ...(highlight && {\n \"&.MuiBadge-colorDefault, &.MuiBadge-colorPrimary\": {\n backgroundColor: highlight[500],\n },\n }),\n },\n },\n },\n\n // ─── Divider ────────────────────────────────────────────────────\n MuiDivider: {\n styleOverrides: {\n root: {\n borderColor: border.secondary,\n },\n },\n },\n\n // ─── List ───────────────────────────────────────────────────────\n MuiList: {\n styleOverrides: {\n root: {\n padding: 4,\n },\n },\n },\n MuiListItemButton: {\n styleOverrides: {\n root: {\n borderRadius: radius.sm,\n padding: \"8px 12px\",\n \"&:hover\": {\n backgroundColor: bg.primaryHover,\n },\n \"&.Mui-selected\": {\n backgroundColor: info[50],\n color: info[700],\n \"&:hover\": {\n backgroundColor: info[100],\n },\n },\n },\n },\n },\n MuiListItemIcon: {\n styleOverrides: {\n root: {\n minWidth: 36,\n color: fg.quaternary,\n },\n },\n },\n MuiListItemText: {\n styleOverrides: {\n primary: {\n fontSize: 14,\n lineHeight: \"20px\",\n fontWeight: 500,\n color: text.secondary,\n },\n secondary: {\n fontSize: 14,\n lineHeight: \"20px\",\n color: text.quaternary,\n },\n },\n },\n\n // ─── Tooltip ────────────────────────────────────────────────────\n MuiTooltip: {\n styleOverrides: {\n tooltip: {\n // Inverted surface: charcoal in light mode, near-white in dark. The\n // text must invert WITH the face (text.white is mode-invariant and\n // vanished on the dark-mode light face) — primary.fg is the on-solid\n // fg: white in light, near-black in dark.\n backgroundColor: bg.primarySolid,\n color: buttonColors.primary.fg,\n fontSize: 12,\n lineHeight: \"18px\",\n fontWeight: 600,\n padding: \"8px 12px\",\n borderRadius: radius.md,\n boxShadow: tokenShadows.lg,\n },\n arrow: {\n color: bg.primarySolid,\n },\n },\n },\n\n // ─── Alert ──────────────────────────────────────────────────────\n MuiAlert: {\n defaultProps: {\n variant: \"standard\",\n },\n variants: [\n ...(highlight\n ? [\n {\n props: { variant: \"featured\" as const },\n style: {\n borderRadius: radius.xl,\n fontSize: 14,\n lineHeight: \"20px\",\n padding: \"12px 16px\",\n alignItems: \"center\",\n backgroundColor: highlight[50],\n color: highlight[700],\n border: `1px solid ${highlight[200]}`,\n \"& .MuiAlert-icon\": {\n color: highlight[600],\n padding: 0,\n marginRight: 12,\n },\n \"& .MuiAlertTitle-root\": {\n color: highlight[800],\n },\n },\n },\n ]\n : []),\n ],\n styleOverrides: {\n root: {\n borderRadius: radius.xl,\n fontSize: 14,\n lineHeight: \"20px\",\n padding: \"12px 16px\",\n alignItems: \"center\",\n },\n // All four severities share one scheme so they read consistently:\n // light → bg [50], text [700], border [300], icon [600]\n // dark → bg [950], text [200], border [800], icon [400]\n // Light is unchanged; dark uses a deep tinted bg with a LIGHT text tint\n // (the previous [700] text sat too dark on the deep dark bg), and info\n // now goes dark like the rest instead of staying light.\n standardError: ({ theme }) => ({\n backgroundColor: error[50],\n color: error[700],\n border: `1px solid ${error[300]}`,\n \"& .MuiAlert-icon\": { color: error[600] },\n ...theme.applyStyles(\"dark\", {\n backgroundColor: error[950],\n color: error[200],\n border: `1px solid ${error[800]}`,\n \"& .MuiAlert-icon\": { color: error[400] },\n }),\n }),\n standardWarning: ({ theme }) => ({\n backgroundColor: warning[50],\n color: warning[700],\n border: `1px solid ${warning[300]}`,\n \"& .MuiAlert-icon\": { color: warning[600] },\n ...theme.applyStyles(\"dark\", {\n backgroundColor: warning[950],\n color: warning[200],\n border: `1px solid ${warning[800]}`,\n \"& .MuiAlert-icon\": { color: warning[400] },\n }),\n }),\n standardSuccess: ({ theme }) => ({\n backgroundColor: success[50],\n color: success[700],\n border: `1px solid ${success[300]}`,\n \"& .MuiAlert-icon\": { color: success[600] },\n ...theme.applyStyles(\"dark\", {\n backgroundColor: success[950],\n color: success[200],\n border: `1px solid ${success[800]}`,\n \"& .MuiAlert-icon\": { color: success[400] },\n }),\n }),\n standardInfo: ({ theme }) => ({\n backgroundColor: info[50],\n color: info[700],\n border: `1px solid ${info[300]}`,\n \"& .MuiAlert-icon\": { color: info[600] },\n ...theme.applyStyles(\"dark\", {\n backgroundColor: info[950],\n color: info[200],\n border: `1px solid ${info[800]}`,\n \"& .MuiAlert-icon\": { color: info[400] },\n }),\n }),\n icon: {\n padding: 0,\n marginRight: 12,\n },\n },\n },\n MuiAlertTitle: {\n styleOverrides: {\n root: {\n fontWeight: 600,\n fontSize: 14,\n lineHeight: \"20px\",\n marginBottom: 4,\n },\n },\n },\n\n // ─── Backdrop ───────────────────────────────────────────────────\n MuiBackdrop: {\n styleOverrides: {\n // Neutral greyscale scrim (was a blue-tinted #101828). gray[950] with\n // alpha reads as a true-neutral dim in both light and dark.\n root: {\n backgroundColor: \"rgba(9, 9, 11, 0.7)\",\n },\n },\n },\n\n // ─── Dialog ─────────────────────────────────────────────────────\n MuiDialog: {\n styleOverrides: {\n paper: {\n borderRadius: radius.xl,\n boxShadow: tokenShadows.xl,\n padding: 0,\n },\n },\n },\n MuiDialogTitle: {\n styleOverrides: {\n root: {\n fontSize: 18,\n lineHeight: \"28px\",\n fontWeight: 600,\n color: text.primary,\n padding: \"24px 24px 0\",\n },\n },\n },\n MuiDialogContent: {\n styleOverrides: {\n root: {\n padding: \"20px 24px\",\n fontSize: 14,\n lineHeight: \"20px\",\n color: text.tertiary,\n },\n },\n },\n MuiDialogActions: {\n styleOverrides: {\n root: {\n padding: \"0 24px 24px\",\n gap: 12,\n },\n },\n },\n\n // ─── Progress ───────────────────────────────────────────────────\n MuiLinearProgress: {\n styleOverrides: {\n root: {\n borderRadius: radius.full,\n height: 8,\n backgroundColor: border.secondary,\n },\n barColorPrimary: {\n backgroundColor: fg.brandPrimary,\n borderRadius: radius.full,\n },\n barColorSecondary: {\n backgroundColor: bg.secondarySolid,\n borderRadius: radius.full,\n },\n },\n },\n MuiCircularProgress: {\n styleOverrides: {\n colorPrimary: {\n color: fg.brandPrimary,\n },\n colorSecondary: {\n color: bg.secondarySolid,\n },\n },\n },\n\n // ─── Skeleton ───────────────────────────────────────────────────\n MuiSkeleton: {\n defaultProps: {\n animation: \"wave\",\n },\n styleOverrides: {\n root: {\n backgroundColor: bg.tertiary,\n },\n rounded: {\n borderRadius: radius.md,\n },\n circular: {\n borderRadius: radius.full,\n },\n },\n },\n\n // ─── Snackbar ───────────────────────────────────────────────────\n MuiSnackbarContent: {\n styleOverrides: {\n // A toast is an inverse surface: charcoal in light. bg.primarySolid\n // inverts to a light value in dark (white-on-white), so pin the dark\n // scheme to a dark grey with light text instead.\n root: ({ theme }) => ({\n backgroundColor: bg.primarySolid,\n color: text.white,\n borderRadius: radius.xl,\n boxShadow: tokenShadows.lg,\n fontSize: 14,\n lineHeight: \"20px\",\n fontWeight: 500,\n padding: \"6px 16px\",\n ...theme.applyStyles(\"dark\", {\n backgroundColor: bg.tertiary,\n color: text.primary,\n }),\n }),\n },\n },\n\n // ─── Typography ─────────────────────────────────────────────────\n MuiTypography: {\n defaultProps: {\n variantMapping: {\n h1: \"h1\",\n h2: \"h2\",\n h3: \"h3\",\n h4: \"h4\",\n h5: \"h5\",\n h6: \"h6\",\n subtitle1: \"p\",\n subtitle2: \"p\",\n body1: \"p\",\n body2: \"p\",\n caption: \"span\",\n overline: \"span\",\n },\n },\n },\n\n // ─── Slider ─────────────────────────────────────────────────────\n MuiSlider: {\n styleOverrides: {\n root: {\n color: fg.brandPrimary,\n height: 8,\n \"&.Mui-disabled\": {\n color: border.secondary,\n },\n },\n thumb: {\n width: 20,\n height: 20,\n backgroundColor: sliderColors.handleBg,\n border: `2px solid ${sliderColors.handleBorder}`,\n boxShadow: tokenShadows.xs,\n \"&:hover, &.Mui-focusVisible\": {\n boxShadow: focusRings.brandShadowXs,\n },\n \"&.Mui-active\": {\n boxShadow: focusRings.brandShadowSm,\n },\n },\n track: {\n borderRadius: radius.full,\n border: \"none\",\n },\n rail: {\n backgroundColor: border.secondary,\n borderRadius: radius.full,\n opacity: 1,\n },\n valueLabel: {\n backgroundColor: bg.primarySolid,\n borderRadius: radius.md,\n fontSize: 12,\n fontWeight: 600,\n padding: \"4px 8px\",\n },\n mark: {\n backgroundColor: border.secondary,\n width: 4,\n height: 4,\n borderRadius: radius.full,\n },\n markActive: {\n backgroundColor: fg.brandPrimary,\n },\n markLabel: {\n fontSize: 12,\n color: text.tertiary,\n },\n },\n },\n\n // ─── Rating ─────────────────────────────────────────────────────\n MuiRating: {\n styleOverrides: {\n root: {\n color: fg.brandPrimary,\n gap: 4,\n },\n iconEmpty: {\n color: border.secondary,\n },\n iconFilled: {\n color: fg.brandPrimary,\n },\n iconHover: {\n color: buttonColors.primary.bgHover,\n },\n },\n },\n\n // ─── Pagination ─────────────────────────────────────────────────\n MuiPagination: {\n defaultProps: {\n shape: \"rounded\",\n },\n },\n MuiPaginationItem: {\n styleOverrides: {\n root: {\n borderRadius: radius.md,\n fontSize: 14,\n fontWeight: 500,\n color: text.secondary,\n \"&:hover\": {\n backgroundColor: bg.primaryHover,\n },\n \"&.Mui-selected\": {\n backgroundColor: fg.brandPrimary,\n // fg.brandPrimary is charcoal in light but a LIGHT grey in dark, so\n // a hardcoded white number vanished. primary.fg is the on-solid fg\n // (white in light / near-black in dark) — inverts with the face.\n color: buttonColors.primary.fg,\n \"&:hover\": {\n backgroundColor: buttonColors.primary.bgHover,\n },\n },\n \"&.Mui-focusVisible\": {\n boxShadow: focusRings.brandShadowXs,\n },\n },\n outlined: {\n border: `1px solid ${border.primary}`,\n \"&.Mui-selected\": {\n backgroundColor: fg.brandPrimary,\n color: buttonColors.primary.fg,\n borderColor: fg.brandPrimary,\n },\n },\n },\n },\n\n // ─── Avatar ─────────────────────────────────────────────────────\n MuiAvatar: {\n styleOverrides: {\n root: {\n backgroundColor: avatarColors.bg,\n // MUI defaults letter/initials color to palette.background.default\n // (near-invisible on the avatar bg, esp. in dark). Set it explicitly;\n // avatarColors.fg is a palette var so it swaps per scheme.\n color: avatarColors.fg,\n fontSize: 14,\n fontWeight: 600,\n border: `1.5px solid ${avatarColors.contrastBorder}`,\n },\n rounded: {\n borderRadius: radius.md,\n },\n },\n },\n MuiAvatarGroup: {\n styleOverrides: {\n avatar: {\n border: `2px solid ${avatarColors.profilePhotoBorder}`,\n width: 32,\n height: 32,\n fontSize: 13,\n fontWeight: 600,\n },\n },\n },\n\n // ─── BottomNavigation ───────────────────────────────────────────\n MuiBottomNavigation: {\n styleOverrides: {\n root: {\n backgroundColor: bg.primary,\n borderTop: `1px solid ${border.secondary}`,\n },\n },\n },\n MuiBottomNavigationAction: {\n styleOverrides: {\n root: {\n color: fg.quaternary,\n \"&.Mui-selected\": {\n color: fg.brandPrimary,\n },\n },\n label: {\n fontSize: 12,\n fontWeight: 500,\n \"&.Mui-selected\": {\n fontSize: 12,\n fontWeight: 600,\n },\n },\n },\n },\n\n // ─── SpeedDial ──────────────────────────────────────────────────\n // The main FAB renders a MuiFab internally, so it inherits the full\n // faux-3D Fab styling (bevel, light sweep, hover lift) with no override\n // here. Only the smaller action buttons get their own flat treatment.\n MuiSpeedDialAction: {\n styleOverrides: {\n fab: {\n backgroundColor: bg.primary,\n color: fg.secondary,\n boxShadow: tokenShadows.sm,\n border: `1px solid ${border.secondary}`,\n \"&:hover\": {\n backgroundColor: bg.primaryHover,\n },\n },\n staticTooltipLabel: {\n // Match MuiTooltip: inverted face (charcoal in light, near-white in\n // dark) with on-solid fg that inverts WITH it. text.white is\n // mode-invariant and vanished on the dark-mode light face.\n backgroundColor: bg.primarySolid,\n color: buttonColors.primary.fg,\n fontSize: 12,\n fontWeight: 600,\n borderRadius: radius.md,\n whiteSpace: \"nowrap\",\n },\n },\n },\n\n // ─── Stepper ────────────────────────────────────────────────────\n MuiStepper: {\n styleOverrides: {\n root: {\n padding: 0,\n },\n },\n },\n MuiStepLabel: {\n styleOverrides: {\n label: {\n fontSize: 14,\n fontWeight: 500,\n color: text.tertiary,\n \"&.Mui-active\": {\n color: text.primary,\n fontWeight: 600,\n },\n \"&.Mui-completed\": {\n color: text.primary,\n fontWeight: 500,\n },\n },\n },\n },\n MuiStepIcon: {\n styleOverrides: {\n root: {\n color: border.secondary,\n // Use the brand-solid button pairing so the number's fill always\n // contrasts its circle — fg.brandPrimary is near-white in dark mode,\n // which collided with MUI's default white text (white-on-white).\n \"&.Mui-active\": {\n color: buttonColors.primary.bg,\n \"& .MuiStepIcon-text\": {\n fill: buttonColors.primary.fg,\n },\n },\n \"&.Mui-completed\": {\n color: buttonColors.primary.bg,\n },\n },\n text: {\n fontSize: 12,\n fontWeight: 600,\n },\n },\n },\n MuiStepConnector: {\n styleOverrides: {\n line: {\n borderColor: border.secondary,\n },\n lineHorizontal: {\n borderTopWidth: 2,\n },\n lineVertical: {\n borderLeftWidth: 2,\n },\n },\n },\n\n // ─── MobileStepper ──────────────────────────────────────────────\n MuiMobileStepper: {\n styleOverrides: {\n root: {\n backgroundColor: \"transparent\",\n padding: \"8px 0\",\n },\n dot: {\n backgroundColor: border.secondary,\n width: 8,\n height: 8,\n },\n dotActive: {\n backgroundColor: fg.brandPrimary,\n },\n progress: {\n width: \"100%\",\n backgroundColor: border.secondary,\n borderRadius: radius.full,\n \"& .MuiLinearProgress-bar\": {\n backgroundColor: fg.brandPrimary,\n borderRadius: radius.full,\n },\n },\n },\n },\n\n // ─── Breadcrumbs ────────────────────────────────────────────────\n MuiBreadcrumbs: {\n styleOverrides: {\n root: {\n fontSize: 14,\n lineHeight: \"20px\",\n },\n separator: {\n color: breadcrumbColors.iconFg,\n marginLeft: 4,\n marginRight: 4,\n },\n li: {\n fontSize: 14,\n lineHeight: \"20px\",\n \"& a\": {\n color: breadcrumbColors.fg,\n textDecoration: \"none\",\n fontWeight: 500,\n \"&:hover\": {\n color: breadcrumbColors.fgHover,\n },\n },\n // Current-page item (a non-link <Typography>) must match the link\n // size/weight — only its color sets it apart, no bigger/lighter text.\n \"& .MuiTypography-root\": {\n fontSize: 14,\n lineHeight: \"20px\",\n fontWeight: 500,\n },\n },\n },\n },\n\n // ─── Link ───────────────────────────────────────────────────────\n MuiLink: {\n styleOverrides: {\n // info is a raw hue scale (not varified), so the dark link color must be\n // set explicitly. info[600] is too dark on the near-black dark bg — step\n // up to lighter tiers for legible contrast.\n root: ({ theme }) => ({\n color: info[600],\n fontWeight: 500,\n textDecorationColor: info[600],\n \"&:hover\": {\n color: info[700],\n textDecorationColor: info[700],\n },\n ...theme.applyStyles(\"dark\", {\n color: info[400],\n textDecorationColor: info[400],\n \"&:hover\": {\n color: info[300],\n textDecorationColor: info[300],\n },\n }),\n }),\n },\n },\n\n // ─── Popover ────────────────────────────────────────────────────\n MuiPopover: {\n styleOverrides: {\n paper: {\n borderRadius: radius.lg,\n boxShadow: tokenShadows.lg,\n border: `1px solid ${border.secondary}`,\n },\n },\n },\n\n // ─── Snackbar ───────────────────────────────────────────────────\n MuiSnackbar: {\n defaultProps: {\n anchorOrigin: { vertical: \"bottom\", horizontal: \"center\" },\n },\n },\n\n // ─── CardActionArea ─────────────────────────────────────────────\n // Clickable-card affordance: mirrors the Button's faux-3D bevel (thick edge\n // that flips bottom->top on hover), light glaze sweep, border-color shift,\n // and press-to-sink. This is what visually marks a card as clickable — use\n // <Card><CardActionArea>…</CardActionArea></Card> for any interactive card.\n MuiCardActionArea: {\n styleOverrides: {\n root: {\n position: \"relative\",\n overflow: \"hidden\",\n borderRadius: radius.xl,\n borderStyle: \"solid\",\n borderColor: border.primary,\n borderTopWidth: 1,\n borderRightWidth: 1,\n borderLeftWidth: 1,\n borderBottomWidth: 4,\n borderBottomLeftRadius: radius[\"2xl\"],\n borderBottomRightRadius: radius[\"2xl\"],\n boxShadow: tokenShadows.xs,\n transition:\n \"box-shadow 300ms ease, border-width 300ms ease, border-radius 300ms ease, border-color 300ms ease, opacity 300ms ease\",\n // Moving glaze — a soft light streak that sweeps top->bottom on hover.\n \"&::before\": {\n content: '\"\"',\n position: \"absolute\",\n left: 0,\n top: \"-150%\",\n width: \"100%\",\n height: 6,\n borderRadius: 4,\n backgroundColor: \"color-mix(in srgb, currentColor 40%, #fff)\",\n boxShadow: \"0 0 28px 6px color-mix(in srgb, currentColor 40%, #fff)\",\n opacity: 0.35,\n filter: \"blur(3px)\",\n pointerEvents: \"none\",\n transition: \"top 600ms ease-in-out\",\n zIndex: 1,\n },\n \"&:hover\": {\n borderColor: border.brand,\n borderTopWidth: 4,\n borderBottomWidth: 1,\n borderTopLeftRadius: radius[\"2xl\"],\n borderTopRightRadius: radius[\"2xl\"],\n borderBottomLeftRadius: radius.xl,\n borderBottomRightRadius: radius.xl,\n boxShadow: tokenShadows.lg,\n },\n \"&:hover::before\": {\n top: \"150%\",\n },\n // Press: collapse the raised top edge so the card sinks (snappier than\n // the hover flip), matching the Button's tactile press.\n \"&:active\": {\n transition:\n \"border-width 120ms ease, border-radius 120ms ease, opacity 120ms ease\",\n borderTopWidth: 1,\n borderTopLeftRadius: radius.xl,\n borderTopRightRadius: radius.xl,\n opacity: 0.85,\n },\n \"&:hover .MuiCardActionArea-focusHighlight\": {\n opacity: 0.04,\n },\n \"&.Mui-focusVisible .MuiCardActionArea-focusHighlight\": {\n opacity: 0.08,\n },\n \"@media (prefers-reduced-motion: reduce)\": {\n transition: \"none\",\n \"&::before\": { display: \"none\" },\n },\n },\n },\n },\n\n // ─── FilledInput ────────────────────────────────────────────────\n MuiFilledInput: {\n styleOverrides: {\n root: {\n borderRadius: `${radius.md}px ${radius.md}px 0 0`,\n backgroundColor: bg.secondary,\n \"&:hover\": {\n backgroundColor: bg.secondaryHover,\n },\n \"&.Mui-focused\": {\n backgroundColor: bg.secondary,\n },\n \"&:after\": {\n borderBottomColor: fg.brandPrimary,\n },\n },\n input: {\n padding: \"6px 12px\",\n fontSize: 14,\n lineHeight: \"20px\",\n },\n },\n },\n\n // ─── TablePagination ────────────────────────────────────────────\n MuiTablePagination: {\n styleOverrides: {\n root: {\n fontSize: 14,\n color: text.tertiary,\n },\n selectLabel: {\n fontSize: 14,\n color: text.tertiary,\n },\n displayedRows: {\n fontSize: 14,\n color: text.tertiary,\n },\n select: {\n fontSize: 14,\n },\n actions: {\n \"& .MuiIconButton-root\": {\n color: fg.quaternary,\n \"&:hover\": {\n backgroundColor: bg.primaryHover,\n color: fg.brandPrimary,\n },\n },\n },\n },\n },\n\n // ─── TableSortLabel ─────────────────────────────────────────────\n MuiTableSortLabel: {\n styleOverrides: {\n root: {\n \"&:hover\": {\n color: fg.secondary,\n },\n \"&.Mui-active\": {\n color: fg.secondary,\n \"& .MuiTableSortLabel-icon\": {\n color: fg.brandPrimary,\n },\n },\n },\n },\n },\n\n // ─── TabScrollButton ────────────────────────────────────────────\n MuiTabScrollButton: {\n styleOverrides: {\n root: {\n color: fg.quaternary,\n \"&:hover\": {\n color: fg.brandPrimary,\n },\n },\n },\n },\n\n // ─── DataGrid (@mui/x-data-grid) ──────────────────────────────\n // Not part of MUI core's Components<Theme> type, so we merge via assertion.\n ...({\n MuiDataGrid: {\n styleOverrides: {\n root: {\n border: `1px solid ${border.secondary}`,\n borderRadius: radius.xl,\n fontFamily: \"inherit\",\n \"& .MuiDataGrid-withBorderColor\": {\n borderColor: border.secondary,\n },\n },\n columnHeaders: {\n backgroundColor: bg.secondary,\n },\n columnHeader: {\n fontSize: 12,\n lineHeight: \"18px\",\n fontWeight: 500,\n color: fg.tertiary,\n \"&:focus, &:focus-within\": {\n outline: \"none\",\n },\n },\n columnHeaderTitle: {\n fontWeight: 500,\n },\n cell: {\n display: \"flex\",\n alignItems: \"center\",\n fontSize: 14,\n lineHeight: \"20px\",\n color: fg.tertiary,\n \"&:focus, &:focus-within\": {\n outline: \"none\",\n },\n },\n row: {\n backgroundColor: bg.secondary,\n \"&:hover\": {\n backgroundColor: bg.primaryHover,\n },\n \"&.Mui-selected\": {\n backgroundColor: bg.brandPrimary,\n \"&:hover\": {\n backgroundColor: bg.brandPrimary,\n },\n },\n },\n footerContainer: {\n borderTop: `1px solid ${border.secondary}`,\n },\n columnSeparator: {\n color: border.secondary,\n },\n },\n },\n } as Record<string, unknown>),\n\n // ─── DatePicker (@mui/x-date-pickers) ────────────────────────────\n // MUI X uses its own sub-components that are separate from MuiOutlinedInput,\n // so height/padding and brand colours must be set here independently.\n ...(({\n // Input field — 32px to match MuiOutlinedInput. MUI X's PickersTextField\n // renders its OWN tree (MuiPickersInputBase / MuiPickersOutlinedInput),\n // not classic MuiInputBase/MuiOutlinedInput, so the height/padding/border\n // must target those keys. sectionsContainer padding 6px 0 + 20px\n // line-height = 32px, mirroring MuiOutlinedInput.input.\n MuiPickersInputBase: {\n styleOverrides: {\n root: {\n borderRadius: radius.md,\n boxShadow: tokenShadows.xs,\n fontSize: 14,\n lineHeight: \"20px\",\n },\n },\n },\n MuiPickersOutlinedInput: {\n styleOverrides: {\n // The sections container carries the default 16.5px vertical padding\n // (mirrors MuiOutlinedInput). 6px + 20px line-height = 32px, matching\n // the other inputs. Must live here, not on MuiPickersInputBase — the\n // OutlinedInput slot is the more specific one that actually paints it.\n sectionsContainer: {\n padding: \"6px 0\",\n },\n root: {\n padding: \"0 12px\",\n \"&:hover:not(.Mui-disabled) .MuiPickersOutlinedInput-notchedOutline\": {\n borderColor: border.brand,\n },\n \"&.Mui-focused .MuiPickersOutlinedInput-notchedOutline\": {\n borderColor: border.brandSolid,\n borderWidth: 1,\n boxShadow: \"none\",\n },\n \"&.Mui-error .MuiPickersOutlinedInput-notchedOutline\": {\n borderColor: border.error,\n },\n \"& .MuiInputAdornment-root .MuiIconButton-root\": {\n color: fg.quaternary,\n \"&:hover\": {\n backgroundColor: bg.primaryHover,\n color: fg.brandPrimary,\n },\n },\n },\n notchedOutline: {\n borderColor: border.primary,\n },\n },\n },\n\n // Calendar popup container\n MuiPickersPopper: {\n styleOverrides: {\n paper: {\n borderRadius: radius.xl,\n boxShadow: tokenShadows.lg,\n border: `1px solid ${border.secondary}`,\n marginTop: 4,\n },\n },\n },\n\n // Calendar layout\n MuiDateCalendar: {\n styleOverrides: {\n root: {\n width: 280,\n height: \"auto\",\n },\n },\n },\n\n // Month/year header navigation\n MuiPickersCalendarHeader: {\n styleOverrides: {\n root: {\n paddingLeft: 16,\n paddingRight: 8,\n marginTop: 8,\n },\n label: {\n fontSize: 14,\n fontWeight: 600,\n color: text.primary,\n },\n switchViewButton: {\n color: fg.quaternary,\n \"&:hover\": { backgroundColor: bg.primaryHover, color: fg.brandPrimary },\n },\n },\n },\n MuiPickersArrowSwitcher: {\n styleOverrides: {\n button: {\n color: fg.quaternary,\n \"&:hover\": { backgroundColor: bg.primaryHover, color: fg.brandPrimary },\n },\n },\n },\n\n // Day/week header labels\n MuiDayCalendar: {\n styleOverrides: {\n weekDayLabel: {\n fontSize: 12,\n fontWeight: 500,\n color: text.tertiary,\n width: 32,\n height: 32,\n },\n weekContainer: {\n margin: \"2px 0\",\n },\n },\n },\n\n // Individual day cells\n MuiPickersDay: {\n defaultProps: {\n disableRipple: true,\n },\n styleOverrides: {\n root: {\n fontSize: 13,\n fontWeight: 400,\n width: 32,\n height: 32,\n borderRadius: radius.md,\n color: text.primary,\n backgroundColor: \"transparent\",\n \"&:hover\": {\n backgroundColor: bg.primaryHover,\n },\n \"&.Mui-selected\": {\n backgroundColor: buttonColors.primary.bg,\n color: buttonColors.primary.fg,\n fontWeight: 600,\n \"&:hover\": {\n backgroundColor: buttonColors.primary.bgHover,\n },\n \"&:focus\": {\n backgroundColor: buttonColors.primary.bg,\n },\n },\n \"&.MuiPickersDay-today\": {\n border: `1px solid ${fg.brandPrimary}`,\n color: text.brandPrimary,\n backgroundColor: \"transparent\",\n fontWeight: 600,\n \"&.Mui-selected\": {\n backgroundColor: buttonColors.primary.bg,\n color: buttonColors.primary.fg,\n border: \"none\",\n },\n },\n \"&.Mui-focusVisible\": {\n boxShadow: focusRings.brand,\n },\n \"&.Mui-disabled\": {\n color: text.disabled,\n },\n },\n },\n },\n\n // Year picker cells\n MuiPickersYear: {\n styleOverrides: {\n yearButton: {\n fontSize: 13,\n borderRadius: radius.md,\n \"&:hover\": { backgroundColor: bg.primaryHover },\n \"&.Mui-selected\": {\n backgroundColor: buttonColors.primary.bg,\n color: buttonColors.primary.fg,\n \"&:hover\": { backgroundColor: buttonColors.primary.bgHover },\n },\n },\n },\n },\n\n // Month picker cells\n MuiPickersMonth: {\n styleOverrides: {\n monthButton: {\n fontSize: 13,\n borderRadius: radius.md,\n \"&:hover\": { backgroundColor: bg.primaryHover },\n \"&.Mui-selected\": {\n backgroundColor: buttonColors.primary.bg,\n color: buttonColors.primary.fg,\n \"&:hover\": { backgroundColor: buttonColors.primary.bgHover },\n },\n },\n },\n },\n }) as Record<string, unknown>),\n };\n}\n\n","/**\n * Design tokens extracted from Figma.\n * These are the primitive values that the semantic theme references.\n */\n\n// ─── Named Primitive Color Scales ────────────────────────────────────\n\nexport const violet = {\n 25: \"#faf8ff\",\n 50: \"#f5f0ff\",\n 100: \"#ebe0ff\",\n 200: \"#d6c0ff\",\n 300: \"#b090ff\",\n 400: \"#9D5FFF\",\n 500: \"#7c4de6\",\n 600: \"#5b3acc\",\n 700: \"#3a1aad\",\n 800: \"#190a8a\",\n 900: \"#000066\",\n 950: \"#000033\",\n} as const;\n\nexport const magenta = {\n 25: \"#fff8fd\",\n 50: \"#fff0fa\",\n 100: \"#ffe0f5\",\n 200: \"#ffc0eb\",\n 300: \"#ff90d8\",\n 400: \"#FF78F3\",\n 500: \"#e650d4\",\n 600: \"#cc28b5\",\n 700: \"#a3008c\",\n 800: \"#7a0066\",\n 900: \"#520044\",\n 950: \"#290022\",\n} as const;\n\nexport const gray = {\n 25: \"#fdfcfc\",\n 50: \"#faf9f8\",\n 100: \"#f5f3f1\",\n 200: \"#e8e5e3\",\n 300: \"#d8d8dc\",\n 400: \"#a0a0a6\",\n 500: \"#71717a\",\n 600: \"#52525b\",\n 700: \"#3f3f46\",\n 800: \"#27272a\",\n 900: \"#18181b\",\n 950: \"#09090b\",\n} as const;\n\nexport const red = {\n 25: \"#fff8f7\",\n 50: \"#fff0ee\",\n 100: \"#ffe0dd\",\n 200: \"#ffc0bb\",\n 300: \"#ff9090\",\n 400: \"#FF2821\",\n 500: \"#e61a1a\",\n 600: \"#cc1010\",\n 700: \"#a30808\",\n 800: \"#7a0000\",\n 900: \"#520000\",\n 950: \"#290000\",\n} as const;\n\n// ─── Misc Chart Scales ────────────────────────────────────────────────\n\nexport const misc = {\n teal: {\n 25: \"#f6fefc\", 50: \"#f0fdf9\", 100: \"#ccfbef\", 200: \"#99f6e0\",\n 300: \"#5fe9d0\", 400: \"#2ed3b7\", 500: \"#15b79e\", 600: \"#0e9384\",\n 700: \"#107569\", 800: \"#125d56\", 900: \"#134e48\", 950: \"#0a2926\",\n },\n orange: {\n 25: \"#fefaf5\", 50: \"#fef6ee\", 100: \"#fdead7\", 200: \"#f9dbaf\",\n 300: \"#f7b27a\", 400: \"#f38744\", 500: \"#ef6820\", 600: \"#e04f16\",\n 700: \"#b93815\", 800: \"#932f19\", 900: \"#772917\", 950: \"#511c10\",\n },\n purple: {\n 25: \"#fafaff\", 50: \"#f4f3ff\", 100: \"#ebe9fe\", 200: \"#d9d6fe\",\n 300: \"#bdb4fe\", 400: \"#9b8afb\", 500: \"#7a5af8\", 600: \"#6938ef\",\n 700: \"#5925dc\", 800: \"#4a1fb8\", 900: \"#3e1c96\", 950: \"#27115f\",\n },\n pink: {\n 25: \"#fef6fb\", 50: \"#fdf2fa\", 100: \"#fce7f6\", 200: \"#fcceee\",\n 300: \"#faa7e0\", 400: \"#f670c7\", 500: \"#ee46bc\", 600: \"#dd2590\",\n 700: \"#c11574\", 800: \"#9e165f\", 900: \"#851651\", 950: \"#4e0d30\",\n },\n fuchsia: {\n 25: \"#fefaff\", 50: \"#fdf4ff\", 100: \"#fbe8ff\", 200: \"#f6d0fe\",\n 300: \"#eeaafd\", 400: \"#e478fa\", 500: \"#d444f1\", 600: \"#ba24d5\",\n 700: \"#9f1ab1\", 800: \"#821890\", 900: \"#6f1877\", 950: \"#47104c\",\n },\n orangeDark: {\n 25: \"#fff9f5\", 50: \"#fff4ed\", 100: \"#ffe6d5\", 200: \"#ffd6ae\",\n 300: \"#ff9c66\", 400: \"#ff692e\", 500: \"#ff4405\", 600: \"#e62e05\",\n 700: \"#bc1b06\", 800: \"#97180c\", 900: \"#771a0d\", 950: \"#57130a\",\n },\n green: {\n 25: \"#f6fef9\", 50: \"#edfcf2\", 100: \"#d3f8df\", 200: \"#aaf0c4\",\n 300: \"#73e2a3\", 400: \"#3ccb7f\", 500: \"#16b364\", 600: \"#099250\",\n 700: \"#087443\", 800: \"#095c37\", 900: \"#084c2e\", 950: \"#052e1c\",\n },\n indigo: {\n 25: \"#f5f8ff\", 50: \"#eef4ff\", 100: \"#e0eaff\", 200: \"#c7d7fe\",\n 300: \"#a4bcfd\", 400: \"#8098f9\", 500: \"#6172f3\", 600: \"#444ce7\",\n 700: \"#3538cd\", 800: \"#2d31a6\", 900: \"#2d3282\", 950: \"#1f235b\",\n },\n rose: {\n 25: \"#fff5f6\", 50: \"#fff1f3\", 100: \"#ffe4e8\", 200: \"#fecdd6\",\n 300: \"#fea3b4\", 400: \"#fd6f8e\", 500: \"#f63d68\", 600: \"#e31b54\",\n 700: \"#c01048\", 800: \"#a11043\", 900: \"#89123e\", 950: \"#510b24\",\n },\n blueLight: {\n 25: \"#f5fbff\", 50: \"#f0f9ff\", 100: \"#e0f2fe\", 200: \"#b9e6fe\",\n 300: \"#7cd4fd\", 400: \"#36bffa\", 500: \"#0ba5ec\", 600: \"#0086c9\",\n 700: \"#026aa2\", 800: \"#065986\", 900: \"#0b4a6f\", 950: \"#062c41\",\n },\n cyan: {\n 25: \"#f5feff\", 50: \"#ecfdff\", 100: \"#cff9fe\", 200: \"#a5f0fc\",\n 300: \"#67e3f9\", 400: \"#22ccee\", 500: \"#06aed4\", 600: \"#088ab2\",\n 700: \"#0e7090\", 800: \"#155b75\", 900: \"#164c63\", 950: \"#0d2d3a\",\n },\n} as const;\n\n// ─── Base Colors ────────────────────────────────────────────────────\n\nexport const base = {\n white: \"#ffffff\",\n black: \"#000000\",\n transparent: \"#ffffff00\",\n} as const;\n\n// ─── Status Scales ─────────────────────────────────────────────────\n\nexport const error = {\n 25: \"#fffbfa\",\n 50: \"#fef3f2\",\n 100: \"#fee4e2\",\n 200: \"#fecdca\",\n 300: \"#fda29b\",\n 400: \"#f97066\",\n 500: \"#f04438\",\n 600: \"#d92d20\",\n 700: \"#b42318\",\n 800: \"#912018\",\n 900: \"#7a271a\",\n 950: \"#55160c\",\n} as const;\n\nexport const warning = {\n 25: \"#fffcf5\",\n 50: \"#fffaeb\",\n 100: \"#fef0c7\",\n 200: \"#fedf89\",\n 300: \"#fec84b\",\n 400: \"#fdb022\",\n 500: \"#f79009\",\n 600: \"#dc6803\",\n 700: \"#b54708\",\n 800: \"#93370d\",\n 900: \"#7a2e0e\",\n 950: \"#4e1d09\",\n} as const;\n\nexport const success = {\n 25: \"#f6fef9\",\n 50: \"#ecfdf3\",\n 100: \"#dcfae6\",\n 200: \"#abefc6\",\n 300: \"#75e0a7\",\n 400: \"#47cd89\",\n 500: \"#17b26a\",\n 600: \"#079455\",\n 700: \"#067647\",\n 800: \"#085d3a\",\n 900: \"#074d31\",\n 950: \"#053321\",\n} as const;\n\nexport const info = {\n 25: \"#f5faff\",\n 50: \"#eff8ff\",\n 100: \"#d1e9ff\",\n 200: \"#b2ddff\",\n 300: \"#84caff\",\n 400: \"#53b1fd\",\n 500: \"#2e90fa\",\n 600: \"#1570ef\",\n 700: \"#175cd3\",\n 800: \"#1849a9\",\n 900: \"#194185\",\n 950: \"#102a56\",\n} as const;\n\n// ─── Spacing ────────────────────────────────────────────────────────\n\nexport const spacing = {\n none: 0,\n xxs: 2,\n xs: 4,\n sm: 6,\n md: 8,\n lg: 12,\n xl: 16,\n \"2xl\": 20,\n \"3xl\": 24,\n \"4xl\": 32,\n \"5xl\": 40,\n \"6xl\": 48,\n \"7xl\": 64,\n \"8xl\": 80,\n \"9xl\": 96,\n \"10xl\": 128,\n \"11xl\": 160,\n} as const;\n\n// ─── Border Radius ──────────────────────────────────────────────────\n\nexport const radius = {\n none: 0,\n xxs: 2,\n xs: 4,\n sm: 6,\n md: 8,\n lg: 10,\n xl: 12,\n \"2xl\": 16,\n \"3xl\": 20,\n \"4xl\": 24,\n full: 9999,\n} as const;\n\n// ─── Shadows ────────────────────────────────────────────────────────\n\nexport const shadows = {\n xs: \"0px 1px 2px 0px #1018280d\",\n sm: \"0px 1px 3px 0px #1018281a, 0px 1px 2px 0px #1018280f\",\n md: \"0px 4px 8px -2px #1018281a, 0px 2px 4px -2px #1018280f\",\n lg: \"0px 12px 16px -4px #10182814, 0px 4px 6px -2px #10182808\",\n xl: \"0px 20px 24px -4px #10182814, 0px 8px 8px -4px #10182808\",\n \"2xl\": \"0px 24px 48px -12px #1018282e\",\n \"3xl\": \"0px 32px 64px -12px #10182824\",\n} as const;\n\n// ─── Focus Rings ────────────────────────────────────────────────────\n\nexport const focusRings = {\n brand: \"0px 0px 0px 4px #7c4de63d\",\n brandShadowXs: \"0px 1px 2px 0px #1018280d, 0px 0px 0px 4px #7c4de63d\",\n brandShadowSm: \"0px 1px 3px 0px #1018281a, 0px 1px 2px 0px #1018280f, 0px 0px 0px 4px #7c4de63d\",\n gray: \"0px 0px 0px 4px #a0a0a624\",\n grayShadowXs: \"0px 1px 2px 0px #1018280d, 0px 0px 0px 4px #a0a0a624\",\n grayShadowSm: \"0px 1px 3px 0px #1018281a, 0px 1px 2px 0px #1018280f, 0px 0px 0px 4px #a0a0a624\",\n error: \"0px 0px 0px 4px #f044383d\",\n errorShadowXs: \"0px 1px 2px 0px #1018280d, 0px 0px 0px 4px #f044383d\",\n} as const;\n\n// ─── Typography ─────────────────────────────────────────────────────\n\nexport const fontFamily = '\"Aeonik\", sans-serif';\nexport const fontFamilyMono = '\"Aeonik Mono\", monospace';\n\nexport const fontSize = {\n xxs: 11,\n xs: 12,\n sm: 14,\n md: 16,\n lg: 18,\n xl: 20,\n} as const;\n\nexport const lineHeight = {\n xxs: \"16px\",\n xs: \"18px\",\n sm: \"20px\",\n md: \"24px\",\n lg: \"28px\",\n xl: \"30px\",\n} as const;\n\nexport const fontWeight = {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n} as const;\n\n// ─── Display Typography ─────────────────────────────────────────────\n\nexport const display = {\n \"2xl\": { fontSize: 72, lineHeight: \"90px\", letterSpacing: \"-0.02em\" },\n xl: { fontSize: 60, lineHeight: \"72px\", letterSpacing: \"-0.02em\" },\n lg: { fontSize: 48, lineHeight: \"60px\", letterSpacing: \"-0.02em\" },\n md: { fontSize: 36, lineHeight: \"44px\", letterSpacing: \"-0.02em\" },\n sm: { fontSize: 30, lineHeight: \"38px\" },\n xs: { fontSize: 24, lineHeight: \"32px\" },\n} as const;\n\n// ─── Container ──────────────────────────────────────────────────────\n\nexport const container = {\n maxWidthDesktop: 1280,\n paddingDesktop: 32,\n paddingMobile: 16,\n} as const;\n\n// ─── Width Breakpoints ──────────────────────────────────────────────\n\nexport const widths = {\n xxs: 320,\n xs: 384,\n sm: 480,\n md: 560,\n lg: 640,\n xl: 768,\n \"2xl\": 1024,\n \"3xl\": 1280,\n \"4xl\": 1440,\n \"5xl\": 1600,\n \"6xl\": 1920,\n} as const;\n\n// ─── Semantic Colors — Text ───────────────────────────────────────\n\nexport const text = {\n primary: gray[900],\n secondary: gray[700],\n secondaryHover: gray[800],\n tertiary: gray[600],\n tertiaryHover: gray[700],\n quaternary: gray[500],\n disabled: gray[500],\n placeholder: gray[500],\n placeholderSubtle: gray[300],\n white: base.white,\n brandPrimary: violet[900],\n brandSecondary: violet[700],\n brandTertiary: violet[600],\n brandTertiaryAlt: violet[600],\n primaryOnBrand: base.white,\n secondaryOnBrand: violet[200],\n tertiaryOnBrand: violet[200],\n quaternaryOnBrand: violet[300],\n errorPrimary: error[600],\n warningPrimary: warning[600],\n successPrimary: success[600],\n} as const;\n\n// ─── Semantic Colors — Background ─────────────────────────────────\n\nexport const bg = {\n primary: gray[50],\n primaryAlt: gray[50],\n primaryHover: gray[100],\n primarySolid: gray[950],\n secondary: base.white,\n secondaryAlt: base.white,\n secondarySubtle: gray[25],\n secondaryHover: gray[50],\n secondarySolid: gray[600],\n tertiary: gray[100],\n quaternary: gray[200],\n active: gray[200],\n disabled: gray[100],\n disabledSubtle: gray[50],\n overlay: gray[950],\n brandPrimary: violet[50],\n brandPrimaryAlt: violet[50],\n brandSecondary: violet[100],\n brandSolid: violet[600],\n brandSolidHover: violet[700],\n brandSection: violet[800],\n brandSectionSubtle: violet[700],\n errorPrimary: error[50],\n errorSecondary: error[100],\n errorSolid: error[600],\n warningPrimary: warning[50],\n warningSecondary: warning[100],\n warningSolid: warning[600],\n successPrimary: success[50],\n successSecondary: success[100],\n successSolid: success[600],\n} as const;\n\n// ─── Semantic Colors — Foreground ─────────────────────────────────\n\nexport const fg = {\n primary: gray[900],\n secondary: gray[700],\n secondaryHover: gray[800],\n tertiary: gray[600],\n tertiaryHover: gray[700],\n quaternary: gray[500],\n quaternaryHover: gray[600],\n quinary: gray[400],\n quinaryHover: gray[500],\n senary: gray[300],\n white: base.white,\n disabled: gray[400],\n disabledSubtle: gray[300],\n brandPrimary: violet[600],\n brandPrimaryAlt: violet[600],\n brandSecondary: violet[500],\n errorPrimary: error[600],\n errorSecondary: error[500],\n warningPrimary: warning[600],\n warningSecondary: warning[500],\n successPrimary: success[600],\n successSecondary: success[500],\n} as const;\n\n// ─── Semantic Colors — Border ─────────────────────────────────────\n\nexport const border = {\n primary: gray[300],\n secondary: gray[200],\n tertiary: gray[100],\n disabled: gray[300],\n disabledSubtle: gray[200],\n brand: violet[300],\n brandSolid: violet[600],\n brandSolidAlt: violet[600],\n error: error[300],\n errorSolid: error[600],\n} as const;\n\n// ─── Component Colors — Buttons ───────────────────────────────────\n\nexport const buttonColors = {\n primary: {\n bg: violet[600],\n bgHover: violet[700],\n fg: base.white,\n fgHover: base.white,\n border: violet[600],\n borderHover: violet[700],\n },\n secondary: {\n bg: gray[900],\n bgHover: gray[950],\n fg: base.white,\n fgHover: base.white,\n border: gray[900],\n borderHover: gray[950],\n },\n secondaryColor: {\n bg: base.white,\n bgHover: violet[50],\n fg: violet[700],\n fgHover: violet[800],\n border: violet[300],\n borderHover: violet[300],\n },\n tertiary: {\n fg: gray[600],\n fgHover: gray[700],\n bgHover: gray[50],\n },\n tertiaryColor: {\n fg: violet[700],\n fgHover: violet[800],\n bgHover: violet[50],\n },\n primaryError: {\n bg: error[600],\n bgHover: error[700],\n fg: base.white,\n fgHover: base.white,\n border: error[600],\n borderHover: error[700],\n },\n secondaryError: {\n bg: base.white,\n bgHover: error[50],\n fg: error[700],\n fgHover: error[800],\n border: error[300],\n borderHover: error[300],\n },\n tertiaryError: {\n fg: error[700],\n fgHover: error[800],\n bgHover: error[50],\n },\n} as const;\n\n// ─── Component Colors — Avatars ───────────────────────────────────\n\nexport const avatarColors = {\n bg: gray[100],\n fg: gray[600],\n contrastBorder: \"#00000014\",\n profilePhotoBorder: base.white,\n focusBorder: \"#a0a0a624\",\n} as const;\n\n// ─── Component Colors — Breadcrumbs ───────────────────────────────\n\nexport const breadcrumbColors = {\n fg: gray[600],\n fgHover: gray[700],\n bgHover: gray[50],\n brandBgHover: violet[50],\n brandFgHover: violet[700],\n iconFg: gray[500],\n iconFgHover: gray[700],\n brandIconFgHover: violet[700],\n} as const;\n\n// ─── Component Colors — Icons ─────────────────────────────────────\n\nexport const iconColors = {\n fgBrand: violet[600],\n fgBrandOnBrand: violet[200],\n featuredModernBorder: gray[200],\n featuredLightFgBrand: violet[600],\n featuredLightFgGray: gray[500],\n featuredLightFgError: error[600],\n featuredLightFgWarning: warning[600],\n featuredLightFgSuccess: success[600],\n featuredDarkFgBrand: base.white,\n featuredDarkFgGray: base.white,\n featuredDarkFgError: base.white,\n featuredDarkFgWarning: base.white,\n featuredDarkFgSuccess: base.white,\n} as const;\n\n// ─── Component Colors — Navigation ───────────────────────────────\n\nexport const navColors = {\n itemIconFg: gray[500],\n itemIconFgActive: gray[700],\n itemButtonIconFg: gray[500],\n itemButtonIconFgActive: gray[700],\n} as const;\n\n// ─── Component Colors — Sliders ───────────────────────────────────\n\nexport const sliderColors = {\n handleBorder: violet[600],\n handleBg: base.white,\n} as const;\n\n// ─── Component Colors — Toggles ───────────────────────────────────\n\nexport const toggleColors = {\n buttonFgDisabled: gray[50],\n} as const;\n\n// ─── Component Colors — Charts ────────────────────────────────────\n\nexport const chartColors = {\n axisFg: gray[100],\n gridlineFg: gray[100],\n labelFg: gray[600],\n labelFgEmphasis: gray[700],\n bg: base.white,\n bgAlt: gray[50],\n tooltipBg: gray[950],\n tooltipFg: base.white,\n crosshairFg: gray[500],\n legendFg: text.tertiary,\n series: [\n { fg: misc.purple[500], fgHover: misc.purple[600], bg: misc.purple[100], bgHover: misc.purple[200] },\n { fg: misc.orangeDark[400], fgHover: misc.orangeDark[500], bg: misc.orangeDark[100], bgHover: misc.orangeDark[200] },\n { fg: misc.teal[300], fgHover: misc.teal[400], bg: misc.teal[50], bgHover: misc.teal[100] },\n { fg: warning[400], fgHover: warning[500], bg: warning[100], bgHover: warning[200] },\n { fg: misc.rose[400], fgHover: misc.rose[500], bg: misc.rose[100], bgHover: misc.rose[200] },\n { fg: misc.blueLight[400], fgHover: misc.blueLight[500], bg: misc.blueLight[100], bgHover: misc.blueLight[200] },\n { fg: misc.orange[300], fgHover: misc.orange[400], bg: misc.orange[100], bgHover: misc.orange[200] },\n { fg: misc.cyan[600], fgHover: misc.cyan[700], bg: misc.cyan[100], bgHover: misc.cyan[200] },\n { fg: misc.green[500], fgHover: misc.green[600], bg: misc.green[100], bgHover: misc.green[200] },\n { fg: misc.pink[400], fgHover: misc.pink[500], bg: misc.pink[100], bgHover: misc.pink[200] },\n { fg: misc.fuchsia[400], fgHover: misc.fuchsia[500], bg: misc.fuchsia[100], bgHover: misc.fuchsia[200] },\n { fg: misc.teal[600], fgHover: misc.teal[700], bg: misc.teal[100], bgHover: misc.teal[200] },\n ],\n} as const;\n\n// ─── Alpha Colors ─────────────────────────────────────────────────\n\nexport const alpha = {\n white: {\n 10: \"#ffffff1a\",\n 20: \"#ffffff33\",\n 30: \"#ffffff4d\",\n 40: \"#ffffff66\",\n 50: \"#ffffff80\",\n 60: \"#ffffff99\",\n 70: \"#ffffffb3\",\n 80: \"#ffffffcc\",\n 90: \"#ffffffe6\",\n 100: \"#ffffff\",\n },\n black: {\n 10: \"#0000001a\",\n 20: \"#00000033\",\n 30: \"#0000004d\",\n 40: \"#00000066\",\n 50: \"#00000080\",\n 60: \"#00000099\",\n 70: \"#000000b3\",\n 80: \"#000000cc\",\n 90: \"#000000e6\",\n 100: \"#000000\",\n },\n} as const;\n","import type { DesignTokens } from \"../types\";\nimport {\n misc,\n spacing,\n radius as forestRadius,\n shadows as tokenShadows,\n fontSize,\n lineHeight,\n fontWeight,\n display,\n container,\n widths,\n alpha,\n base,\n error,\n warning,\n success,\n gray,\n violet,\n magenta,\n info,\n} from \"../tokens\";\n\n// ─── Dark scheme for forest-alkemy+ ──────────────────────────────\n// Tonal inverse of the light preset, preserving its HUE choices: the brand is\n// GREYSCALE (light's charcoal brand becomes a light neutral on dark), `info`\n// is the blue scale (matching light), `highlight` stays magenta. Grey surfaces\n// invert; brand/accent hues are kept. Mode-agnostic groups (spacing/radius/\n// shadows/type) reuse light.\n//\n// The light brand is a charcoal scale (brand[600/700] = gray[900/950]) that\n// renders as dark button faces + light text. On dark we mirror it: brand solids\n// become LIGHT grey faces + dark text. Violet is a brand accent, not info.\n\nconst highlight = magenta;\n\n// Sharp radius — identical to the light preset (mode-agnostic).\nconst radius = {\n ...forestRadius,\n xxs: 1,\n xs: 2,\n sm: 3,\n md: 4,\n lg: 5,\n xl: 6,\n \"2xl\": 8,\n \"3xl\": 10,\n \"4xl\": 12,\n};\n\n// ─── Text — light on dark ────────────────────────────────────────\nconst text = {\n primary: gray[50],\n secondary: gray[300],\n secondaryHover: gray[200],\n tertiary: gray[400],\n tertiaryHover: gray[300],\n quaternary: gray[500],\n disabled: gray[600],\n placeholder: gray[500],\n placeholderSubtle: gray[600],\n white: base.white,\n // Greyscale brand text (light neutral on the dark page).\n brandPrimary: gray[50],\n brandSecondary: gray[200],\n brandTertiary: gray[300],\n brandTertiaryAlt: gray[300],\n // \"onBrand\" text sits on the LIGHT-grey brand surface -> it must be dark.\n primaryOnBrand: gray[950],\n secondaryOnBrand: gray[700],\n tertiaryOnBrand: gray[700],\n quaternaryOnBrand: gray[600],\n errorPrimary: error[400],\n warningPrimary: warning[400],\n successPrimary: success[400],\n} as const;\n\n// ─── Background — dark surfaces ──────────────────────────────────\nconst bg = {\n primary: gray[950],\n primaryAlt: gray[950],\n primaryHover: gray[900],\n primarySolid: gray[50],\n secondary: gray[900],\n secondaryAlt: gray[900],\n secondarySubtle: gray[900],\n secondaryHover: gray[800],\n secondarySolid: gray[300],\n tertiary: gray[800],\n quaternary: gray[700],\n active: gray[700],\n disabled: gray[800],\n disabledSubtle: gray[900],\n overlay: gray[950],\n // Greyscale brand surfaces: subtle brand bg is a dark grey; the solid brand\n // face is a LIGHT grey (mirrors light's charcoal solid).\n brandPrimary: gray[800],\n brandPrimaryAlt: gray[800],\n brandSecondary: gray[700],\n brandSolid: gray[100],\n brandSolidHover: gray[200],\n brandSection: gray[900],\n brandSectionSubtle: gray[800],\n errorPrimary: error[950],\n errorSecondary: error[900],\n errorSolid: error[600],\n warningPrimary: warning[950],\n warningSecondary: warning[900],\n warningSolid: warning[600],\n successPrimary: success[950],\n successSecondary: success[900],\n successSolid: success[600],\n} as const;\n\n// ─── Foreground — light icons/fills on dark ──────────────────────\nconst fg = {\n primary: gray[50],\n secondary: gray[300],\n secondaryHover: gray[200],\n tertiary: gray[400],\n tertiaryHover: gray[300],\n quaternary: gray[500],\n quaternaryHover: gray[400],\n quinary: gray[500],\n quinaryHover: gray[400],\n senary: gray[600],\n white: base.white,\n disabled: gray[600],\n disabledSubtle: gray[700],\n brandPrimary: gray[100],\n brandPrimaryAlt: gray[100],\n brandSecondary: gray[300],\n errorPrimary: error[400],\n errorSecondary: error[500],\n warningPrimary: warning[400],\n warningSecondary: warning[500],\n successPrimary: success[400],\n successSecondary: success[500],\n} as const;\n\n// ─── Border — subtle on dark ─────────────────────────────────────\nconst border = {\n primary: gray[700],\n secondary: gray[800],\n tertiary: gray[800],\n disabled: gray[700],\n disabledSubtle: gray[800],\n brand: gray[600],\n brandSolid: gray[100],\n brandSolidAlt: gray[100],\n error: error[800],\n errorSolid: error[600],\n} as const;\n\n// ─── Buttons ─────────────────────────────────────────────────────\n// Primary is a light-grey face with dark text (mirror of light's charcoal\n// face + white text). No violet.\nconst buttonColors = {\n primary: {\n bg: gray[100],\n bgHover: gray[200],\n fg: gray[950],\n fgHover: gray[950],\n border: gray[100],\n borderHover: gray[200],\n },\n secondary: {\n bg: gray[100],\n bgHover: base.white,\n fg: gray[900],\n fgHover: gray[950],\n border: gray[100],\n borderHover: base.white,\n },\n secondaryColor: {\n bg: gray[900],\n bgHover: gray[800],\n fg: gray[100],\n fgHover: gray[50],\n border: gray[700],\n borderHover: gray[700],\n },\n tertiary: {\n fg: gray[300],\n fgHover: gray[100],\n bgHover: gray[800],\n },\n tertiaryColor: {\n fg: gray[100],\n fgHover: gray[50],\n bgHover: gray[800],\n },\n primaryError: {\n bg: error[600],\n bgHover: error[500],\n fg: base.white,\n fgHover: base.white,\n border: error[600],\n borderHover: error[500],\n },\n secondaryError: {\n bg: gray[900],\n bgHover: error[950],\n fg: error[300],\n fgHover: error[200],\n border: error[800],\n borderHover: error[800],\n },\n tertiaryError: {\n fg: error[300],\n fgHover: error[200],\n bgHover: error[950],\n },\n} as const;\n\n// ─── Breadcrumbs ─────────────────────────────────────────────────\nconst breadcrumbColors = {\n fg: gray[400],\n fgHover: gray[200],\n bgHover: gray[800],\n brandBgHover: gray[800],\n brandFgHover: gray[100],\n iconFg: gray[500],\n iconFgHover: gray[300],\n brandIconFgHover: gray[100],\n} as const;\n\n// ─── Icons ───────────────────────────────────────────────────────\nconst iconColors = {\n fgBrand: gray[100],\n fgBrandOnBrand: gray[700],\n featuredModernBorder: gray[700],\n featuredLightFgBrand: gray[100],\n featuredLightFgGray: gray[400],\n featuredLightFgError: error[400],\n featuredLightFgWarning: warning[400],\n featuredLightFgSuccess: success[400],\n featuredDarkFgBrand: base.white,\n featuredDarkFgGray: base.white,\n featuredDarkFgError: base.white,\n featuredDarkFgWarning: base.white,\n featuredDarkFgSuccess: base.white,\n} as const;\n\n// ─── Sliders ─────────────────────────────────────────────────────\nconst sliderColors = {\n handleBorder: gray[100],\n handleBg: gray[50],\n} as const;\n\n// ─── Avatars ─────────────────────────────────────────────────────\nconst avatarColors = {\n bg: gray[800],\n fg: gray[50],\n contrastBorder: \"#ffffff1f\",\n profilePhotoBorder: gray[900],\n focusBorder: \"#a0a0a624\",\n} as const;\n\n// ─── Navigation ──────────────────────────────────────────────────\nconst navColors = {\n itemIconFg: gray[400],\n itemIconFgActive: gray[100],\n itemButtonIconFg: gray[400],\n itemButtonIconFgActive: gray[100],\n} as const;\n\n// ─── Toggles ─────────────────────────────────────────────────────\nconst toggleColors = {\n buttonFgDisabled: gray[800],\n} as const;\n\n// ─── Charts ──────────────────────────────────────────────────────\n// Dark chart chrome; series keep the light preset's brand-led hues (data viz\n// needs distinct colors — violet/magenta lead, matching light). Tune if needed.\nconst chartColors = {\n axisFg: gray[800],\n gridlineFg: gray[800],\n labelFg: gray[400],\n labelFgEmphasis: gray[300],\n bg: gray[900],\n bgAlt: gray[800],\n tooltipBg: gray[50],\n tooltipFg: gray[900],\n crosshairFg: gray[500],\n legendFg: text.tertiary,\n series: [\n { fg: violet[400], fgHover: violet[300], bg: violet[900], bgHover: violet[800] },\n { fg: magenta[400], fgHover: magenta[300], bg: magenta[900], bgHover: magenta[800] },\n { fg: misc.teal[300], fgHover: misc.teal[200], bg: misc.teal[900], bgHover: misc.teal[800] },\n { fg: warning[400], fgHover: warning[300], bg: warning[900], bgHover: warning[800] },\n { fg: misc.blueLight[400], fgHover: misc.blueLight[300], bg: misc.blueLight[900], bgHover: misc.blueLight[800] },\n { fg: misc.rose[400], fgHover: misc.rose[300], bg: misc.rose[900], bgHover: misc.rose[800] },\n { fg: misc.green[400], fgHover: misc.green[300], bg: misc.green[900], bgHover: misc.green[800] },\n { fg: misc.orangeDark[400], fgHover: misc.orangeDark[300], bg: misc.orangeDark[900], bgHover: misc.orangeDark[800] },\n { fg: misc.cyan[400], fgHover: misc.cyan[300], bg: misc.cyan[900], bgHover: misc.cyan[800] },\n { fg: misc.orange[300], fgHover: misc.orange[200], bg: misc.orange[900], bgHover: misc.orange[800] },\n { fg: misc.teal[500], fgHover: misc.teal[400], bg: misc.teal[800], bgHover: misc.teal[700] },\n { fg: misc.pink[400], fgHover: misc.pink[300], bg: misc.pink[900], bgHover: misc.pink[800] },\n ],\n} as const;\n\n// ─── Focus Rings ─────────────────────────────────────────────────\nconst focusRings = {\n brand: \"0px 0px 0px 4px #4040403d\",\n brandShadowXs: \"0px 1px 2px 0px #1018280d, 0px 0px 0px 4px #4040403d\",\n brandShadowSm: \"0px 1px 3px 0px #1018281a, 0px 1px 2px 0px #1018280f, 0px 0px 0px 4px #4040403d\",\n gray: \"0px 0px 0px 4px #a0a0a624\",\n grayShadowXs: \"0px 1px 2px 0px #1018280d, 0px 0px 0px 4px #a0a0a624\",\n grayShadowSm: \"0px 1px 3px 0px #1018281a, 0px 1px 2px 0px #1018280f, 0px 0px 0px 4px #a0a0a624\",\n error: \"0px 0px 0px 4px #f044383d\",\n errorShadowXs: \"0px 1px 2px 0px #1018280d, 0px 0px 0px 4px #f044383d\",\n} as const;\n\n// ─── Letter Spacing (mode-agnostic) ──────────────────────────────\nconst letterSpacing = {\n h1: \"-0.02em\",\n h2: \"-0.02em\",\n h3: \"-0.02em\",\n h4: \"-0.02em\",\n h5: \"-0.02em\",\n h6: \"-0.02em\",\n subtitle1: \"0.02em\",\n subtitle2: \"0.02em\",\n body1: \"0.02em\",\n body2: \"0.02em\",\n caption: \"0.02em\",\n overline: \"0.02em\",\n button: \"0.02em\",\n} as const;\n\nexport const alkemyPlusDarkTokens: DesignTokens = {\n base,\n error,\n warning,\n success,\n info,\n spacing,\n radius,\n shadows: tokenShadows,\n focusRings,\n fontFamily: '\"Aeonik\", sans-serif',\n fontFamilyMono: '\"Aeonik Mono\", monospace',\n fontSize,\n lineHeight,\n fontWeight,\n display,\n container,\n widths,\n text,\n bg,\n fg,\n border,\n buttonColors,\n avatarColors,\n breadcrumbColors,\n iconColors,\n navColors,\n sliderColors,\n toggleColors,\n chartColors,\n alpha,\n letterSpacing,\n highlight,\n};\n","import type { ThemePreset } from \"../types\";\nimport { alkemyPlusDarkTokens } from \"./forest-alkemy-plus.dark\";\nimport {\n avatarColors,\n navColors,\n toggleColors,\n misc,\n spacing,\n radius as forestRadius,\n shadows as tokenShadows,\n fontSize,\n lineHeight,\n fontWeight,\n display,\n container,\n widths,\n alpha,\n base,\n error,\n warning,\n success,\n gray,\n red,\n violet,\n magenta,\n info,\n} from \"../tokens\";\n\n// ─── Info Scale ──────────────────────────────────────────────────\n// \"info\" is the conventional blue scale from tokens.ts — links render blue\n// (like a browser), and selected states, info alerts, and Chip `colorInfo`\n// all pick it up. Brand accents use violet directly; info is not violet.\n\n// ─── Highlight Scale ─────────────────────────────────────────────\n// Magenta accent used sparingly for \"NEW\", \"Premium\", featured alerts,\n// notification dots — high-signal, distinctive emphasis.\n\nconst highlight = magenta;\n\n// ─── Semantic Colors — resolve against imported primitives ────────────────────────────\n\n\n// Colors object using imported primitives\n// Agency brand is near-black, so we use gray[950] as primary brand color\nconst colors = {\n base,\n error,\n warning,\n success,\n info,\n brand: {\n 25: gray[25],\n 50: gray[50],\n 100: gray[100],\n 200: gray[200],\n 300: gray[300],\n 400: gray[400],\n 500: gray[500],\n 600: gray[900], // #18181b - dark brand\n 700: gray[950], // #09090b - primary brand\n 800: gray[950],\n 900: gray[950],\n 950: gray[950],\n },\n accent: red,\n gray: gray,\n};\n\n// ─── Border Radius — minimal / sharp ────────────────────────────\n\nconst radius = {\n ...forestRadius,\n xxs: 1,\n xs: 2,\n sm: 3,\n md: 4,\n lg: 5,\n xl: 6,\n \"2xl\": 8,\n \"3xl\": 10,\n \"4xl\": 12,\n};\n\n// ─── Semantic Colors — Text ──────────────────────────────────────\n// Same formulas as forest, resolved against alkemy+ primitives.\n\nconst text = {\n primary: gray[900],\n secondary: gray[700],\n secondaryHover: gray[800],\n tertiary: gray[600],\n tertiaryHover: gray[700],\n quaternary: gray[500],\n disabled: gray[500],\n placeholder: gray[500],\n placeholderSubtle: gray[300],\n white: base.white,\n brandPrimary: colors.brand[900],\n brandSecondary: colors.brand[700],\n brandTertiary: colors.brand[600],\n brandTertiaryAlt: colors.brand[600],\n primaryOnBrand: base.white,\n secondaryOnBrand: colors.brand[200],\n tertiaryOnBrand: colors.brand[200],\n quaternaryOnBrand: colors.brand[300],\n errorPrimary: error[600],\n warningPrimary: warning[600],\n successPrimary: success[600],\n} as const;\n\n// ─── Semantic Colors — Background ────────────────────────────────\n\nconst bg = {\n primary: gray[25],\n primaryAlt: gray[25],\n primaryHover: gray[100],\n primarySolid: gray[950],\n secondary: base.white,\n secondaryAlt: base.white,\n secondarySubtle: gray[25],\n secondaryHover: gray[50],\n secondarySolid: gray[600],\n tertiary: gray[50],\n quaternary: gray[100],\n active: gray[200],\n disabled: gray[100],\n disabledSubtle: gray[50],\n overlay: gray[950],\n brandPrimary: colors.brand[50],\n brandPrimaryAlt: colors.brand[50],\n brandSecondary: colors.brand[100],\n brandSolid: colors.brand[600],\n brandSolidHover: colors.brand[700],\n brandSection: colors.brand[800],\n brandSectionSubtle: colors.brand[700],\n errorPrimary: error[50],\n errorSecondary: error[100],\n errorSolid: error[600],\n warningPrimary: warning[50],\n warningSecondary: warning[100],\n warningSolid: warning[600],\n successPrimary: success[50],\n successSecondary: success[100],\n successSolid: success[600],\n} as const;\n\n// ─── Semantic Colors — Foreground ────────────────────────────────\n\nconst fg = {\n primary: gray[900],\n secondary: gray[700],\n secondaryHover: gray[800],\n tertiary: gray[600],\n tertiaryHover: gray[700],\n quaternary: gray[500],\n quaternaryHover: gray[600],\n quinary: gray[400],\n quinaryHover: gray[500],\n senary: gray[300],\n white: base.white,\n disabled: gray[400],\n disabledSubtle: gray[300],\n brandPrimary: colors.brand[600],\n brandPrimaryAlt: colors.brand[600],\n brandSecondary: colors.brand[500],\n errorPrimary: error[600],\n errorSecondary: error[500],\n warningPrimary: warning[600],\n warningSecondary: warning[500],\n successPrimary: success[600],\n successSecondary: success[500],\n} as const;\n\n// ─── Semantic Colors — Border ────────────────────────────────────\n\nconst border = {\n primary: gray[300],\n secondary: gray[200],\n tertiary: gray[100],\n disabled: gray[300],\n disabledSubtle: gray[200],\n brand: gray[400],\n brandSolid: colors.brand[600],\n brandSolidAlt: colors.brand[600],\n error: error[300],\n errorSolid: error[600],\n} as const;\n\n// ─── Component Colors — Buttons ──────────────────────────────────\n\nconst buttonColors = {\n primary: {\n bg: colors.brand[700],\n bgHover: colors.brand[800],\n fg: base.white,\n fgHover: base.white,\n border: colors.brand[700],\n borderHover: colors.brand[800],\n },\n secondary: {\n bg: gray[900],\n bgHover: gray[950],\n fg: base.white,\n fgHover: base.white,\n border: gray[900],\n borderHover: gray[950],\n },\n secondaryColor: {\n bg: base.white,\n bgHover: colors.brand[50],\n fg: colors.brand[700],\n fgHover: colors.brand[800],\n border: colors.brand[300],\n borderHover: colors.brand[300],\n },\n tertiary: {\n fg: gray[600],\n fgHover: gray[700],\n bgHover: gray[50],\n },\n tertiaryColor: {\n fg: colors.brand[700],\n fgHover: colors.brand[800],\n bgHover: colors.brand[50],\n },\n primaryError: {\n bg: error[600],\n bgHover: error[700],\n fg: base.white,\n fgHover: base.white,\n border: error[600],\n borderHover: error[700],\n },\n secondaryError: {\n bg: base.white,\n bgHover: error[50],\n fg: error[700],\n fgHover: error[800],\n border: error[300],\n borderHover: error[300],\n },\n tertiaryError: {\n fg: error[700],\n fgHover: error[800],\n bgHover: error[50],\n },\n} as const;\n\n// ─── Component Colors — Breadcrumbs ──────────────────────────────\n\nconst breadcrumbColors = {\n fg: gray[600],\n fgHover: gray[700],\n bgHover: gray[50],\n brandBgHover: colors.brand[50],\n brandFgHover: colors.brand[700],\n iconFg: gray[500],\n iconFgHover: gray[700],\n brandIconFgHover: colors.brand[700],\n} as const;\n\n// ─── Component Colors — Icons ────────────────────────────────────\n\nconst iconColors = {\n fgBrand: colors.brand[600],\n fgBrandOnBrand: colors.brand[200],\n featuredModernBorder: gray[200],\n featuredLightFgBrand: colors.brand[600],\n featuredLightFgGray: gray[500],\n featuredLightFgError: error[600],\n featuredLightFgWarning: warning[600],\n featuredLightFgSuccess: success[600],\n featuredDarkFgBrand: base.white,\n featuredDarkFgGray: base.white,\n featuredDarkFgError: base.white,\n featuredDarkFgWarning: base.white,\n featuredDarkFgSuccess: base.white,\n} as const;\n\n// ─── Component Colors — Sliders ──────────────────────────────────\n\nconst sliderColors = {\n handleBorder: colors.brand[600],\n handleBg: base.white,\n} as const;\n\n// ─── Letter Spacing ──────────────────────────────────────────────\n// Alkemy+ uses a consistent wide tracking across all text styles.\n\nconst letterSpacing = {\n h1: \"-0.02em\",\n h2: \"-0.02em\",\n h3: \"-0.02em\",\n h4: \"-0.02em\",\n h5: \"-0.02em\",\n h6: \"-0.02em\",\n subtitle1: \"0.02em\",\n subtitle2: \"0.02em\",\n body1: \"0.02em\",\n body2: \"0.02em\",\n caption: \"0.02em\",\n overline: \"0.02em\",\n button: \"0.02em\",\n} as const;\n\n// ─── Focus Rings ─────────────────────────────────────────────────\n// brand[500] = #404040, gray[400] = #a0a0a6\n\nconst focusRings = {\n brand: \"0px 0px 0px 4px #4040403d\",\n brandShadowXs: \"0px 1px 2px 0px #1018280d, 0px 0px 0px 4px #4040403d\",\n brandShadowSm: \"0px 1px 3px 0px #1018281a, 0px 1px 2px 0px #1018280f, 0px 0px 0px 4px #4040403d\",\n gray: \"0px 0px 0px 4px #a0a0a624\",\n grayShadowXs: \"0px 1px 2px 0px #1018280d, 0px 0px 0px 4px #a0a0a624\",\n grayShadowSm: \"0px 1px 3px 0px #1018281a, 0px 1px 2px 0px #1018280f, 0px 0px 0px 4px #a0a0a624\",\n error: \"0px 0px 0px 4px #f044383d\",\n errorShadowXs: \"0px 1px 2px 0px #1018280d, 0px 0px 0px 4px #f044383d\",\n} as const;\n\n// ─── Component Colors — Charts ───────────────────────────────────\n// Custom palette overriding the shared chartColors from tokens.ts:\n// violet + magenta brand accents lead.\n\nconst chartColors = {\n axisFg: gray[100],\n gridlineFg: gray[100],\n labelFg: gray[600],\n labelFgEmphasis: gray[700],\n bg: base.white,\n bgAlt: gray[50],\n tooltipBg: gray[950],\n tooltipFg: base.white,\n crosshairFg: gray[500],\n legendFg: text.tertiary,\n series: [\n // Brand accents lead — violet + magenta anchor the palette\n { fg: violet[500], fgHover: violet[600], bg: violet[100], bgHover: violet[200] },\n { fg: magenta[500], fgHover: magenta[600], bg: magenta[100], bgHover: magenta[200] },\n // Complementary rotation — cool → warm → earth\n { fg: misc.teal[300], fgHover: misc.teal[400], bg: misc.teal[50], bgHover: misc.teal[100] },\n { fg: warning[400], fgHover: warning[500], bg: warning[100], bgHover: warning[200] },\n { fg: misc.blueLight[400], fgHover: misc.blueLight[500], bg: misc.blueLight[100], bgHover: misc.blueLight[200] },\n { fg: misc.rose[400], fgHover: misc.rose[500], bg: misc.rose[100], bgHover: misc.rose[200] },\n { fg: misc.green[500], fgHover: misc.green[600], bg: misc.green[100], bgHover: misc.green[200] },\n { fg: misc.orangeDark[400], fgHover: misc.orangeDark[500], bg: misc.orangeDark[100], bgHover: misc.orangeDark[200] },\n { fg: misc.cyan[600], fgHover: misc.cyan[700], bg: misc.cyan[100], bgHover: misc.cyan[200] },\n { fg: misc.orange[300], fgHover: misc.orange[400], bg: misc.orange[100], bgHover: misc.orange[200] },\n { fg: misc.teal[600], fgHover: misc.teal[700], bg: misc.teal[100], bgHover: misc.teal[200] },\n // Pink/fuchsia kept as tail fallbacks only — too close to magenta to sit near position 1\n { fg: misc.pink[400], fgHover: misc.pink[500], bg: misc.pink[100], bgHover: misc.pink[200] },\n ],\n} as const;\n\n// ─── Preset ──────────────────────────────────────────────────────\n\nexport const forestAlkemyPlusPreset: ThemePreset = {\n name: \"forest-alkemy+\",\n tokens: {\n base,\n error,\n warning,\n success,\n info,\n spacing,\n radius,\n shadows: tokenShadows,\n focusRings,\n fontFamily: '\"Aeonik\", sans-serif',\n fontFamilyMono: '\"Aeonik Mono\", monospace',\n fontSize,\n lineHeight,\n fontWeight,\n display,\n container,\n widths,\n text,\n bg,\n fg,\n border,\n buttonColors,\n avatarColors,\n breadcrumbColors,\n iconColors,\n navColors,\n sliderColors,\n toggleColors,\n chartColors,\n alpha,\n letterSpacing,\n highlight,\n },\n tokensDark: alkemyPlusDarkTokens,\n};\n","import type { ThemePreset } from \"../types\";\nimport { forestAlkemyPlusPreset } from \"./forest-alkemy-plus\";\n\nconst presetRegistry = new Map<string, ThemePreset>();\n\n// Register built-in presets\npresetRegistry.set(forestAlkemyPlusPreset.name, forestAlkemyPlusPreset);\n\n/** Get a preset by name. Returns `undefined` if not found. */\nexport function getPreset(name: string): ThemePreset | undefined {\n return presetRegistry.get(name);\n}\n\n/** Register a custom preset (or override a built-in one). */\nexport function registerPreset(preset: ThemePreset): void {\n presetRegistry.set(preset.name, preset);\n}\n\n/** List all registered preset names. */\nexport function getAvailablePresets(): string[] {\n return Array.from(presetRegistry.keys());\n}\n\nexport { forestAlkemyPlusPreset };\n","import { buildTheme, buildThemeOptions } from \"./buildTheme\";\nimport { forestAlkemyPlusPreset } from \"./presets\";\n\n// Use forest-alkemy-plus preset tokens as the default theme (light + dark)\nconst { tokens, tokensDark } = forestAlkemyPlusPreset;\n\nexport const forestTheme = buildTheme(tokens, tokensDark);\nexport const forestThemeOptions = buildThemeOptions(tokens, tokensDark);\n\n// Re-export theme builders\nexport { buildTheme, buildThemeOptions };\n\nexport * from \"./tokens\";\n\n// Preset system\nexport { getPreset, registerPreset, getAvailablePresets, forestAlkemyPlusPreset } from \"./presets\";\nexport type { DesignTokens, ThemePreset } from \"./types\";\n"],"mappings":"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","names":["tokens","base","error","warning","success","info","text","bg","fg","border","tokens","fontFamily","display","fontSize","lineHeight","fontWeight","letterSpacing","tokens","tokens","base","error","warning","success","info","highlight","radius","focusRings","text","bg","fg","border","buttonColors","sliderColors","avatarColors","breadcrumbColors","tokens","tokensDark","radius","text","bg","fg","border","buttonColors","breadcrumbColors","iconColors","sliderColors","avatarColors","navColors","toggleColors","chartColors","focusRings","highlight","radius","text","bg","fg","border","buttonColors","breadcrumbColors","iconColors","sliderColors","letterSpacing","focusRings","chartColors"]}
|