@fairmint/ui 0.3.9 → 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 (136) 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/form/SignatureNameField/SignatureNameField.cjs +56 -0
  24. package/dist/components/form/SignatureNameField/SignatureNameField.cjs.map +1 -0
  25. package/dist/components/form/SignatureNameField/SignatureNameField.d.ts +18 -0
  26. package/dist/components/form/SignatureNameField/SignatureNameField.d.ts.map +1 -0
  27. package/dist/components/form/SignatureNameField/SignatureNameField.js +56 -0
  28. package/dist/components/form/SignatureNameField/SignatureNameField.js.map +1 -0
  29. package/dist/components/generic/Banner/Banner.cjs +46 -11
  30. package/dist/components/generic/Banner/Banner.cjs.map +1 -1
  31. package/dist/components/generic/Banner/Banner.d.ts.map +1 -1
  32. package/dist/components/generic/Banner/Banner.js +47 -12
  33. package/dist/components/generic/Banner/Banner.js.map +1 -1
  34. package/dist/components/generic/CompanyBanner/CompanyBanner.cjs +1 -1
  35. package/dist/components/generic/CompanyBanner/CompanyBanner.cjs.map +1 -1
  36. package/dist/components/generic/CompanyBanner/CompanyBanner.js +2 -2
  37. package/dist/components/generic/CompanyBanner/CompanyBanner.js.map +1 -1
  38. package/dist/components/generic/ConfidentialityBanner/ConfidentialityBanner.cjs +3 -3
  39. package/dist/components/generic/ConfidentialityBanner/ConfidentialityBanner.cjs.map +1 -1
  40. package/dist/components/generic/ConfidentialityBanner/ConfidentialityBanner.js +4 -4
  41. package/dist/components/generic/ConfidentialityBanner/ConfidentialityBanner.js.map +1 -1
  42. package/dist/components/generic/DataRow/DataRow.cjs +4 -5
  43. package/dist/components/generic/DataRow/DataRow.cjs.map +1 -1
  44. package/dist/components/generic/DataRow/DataRow.d.ts.map +1 -1
  45. package/dist/components/generic/DataRow/DataRow.js +5 -6
  46. package/dist/components/generic/DataRow/DataRow.js.map +1 -1
  47. package/dist/components/generic/DocumentRow/DocumentRow.cjs +97 -28
  48. package/dist/components/generic/DocumentRow/DocumentRow.cjs.map +1 -1
  49. package/dist/components/generic/DocumentRow/DocumentRow.d.ts.map +1 -1
  50. package/dist/components/generic/DocumentRow/DocumentRow.js +98 -29
  51. package/dist/components/generic/DocumentRow/DocumentRow.js.map +1 -1
  52. package/dist/components/generic/Eyebrow/Eyebrow.cjs +6 -1
  53. package/dist/components/generic/Eyebrow/Eyebrow.cjs.map +1 -1
  54. package/dist/components/generic/Eyebrow/Eyebrow.d.ts +2 -2
  55. package/dist/components/generic/Eyebrow/Eyebrow.d.ts.map +1 -1
  56. package/dist/components/generic/Eyebrow/Eyebrow.js +7 -2
  57. package/dist/components/generic/Eyebrow/Eyebrow.js.map +1 -1
  58. package/dist/components/generic/FileDropzone/FileDropzone.cjs +38 -20
  59. package/dist/components/generic/FileDropzone/FileDropzone.cjs.map +1 -1
  60. package/dist/components/generic/FileDropzone/FileDropzone.d.ts.map +1 -1
  61. package/dist/components/generic/FileDropzone/FileDropzone.js +39 -21
  62. package/dist/components/generic/FileDropzone/FileDropzone.js.map +1 -1
  63. package/dist/components/generic/PhotoCropModal/PhotoCropModal.cjs +1 -1
  64. package/dist/components/generic/PhotoCropModal/PhotoCropModal.cjs.map +1 -1
  65. package/dist/components/generic/PhotoCropModal/PhotoCropModal.js +2 -2
  66. package/dist/components/generic/PhotoCropModal/PhotoCropModal.js.map +1 -1
  67. package/dist/components/generic/ProcessingState/ProcessingState.cjs +11 -2
  68. package/dist/components/generic/ProcessingState/ProcessingState.cjs.map +1 -1
  69. package/dist/components/generic/ProcessingState/ProcessingState.d.ts.map +1 -1
  70. package/dist/components/generic/ProcessingState/ProcessingState.js +12 -3
  71. package/dist/components/generic/ProcessingState/ProcessingState.js.map +1 -1
  72. package/dist/components/generic/RadioCard/RadioCard.cjs +7 -7
  73. package/dist/components/generic/RadioCard/RadioCard.cjs.map +1 -1
  74. package/dist/components/generic/RadioCard/RadioCard.js +8 -8
  75. package/dist/components/generic/RadioCard/RadioCard.js.map +1 -1
  76. package/dist/components/generic/StatCard/StatCard.cjs +27 -18
  77. package/dist/components/generic/StatCard/StatCard.cjs.map +1 -1
  78. package/dist/components/generic/StatCard/StatCard.d.ts.map +1 -1
  79. package/dist/components/generic/StatCard/StatCard.js +27 -18
  80. package/dist/components/generic/StatCard/StatCard.js.map +1 -1
  81. package/dist/components/generic/StepCard/StepCard.cjs +2 -2
  82. package/dist/components/generic/StepCard/StepCard.cjs.map +1 -1
  83. package/dist/components/generic/StepCard/StepCard.d.ts.map +1 -1
  84. package/dist/components/generic/StepCard/StepCard.js +3 -3
  85. package/dist/components/generic/StepCard/StepCard.js.map +1 -1
  86. package/dist/components/layout/SideNav/SideNav.cjs +2 -2
  87. package/dist/components/layout/SideNav/SideNav.cjs.map +1 -1
  88. package/dist/components/layout/SideNav/SideNav.js +3 -3
  89. package/dist/components/layout/SideNav/SideNav.js.map +1 -1
  90. package/dist/components/primitives/Badge/Badge.cjs +11 -3
  91. package/dist/components/primitives/Badge/Badge.cjs.map +1 -1
  92. package/dist/components/primitives/Badge/Badge.d.ts.map +1 -1
  93. package/dist/components/primitives/Badge/Badge.js +12 -4
  94. package/dist/components/primitives/Badge/Badge.js.map +1 -1
  95. package/dist/components/primitives/muiCompat.cjs +41 -44
  96. package/dist/components/primitives/muiCompat.cjs.map +1 -1
  97. package/dist/components/primitives/muiCompat.d.ts +21 -21
  98. package/dist/components/primitives/muiCompat.d.ts.map +1 -1
  99. package/dist/components/primitives/muiCompat.js +42 -45
  100. package/dist/components/primitives/muiCompat.js.map +1 -1
  101. package/dist/components/primitives/sx.cjs +21 -25
  102. package/dist/components/primitives/sx.cjs.map +1 -1
  103. package/dist/components/primitives/sx.d.ts.map +1 -1
  104. package/dist/components/primitives/sx.js +22 -26
  105. package/dist/components/primitives/sx.js.map +1 -1
  106. package/dist/components/specific/DocumentRow/DocumentRow.cjs +14 -1
  107. package/dist/components/specific/DocumentRow/DocumentRow.cjs.map +1 -1
  108. package/dist/components/specific/DocumentRow/DocumentRow.d.ts.map +1 -1
  109. package/dist/components/specific/DocumentRow/DocumentRow.js +14 -1
  110. package/dist/components/specific/DocumentRow/DocumentRow.js.map +1 -1
  111. package/dist/components/specific/InvestorProfileCard/InvestorProfileCard.cjs +2 -2
  112. package/dist/components/specific/InvestorProfileCard/InvestorProfileCard.cjs.map +1 -1
  113. package/dist/components/specific/InvestorProfileCard/InvestorProfileCard.js +3 -3
  114. package/dist/components/specific/InvestorProfileCard/InvestorProfileCard.js.map +1 -1
  115. package/dist/fairmint-ui.cjs +3 -0
  116. package/dist/fairmint-ui.cjs.map +1 -1
  117. package/dist/fairmint-ui.js +4 -1
  118. package/dist/fairmint-ui.js.map +1 -1
  119. package/dist/index.d.ts +3 -1
  120. package/dist/index.d.ts.map +1 -1
  121. package/dist/mui-icons.cjs +7 -7
  122. package/dist/mui-icons.cjs.map +1 -1
  123. package/dist/mui-icons.js +8 -8
  124. package/dist/mui-icons.js.map +1 -1
  125. package/dist/node_modules/@mantine/form/esm/hooks/use-form-status/use-form-status.cjs +1 -1
  126. package/dist/node_modules/@mantine/form/esm/hooks/use-form-status/use-form-status.js +1 -1
  127. package/dist/node_modules/prop-types/index.cjs +1 -1
  128. package/dist/node_modules/prop-types/index.js +1 -1
  129. package/dist/styles.css +35 -0
  130. package/dist/theme/index.cjs +329 -28
  131. package/dist/theme/index.cjs.map +1 -1
  132. package/dist/theme/index.d.ts +85 -17
  133. package/dist/theme/index.d.ts.map +1 -1
  134. package/dist/theme/index.js +329 -28
  135. package/dist/theme/index.js.map +1 -1
  136. package/package.json +1 -1
@@ -166,35 +166,90 @@ export declare const theme: {
166
166
  * --mantine-* variables directly. All light/dark switching is centralised here.
167
167
  */
168
168
  export declare const fairmintCssVariables: CSSVariablesResolver;
169
- /**
170
- * Typed JS references to every --fairmint-* CSS custom property.
171
- * Use these in component code instead of raw "var(--fairmint-...)" strings so
172
- * that renaming a token requires one change here rather than hunting every file.
173
- *
174
- * Each value includes a CSS fallback derived from the light-mode token value so
175
- * that components degrade gracefully when cssVariablesResolver is not wired up
176
- * (e.g. bare MantineProvider in tests or custom setups). Dark-mode fidelity is
177
- * lost without the resolver, but nothing renders invisibly.
178
- */
179
169
  export declare const fairmintVars: {
170
+ /** Canvas background for the app shell. */
171
+ readonly colorBgCanvas: string;
172
+ /** Primary raised surface. */
173
+ readonly colorBgSurface: string;
174
+ /** Secondary surface used for fields, rows, and subtle containers. */
175
+ readonly colorBgSurfaceSecondary: string;
176
+ /** Hover surface. */
177
+ readonly colorBgHover: string;
178
+ /** Selected surface. */
179
+ readonly colorBgSelected: string;
180
+ /** Subtle brand surface. */
181
+ readonly colorBgBrandSubtle: string;
182
+ /** Hovered subtle brand surface. */
183
+ readonly colorBgBrandSubtleHover: string;
184
+ /** Disabled surface. */
185
+ readonly colorBgDisabled: string;
180
186
  /** Primary body/heading text — titles on tinted surfaces (Chip Banner). */
181
187
  readonly colorTextPrimary: `var(--fairmint-color-text-primary, ${string})`;
182
188
  /** Secondary / muted text — subtitles, supporting labels. Adapts to color scheme. */
183
189
  readonly colorTextSecondary: `var(--fairmint-color-text-secondary, ${string})`;
184
190
  /** Tertiary / faint text — timestamps, metadata. Adapts to color scheme. */
185
191
  readonly colorTextTertiary: `var(--fairmint-color-text-tertiary, ${string})`;
192
+ /** Text on filled controls. */
193
+ readonly colorTextInverse: string;
194
+ /** Disabled text. */
195
+ readonly colorTextDisabled: string;
196
+ /** Primary icon and stroke color. */
197
+ readonly colorIconPrimary: string;
198
+ /** Secondary icon and stroke color. */
199
+ readonly colorIconSecondary: string;
200
+ /** Tertiary icon and stroke color. */
201
+ readonly colorIconTertiary: string;
202
+ /** Icon color on filled or dark surfaces. */
203
+ readonly colorIconInverse: string;
204
+ /** Disabled icon and stroke color. */
205
+ readonly colorIconDisabled: string;
206
+ /** Default border. */
207
+ readonly colorBorderDefault: string;
208
+ /** Focus border/ring color. */
209
+ readonly colorBorderFocus: string;
210
+ /** Disabled border. */
211
+ readonly colorBorderDisabled: string;
212
+ /** Brand action color. */
213
+ readonly colorBrandPrimary: string;
214
+ /** Hovered brand action color. */
215
+ readonly colorBrandPrimaryHover: string;
216
+ /** Pressed brand action color. */
217
+ readonly colorBrandPrimaryActive: string;
218
+ /** Fairmint blue brand accent. */
219
+ readonly colorBrandBlue: string;
220
+ /** Fairmint purple brand accent. */
221
+ readonly colorBrandPurple: string;
186
222
  /** Background tint for selected / active rows. Adapts to color scheme. */
187
223
  readonly colorSurfaceSelected: `var(--fairmint-color-surface-selected, ${string})`;
188
224
  /** Icon/text drawn on top of colorSurfaceSelected (e.g. a checkmark in a selected badge). Adapts to color scheme. */
189
225
  readonly colorIconOnSurfaceSelected: `var(--fairmint-color-icon-on-surface-selected, ${string})`;
190
- /** Primary raised surface (cards/panels). Adapts to color scheme. Matches PR #88's naming. */
191
- readonly colorBgSurface: "var(--fairmint-color-bg-surface, #ffffff)";
192
- /** Secondary surface for fields/rows/badges on a card. Adapts to color scheme. Matches PR #88's naming. */
193
- readonly colorBgSurfaceSecondary: `var(--fairmint-color-bg-surface-secondary, ${string})`;
194
- /** Default hairline border for cards/panels. Adapts to color scheme. Matches PR #88's naming. */
195
- readonly colorBorderDefault: `var(--fairmint-color-border-default, ${string})`;
226
+ /** Semantic status roles. */
227
+ readonly colorSuccessBg: string;
228
+ readonly colorSuccessText: string;
229
+ readonly colorSuccessBorder: string;
230
+ readonly colorSuccessSolid: string;
231
+ readonly colorSuccessSolidHover: string;
232
+ readonly colorWarningBg: string;
233
+ readonly colorWarningText: string;
234
+ readonly colorWarningBorder: string;
235
+ readonly colorWarningSolid: string;
236
+ readonly colorWarningSolidHover: string;
237
+ readonly colorErrorBg: string;
238
+ readonly colorErrorBgSubtle: string;
239
+ readonly colorErrorText: string;
240
+ readonly colorErrorBorder: string;
241
+ readonly colorErrorSolid: string;
242
+ readonly colorErrorSolidHover: string;
243
+ readonly colorErrorSolidMuted: string;
244
+ readonly colorInfoBg: string;
245
+ readonly colorInfoText: string;
246
+ readonly colorInfoBorder: string;
247
+ readonly colorInfoSolid: string;
248
+ readonly colorInfoSolidHover: string;
249
+ /** Decorative watermark color. */
250
+ readonly colorWatermark: string;
196
251
  /** Large decorative watermark on error/empty pages. Adapts to color scheme. */
197
- readonly watermarkColor: `var(--fairmint-watermark-color, ${string})`;
252
+ readonly watermarkColor: string;
198
253
  /** Heading font family (Plus Jakarta Sans). */
199
254
  readonly fontHeadings: "var(--fairmint-font-headings, \"Plus Jakarta Sans\", sans-serif)";
200
255
  /** Body font family (Inter). */
@@ -404,6 +459,19 @@ export declare const neutralColors: {
404
459
  readonly 800: "#1C2536";
405
460
  readonly 900: "#111927";
406
461
  };
462
+ /** Dark neutral ramp used by the semantic dark-mode CSS variables. */
463
+ export declare const darkNeutralColors: {
464
+ readonly 50: "#F5F7FA";
465
+ readonly 100: "#E2E7ED";
466
+ readonly 200: "#B8C2D0";
467
+ readonly 300: "#8D99A8";
468
+ readonly 400: "#748093";
469
+ readonly 500: "#5C687A";
470
+ readonly 600: "#2F3746";
471
+ readonly 700: "#1F2A39";
472
+ readonly 800: "#1B2431";
473
+ readonly 900: "#0F141C";
474
+ };
407
475
  /** Semantic colors for status-based styling. */
408
476
  export declare const semanticColors: {
409
477
  readonly success: "#10B981";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,oBAAoB,EAAe,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIhG;;;GAGG;AACH,eAAO,MAAM,KAAK;;;;;;CAMR,CAAC;AAiIX;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;CAIb,CAAC;AAEX,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2EhB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,oBAuCjC,CAAC;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY;IACvB,2EAA2E;;IAE3E,qFAAqF;;IAErF,4EAA4E;;IAE5E,0EAA0E;;IAE1E,qHAAqH;;IAErH,8FAA8F;;IAE9F,2GAA2G;;IAE3G,iGAAiG;;IAEjG,+EAA+E;;IAE/E,+CAA+C;;IAE/C,gCAAgC;;CAExB,CAAC;AAEX;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kCAAkC,CAChD,WAAW,GAAE,OAAO,GAAG,MAAM,GAAG,MAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOjD;AAED,qDAAqD;AACrD,eAAO,MAAM,WAAW;;;;;CAKd,CAAC;AAEX,eAAO,MAAM,YAAY;;;CAGf,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,WAAW;;CAEd,CAAC;AAEX,gGAAgG;AAChG,eAAO,MAAM,YAAY;;;;;;;;;;;CAWf,CAAC;AAEX,iGAAiG;AACjG,eAAO,MAAM,aAAa;;;;;;;;;;;CAWhB,CAAC;AAEX,gDAAgD;AAChD,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC;AACnD,YAAY,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,oBAAoB,EAAe,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIhG;;;GAGG;AACH,eAAO,MAAM,KAAK;;;;;;CAMR,CAAC;AAqLX;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;CAIb,CAAC;AAEX,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8FhB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,oBAwMjC,CAAC;AAcH,eAAO,MAAM,YAAY;IACvB,2CAA2C;;IAE3C,8BAA8B;;IAE9B,sEAAsE;;IAEtE,qBAAqB;;IAErB,wBAAwB;;IAExB,4BAA4B;;IAE5B,oCAAoC;;IAEpC,wBAAwB;;IAExB,2EAA2E;;IAE3E,qFAAqF;;IAErF,4EAA4E;;IAE5E,+BAA+B;;IAE/B,qBAAqB;;IAErB,qCAAqC;;IAErC,uCAAuC;;IAEvC,sCAAsC;;IAEtC,6CAA6C;;IAE7C,sCAAsC;;IAEtC,sBAAsB;;IAEtB,+BAA+B;;IAE/B,uBAAuB;;IAEvB,0BAA0B;;IAE1B,kCAAkC;;IAElC,kCAAkC;;IAElC,kCAAkC;;IAElC,oCAAoC;;IAEpC,0EAA0E;;IAE1E,qHAAqH;;IAErH,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;IAuB7B,kCAAkC;;IAElC,+EAA+E;;IAE/E,+CAA+C;;IAE/C,gCAAgC;;CAExB,CAAC;AAEX;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kCAAkC,CAChD,WAAW,GAAE,OAAO,GAAG,MAAM,GAAG,MAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOjD;AAED,qDAAqD;AACrD,eAAO,MAAM,WAAW;;;;;CAKd,CAAC;AAEX,eAAO,MAAM,YAAY;;;CAGf,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,WAAW;;CAEd,CAAC;AAEX,gGAAgG;AAChG,eAAO,MAAM,YAAY;;;;;;;;;;;CAWf,CAAC;AAEX,iGAAiG;AACjG,eAAO,MAAM,aAAa;;;;;;;;;;;CAWhB,CAAC;AAEX,sEAAsE;AACtE,eAAO,MAAM,iBAAiB;;;;;;;;;;;CAWpB,CAAC;AAEX,gDAAgD;AAChD,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC;AACnD,YAAY,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC"}
@@ -18,7 +18,7 @@ const indigo = [
18
18
  "#4F46E5",
19
19
  "#4338CA",
20
20
  "#3730A3",
21
- "#312E81"
21
+ "#253974"
22
22
  ];
23
23
  const neutral = [
24
24
  "#F8F9FA",
@@ -32,6 +32,49 @@ const neutral = [
32
32
  "#1C2536",
33
33
  "#111927"
34
34
  ];
35
+ const darkNeutral = [
36
+ "#FFFFFF",
37
+ "#E7E9F0",
38
+ "#B8C2D0",
39
+ "#9DA4AE",
40
+ "#8F99AB",
41
+ "#6C737F",
42
+ "#2F3746",
43
+ "#1B1D21",
44
+ "#17191D",
45
+ "#111214"
46
+ ];
47
+ const charcoalDark = {
48
+ canvas: "#111214",
49
+ surface: "#17191D",
50
+ chrome: "#1B1D21",
51
+ control: "#202329",
52
+ selected: "#2F3746",
53
+ brandSubtle: "#111927",
54
+ textPrimary: "#FFFFFF",
55
+ textSecondary: "#9DA4AE",
56
+ textTertiary: "#8F99AB",
57
+ textDisabled: "#6C737F",
58
+ iconSecondary: "#B8C2D0",
59
+ border: "#2F3746",
60
+ focus: "#A5B4FC",
61
+ primary: "#6366F1",
62
+ primaryHover: "#818CF8",
63
+ primaryActive: "#A5B4FC",
64
+ successBg: "#163E38",
65
+ successText: "#6FE3BE",
66
+ successBorder: "#2F3746",
67
+ successSolid: "#34D399",
68
+ successSolidHover: "#6FE3BE",
69
+ warningBg: "#402A12",
70
+ warningText: "#FDB022",
71
+ warningBorder: "#6E4515",
72
+ warningSolid: "#DC6803",
73
+ warningSolidHover: "#E5A34A",
74
+ infoBg: "#172B45",
75
+ infoText: "#22CCEE",
76
+ infoBorder: "#23476B"
77
+ };
35
78
  const fairmintBlue = [
36
79
  "#e6f0ff",
37
80
  "#cce0ff",
@@ -110,7 +153,23 @@ const typography = {
110
153
  };
111
154
  const theme = createTheme({
112
155
  primaryColor: "indigo",
113
- colors: { indigo, gray: neutral, fairmintBlue, fairmintPurple, success, warning, error, info },
156
+ // Mantine defaults to a darker shade for dark-mode filled/light variants
157
+ // (primaryShade: { light: 6, dark: 8 }), but our brand indigo (index 5,
158
+ // #6366F1) is the same accent in both color schemes — pin a single shade
159
+ // so unwrapped Mantine components (color="indigo") don't drift into a
160
+ // different, more saturated purple in dark mode.
161
+ primaryShade: 5,
162
+ colors: {
163
+ indigo,
164
+ gray: neutral,
165
+ darkGray: darkNeutral,
166
+ fairmintBlue,
167
+ fairmintPurple,
168
+ success,
169
+ warning,
170
+ error,
171
+ info
172
+ },
114
173
  fontFamily: typography.fontFamily,
115
174
  headings: {
116
175
  fontFamily: typography.headingFontFamily,
@@ -144,6 +203,9 @@ const theme = createTheme({
144
203
  }
145
204
  }
146
205
  },
206
+ Input: {
207
+ classNames: { input: "fairmint-input" }
208
+ },
147
209
  TextInput: {
148
210
  defaultProps: { size: "md" }
149
211
  },
@@ -187,58 +249,284 @@ const fairmintCssVariables = () => ({
187
249
  "--fairmint-interactive-focus-ring": indigo[5]
188
250
  },
189
251
  light: {
252
+ "--fairmint-interactive-focus-ring": indigo[5],
253
+ "--fairmint-color-bg-canvas": commonColors.white,
254
+ "--fairmint-color-bg-surface": commonColors.white,
255
+ "--fairmint-color-bg-surface-secondary": neutral[0],
256
+ "--fairmint-color-bg-hover": neutral[0],
257
+ "--fairmint-color-bg-selected": indigo[0],
258
+ "--fairmint-color-bg-brand-subtle": indigo[0],
259
+ "--fairmint-color-bg-brand-subtle-hover": indigo[1],
260
+ "--fairmint-color-bg-disabled": neutral[2],
190
261
  "--fairmint-watermark-color": neutral[1],
191
262
  "--fairmint-color-text-primary": neutral[9],
192
263
  "--fairmint-color-text-secondary": neutral[5],
193
264
  "--fairmint-color-text-tertiary": neutral[4],
265
+ "--fairmint-color-text-inverse": commonColors.white,
266
+ "--fairmint-color-text-disabled": neutral[6],
267
+ "--fairmint-color-icon-primary": neutral[9],
268
+ "--fairmint-color-icon-secondary": neutral[5],
269
+ "--fairmint-color-icon-tertiary": neutral[4],
270
+ "--fairmint-color-icon-inverse": commonColors.white,
271
+ "--fairmint-color-icon-disabled": neutral[6],
272
+ "--fairmint-color-border-default": neutral[2],
273
+ "--fairmint-color-border-focus": indigo[5],
274
+ "--fairmint-color-border-disabled": neutral[3],
275
+ "--fairmint-color-brand-primary": indigo[6],
276
+ "--fairmint-color-brand-primary-hover": indigo[7],
277
+ "--fairmint-color-brand-primary-active": indigo[7],
278
+ "--fairmint-color-brand-blue": fairmintBlue[5],
279
+ "--fairmint-color-brand-purple": fairmintPurple[5],
280
+ "--fairmint-color-watermark": neutral[1],
194
281
  "--fairmint-color-surface-selected": indigo[0],
195
282
  "--fairmint-color-icon-on-surface-selected": indigo[6],
196
- "--fairmint-color-bg-surface": "#ffffff",
197
- "--fairmint-color-bg-surface-secondary": neutral[0],
198
- "--fairmint-color-border-default": neutral[2],
199
283
  "--fairmint-interactive-hover-shadow": `0 2px 6px ${neutral[9]}0F`,
200
- "--fairmint-interactive-hover-bg": neutral[0]
284
+ "--fairmint-interactive-hover-bg": neutral[0],
285
+ "--fairmint-color-success-bg": success[0],
286
+ "--fairmint-color-success-text": success[7],
287
+ "--fairmint-color-success-border": success[2],
288
+ "--fairmint-color-success-solid": success[7],
289
+ "--fairmint-color-success-solid-hover": success[7],
290
+ "--fairmint-color-warning-bg": warning[0],
291
+ "--fairmint-color-warning-text": warning[7],
292
+ "--fairmint-color-warning-border": warning[2],
293
+ "--fairmint-color-warning-solid": warning[7],
294
+ "--fairmint-color-warning-solid-hover": warning[7],
295
+ "--fairmint-color-error-bg": error[0],
296
+ "--fairmint-color-error-bg-subtle": error[1],
297
+ "--fairmint-color-error-text": error[7],
298
+ "--fairmint-color-error-border": error[2],
299
+ "--fairmint-color-error-solid": error[7],
300
+ "--fairmint-color-error-solid-hover": error[8],
301
+ "--fairmint-color-error-solid-muted": error[4],
302
+ "--fairmint-color-info-bg": info[0],
303
+ "--fairmint-color-info-text": info[7],
304
+ "--fairmint-color-info-border": info[2],
305
+ "--fairmint-color-info-solid": info[7],
306
+ "--fairmint-color-info-solid-hover": info[7]
201
307
  },
202
308
  dark: {
203
- "--fairmint-watermark-color": neutral[7],
204
- "--fairmint-color-text-primary": neutral[0],
205
- "--fairmint-color-text-secondary": neutral[4],
206
- "--fairmint-color-text-tertiary": neutral[5],
207
- // Approved charcoal dark-mode values from PR #88 (agent/fairmint-ui-dark-mode-storybook),
208
- // copied ahead of that merge so token names/values match and don't drift or conflict.
209
- // "selected" reuses the same muted slate as "border" in #88's palette — a
210
- // saturated indigo[9] fill here reads as too bold/inconsistent with the
211
- // rest of the muted charcoal scale.
212
- "--fairmint-color-surface-selected": "#2F3746",
309
+ "--fairmint-interactive-focus-ring": charcoalDark.focus,
310
+ "--fairmint-color-bg-canvas": charcoalDark.canvas,
311
+ "--fairmint-color-bg-surface": charcoalDark.surface,
312
+ "--fairmint-color-bg-surface-secondary": charcoalDark.chrome,
313
+ "--fairmint-color-bg-hover": charcoalDark.control,
314
+ "--fairmint-color-bg-selected": charcoalDark.selected,
315
+ "--fairmint-color-bg-brand-subtle": charcoalDark.brandSubtle,
316
+ "--fairmint-color-bg-brand-subtle-hover": charcoalDark.control,
317
+ "--fairmint-color-bg-disabled": charcoalDark.control,
318
+ "--fairmint-watermark-color": charcoalDark.control,
319
+ "--fairmint-color-text-primary": charcoalDark.textPrimary,
320
+ "--fairmint-color-text-secondary": charcoalDark.textSecondary,
321
+ "--fairmint-color-text-tertiary": charcoalDark.textTertiary,
322
+ "--fairmint-color-text-inverse": neutral[9],
323
+ "--fairmint-color-text-disabled": charcoalDark.textDisabled,
324
+ "--fairmint-color-icon-primary": charcoalDark.textPrimary,
325
+ "--fairmint-color-icon-secondary": charcoalDark.iconSecondary,
326
+ "--fairmint-color-icon-tertiary": charcoalDark.textTertiary,
327
+ "--fairmint-color-icon-inverse": charcoalDark.textPrimary,
328
+ "--fairmint-color-icon-disabled": charcoalDark.textDisabled,
329
+ "--fairmint-color-border-default": charcoalDark.border,
330
+ "--fairmint-color-border-focus": charcoalDark.focus,
331
+ "--fairmint-color-border-disabled": charcoalDark.border,
332
+ "--fairmint-color-brand-primary": charcoalDark.primary,
333
+ "--fairmint-color-brand-primary-hover": charcoalDark.primaryHover,
334
+ "--fairmint-color-brand-primary-active": charcoalDark.primaryActive,
335
+ "--fairmint-color-brand-blue": fairmintBlue[5],
336
+ "--fairmint-color-brand-purple": fairmintPurple[5],
337
+ "--fairmint-color-watermark": charcoalDark.control,
338
+ "--fairmint-color-surface-selected": charcoalDark.selected,
213
339
  // indigo[6] (the light-mode value) is too dark to read against the
214
340
  // dark selected surface — use a light indigo instead.
215
341
  "--fairmint-color-icon-on-surface-selected": indigo[2],
216
- "--fairmint-color-bg-surface": "#17191D",
217
- "--fairmint-color-bg-surface-secondary": "#1B1D21",
218
- "--fairmint-color-border-default": "#2F3746",
219
- "--fairmint-interactive-hover-shadow": `0 2px 6px ${neutral[0]}1A`,
220
- "--fairmint-interactive-hover-bg": neutral[8]
342
+ "--fairmint-interactive-hover-shadow": "0 2px 6px #00000066",
343
+ "--fairmint-interactive-hover-bg": charcoalDark.surface,
344
+ "--fairmint-color-success-bg": charcoalDark.successBg,
345
+ "--fairmint-color-success-text": charcoalDark.successText,
346
+ "--fairmint-color-success-border": charcoalDark.successBorder,
347
+ "--fairmint-color-success-solid": charcoalDark.successSolid,
348
+ "--fairmint-color-success-solid-hover": charcoalDark.successSolidHover,
349
+ "--fairmint-color-warning-bg": charcoalDark.warningBg,
350
+ "--fairmint-color-warning-text": charcoalDark.warningText,
351
+ "--fairmint-color-warning-border": charcoalDark.warningBorder,
352
+ "--fairmint-color-warning-solid": charcoalDark.warningSolid,
353
+ "--fairmint-color-warning-solid-hover": charcoalDark.warningSolidHover,
354
+ "--fairmint-color-error-bg": error[9],
355
+ "--fairmint-color-error-bg-subtle": error[8],
356
+ "--fairmint-color-error-text": error[2],
357
+ "--fairmint-color-error-border": error[7],
358
+ "--fairmint-color-error-solid": error[7],
359
+ "--fairmint-color-error-solid-hover": error[8],
360
+ "--fairmint-color-error-solid-muted": error[5],
361
+ "--fairmint-color-info-bg": charcoalDark.infoBg,
362
+ "--fairmint-color-info-text": charcoalDark.infoText,
363
+ "--fairmint-color-info-border": charcoalDark.infoBorder,
364
+ "--fairmint-color-info-solid": charcoalDark.primary,
365
+ "--fairmint-color-info-solid-hover": charcoalDark.primaryHover,
366
+ // Mantine primitives used by the shared component wrappers. These keep
367
+ // Button, Badge, Alert, Loader, and form controls on the same semantic
368
+ // roles instead of falling back to Mantine's default dark palette.
369
+ "--mantine-color-body": charcoalDark.canvas,
370
+ "--mantine-color-text": charcoalDark.textPrimary,
371
+ "--mantine-color-bright": charcoalDark.textPrimary,
372
+ "--mantine-color-dimmed": charcoalDark.textSecondary,
373
+ "--mantine-color-placeholder": "#969BA5",
374
+ "--mantine-color-default": charcoalDark.surface,
375
+ "--mantine-color-default-hover": charcoalDark.control,
376
+ "--mantine-color-default-color": charcoalDark.textPrimary,
377
+ "--mantine-color-default-border": charcoalDark.border,
378
+ "--mantine-color-disabled": charcoalDark.control,
379
+ "--mantine-color-disabled-color": charcoalDark.textDisabled,
380
+ "--mantine-color-disabled-border": charcoalDark.border,
381
+ "--mantine-primary-color-filled": charcoalDark.primary,
382
+ "--mantine-primary-color-filled-hover": charcoalDark.primaryHover,
383
+ "--mantine-primary-color-light": charcoalDark.brandSubtle,
384
+ "--mantine-primary-color-light-hover": charcoalDark.control,
385
+ "--mantine-primary-color-light-color": charcoalDark.primaryActive,
386
+ "--mantine-primary-color-3": charcoalDark.primaryActive,
387
+ "--mantine-primary-color-4": charcoalDark.primaryActive,
388
+ "--mantine-primary-color-6": charcoalDark.primary,
389
+ "--mantine-primary-color-7": charcoalDark.primaryHover,
390
+ "--mantine-primary-color-8": charcoalDark.primaryHover,
391
+ "--mantine-primary-color-9": charcoalDark.brandSubtle,
392
+ "--mantine-color-indigo-3": charcoalDark.primaryActive,
393
+ "--mantine-color-indigo-4": charcoalDark.primaryActive,
394
+ "--mantine-color-indigo-6": charcoalDark.primary,
395
+ "--mantine-color-indigo-7": charcoalDark.primaryHover,
396
+ "--mantine-color-indigo-8": charcoalDark.primaryHover,
397
+ "--mantine-color-indigo-9": charcoalDark.brandSubtle,
398
+ "--mantine-color-indigo-text": charcoalDark.primaryActive,
399
+ "--mantine-color-indigo-filled": charcoalDark.primary,
400
+ "--mantine-color-indigo-filled-hover": charcoalDark.primaryHover,
401
+ "--mantine-color-indigo-light": charcoalDark.brandSubtle,
402
+ "--mantine-color-indigo-light-hover": charcoalDark.control,
403
+ "--mantine-color-indigo-light-color": charcoalDark.primaryActive,
404
+ "--mantine-color-indigo-outline": charcoalDark.focus,
405
+ "--mantine-color-indigo-outline-hover": charcoalDark.control,
406
+ "--mantine-color-gray-light": charcoalDark.control,
407
+ "--mantine-color-gray-light-color": charcoalDark.textSecondary,
408
+ "--mantine-color-gray-filled": charcoalDark.border,
409
+ "--mantine-color-gray-filled-hover": charcoalDark.iconSecondary,
410
+ "--mantine-color-gray-4": charcoalDark.iconSecondary,
411
+ "--mantine-color-gray-5": charcoalDark.textTertiary,
412
+ "--mantine-color-gray-6": charcoalDark.textSecondary,
413
+ "--mantine-color-gray-7": charcoalDark.border,
414
+ "--mantine-color-gray-8": charcoalDark.chrome,
415
+ "--mantine-color-gray-9": charcoalDark.canvas,
416
+ "--mantine-color-success-light": charcoalDark.successBg,
417
+ "--mantine-color-success-light-color": charcoalDark.successText,
418
+ "--mantine-color-success-filled": charcoalDark.successSolid,
419
+ "--mantine-color-success-filled-hover": charcoalDark.successSolidHover,
420
+ "--mantine-color-warning-light": charcoalDark.warningBg,
421
+ "--mantine-color-warning-light-color": charcoalDark.warningText,
422
+ "--mantine-color-warning-filled": charcoalDark.warningSolid,
423
+ "--mantine-color-warning-filled-hover": charcoalDark.warningSolidHover,
424
+ "--mantine-color-info-light": charcoalDark.infoBg,
425
+ "--mantine-color-info-light-color": charcoalDark.infoText,
426
+ "--mantine-color-info-filled": charcoalDark.primary,
427
+ "--mantine-color-info-filled-hover": charcoalDark.primaryHover,
428
+ "--mantine-color-error-2": error[2],
429
+ "--mantine-color-error-3": error[3],
430
+ "--mantine-color-error-4": error[4],
431
+ "--mantine-color-error-6": error[6],
432
+ "--mantine-color-error-7": error[7],
433
+ "--mantine-color-error-8": error[8],
434
+ "--mantine-color-error-9": error[9],
435
+ "--mantine-color-error-text": error[2],
436
+ "--mantine-color-error-filled": error[7],
437
+ "--mantine-color-error-filled-hover": error[6],
438
+ "--mantine-color-error-light": error[9],
439
+ "--mantine-color-error-light-hover": error[8],
440
+ "--mantine-color-error-light-color": error[2],
441
+ "--mantine-color-error-outline": error[7],
442
+ "--mantine-color-error-outline-hover": error[8]
221
443
  }
222
444
  });
445
+ const fairmintVar = (name, fallback) => `var(--fairmint-${name}, ${fallback})`;
223
446
  const fairmintVars = {
447
+ /** Canvas background for the app shell. */
448
+ colorBgCanvas: fairmintVar("color-bg-canvas", "#ffffff"),
449
+ /** Primary raised surface. */
450
+ colorBgSurface: fairmintVar("color-bg-surface", "#ffffff"),
451
+ /** Secondary surface used for fields, rows, and subtle containers. */
452
+ colorBgSurfaceSecondary: fairmintVar("color-bg-surface-secondary", neutral[0]),
453
+ /** Hover surface. */
454
+ colorBgHover: fairmintVar("color-bg-hover", neutral[0]),
455
+ /** Selected surface. */
456
+ colorBgSelected: fairmintVar("color-bg-selected", indigo[0]),
457
+ /** Subtle brand surface. */
458
+ colorBgBrandSubtle: fairmintVar("color-bg-brand-subtle", indigo[0]),
459
+ /** Hovered subtle brand surface. */
460
+ colorBgBrandSubtleHover: fairmintVar("color-bg-brand-subtle-hover", indigo[1]),
461
+ /** Disabled surface. */
462
+ colorBgDisabled: fairmintVar("color-bg-disabled", neutral[2]),
224
463
  /** Primary body/heading text — titles on tinted surfaces (Chip Banner). */
225
464
  colorTextPrimary: `var(--fairmint-color-text-primary, ${neutral[9]})`,
226
465
  /** Secondary / muted text — subtitles, supporting labels. Adapts to color scheme. */
227
466
  colorTextSecondary: `var(--fairmint-color-text-secondary, ${neutral[5]})`,
228
467
  /** Tertiary / faint text — timestamps, metadata. Adapts to color scheme. */
229
468
  colorTextTertiary: `var(--fairmint-color-text-tertiary, ${neutral[4]})`,
469
+ /** Text on filled controls. */
470
+ colorTextInverse: fairmintVar("color-text-inverse", "#ffffff"),
471
+ /** Disabled text. */
472
+ colorTextDisabled: fairmintVar("color-text-disabled", neutral[6]),
473
+ /** Primary icon and stroke color. */
474
+ colorIconPrimary: fairmintVar("color-icon-primary", neutral[9]),
475
+ /** Secondary icon and stroke color. */
476
+ colorIconSecondary: fairmintVar("color-icon-secondary", neutral[5]),
477
+ /** Tertiary icon and stroke color. */
478
+ colorIconTertiary: fairmintVar("color-icon-tertiary", neutral[4]),
479
+ /** Icon color on filled or dark surfaces. */
480
+ colorIconInverse: fairmintVar("color-icon-inverse", "#ffffff"),
481
+ /** Disabled icon and stroke color. */
482
+ colorIconDisabled: fairmintVar("color-icon-disabled", neutral[6]),
483
+ /** Default border. */
484
+ colorBorderDefault: fairmintVar("color-border-default", neutral[2]),
485
+ /** Focus border/ring color. */
486
+ colorBorderFocus: fairmintVar("color-border-focus", indigo[5]),
487
+ /** Disabled border. */
488
+ colorBorderDisabled: fairmintVar("color-border-disabled", neutral[3]),
489
+ /** Brand action color. */
490
+ colorBrandPrimary: fairmintVar("color-brand-primary", indigo[6]),
491
+ /** Hovered brand action color. */
492
+ colorBrandPrimaryHover: fairmintVar("color-brand-primary-hover", indigo[7]),
493
+ /** Pressed brand action color. */
494
+ colorBrandPrimaryActive: fairmintVar("color-brand-primary-active", indigo[7]),
495
+ /** Fairmint blue brand accent. */
496
+ colorBrandBlue: fairmintVar("color-brand-blue", fairmintBlue[5]),
497
+ /** Fairmint purple brand accent. */
498
+ colorBrandPurple: fairmintVar("color-brand-purple", fairmintPurple[5]),
230
499
  /** Background tint for selected / active rows. Adapts to color scheme. */
231
500
  colorSurfaceSelected: `var(--fairmint-color-surface-selected, ${indigo[0]})`,
232
501
  /** Icon/text drawn on top of colorSurfaceSelected (e.g. a checkmark in a selected badge). Adapts to color scheme. */
233
502
  colorIconOnSurfaceSelected: `var(--fairmint-color-icon-on-surface-selected, ${indigo[6]})`,
234
- /** Primary raised surface (cards/panels). Adapts to color scheme. Matches PR #88's naming. */
235
- colorBgSurface: "var(--fairmint-color-bg-surface, #ffffff)",
236
- /** Secondary surface for fields/rows/badges on a card. Adapts to color scheme. Matches PR #88's naming. */
237
- colorBgSurfaceSecondary: `var(--fairmint-color-bg-surface-secondary, ${neutral[0]})`,
238
- /** Default hairline border for cards/panels. Adapts to color scheme. Matches PR #88's naming. */
239
- colorBorderDefault: `var(--fairmint-color-border-default, ${neutral[2]})`,
503
+ /** Semantic status roles. */
504
+ colorSuccessBg: fairmintVar("color-success-bg", success[0]),
505
+ colorSuccessText: fairmintVar("color-success-text", success[7]),
506
+ colorSuccessBorder: fairmintVar("color-success-border", success[2]),
507
+ colorSuccessSolid: fairmintVar("color-success-solid", success[7]),
508
+ colorSuccessSolidHover: fairmintVar("color-success-solid-hover", success[7]),
509
+ colorWarningBg: fairmintVar("color-warning-bg", warning[0]),
510
+ colorWarningText: fairmintVar("color-warning-text", warning[7]),
511
+ colorWarningBorder: fairmintVar("color-warning-border", warning[2]),
512
+ colorWarningSolid: fairmintVar("color-warning-solid", warning[7]),
513
+ colorWarningSolidHover: fairmintVar("color-warning-solid-hover", warning[7]),
514
+ colorErrorBg: fairmintVar("color-error-bg", error[0]),
515
+ colorErrorBgSubtle: fairmintVar("color-error-bg-subtle", error[1]),
516
+ colorErrorText: fairmintVar("color-error-text", error[7]),
517
+ colorErrorBorder: fairmintVar("color-error-border", error[2]),
518
+ colorErrorSolid: fairmintVar("color-error-solid", error[5]),
519
+ colorErrorSolidHover: fairmintVar("color-error-solid-hover", error[6]),
520
+ colorErrorSolidMuted: fairmintVar("color-error-solid-muted", error[4]),
521
+ colorInfoBg: fairmintVar("color-info-bg", info[0]),
522
+ colorInfoText: fairmintVar("color-info-text", info[7]),
523
+ colorInfoBorder: fairmintVar("color-info-border", info[2]),
524
+ colorInfoSolid: fairmintVar("color-info-solid", info[7]),
525
+ colorInfoSolidHover: fairmintVar("color-info-solid-hover", info[7]),
526
+ /** Decorative watermark color. */
527
+ colorWatermark: fairmintVar("color-watermark", neutral[1]),
240
528
  /** Large decorative watermark on error/empty pages. Adapts to color scheme. */
241
- watermarkColor: `var(--fairmint-watermark-color, ${neutral[1]})`,
529
+ watermarkColor: fairmintVar("color-watermark", neutral[1]),
242
530
  /** Heading font family (Plus Jakarta Sans). */
243
531
  fontHeadings: `var(--fairmint-font-headings, ${typography.headingFontFamily})`,
244
532
  /** Body font family (Inter). */
@@ -288,6 +576,18 @@ const neutralColors = {
288
576
  800: "#1C2536",
289
577
  900: "#111927"
290
578
  };
579
+ const darkNeutralColors = {
580
+ 50: "#F5F7FA",
581
+ 100: "#E2E7ED",
582
+ 200: "#B8C2D0",
583
+ 300: "#8D99A8",
584
+ 400: "#748093",
585
+ 500: "#5C687A",
586
+ 600: "#2F3746",
587
+ 700: "#1F2A39",
588
+ 800: "#1B2431",
589
+ 900: "#0F141C"
590
+ };
291
591
  const semanticColors = {
292
592
  success: "#10B981",
293
593
  warning: "#F79009",
@@ -298,6 +598,7 @@ export {
298
598
  brandColors,
299
599
  commonColors,
300
600
  createFairmintMantineProviderProps,
601
+ darkNeutralColors,
301
602
  fairmintCssVariables,
302
603
  fairmintVars,
303
604
  fontSizes,