@epilot/spark-ui 0.18.0 → 0.18.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/dist/components/accordion.cjs +2 -2
  2. package/dist/components/accordion.d.ts +1 -1
  3. package/dist/components/accordion.js +1 -1
  4. package/dist/components/alert-dialog.cjs +1 -1
  5. package/dist/components/alert-dialog.js +1 -1
  6. package/dist/components/attachment.d.cts +1 -1
  7. package/dist/components/attachment.d.ts +1 -1
  8. package/dist/components/autocomplete.cjs +1 -1
  9. package/dist/components/autocomplete.js +1 -1
  10. package/dist/components/bar-chart.cjs +1 -1
  11. package/dist/components/bar-chart.js +2 -2
  12. package/dist/components/battery-progress-row.cjs +1 -1
  13. package/dist/components/battery-progress-row.js +1 -1
  14. package/dist/components/breadcrumbs.cjs +1 -1
  15. package/dist/components/breadcrumbs.cjs.map +1 -1
  16. package/dist/components/breadcrumbs.js +1 -1
  17. package/dist/components/breadcrumbs.js.map +1 -1
  18. package/dist/components/bubble.d.cts +1 -1
  19. package/dist/components/bubble.d.ts +1 -1
  20. package/dist/components/button-group.cjs +1 -1
  21. package/dist/components/button-group.cjs.map +1 -1
  22. package/dist/components/button-group.js +1 -1
  23. package/dist/components/button-group.js.map +1 -1
  24. package/dist/components/button.d.cts +2 -2
  25. package/dist/components/button.d.ts +2 -2
  26. package/dist/components/calendar.cjs +4 -4
  27. package/dist/components/calendar.cjs.map +1 -1
  28. package/dist/components/calendar.js +4 -4
  29. package/dist/components/calendar.js.map +1 -1
  30. package/dist/components/callout.cjs +1 -1
  31. package/dist/components/callout.d.cts +1 -1
  32. package/dist/components/callout.d.ts +2 -2
  33. package/dist/components/callout.js +1 -1
  34. package/dist/components/checkbox.cjs +1 -1
  35. package/dist/components/checkbox.cjs.map +1 -1
  36. package/dist/components/checkbox.js +1 -1
  37. package/dist/components/checkbox.js.map +1 -1
  38. package/dist/components/day-of-week-picker.cjs +2 -2
  39. package/dist/components/day-of-week-picker.cjs.map +1 -1
  40. package/dist/components/day-of-week-picker.js +2 -2
  41. package/dist/components/day-of-week-picker.js.map +1 -1
  42. package/dist/components/device-card.d.ts +1 -1
  43. package/dist/components/dialog.cjs +1 -1
  44. package/dist/components/dialog.js +1 -1
  45. package/dist/components/dropdown-menu.cjs +9 -9
  46. package/dist/components/dropdown-menu.cjs.map +1 -1
  47. package/dist/components/dropdown-menu.js +9 -9
  48. package/dist/components/dropdown-menu.js.map +1 -1
  49. package/dist/components/empty-state.d.ts +1 -1
  50. package/dist/components/input-date.cjs +1 -1
  51. package/dist/components/input-date.js +1 -1
  52. package/dist/components/input-group.d.cts +1 -1
  53. package/dist/components/input-group.d.ts +1 -1
  54. package/dist/components/input-otp.cjs +1 -1
  55. package/dist/components/input-otp.js +1 -1
  56. package/dist/components/input.cjs +1 -1
  57. package/dist/components/input.js +1 -1
  58. package/dist/components/line-chart.cjs +3 -3
  59. package/dist/components/line-chart.js +4 -4
  60. package/dist/components/list.cjs +2 -2
  61. package/dist/components/list.cjs.map +1 -1
  62. package/dist/components/list.js +2 -2
  63. package/dist/components/list.js.map +1 -1
  64. package/dist/components/marker.cjs +2 -2
  65. package/dist/components/marker.cjs.map +1 -1
  66. package/dist/components/marker.d.cts +1 -1
  67. package/dist/components/marker.d.ts +1 -1
  68. package/dist/components/marker.js +2 -2
  69. package/dist/components/marker.js.map +1 -1
  70. package/dist/components/message-scroller.cjs +2 -2
  71. package/dist/components/message-scroller.js +2 -2
  72. package/dist/components/on-off-button.cjs +1 -1
  73. package/dist/components/on-off-button.cjs.map +1 -1
  74. package/dist/components/on-off-button.js +1 -1
  75. package/dist/components/on-off-button.js.map +1 -1
  76. package/dist/components/page-header.cjs +1 -1
  77. package/dist/components/page-header.d.cts +1 -1
  78. package/dist/components/page-header.d.ts +1 -1
  79. package/dist/components/page-header.js +1 -1
  80. package/dist/components/pill.cjs +1 -1
  81. package/dist/components/pill.js +1 -1
  82. package/dist/components/power-history-chart.cjs +3 -3
  83. package/dist/components/power-history-chart.js +4 -4
  84. package/dist/components/power-history.cjs +1 -1
  85. package/dist/components/power-history.js +1 -1
  86. package/dist/components/power-network.cjs +2 -2
  87. package/dist/components/power-network.js +2 -2
  88. package/dist/components/radio.cjs +1 -1
  89. package/dist/components/radio.cjs.map +1 -1
  90. package/dist/components/radio.js +1 -1
  91. package/dist/components/radio.js.map +1 -1
  92. package/dist/components/schedule-list.cjs +2 -2
  93. package/dist/components/schedule-list.cjs.map +1 -1
  94. package/dist/components/schedule-list.js +2 -2
  95. package/dist/components/schedule-list.js.map +1 -1
  96. package/dist/components/scroll-area.cjs +2 -2
  97. package/dist/components/scroll-area.cjs.map +1 -1
  98. package/dist/components/scroll-area.js +2 -2
  99. package/dist/components/scroll-area.js.map +1 -1
  100. package/dist/components/segmented-control.cjs +1 -1
  101. package/dist/components/segmented-control.cjs.map +1 -1
  102. package/dist/components/segmented-control.js +1 -1
  103. package/dist/components/segmented-control.js.map +1 -1
  104. package/dist/components/select.cjs +6 -6
  105. package/dist/components/select.cjs.map +1 -1
  106. package/dist/components/select.js +6 -6
  107. package/dist/components/select.js.map +1 -1
  108. package/dist/components/series-legend.cjs +2 -2
  109. package/dist/components/series-legend.cjs.map +1 -1
  110. package/dist/components/series-legend.js +2 -2
  111. package/dist/components/series-legend.js.map +1 -1
  112. package/dist/components/sheet.cjs +1 -1
  113. package/dist/components/sheet.js +1 -1
  114. package/dist/components/slider.cjs +1 -1
  115. package/dist/components/slider.cjs.map +1 -1
  116. package/dist/components/slider.js +1 -1
  117. package/dist/components/slider.js.map +1 -1
  118. package/dist/components/smart-toggle-button.cjs +1 -1
  119. package/dist/components/smart-toggle-button.cjs.map +1 -1
  120. package/dist/components/smart-toggle-button.js +1 -1
  121. package/dist/components/smart-toggle-button.js.map +1 -1
  122. package/dist/components/solar-forecast-chart.d.ts +1 -1
  123. package/dist/components/solar-forecast-chart.js +1 -1
  124. package/dist/components/stepper.cjs +3 -3
  125. package/dist/components/stepper.cjs.map +1 -1
  126. package/dist/components/stepper.js +3 -3
  127. package/dist/components/stepper.js.map +1 -1
  128. package/dist/components/switch.cjs +1 -1
  129. package/dist/components/switch.cjs.map +1 -1
  130. package/dist/components/switch.js +1 -1
  131. package/dist/components/switch.js.map +1 -1
  132. package/dist/components/tabs.cjs +3 -3
  133. package/dist/components/tabs.cjs.map +1 -1
  134. package/dist/components/tabs.js +3 -3
  135. package/dist/components/tabs.js.map +1 -1
  136. package/dist/components/textarea.cjs +1 -1
  137. package/dist/components/textarea.js +1 -1
  138. package/dist/components/theme.cjs.map +1 -1
  139. package/dist/components/theme.d.cts +2 -2
  140. package/dist/components/theme.d.ts +2 -2
  141. package/dist/components/theme.js.map +1 -1
  142. package/dist/components/time-picker.cjs +1 -1
  143. package/dist/components/time-picker.cjs.map +1 -1
  144. package/dist/components/time-picker.js +1 -1
  145. package/dist/components/time-picker.js.map +1 -1
  146. package/dist/components/toast.cjs +1 -1
  147. package/dist/components/toast.js +1 -1
  148. package/dist/components/tooltip.cjs +2 -2
  149. package/dist/components/tooltip.cjs.map +1 -1
  150. package/dist/components/tooltip.js +2 -2
  151. package/dist/components/tooltip.js.map +1 -1
  152. package/dist/lib/accent-theme.cjs +59 -7
  153. package/dist/lib/accent-theme.cjs.map +1 -1
  154. package/dist/lib/accent-theme.d.cts +8 -1
  155. package/dist/lib/accent-theme.d.ts +8 -1
  156. package/dist/lib/accent-theme.js +59 -7
  157. package/dist/lib/accent-theme.js.map +1 -1
  158. package/dist/lib/container-chrome.cjs +1 -1
  159. package/dist/lib/container-chrome.cjs.map +1 -1
  160. package/dist/lib/container-chrome.js +1 -1
  161. package/dist/lib/container-chrome.js.map +1 -1
  162. package/dist/styles/index.css +0 -27
  163. package/dist/styles/spark-default.css +347 -12
  164. package/package.json +18 -2
@@ -16,7 +16,7 @@ const containerChrome = {
16
16
  surface: "border border-(--spark-card-c-border,var(--neutral-a6)) bg-(--spark-card-c-surface,var(--neutral-2)) [--spark-card-bg:var(--spark-card-c-surface,var(--neutral-2))]",
17
17
  outline: "border border-(--spark-card-c-border,var(--neutral-a6)) [--spark-card-bg:transparent]",
18
18
  ghost: "[--spark-card-bg:transparent]",
19
- solid: "bg-(--spark-card-c-solid,var(--neutral-1)) [--spark-card-bg:var(--spark-card-c-solid,var(--neutral-1))] [--spark-card-fg-muted:var(--spark-card-c-contrast,var(--neutral-contrast))] [--spark-card-fg:var(--spark-card-c-contrast,var(--neutral-contrast))] [--spark-card-icon:var(--spark-card-c-contrast,var(--neutral-contrast))]"
19
+ solid: "bg-(--spark-card-c-solid,var(--neutral-1)) [--spark-card-bg:var(--spark-card-c-solid,var(--neutral-1))] [--spark-card-fg-muted:var(--spark-card-c-contrast,var(--neutral-12))] [--spark-card-fg:var(--spark-card-c-contrast,var(--neutral-12))] [--spark-card-icon:var(--spark-card-c-contrast,var(--neutral-12))]"
20
20
  };
21
21
  const containerPaddingX = {
22
22
  ambient: "px-(--spark-card-px,1rem)",
@@ -1 +1 @@
1
- {"version":3,"file":"container-chrome.js","names":[],"sources":["../../src/lib/container-chrome.ts"],"sourcesContent":["import type { SparkCardVariant } from './theme-types'\n\n// `ambient` is the internal cva key for an unset `variant` prop — not part of the public\n// SparkCardVariant union, which only lists variants a consumer can actually pass.\nexport type ContainerVariant = SparkCardVariant | 'ambient'\n\nexport type ContainerRadius =\n | 'none'\n | 'sm'\n | 'md'\n | 'lg'\n | 'xl'\n | '2xl'\n | '3xl'\n | 'full'\n\nexport const radiusClasses: Record<ContainerRadius, string> = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n xl: 'rounded-xl',\n '2xl': 'rounded-2xl',\n '3xl': 'rounded-3xl',\n full: 'rounded-full',\n}\n\n// Fill/border/token-overrides only. Padding is a separate axis (containerPaddingX/All below) —\n// Card insets horizontally and owns its own vertical rhythm; Box has no such assumption.\n// Every non-ambient entry also writes --spark-card-bg (not just its `bg-` class): a\n// per-card `variant` prop applies these classes directly and never touches the\n// [data-card-variant] CSS block that normally populates that var for the ambient/\n// inherited case, but `elevated`'s gradient overlay (containerElevated below) needs\n// to read *some* var to know the variant's fill, whichever path set it.\nexport const containerChrome: Record<ContainerVariant, string> = {\n ambient:\n 'border-(length:--spark-card-border-width,0px) border-(--spark-card-border,transparent) bg-(--spark-card-bg,var(--neutral-a3))',\n soft: 'bg-(--spark-card-c-soft,var(--neutral-a3)) [--spark-card-bg:var(--spark-card-c-soft,var(--neutral-a3))]',\n surface:\n 'border border-(--spark-card-c-border,var(--neutral-a6)) bg-(--spark-card-c-surface,var(--neutral-2)) [--spark-card-bg:var(--spark-card-c-surface,var(--neutral-2))]',\n outline:\n 'border border-(--spark-card-c-border,var(--neutral-a6)) [--spark-card-bg:transparent]',\n ghost: '[--spark-card-bg:transparent]',\n solid:\n 'bg-(--spark-card-c-solid,var(--neutral-1)) [--spark-card-bg:var(--spark-card-c-solid,var(--neutral-1))] [--spark-card-fg-muted:var(--spark-card-c-contrast,var(--neutral-contrast))] [--spark-card-fg:var(--spark-card-c-contrast,var(--neutral-contrast))] [--spark-card-icon:var(--spark-card-c-contrast,var(--neutral-contrast))]',\n}\n\nexport const containerPaddingX: Record<ContainerVariant, string> = {\n ambient: 'px-(--spark-card-px,1rem)',\n soft: 'px-4',\n surface: 'px-4',\n outline: 'px-4',\n ghost: '',\n solid: 'px-4',\n}\n\nexport const containerPaddingAll: Record<ContainerVariant, string> = {\n ambient: 'p-(--spark-card-px,1rem)',\n soft: 'p-4',\n surface: 'p-4',\n outline: 'p-4',\n ghost: '',\n solid: 'p-4',\n}\n\n// `elevated`: the hover tint targets the gradient layer instead of `background-color` —\n// the base stays the opaque --spark-elevated fill, so a hover never leaks the backdrop.\nexport function containerInteractiveClasses(\n resolved: ContainerVariant,\n elevated?: boolean,\n) {\n const softHover =\n (resolved === 'ambient' || resolved === 'soft') &&\n (elevated\n ? 'hover:[background-image:linear-gradient(var(--spark-card-c-soft-hover,var(--neutral-a4)),var(--spark-card-c-soft-hover,var(--neutral-a4)))]'\n : 'hover:bg-(--spark-card-c-soft-hover,var(--neutral-a4))')\n return [\n 'cursor-pointer text-left no-underline transition-colors motion-reduce:transition-none',\n 'focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden',\n 'disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50',\n // hover deepens the fill one step; bordered/bare variants only ring\n softHover,\n ]\n}\n\n// Opaque base + the variant's own fill painted as an image layer over it — no\n// variant/color combination can render translucent, which matters when the container\n// sits over an arbitrary backdrop (a photo) rather than the flat app canvas.\nexport const containerElevated =\n 'bg-(--spark-elevated) ' +\n '[background-image:linear-gradient(var(--spark-card-bg,transparent),var(--spark-card-bg,transparent))] ' +\n 'shadow-(--spark-card-shadow,var(--spark-shadow-1))'\n"],"mappings":";;AAgBA,MAAa,gBAAiD;CAC5D,MAAM;CACN,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACP,OAAO;CACP,MAAM;AACR;AASA,MAAa,kBAAoD;CAC/D,SACE;CACF,MAAM;CACN,SACE;CACF,SACE;CACF,OAAO;CACP,OACE;AACJ;AAEA,MAAa,oBAAsD;CACjE,SAAS;CACT,MAAM;CACN,SAAS;CACT,SAAS;CACT,OAAO;CACP,OAAO;AACT;AAEA,MAAa,sBAAwD;CACnE,SAAS;CACT,MAAM;CACN,SAAS;CACT,SAAS;CACT,OAAO;CACP,OAAO;AACT;AAIA,SAAgB,4BACd,UACA,UACA;CAMA,OAAO;EACL;EACA;EACA;GAPC,aAAa,aAAa,aAAa,YACvC,WACG,gJACA;CAON;AACF;AAKA,MAAa,oBACX"}
1
+ {"version":3,"file":"container-chrome.js","names":[],"sources":["../../src/lib/container-chrome.ts"],"sourcesContent":["import type { SparkCardVariant } from './theme-types'\n\n// `ambient` is the internal cva key for an unset `variant` prop — not part of the public\n// SparkCardVariant union, which only lists variants a consumer can actually pass.\nexport type ContainerVariant = SparkCardVariant | 'ambient'\n\nexport type ContainerRadius =\n | 'none'\n | 'sm'\n | 'md'\n | 'lg'\n | 'xl'\n | '2xl'\n | '3xl'\n | 'full'\n\nexport const radiusClasses: Record<ContainerRadius, string> = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n xl: 'rounded-xl',\n '2xl': 'rounded-2xl',\n '3xl': 'rounded-3xl',\n full: 'rounded-full',\n}\n\n// Fill/border/token-overrides only. Padding is a separate axis (containerPaddingX/All below) —\n// Card insets horizontally and owns its own vertical rhythm; Box has no such assumption.\n// Every non-ambient entry also writes --spark-card-bg (not just its `bg-` class): a\n// per-card `variant` prop applies these classes directly and never touches the\n// [data-card-variant] CSS block that normally populates that var for the ambient/\n// inherited case, but `elevated`'s gradient overlay (containerElevated below) needs\n// to read *some* var to know the variant's fill, whichever path set it.\nexport const containerChrome: Record<ContainerVariant, string> = {\n ambient:\n 'border-(length:--spark-card-border-width,0px) border-(--spark-card-border,transparent) bg-(--spark-card-bg,var(--neutral-a3))',\n soft: 'bg-(--spark-card-c-soft,var(--neutral-a3)) [--spark-card-bg:var(--spark-card-c-soft,var(--neutral-a3))]',\n surface:\n 'border border-(--spark-card-c-border,var(--neutral-a6)) bg-(--spark-card-c-surface,var(--neutral-2)) [--spark-card-bg:var(--spark-card-c-surface,var(--neutral-2))]',\n outline:\n 'border border-(--spark-card-c-border,var(--neutral-a6)) [--spark-card-bg:transparent]',\n ghost: '[--spark-card-bg:transparent]',\n solid:\n 'bg-(--spark-card-c-solid,var(--neutral-1)) [--spark-card-bg:var(--spark-card-c-solid,var(--neutral-1))] [--spark-card-fg-muted:var(--spark-card-c-contrast,var(--neutral-12))] [--spark-card-fg:var(--spark-card-c-contrast,var(--neutral-12))] [--spark-card-icon:var(--spark-card-c-contrast,var(--neutral-12))]',\n}\n\nexport const containerPaddingX: Record<ContainerVariant, string> = {\n ambient: 'px-(--spark-card-px,1rem)',\n soft: 'px-4',\n surface: 'px-4',\n outline: 'px-4',\n ghost: '',\n solid: 'px-4',\n}\n\nexport const containerPaddingAll: Record<ContainerVariant, string> = {\n ambient: 'p-(--spark-card-px,1rem)',\n soft: 'p-4',\n surface: 'p-4',\n outline: 'p-4',\n ghost: '',\n solid: 'p-4',\n}\n\n// `elevated`: the hover tint targets the gradient layer instead of `background-color` —\n// the base stays the opaque --spark-elevated fill, so a hover never leaks the backdrop.\nexport function containerInteractiveClasses(\n resolved: ContainerVariant,\n elevated?: boolean,\n) {\n const softHover =\n (resolved === 'ambient' || resolved === 'soft') &&\n (elevated\n ? 'hover:[background-image:linear-gradient(var(--spark-card-c-soft-hover,var(--neutral-a4)),var(--spark-card-c-soft-hover,var(--neutral-a4)))]'\n : 'hover:bg-(--spark-card-c-soft-hover,var(--neutral-a4))')\n return [\n 'cursor-pointer text-left no-underline transition-colors motion-reduce:transition-none',\n 'focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden',\n 'disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50',\n // hover deepens the fill one step; bordered/bare variants only ring\n softHover,\n ]\n}\n\n// Opaque base + the variant's own fill painted as an image layer over it — no\n// variant/color combination can render translucent, which matters when the container\n// sits over an arbitrary backdrop (a photo) rather than the flat app canvas.\nexport const containerElevated =\n 'bg-(--spark-elevated) ' +\n '[background-image:linear-gradient(var(--spark-card-bg,transparent),var(--spark-card-bg,transparent))] ' +\n 'shadow-(--spark-card-shadow,var(--spark-shadow-1))'\n"],"mappings":";;AAgBA,MAAa,gBAAiD;CAC5D,MAAM;CACN,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACP,OAAO;CACP,MAAM;AACR;AASA,MAAa,kBAAoD;CAC/D,SACE;CACF,MAAM;CACN,SACE;CACF,SACE;CACF,OAAO;CACP,OACE;AACJ;AAEA,MAAa,oBAAsD;CACjE,SAAS;CACT,MAAM;CACN,SAAS;CACT,SAAS;CACT,OAAO;CACP,OAAO;AACT;AAEA,MAAa,sBAAwD;CACnE,SAAS;CACT,MAAM;CACN,SAAS;CACT,SAAS;CACT,OAAO;CACP,OAAO;AACT;AAIA,SAAgB,4BACd,UACA,UACA;CAMA,OAAO;EACL;EACA;EACA;GAPC,aAAa,aAAa,aAAa,YACvC,WACG,gJACA;CAON;AACF;AAKA,MAAa,oBACX"}
@@ -84,33 +84,6 @@
84
84
  /* Tailwind animate plugin */
85
85
  @import 'tw-animate-css';
86
86
 
87
- /*
88
- * Portal parity: ECP ships a contrast-fixed light green-a11 (opaque, darker
89
- * than Radix stock #00713fde) for readable success-light text. Declared here
90
- * (after the imports, directly in layer base) -- inside spark-default.css it
91
- * would land in the nested base.base sub-layer and lose to Radix's direct
92
- * base rules (a layer's direct rules act as its implicit final sub-layer).
93
- */
94
- @layer base {
95
- /* :where(:not(...)) keeps a dark root on the Radix dark value: a bare :root
96
- here would beat the earlier .dark import at equal specificity */
97
- :root:where(:not(.dark, .dark-theme)),
98
- .light,
99
- .light-theme {
100
- --green-a11: #06784c;
101
- }
102
-
103
- @supports (color: color(display-p3 1 1 1)) {
104
- @media (color-gamut: p3) {
105
- :root:where(:not(.dark, .dark-theme)),
106
- .light,
107
- .light-theme {
108
- --green-a11: color(display-p3 0.21 0.46 0.31);
109
- }
110
- }
111
- }
112
- }
113
-
114
87
  /* Hit area utilities — Kian Bazarjani <https://bazza.dev> */
115
88
  @utility hit-area-debug {
116
89
  position: relative;
@@ -44,20 +44,117 @@
44
44
  --spark-indicator: #005eb4;
45
45
  --spark-track: #005eb4;
46
46
 
47
- /* Companion tokens for the colour axis (Button color="neutral"|"danger").
48
- These reference gamut-aware scales / flip per appearance, so one declaration
49
- covers sRGB + p3 and light + dark. --neutral-contrast tracks the neutral knob;
50
- --red-contrast is white (clears 3:1 on the appearance-stable red-9). */
47
+ /* The colour axis (Button color="neutral"|"danger"|"success"|"warning"),
48
+ generated the same way as --spark-* above: generateRadixColors() seeded with
49
+ the brand hex, which the generator pins at step 9. Radix's stock step 9
50
+ (#e5484d/#30a46c/#f76b15) is too light to carry white text (WCAG 2.97-3.91),
51
+ and dark ink on it clears WCAG only by exploiting its blind spot for
52
+ saturated mid-tones (APCA Lc 38-46, under the ~60 body-text floor). Seeding
53
+ the generator with a darker step 9 satisfies both metrics (WCAG 4.68-5.55,
54
+ Lc 77-82) and re-derives 1-8/11-12 and every alpha step around it, so the
55
+ ramp stays internally consistent -- aN still composites to step N over the
56
+ canvas. -surface stays step 2, the static families' convention (see
57
+ neutralSparkVars in accent-theme.ts), not the generator's translucent
58
+ surface. Declared per appearance because Radix's `<scale>.css` and
59
+ `<scale>-dark.css` sit in this same layer. --neutral-* is untouched: it
60
+ tracks the neutral knob. spark-default-parity.test.ts re-derives every value
61
+ below from the same generator call, so drift fails the suite. */
62
+ --red-1: #fffcfc;
63
+ --red-2: #fff7f6;
64
+ --red-3: #ffebe8;
65
+ --red-4: #ffdbd5;
66
+ --red-5: #ffcdc5;
67
+ --red-6: #ffbcb4;
68
+ --red-7: #f8a89e;
69
+ --red-8: #f08d82;
70
+ --red-9: #cf161c;
71
+ --red-10: #be0006;
72
+ --red-11: #d41f21;
73
+ --red-12: #671512;
74
+ --red-a1: #ff000003;
75
+ --red-a2: #ff1d0009;
76
+ --red-a3: #ff220017;
77
+ --red-a4: #ff25002a;
78
+ --red-a5: #ff24003a;
79
+ --red-a6: #ff1c014b;
80
+ --red-a7: #ed1b0061;
81
+ --red-a8: #e117007d;
82
+ --red-a9: #cb0007e9;
83
+ --red-a10: #be0006;
84
+ --red-a11: #ce0002e0;
85
+ --red-a12: #5b0300ed;
51
86
  --red-contrast: #fff;
52
87
  --red-on-solid: #fff;
53
88
  --red-surface: var(--red-2);
89
+
90
+ --green-1: #fbfefc;
91
+ --green-2: #f5fbf7;
92
+ --green-3: #e7f6ec;
93
+ --green-4: #d8f0e0;
94
+ --green-5: #c7e8d2;
95
+ --green-6: #b2dcc0;
96
+ --green-7: #94cca8;
97
+ --green-8: #69b787;
98
+ --green-9: #147a49;
99
+ --green-10: #006b3c;
100
+ --green-11: #1c7f4d;
101
+ --green-12: #203a2a;
102
+ --green-a1: #00c04004;
103
+ --green-a2: #0099330a;
104
+ --green-a3: #00a03618;
105
+ --green-a4: #009d3527;
106
+ --green-a5: #00973338;
107
+ --green-a6: #008c2f4d;
108
+ --green-a7: #0186306b;
109
+ --green-a8: #00853396;
110
+ --green-a9: #006f3aeb;
111
+ --green-a10: #006b3c;
112
+ --green-a11: #006f37e3;
113
+ --green-a12: #001e0cdf;
54
114
  --green-contrast: #fff;
55
115
  --green-on-solid: #fff;
56
116
  --green-surface: var(--green-2);
117
+
118
+ --orange-1: #fefcfb;
119
+ --orange-2: #fff6f2;
120
+ --orange-3: #ffebe2;
121
+ --orange-4: #ffd8c3;
122
+ --orange-5: #ffc9af;
123
+ --orange-6: #ffbca0;
124
+ --orange-7: #f5ab8d;
125
+ --orange-8: #ea936f;
126
+ --orange-9: #c84c00;
127
+ --orange-10: #b93d00;
128
+ --orange-11: #cb4f07;
129
+ --orange-12: #562e1e;
130
+ --orange-a1: #c0400004;
131
+ --orange-a2: #ff4f000d;
132
+ --orange-a3: #ff50001d;
133
+ --orange-a4: #ff5a003c;
134
+ --orange-a5: #ff530050;
135
+ --orange-a6: #ff4c005f;
136
+ --orange-a7: #e9440072;
137
+ --orange-a8: #da400090;
138
+ --orange-a9: #c84c00;
139
+ --orange-a10: #b93d00;
140
+ --orange-a11: #ca4a00f8;
141
+ --orange-a12: #401200e1;
57
142
  --orange-contrast: #fff;
58
143
  --orange-on-solid: #fff;
59
144
  --orange-surface: var(--orange-2);
60
- --neutral-contrast: var(--neutral-12);
145
+ /* Solid-fill ink per neutral family, so [data-neutral-color] swaps the ink
146
+ with the ramp. Light step 9 is a desaturated mid-grey, where no ink
147
+ satisfies both metrics: white reads best at APCA Lc 65.9-66.5 but only
148
+ WCAG 3.30-3.36, while black -- the WCAG-optimal ink at 6.26-6.36 -- caps
149
+ at Lc 43.7, so Lc 60 is unreachable for anything that passes WCAG.
150
+ We take the perceptual win; the resulting axe color-contrast violations
151
+ are baselined deliberately in apps/docs/a11y/a11y-baseline.json. */
152
+ --slate-contrast: #fff;
153
+ --mauve-contrast: #fff;
154
+ --gray-contrast: #fff;
155
+ --sage-contrast: #fff;
156
+ --olive-contrast: #fff;
157
+ --sand-contrast: #fff;
61
158
  --neutral-on-solid: #fff;
62
159
  --neutral-surface: var(--neutral-2);
63
160
 
@@ -119,6 +216,82 @@
119
216
  --spark-background: #ffffff;
120
217
  --spark-indicator: oklch(48.6% 0.1556 254.2);
121
218
  --spark-track: oklch(48.6% 0.1556 254.2);
219
+
220
+ /* Colour axis, wide-gamut twin (light). */
221
+ --red-1: oklch(99.4% 0.0033 27.27);
222
+ --red-2: oklch(98.3% 0.0088 27.27);
223
+ --red-3: oklch(95.6% 0.0226 27.27);
224
+ --red-4: oklch(92.8% 0.0508 27.27);
225
+ --red-5: oklch(89.6% 0.0666 27.27);
226
+ --red-6: oklch(85.7% 0.0802 27.27);
227
+ --red-7: oklch(80.7% 0.0963 27.27);
228
+ --red-8: oklch(74.5% 0.1219 27.27);
229
+ --red-9: oklch(54.4% 0.2125 27.27);
230
+ --red-10: oklch(49.8% 0.2125 27.27);
231
+ --red-11: oklch(55.8% 0.2125 27.27);
232
+ --red-12: oklch(33.9% 0.1158 27.27);
233
+ --red-a1: color(display-p3 0.6745 0.0235 0.0235 / 0.012);
234
+ --red-a2: color(display-p3 0.8941 0.1294 0.0235 / 0.036);
235
+ --red-a3: color(display-p3 0.8667 0.1451 0.0118 / 0.087);
236
+ --red-a4: color(display-p3 0.8549 0.149 0.0039 / 0.161);
237
+ --red-a5: color(display-p3 0.8588 0.1451 0.0039 / 0.22);
238
+ --red-a6: color(display-p3 0.8667 0.1294 0.0039 / 0.287);
239
+ --red-a7: color(display-p3 0.8 0.1098 0.0039 / 0.369);
240
+ --red-a8: color(display-p3 0.7608 0.102 0.0039 / 0.475);
241
+ --red-a9: color(display-p3 0.6941 0.0275 0 / 0.84);
242
+ --red-a10: color(display-p3 0.6471 0.0392 0 / 0.899);
243
+ --red-a11: color(display-p3 0.7137 0.0392 0 / 0.824);
244
+ --red-a12: color(display-p3 0.3059 0.0235 0 / 0.91);
245
+
246
+ --green-1: oklch(99.4% 0.0041 156);
247
+ --green-2: oklch(98.2% 0.0081 156);
248
+ --green-3: oklch(95.9% 0.0205 156);
249
+ --green-4: oklch(93.3% 0.0326 156);
250
+ --green-5: oklch(90% 0.0451 156);
251
+ --green-6: oklch(85.7% 0.0592 156);
252
+ --green-7: oklch(79.8% 0.0776 156);
253
+ --green-8: oklch(71.5% 0.1046 156);
254
+ --green-9: oklch(51.2% 0.1175 156);
255
+ --green-10: oklch(46.3% 0.1175 156);
256
+ --green-11: oklch(52.8% 0.1175 156);
257
+ --green-12: oklch(32.3% 0.0436 156);
258
+ --green-a1: color(display-p3 0.0235 0.6745 0.0235 / 0.012);
259
+ --green-a2: color(display-p3 0.0235 0.5647 0.1294 / 0.036);
260
+ --green-a3: color(display-p3 0.0078 0.5765 0.1529 / 0.083);
261
+ --green-a4: color(display-p3 0.0078 0.5333 0.1255 / 0.134);
262
+ --green-a5: color(display-p3 0.0078 0.5255 0.1451 / 0.197);
263
+ --green-a6: color(display-p3 0.0039 0.4824 0.1176 / 0.271);
264
+ --green-a7: color(display-p3 0.0039 0.4431 0.1176 / 0.373);
265
+ --green-a8: color(display-p3 0 0.4353 0.1176 / 0.514);
266
+ --green-a9: color(display-p3 0 0.3176 0.102 / 0.777);
267
+ --green-a10: color(display-p3 0 0.2863 0.0902 / 0.824);
268
+ --green-a11: color(display-p3 0 0.3294 0.102 / 0.761);
269
+ --green-a12: color(display-p3 0 0.0863 0.0235 / 0.851);
270
+
271
+ --orange-1: oklch(99.2% 0.0025 42.62);
272
+ --orange-2: oklch(98% 0.0121 42.62);
273
+ --orange-3: oklch(95.7% 0.0294 42.62);
274
+ --orange-4: oklch(92.1% 0.0654 42.62);
275
+ --orange-5: oklch(89.1% 0.0867 42.62);
276
+ --orange-6: oklch(85.6% 0.0924 42.62);
277
+ --orange-7: oklch(80.5% 0.0978 42.62);
278
+ --orange-8: oklch(74.4% 0.117 42.62);
279
+ --orange-9: oklch(57.6% 0.172 42.62);
280
+ --orange-10: oklch(53.2% 0.172 42.62);
281
+ --orange-11: oklch(58.6% 0.172 42.62);
282
+ --orange-12: oklch(34.9% 0.0649 42.62);
283
+ --orange-a1: color(display-p3 0.7569 0.2667 0.0235 / 0.016);
284
+ --orange-a2: color(display-p3 0.8392 0.2667 0.0235 / 0.048);
285
+ --orange-a3: color(display-p3 0.8941 0.3255 0.0039 / 0.11);
286
+ --orange-a4: color(display-p3 0.898 0.3373 0.0039 / 0.224);
287
+ --orange-a5: color(display-p3 0.898 0.3176 0.0039 / 0.299);
288
+ --orange-a6: color(display-p3 0.8902 0.298 0.0039 / 0.357);
289
+ --orange-a7: color(display-p3 0.8078 0.2588 0.0039 / 0.428);
290
+ --orange-a8: color(display-p3 0.7608 0.2431 0 / 0.538);
291
+ --orange-a9: color(display-p3 0.6863 0.2314 0 / 0.871);
292
+ --orange-a10: color(display-p3 0.6314 0.1843 0 / 0.891);
293
+ --orange-a11: color(display-p3 0.6941 0.2314 0 / 0.859);
294
+ --orange-a12: color(display-p3 0.2157 0.0667 0 / 0.871);
122
295
  }
123
296
  }
124
297
  }
@@ -158,16 +331,98 @@
158
331
  --spark-indicator: #005eb4;
159
332
  --spark-track: #005eb4;
160
333
 
334
+ /* Colour axis, dark twin -- see the light block above. */
335
+ --red-1: #000;
336
+ --red-2: #1c0a09;
337
+ --red-3: #400103;
338
+ --red-4: #5a0000;
339
+ --red-5: #6f0000;
340
+ --red-6: #840003;
341
+ --red-7: #a00f13;
342
+ --red-8: #cf151c;
343
+ --red-9: #cf161c;
344
+ --red-10: #be0006;
345
+ --red-11: #ff9083;
346
+ --red-12: #ffcdc4;
347
+ --red-a1: #00000000;
348
+ --red-a2: #ff5c521c;
349
+ --red-a3: #ff040c40;
350
+ --red-a4: #ff00005a;
351
+ --red-a5: #ff00006f;
352
+ --red-a6: #ff000684;
353
+ --red-a7: #ff181fa0;
354
+ --red-a8: #ff1a23cf;
355
+ --red-a9: #ff1b23cf;
356
+ --red-a10: #ff0008be;
357
+ --red-a11: #ff9083;
358
+ --red-a12: #ffcdc4;
161
359
  --red-contrast: #fff;
162
360
  --red-on-solid: #fff;
163
361
  --red-surface: var(--red-2);
362
+
363
+ --green-1: #000;
364
+ --green-2: #0b140e;
365
+ --green-3: #0f291a;
366
+ --green-4: #0a3a22;
367
+ --green-5: #0f492b;
368
+ --green-6: #155936;
369
+ --green-7: #1a6a41;
370
+ --green-8: #1b7e4d;
371
+ --green-9: #147a49;
372
+ --green-10: #196940;
373
+ --green-11: #74ce97;
374
+ --green-12: #aaf4c5;
375
+ --green-a1: #00000000;
376
+ --green-a2: #8dffb314;
377
+ --green-a3: #5effa229;
378
+ --green-a4: #2cff963a;
379
+ --green-a5: #35ff9749;
380
+ --green-a6: #3dff9b59;
381
+ --green-a7: #3fff9d6a;
382
+ --green-a8: #37ff9c7e;
383
+ --green-a9: #2aff997a;
384
+ --green-a10: #3dff9c69;
385
+ --green-a11: #90ffbbce;
386
+ --green-a12: #b2ffcef4;
164
387
  --green-contrast: #fff;
165
388
  --green-on-solid: #fff;
166
389
  --green-surface: var(--green-2);
390
+
391
+ --orange-1: #000;
392
+ --orange-2: #190e09;
393
+ --orange-3: #391000;
394
+ --orange-4: #530900;
395
+ --orange-5: #651100;
396
+ --orange-6: #771f00;
397
+ --orange-7: #903000;
398
+ --orange-8: #bb3f00;
399
+ --orange-9: #c84c00;
400
+ --orange-10: #b93d00;
401
+ --orange-11: #ff9564;
402
+ --orange-12: #ffd2be;
403
+ --orange-a1: #00000000;
404
+ --orange-a2: #ff8f5c19;
405
+ --orange-a3: #ff480039;
406
+ --orange-a4: #ff1c0053;
407
+ --orange-a5: #ff2b0065;
408
+ --orange-a6: #ff430077;
409
+ --orange-a7: #ff550090;
410
+ --orange-a8: #ff5600bb;
411
+ --orange-a9: #ff6100c8;
412
+ --orange-a10: #ff5400b9;
413
+ --orange-a11: #ff9564;
414
+ --orange-a12: #ffd2be;
167
415
  --orange-contrast: #fff;
168
416
  --orange-on-solid: #fff;
169
417
  --orange-surface: var(--orange-2);
170
- --neutral-contrast: var(--neutral-12);
418
+ /* Dark step 9 takes white on both metrics (WCAG 5.08-5.18, APCA 80.5-81.0);
419
+ step 12 loses on both (4.38-4.46, 69.2-69.8). No trade-off here. */
420
+ --slate-contrast: #fff;
421
+ --mauve-contrast: #fff;
422
+ --gray-contrast: #fff;
423
+ --sage-contrast: #fff;
424
+ --olive-contrast: #fff;
425
+ --sand-contrast: #fff;
171
426
  --neutral-on-solid: #fff;
172
427
  --neutral-surface: var(--neutral-2);
173
428
 
@@ -225,6 +480,82 @@
225
480
  --spark-background: #000;
226
481
  --spark-indicator: oklch(48.6% 0.1556 254.2);
227
482
  --spark-track: oklch(48.6% 0.1556 254.2);
483
+
484
+ /* Colour axis, wide-gamut twin (dark). */
485
+ --red-1: oklch(0% 0.0193 27.27);
486
+ --red-2: oklch(17.3% 0.0312 27.27);
487
+ --red-3: oklch(23.5% 0.0933 27.27);
488
+ --red-4: oklch(28.1% 0.1391 27.27);
489
+ --red-5: oklch(32.7% 0.1546 27.27);
490
+ --red-6: oklch(38% 0.1615 27.27);
491
+ --red-7: oklch(44.9% 0.175 27.27);
492
+ --red-8: oklch(54.3% 0.2125 27.27);
493
+ --red-9: oklch(54.4% 0.2125 27.27);
494
+ --red-10: oklch(49.8% 0.2125 27.27);
495
+ --red-11: oklch(78.4% 0.2125 27.27);
496
+ --red-12: oklch(90.2% 0.0766 27.27);
497
+ --red-a1: color(display-p3 0 0 0 / 0);
498
+ --red-a2: color(display-p3 1 0.4235 0.3882 / 0.102);
499
+ --red-a3: color(display-p3 1 0.1216 0.1059 / 0.228);
500
+ --red-a4: color(display-p3 1 0.1373 0.0745 / 0.322);
501
+ --red-a5: color(display-p3 1 0.1608 0.0902 / 0.397);
502
+ --red-a6: color(display-p3 1 0.1765 0.1255 / 0.475);
503
+ --red-a7: color(display-p3 1 0.2314 0.2 / 0.577);
504
+ --red-a8: color(display-p3 1 0.2471 0.2157 / 0.746);
505
+ --red-a9: color(display-p3 1 0.2471 0.2157 / 0.746);
506
+ --red-a10: color(display-p3 1 0.2 0.149 / 0.683);
507
+ --red-a11: color(display-p3 1 0.6235 0.5608 / 0.942);
508
+ --red-a12: color(display-p3 1 0.8392 0.8 / 0.969);
509
+
510
+ --green-1: oklch(0% 0.0162 156);
511
+ --green-2: oklch(18.1% 0.0185 156);
512
+ --green-3: oklch(25.4% 0.0427 156);
513
+ --green-4: oklch(31% 0.0671 156);
514
+ --green-5: oklch(36.1% 0.0782 156);
515
+ --green-6: oklch(41.2% 0.0884 156);
516
+ --green-7: oklch(46.7% 0.1011 156);
517
+ --green-8: oklch(52.5% 0.1175 156);
518
+ --green-9: oklch(51.2% 0.1175 156);
519
+ --green-10: oklch(46.3% 0.1011 156);
520
+ --green-11: oklch(78% 0.1175 156);
521
+ --green-12: oklch(90.7% 0.098 156);
522
+ --green-a1: color(display-p3 0 0 0 / 0);
523
+ --green-a2: color(display-p3 0.6471 0.9961 0.698 / 0.079);
524
+ --green-a3: color(display-p3 0.5529 1 0.6745 / 0.157);
525
+ --green-a4: color(display-p3 0.4392 1 0.6314 / 0.224);
526
+ --green-a5: color(display-p3 0.4745 1 0.6392 / 0.283);
527
+ --green-a6: color(display-p3 0.4902 1 0.6471 / 0.346);
528
+ --green-a7: color(display-p3 0.502 1 0.6667 / 0.408);
529
+ --green-a8: color(display-p3 0.4941 1 0.6549 / 0.487);
530
+ --green-a9: color(display-p3 0.4784 1 0.6431 / 0.471);
531
+ --green-a10: color(display-p3 0.498 1 0.6627 / 0.404);
532
+ --green-a11: color(display-p3 0.6784 1 0.7608 / 0.8);
533
+ --green-a12: color(display-p3 0.7686 1 0.8275 / 0.95);
534
+
535
+ --orange-1: oklch(0% 0.0155 42.62);
536
+ --orange-2: oklch(17.7% 0.0224 42.62);
537
+ --orange-3: oklch(23.9% 0.0703 42.62);
538
+ --orange-4: oklch(28.3% 0.114 42.62);
539
+ --orange-5: oklch(32.7% 0.1271 42.62);
540
+ --orange-6: oklch(37.9% 0.1304 42.62);
541
+ --orange-7: oklch(44.7% 0.1406 42.62);
542
+ --orange-8: oklch(53.8% 0.172 42.62);
543
+ --orange-9: oklch(57.6% 0.172 42.62);
544
+ --orange-10: oklch(53.2% 0.172 42.62);
545
+ --orange-11: oklch(78.6% 0.172 42.62);
546
+ --orange-12: oklch(90.2% 0.0625 42.62);
547
+ --orange-a1: color(display-p3 0 0 0 / 0);
548
+ --orange-a2: color(display-p3 0.9922 0.6039 0.4314 / 0.091);
549
+ --orange-a3: color(display-p3 1 0.3686 0.0784 / 0.204);
550
+ --orange-a4: color(display-p3 1 0.2235 0.0824 / 0.299);
551
+ --orange-a5: color(display-p3 1 0.2745 0.098 / 0.361);
552
+ --orange-a6: color(display-p3 1 0.349 0.1216 / 0.428);
553
+ --orange-a7: color(display-p3 1 0.4157 0.1529 / 0.522);
554
+ --orange-a8: color(display-p3 1 0.4157 0.1686 / 0.679);
555
+ --orange-a9: color(display-p3 1 0.4549 0.1804 / 0.726);
556
+ --orange-a10: color(display-p3 1 0.4118 0.1647 / 0.671);
557
+ --orange-a11: color(display-p3 1 0.6392 0.4549 / 0.946);
558
+ --orange-a12: color(display-p3 1 0.8549 0.7765 / 0.973);
228
559
  }
229
560
  }
230
561
  }
@@ -339,6 +670,7 @@
339
670
  --neutral-a10: var(--slate-a10);
340
671
  --neutral-a11: var(--slate-a11);
341
672
  --neutral-a12: var(--slate-a12);
673
+ --neutral-contrast: var(--slate-contrast);
342
674
  }
343
675
 
344
676
  [data-neutral-color='slate'] {
@@ -366,6 +698,7 @@
366
698
  --neutral-a10: var(--slate-a10);
367
699
  --neutral-a11: var(--slate-a11);
368
700
  --neutral-a12: var(--slate-a12);
701
+ --neutral-contrast: var(--slate-contrast);
369
702
  }
370
703
 
371
704
  [data-neutral-color='mauve'] {
@@ -393,6 +726,7 @@
393
726
  --neutral-a10: var(--mauve-a10);
394
727
  --neutral-a11: var(--mauve-a11);
395
728
  --neutral-a12: var(--mauve-a12);
729
+ --neutral-contrast: var(--mauve-contrast);
396
730
  }
397
731
 
398
732
  [data-neutral-color='gray'] {
@@ -420,6 +754,7 @@
420
754
  --neutral-a10: var(--gray-a10);
421
755
  --neutral-a11: var(--gray-a11);
422
756
  --neutral-a12: var(--gray-a12);
757
+ --neutral-contrast: var(--gray-contrast);
423
758
  }
424
759
 
425
760
  [data-neutral-color='sage'] {
@@ -447,6 +782,7 @@
447
782
  --neutral-a10: var(--sage-a10);
448
783
  --neutral-a11: var(--sage-a11);
449
784
  --neutral-a12: var(--sage-a12);
785
+ --neutral-contrast: var(--sage-contrast);
450
786
  }
451
787
 
452
788
  [data-neutral-color='olive'] {
@@ -474,6 +810,7 @@
474
810
  --neutral-a10: var(--olive-a10);
475
811
  --neutral-a11: var(--olive-a11);
476
812
  --neutral-a12: var(--olive-a12);
813
+ --neutral-contrast: var(--olive-contrast);
477
814
  }
478
815
 
479
816
  [data-neutral-color='sand'] {
@@ -501,6 +838,7 @@
501
838
  --neutral-a10: var(--sand-a10);
502
839
  --neutral-a11: var(--sand-a11);
503
840
  --neutral-a12: var(--sand-a12);
841
+ --neutral-contrast: var(--sand-contrast);
504
842
  }
505
843
 
506
844
  /*
@@ -843,12 +1181,9 @@
843
1181
  --spark-card-bg: var(--spark-card-c-solid, var(--neutral-1));
844
1182
  --spark-card-border: transparent;
845
1183
  --spark-card-border-width: 0px;
846
- --spark-card-fg: var(--spark-card-c-contrast, var(--neutral-contrast));
847
- --spark-card-fg-muted: var(
848
- --spark-card-c-contrast,
849
- var(--neutral-contrast)
850
- );
851
- --spark-card-icon: var(--spark-card-c-contrast, var(--neutral-contrast));
1184
+ --spark-card-fg: var(--spark-card-c-contrast, var(--neutral-12));
1185
+ --spark-card-fg-muted: var(--spark-card-c-contrast, var(--neutral-12));
1186
+ --spark-card-icon: var(--spark-card-c-contrast, var(--neutral-12));
852
1187
  }
853
1188
 
854
1189
  /*
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epilot/spark-ui",
3
- "version": "0.18.0",
3
+ "version": "0.18.2",
4
4
  "description": "React UI component library from Spark SDK",
5
5
  "homepage": "https://spark-ui.epilot.io/docs/ui",
6
6
  "license": "Apache-2.0",
@@ -20,6 +20,22 @@
20
20
  "sideEffects": [
21
21
  "**/*.css"
22
22
  ],
23
+ "typesVersions": {
24
+ "*": {
25
+ "utils/*": [
26
+ "dist/utils/*.d.ts"
27
+ ],
28
+ "hooks/*": [
29
+ "dist/hooks/*.d.ts"
30
+ ],
31
+ "lib/*": [
32
+ "dist/lib/*.d.ts"
33
+ ],
34
+ "*": [
35
+ "dist/components/*.d.ts"
36
+ ]
37
+ }
38
+ },
23
39
  "exports": {
24
40
  "./styles": "./dist/styles/index.css",
25
41
  "./spark-default": "./dist/styles/spark-default.css",
@@ -65,7 +81,7 @@
65
81
  "class-variance-authority": "^0.7.1",
66
82
  "cnfast": "^0.0.8",
67
83
  "colorjs.io": "^0.5.2",
68
- "ictus": "^0.1.1",
84
+ "ictus": "^0.1.2",
69
85
  "vaul": "^1.1.2",
70
86
  "@epilot/spark-icons": "^0.0.2"
71
87
  },