@fairmint/ui 0.3.10 → 0.3.11

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.
Files changed (129) hide show
  1. package/dist/_virtual/index3.cjs +3 -5
  2. package/dist/_virtual/index3.cjs.map +1 -1
  3. package/dist/_virtual/index3.js +2 -5
  4. package/dist/_virtual/index3.js.map +1 -1
  5. package/dist/_virtual/index4.cjs +5 -3
  6. package/dist/_virtual/index4.cjs.map +1 -1
  7. package/dist/_virtual/index4.js +5 -2
  8. package/dist/_virtual/index4.js.map +1 -1
  9. package/dist/components/FairmintProvider/FairmintProvider.cjs +1 -1
  10. package/dist/components/FairmintProvider/FairmintProvider.cjs.map +1 -1
  11. package/dist/components/FairmintProvider/FairmintProvider.d.ts.map +1 -1
  12. package/dist/components/FairmintProvider/FairmintProvider.js +1 -1
  13. package/dist/components/FairmintProvider/FairmintProvider.js.map +1 -1
  14. package/dist/components/LoadingOverlay/LoadingOverlay.cjs +1 -1
  15. package/dist/components/LoadingOverlay/LoadingOverlay.cjs.map +1 -1
  16. package/dist/components/LoadingOverlay/LoadingOverlay.d.ts.map +1 -1
  17. package/dist/components/LoadingOverlay/LoadingOverlay.js +2 -2
  18. package/dist/components/LoadingOverlay/LoadingOverlay.js.map +1 -1
  19. package/dist/components/LoadingSpinner/LoadingSpinner.cjs +2 -2
  20. package/dist/components/LoadingSpinner/LoadingSpinner.cjs.map +1 -1
  21. package/dist/components/LoadingSpinner/LoadingSpinner.js +3 -3
  22. package/dist/components/LoadingSpinner/LoadingSpinner.js.map +1 -1
  23. package/dist/components/generic/Banner/Banner.cjs +46 -11
  24. package/dist/components/generic/Banner/Banner.cjs.map +1 -1
  25. package/dist/components/generic/Banner/Banner.d.ts.map +1 -1
  26. package/dist/components/generic/Banner/Banner.js +47 -12
  27. package/dist/components/generic/Banner/Banner.js.map +1 -1
  28. package/dist/components/generic/CompanyBanner/CompanyBanner.cjs +1 -1
  29. package/dist/components/generic/CompanyBanner/CompanyBanner.cjs.map +1 -1
  30. package/dist/components/generic/CompanyBanner/CompanyBanner.js +2 -2
  31. package/dist/components/generic/CompanyBanner/CompanyBanner.js.map +1 -1
  32. package/dist/components/generic/ConfidentialityBanner/ConfidentialityBanner.cjs +3 -3
  33. package/dist/components/generic/ConfidentialityBanner/ConfidentialityBanner.cjs.map +1 -1
  34. package/dist/components/generic/ConfidentialityBanner/ConfidentialityBanner.js +4 -4
  35. package/dist/components/generic/ConfidentialityBanner/ConfidentialityBanner.js.map +1 -1
  36. package/dist/components/generic/DataRow/DataRow.cjs +4 -5
  37. package/dist/components/generic/DataRow/DataRow.cjs.map +1 -1
  38. package/dist/components/generic/DataRow/DataRow.d.ts.map +1 -1
  39. package/dist/components/generic/DataRow/DataRow.js +5 -6
  40. package/dist/components/generic/DataRow/DataRow.js.map +1 -1
  41. package/dist/components/generic/DocumentRow/DocumentRow.cjs +97 -28
  42. package/dist/components/generic/DocumentRow/DocumentRow.cjs.map +1 -1
  43. package/dist/components/generic/DocumentRow/DocumentRow.d.ts.map +1 -1
  44. package/dist/components/generic/DocumentRow/DocumentRow.js +98 -29
  45. package/dist/components/generic/DocumentRow/DocumentRow.js.map +1 -1
  46. package/dist/components/generic/Eyebrow/Eyebrow.cjs +6 -1
  47. package/dist/components/generic/Eyebrow/Eyebrow.cjs.map +1 -1
  48. package/dist/components/generic/Eyebrow/Eyebrow.d.ts +2 -2
  49. package/dist/components/generic/Eyebrow/Eyebrow.d.ts.map +1 -1
  50. package/dist/components/generic/Eyebrow/Eyebrow.js +7 -2
  51. package/dist/components/generic/Eyebrow/Eyebrow.js.map +1 -1
  52. package/dist/components/generic/FileDropzone/FileDropzone.cjs +38 -20
  53. package/dist/components/generic/FileDropzone/FileDropzone.cjs.map +1 -1
  54. package/dist/components/generic/FileDropzone/FileDropzone.d.ts.map +1 -1
  55. package/dist/components/generic/FileDropzone/FileDropzone.js +39 -21
  56. package/dist/components/generic/FileDropzone/FileDropzone.js.map +1 -1
  57. package/dist/components/generic/PhotoCropModal/PhotoCropModal.cjs +1 -1
  58. package/dist/components/generic/PhotoCropModal/PhotoCropModal.cjs.map +1 -1
  59. package/dist/components/generic/PhotoCropModal/PhotoCropModal.js +2 -2
  60. package/dist/components/generic/PhotoCropModal/PhotoCropModal.js.map +1 -1
  61. package/dist/components/generic/ProcessingState/ProcessingState.cjs +11 -2
  62. package/dist/components/generic/ProcessingState/ProcessingState.cjs.map +1 -1
  63. package/dist/components/generic/ProcessingState/ProcessingState.d.ts.map +1 -1
  64. package/dist/components/generic/ProcessingState/ProcessingState.js +12 -3
  65. package/dist/components/generic/ProcessingState/ProcessingState.js.map +1 -1
  66. package/dist/components/generic/RadioCard/RadioCard.cjs +7 -7
  67. package/dist/components/generic/RadioCard/RadioCard.cjs.map +1 -1
  68. package/dist/components/generic/RadioCard/RadioCard.js +8 -8
  69. package/dist/components/generic/RadioCard/RadioCard.js.map +1 -1
  70. package/dist/components/generic/StatCard/StatCard.cjs +27 -18
  71. package/dist/components/generic/StatCard/StatCard.cjs.map +1 -1
  72. package/dist/components/generic/StatCard/StatCard.d.ts.map +1 -1
  73. package/dist/components/generic/StatCard/StatCard.js +27 -18
  74. package/dist/components/generic/StatCard/StatCard.js.map +1 -1
  75. package/dist/components/generic/StepCard/StepCard.cjs +2 -2
  76. package/dist/components/generic/StepCard/StepCard.cjs.map +1 -1
  77. package/dist/components/generic/StepCard/StepCard.d.ts.map +1 -1
  78. package/dist/components/generic/StepCard/StepCard.js +3 -3
  79. package/dist/components/generic/StepCard/StepCard.js.map +1 -1
  80. package/dist/components/layout/SideNav/SideNav.cjs +2 -2
  81. package/dist/components/layout/SideNav/SideNav.cjs.map +1 -1
  82. package/dist/components/layout/SideNav/SideNav.js +3 -3
  83. package/dist/components/layout/SideNav/SideNav.js.map +1 -1
  84. package/dist/components/primitives/Badge/Badge.cjs +11 -3
  85. package/dist/components/primitives/Badge/Badge.cjs.map +1 -1
  86. package/dist/components/primitives/Badge/Badge.d.ts.map +1 -1
  87. package/dist/components/primitives/Badge/Badge.js +12 -4
  88. package/dist/components/primitives/Badge/Badge.js.map +1 -1
  89. package/dist/components/primitives/muiCompat.cjs +41 -44
  90. package/dist/components/primitives/muiCompat.cjs.map +1 -1
  91. package/dist/components/primitives/muiCompat.d.ts +21 -21
  92. package/dist/components/primitives/muiCompat.d.ts.map +1 -1
  93. package/dist/components/primitives/muiCompat.js +42 -45
  94. package/dist/components/primitives/muiCompat.js.map +1 -1
  95. package/dist/components/primitives/sx.cjs +21 -25
  96. package/dist/components/primitives/sx.cjs.map +1 -1
  97. package/dist/components/primitives/sx.d.ts.map +1 -1
  98. package/dist/components/primitives/sx.js +22 -26
  99. package/dist/components/primitives/sx.js.map +1 -1
  100. package/dist/components/specific/DocumentRow/DocumentRow.cjs +14 -1
  101. package/dist/components/specific/DocumentRow/DocumentRow.cjs.map +1 -1
  102. package/dist/components/specific/DocumentRow/DocumentRow.d.ts.map +1 -1
  103. package/dist/components/specific/DocumentRow/DocumentRow.js +14 -1
  104. package/dist/components/specific/DocumentRow/DocumentRow.js.map +1 -1
  105. package/dist/components/specific/InvestorProfileCard/InvestorProfileCard.cjs +2 -2
  106. package/dist/components/specific/InvestorProfileCard/InvestorProfileCard.cjs.map +1 -1
  107. package/dist/components/specific/InvestorProfileCard/InvestorProfileCard.js +3 -3
  108. package/dist/components/specific/InvestorProfileCard/InvestorProfileCard.js.map +1 -1
  109. package/dist/fairmint-ui.cjs +1 -0
  110. package/dist/fairmint-ui.cjs.map +1 -1
  111. package/dist/fairmint-ui.js +2 -1
  112. package/dist/index.d.ts +1 -1
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/mui-icons.cjs +7 -7
  115. package/dist/mui-icons.cjs.map +1 -1
  116. package/dist/mui-icons.js +8 -8
  117. package/dist/mui-icons.js.map +1 -1
  118. package/dist/node_modules/@mantine/form/esm/hooks/use-form-status/use-form-status.cjs +1 -1
  119. package/dist/node_modules/@mantine/form/esm/hooks/use-form-status/use-form-status.js +1 -1
  120. package/dist/node_modules/prop-types/index.cjs +1 -1
  121. package/dist/node_modules/prop-types/index.js +1 -1
  122. package/dist/styles.css +35 -0
  123. package/dist/theme/index.cjs +329 -28
  124. package/dist/theme/index.cjs.map +1 -1
  125. package/dist/theme/index.d.ts +85 -17
  126. package/dist/theme/index.d.ts.map +1 -1
  127. package/dist/theme/index.js +329 -28
  128. package/dist/theme/index.js.map +1 -1
  129. package/package.json +1 -1
@@ -20,7 +20,7 @@ const indigo = [
20
20
  "#4F46E5",
21
21
  "#4338CA",
22
22
  "#3730A3",
23
- "#312E81"
23
+ "#253974"
24
24
  ];
25
25
  const neutral = [
26
26
  "#F8F9FA",
@@ -34,6 +34,49 @@ const neutral = [
34
34
  "#1C2536",
35
35
  "#111927"
36
36
  ];
37
+ const darkNeutral = [
38
+ "#FFFFFF",
39
+ "#E7E9F0",
40
+ "#B8C2D0",
41
+ "#9DA4AE",
42
+ "#8F99AB",
43
+ "#6C737F",
44
+ "#2F3746",
45
+ "#1B1D21",
46
+ "#17191D",
47
+ "#111214"
48
+ ];
49
+ const charcoalDark = {
50
+ canvas: "#111214",
51
+ surface: "#17191D",
52
+ chrome: "#1B1D21",
53
+ control: "#202329",
54
+ selected: "#2F3746",
55
+ brandSubtle: "#111927",
56
+ textPrimary: "#FFFFFF",
57
+ textSecondary: "#9DA4AE",
58
+ textTertiary: "#8F99AB",
59
+ textDisabled: "#6C737F",
60
+ iconSecondary: "#B8C2D0",
61
+ border: "#2F3746",
62
+ focus: "#A5B4FC",
63
+ primary: "#6366F1",
64
+ primaryHover: "#818CF8",
65
+ primaryActive: "#A5B4FC",
66
+ successBg: "#163E38",
67
+ successText: "#6FE3BE",
68
+ successBorder: "#2F3746",
69
+ successSolid: "#34D399",
70
+ successSolidHover: "#6FE3BE",
71
+ warningBg: "#402A12",
72
+ warningText: "#FDB022",
73
+ warningBorder: "#6E4515",
74
+ warningSolid: "#DC6803",
75
+ warningSolidHover: "#E5A34A",
76
+ infoBg: "#172B45",
77
+ infoText: "#22CCEE",
78
+ infoBorder: "#23476B"
79
+ };
37
80
  const fairmintBlue = [
38
81
  "#e6f0ff",
39
82
  "#cce0ff",
@@ -112,7 +155,23 @@ const typography = {
112
155
  };
113
156
  const theme = createTheme.createTheme({
114
157
  primaryColor: "indigo",
115
- colors: { indigo, gray: neutral, fairmintBlue, fairmintPurple, success, warning, error, info },
158
+ // Mantine defaults to a darker shade for dark-mode filled/light variants
159
+ // (primaryShade: { light: 6, dark: 8 }), but our brand indigo (index 5,
160
+ // #6366F1) is the same accent in both color schemes — pin a single shade
161
+ // so unwrapped Mantine components (color="indigo") don't drift into a
162
+ // different, more saturated purple in dark mode.
163
+ primaryShade: 5,
164
+ colors: {
165
+ indigo,
166
+ gray: neutral,
167
+ darkGray: darkNeutral,
168
+ fairmintBlue,
169
+ fairmintPurple,
170
+ success,
171
+ warning,
172
+ error,
173
+ info
174
+ },
116
175
  fontFamily: typography.fontFamily,
117
176
  headings: {
118
177
  fontFamily: typography.headingFontFamily,
@@ -146,6 +205,9 @@ const theme = createTheme.createTheme({
146
205
  }
147
206
  }
148
207
  },
208
+ Input: {
209
+ classNames: { input: "fairmint-input" }
210
+ },
149
211
  TextInput: {
150
212
  defaultProps: { size: "md" }
151
213
  },
@@ -189,58 +251,284 @@ const fairmintCssVariables = () => ({
189
251
  "--fairmint-interactive-focus-ring": indigo[5]
190
252
  },
191
253
  light: {
254
+ "--fairmint-interactive-focus-ring": indigo[5],
255
+ "--fairmint-color-bg-canvas": commonColors.white,
256
+ "--fairmint-color-bg-surface": commonColors.white,
257
+ "--fairmint-color-bg-surface-secondary": neutral[0],
258
+ "--fairmint-color-bg-hover": neutral[0],
259
+ "--fairmint-color-bg-selected": indigo[0],
260
+ "--fairmint-color-bg-brand-subtle": indigo[0],
261
+ "--fairmint-color-bg-brand-subtle-hover": indigo[1],
262
+ "--fairmint-color-bg-disabled": neutral[2],
192
263
  "--fairmint-watermark-color": neutral[1],
193
264
  "--fairmint-color-text-primary": neutral[9],
194
265
  "--fairmint-color-text-secondary": neutral[5],
195
266
  "--fairmint-color-text-tertiary": neutral[4],
267
+ "--fairmint-color-text-inverse": commonColors.white,
268
+ "--fairmint-color-text-disabled": neutral[6],
269
+ "--fairmint-color-icon-primary": neutral[9],
270
+ "--fairmint-color-icon-secondary": neutral[5],
271
+ "--fairmint-color-icon-tertiary": neutral[4],
272
+ "--fairmint-color-icon-inverse": commonColors.white,
273
+ "--fairmint-color-icon-disabled": neutral[6],
274
+ "--fairmint-color-border-default": neutral[2],
275
+ "--fairmint-color-border-focus": indigo[5],
276
+ "--fairmint-color-border-disabled": neutral[3],
277
+ "--fairmint-color-brand-primary": indigo[6],
278
+ "--fairmint-color-brand-primary-hover": indigo[7],
279
+ "--fairmint-color-brand-primary-active": indigo[7],
280
+ "--fairmint-color-brand-blue": fairmintBlue[5],
281
+ "--fairmint-color-brand-purple": fairmintPurple[5],
282
+ "--fairmint-color-watermark": neutral[1],
196
283
  "--fairmint-color-surface-selected": indigo[0],
197
284
  "--fairmint-color-icon-on-surface-selected": indigo[6],
198
- "--fairmint-color-bg-surface": "#ffffff",
199
- "--fairmint-color-bg-surface-secondary": neutral[0],
200
- "--fairmint-color-border-default": neutral[2],
201
285
  "--fairmint-interactive-hover-shadow": `0 2px 6px ${neutral[9]}0F`,
202
- "--fairmint-interactive-hover-bg": neutral[0]
286
+ "--fairmint-interactive-hover-bg": neutral[0],
287
+ "--fairmint-color-success-bg": success[0],
288
+ "--fairmint-color-success-text": success[7],
289
+ "--fairmint-color-success-border": success[2],
290
+ "--fairmint-color-success-solid": success[7],
291
+ "--fairmint-color-success-solid-hover": success[7],
292
+ "--fairmint-color-warning-bg": warning[0],
293
+ "--fairmint-color-warning-text": warning[7],
294
+ "--fairmint-color-warning-border": warning[2],
295
+ "--fairmint-color-warning-solid": warning[7],
296
+ "--fairmint-color-warning-solid-hover": warning[7],
297
+ "--fairmint-color-error-bg": error[0],
298
+ "--fairmint-color-error-bg-subtle": error[1],
299
+ "--fairmint-color-error-text": error[7],
300
+ "--fairmint-color-error-border": error[2],
301
+ "--fairmint-color-error-solid": error[7],
302
+ "--fairmint-color-error-solid-hover": error[8],
303
+ "--fairmint-color-error-solid-muted": error[4],
304
+ "--fairmint-color-info-bg": info[0],
305
+ "--fairmint-color-info-text": info[7],
306
+ "--fairmint-color-info-border": info[2],
307
+ "--fairmint-color-info-solid": info[7],
308
+ "--fairmint-color-info-solid-hover": info[7]
203
309
  },
204
310
  dark: {
205
- "--fairmint-watermark-color": neutral[7],
206
- "--fairmint-color-text-primary": neutral[0],
207
- "--fairmint-color-text-secondary": neutral[4],
208
- "--fairmint-color-text-tertiary": neutral[5],
209
- // Approved charcoal dark-mode values from PR #88 (agent/fairmint-ui-dark-mode-storybook),
210
- // copied ahead of that merge so token names/values match and don't drift or conflict.
211
- // "selected" reuses the same muted slate as "border" in #88's palette — a
212
- // saturated indigo[9] fill here reads as too bold/inconsistent with the
213
- // rest of the muted charcoal scale.
214
- "--fairmint-color-surface-selected": "#2F3746",
311
+ "--fairmint-interactive-focus-ring": charcoalDark.focus,
312
+ "--fairmint-color-bg-canvas": charcoalDark.canvas,
313
+ "--fairmint-color-bg-surface": charcoalDark.surface,
314
+ "--fairmint-color-bg-surface-secondary": charcoalDark.chrome,
315
+ "--fairmint-color-bg-hover": charcoalDark.control,
316
+ "--fairmint-color-bg-selected": charcoalDark.selected,
317
+ "--fairmint-color-bg-brand-subtle": charcoalDark.brandSubtle,
318
+ "--fairmint-color-bg-brand-subtle-hover": charcoalDark.control,
319
+ "--fairmint-color-bg-disabled": charcoalDark.control,
320
+ "--fairmint-watermark-color": charcoalDark.control,
321
+ "--fairmint-color-text-primary": charcoalDark.textPrimary,
322
+ "--fairmint-color-text-secondary": charcoalDark.textSecondary,
323
+ "--fairmint-color-text-tertiary": charcoalDark.textTertiary,
324
+ "--fairmint-color-text-inverse": neutral[9],
325
+ "--fairmint-color-text-disabled": charcoalDark.textDisabled,
326
+ "--fairmint-color-icon-primary": charcoalDark.textPrimary,
327
+ "--fairmint-color-icon-secondary": charcoalDark.iconSecondary,
328
+ "--fairmint-color-icon-tertiary": charcoalDark.textTertiary,
329
+ "--fairmint-color-icon-inverse": charcoalDark.textPrimary,
330
+ "--fairmint-color-icon-disabled": charcoalDark.textDisabled,
331
+ "--fairmint-color-border-default": charcoalDark.border,
332
+ "--fairmint-color-border-focus": charcoalDark.focus,
333
+ "--fairmint-color-border-disabled": charcoalDark.border,
334
+ "--fairmint-color-brand-primary": charcoalDark.primary,
335
+ "--fairmint-color-brand-primary-hover": charcoalDark.primaryHover,
336
+ "--fairmint-color-brand-primary-active": charcoalDark.primaryActive,
337
+ "--fairmint-color-brand-blue": fairmintBlue[5],
338
+ "--fairmint-color-brand-purple": fairmintPurple[5],
339
+ "--fairmint-color-watermark": charcoalDark.control,
340
+ "--fairmint-color-surface-selected": charcoalDark.selected,
215
341
  // indigo[6] (the light-mode value) is too dark to read against the
216
342
  // dark selected surface — use a light indigo instead.
217
343
  "--fairmint-color-icon-on-surface-selected": indigo[2],
218
- "--fairmint-color-bg-surface": "#17191D",
219
- "--fairmint-color-bg-surface-secondary": "#1B1D21",
220
- "--fairmint-color-border-default": "#2F3746",
221
- "--fairmint-interactive-hover-shadow": `0 2px 6px ${neutral[0]}1A`,
222
- "--fairmint-interactive-hover-bg": neutral[8]
344
+ "--fairmint-interactive-hover-shadow": "0 2px 6px #00000066",
345
+ "--fairmint-interactive-hover-bg": charcoalDark.surface,
346
+ "--fairmint-color-success-bg": charcoalDark.successBg,
347
+ "--fairmint-color-success-text": charcoalDark.successText,
348
+ "--fairmint-color-success-border": charcoalDark.successBorder,
349
+ "--fairmint-color-success-solid": charcoalDark.successSolid,
350
+ "--fairmint-color-success-solid-hover": charcoalDark.successSolidHover,
351
+ "--fairmint-color-warning-bg": charcoalDark.warningBg,
352
+ "--fairmint-color-warning-text": charcoalDark.warningText,
353
+ "--fairmint-color-warning-border": charcoalDark.warningBorder,
354
+ "--fairmint-color-warning-solid": charcoalDark.warningSolid,
355
+ "--fairmint-color-warning-solid-hover": charcoalDark.warningSolidHover,
356
+ "--fairmint-color-error-bg": error[9],
357
+ "--fairmint-color-error-bg-subtle": error[8],
358
+ "--fairmint-color-error-text": error[2],
359
+ "--fairmint-color-error-border": error[7],
360
+ "--fairmint-color-error-solid": error[7],
361
+ "--fairmint-color-error-solid-hover": error[8],
362
+ "--fairmint-color-error-solid-muted": error[5],
363
+ "--fairmint-color-info-bg": charcoalDark.infoBg,
364
+ "--fairmint-color-info-text": charcoalDark.infoText,
365
+ "--fairmint-color-info-border": charcoalDark.infoBorder,
366
+ "--fairmint-color-info-solid": charcoalDark.primary,
367
+ "--fairmint-color-info-solid-hover": charcoalDark.primaryHover,
368
+ // Mantine primitives used by the shared component wrappers. These keep
369
+ // Button, Badge, Alert, Loader, and form controls on the same semantic
370
+ // roles instead of falling back to Mantine's default dark palette.
371
+ "--mantine-color-body": charcoalDark.canvas,
372
+ "--mantine-color-text": charcoalDark.textPrimary,
373
+ "--mantine-color-bright": charcoalDark.textPrimary,
374
+ "--mantine-color-dimmed": charcoalDark.textSecondary,
375
+ "--mantine-color-placeholder": "#969BA5",
376
+ "--mantine-color-default": charcoalDark.surface,
377
+ "--mantine-color-default-hover": charcoalDark.control,
378
+ "--mantine-color-default-color": charcoalDark.textPrimary,
379
+ "--mantine-color-default-border": charcoalDark.border,
380
+ "--mantine-color-disabled": charcoalDark.control,
381
+ "--mantine-color-disabled-color": charcoalDark.textDisabled,
382
+ "--mantine-color-disabled-border": charcoalDark.border,
383
+ "--mantine-primary-color-filled": charcoalDark.primary,
384
+ "--mantine-primary-color-filled-hover": charcoalDark.primaryHover,
385
+ "--mantine-primary-color-light": charcoalDark.brandSubtle,
386
+ "--mantine-primary-color-light-hover": charcoalDark.control,
387
+ "--mantine-primary-color-light-color": charcoalDark.primaryActive,
388
+ "--mantine-primary-color-3": charcoalDark.primaryActive,
389
+ "--mantine-primary-color-4": charcoalDark.primaryActive,
390
+ "--mantine-primary-color-6": charcoalDark.primary,
391
+ "--mantine-primary-color-7": charcoalDark.primaryHover,
392
+ "--mantine-primary-color-8": charcoalDark.primaryHover,
393
+ "--mantine-primary-color-9": charcoalDark.brandSubtle,
394
+ "--mantine-color-indigo-3": charcoalDark.primaryActive,
395
+ "--mantine-color-indigo-4": charcoalDark.primaryActive,
396
+ "--mantine-color-indigo-6": charcoalDark.primary,
397
+ "--mantine-color-indigo-7": charcoalDark.primaryHover,
398
+ "--mantine-color-indigo-8": charcoalDark.primaryHover,
399
+ "--mantine-color-indigo-9": charcoalDark.brandSubtle,
400
+ "--mantine-color-indigo-text": charcoalDark.primaryActive,
401
+ "--mantine-color-indigo-filled": charcoalDark.primary,
402
+ "--mantine-color-indigo-filled-hover": charcoalDark.primaryHover,
403
+ "--mantine-color-indigo-light": charcoalDark.brandSubtle,
404
+ "--mantine-color-indigo-light-hover": charcoalDark.control,
405
+ "--mantine-color-indigo-light-color": charcoalDark.primaryActive,
406
+ "--mantine-color-indigo-outline": charcoalDark.focus,
407
+ "--mantine-color-indigo-outline-hover": charcoalDark.control,
408
+ "--mantine-color-gray-light": charcoalDark.control,
409
+ "--mantine-color-gray-light-color": charcoalDark.textSecondary,
410
+ "--mantine-color-gray-filled": charcoalDark.border,
411
+ "--mantine-color-gray-filled-hover": charcoalDark.iconSecondary,
412
+ "--mantine-color-gray-4": charcoalDark.iconSecondary,
413
+ "--mantine-color-gray-5": charcoalDark.textTertiary,
414
+ "--mantine-color-gray-6": charcoalDark.textSecondary,
415
+ "--mantine-color-gray-7": charcoalDark.border,
416
+ "--mantine-color-gray-8": charcoalDark.chrome,
417
+ "--mantine-color-gray-9": charcoalDark.canvas,
418
+ "--mantine-color-success-light": charcoalDark.successBg,
419
+ "--mantine-color-success-light-color": charcoalDark.successText,
420
+ "--mantine-color-success-filled": charcoalDark.successSolid,
421
+ "--mantine-color-success-filled-hover": charcoalDark.successSolidHover,
422
+ "--mantine-color-warning-light": charcoalDark.warningBg,
423
+ "--mantine-color-warning-light-color": charcoalDark.warningText,
424
+ "--mantine-color-warning-filled": charcoalDark.warningSolid,
425
+ "--mantine-color-warning-filled-hover": charcoalDark.warningSolidHover,
426
+ "--mantine-color-info-light": charcoalDark.infoBg,
427
+ "--mantine-color-info-light-color": charcoalDark.infoText,
428
+ "--mantine-color-info-filled": charcoalDark.primary,
429
+ "--mantine-color-info-filled-hover": charcoalDark.primaryHover,
430
+ "--mantine-color-error-2": error[2],
431
+ "--mantine-color-error-3": error[3],
432
+ "--mantine-color-error-4": error[4],
433
+ "--mantine-color-error-6": error[6],
434
+ "--mantine-color-error-7": error[7],
435
+ "--mantine-color-error-8": error[8],
436
+ "--mantine-color-error-9": error[9],
437
+ "--mantine-color-error-text": error[2],
438
+ "--mantine-color-error-filled": error[7],
439
+ "--mantine-color-error-filled-hover": error[6],
440
+ "--mantine-color-error-light": error[9],
441
+ "--mantine-color-error-light-hover": error[8],
442
+ "--mantine-color-error-light-color": error[2],
443
+ "--mantine-color-error-outline": error[7],
444
+ "--mantine-color-error-outline-hover": error[8]
223
445
  }
224
446
  });
447
+ const fairmintVar = (name, fallback) => `var(--fairmint-${name}, ${fallback})`;
225
448
  const fairmintVars = {
449
+ /** Canvas background for the app shell. */
450
+ colorBgCanvas: fairmintVar("color-bg-canvas", "#ffffff"),
451
+ /** Primary raised surface. */
452
+ colorBgSurface: fairmintVar("color-bg-surface", "#ffffff"),
453
+ /** Secondary surface used for fields, rows, and subtle containers. */
454
+ colorBgSurfaceSecondary: fairmintVar("color-bg-surface-secondary", neutral[0]),
455
+ /** Hover surface. */
456
+ colorBgHover: fairmintVar("color-bg-hover", neutral[0]),
457
+ /** Selected surface. */
458
+ colorBgSelected: fairmintVar("color-bg-selected", indigo[0]),
459
+ /** Subtle brand surface. */
460
+ colorBgBrandSubtle: fairmintVar("color-bg-brand-subtle", indigo[0]),
461
+ /** Hovered subtle brand surface. */
462
+ colorBgBrandSubtleHover: fairmintVar("color-bg-brand-subtle-hover", indigo[1]),
463
+ /** Disabled surface. */
464
+ colorBgDisabled: fairmintVar("color-bg-disabled", neutral[2]),
226
465
  /** Primary body/heading text — titles on tinted surfaces (Chip Banner). */
227
466
  colorTextPrimary: `var(--fairmint-color-text-primary, ${neutral[9]})`,
228
467
  /** Secondary / muted text — subtitles, supporting labels. Adapts to color scheme. */
229
468
  colorTextSecondary: `var(--fairmint-color-text-secondary, ${neutral[5]})`,
230
469
  /** Tertiary / faint text — timestamps, metadata. Adapts to color scheme. */
231
470
  colorTextTertiary: `var(--fairmint-color-text-tertiary, ${neutral[4]})`,
471
+ /** Text on filled controls. */
472
+ colorTextInverse: fairmintVar("color-text-inverse", "#ffffff"),
473
+ /** Disabled text. */
474
+ colorTextDisabled: fairmintVar("color-text-disabled", neutral[6]),
475
+ /** Primary icon and stroke color. */
476
+ colorIconPrimary: fairmintVar("color-icon-primary", neutral[9]),
477
+ /** Secondary icon and stroke color. */
478
+ colorIconSecondary: fairmintVar("color-icon-secondary", neutral[5]),
479
+ /** Tertiary icon and stroke color. */
480
+ colorIconTertiary: fairmintVar("color-icon-tertiary", neutral[4]),
481
+ /** Icon color on filled or dark surfaces. */
482
+ colorIconInverse: fairmintVar("color-icon-inverse", "#ffffff"),
483
+ /** Disabled icon and stroke color. */
484
+ colorIconDisabled: fairmintVar("color-icon-disabled", neutral[6]),
485
+ /** Default border. */
486
+ colorBorderDefault: fairmintVar("color-border-default", neutral[2]),
487
+ /** Focus border/ring color. */
488
+ colorBorderFocus: fairmintVar("color-border-focus", indigo[5]),
489
+ /** Disabled border. */
490
+ colorBorderDisabled: fairmintVar("color-border-disabled", neutral[3]),
491
+ /** Brand action color. */
492
+ colorBrandPrimary: fairmintVar("color-brand-primary", indigo[6]),
493
+ /** Hovered brand action color. */
494
+ colorBrandPrimaryHover: fairmintVar("color-brand-primary-hover", indigo[7]),
495
+ /** Pressed brand action color. */
496
+ colorBrandPrimaryActive: fairmintVar("color-brand-primary-active", indigo[7]),
497
+ /** Fairmint blue brand accent. */
498
+ colorBrandBlue: fairmintVar("color-brand-blue", fairmintBlue[5]),
499
+ /** Fairmint purple brand accent. */
500
+ colorBrandPurple: fairmintVar("color-brand-purple", fairmintPurple[5]),
232
501
  /** Background tint for selected / active rows. Adapts to color scheme. */
233
502
  colorSurfaceSelected: `var(--fairmint-color-surface-selected, ${indigo[0]})`,
234
503
  /** Icon/text drawn on top of colorSurfaceSelected (e.g. a checkmark in a selected badge). Adapts to color scheme. */
235
504
  colorIconOnSurfaceSelected: `var(--fairmint-color-icon-on-surface-selected, ${indigo[6]})`,
236
- /** Primary raised surface (cards/panels). Adapts to color scheme. Matches PR #88's naming. */
237
- colorBgSurface: "var(--fairmint-color-bg-surface, #ffffff)",
238
- /** Secondary surface for fields/rows/badges on a card. Adapts to color scheme. Matches PR #88's naming. */
239
- colorBgSurfaceSecondary: `var(--fairmint-color-bg-surface-secondary, ${neutral[0]})`,
240
- /** Default hairline border for cards/panels. Adapts to color scheme. Matches PR #88's naming. */
241
- colorBorderDefault: `var(--fairmint-color-border-default, ${neutral[2]})`,
505
+ /** Semantic status roles. */
506
+ colorSuccessBg: fairmintVar("color-success-bg", success[0]),
507
+ colorSuccessText: fairmintVar("color-success-text", success[7]),
508
+ colorSuccessBorder: fairmintVar("color-success-border", success[2]),
509
+ colorSuccessSolid: fairmintVar("color-success-solid", success[7]),
510
+ colorSuccessSolidHover: fairmintVar("color-success-solid-hover", success[7]),
511
+ colorWarningBg: fairmintVar("color-warning-bg", warning[0]),
512
+ colorWarningText: fairmintVar("color-warning-text", warning[7]),
513
+ colorWarningBorder: fairmintVar("color-warning-border", warning[2]),
514
+ colorWarningSolid: fairmintVar("color-warning-solid", warning[7]),
515
+ colorWarningSolidHover: fairmintVar("color-warning-solid-hover", warning[7]),
516
+ colorErrorBg: fairmintVar("color-error-bg", error[0]),
517
+ colorErrorBgSubtle: fairmintVar("color-error-bg-subtle", error[1]),
518
+ colorErrorText: fairmintVar("color-error-text", error[7]),
519
+ colorErrorBorder: fairmintVar("color-error-border", error[2]),
520
+ colorErrorSolid: fairmintVar("color-error-solid", error[5]),
521
+ colorErrorSolidHover: fairmintVar("color-error-solid-hover", error[6]),
522
+ colorErrorSolidMuted: fairmintVar("color-error-solid-muted", error[4]),
523
+ colorInfoBg: fairmintVar("color-info-bg", info[0]),
524
+ colorInfoText: fairmintVar("color-info-text", info[7]),
525
+ colorInfoBorder: fairmintVar("color-info-border", info[2]),
526
+ colorInfoSolid: fairmintVar("color-info-solid", info[7]),
527
+ colorInfoSolidHover: fairmintVar("color-info-solid-hover", info[7]),
528
+ /** Decorative watermark color. */
529
+ colorWatermark: fairmintVar("color-watermark", neutral[1]),
242
530
  /** Large decorative watermark on error/empty pages. Adapts to color scheme. */
243
- watermarkColor: `var(--fairmint-watermark-color, ${neutral[1]})`,
531
+ watermarkColor: fairmintVar("color-watermark", neutral[1]),
244
532
  /** Heading font family (Plus Jakarta Sans). */
245
533
  fontHeadings: `var(--fairmint-font-headings, ${typography.headingFontFamily})`,
246
534
  /** Body font family (Inter). */
@@ -290,6 +578,18 @@ const neutralColors = {
290
578
  800: "#1C2536",
291
579
  900: "#111927"
292
580
  };
581
+ const darkNeutralColors = {
582
+ 50: "#F5F7FA",
583
+ 100: "#E2E7ED",
584
+ 200: "#B8C2D0",
585
+ 300: "#8D99A8",
586
+ 400: "#748093",
587
+ 500: "#5C687A",
588
+ 600: "#2F3746",
589
+ 700: "#1F2A39",
590
+ 800: "#1B2431",
591
+ 900: "#0F141C"
592
+ };
293
593
  const semanticColors = {
294
594
  success: "#10B981",
295
595
  warning: "#F79009",
@@ -301,6 +601,7 @@ exports.spacing = spacing.spacing;
301
601
  exports.brandColors = brandColors;
302
602
  exports.commonColors = commonColors;
303
603
  exports.createFairmintMantineProviderProps = createFairmintMantineProviderProps;
604
+ exports.darkNeutralColors = darkNeutralColors;
304
605
  exports.fairmintCssVariables = fairmintCssVariables;
305
606
  exports.fairmintVars = fairmintVars;
306
607
  exports.indigoColors = indigoColors;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","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 \"#312E81\",\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 * Fairmint brand blue — accent color for gradients and brand elements.\n * Shade [5] (#0A4EFB) is the primary brand blue.\n *\n * NOTE: design/README.md lists #2D00F7 as Fairmint Blue.\n * This library uses #0A4EFB (production value from investorv2).\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 * NOTE: design/README.md lists #6739FD as Fairmint Purple.\n * This library uses #9E03FF (production value from investorv2).\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 colors: { indigo, gray: neutral, fairmintBlue, fairmintPurple, success, warning, error, info },\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 TextInput: {\n defaultProps: { size: \"md\" },\n },\n Card: {\n defaultProps: {\n padding: \"lg\",\n radius: \"xl\",\n withBorder: true,\n },\n },\n Paper: {\n styles: {\n root: { backgroundImage: \"none\" },\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-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-surface-selected\": indigo[0],\n \"--fairmint-color-icon-on-surface-selected\": indigo[6],\n \"--fairmint-color-bg-surface\": \"#ffffff\",\n \"--fairmint-color-bg-surface-secondary\": neutral[0],\n \"--fairmint-color-border-default\": neutral[2],\n \"--fairmint-interactive-hover-shadow\": `0 2px 6px ${neutral[9]}0F`,\n \"--fairmint-interactive-hover-bg\": neutral[0],\n },\n dark: {\n \"--fairmint-watermark-color\": neutral[7],\n \"--fairmint-color-text-primary\": neutral[0],\n \"--fairmint-color-text-secondary\": neutral[4],\n \"--fairmint-color-text-tertiary\": neutral[5],\n // Approved charcoal dark-mode values from PR #88 (agent/fairmint-ui-dark-mode-storybook),\n // copied ahead of that merge so token names/values match and don't drift or conflict.\n // \"selected\" reuses the same muted slate as \"border\" in #88's palette — a\n // saturated indigo[9] fill here reads as too bold/inconsistent with the\n // rest of the muted charcoal scale.\n \"--fairmint-color-surface-selected\": \"#2F3746\",\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-color-bg-surface\": \"#17191D\",\n \"--fairmint-color-bg-surface-secondary\": \"#1B1D21\",\n \"--fairmint-color-border-default\": \"#2F3746\",\n \"--fairmint-interactive-hover-shadow\": `0 2px 6px ${neutral[0]}1A`,\n \"--fairmint-interactive-hover-bg\": neutral[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 */\nexport const fairmintVars = {\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 /** 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 /** Primary raised surface (cards/panels). Adapts to color scheme. Matches PR #88's naming. */\n colorBgSurface: \"var(--fairmint-color-bg-surface, #ffffff)\",\n /** Secondary surface for fields/rows/badges on a card. Adapts to color scheme. Matches PR #88's naming. */\n colorBgSurfaceSecondary: `var(--fairmint-color-bg-surface-secondary, ${neutral[0]})`,\n /** Default hairline border for cards/panels. Adapts to color scheme. Matches PR #88's naming. */\n colorBorderDefault: `var(--fairmint-color-border-default, ${neutral[2]})`,\n /** Large decorative watermark on error/empty pages. Adapts to color scheme. */\n watermarkColor: `var(--fairmint-watermark-color, ${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/** 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":["createTheme","spacing","fontSizes"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","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 * 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 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 },\n Paper: {\n styles: {\n root: { backgroundImage: \"none\" },\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":["createTheme","spacing","fontSizes"],"mappings":"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"}