@matteoaliano/forest-ui 0.2.1 → 0.2.3

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.
@@ -0,0 +1,68 @@
1
+ # Forest UI — Default Theme Guidelines
2
+
3
+ > **This file is synced by the `forest-ui` package.**
4
+ > Run `npx forest-ui sync` to update it.
5
+
6
+ ---
7
+
8
+ ## Background Usage
9
+
10
+ ### Page & Layout Defaults
11
+
12
+ | Context | Token | Value | Usage |
13
+ |---|---|---|---|
14
+ | **Page background** | `bg.primary` | `#ffffff` | Default background for every page and top-level layout. All root containers (`<body>`, app shell, page wrappers) must use this token. |
15
+ | **Page background (alt)** | `bg.primaryAlt` | `#ffffff` | Alias available when a future theme overrides the primary page bg. Use interchangeably with `bg.primary` in layouts. |
16
+
17
+ > [!IMPORTANT]
18
+ > Every page **must** set its root background to `bg.primary`. Never hard-code `#ffffff` or any other color — always reference the semantic token so themes can override it.
19
+
20
+ ### Surface Hierarchy
21
+
22
+ Use progressively deeper background tokens to create visual depth between nested surfaces:
23
+
24
+ | Level | Token | Typical Use |
25
+ |---|---|---|
26
+ | 0 — Page | `bg.primary` | Page canvas, app shell |
27
+ | 1 — Section | `bg.secondary` / `bg.secondaryAlt` | Sidebar panels, section stripes, cards on white |
28
+ | 1 — Section (subtle) | `bg.secondarySubtle` | Very light tinted sections (e.g., feature highlight rows) |
29
+ | 2 — Inset | `bg.tertiary` | Nested panels, code blocks, table header rows |
30
+ | 3 — Deepest inset | `bg.quaternary` | Skeleton loaders, deeply nested containers |
31
+
32
+ ### Interactive & State Backgrounds
33
+
34
+ | Token | When to Use |
35
+ |---|---|
36
+ | `bg.primaryHover` | Hover state for items sitting on a `bg.primary` surface (e.g., table rows, list items) |
37
+ | `bg.secondaryHover` | Hover state for items on a `bg.secondary` surface |
38
+ | `bg.active` | Currently active/selected row or item |
39
+ | `bg.disabled` | Disabled inputs, cards, or interactive areas |
40
+ | `bg.disabledSubtle` | Lighter disabled state (e.g., toggle tracks, secondary disabled surfaces) |
41
+
42
+ ### Brand Backgrounds
43
+
44
+ | Token | When to Use |
45
+ |---|---|
46
+ | `bg.brandPrimary` / `bg.brandPrimaryAlt` | Subtle brand-tinted surfaces (e.g., selected chip, promotion banner) |
47
+ | `bg.brandSecondary` | Slightly stronger brand tint (e.g., badge background, accent panel) |
48
+ | `bg.brandSolid` | Solid brand fill (e.g., primary CTA background) |
49
+ | `bg.brandSolidHover` | Hover state for `bg.brandSolid` elements |
50
+ | `bg.brandSection` / `bg.brandSectionSubtle` | Full-width brand sections (e.g., hero, footer band) |
51
+
52
+ ### Feedback / Status Backgrounds
53
+
54
+ | Status | Primary | Secondary | Solid |
55
+ |---|---|---|---|
56
+ | Error | `bg.errorPrimary` | `bg.errorSecondary` | `bg.errorSolid` |
57
+ | Warning | `bg.warningPrimary` | `bg.warningSecondary` | `bg.warningSolid` |
58
+ | Success | `bg.successPrimary` | `bg.successSecondary` | `bg.successSolid` |
59
+
60
+ - **Primary** — subtle tinted banners and alert backgrounds
61
+ - **Secondary** — slightly stronger tint for emphasis
62
+ - **Solid** — filled badges, toasts, or status dots
63
+
64
+ ### Overlay
65
+
66
+ | Token | When to Use |
67
+ |---|---|
68
+ | `bg.overlay` | Scrim behind modals and drawers (use with alpha transparency) |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matteoaliano/forest-ui",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "Forest Design System — themed MUI components",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -23,7 +23,7 @@
23
23
  "files": [
24
24
  "dist",
25
25
  "bin",
26
- "FOREST_AI_GUIDELINES.md"
26
+ "guidelines"
27
27
  ],
28
28
  "scripts": {
29
29
  "build": "tsup",
@@ -35,6 +35,7 @@
35
35
  "@emotion/react": "^11.0.0",
36
36
  "@emotion/styled": "^11.0.0",
37
37
  "@mui/material": "^6.0.0 || ^7.0.0",
38
+ "@mui/x-data-grid": "^7.0.0",
38
39
  "react": "^18.0.0 || ^19.0.0",
39
40
  "react-dom": "^18.0.0 || ^19.0.0"
40
41
  },
@@ -43,6 +44,7 @@
43
44
  "@emotion/styled": "^11.0.0",
44
45
  "@mui/icons-material": "^7.3.8",
45
46
  "@mui/material": "^7.0.0",
47
+ "@mui/x-data-grid": "^7.0.0",
46
48
  "@storybook/addon-essentials": "^8.6.14",
47
49
  "@storybook/blocks": "^8.6.14",
48
50
  "@storybook/react": "^8.6.14",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/theme/tokens.ts","../src/theme/palette.ts","../src/theme/typography.ts","../src/theme/components.ts","../src/theme/shadows.ts","../src/theme/buildTheme.ts","../src/theme/presets/forest.ts","../src/theme/presets/index.ts","../src/theme/index.ts"],"names":["colors","fontFamily","display","fontSize","lineHeight","fontWeight","radius","focusRings","shadows","createTheme"],"mappings":"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","file":"chunk-5C6DAZT2.mjs","sourcesContent":["/**\n * Design tokens extracted from Figma.\n * These are the primitive values that the semantic theme references.\n */\n\n// ─── Primitive Colors ───────────────────────────────────────────────\n\nexport const colors = {\n base: {\n white: \"#ffffff\",\n black: \"#000000\",\n transparent: \"#ffffff00\",\n },\n\n brand: {\n 25: \"#fcfaff\",\n 50: \"#f9f5ff\",\n 100: \"#f4ebff\",\n 200: \"#e9d7fe\",\n 300: \"#d6bbfb\",\n 400: \"#b692f6\",\n 500: \"#9e77ed\",\n 600: \"#7f56d9\",\n 700: \"#6941c6\",\n 800: \"#53389e\",\n 900: \"#42307d\",\n 950: \"#2c1c5f\",\n },\n\n gray: {\n 25: \"#fcfcfd\",\n 50: \"#f9fafb\",\n 100: \"#f2f4f7\",\n 200: \"#eaecf0\",\n 300: \"#d0d5dd\",\n 400: \"#98a2b3\",\n 500: \"#667085\",\n 600: \"#475467\",\n 700: \"#344054\",\n 800: \"#182230\",\n 900: \"#101828\",\n 950: \"#0c111d\",\n },\n\n 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 },\n\n 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 },\n\n 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 },\n\n blue: {\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 },\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 #9e77ed3d\",\n brandShadowXs: \"0px 1px 2px 0px #1018280d, 0px 0px 0px 4px #9e77ed3d\",\n brandShadowSm: \"0px 1px 3px 0px #1018281a, 0px 1px 2px 0px #1018280f, 0px 0px 0px 4px #9e77ed3d\",\n gray: \"0px 0px 0px 4px #98a2b324\",\n grayShadowXs: \"0px 1px 2px 0px #1018280d, 0px 0px 0px 4px #98a2b324\",\n grayShadowSm: \"0px 1px 3px 0px #1018281a, 0px 1px 2px 0px #1018280f, 0px 0px 0px 4px #98a2b324\",\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 = '\"Poppins\", sans-serif';\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","import type { PaletteOptions } from \"@mui/material/styles\";\nimport type { DesignTokens } from \"./types\";\nimport { colors } from \"./tokens\";\n\nexport function buildPalette(tokens: DesignTokens): PaletteOptions {\n const { colors } = tokens;\n\n return {\n primary: {\n main: colors.brand[600],\n light: colors.brand[400],\n dark: colors.brand[700],\n contrastText: colors.base.white,\n },\n secondary: {\n main: colors.gray[600],\n light: colors.gray[400],\n dark: colors.gray[700],\n contrastText: colors.base.white,\n },\n error: {\n main: colors.error[600],\n light: colors.error[300],\n dark: colors.error[700],\n contrastText: colors.base.white,\n },\n warning: {\n main: colors.warning[600],\n light: colors.warning[300],\n dark: colors.warning[700],\n contrastText: colors.base.white,\n },\n success: {\n main: colors.success[600],\n light: colors.success[300],\n dark: colors.success[700],\n contrastText: colors.base.white,\n },\n info: {\n main: colors.blue[600],\n light: colors.blue[300],\n dark: colors.blue[700],\n contrastText: colors.base.white,\n },\n background: {\n default: colors.base.white,\n paper: colors.base.white,\n },\n text: {\n primary: colors.gray[900],\n secondary: colors.gray[700],\n disabled: colors.gray[500],\n },\n divider: colors.gray[200],\n action: {\n active: colors.gray[600],\n hover: colors.gray[50],\n selected: colors.brand[50],\n disabled: colors.gray[400],\n disabledBackground: colors.gray[100],\n },\n };\n}\n\nexport const palette: PaletteOptions = buildPalette({\n colors,\n} as DesignTokens);\n","import type { TypographyVariantsOptions } from \"@mui/material/styles\";\nimport type { DesignTokens } from \"./types\";\nimport { fontFamily, display, fontSize, lineHeight, fontWeight } from \"./tokens\";\n\nexport function buildTypography(tokens: DesignTokens): TypographyVariantsOptions {\n const { fontFamily, display, fontSize, lineHeight, fontWeight } = tokens;\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: display.xl.letterSpacing,\n fontWeight: fontWeight.semibold,\n },\n h2: {\n fontSize: display.lg.fontSize,\n lineHeight: display.lg.lineHeight,\n letterSpacing: display.lg.letterSpacing,\n fontWeight: fontWeight.semibold,\n },\n h3: {\n fontSize: display.md.fontSize,\n lineHeight: display.md.lineHeight,\n letterSpacing: display.md.letterSpacing,\n fontWeight: fontWeight.semibold,\n },\n h4: {\n fontSize: display.sm.fontSize,\n lineHeight: display.sm.lineHeight,\n fontWeight: fontWeight.semibold,\n },\n h5: {\n fontSize: display.xs.fontSize,\n lineHeight: display.xs.lineHeight,\n fontWeight: fontWeight.semibold,\n },\n h6: {\n fontSize: fontSize.xl,\n lineHeight: lineHeight.xl,\n fontWeight: fontWeight.semibold,\n },\n subtitle1: {\n fontSize: fontSize.lg,\n lineHeight: lineHeight.lg,\n fontWeight: fontWeight.medium,\n },\n subtitle2: {\n fontSize: fontSize.md,\n lineHeight: lineHeight.md,\n fontWeight: fontWeight.medium,\n },\n body1: {\n fontSize: fontSize.md,\n lineHeight: lineHeight.md,\n fontWeight: fontWeight.regular,\n },\n body2: {\n fontSize: fontSize.sm,\n lineHeight: lineHeight.sm,\n fontWeight: fontWeight.regular,\n },\n caption: {\n fontSize: fontSize.xs,\n lineHeight: lineHeight.xs,\n fontWeight: fontWeight.regular,\n },\n overline: {\n fontSize: fontSize.xxs,\n lineHeight: lineHeight.xxs,\n fontWeight: fontWeight.medium,\n textTransform: \"uppercase\",\n letterSpacing: \"0.08em\",\n },\n button: {\n fontSize: fontSize.sm,\n lineHeight: lineHeight.sm,\n fontWeight: fontWeight.semibold,\n textTransform: \"none\",\n },\n };\n}\n\nexport const typography: TypographyVariantsOptions = buildTypography({\n fontFamily,\n display,\n fontSize,\n lineHeight,\n fontWeight,\n} as DesignTokens);\n","import type { Components, Theme } from \"@mui/material/styles\";\nimport type { DesignTokens } from \"./types\";\nimport { colors, radius, focusRings, shadows as tokenShadows } from \"./tokens\";\n\nexport function buildComponents(tokens: DesignTokens): Components<Theme> {\n const { colors, radius, focusRings, shadows: tokenShadows } = tokens;\n\n return {\n // ─── Button ─────────────────────────────────────────────────────\n MuiButton: {\n defaultProps: {\n disableElevation: true,\n },\n styleOverrides: {\n root: {\n borderRadius: radius.md,\n fontWeight: 600,\n \"&:focus-visible\": {\n boxShadow: focusRings.brandShadowXs,\n },\n },\n sizeLarge: {\n padding: \"12px 20px\",\n fontSize: 16,\n lineHeight: \"24px\",\n },\n sizeMedium: {\n padding: \"10px 16px\",\n fontSize: 14,\n lineHeight: \"20px\",\n },\n sizeSmall: {\n padding: \"8px 14px\",\n fontSize: 14,\n lineHeight: \"20px\",\n },\n containedPrimary: {\n backgroundColor: colors.brand[600],\n \"&:hover\": {\n backgroundColor: colors.brand[700],\n },\n },\n outlinedPrimary: {\n borderColor: colors.brand[300],\n color: colors.brand[700],\n \"&:hover\": {\n backgroundColor: colors.brand[50],\n borderColor: colors.brand[300],\n },\n },\n textPrimary: {\n color: colors.brand[700],\n \"&:hover\": {\n backgroundColor: colors.brand[50],\n },\n },\n },\n },\n\n // ─── Button Group ───────────────────────────────────────────────\n MuiButtonGroup: {\n defaultProps: {\n disableElevation: true,\n },\n styleOverrides: {\n root: {\n borderRadius: radius.md,\n },\n grouped: {\n \"&:not(:last-of-type)\": {\n borderRight: `1px solid ${colors.brand[700]}`,\n },\n },\n },\n },\n\n // ─── FAB ────────────────────────────────────────────────────────\n MuiFab: {\n styleOverrides: {\n root: {\n boxShadow: tokenShadows.md,\n \"&:hover\": {\n boxShadow: tokenShadows.lg,\n },\n \"&:focus-visible\": {\n boxShadow: focusRings.brandShadowSm,\n },\n },\n primary: {\n backgroundColor: colors.brand[600],\n \"&:hover\": {\n backgroundColor: colors.brand[700],\n },\n },\n },\n },\n\n // ─── TextField / Input ──────────────────────────────────────────\n MuiTextField: {\n defaultProps: {\n variant: \"outlined\",\n size: \"small\",\n },\n },\n MuiOutlinedInput: {\n styleOverrides: {\n root: {\n borderRadius: radius.md,\n \"&:hover .MuiOutlinedInput-notchedOutline\": {\n borderColor: colors.brand[300],\n },\n\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: colors.brand[600],\n borderWidth: 1,\n boxShadow: \"none\",\n },\n \"&.Mui-error .MuiOutlinedInput-notchedOutline\": {\n borderColor: colors.error[300],\n },\n\n \"&.Mui-error.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: colors.error[600],\n boxShadow: \"none\",\n },\n },\n notchedOutline: {\n borderColor: colors.gray[300],\n },\n input: {\n padding: \"10px 14px\",\n fontSize: 16,\n lineHeight: \"24px\",\n \"&::placeholder\": {\n color: colors.gray[500],\n opacity: 1,\n },\n },\n inputSizeSmall: {\n padding: \"8px 12px\",\n fontSize: 14,\n lineHeight: \"20px\",\n },\n },\n },\n MuiInputLabel: {\n styleOverrides: {\n root: {\n fontSize: 14,\n fontWeight: 500,\n color: colors.gray[700],\n \"&.Mui-focused\": {\n color: colors.gray[700],\n },\n \"&.Mui-error\": {\n color: colors.error[600],\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: colors.error[600],\n },\n },\n },\n },\n\n // ─── Select ─────────────────────────────────────────────────────\n MuiSelect: {\n defaultProps: {\n size: \"small\",\n },\n styleOverrides: {\n icon: {\n color: colors.gray[500],\n },\n },\n },\n\n // ─── Autocomplete ───────────────────────────────────────────────\n MuiAutocomplete: {\n styleOverrides: {\n paper: {\n borderRadius: radius.md,\n boxShadow: tokenShadows.lg,\n border: `1px solid ${colors.gray[200]}`,\n marginTop: 4,\n },\n option: {\n fontSize: 16,\n lineHeight: \"24px\",\n padding: \"10px 14px\",\n \"&.Mui-focused\": {\n backgroundColor: colors.gray[50],\n },\n '&[aria-selected=\"true\"]': {\n backgroundColor: colors.brand[50],\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: colors.gray[300],\n borderRadius: radius.xs,\n padding: 0,\n width: 20,\n height: 20,\n \"&:hover\": {\n backgroundColor: \"transparent\",\n color: colors.brand[600],\n },\n \"&.Mui-checked\": {\n color: colors.brand[600],\n },\n \"&.Mui-checked:hover\": {\n color: colors.brand[700],\n },\n \"&.Mui-focusVisible\": {\n outline: \"none\",\n boxShadow: focusRings.brand,\n borderRadius: radius.xs,\n },\n \"&.Mui-disabled\": {\n color: colors.gray[300],\n },\n },\n },\n },\n\n // ─── Radio ──────────────────────────────────────────────────────\n MuiRadio: {\n defaultProps: {\n disableRipple: true,\n },\n styleOverrides: {\n root: {\n color: colors.gray[300],\n padding: 0,\n \"&:hover\": {\n backgroundColor: \"transparent\",\n color: colors.brand[600],\n },\n \"&.Mui-checked\": {\n color: colors.brand[600],\n },\n \"&.Mui-checked:hover\": {\n color: colors.brand[700],\n },\n \"&.Mui-focusVisible\": {\n outline: \"none\",\n boxShadow: focusRings.brand,\n borderRadius: radius.full,\n },\n \"&.Mui-disabled\": {\n color: colors.gray[300],\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 },\n switchBase: {\n padding: 2,\n \"&.Mui-checked\": {\n transform: \"translateX(20px)\",\n color: colors.base.white,\n \"& + .MuiSwitch-track\": {\n backgroundColor: colors.brand[600],\n opacity: 1,\n },\n },\n \"&.Mui-checked:hover + .MuiSwitch-track\": {\n backgroundColor: colors.brand[700],\n },\n \"&.Mui-focusVisible .MuiSwitch-thumb\": {\n boxShadow: focusRings.brand,\n },\n \"&.Mui-disabled .MuiSwitch-thumb\": {\n color: colors.gray[100],\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: colors.gray[200],\n opacity: 1,\n },\n },\n },\n\n // ─── Toggle Button ─────────────────────────────────────────────\n MuiToggleButton: {\n styleOverrides: {\n root: {\n borderRadius: radius.md,\n borderColor: colors.gray[300],\n color: colors.gray[700],\n fontSize: 14,\n fontWeight: 600,\n lineHeight: \"20px\",\n padding: \"8px 14px\",\n textTransform: \"none\",\n \"&:hover\": {\n backgroundColor: colors.gray[50],\n },\n \"&.Mui-selected\": {\n backgroundColor: colors.brand[50],\n color: colors.brand[700],\n borderColor: colors.brand[300],\n \"&:hover\": {\n backgroundColor: colors.brand[100],\n },\n },\n \"&:focus-visible\": {\n boxShadow: focusRings.brandShadowXs,\n },\n },\n },\n },\n MuiToggleButtonGroup: {\n styleOverrides: {\n root: {\n borderRadius: radius.md,\n },\n grouped: {\n \"&:not(:first-of-type)\": {\n borderRadius: radius.md,\n marginLeft: -1,\n },\n \"&:first-of-type\": {\n borderRadius: radius.md,\n },\n },\n },\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 ${colors.gray[200]}`,\n backgroundColor: colors.base.white,\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 ${colors.gray[200]}`,\n },\n elevation2: {\n boxShadow: tokenShadows.sm,\n border: `1px solid ${colors.gray[200]}`,\n },\n elevation3: {\n boxShadow: tokenShadows.md,\n border: `1px solid ${colors.gray[200]}`,\n },\n elevation4: {\n boxShadow: tokenShadows.lg,\n border: `1px solid ${colors.gray[200]}`,\n },\n elevation8: {\n boxShadow: tokenShadows.xl,\n border: `1px solid ${colors.gray[200]}`,\n },\n elevation16: {\n boxShadow: tokenShadows[\"2xl\"],\n border: `1px solid ${colors.gray[200]}`,\n },\n elevation24: {\n boxShadow: tokenShadows[\"3xl\"],\n border: `1px solid ${colors.gray[200]}`,\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 ${colors.gray[200]}`,\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 ${colors.gray[200]}`,\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 ${colors.gray[200]}`,\n backgroundColor: colors.base.white,\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 // ─── Chip ───────────────────────────────────────────────────────\n MuiChip: {\n styleOverrides: {\n root: {\n borderRadius: radius.md,\n fontWeight: 500,\n fontSize: 14,\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: colors.gray[700],\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 ${colors.gray[200]}`,\n padding: \"16px 24px\",\n fontSize: 14,\n lineHeight: \"20px\",\n color: colors.gray[600],\n },\n head: {\n backgroundColor: colors.gray[50],\n color: colors.gray[600],\n fontWeight: 500,\n fontSize: 12,\n lineHeight: \"18px\",\n },\n body: {\n color: colors.gray[600],\n },\n },\n },\n MuiTableHead: {\n styleOverrides: {\n root: {\n backgroundColor: colors.gray[50],\n borderBottom: `1px solid ${colors.gray[200]}`,\n },\n },\n },\n MuiTableRow: {\n styleOverrides: {\n root: {\n \"&:last-child td, &:last-child th\": {\n border: 0,\n },\n \"&:hover\": {\n backgroundColor: colors.gray[50],\n },\n \"&.Mui-selected\": {\n backgroundColor: colors.brand[50],\n \"&:hover\": {\n backgroundColor: colors.brand[50],\n },\n },\n },\n },\n },\n MuiTableContainer: {\n styleOverrides: {\n root: {\n borderRadius: radius.xl,\n border: `1px solid ${colors.gray[200]}`,\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: colors.brand[600],\n },\n colorError: {\n backgroundColor: colors.error[600],\n },\n colorSuccess: {\n backgroundColor: colors.success[600],\n },\n colorWarning: {\n backgroundColor: colors.warning[600],\n },\n dot: {\n minWidth: 8,\n height: 8,\n borderRadius: radius.full,\n },\n },\n },\n\n // ─── Divider ────────────────────────────────────────────────────\n MuiDivider: {\n styleOverrides: {\n root: {\n borderColor: colors.gray[200],\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: colors.gray[50],\n },\n \"&.Mui-selected\": {\n backgroundColor: colors.brand[50],\n color: colors.brand[700],\n \"&:hover\": {\n backgroundColor: colors.brand[100],\n },\n },\n },\n },\n },\n MuiListItemIcon: {\n styleOverrides: {\n root: {\n minWidth: 36,\n color: colors.gray[500],\n },\n },\n },\n MuiListItemText: {\n styleOverrides: {\n primary: {\n fontSize: 14,\n lineHeight: \"20px\",\n fontWeight: 500,\n color: colors.gray[700],\n },\n secondary: {\n fontSize: 14,\n lineHeight: \"20px\",\n color: colors.gray[500],\n },\n },\n },\n\n // ─── Tooltip ────────────────────────────────────────────────────\n MuiTooltip: {\n styleOverrides: {\n tooltip: {\n backgroundColor: colors.gray[900],\n color: colors.base.white,\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: colors.gray[900],\n },\n },\n },\n\n // ─── Alert ──────────────────────────────────────────────────────\n MuiAlert: {\n defaultProps: {\n variant: \"standard\",\n },\n styleOverrides: {\n root: {\n borderRadius: radius.xl,\n fontSize: 14,\n lineHeight: \"20px\",\n padding: \"12px 16px\",\n },\n standardError: {\n backgroundColor: colors.error[50],\n color: colors.error[700],\n border: `1px solid ${colors.error[300]}`,\n \"& .MuiAlert-icon\": {\n color: colors.error[600],\n },\n },\n standardWarning: {\n backgroundColor: colors.warning[50],\n color: colors.warning[700],\n border: `1px solid ${colors.warning[300]}`,\n \"& .MuiAlert-icon\": {\n color: colors.warning[600],\n },\n },\n standardSuccess: {\n backgroundColor: colors.success[50],\n color: colors.success[700],\n border: `1px solid ${colors.success[300]}`,\n \"& .MuiAlert-icon\": {\n color: colors.success[600],\n },\n },\n standardInfo: {\n backgroundColor: colors.blue[50],\n color: colors.blue[700],\n border: `1px solid ${colors.blue[300]}`,\n \"& .MuiAlert-icon\": {\n color: colors.blue[600],\n },\n },\n icon: {\n padding: \"2px 0\",\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 root: {\n backgroundColor: \"rgba(16, 24, 40, 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: colors.gray[900],\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: colors.gray[600],\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: colors.gray[200],\n },\n barColorPrimary: {\n backgroundColor: colors.brand[600],\n borderRadius: radius.full,\n },\n barColorSecondary: {\n backgroundColor: colors.gray[600],\n borderRadius: radius.full,\n },\n },\n },\n MuiCircularProgress: {\n styleOverrides: {\n colorPrimary: {\n color: colors.brand[600],\n },\n colorSecondary: {\n color: colors.gray[600],\n },\n },\n },\n\n // ─── Skeleton ───────────────────────────────────────────────────\n MuiSkeleton: {\n defaultProps: {\n animation: \"wave\",\n },\n styleOverrides: {\n root: {\n backgroundColor: colors.gray[100],\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 root: {\n backgroundColor: colors.gray[900],\n color: colors.base.white,\n borderRadius: radius.xl,\n boxShadow: tokenShadows.lg,\n fontSize: 14,\n lineHeight: \"20px\",\n fontWeight: 500,\n padding: \"6px 16px\",\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}\n\nexport const components: Components<Theme> = buildComponents({\n colors,\n radius,\n focusRings,\n shadows: tokenShadows,\n} as DesignTokens);\n","import type { Shadows } from \"@mui/material/styles\";\nimport type { DesignTokens } from \"./types\";\nimport { shadows as tokenShadows } from \"./tokens\";\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\nexport const shadows: Shadows = buildShadows({\n shadows: tokenShadows,\n} as DesignTokens);\n","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/** Assemble a MUI ThemeOptions object from a full set of design tokens. */\nexport function buildThemeOptions(tokens: DesignTokens): ThemeOptions {\n return {\n palette: buildPalette(tokens),\n typography: buildTypography(tokens),\n components: buildComponents(tokens),\n shadows: buildShadows(tokens),\n shape: {\n borderRadius: tokens.radius.md,\n },\n };\n}\n\n/** Create a fully resolved MUI Theme from a full set of design tokens. */\nexport function buildTheme(tokens: DesignTokens): Theme {\n return createTheme(buildThemeOptions(tokens));\n}\n","import type { ThemePreset } from \"../types\";\nimport * as tokens from \"../tokens\";\n\nexport const forestPreset: ThemePreset = {\n name: \"forest\",\n defaultVariant: \"light\",\n variants: {\n light: {\n tokens: {\n colors: tokens.colors,\n spacing: tokens.spacing,\n radius: tokens.radius,\n shadows: tokens.shadows,\n focusRings: tokens.focusRings,\n fontFamily: tokens.fontFamily,\n fontSize: tokens.fontSize,\n lineHeight: tokens.lineHeight,\n fontWeight: tokens.fontWeight,\n display: tokens.display,\n container: tokens.container,\n widths: tokens.widths,\n },\n },\n },\n};\n","import type { ThemePreset } from \"../types\";\nimport { forestPreset } from \"./forest\";\n\nconst presetRegistry = new Map<string, ThemePreset>();\n\n// Register built-in presets\npresetRegistry.set(forestPreset.name, forestPreset);\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 { forestPreset };\n","import { createTheme, type ThemeOptions } from \"@mui/material/styles\";\nimport { palette } from \"./palette\";\nimport { typography } from \"./typography\";\nimport { components } from \"./components\";\nimport { shadows } from \"./shadows\";\n\nexport const forestThemeOptions: ThemeOptions = {\n palette,\n typography,\n components,\n shadows,\n shape: {\n borderRadius: 8,\n },\n};\n\nexport const forestTheme = createTheme(forestThemeOptions);\n\nexport { palette, typography, components, shadows };\nexport * from \"./tokens\";\n\n// Preset system\nexport { buildTheme, buildThemeOptions } from \"./buildTheme\";\nexport { getPreset, registerPreset, getAvailablePresets, forestPreset } from \"./presets\";\nexport type { DesignTokens, PresetVariantConfig, ThemePreset } from \"./types\";\n"]}
@@ -1,273 +0,0 @@
1
- import * as _mui_material_styles from '@mui/material/styles';
2
- import { PaletteOptions, TypographyVariantsOptions, Components, Theme, Shadows, ThemeOptions } from '@mui/material/styles';
3
-
4
- /**
5
- * Design tokens extracted from Figma.
6
- * These are the primitive values that the semantic theme references.
7
- */
8
- declare const colors: {
9
- readonly base: {
10
- readonly white: "#ffffff";
11
- readonly black: "#000000";
12
- readonly transparent: "#ffffff00";
13
- };
14
- readonly brand: {
15
- readonly 25: "#fcfaff";
16
- readonly 50: "#f9f5ff";
17
- readonly 100: "#f4ebff";
18
- readonly 200: "#e9d7fe";
19
- readonly 300: "#d6bbfb";
20
- readonly 400: "#b692f6";
21
- readonly 500: "#9e77ed";
22
- readonly 600: "#7f56d9";
23
- readonly 700: "#6941c6";
24
- readonly 800: "#53389e";
25
- readonly 900: "#42307d";
26
- readonly 950: "#2c1c5f";
27
- };
28
- readonly gray: {
29
- readonly 25: "#fcfcfd";
30
- readonly 50: "#f9fafb";
31
- readonly 100: "#f2f4f7";
32
- readonly 200: "#eaecf0";
33
- readonly 300: "#d0d5dd";
34
- readonly 400: "#98a2b3";
35
- readonly 500: "#667085";
36
- readonly 600: "#475467";
37
- readonly 700: "#344054";
38
- readonly 800: "#182230";
39
- readonly 900: "#101828";
40
- readonly 950: "#0c111d";
41
- };
42
- readonly error: {
43
- readonly 25: "#fffbfa";
44
- readonly 50: "#fef3f2";
45
- readonly 100: "#fee4e2";
46
- readonly 200: "#fecdca";
47
- readonly 300: "#fda29b";
48
- readonly 400: "#f97066";
49
- readonly 500: "#f04438";
50
- readonly 600: "#d92d20";
51
- readonly 700: "#b42318";
52
- readonly 800: "#912018";
53
- readonly 900: "#7a271a";
54
- readonly 950: "#55160c";
55
- };
56
- readonly warning: {
57
- readonly 25: "#fffcf5";
58
- readonly 50: "#fffaeb";
59
- readonly 100: "#fef0c7";
60
- readonly 200: "#fedf89";
61
- readonly 300: "#fec84b";
62
- readonly 400: "#fdb022";
63
- readonly 500: "#f79009";
64
- readonly 600: "#dc6803";
65
- readonly 700: "#b54708";
66
- readonly 800: "#93370d";
67
- readonly 900: "#7a2e0e";
68
- readonly 950: "#4e1d09";
69
- };
70
- readonly success: {
71
- readonly 25: "#f6fef9";
72
- readonly 50: "#ecfdf3";
73
- readonly 100: "#dcfae6";
74
- readonly 200: "#abefc6";
75
- readonly 300: "#75e0a7";
76
- readonly 400: "#47cd89";
77
- readonly 500: "#17b26a";
78
- readonly 600: "#079455";
79
- readonly 700: "#067647";
80
- readonly 800: "#085d3a";
81
- readonly 900: "#074d31";
82
- readonly 950: "#053321";
83
- };
84
- readonly blue: {
85
- readonly 25: "#f5faff";
86
- readonly 50: "#eff8ff";
87
- readonly 100: "#d1e9ff";
88
- readonly 200: "#b2ddff";
89
- readonly 300: "#84caff";
90
- readonly 400: "#53b1fd";
91
- readonly 500: "#2e90fa";
92
- readonly 600: "#1570ef";
93
- readonly 700: "#175cd3";
94
- readonly 800: "#1849a9";
95
- readonly 900: "#194185";
96
- readonly 950: "#102a56";
97
- };
98
- };
99
- declare const spacing: {
100
- readonly none: 0;
101
- readonly xxs: 2;
102
- readonly xs: 4;
103
- readonly sm: 6;
104
- readonly md: 8;
105
- readonly lg: 12;
106
- readonly xl: 16;
107
- readonly "2xl": 20;
108
- readonly "3xl": 24;
109
- readonly "4xl": 32;
110
- readonly "5xl": 40;
111
- readonly "6xl": 48;
112
- readonly "7xl": 64;
113
- readonly "8xl": 80;
114
- readonly "9xl": 96;
115
- readonly "10xl": 128;
116
- readonly "11xl": 160;
117
- };
118
- declare const radius: {
119
- readonly none: 0;
120
- readonly xxs: 2;
121
- readonly xs: 4;
122
- readonly sm: 6;
123
- readonly md: 8;
124
- readonly lg: 10;
125
- readonly xl: 12;
126
- readonly "2xl": 16;
127
- readonly "3xl": 20;
128
- readonly "4xl": 24;
129
- readonly full: 9999;
130
- };
131
- declare const shadows$1: {
132
- readonly xs: "0px 1px 2px 0px #1018280d";
133
- readonly sm: "0px 1px 3px 0px #1018281a, 0px 1px 2px 0px #1018280f";
134
- readonly md: "0px 4px 8px -2px #1018281a, 0px 2px 4px -2px #1018280f";
135
- readonly lg: "0px 12px 16px -4px #10182814, 0px 4px 6px -2px #10182808";
136
- readonly xl: "0px 20px 24px -4px #10182814, 0px 8px 8px -4px #10182808";
137
- readonly "2xl": "0px 24px 48px -12px #1018282e";
138
- readonly "3xl": "0px 32px 64px -12px #10182824";
139
- };
140
- declare const focusRings: {
141
- readonly brand: "0px 0px 0px 4px #9e77ed3d";
142
- readonly brandShadowXs: "0px 1px 2px 0px #1018280d, 0px 0px 0px 4px #9e77ed3d";
143
- readonly brandShadowSm: "0px 1px 3px 0px #1018281a, 0px 1px 2px 0px #1018280f, 0px 0px 0px 4px #9e77ed3d";
144
- readonly gray: "0px 0px 0px 4px #98a2b324";
145
- readonly grayShadowXs: "0px 1px 2px 0px #1018280d, 0px 0px 0px 4px #98a2b324";
146
- readonly grayShadowSm: "0px 1px 3px 0px #1018281a, 0px 1px 2px 0px #1018280f, 0px 0px 0px 4px #98a2b324";
147
- readonly error: "0px 0px 0px 4px #f044383d";
148
- readonly errorShadowXs: "0px 1px 2px 0px #1018280d, 0px 0px 0px 4px #f044383d";
149
- };
150
- declare const fontFamily = "\"Poppins\", sans-serif";
151
- declare const fontSize: {
152
- readonly xxs: 11;
153
- readonly xs: 12;
154
- readonly sm: 14;
155
- readonly md: 16;
156
- readonly lg: 18;
157
- readonly xl: 20;
158
- };
159
- declare const lineHeight: {
160
- readonly xxs: "16px";
161
- readonly xs: "18px";
162
- readonly sm: "20px";
163
- readonly md: "24px";
164
- readonly lg: "28px";
165
- readonly xl: "30px";
166
- };
167
- declare const fontWeight: {
168
- readonly regular: 400;
169
- readonly medium: 500;
170
- readonly semibold: 600;
171
- readonly bold: 700;
172
- };
173
- declare const display: {
174
- readonly "2xl": {
175
- readonly fontSize: 72;
176
- readonly lineHeight: "90px";
177
- readonly letterSpacing: "-0.02em";
178
- };
179
- readonly xl: {
180
- readonly fontSize: 60;
181
- readonly lineHeight: "72px";
182
- readonly letterSpacing: "-0.02em";
183
- };
184
- readonly lg: {
185
- readonly fontSize: 48;
186
- readonly lineHeight: "60px";
187
- readonly letterSpacing: "-0.02em";
188
- };
189
- readonly md: {
190
- readonly fontSize: 36;
191
- readonly lineHeight: "44px";
192
- readonly letterSpacing: "-0.02em";
193
- };
194
- readonly sm: {
195
- readonly fontSize: 30;
196
- readonly lineHeight: "38px";
197
- };
198
- readonly xs: {
199
- readonly fontSize: 24;
200
- readonly lineHeight: "32px";
201
- };
202
- };
203
- declare const container: {
204
- readonly maxWidthDesktop: 1280;
205
- readonly paddingDesktop: 32;
206
- readonly paddingMobile: 16;
207
- };
208
- declare const widths: {
209
- readonly xxs: 320;
210
- readonly xs: 384;
211
- readonly sm: 480;
212
- readonly md: 560;
213
- readonly lg: 640;
214
- readonly xl: 768;
215
- readonly "2xl": 1024;
216
- readonly "3xl": 1280;
217
- readonly "4xl": 1440;
218
- readonly "5xl": 1600;
219
- readonly "6xl": 1920;
220
- };
221
-
222
- /** Full set of design tokens that a preset variant must provide. */
223
- interface DesignTokens {
224
- colors: typeof colors;
225
- spacing: typeof spacing;
226
- radius: typeof radius;
227
- shadows: typeof shadows$1;
228
- focusRings: typeof focusRings;
229
- fontFamily: string;
230
- fontSize: typeof fontSize;
231
- lineHeight: typeof lineHeight;
232
- fontWeight: typeof fontWeight;
233
- display: typeof display;
234
- container: typeof container;
235
- widths: typeof widths;
236
- }
237
- /** Configuration for a single variant within a preset. */
238
- interface PresetVariantConfig {
239
- tokens: DesignTokens;
240
- }
241
- /** A named theme preset with one or more variants. */
242
- interface ThemePreset {
243
- name: string;
244
- defaultVariant: string;
245
- variants: Record<string, PresetVariantConfig>;
246
- }
247
-
248
- declare const palette: PaletteOptions;
249
-
250
- declare const typography: TypographyVariantsOptions;
251
-
252
- declare const components: Components<Theme>;
253
-
254
- declare const shadows: Shadows;
255
-
256
- /** Assemble a MUI ThemeOptions object from a full set of design tokens. */
257
- declare function buildThemeOptions(tokens: DesignTokens): ThemeOptions;
258
- /** Create a fully resolved MUI Theme from a full set of design tokens. */
259
- declare function buildTheme(tokens: DesignTokens): Theme;
260
-
261
- declare const forestPreset: ThemePreset;
262
-
263
- /** Get a preset by name. Returns `undefined` if not found. */
264
- declare function getPreset(name: string): ThemePreset | undefined;
265
- /** Register a custom preset (or override a built-in one). */
266
- declare function registerPreset(preset: ThemePreset): void;
267
- /** List all registered preset names. */
268
- declare function getAvailablePresets(): string[];
269
-
270
- declare const forestThemeOptions: ThemeOptions;
271
- declare const forestTheme: _mui_material_styles.Theme;
272
-
273
- export { type DesignTokens as D, type PresetVariantConfig as P, type ThemePreset as T, buildThemeOptions as a, buildTheme as b, colors as c, container as d, display as e, focusRings as f, fontFamily as g, fontSize as h, fontWeight as i, forestPreset as j, forestTheme as k, forestThemeOptions as l, getAvailablePresets as m, getPreset as n, lineHeight as o, registerPreset as p, shadows$1 as q, radius as r, spacing as s, components as t, palette as u, shadows as v, widths as w, typography as x };