@fairmint/ui 0.3.16 → 0.3.17
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/dist/_virtual/index3.cjs +5 -3
- package/dist/_virtual/index3.cjs.map +1 -1
- package/dist/_virtual/index3.js +5 -2
- package/dist/_virtual/index3.js.map +1 -1
- package/dist/_virtual/index4.cjs +3 -5
- package/dist/_virtual/index4.cjs.map +1 -1
- package/dist/_virtual/index4.js +2 -5
- package/dist/_virtual/index4.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/node_modules/@mantine/form/esm/hooks/use-form-status/use-form-status.cjs +1 -1
- package/dist/node_modules/@mantine/form/esm/hooks/use-form-status/use-form-status.js +1 -1
- package/dist/node_modules/prop-types/index.cjs +1 -1
- package/dist/node_modules/prop-types/index.js +1 -1
- package/dist/notify.cjs +84 -4
- package/dist/notify.cjs.map +1 -1
- package/dist/notify.d.ts +44 -7
- package/dist/notify.d.ts.map +1 -1
- package/dist/notify.js +84 -4
- package/dist/notify.js.map +1 -1
- package/dist/snackbarCompat.cjs +78 -21
- package/dist/snackbarCompat.cjs.map +1 -1
- package/dist/snackbarCompat.d.ts.map +1 -1
- package/dist/snackbarCompat.js +78 -21
- package/dist/snackbarCompat.js.map +1 -1
- package/dist/theme/index.cjs +76 -0
- package/dist/theme/index.cjs.map +1 -1
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +76 -0
- package/dist/theme/index.js.map +1 -1
- package/package.json +1 -1
package/dist/theme/index.js
CHANGED
|
@@ -163,6 +163,28 @@ const typography = {
|
|
|
163
163
|
fontFamily: '"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"',
|
|
164
164
|
headingFontFamily: '"Plus Jakarta Sans", sans-serif'
|
|
165
165
|
};
|
|
166
|
+
const notificationToneStyles = {
|
|
167
|
+
success: {
|
|
168
|
+
bg: "var(--fairmint-color-success-bg)",
|
|
169
|
+
border: "var(--fairmint-color-success-border)",
|
|
170
|
+
text: "var(--fairmint-color-success-text)"
|
|
171
|
+
},
|
|
172
|
+
error: {
|
|
173
|
+
bg: "var(--fairmint-color-error-bg)",
|
|
174
|
+
border: "var(--fairmint-color-error-border)",
|
|
175
|
+
text: "var(--fairmint-color-error-text)"
|
|
176
|
+
},
|
|
177
|
+
warning: {
|
|
178
|
+
bg: "var(--fairmint-color-warning-bg)",
|
|
179
|
+
border: "var(--fairmint-color-warning-border)",
|
|
180
|
+
text: "var(--fairmint-color-warning-text)"
|
|
181
|
+
},
|
|
182
|
+
info: {
|
|
183
|
+
bg: "var(--fairmint-color-info-bg)",
|
|
184
|
+
border: "var(--fairmint-color-info-border)",
|
|
185
|
+
text: "var(--fairmint-color-info-text)"
|
|
186
|
+
}
|
|
187
|
+
};
|
|
166
188
|
const theme = createTheme({
|
|
167
189
|
primaryColor: "indigo",
|
|
168
190
|
// Mantine defaults to a darker shade for dark-mode filled/light variants
|
|
@@ -262,6 +284,56 @@ const theme = createTheme({
|
|
|
262
284
|
lineHeight: 1.3
|
|
263
285
|
}
|
|
264
286
|
}
|
|
287
|
+
},
|
|
288
|
+
// Toasts: Ramp-inspired restraint — single-layer subtle elevation (lighter
|
|
289
|
+
// than Mantine shadow-xs) + 1px semantic border (override shadow-lg / filled
|
|
290
|
+
// icon). Semantic variants use *-bg (light = ramp /50 / tuple[0]; dark =
|
|
291
|
+
// approved charcoal semantic surfaces) with matching border/text/icon tokens.
|
|
292
|
+
// Neutral/default (no color) stays on the standard surface.
|
|
293
|
+
// Horizontal padding is symmetric spacing.md (16px): Mantine defaults to
|
|
294
|
+
// 22px start (accent rail) vs spacing.xs end (~10px); Fairmint toasts use
|
|
295
|
+
// outlined icons (rail hidden), so match left/right on the spacing scale.
|
|
296
|
+
Notification: {
|
|
297
|
+
styles: (_theme, params) => {
|
|
298
|
+
const tone = notificationToneStyles[params.color ?? ""];
|
|
299
|
+
const rootPadding = {
|
|
300
|
+
paddingInlineStart: spacing.md,
|
|
301
|
+
paddingInlineEnd: spacing.md
|
|
302
|
+
};
|
|
303
|
+
if (!tone) {
|
|
304
|
+
return {
|
|
305
|
+
root: {
|
|
306
|
+
boxShadow: "var(--fairmint-elevation-subtle)",
|
|
307
|
+
...rootPadding
|
|
308
|
+
},
|
|
309
|
+
icon: {
|
|
310
|
+
backgroundColor: "transparent",
|
|
311
|
+
color: "var(--notification-color)"
|
|
312
|
+
}
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
return {
|
|
316
|
+
root: {
|
|
317
|
+
boxShadow: "var(--fairmint-elevation-subtle)",
|
|
318
|
+
backgroundColor: tone.bg,
|
|
319
|
+
border: `1px solid ${tone.border}`,
|
|
320
|
+
...rootPadding
|
|
321
|
+
},
|
|
322
|
+
title: {
|
|
323
|
+
color: tone.text
|
|
324
|
+
},
|
|
325
|
+
description: {
|
|
326
|
+
color: tone.text
|
|
327
|
+
},
|
|
328
|
+
icon: {
|
|
329
|
+
backgroundColor: "transparent",
|
|
330
|
+
color: tone.text
|
|
331
|
+
},
|
|
332
|
+
closeButton: {
|
|
333
|
+
color: tone.text
|
|
334
|
+
}
|
|
335
|
+
};
|
|
336
|
+
}
|
|
265
337
|
}
|
|
266
338
|
}
|
|
267
339
|
});
|
|
@@ -304,6 +376,8 @@ const fairmintCssVariables = () => ({
|
|
|
304
376
|
"--fairmint-color-surface-selected": indigo[0],
|
|
305
377
|
"--fairmint-color-icon-on-surface-selected": indigo[6],
|
|
306
378
|
"--fairmint-interactive-hover-shadow": `0 2px 6px ${neutral[9]}0F`,
|
|
379
|
+
// Single soft layer — lighter than Mantine shadow-xs (no multi-layer stack).
|
|
380
|
+
"--fairmint-elevation-subtle": `0 1px 3px ${neutral[9]}06`,
|
|
307
381
|
"--fairmint-interactive-hover-bg": neutral[0],
|
|
308
382
|
"--fairmint-color-success-bg": success[0],
|
|
309
383
|
"--fairmint-color-success-text": success[7],
|
|
@@ -363,6 +437,8 @@ const fairmintCssVariables = () => ({
|
|
|
363
437
|
// dark selected surface — use a light indigo instead.
|
|
364
438
|
"--fairmint-color-icon-on-surface-selected": indigo[2],
|
|
365
439
|
"--fairmint-interactive-hover-shadow": "0 2px 6px #00000066",
|
|
440
|
+
// Single soft layer — restrained vs hover shadow and Mantine shadow-xs.
|
|
441
|
+
"--fairmint-elevation-subtle": "0 1px 3px #00000014",
|
|
366
442
|
"--fairmint-interactive-hover-bg": charcoalDark.surface,
|
|
367
443
|
"--fairmint-color-success-bg": charcoalDark.successBg,
|
|
368
444
|
"--fairmint-color-success-text": charcoalDark.successText,
|
package/dist/theme/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/theme/index.ts"],"sourcesContent":["import { type CSSVariablesResolver, createTheme, type MantineColorsTuple } from \"@mantine/core\";\nimport { fontSizes } from \"./fontSizes\";\nimport { spacing } from \"./spacing\";\n\n/**\n * Fairmint radius scale — single source of truth used by both the Mantine\n * theme config and the exported `radii` constant. Edit here; both stay in sync.\n */\nexport const radii = {\n xs: \"0.25rem\",\n sm: \"0.375rem\",\n md: \"0.5rem\",\n lg: \"0.75rem\",\n xl: \"1rem\",\n} as const;\n\n/**\n * Indigo palette — primary UI color.\n * Used for buttons, links, active navigation, focus rings.\n * Shade [5] (#6366F1) is the default primary.\n */\nconst indigo: MantineColorsTuple = [\n \"#EEF2FF\",\n \"#E0E7FF\",\n \"#C7D2FE\",\n \"#A5B4FC\",\n \"#818CF8\",\n \"#6366F1\",\n \"#4F46E5\",\n \"#4338CA\",\n \"#3730A3\",\n \"#253974\",\n];\n\n/**\n * Neutral scale — replaces Mantine's default gray.\n * Used for text, borders, backgrounds, disabled states.\n */\nconst neutral: MantineColorsTuple = [\n \"#F8F9FA\",\n \"#F3F4F6\",\n \"#E5E7EB\",\n \"#D2D6DB\",\n \"#9DA4AE\",\n \"#6C737F\",\n \"#4D5761\",\n \"#2F3746\",\n \"#1C2536\",\n \"#111927\",\n];\n\n/**\n * Dark-mode neutral ramp — the dark surface and text anchors used by Chip.\n * Keep these separate from the light neutral ramp so Light mode remains stable.\n */\nconst darkNeutral: MantineColorsTuple = [\n \"#FFFFFF\",\n \"#E7E9F0\",\n \"#B8C2D0\",\n \"#9DA4AE\",\n \"#8F99AB\",\n \"#6C737F\",\n \"#2F3746\",\n \"#1B1D21\",\n \"#17191D\",\n \"#111214\",\n];\n\n/**\n * Approved charcoal dark-mode roles from the onboarding source of truth.\n * Keep these semantic values explicit instead of deriving them from the\n * light neutral ramp so component behavior stays aligned with Figma.\n */\nconst charcoalDark = {\n canvas: \"#111214\",\n surface: \"#17191D\",\n chrome: \"#1B1D21\",\n control: \"#202329\",\n selected: \"#2F3746\",\n brandSubtle: \"#111927\",\n textPrimary: \"#FFFFFF\",\n textSecondary: \"#9DA4AE\",\n textTertiary: \"#8F99AB\",\n textDisabled: \"#6C737F\",\n iconSecondary: \"#B8C2D0\",\n border: \"#2F3746\",\n focus: \"#A5B4FC\",\n primary: \"#6366F1\",\n primaryHover: \"#818CF8\",\n primaryActive: \"#A5B4FC\",\n successBg: \"#163E38\",\n successText: \"#6FE3BE\",\n successBorder: \"#2F3746\",\n successSolid: \"#34D399\",\n successSolidHover: \"#6FE3BE\",\n warningBg: \"#402A12\",\n warningText: \"#FDB022\",\n warningBorder: \"#6E4515\",\n warningSolid: \"#DC6803\",\n warningSolidHover: \"#E5A34A\",\n infoBg: \"#172B45\",\n infoText: \"#22CCEE\",\n infoBorder: \"#23476B\",\n} as const;\n\n/**\n * Mantine still references its reserved `dark` ramp directly in several\n * component styles (for example Card uses dark[6] and Paper borders use\n * dark[4]). Map those fallback indices to Fairmint's charcoal roles so an\n * un-tokenized Mantine state cannot reintroduce the warm default gray palette.\n */\nconst mantineDark: MantineColorsTuple = [\n charcoalDark.textPrimary,\n darkNeutral[1],\n darkNeutral[2],\n charcoalDark.textSecondary,\n charcoalDark.border,\n charcoalDark.control,\n charcoalDark.surface,\n charcoalDark.canvas,\n charcoalDark.canvas,\n charcoalDark.canvas,\n];\n\n/**\n * Fairmint brand blue — accent color for gradients and brand elements.\n * Shade [5] (#0A4EFB) is the primary brand blue.\n *\n * This is the current production value documented in design/DESIGN.md.\n */\nconst fairmintBlue: MantineColorsTuple = [\n \"#e6f0ff\",\n \"#cce0ff\",\n \"#99c2ff\",\n \"#66a3ff\",\n \"#3385ff\",\n \"#0A4EFB\",\n \"#083ec9\",\n \"#062e97\",\n \"#041f64\",\n \"#020f32\",\n];\n\n/**\n * Fairmint brand purple — accent color for gradients and brand elements.\n * Shade [5] (#9E03FF) is the primary brand purple.\n *\n * This is the current production value documented in design/DESIGN.md.\n */\nconst fairmintPurple: MantineColorsTuple = [\n \"#f5e6ff\",\n \"#e6ccff\",\n \"#cc99ff\",\n \"#b366ff\",\n \"#9933ff\",\n \"#9E03FF\",\n \"#7e02cc\",\n \"#5f0299\",\n \"#3f0166\",\n \"#200133\",\n];\n\nconst success: MantineColorsTuple = [\n \"#F0FDF9\",\n \"#D1FAE5\",\n \"#A7F3D0\",\n \"#6EE7B7\",\n \"#34D399\",\n \"#10B981\",\n \"#059669\",\n \"#047857\",\n \"#065F46\",\n \"#134E48\",\n];\n\nconst warning: MantineColorsTuple = [\n \"#FFFAEB\",\n \"#FEF0C7\",\n \"#FEDF89\",\n \"#FEC84B\",\n \"#FDB022\",\n \"#F79009\",\n \"#DC6803\",\n \"#B54708\",\n \"#93370D\",\n \"#7A2E0E\",\n];\n\nconst error: MantineColorsTuple = [\n \"#FEF3F2\",\n \"#FEE4E2\",\n \"#FECDCA\",\n \"#FDA29B\",\n \"#F97066\",\n \"#F04438\",\n \"#D92D20\",\n \"#B42318\",\n \"#912018\",\n \"#7A271A\",\n];\n\nconst info: MantineColorsTuple = [\n \"#ECFDFF\",\n \"#CFF9FE\",\n \"#A5F0FC\",\n \"#67E3F9\",\n \"#22CCEE\",\n \"#06AED4\",\n \"#088AB2\",\n \"#0E7090\",\n \"#155B75\",\n \"#164C63\",\n];\n\n/**\n * Typography constants — single source of truth for font families.\n * Use these instead of var(--mantine-font-family-*) in component code.\n * Declared before createTheme so the theme itself references them.\n */\nexport const typography = {\n fontFamily:\n '\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\"',\n headingFontFamily: '\"Plus Jakarta Sans\", sans-serif',\n} as const;\n\nexport const theme = createTheme({\n primaryColor: \"indigo\",\n // Mantine defaults to a darker shade for dark-mode filled/light variants\n // (primaryShade: { light: 6, dark: 8 }), but our brand indigo (index 5,\n // #6366F1) is the same accent in both color schemes — pin a single shade\n // so unwrapped Mantine components (color=\"indigo\") don't drift into a\n // different, more saturated purple in dark mode.\n primaryShade: 5,\n colors: {\n indigo,\n gray: neutral,\n dark: mantineDark,\n darkGray: darkNeutral,\n fairmintBlue,\n fairmintPurple,\n success,\n warning,\n error,\n info,\n },\n\n fontFamily: typography.fontFamily,\n headings: {\n fontFamily: typography.headingFontFamily,\n fontWeight: \"700\",\n },\n\n radius: radii,\n defaultRadius: \"md\",\n spacing,\n fontSizes: {\n xs: fontSizes.xs,\n sm: fontSizes.sm,\n md: fontSizes.md,\n lg: fontSizes.lg,\n xl: fontSizes.xl,\n },\n\n breakpoints: {\n xs: \"30em\",\n sm: \"48em\",\n md: \"64em\",\n lg: \"74em\",\n xl: \"90em\",\n },\n\n components: {\n Button: {\n defaultProps: { size: \"md\" },\n styles: {\n root: {\n fontWeight: 600,\n borderRadius: \"0.75rem\",\n textTransform: \"none\" as const,\n },\n },\n },\n Input: {\n classNames: { input: \"fairmint-input\" },\n },\n TextInput: {\n defaultProps: { size: \"md\" },\n },\n Card: {\n defaultProps: {\n padding: \"lg\",\n radius: \"xl\",\n withBorder: true,\n },\n styles: {\n root: {\n backgroundColor: \"var(--fairmint-color-bg-surface, #ffffff)\",\n borderColor: `var(--fairmint-color-border-default, ${neutral[2]})`,\n },\n },\n },\n Paper: {\n styles: {\n root: {\n backgroundColor: \"var(--fairmint-color-bg-surface, #ffffff)\",\n backgroundImage: \"none\",\n borderColor: `var(--fairmint-color-border-default, ${neutral[2]})`,\n },\n },\n },\n Table: {\n styles: {\n thead: {\n fontSize: \"0.75rem\",\n fontWeight: 600,\n letterSpacing: \"0.5px\",\n textTransform: \"uppercase\" as const,\n },\n },\n },\n Modal: {\n styles: {\n title: {\n fontSize: fontSizes.lg,\n fontWeight: 700,\n lineHeight: 1.3,\n },\n },\n },\n },\n});\n\n/**\n * Fairmint CSS variables resolver for MantineProvider.\n * Publishes --fairmint-* custom properties so components never reference\n * --mantine-* variables directly. All light/dark switching is centralised here.\n */\nexport const fairmintCssVariables: CSSVariablesResolver = () => ({\n variables: {\n \"--fairmint-font-headings\": typography.headingFontFamily,\n \"--fairmint-font-body\": typography.fontFamily,\n \"--fairmint-interactive-focus-ring\": indigo[5],\n },\n light: {\n \"--fairmint-interactive-focus-ring\": indigo[5],\n \"--fairmint-color-bg-canvas\": commonColors.white,\n \"--fairmint-color-bg-surface\": commonColors.white,\n \"--fairmint-color-bg-surface-secondary\": neutral[0],\n \"--fairmint-color-bg-hover\": neutral[0],\n \"--fairmint-color-bg-selected\": indigo[0],\n \"--fairmint-color-bg-brand-subtle\": indigo[0],\n \"--fairmint-color-bg-brand-subtle-hover\": indigo[1],\n \"--fairmint-color-bg-disabled\": neutral[2],\n \"--fairmint-watermark-color\": neutral[1],\n \"--fairmint-color-text-primary\": neutral[9],\n \"--fairmint-color-text-secondary\": neutral[5],\n \"--fairmint-color-text-tertiary\": neutral[4],\n \"--fairmint-color-text-inverse\": commonColors.white,\n \"--fairmint-color-text-disabled\": neutral[6],\n \"--fairmint-color-icon-primary\": neutral[9],\n \"--fairmint-color-icon-secondary\": neutral[5],\n \"--fairmint-color-icon-tertiary\": neutral[4],\n \"--fairmint-color-icon-inverse\": commonColors.white,\n \"--fairmint-color-icon-disabled\": neutral[6],\n \"--fairmint-color-border-default\": neutral[2],\n \"--fairmint-color-border-focus\": indigo[5],\n \"--fairmint-color-border-disabled\": neutral[3],\n \"--fairmint-color-brand-primary\": indigo[6],\n \"--fairmint-color-brand-primary-hover\": indigo[7],\n \"--fairmint-color-brand-primary-active\": indigo[7],\n \"--fairmint-color-brand-blue\": fairmintBlue[5],\n \"--fairmint-color-brand-purple\": fairmintPurple[5],\n \"--fairmint-color-watermark\": neutral[1],\n \"--fairmint-color-surface-selected\": indigo[0],\n \"--fairmint-color-icon-on-surface-selected\": indigo[6],\n \"--fairmint-interactive-hover-shadow\": `0 2px 6px ${neutral[9]}0F`,\n \"--fairmint-interactive-hover-bg\": neutral[0],\n \"--fairmint-color-success-bg\": success[0],\n \"--fairmint-color-success-text\": success[7],\n \"--fairmint-color-success-border\": success[2],\n \"--fairmint-color-success-solid\": success[7],\n \"--fairmint-color-success-solid-hover\": success[7],\n \"--fairmint-color-warning-bg\": warning[0],\n \"--fairmint-color-warning-text\": warning[7],\n \"--fairmint-color-warning-border\": warning[2],\n \"--fairmint-color-warning-solid\": warning[7],\n \"--fairmint-color-warning-solid-hover\": warning[7],\n \"--fairmint-color-error-bg\": error[0],\n \"--fairmint-color-error-bg-subtle\": error[1],\n \"--fairmint-color-error-text\": error[7],\n \"--fairmint-color-error-border\": error[2],\n \"--fairmint-color-error-solid\": error[7],\n \"--fairmint-color-error-solid-hover\": error[8],\n \"--fairmint-color-error-solid-muted\": error[4],\n \"--fairmint-color-info-bg\": info[0],\n \"--fairmint-color-info-text\": info[7],\n \"--fairmint-color-info-border\": info[2],\n \"--fairmint-color-info-solid\": info[7],\n \"--fairmint-color-info-solid-hover\": info[7],\n },\n dark: {\n \"--fairmint-interactive-focus-ring\": charcoalDark.focus,\n \"--fairmint-color-bg-canvas\": charcoalDark.canvas,\n \"--fairmint-color-bg-surface\": charcoalDark.surface,\n \"--fairmint-color-bg-surface-secondary\": charcoalDark.chrome,\n \"--fairmint-color-bg-hover\": charcoalDark.control,\n \"--fairmint-color-bg-selected\": charcoalDark.selected,\n \"--fairmint-color-bg-brand-subtle\": charcoalDark.brandSubtle,\n \"--fairmint-color-bg-brand-subtle-hover\": charcoalDark.control,\n \"--fairmint-color-bg-disabled\": charcoalDark.control,\n \"--fairmint-watermark-color\": charcoalDark.control,\n \"--fairmint-color-text-primary\": charcoalDark.textPrimary,\n \"--fairmint-color-text-secondary\": charcoalDark.textSecondary,\n \"--fairmint-color-text-tertiary\": charcoalDark.textTertiary,\n \"--fairmint-color-text-inverse\": neutral[9],\n \"--fairmint-color-text-disabled\": charcoalDark.textDisabled,\n \"--fairmint-color-icon-primary\": charcoalDark.textPrimary,\n \"--fairmint-color-icon-secondary\": charcoalDark.iconSecondary,\n \"--fairmint-color-icon-tertiary\": charcoalDark.textTertiary,\n \"--fairmint-color-icon-inverse\": charcoalDark.textPrimary,\n \"--fairmint-color-icon-disabled\": charcoalDark.textDisabled,\n \"--fairmint-color-border-default\": charcoalDark.border,\n \"--fairmint-color-border-focus\": charcoalDark.focus,\n \"--fairmint-color-border-disabled\": charcoalDark.border,\n \"--fairmint-color-brand-primary\": charcoalDark.primary,\n \"--fairmint-color-brand-primary-hover\": charcoalDark.primaryHover,\n \"--fairmint-color-brand-primary-active\": charcoalDark.primaryActive,\n \"--fairmint-color-brand-blue\": fairmintBlue[5],\n \"--fairmint-color-brand-purple\": fairmintPurple[5],\n \"--fairmint-color-watermark\": charcoalDark.control,\n \"--fairmint-color-surface-selected\": charcoalDark.selected,\n // indigo[6] (the light-mode value) is too dark to read against the\n // dark selected surface — use a light indigo instead.\n \"--fairmint-color-icon-on-surface-selected\": indigo[2],\n \"--fairmint-interactive-hover-shadow\": \"0 2px 6px #00000066\",\n \"--fairmint-interactive-hover-bg\": charcoalDark.surface,\n \"--fairmint-color-success-bg\": charcoalDark.successBg,\n \"--fairmint-color-success-text\": charcoalDark.successText,\n \"--fairmint-color-success-border\": charcoalDark.successBorder,\n \"--fairmint-color-success-solid\": charcoalDark.successSolid,\n \"--fairmint-color-success-solid-hover\": charcoalDark.successSolidHover,\n \"--fairmint-color-warning-bg\": charcoalDark.warningBg,\n \"--fairmint-color-warning-text\": charcoalDark.warningText,\n \"--fairmint-color-warning-border\": charcoalDark.warningBorder,\n \"--fairmint-color-warning-solid\": charcoalDark.warningSolid,\n \"--fairmint-color-warning-solid-hover\": charcoalDark.warningSolidHover,\n \"--fairmint-color-error-bg\": error[9],\n \"--fairmint-color-error-bg-subtle\": error[8],\n \"--fairmint-color-error-text\": error[2],\n \"--fairmint-color-error-border\": error[7],\n \"--fairmint-color-error-solid\": error[7],\n \"--fairmint-color-error-solid-hover\": error[8],\n \"--fairmint-color-error-solid-muted\": error[5],\n \"--fairmint-color-info-bg\": charcoalDark.infoBg,\n \"--fairmint-color-info-text\": charcoalDark.infoText,\n \"--fairmint-color-info-border\": charcoalDark.infoBorder,\n \"--fairmint-color-info-solid\": charcoalDark.primary,\n \"--fairmint-color-info-solid-hover\": charcoalDark.primaryHover,\n\n // Mantine primitives used by the shared component wrappers. These keep\n // Button, Badge, Alert, Loader, and form controls on the same semantic\n // roles instead of falling back to Mantine's default dark palette.\n \"--mantine-color-body\": charcoalDark.canvas,\n \"--mantine-color-text\": charcoalDark.textPrimary,\n \"--mantine-color-bright\": charcoalDark.textPrimary,\n \"--mantine-color-dimmed\": charcoalDark.textSecondary,\n \"--mantine-color-placeholder\": \"#969BA5\",\n \"--mantine-color-default\": charcoalDark.surface,\n \"--mantine-color-default-hover\": charcoalDark.control,\n \"--mantine-color-default-color\": charcoalDark.textPrimary,\n \"--mantine-color-default-border\": charcoalDark.border,\n \"--mantine-color-disabled\": charcoalDark.control,\n \"--mantine-color-disabled-color\": charcoalDark.textDisabled,\n \"--mantine-color-disabled-border\": charcoalDark.border,\n \"--mantine-primary-color-filled\": charcoalDark.primary,\n \"--mantine-primary-color-filled-hover\": charcoalDark.primaryHover,\n \"--mantine-primary-color-light\": charcoalDark.brandSubtle,\n \"--mantine-primary-color-light-hover\": charcoalDark.control,\n \"--mantine-primary-color-light-color\": charcoalDark.primaryActive,\n \"--mantine-primary-color-3\": charcoalDark.primaryActive,\n \"--mantine-primary-color-4\": charcoalDark.primaryActive,\n \"--mantine-primary-color-6\": charcoalDark.primary,\n \"--mantine-primary-color-7\": charcoalDark.primaryHover,\n \"--mantine-primary-color-8\": charcoalDark.primaryHover,\n \"--mantine-primary-color-9\": charcoalDark.brandSubtle,\n \"--mantine-color-indigo-3\": charcoalDark.primaryActive,\n \"--mantine-color-indigo-4\": charcoalDark.primaryActive,\n \"--mantine-color-indigo-6\": charcoalDark.primary,\n \"--mantine-color-indigo-7\": charcoalDark.primaryHover,\n \"--mantine-color-indigo-8\": charcoalDark.primaryHover,\n \"--mantine-color-indigo-9\": charcoalDark.brandSubtle,\n \"--mantine-color-indigo-text\": charcoalDark.primaryActive,\n \"--mantine-color-indigo-filled\": charcoalDark.primary,\n \"--mantine-color-indigo-filled-hover\": charcoalDark.primaryHover,\n \"--mantine-color-indigo-light\": charcoalDark.brandSubtle,\n \"--mantine-color-indigo-light-hover\": charcoalDark.control,\n \"--mantine-color-indigo-light-color\": charcoalDark.primaryActive,\n \"--mantine-color-indigo-outline\": charcoalDark.focus,\n \"--mantine-color-indigo-outline-hover\": charcoalDark.control,\n \"--mantine-color-gray-light\": charcoalDark.control,\n \"--mantine-color-gray-light-color\": charcoalDark.textSecondary,\n \"--mantine-color-gray-filled\": charcoalDark.border,\n \"--mantine-color-gray-filled-hover\": charcoalDark.iconSecondary,\n \"--mantine-color-gray-4\": charcoalDark.iconSecondary,\n \"--mantine-color-gray-5\": charcoalDark.textTertiary,\n \"--mantine-color-gray-6\": charcoalDark.textSecondary,\n \"--mantine-color-gray-7\": charcoalDark.border,\n \"--mantine-color-gray-8\": charcoalDark.chrome,\n \"--mantine-color-gray-9\": charcoalDark.canvas,\n \"--mantine-color-success-light\": charcoalDark.successBg,\n \"--mantine-color-success-light-color\": charcoalDark.successText,\n \"--mantine-color-success-filled\": charcoalDark.successSolid,\n \"--mantine-color-success-filled-hover\": charcoalDark.successSolidHover,\n \"--mantine-color-warning-light\": charcoalDark.warningBg,\n \"--mantine-color-warning-light-color\": charcoalDark.warningText,\n \"--mantine-color-warning-filled\": charcoalDark.warningSolid,\n \"--mantine-color-warning-filled-hover\": charcoalDark.warningSolidHover,\n \"--mantine-color-info-light\": charcoalDark.infoBg,\n \"--mantine-color-info-light-color\": charcoalDark.infoText,\n \"--mantine-color-info-filled\": charcoalDark.primary,\n \"--mantine-color-info-filled-hover\": charcoalDark.primaryHover,\n \"--mantine-color-error-2\": error[2],\n \"--mantine-color-error-3\": error[3],\n \"--mantine-color-error-4\": error[4],\n \"--mantine-color-error-6\": error[6],\n \"--mantine-color-error-7\": error[7],\n \"--mantine-color-error-8\": error[8],\n \"--mantine-color-error-9\": error[9],\n \"--mantine-color-error-text\": error[2],\n \"--mantine-color-error-filled\": error[7],\n \"--mantine-color-error-filled-hover\": error[6],\n \"--mantine-color-error-light\": error[9],\n \"--mantine-color-error-light-hover\": error[8],\n \"--mantine-color-error-light-color\": error[2],\n \"--mantine-color-error-outline\": error[7],\n \"--mantine-color-error-outline-hover\": error[8],\n },\n});\n\n/**\n * Typed JS references to every --fairmint-* CSS custom property.\n * Use these in component code instead of raw \"var(--fairmint-...)\" strings so\n * that renaming a token requires one change here rather than hunting every file.\n *\n * Each value includes a CSS fallback derived from the light-mode token value so\n * that components degrade gracefully when cssVariablesResolver is not wired up\n * (e.g. bare MantineProvider in tests or custom setups). Dark-mode fidelity is\n * lost without the resolver, but nothing renders invisibly.\n */\nconst fairmintVar = (name: string, fallback: string) => `var(--fairmint-${name}, ${fallback})`;\n\nexport const fairmintVars = {\n /** Canvas background for the app shell. */\n colorBgCanvas: fairmintVar(\"color-bg-canvas\", \"#ffffff\"),\n /** Primary raised surface. */\n colorBgSurface: fairmintVar(\"color-bg-surface\", \"#ffffff\"),\n /** Secondary surface used for fields, rows, and subtle containers. */\n colorBgSurfaceSecondary: fairmintVar(\"color-bg-surface-secondary\", neutral[0]),\n /** Hover surface. */\n colorBgHover: fairmintVar(\"color-bg-hover\", neutral[0]),\n /** Selected surface. */\n colorBgSelected: fairmintVar(\"color-bg-selected\", indigo[0]),\n /** Subtle brand surface. */\n colorBgBrandSubtle: fairmintVar(\"color-bg-brand-subtle\", indigo[0]),\n /** Hovered subtle brand surface. */\n colorBgBrandSubtleHover: fairmintVar(\"color-bg-brand-subtle-hover\", indigo[1]),\n /** Disabled surface. */\n colorBgDisabled: fairmintVar(\"color-bg-disabled\", neutral[2]),\n /** Primary body/heading text — titles on tinted surfaces (Chip Banner). */\n colorTextPrimary: `var(--fairmint-color-text-primary, ${neutral[9]})`,\n /** Secondary / muted text — subtitles, supporting labels. Adapts to color scheme. */\n colorTextSecondary: `var(--fairmint-color-text-secondary, ${neutral[5]})`,\n /** Tertiary / faint text — timestamps, metadata. Adapts to color scheme. */\n colorTextTertiary: `var(--fairmint-color-text-tertiary, ${neutral[4]})`,\n /** Text on filled controls. */\n colorTextInverse: fairmintVar(\"color-text-inverse\", \"#ffffff\"),\n /** Disabled text. */\n colorTextDisabled: fairmintVar(\"color-text-disabled\", neutral[6]),\n /** Primary icon and stroke color. */\n colorIconPrimary: fairmintVar(\"color-icon-primary\", neutral[9]),\n /** Secondary icon and stroke color. */\n colorIconSecondary: fairmintVar(\"color-icon-secondary\", neutral[5]),\n /** Tertiary icon and stroke color. */\n colorIconTertiary: fairmintVar(\"color-icon-tertiary\", neutral[4]),\n /** Icon color on filled or dark surfaces. */\n colorIconInverse: fairmintVar(\"color-icon-inverse\", \"#ffffff\"),\n /** Disabled icon and stroke color. */\n colorIconDisabled: fairmintVar(\"color-icon-disabled\", neutral[6]),\n /** Default border. */\n colorBorderDefault: fairmintVar(\"color-border-default\", neutral[2]),\n /** Focus border/ring color. */\n colorBorderFocus: fairmintVar(\"color-border-focus\", indigo[5]),\n /** Disabled border. */\n colorBorderDisabled: fairmintVar(\"color-border-disabled\", neutral[3]),\n /** Brand action color. */\n colorBrandPrimary: fairmintVar(\"color-brand-primary\", indigo[6]),\n /** Hovered brand action color. */\n colorBrandPrimaryHover: fairmintVar(\"color-brand-primary-hover\", indigo[7]),\n /** Pressed brand action color. */\n colorBrandPrimaryActive: fairmintVar(\"color-brand-primary-active\", indigo[7]),\n /** Fairmint blue brand accent. */\n colorBrandBlue: fairmintVar(\"color-brand-blue\", fairmintBlue[5]),\n /** Fairmint purple brand accent. */\n colorBrandPurple: fairmintVar(\"color-brand-purple\", fairmintPurple[5]),\n /** Background tint for selected / active rows. Adapts to color scheme. */\n colorSurfaceSelected: `var(--fairmint-color-surface-selected, ${indigo[0]})`,\n /** Icon/text drawn on top of colorSurfaceSelected (e.g. a checkmark in a selected badge). Adapts to color scheme. */\n colorIconOnSurfaceSelected: `var(--fairmint-color-icon-on-surface-selected, ${indigo[6]})`,\n /** Semantic status roles. */\n colorSuccessBg: fairmintVar(\"color-success-bg\", success[0]),\n colorSuccessText: fairmintVar(\"color-success-text\", success[7]),\n colorSuccessBorder: fairmintVar(\"color-success-border\", success[2]),\n colorSuccessSolid: fairmintVar(\"color-success-solid\", success[7]),\n colorSuccessSolidHover: fairmintVar(\"color-success-solid-hover\", success[7]),\n colorWarningBg: fairmintVar(\"color-warning-bg\", warning[0]),\n colorWarningText: fairmintVar(\"color-warning-text\", warning[7]),\n colorWarningBorder: fairmintVar(\"color-warning-border\", warning[2]),\n colorWarningSolid: fairmintVar(\"color-warning-solid\", warning[7]),\n colorWarningSolidHover: fairmintVar(\"color-warning-solid-hover\", warning[7]),\n colorErrorBg: fairmintVar(\"color-error-bg\", error[0]),\n colorErrorBgSubtle: fairmintVar(\"color-error-bg-subtle\", error[1]),\n colorErrorText: fairmintVar(\"color-error-text\", error[7]),\n colorErrorBorder: fairmintVar(\"color-error-border\", error[2]),\n colorErrorSolid: fairmintVar(\"color-error-solid\", error[5]),\n colorErrorSolidHover: fairmintVar(\"color-error-solid-hover\", error[6]),\n colorErrorSolidMuted: fairmintVar(\"color-error-solid-muted\", error[4]),\n colorInfoBg: fairmintVar(\"color-info-bg\", info[0]),\n colorInfoText: fairmintVar(\"color-info-text\", info[7]),\n colorInfoBorder: fairmintVar(\"color-info-border\", info[2]),\n colorInfoSolid: fairmintVar(\"color-info-solid\", info[7]),\n colorInfoSolidHover: fairmintVar(\"color-info-solid-hover\", info[7]),\n /** Decorative watermark color. */\n colorWatermark: fairmintVar(\"color-watermark\", neutral[1]),\n /** Large decorative watermark on error/empty pages. Adapts to color scheme. */\n watermarkColor: fairmintVar(\"color-watermark\", neutral[1]),\n /** Heading font family (Plus Jakarta Sans). */\n fontHeadings: `var(--fairmint-font-headings, ${typography.headingFontFamily})`,\n /** Body font family (Inter). */\n fontBody: `var(--fairmint-font-body, ${typography.fontFamily})`,\n} as const;\n\n/**\n * Returns the MantineProvider props required to use @fairmint/ui components.\n * Use this when you need to instantiate MantineProvider directly (e.g. in\n * Storybook decorators or server-rendering setups) instead of FairmintProvider.\n *\n * @example\n * ```tsx\n * import { MantineProvider } from \"@mantine/core\";\n * import { createFairmintMantineProviderProps } from \"@fairmint/ui\";\n *\n * <MantineProvider {...createFairmintMantineProviderProps()}>\n * <App />\n * </MantineProvider>\n * ```\n */\nexport function createFairmintMantineProviderProps(\n colorScheme: \"light\" | \"dark\" | \"auto\" = \"light\",\n) {\n return {\n theme,\n cssVariablesResolver: fairmintCssVariables,\n defaultColorScheme: colorScheme,\n } as const;\n}\n\n/** Brand colors for gradients and custom styling. */\nexport const brandColors = {\n blue: \"#0A4EFB\",\n purple: \"#9E03FF\",\n indigo: \"#6366F1\",\n gradient: \"linear-gradient(90deg, #0A4EFB 0%, #9E03FF 100%)\",\n} as const;\n\nexport const commonColors = {\n black: \"#000000\",\n white: \"#ffffff\",\n} as const;\n\n/**\n * Card/row shadow used by WalletList and similar card surfaces.\n * Equivalent to neutralColors[900] at ~10% opacity (#111927 → #1119271A).\n */\nexport const shadowColor = {\n card: \"#1119271A\",\n} as const;\n\n/** Indigo scale for direct access outside Mantine's theme system. Keys are numeric literals. */\nexport const indigoColors = {\n 0: \"#EEF2FF\",\n 1: \"#E0E7FF\",\n 2: \"#C7D2FE\",\n 3: \"#A5B4FC\",\n 4: \"#818CF8\",\n 5: \"#6366F1\",\n 6: \"#4F46E5\",\n 7: \"#4338CA\",\n 8: \"#3730A3\",\n 9: \"#312E81\",\n} as const;\n\n/** Neutral scale for direct access outside Mantine's theme system. Keys are numeric literals. */\nexport const neutralColors = {\n 50: \"#F8F9FA\",\n 100: \"#F3F4F6\",\n 200: \"#E5E7EB\",\n 300: \"#D2D6DB\",\n 400: \"#9DA4AE\",\n 500: \"#6C737F\",\n 600: \"#4D5761\",\n 700: \"#2F3746\",\n 800: \"#1C2536\",\n 900: \"#111927\",\n} as const;\n\n/** Dark neutral ramp used by the semantic dark-mode CSS variables. */\nexport const darkNeutralColors = {\n 50: \"#F5F7FA\",\n 100: \"#E2E7ED\",\n 200: \"#B8C2D0\",\n 300: \"#8D99A8\",\n 400: \"#748093\",\n 500: \"#5C687A\",\n 600: \"#2F3746\",\n 700: \"#1F2A39\",\n 800: \"#1B2431\",\n 900: \"#0F141C\",\n} as const;\n\n/** Semantic colors for status-based styling. */\nexport const semanticColors = {\n success: \"#10B981\",\n warning: \"#F79009\",\n error: \"#F04438\",\n info: \"#06AED4\",\n} as const;\n\nexport type { AvatarPaletteColor, FairmintColor } from \"./colors\";\nexport { AVATAR_PALETTE, colors } from \"./colors\";\nexport type { FairmintFontSize } from \"./fontSizes\";\nexport { fontSizes } from \"./fontSizes\";\nexport { DEFAULT_FAIRMINT_LOGO_SRC } from \"./logo\";\nexport type { FairmintResponsiveTypography } from \"./responsiveTypography\";\nexport { responsiveTypography } from \"./responsiveTypography\";\nexport type { FairmintSpacing } from \"./spacing\";\nexport { spacing } from \"./spacing\";\nexport { overlayZIndexAboveLegacyShell } from \"./zIndex\";\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/theme/index.ts"],"sourcesContent":["import {\n type CSSVariablesResolver,\n createTheme,\n type MantineColorsTuple,\n type MantineTheme,\n} from \"@mantine/core\";\nimport { fontSizes } from \"./fontSizes\";\nimport { spacing } from \"./spacing\";\n\n/**\n * Fairmint radius scale — single source of truth used by both the Mantine\n * theme config and the exported `radii` constant. Edit here; both stay in sync.\n */\nexport const radii = {\n xs: \"0.25rem\",\n sm: \"0.375rem\",\n md: \"0.5rem\",\n lg: \"0.75rem\",\n xl: \"1rem\",\n} as const;\n\n/**\n * Indigo palette — primary UI color.\n * Used for buttons, links, active navigation, focus rings.\n * Shade [5] (#6366F1) is the default primary.\n */\nconst indigo: MantineColorsTuple = [\n \"#EEF2FF\",\n \"#E0E7FF\",\n \"#C7D2FE\",\n \"#A5B4FC\",\n \"#818CF8\",\n \"#6366F1\",\n \"#4F46E5\",\n \"#4338CA\",\n \"#3730A3\",\n \"#253974\",\n];\n\n/**\n * Neutral scale — replaces Mantine's default gray.\n * Used for text, borders, backgrounds, disabled states.\n */\nconst neutral: MantineColorsTuple = [\n \"#F8F9FA\",\n \"#F3F4F6\",\n \"#E5E7EB\",\n \"#D2D6DB\",\n \"#9DA4AE\",\n \"#6C737F\",\n \"#4D5761\",\n \"#2F3746\",\n \"#1C2536\",\n \"#111927\",\n];\n\n/**\n * Dark-mode neutral ramp — the dark surface and text anchors used by Chip.\n * Keep these separate from the light neutral ramp so Light mode remains stable.\n */\nconst darkNeutral: MantineColorsTuple = [\n \"#FFFFFF\",\n \"#E7E9F0\",\n \"#B8C2D0\",\n \"#9DA4AE\",\n \"#8F99AB\",\n \"#6C737F\",\n \"#2F3746\",\n \"#1B1D21\",\n \"#17191D\",\n \"#111214\",\n];\n\n/**\n * Approved charcoal dark-mode roles from the onboarding source of truth.\n * Keep these semantic values explicit instead of deriving them from the\n * light neutral ramp so component behavior stays aligned with Figma.\n */\nconst charcoalDark = {\n canvas: \"#111214\",\n surface: \"#17191D\",\n chrome: \"#1B1D21\",\n control: \"#202329\",\n selected: \"#2F3746\",\n brandSubtle: \"#111927\",\n textPrimary: \"#FFFFFF\",\n textSecondary: \"#9DA4AE\",\n textTertiary: \"#8F99AB\",\n textDisabled: \"#6C737F\",\n iconSecondary: \"#B8C2D0\",\n border: \"#2F3746\",\n focus: \"#A5B4FC\",\n primary: \"#6366F1\",\n primaryHover: \"#818CF8\",\n primaryActive: \"#A5B4FC\",\n successBg: \"#163E38\",\n successText: \"#6FE3BE\",\n successBorder: \"#2F3746\",\n successSolid: \"#34D399\",\n successSolidHover: \"#6FE3BE\",\n warningBg: \"#402A12\",\n warningText: \"#FDB022\",\n warningBorder: \"#6E4515\",\n warningSolid: \"#DC6803\",\n warningSolidHover: \"#E5A34A\",\n infoBg: \"#172B45\",\n infoText: \"#22CCEE\",\n infoBorder: \"#23476B\",\n} as const;\n\n/**\n * Mantine still references its reserved `dark` ramp directly in several\n * component styles (for example Card uses dark[6] and Paper borders use\n * dark[4]). Map those fallback indices to Fairmint's charcoal roles so an\n * un-tokenized Mantine state cannot reintroduce the warm default gray palette.\n */\nconst mantineDark: MantineColorsTuple = [\n charcoalDark.textPrimary,\n darkNeutral[1],\n darkNeutral[2],\n charcoalDark.textSecondary,\n charcoalDark.border,\n charcoalDark.control,\n charcoalDark.surface,\n charcoalDark.canvas,\n charcoalDark.canvas,\n charcoalDark.canvas,\n];\n\n/**\n * Fairmint brand blue — accent color for gradients and brand elements.\n * Shade [5] (#0A4EFB) is the primary brand blue.\n *\n * This is the current production value documented in design/DESIGN.md.\n */\nconst fairmintBlue: MantineColorsTuple = [\n \"#e6f0ff\",\n \"#cce0ff\",\n \"#99c2ff\",\n \"#66a3ff\",\n \"#3385ff\",\n \"#0A4EFB\",\n \"#083ec9\",\n \"#062e97\",\n \"#041f64\",\n \"#020f32\",\n];\n\n/**\n * Fairmint brand purple — accent color for gradients and brand elements.\n * Shade [5] (#9E03FF) is the primary brand purple.\n *\n * This is the current production value documented in design/DESIGN.md.\n */\nconst fairmintPurple: MantineColorsTuple = [\n \"#f5e6ff\",\n \"#e6ccff\",\n \"#cc99ff\",\n \"#b366ff\",\n \"#9933ff\",\n \"#9E03FF\",\n \"#7e02cc\",\n \"#5f0299\",\n \"#3f0166\",\n \"#200133\",\n];\n\nconst success: MantineColorsTuple = [\n \"#F0FDF9\",\n \"#D1FAE5\",\n \"#A7F3D0\",\n \"#6EE7B7\",\n \"#34D399\",\n \"#10B981\",\n \"#059669\",\n \"#047857\",\n \"#065F46\",\n \"#134E48\",\n];\n\nconst warning: MantineColorsTuple = [\n \"#FFFAEB\",\n \"#FEF0C7\",\n \"#FEDF89\",\n \"#FEC84B\",\n \"#FDB022\",\n \"#F79009\",\n \"#DC6803\",\n \"#B54708\",\n \"#93370D\",\n \"#7A2E0E\",\n];\n\nconst error: MantineColorsTuple = [\n \"#FEF3F2\",\n \"#FEE4E2\",\n \"#FECDCA\",\n \"#FDA29B\",\n \"#F97066\",\n \"#F04438\",\n \"#D92D20\",\n \"#B42318\",\n \"#912018\",\n \"#7A271A\",\n];\n\nconst info: MantineColorsTuple = [\n \"#ECFDFF\",\n \"#CFF9FE\",\n \"#A5F0FC\",\n \"#67E3F9\",\n \"#22CCEE\",\n \"#06AED4\",\n \"#088AB2\",\n \"#0E7090\",\n \"#155B75\",\n \"#164C63\",\n];\n\n/**\n * Typography constants — single source of truth for font families.\n * Use these instead of var(--mantine-font-family-*) in component code.\n * Declared before createTheme so the theme itself references them.\n */\nexport const typography = {\n fontFamily:\n '\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\"',\n headingFontFamily: '\"Plus Jakarta Sans\", sans-serif',\n} as const;\n\n/**\n * Semantic toast surfaces keyed by Mantine Notification `color`.\n * Uses Fairmint CSS variables so light/dark flip with the resolver\n * (`*-bg` light values are the /50 ramp shade / tuple[0]).\n */\nconst notificationToneStyles: Record<string, { bg: string; border: string; text: string }> = {\n success: {\n bg: \"var(--fairmint-color-success-bg)\",\n border: \"var(--fairmint-color-success-border)\",\n text: \"var(--fairmint-color-success-text)\",\n },\n error: {\n bg: \"var(--fairmint-color-error-bg)\",\n border: \"var(--fairmint-color-error-border)\",\n text: \"var(--fairmint-color-error-text)\",\n },\n warning: {\n bg: \"var(--fairmint-color-warning-bg)\",\n border: \"var(--fairmint-color-warning-border)\",\n text: \"var(--fairmint-color-warning-text)\",\n },\n info: {\n bg: \"var(--fairmint-color-info-bg)\",\n border: \"var(--fairmint-color-info-border)\",\n text: \"var(--fairmint-color-info-text)\",\n },\n};\n\nexport const theme = createTheme({\n primaryColor: \"indigo\",\n // Mantine defaults to a darker shade for dark-mode filled/light variants\n // (primaryShade: { light: 6, dark: 8 }), but our brand indigo (index 5,\n // #6366F1) is the same accent in both color schemes — pin a single shade\n // so unwrapped Mantine components (color=\"indigo\") don't drift into a\n // different, more saturated purple in dark mode.\n primaryShade: 5,\n colors: {\n indigo,\n gray: neutral,\n dark: mantineDark,\n darkGray: darkNeutral,\n fairmintBlue,\n fairmintPurple,\n success,\n warning,\n error,\n info,\n },\n\n fontFamily: typography.fontFamily,\n headings: {\n fontFamily: typography.headingFontFamily,\n fontWeight: \"700\",\n },\n\n radius: radii,\n defaultRadius: \"md\",\n spacing,\n fontSizes: {\n xs: fontSizes.xs,\n sm: fontSizes.sm,\n md: fontSizes.md,\n lg: fontSizes.lg,\n xl: fontSizes.xl,\n },\n\n breakpoints: {\n xs: \"30em\",\n sm: \"48em\",\n md: \"64em\",\n lg: \"74em\",\n xl: \"90em\",\n },\n\n components: {\n Button: {\n defaultProps: { size: \"md\" },\n styles: {\n root: {\n fontWeight: 600,\n borderRadius: \"0.75rem\",\n textTransform: \"none\" as const,\n },\n },\n },\n Input: {\n classNames: { input: \"fairmint-input\" },\n },\n TextInput: {\n defaultProps: { size: \"md\" },\n },\n Card: {\n defaultProps: {\n padding: \"lg\",\n radius: \"xl\",\n withBorder: true,\n },\n styles: {\n root: {\n backgroundColor: \"var(--fairmint-color-bg-surface, #ffffff)\",\n borderColor: `var(--fairmint-color-border-default, ${neutral[2]})`,\n },\n },\n },\n Paper: {\n styles: {\n root: {\n backgroundColor: \"var(--fairmint-color-bg-surface, #ffffff)\",\n backgroundImage: \"none\",\n borderColor: `var(--fairmint-color-border-default, ${neutral[2]})`,\n },\n },\n },\n Table: {\n styles: {\n thead: {\n fontSize: \"0.75rem\",\n fontWeight: 600,\n letterSpacing: \"0.5px\",\n textTransform: \"uppercase\" as const,\n },\n },\n },\n Modal: {\n styles: {\n title: {\n fontSize: fontSizes.lg,\n fontWeight: 700,\n lineHeight: 1.3,\n },\n },\n },\n // Toasts: Ramp-inspired restraint — single-layer subtle elevation (lighter\n // than Mantine shadow-xs) + 1px semantic border (override shadow-lg / filled\n // icon). Semantic variants use *-bg (light = ramp /50 / tuple[0]; dark =\n // approved charcoal semantic surfaces) with matching border/text/icon tokens.\n // Neutral/default (no color) stays on the standard surface.\n // Horizontal padding is symmetric spacing.md (16px): Mantine defaults to\n // 22px start (accent rail) vs spacing.xs end (~10px); Fairmint toasts use\n // outlined icons (rail hidden), so match left/right on the spacing scale.\n Notification: {\n styles: (_theme: MantineTheme, params: { color?: string }) => {\n const tone = notificationToneStyles[params.color ?? \"\"];\n const rootPadding = {\n paddingInlineStart: spacing.md,\n paddingInlineEnd: spacing.md,\n } as const;\n\n if (!tone) {\n return {\n root: {\n boxShadow: \"var(--fairmint-elevation-subtle)\",\n ...rootPadding,\n },\n icon: {\n backgroundColor: \"transparent\",\n color: \"var(--notification-color)\",\n },\n };\n }\n\n return {\n root: {\n boxShadow: \"var(--fairmint-elevation-subtle)\",\n backgroundColor: tone.bg,\n border: `1px solid ${tone.border}`,\n ...rootPadding,\n },\n title: {\n color: tone.text,\n },\n description: {\n color: tone.text,\n },\n icon: {\n backgroundColor: \"transparent\",\n color: tone.text,\n },\n closeButton: {\n color: tone.text,\n },\n };\n },\n },\n },\n});\n\n/**\n * Fairmint CSS variables resolver for MantineProvider.\n * Publishes --fairmint-* custom properties so components never reference\n * --mantine-* variables directly. All light/dark switching is centralised here.\n */\nexport const fairmintCssVariables: CSSVariablesResolver = () => ({\n variables: {\n \"--fairmint-font-headings\": typography.headingFontFamily,\n \"--fairmint-font-body\": typography.fontFamily,\n \"--fairmint-interactive-focus-ring\": indigo[5],\n },\n light: {\n \"--fairmint-interactive-focus-ring\": indigo[5],\n \"--fairmint-color-bg-canvas\": commonColors.white,\n \"--fairmint-color-bg-surface\": commonColors.white,\n \"--fairmint-color-bg-surface-secondary\": neutral[0],\n \"--fairmint-color-bg-hover\": neutral[0],\n \"--fairmint-color-bg-selected\": indigo[0],\n \"--fairmint-color-bg-brand-subtle\": indigo[0],\n \"--fairmint-color-bg-brand-subtle-hover\": indigo[1],\n \"--fairmint-color-bg-disabled\": neutral[2],\n \"--fairmint-watermark-color\": neutral[1],\n \"--fairmint-color-text-primary\": neutral[9],\n \"--fairmint-color-text-secondary\": neutral[5],\n \"--fairmint-color-text-tertiary\": neutral[4],\n \"--fairmint-color-text-inverse\": commonColors.white,\n \"--fairmint-color-text-disabled\": neutral[6],\n \"--fairmint-color-icon-primary\": neutral[9],\n \"--fairmint-color-icon-secondary\": neutral[5],\n \"--fairmint-color-icon-tertiary\": neutral[4],\n \"--fairmint-color-icon-inverse\": commonColors.white,\n \"--fairmint-color-icon-disabled\": neutral[6],\n \"--fairmint-color-border-default\": neutral[2],\n \"--fairmint-color-border-focus\": indigo[5],\n \"--fairmint-color-border-disabled\": neutral[3],\n \"--fairmint-color-brand-primary\": indigo[6],\n \"--fairmint-color-brand-primary-hover\": indigo[7],\n \"--fairmint-color-brand-primary-active\": indigo[7],\n \"--fairmint-color-brand-blue\": fairmintBlue[5],\n \"--fairmint-color-brand-purple\": fairmintPurple[5],\n \"--fairmint-color-watermark\": neutral[1],\n \"--fairmint-color-surface-selected\": indigo[0],\n \"--fairmint-color-icon-on-surface-selected\": indigo[6],\n \"--fairmint-interactive-hover-shadow\": `0 2px 6px ${neutral[9]}0F`,\n // Single soft layer — lighter than Mantine shadow-xs (no multi-layer stack).\n \"--fairmint-elevation-subtle\": `0 1px 3px ${neutral[9]}06`,\n \"--fairmint-interactive-hover-bg\": neutral[0],\n \"--fairmint-color-success-bg\": success[0],\n \"--fairmint-color-success-text\": success[7],\n \"--fairmint-color-success-border\": success[2],\n \"--fairmint-color-success-solid\": success[7],\n \"--fairmint-color-success-solid-hover\": success[7],\n \"--fairmint-color-warning-bg\": warning[0],\n \"--fairmint-color-warning-text\": warning[7],\n \"--fairmint-color-warning-border\": warning[2],\n \"--fairmint-color-warning-solid\": warning[7],\n \"--fairmint-color-warning-solid-hover\": warning[7],\n \"--fairmint-color-error-bg\": error[0],\n \"--fairmint-color-error-bg-subtle\": error[1],\n \"--fairmint-color-error-text\": error[7],\n \"--fairmint-color-error-border\": error[2],\n \"--fairmint-color-error-solid\": error[7],\n \"--fairmint-color-error-solid-hover\": error[8],\n \"--fairmint-color-error-solid-muted\": error[4],\n \"--fairmint-color-info-bg\": info[0],\n \"--fairmint-color-info-text\": info[7],\n \"--fairmint-color-info-border\": info[2],\n \"--fairmint-color-info-solid\": info[7],\n \"--fairmint-color-info-solid-hover\": info[7],\n },\n dark: {\n \"--fairmint-interactive-focus-ring\": charcoalDark.focus,\n \"--fairmint-color-bg-canvas\": charcoalDark.canvas,\n \"--fairmint-color-bg-surface\": charcoalDark.surface,\n \"--fairmint-color-bg-surface-secondary\": charcoalDark.chrome,\n \"--fairmint-color-bg-hover\": charcoalDark.control,\n \"--fairmint-color-bg-selected\": charcoalDark.selected,\n \"--fairmint-color-bg-brand-subtle\": charcoalDark.brandSubtle,\n \"--fairmint-color-bg-brand-subtle-hover\": charcoalDark.control,\n \"--fairmint-color-bg-disabled\": charcoalDark.control,\n \"--fairmint-watermark-color\": charcoalDark.control,\n \"--fairmint-color-text-primary\": charcoalDark.textPrimary,\n \"--fairmint-color-text-secondary\": charcoalDark.textSecondary,\n \"--fairmint-color-text-tertiary\": charcoalDark.textTertiary,\n \"--fairmint-color-text-inverse\": neutral[9],\n \"--fairmint-color-text-disabled\": charcoalDark.textDisabled,\n \"--fairmint-color-icon-primary\": charcoalDark.textPrimary,\n \"--fairmint-color-icon-secondary\": charcoalDark.iconSecondary,\n \"--fairmint-color-icon-tertiary\": charcoalDark.textTertiary,\n \"--fairmint-color-icon-inverse\": charcoalDark.textPrimary,\n \"--fairmint-color-icon-disabled\": charcoalDark.textDisabled,\n \"--fairmint-color-border-default\": charcoalDark.border,\n \"--fairmint-color-border-focus\": charcoalDark.focus,\n \"--fairmint-color-border-disabled\": charcoalDark.border,\n \"--fairmint-color-brand-primary\": charcoalDark.primary,\n \"--fairmint-color-brand-primary-hover\": charcoalDark.primaryHover,\n \"--fairmint-color-brand-primary-active\": charcoalDark.primaryActive,\n \"--fairmint-color-brand-blue\": fairmintBlue[5],\n \"--fairmint-color-brand-purple\": fairmintPurple[5],\n \"--fairmint-color-watermark\": charcoalDark.control,\n \"--fairmint-color-surface-selected\": charcoalDark.selected,\n // indigo[6] (the light-mode value) is too dark to read against the\n // dark selected surface — use a light indigo instead.\n \"--fairmint-color-icon-on-surface-selected\": indigo[2],\n \"--fairmint-interactive-hover-shadow\": \"0 2px 6px #00000066\",\n // Single soft layer — restrained vs hover shadow and Mantine shadow-xs.\n \"--fairmint-elevation-subtle\": \"0 1px 3px #00000014\",\n \"--fairmint-interactive-hover-bg\": charcoalDark.surface,\n \"--fairmint-color-success-bg\": charcoalDark.successBg,\n \"--fairmint-color-success-text\": charcoalDark.successText,\n \"--fairmint-color-success-border\": charcoalDark.successBorder,\n \"--fairmint-color-success-solid\": charcoalDark.successSolid,\n \"--fairmint-color-success-solid-hover\": charcoalDark.successSolidHover,\n \"--fairmint-color-warning-bg\": charcoalDark.warningBg,\n \"--fairmint-color-warning-text\": charcoalDark.warningText,\n \"--fairmint-color-warning-border\": charcoalDark.warningBorder,\n \"--fairmint-color-warning-solid\": charcoalDark.warningSolid,\n \"--fairmint-color-warning-solid-hover\": charcoalDark.warningSolidHover,\n \"--fairmint-color-error-bg\": error[9],\n \"--fairmint-color-error-bg-subtle\": error[8],\n \"--fairmint-color-error-text\": error[2],\n \"--fairmint-color-error-border\": error[7],\n \"--fairmint-color-error-solid\": error[7],\n \"--fairmint-color-error-solid-hover\": error[8],\n \"--fairmint-color-error-solid-muted\": error[5],\n \"--fairmint-color-info-bg\": charcoalDark.infoBg,\n \"--fairmint-color-info-text\": charcoalDark.infoText,\n \"--fairmint-color-info-border\": charcoalDark.infoBorder,\n \"--fairmint-color-info-solid\": charcoalDark.primary,\n \"--fairmint-color-info-solid-hover\": charcoalDark.primaryHover,\n\n // Mantine primitives used by the shared component wrappers. These keep\n // Button, Badge, Alert, Loader, and form controls on the same semantic\n // roles instead of falling back to Mantine's default dark palette.\n \"--mantine-color-body\": charcoalDark.canvas,\n \"--mantine-color-text\": charcoalDark.textPrimary,\n \"--mantine-color-bright\": charcoalDark.textPrimary,\n \"--mantine-color-dimmed\": charcoalDark.textSecondary,\n \"--mantine-color-placeholder\": \"#969BA5\",\n \"--mantine-color-default\": charcoalDark.surface,\n \"--mantine-color-default-hover\": charcoalDark.control,\n \"--mantine-color-default-color\": charcoalDark.textPrimary,\n \"--mantine-color-default-border\": charcoalDark.border,\n \"--mantine-color-disabled\": charcoalDark.control,\n \"--mantine-color-disabled-color\": charcoalDark.textDisabled,\n \"--mantine-color-disabled-border\": charcoalDark.border,\n \"--mantine-primary-color-filled\": charcoalDark.primary,\n \"--mantine-primary-color-filled-hover\": charcoalDark.primaryHover,\n \"--mantine-primary-color-light\": charcoalDark.brandSubtle,\n \"--mantine-primary-color-light-hover\": charcoalDark.control,\n \"--mantine-primary-color-light-color\": charcoalDark.primaryActive,\n \"--mantine-primary-color-3\": charcoalDark.primaryActive,\n \"--mantine-primary-color-4\": charcoalDark.primaryActive,\n \"--mantine-primary-color-6\": charcoalDark.primary,\n \"--mantine-primary-color-7\": charcoalDark.primaryHover,\n \"--mantine-primary-color-8\": charcoalDark.primaryHover,\n \"--mantine-primary-color-9\": charcoalDark.brandSubtle,\n \"--mantine-color-indigo-3\": charcoalDark.primaryActive,\n \"--mantine-color-indigo-4\": charcoalDark.primaryActive,\n \"--mantine-color-indigo-6\": charcoalDark.primary,\n \"--mantine-color-indigo-7\": charcoalDark.primaryHover,\n \"--mantine-color-indigo-8\": charcoalDark.primaryHover,\n \"--mantine-color-indigo-9\": charcoalDark.brandSubtle,\n \"--mantine-color-indigo-text\": charcoalDark.primaryActive,\n \"--mantine-color-indigo-filled\": charcoalDark.primary,\n \"--mantine-color-indigo-filled-hover\": charcoalDark.primaryHover,\n \"--mantine-color-indigo-light\": charcoalDark.brandSubtle,\n \"--mantine-color-indigo-light-hover\": charcoalDark.control,\n \"--mantine-color-indigo-light-color\": charcoalDark.primaryActive,\n \"--mantine-color-indigo-outline\": charcoalDark.focus,\n \"--mantine-color-indigo-outline-hover\": charcoalDark.control,\n \"--mantine-color-gray-light\": charcoalDark.control,\n \"--mantine-color-gray-light-color\": charcoalDark.textSecondary,\n \"--mantine-color-gray-filled\": charcoalDark.border,\n \"--mantine-color-gray-filled-hover\": charcoalDark.iconSecondary,\n \"--mantine-color-gray-4\": charcoalDark.iconSecondary,\n \"--mantine-color-gray-5\": charcoalDark.textTertiary,\n \"--mantine-color-gray-6\": charcoalDark.textSecondary,\n \"--mantine-color-gray-7\": charcoalDark.border,\n \"--mantine-color-gray-8\": charcoalDark.chrome,\n \"--mantine-color-gray-9\": charcoalDark.canvas,\n \"--mantine-color-success-light\": charcoalDark.successBg,\n \"--mantine-color-success-light-color\": charcoalDark.successText,\n \"--mantine-color-success-filled\": charcoalDark.successSolid,\n \"--mantine-color-success-filled-hover\": charcoalDark.successSolidHover,\n \"--mantine-color-warning-light\": charcoalDark.warningBg,\n \"--mantine-color-warning-light-color\": charcoalDark.warningText,\n \"--mantine-color-warning-filled\": charcoalDark.warningSolid,\n \"--mantine-color-warning-filled-hover\": charcoalDark.warningSolidHover,\n \"--mantine-color-info-light\": charcoalDark.infoBg,\n \"--mantine-color-info-light-color\": charcoalDark.infoText,\n \"--mantine-color-info-filled\": charcoalDark.primary,\n \"--mantine-color-info-filled-hover\": charcoalDark.primaryHover,\n \"--mantine-color-error-2\": error[2],\n \"--mantine-color-error-3\": error[3],\n \"--mantine-color-error-4\": error[4],\n \"--mantine-color-error-6\": error[6],\n \"--mantine-color-error-7\": error[7],\n \"--mantine-color-error-8\": error[8],\n \"--mantine-color-error-9\": error[9],\n \"--mantine-color-error-text\": error[2],\n \"--mantine-color-error-filled\": error[7],\n \"--mantine-color-error-filled-hover\": error[6],\n \"--mantine-color-error-light\": error[9],\n \"--mantine-color-error-light-hover\": error[8],\n \"--mantine-color-error-light-color\": error[2],\n \"--mantine-color-error-outline\": error[7],\n \"--mantine-color-error-outline-hover\": error[8],\n },\n});\n\n/**\n * Typed JS references to every --fairmint-* CSS custom property.\n * Use these in component code instead of raw \"var(--fairmint-...)\" strings so\n * that renaming a token requires one change here rather than hunting every file.\n *\n * Each value includes a CSS fallback derived from the light-mode token value so\n * that components degrade gracefully when cssVariablesResolver is not wired up\n * (e.g. bare MantineProvider in tests or custom setups). Dark-mode fidelity is\n * lost without the resolver, but nothing renders invisibly.\n */\nconst fairmintVar = (name: string, fallback: string) => `var(--fairmint-${name}, ${fallback})`;\n\nexport const fairmintVars = {\n /** Canvas background for the app shell. */\n colorBgCanvas: fairmintVar(\"color-bg-canvas\", \"#ffffff\"),\n /** Primary raised surface. */\n colorBgSurface: fairmintVar(\"color-bg-surface\", \"#ffffff\"),\n /** Secondary surface used for fields, rows, and subtle containers. */\n colorBgSurfaceSecondary: fairmintVar(\"color-bg-surface-secondary\", neutral[0]),\n /** Hover surface. */\n colorBgHover: fairmintVar(\"color-bg-hover\", neutral[0]),\n /** Selected surface. */\n colorBgSelected: fairmintVar(\"color-bg-selected\", indigo[0]),\n /** Subtle brand surface. */\n colorBgBrandSubtle: fairmintVar(\"color-bg-brand-subtle\", indigo[0]),\n /** Hovered subtle brand surface. */\n colorBgBrandSubtleHover: fairmintVar(\"color-bg-brand-subtle-hover\", indigo[1]),\n /** Disabled surface. */\n colorBgDisabled: fairmintVar(\"color-bg-disabled\", neutral[2]),\n /** Primary body/heading text — titles on tinted surfaces (Chip Banner). */\n colorTextPrimary: `var(--fairmint-color-text-primary, ${neutral[9]})`,\n /** Secondary / muted text — subtitles, supporting labels. Adapts to color scheme. */\n colorTextSecondary: `var(--fairmint-color-text-secondary, ${neutral[5]})`,\n /** Tertiary / faint text — timestamps, metadata. Adapts to color scheme. */\n colorTextTertiary: `var(--fairmint-color-text-tertiary, ${neutral[4]})`,\n /** Text on filled controls. */\n colorTextInverse: fairmintVar(\"color-text-inverse\", \"#ffffff\"),\n /** Disabled text. */\n colorTextDisabled: fairmintVar(\"color-text-disabled\", neutral[6]),\n /** Primary icon and stroke color. */\n colorIconPrimary: fairmintVar(\"color-icon-primary\", neutral[9]),\n /** Secondary icon and stroke color. */\n colorIconSecondary: fairmintVar(\"color-icon-secondary\", neutral[5]),\n /** Tertiary icon and stroke color. */\n colorIconTertiary: fairmintVar(\"color-icon-tertiary\", neutral[4]),\n /** Icon color on filled or dark surfaces. */\n colorIconInverse: fairmintVar(\"color-icon-inverse\", \"#ffffff\"),\n /** Disabled icon and stroke color. */\n colorIconDisabled: fairmintVar(\"color-icon-disabled\", neutral[6]),\n /** Default border. */\n colorBorderDefault: fairmintVar(\"color-border-default\", neutral[2]),\n /** Focus border/ring color. */\n colorBorderFocus: fairmintVar(\"color-border-focus\", indigo[5]),\n /** Disabled border. */\n colorBorderDisabled: fairmintVar(\"color-border-disabled\", neutral[3]),\n /** Brand action color. */\n colorBrandPrimary: fairmintVar(\"color-brand-primary\", indigo[6]),\n /** Hovered brand action color. */\n colorBrandPrimaryHover: fairmintVar(\"color-brand-primary-hover\", indigo[7]),\n /** Pressed brand action color. */\n colorBrandPrimaryActive: fairmintVar(\"color-brand-primary-active\", indigo[7]),\n /** Fairmint blue brand accent. */\n colorBrandBlue: fairmintVar(\"color-brand-blue\", fairmintBlue[5]),\n /** Fairmint purple brand accent. */\n colorBrandPurple: fairmintVar(\"color-brand-purple\", fairmintPurple[5]),\n /** Background tint for selected / active rows. Adapts to color scheme. */\n colorSurfaceSelected: `var(--fairmint-color-surface-selected, ${indigo[0]})`,\n /** Icon/text drawn on top of colorSurfaceSelected (e.g. a checkmark in a selected badge). Adapts to color scheme. */\n colorIconOnSurfaceSelected: `var(--fairmint-color-icon-on-surface-selected, ${indigo[6]})`,\n /** Semantic status roles. */\n colorSuccessBg: fairmintVar(\"color-success-bg\", success[0]),\n colorSuccessText: fairmintVar(\"color-success-text\", success[7]),\n colorSuccessBorder: fairmintVar(\"color-success-border\", success[2]),\n colorSuccessSolid: fairmintVar(\"color-success-solid\", success[7]),\n colorSuccessSolidHover: fairmintVar(\"color-success-solid-hover\", success[7]),\n colorWarningBg: fairmintVar(\"color-warning-bg\", warning[0]),\n colorWarningText: fairmintVar(\"color-warning-text\", warning[7]),\n colorWarningBorder: fairmintVar(\"color-warning-border\", warning[2]),\n colorWarningSolid: fairmintVar(\"color-warning-solid\", warning[7]),\n colorWarningSolidHover: fairmintVar(\"color-warning-solid-hover\", warning[7]),\n colorErrorBg: fairmintVar(\"color-error-bg\", error[0]),\n colorErrorBgSubtle: fairmintVar(\"color-error-bg-subtle\", error[1]),\n colorErrorText: fairmintVar(\"color-error-text\", error[7]),\n colorErrorBorder: fairmintVar(\"color-error-border\", error[2]),\n colorErrorSolid: fairmintVar(\"color-error-solid\", error[5]),\n colorErrorSolidHover: fairmintVar(\"color-error-solid-hover\", error[6]),\n colorErrorSolidMuted: fairmintVar(\"color-error-solid-muted\", error[4]),\n colorInfoBg: fairmintVar(\"color-info-bg\", info[0]),\n colorInfoText: fairmintVar(\"color-info-text\", info[7]),\n colorInfoBorder: fairmintVar(\"color-info-border\", info[2]),\n colorInfoSolid: fairmintVar(\"color-info-solid\", info[7]),\n colorInfoSolidHover: fairmintVar(\"color-info-solid-hover\", info[7]),\n /** Decorative watermark color. */\n colorWatermark: fairmintVar(\"color-watermark\", neutral[1]),\n /** Large decorative watermark on error/empty pages. Adapts to color scheme. */\n watermarkColor: fairmintVar(\"color-watermark\", neutral[1]),\n /** Heading font family (Plus Jakarta Sans). */\n fontHeadings: `var(--fairmint-font-headings, ${typography.headingFontFamily})`,\n /** Body font family (Inter). */\n fontBody: `var(--fairmint-font-body, ${typography.fontFamily})`,\n} as const;\n\n/**\n * Returns the MantineProvider props required to use @fairmint/ui components.\n * Use this when you need to instantiate MantineProvider directly (e.g. in\n * Storybook decorators or server-rendering setups) instead of FairmintProvider.\n *\n * @example\n * ```tsx\n * import { MantineProvider } from \"@mantine/core\";\n * import { createFairmintMantineProviderProps } from \"@fairmint/ui\";\n *\n * <MantineProvider {...createFairmintMantineProviderProps()}>\n * <App />\n * </MantineProvider>\n * ```\n */\nexport function createFairmintMantineProviderProps(\n colorScheme: \"light\" | \"dark\" | \"auto\" = \"light\",\n) {\n return {\n theme,\n cssVariablesResolver: fairmintCssVariables,\n defaultColorScheme: colorScheme,\n } as const;\n}\n\n/** Brand colors for gradients and custom styling. */\nexport const brandColors = {\n blue: \"#0A4EFB\",\n purple: \"#9E03FF\",\n indigo: \"#6366F1\",\n gradient: \"linear-gradient(90deg, #0A4EFB 0%, #9E03FF 100%)\",\n} as const;\n\nexport const commonColors = {\n black: \"#000000\",\n white: \"#ffffff\",\n} as const;\n\n/**\n * Card/row shadow used by WalletList and similar card surfaces.\n * Equivalent to neutralColors[900] at ~10% opacity (#111927 → #1119271A).\n */\nexport const shadowColor = {\n card: \"#1119271A\",\n} as const;\n\n/** Indigo scale for direct access outside Mantine's theme system. Keys are numeric literals. */\nexport const indigoColors = {\n 0: \"#EEF2FF\",\n 1: \"#E0E7FF\",\n 2: \"#C7D2FE\",\n 3: \"#A5B4FC\",\n 4: \"#818CF8\",\n 5: \"#6366F1\",\n 6: \"#4F46E5\",\n 7: \"#4338CA\",\n 8: \"#3730A3\",\n 9: \"#312E81\",\n} as const;\n\n/** Neutral scale for direct access outside Mantine's theme system. Keys are numeric literals. */\nexport const neutralColors = {\n 50: \"#F8F9FA\",\n 100: \"#F3F4F6\",\n 200: \"#E5E7EB\",\n 300: \"#D2D6DB\",\n 400: \"#9DA4AE\",\n 500: \"#6C737F\",\n 600: \"#4D5761\",\n 700: \"#2F3746\",\n 800: \"#1C2536\",\n 900: \"#111927\",\n} as const;\n\n/** Dark neutral ramp used by the semantic dark-mode CSS variables. */\nexport const darkNeutralColors = {\n 50: \"#F5F7FA\",\n 100: \"#E2E7ED\",\n 200: \"#B8C2D0\",\n 300: \"#8D99A8\",\n 400: \"#748093\",\n 500: \"#5C687A\",\n 600: \"#2F3746\",\n 700: \"#1F2A39\",\n 800: \"#1B2431\",\n 900: \"#0F141C\",\n} as const;\n\n/** Semantic colors for status-based styling. */\nexport const semanticColors = {\n success: \"#10B981\",\n warning: \"#F79009\",\n error: \"#F04438\",\n info: \"#06AED4\",\n} as const;\n\nexport type { AvatarPaletteColor, FairmintColor } from \"./colors\";\nexport { AVATAR_PALETTE, colors } from \"./colors\";\nexport type { FairmintFontSize } from \"./fontSizes\";\nexport { fontSizes } from \"./fontSizes\";\nexport { DEFAULT_FAIRMINT_LOGO_SRC } from \"./logo\";\nexport type { FairmintResponsiveTypography } from \"./responsiveTypography\";\nexport { responsiveTypography } from \"./responsiveTypography\";\nexport type { FairmintSpacing } from \"./spacing\";\nexport { spacing } from \"./spacing\";\nexport { overlayZIndexAboveLegacyShell } from \"./zIndex\";\n"],"names":[],"mappings":"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"}
|