@ecopages/radiant-ui 0.1.0-beta.7 → 0.1.0-beta.8

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 (264) hide show
  1. package/README.md +1 -1
  2. package/dist/components/ui/alert/alert.css +88 -50
  3. package/dist/components/ui/alert/alert.d.ts +43 -5
  4. package/dist/components/ui/alert/alert.script.d.ts +51 -4
  5. package/dist/components/ui/alert/index.d.ts +2 -2
  6. package/dist/components/ui/alert/index.js +1 -1
  7. package/dist/components/ui/alert/index.js.map +4 -4
  8. package/dist/components/ui/autocomplete/autocomplete.css +4 -4
  9. package/dist/components/ui/autocomplete/autocomplete.d.ts +15 -5
  10. package/dist/components/ui/autocomplete/autocomplete.script.d.ts +9 -0
  11. package/dist/components/ui/autocomplete/index.js +1 -1
  12. package/dist/components/ui/autocomplete/index.js.map +4 -4
  13. package/dist/components/ui/avatar/avatar.d.ts +15 -1
  14. package/dist/components/ui/avatar/index.js +1 -1
  15. package/dist/components/ui/avatar/index.js.map +4 -4
  16. package/dist/components/ui/breadcrumb/breadcrumb.d.ts +32 -6
  17. package/dist/components/ui/breadcrumb/index.js +1 -1
  18. package/dist/components/ui/breadcrumb/index.js.map +4 -4
  19. package/dist/{styles/components → components/ui/button}/button.css +45 -31
  20. package/dist/components/ui/button/button.d.ts +21 -4
  21. package/dist/components/ui/button-group/button-group.d.ts +7 -1
  22. package/dist/components/ui/button-group/index.js +1 -1
  23. package/dist/components/ui/button-group/index.js.map +4 -4
  24. package/dist/components/ui/calendar/calendar.css +7 -7
  25. package/dist/components/ui/calendar/calendar.d.ts +3 -2
  26. package/dist/components/ui/calendar/calendar.script.d.ts +39 -1
  27. package/dist/components/ui/calendar/index.js +1 -1
  28. package/dist/components/ui/calendar/index.js.map +4 -4
  29. package/dist/components/ui/carousel/carousel.d.ts +32 -6
  30. package/dist/components/ui/carousel/carousel.script.d.ts +44 -0
  31. package/dist/components/ui/carousel/index.js +1 -1
  32. package/dist/components/ui/carousel/index.js.map +4 -4
  33. package/dist/components/ui/checkbox/checkbox.css +1 -1
  34. package/dist/components/ui/checkbox/checkbox.d.ts +3 -2
  35. package/dist/components/ui/checkbox/checkbox.script.d.ts +4 -0
  36. package/dist/components/ui/checkbox/index.js +1 -1
  37. package/dist/components/ui/checkbox/index.js.map +4 -4
  38. package/dist/components/ui/chip/chip.d.ts +8 -0
  39. package/dist/components/ui/chip/index.js +1 -1
  40. package/dist/components/ui/chip/index.js.map +4 -4
  41. package/dist/components/ui/chip-list/chip-list.d.ts +10 -2
  42. package/dist/components/ui/chip-list/index.js +1 -1
  43. package/dist/components/ui/chip-list/index.js.map +4 -4
  44. package/dist/components/ui/combobox/combobox.css +39 -1
  45. package/dist/components/ui/combobox/combobox.d.ts +15 -5
  46. package/dist/components/ui/combobox/combobox.script.d.ts +13 -1
  47. package/dist/components/ui/combobox/index.js +1 -1
  48. package/dist/components/ui/combobox/index.js.map +4 -4
  49. package/dist/components/ui/cycle-toggle/cycle-toggle.css +15 -0
  50. package/dist/components/ui/cycle-toggle/cycle-toggle.d.ts +29 -0
  51. package/dist/components/ui/cycle-toggle/cycle-toggle.script.d.ts +61 -0
  52. package/dist/components/ui/cycle-toggle/index.d.ts +5 -0
  53. package/dist/components/ui/cycle-toggle/index.js +2 -0
  54. package/dist/components/ui/cycle-toggle/index.js.map +7 -0
  55. package/dist/components/ui/cycle-toggle/theme-preference-icons.d.ts +12 -0
  56. package/dist/components/ui/date-field/date-field.css +37 -0
  57. package/dist/components/ui/date-field/date-field.d.ts +22 -3
  58. package/dist/components/ui/date-field/date-field.script.d.ts +29 -5
  59. package/dist/components/ui/date-field/index.d.ts +1 -1
  60. package/dist/components/ui/date-field/index.js +1 -1
  61. package/dist/components/ui/date-field/index.js.map +4 -4
  62. package/dist/components/ui/date-range-picker/date-range-picker.css +37 -0
  63. package/dist/components/ui/date-range-picker/date-range-picker.d.ts +37 -4
  64. package/dist/components/ui/date-range-picker/date-range-picker.script.d.ts +31 -5
  65. package/dist/components/ui/date-range-picker/index.d.ts +1 -1
  66. package/dist/components/ui/date-range-picker/index.js +1 -1
  67. package/dist/components/ui/date-range-picker/index.js.map +4 -4
  68. package/dist/components/ui/dialog/dialog.css +1 -1
  69. package/dist/components/ui/dialog/dialog.d.ts +30 -5
  70. package/dist/components/ui/dialog/dialog.script.d.ts +3 -0
  71. package/dist/components/ui/dialog/index.js +1 -1
  72. package/dist/components/ui/dialog/index.js.map +4 -4
  73. package/dist/components/ui/disclosure/disclosure-group.css +1 -1
  74. package/dist/components/ui/disclosure/disclosure-group.script.d.ts +6 -0
  75. package/dist/components/ui/disclosure/disclosure.d.ts +26 -7
  76. package/dist/components/ui/disclosure/disclosure.script.d.ts +5 -0
  77. package/dist/components/ui/disclosure/index.js +1 -1
  78. package/dist/components/ui/disclosure/index.js.map +4 -4
  79. package/dist/components/ui/feed/feed.d.ts +37 -7
  80. package/dist/components/ui/feed/index.js +1 -1
  81. package/dist/components/ui/feed/index.js.map +4 -4
  82. package/dist/components/ui/field/field-description.d.ts +5 -1
  83. package/dist/components/ui/field/field-error.d.ts +5 -0
  84. package/dist/components/ui/field/field.d.ts +8 -1
  85. package/dist/components/ui/field/field.script.d.ts +35 -0
  86. package/dist/components/ui/field/index.js +1 -1
  87. package/dist/components/ui/field/index.js.map +4 -4
  88. package/dist/components/ui/form/control-protocol.d.ts +6 -0
  89. package/dist/components/ui/form/form.d.ts +2 -1
  90. package/dist/components/ui/form/form.script.d.ts +16 -1
  91. package/dist/components/ui/form/index.d.ts +1 -1
  92. package/dist/components/ui/form/index.js +1 -1
  93. package/dist/components/ui/form/index.js.map +4 -4
  94. package/dist/components/ui/grid/grid.d.ts +12 -2
  95. package/dist/components/ui/grid/grid.script.d.ts +14 -0
  96. package/dist/components/ui/grid/index.js +1 -1
  97. package/dist/components/ui/grid/index.js.map +4 -4
  98. package/dist/components/ui/heading/heading.d.ts +26 -4
  99. package/dist/components/ui/heading/index.js +1 -1
  100. package/dist/components/ui/heading/index.js.map +4 -4
  101. package/dist/components/ui/headline/headline.d.ts +9 -1
  102. package/dist/components/ui/headline/index.js +1 -1
  103. package/dist/components/ui/headline/index.js.map +4 -4
  104. package/dist/components/ui/input/index.d.ts +1 -1
  105. package/dist/components/ui/input/index.js +1 -1
  106. package/dist/components/ui/input/index.js.map +4 -4
  107. package/dist/components/ui/input/input.css +2 -7
  108. package/dist/components/ui/input/input.d.ts +7 -2
  109. package/dist/components/ui/label/index.js +1 -1
  110. package/dist/components/ui/label/index.js.map +4 -4
  111. package/dist/components/ui/label/label.d.ts +8 -1
  112. package/dist/components/ui/listbox/index.js +1 -1
  113. package/dist/components/ui/listbox/index.js.map +4 -4
  114. package/dist/components/ui/listbox/listbox.css +2 -5
  115. package/dist/components/ui/listbox/listbox.d.ts +7 -3
  116. package/dist/components/ui/listbox/listbox.script.d.ts +14 -1
  117. package/dist/components/ui/menu-button/index.d.ts +1 -1
  118. package/dist/components/ui/menu-button/index.js +1 -1
  119. package/dist/components/ui/menu-button/index.js.map +4 -4
  120. package/dist/components/ui/menu-button/menu-button.css +2 -2
  121. package/dist/components/ui/menu-button/menu-button.d.ts +27 -5
  122. package/dist/components/ui/menu-button/menu-button.script.d.ts +8 -3
  123. package/dist/components/ui/menubar/index.js +1 -1
  124. package/dist/components/ui/menubar/index.js.map +4 -4
  125. package/dist/components/ui/menubar/menubar.css +4 -4
  126. package/dist/components/ui/menubar/menubar.d.ts +14 -2
  127. package/dist/components/ui/menubar/menubar.script.d.ts +10 -1
  128. package/dist/components/ui/meter/index.js +1 -1
  129. package/dist/components/ui/meter/index.js.map +4 -4
  130. package/dist/components/ui/meter/meter.css +1 -1
  131. package/dist/components/ui/meter/meter.d.ts +7 -2
  132. package/dist/components/ui/meter/meter.script.d.ts +21 -0
  133. package/dist/components/ui/navigation-menu/index.js +1 -1
  134. package/dist/components/ui/navigation-menu/index.js.map +4 -4
  135. package/dist/components/ui/navigation-menu/navigation-menu.css +2 -2
  136. package/dist/components/ui/navigation-menu/navigation-menu.d.ts +3 -2
  137. package/dist/components/ui/navigation-menu/navigation-menu.script.d.ts +4 -0
  138. package/dist/components/ui/number-field/index.d.ts +1 -1
  139. package/dist/components/ui/number-field/index.js +1 -1
  140. package/dist/components/ui/number-field/index.js.map +4 -4
  141. package/dist/components/ui/number-field/number-field.css +18 -3
  142. package/dist/components/ui/number-field/number-field.d.ts +36 -8
  143. package/dist/components/ui/number-field/number-field.script.d.ts +28 -1
  144. package/dist/components/ui/popover/index.js +1 -1
  145. package/dist/components/ui/popover/index.js.map +4 -4
  146. package/dist/components/ui/popover/popover.d.ts +5 -4
  147. package/dist/components/ui/popover/popover.script.d.ts +4 -0
  148. package/dist/components/ui/radio-group/index.d.ts +1 -1
  149. package/dist/components/ui/radio-group/index.js +1 -1
  150. package/dist/components/ui/radio-group/index.js.map +4 -4
  151. package/dist/components/ui/radio-group/radio-group.d.ts +29 -4
  152. package/dist/components/ui/radio-group/radio-group.script.d.ts +14 -9
  153. package/dist/components/ui/select/index.js +1 -1
  154. package/dist/components/ui/select/index.js.map +4 -4
  155. package/dist/components/ui/select/select.css +48 -6
  156. package/dist/components/ui/select/select.d.ts +29 -8
  157. package/dist/components/ui/select/select.script.d.ts +7 -0
  158. package/dist/components/ui/sidebar/index.js +1 -1
  159. package/dist/components/ui/sidebar/index.js.map +4 -4
  160. package/dist/components/ui/sidebar/sidebar-trigger.script.d.ts +4 -0
  161. package/dist/components/ui/sidebar/sidebar.css +41 -24
  162. package/dist/components/ui/sidebar/sidebar.d.ts +68 -14
  163. package/dist/components/ui/sidebar/sidebar.docs.css +5 -2
  164. package/dist/components/ui/sidebar/sidebar.script.d.ts +9 -0
  165. package/dist/components/ui/slider/index.js +1 -1
  166. package/dist/components/ui/slider/index.js.map +4 -4
  167. package/dist/components/ui/slider/slider.d.ts +2 -1
  168. package/dist/components/ui/slider/slider.script.d.ts +29 -1
  169. package/dist/components/ui/switch/index.js +1 -1
  170. package/dist/components/ui/switch/index.js.map +4 -4
  171. package/dist/components/ui/switch/switch.css +3 -3
  172. package/dist/components/ui/switch/switch.d.ts +11 -2
  173. package/dist/components/ui/switch/switch.script.d.ts +5 -0
  174. package/dist/components/ui/tabs/index.js +1 -1
  175. package/dist/components/ui/tabs/index.js.map +4 -4
  176. package/dist/components/ui/tabs/tabs.css +9 -10
  177. package/dist/components/ui/tabs/tabs.d.ts +30 -9
  178. package/dist/components/ui/tag-group/index.js +1 -1
  179. package/dist/components/ui/tag-group/index.js.map +4 -4
  180. package/dist/components/ui/tag-group/tag-group.css +2 -11
  181. package/dist/components/ui/tag-group/tag-group.d.ts +18 -5
  182. package/dist/components/ui/tag-group/tag-group.script.d.ts +9 -2
  183. package/dist/components/ui/textarea/index.d.ts +1 -1
  184. package/dist/components/ui/textarea/index.js +1 -1
  185. package/dist/components/ui/textarea/index.js.map +4 -4
  186. package/dist/components/ui/textarea/textarea.d.ts +7 -2
  187. package/dist/components/ui/toast/index.d.ts +1 -1
  188. package/dist/components/ui/toast/index.js +1 -1
  189. package/dist/components/ui/toast/index.js.map +4 -4
  190. package/dist/components/ui/toast/stack-layout.d.ts +18 -0
  191. package/dist/components/ui/toast/toast-context.d.ts +10 -0
  192. package/dist/components/ui/toast/toast.css +30 -9
  193. package/dist/components/ui/toast/toast.d.ts +12 -2
  194. package/dist/components/ui/toast/toast.script.d.ts +60 -4
  195. package/dist/components/ui/toast/toaster.script.d.ts +71 -2
  196. package/dist/components/ui/toc/index.js +1 -1
  197. package/dist/components/ui/toc/index.js.map +4 -4
  198. package/dist/components/ui/toc/toc.css +3 -0
  199. package/dist/components/ui/toc/toc.d.ts +2 -1
  200. package/dist/components/ui/toc/toc.script.d.ts +15 -0
  201. package/dist/components/ui/toolbar/index.js +1 -1
  202. package/dist/components/ui/toolbar/index.js.map +4 -4
  203. package/dist/components/ui/toolbar/toolbar.d.ts +3 -2
  204. package/dist/components/ui/toolbar/toolbar.script.d.ts +8 -0
  205. package/dist/components/ui/tooltip/index.js +1 -1
  206. package/dist/components/ui/tooltip/index.js.map +4 -4
  207. package/dist/components/ui/tooltip/tooltip.d.ts +3 -2
  208. package/dist/components/ui/tooltip/tooltip.script.d.ts +3 -0
  209. package/dist/components/ui/tree/index.js +1 -1
  210. package/dist/components/ui/tree/index.js.map +4 -4
  211. package/dist/components/ui/tree/tree.d.ts +12 -2
  212. package/dist/components/ui/tree/tree.script.d.ts +18 -1
  213. package/dist/components/ui/treegrid/index.js +1 -1
  214. package/dist/components/ui/treegrid/index.js.map +4 -4
  215. package/dist/components/ui/treegrid/treegrid.d.ts +15 -2
  216. package/dist/components/ui/treegrid/treegrid.script.d.ts +22 -1
  217. package/dist/components/ui/window-splitter/index.js +1 -1
  218. package/dist/components/ui/window-splitter/index.js.map +4 -4
  219. package/dist/components/ui/window-splitter/window-splitter.css +1 -1
  220. package/dist/components/ui/window-splitter/window-splitter.d.ts +3 -2
  221. package/dist/components/ui/window-splitter/window-splitter.script.d.ts +22 -0
  222. package/dist/index.d.ts +1 -0
  223. package/dist/index.js +1 -1
  224. package/dist/index.js.map +4 -4
  225. package/dist/lib/cycle-value.d.ts +8 -0
  226. package/dist/lib/intl-number/range.d.ts +8 -0
  227. package/dist/styles/radiant-ui-core.css +110 -341
  228. package/dist/styles/radiant-ui.css +413 -377
  229. package/dist/styles/styles.css +839 -2731
  230. package/dist/styles/tailwind.css +626 -530
  231. package/dist/styles/tokens/colors/aurora.css +2 -2
  232. package/dist/styles/tokens/colors/basalt.css +2 -1
  233. package/dist/styles/tokens/colors/glacier.css +2 -1
  234. package/dist/styles/tokens/presets/colors/aurora.css +42 -14
  235. package/dist/styles/tokens/presets/colors/basalt.css +28 -0
  236. package/dist/styles/tokens/presets/colors/ember.css +28 -0
  237. package/dist/styles/tokens/presets/colors/glacier.css +28 -0
  238. package/dist/styles/tokens/semantic.css +22 -2
  239. package/dist/styles/tokens/spacing/compact.css +12 -12
  240. package/package.json +21 -8
  241. package/dist/components/ui/dialog/dialog-registry.test.d.ts +0 -1
  242. package/dist/components/ui/field/field-ssr-hydration.test.d.ts +0 -1
  243. package/dist/components/ui/form/form-field.test.d.ts +0 -4
  244. package/dist/components/ui/form/form-store.test.d.ts +0 -1
  245. package/dist/components/ui/shared/collection-navigation.test.d.ts +0 -1
  246. package/dist/components/ui/shared/floating-position.test.d.ts +0 -1
  247. package/dist/components/ui/shared/listbox-popover-behavior.test.d.ts +0 -1
  248. package/dist/components/ui/shared/popover-controller.test.d.ts +0 -1
  249. package/dist/components/ui/shared/portal.test.d.ts +0 -1
  250. package/dist/components/ui/sidebar/sidebar.ssr.test.d.ts +0 -2
  251. package/dist/components/ui/sidebar/sidebar.test.d.ts +0 -1
  252. package/dist/components/ui/toast/toast.test.d.ts +0 -2
  253. package/dist/components/ui/toc/toc-helpers.test.d.ts +0 -1
  254. package/dist/components/ui/toc/toc.ssr.test.d.ts +0 -1
  255. package/dist/components/ui/toc/toc.test.d.ts +0 -1
  256. package/dist/lib/intl-date/parts.test.d.ts +0 -1
  257. package/dist/lib/intl-date/segments.test.d.ts +0 -1
  258. package/dist/lib/intl-date/selection.test.d.ts +0 -1
  259. package/dist/lib/mask/date-mask.test.d.ts +0 -1
  260. package/dist/lib/mask/input-mask.test.d.ts +0 -1
  261. package/dist/lib/radiant-view.d.ts +0 -43
  262. package/dist/lib/text-filter.test.d.ts +0 -1
  263. package/dist/styles/tokens/presets/radius.css +0 -45
  264. package/dist/styles/tokens/presets/spacing.css +0 -57
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Default color pack — raw OKLCH scales only (mode-agnostic).
3
- * Semantic roles live in semantic.css.
3
+ * `:root` (not `@theme`) so scales always emit; semantic roles live in semantic.css.
4
4
  */
5
- @theme {
5
+ :root {
6
6
  --color-black: oklch(0% 0 0);
7
7
  --color-white: oklch(100% 0 0);
8
8
 
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * Basalt color pack — cool neutrals + Carbon-like blue accent (IBM Carbon inspired).
3
+ * `:root` (not `@theme`) so scales always emit.
3
4
  */
4
- @theme {
5
+ :root {
5
6
  --color-basalt-50: oklch(98.2% 0.004 265);
6
7
  --color-basalt-100: oklch(96% 0.006 265);
7
8
  --color-basalt-200: oklch(91.5% 0.008 265);
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * Glacier color pack — matches apps/docs `theme.css` scales.
3
+ * `:root` (not `@theme`) so scales always emit; semantic utilities stay tree-shakable in semantic.css.
3
4
  */
4
- @theme {
5
+ :root {
5
6
  --color-night-sky-50: hsl(225 100% 98%);
6
7
  --color-night-sky-100: hsl(225 100% 95%);
7
8
  --color-night-sky-200: hsl(225 100% 90%);
@@ -45,22 +45,36 @@ html[data-rui-colors='aurora'] {
45
45
  --success-light: var(--color-fruit-salad-400);
46
46
  --success-dark: var(--color-fruit-salad-800);
47
47
 
48
+ --info: var(--color-havelock-blue-700);
49
+ --on-info: var(--color-white);
50
+ --info-container: var(--color-havelock-blue-100);
51
+ --on-info-container: var(--color-havelock-blue-800);
52
+ --info-light: var(--color-havelock-blue-500);
53
+ --info-dark: var(--color-havelock-blue-900);
54
+
55
+ --warning: var(--color-hit-pink-700);
56
+ --on-warning: var(--color-black);
57
+ --warning-container: var(--color-hit-pink-100);
58
+ --on-warning-container: var(--color-hit-pink-800);
59
+ --warning-light: var(--color-hit-pink-400);
60
+ --warning-dark: var(--color-hit-pink-800);
61
+
48
62
  --neutral: var(--color-pale-sky-500);
49
63
 
50
- --surface: var(--color-pale-sky-50);
64
+ --surface: color-mix(in oklab, var(--color-havelock-blue-50) 70%, var(--color-hit-pink-50));
51
65
  --on-surface: var(--color-black);
52
- --surface-container-lowest: var(--color-pale-sky-100);
66
+ --surface-container-lowest: color-mix(in oklab, var(--color-havelock-blue-50) 60%, var(--color-hit-pink-50));
53
67
  --on-surface-container-lowest: var(--color-black);
54
- --surface-container-low: var(--color-pale-sky-200);
68
+ --surface-container-low: color-mix(in oklab, var(--color-havelock-blue-100) 75%, var(--color-hit-pink-50));
55
69
  --on-surface-container-low: var(--color-black);
56
- --surface-container: var(--color-pale-sky-300);
70
+ --surface-container: color-mix(in oklab, var(--color-havelock-blue-100) 65%, var(--color-hit-pink-100));
57
71
  --on-surface-container: var(--color-black);
58
- --surface-container-high: var(--color-pale-sky-400);
72
+ --surface-container-high: color-mix(in oklab, var(--color-havelock-blue-200) 60%, var(--color-hit-pink-100));
59
73
  --on-surface-container-high: var(--color-black);
60
- --surface-container-highest: var(--color-pale-sky-500);
74
+ --surface-container-highest: color-mix(in oklab, var(--color-havelock-blue-200) 50%, var(--color-hit-pink-200));
61
75
  --on-surface-container-highest: var(--color-black);
62
76
 
63
- --background: var(--color-white);
77
+ --background: color-mix(in oklab, var(--color-havelock-blue-50) 75%, var(--color-hit-pink-50));
64
78
  --on-background: var(--color-black);
65
79
 
66
80
  --border: var(--color-pale-sky-400);
@@ -100,20 +114,34 @@ html.dark[data-rui-colors='aurora'] {
100
114
  --success-container: var(--color-fruit-salad-800);
101
115
  --on-success-container: var(--color-fruit-salad-50);
102
116
 
103
- --surface: var(--color-pale-sky-975);
117
+ --info: var(--color-havelock-blue-300);
118
+ --on-info: var(--color-black);
119
+ --info-container: var(--color-havelock-blue-800);
120
+ --on-info-container: var(--color-havelock-blue-50);
121
+ --info-light: var(--color-havelock-blue-300);
122
+ --info-dark: var(--color-havelock-blue-900);
123
+
124
+ --warning: var(--color-hit-pink-200);
125
+ --on-warning: var(--color-black);
126
+ --warning-container: var(--color-hit-pink-800);
127
+ --on-warning-container: var(--color-hit-pink-50);
128
+ --warning-light: var(--color-hit-pink-300);
129
+ --warning-dark: var(--color-hit-pink-800);
130
+
131
+ --surface: color-mix(in oklab, var(--color-pale-sky-975) 65%, var(--color-havelock-blue-950));
104
132
  --on-surface: var(--color-white);
105
- --surface-container-lowest: var(--color-pale-sky-950);
133
+ --surface-container-lowest: color-mix(in oklab, var(--color-pale-sky-950) 75%, var(--color-havelock-blue-950));
106
134
  --on-surface-container-lowest: var(--color-white);
107
- --surface-container-low: var(--color-pale-sky-900);
135
+ --surface-container-low: color-mix(in oklab, var(--color-pale-sky-900) 70%, var(--color-havelock-blue-900));
108
136
  --on-surface-container-low: var(--color-white);
109
- --surface-container: var(--color-pale-sky-800);
137
+ --surface-container: color-mix(in oklab, var(--color-pale-sky-800) 65%, var(--color-havelock-blue-900));
110
138
  --on-surface-container: var(--color-white);
111
- --surface-container-high: var(--color-pale-sky-700);
139
+ --surface-container-high: color-mix(in oklab, var(--color-pale-sky-800) 60%, var(--color-hit-pink-900));
112
140
  --on-surface-container-high: var(--color-white);
113
- --surface-container-highest: var(--color-pale-sky-600);
141
+ --surface-container-highest: color-mix(in oklab, var(--color-pale-sky-700) 55%, var(--color-hit-pink-800));
114
142
  --on-surface-container-highest: var(--color-white);
115
143
 
116
- --background: var(--color-black);
144
+ --background: color-mix(in oklab, var(--color-pale-sky-975) 70%, var(--color-havelock-blue-950));
117
145
  --on-background: var(--color-white);
118
146
 
119
147
  --border: var(--color-pale-sky-700);
@@ -45,6 +45,20 @@ html[data-rui-colors='basalt'] {
45
45
  --success-light: var(--color-carbon-teal-400);
46
46
  --success-dark: var(--color-basalt-800);
47
47
 
48
+ --info: var(--color-carbon-blue-600);
49
+ --on-info: var(--color-white);
50
+ --info-container: var(--color-carbon-blue-100);
51
+ --on-info-container: var(--color-carbon-blue-800);
52
+ --info-light: var(--color-carbon-blue-400);
53
+ --info-dark: var(--color-carbon-blue-800);
54
+
55
+ --warning: var(--color-basalt-700);
56
+ --on-warning: var(--color-white);
57
+ --warning-container: var(--color-basalt-200);
58
+ --on-warning-container: var(--color-basalt-900);
59
+ --warning-light: var(--color-basalt-500);
60
+ --warning-dark: var(--color-basalt-900);
61
+
48
62
  --neutral: var(--color-basalt-500);
49
63
 
50
64
  --surface: var(--color-basalt-100);
@@ -100,6 +114,20 @@ html.dark[data-rui-colors='basalt'] {
100
114
  --success-container: var(--color-basalt-800);
101
115
  --on-success-container: var(--color-basalt-100);
102
116
 
117
+ --info: var(--color-carbon-blue-400);
118
+ --on-info: var(--color-basalt-950);
119
+ --info-container: var(--color-carbon-blue-800);
120
+ --on-info-container: var(--color-carbon-blue-100);
121
+ --info-light: var(--color-carbon-blue-300);
122
+ --info-dark: var(--color-carbon-blue-700);
123
+
124
+ --warning: var(--color-basalt-300);
125
+ --on-warning: var(--color-basalt-950);
126
+ --warning-container: var(--color-basalt-800);
127
+ --on-warning-container: var(--color-basalt-100);
128
+ --warning-light: var(--color-basalt-400);
129
+ --warning-dark: var(--color-basalt-700);
130
+
103
131
  --surface: var(--color-basalt-975);
104
132
  --on-surface: var(--color-basalt-50);
105
133
  --surface-container-lowest: var(--color-basalt-950);
@@ -45,6 +45,20 @@ html[data-rui-colors='ember'] {
45
45
  --success-light: var(--color-night-sky-400);
46
46
  --success-dark: var(--color-night-sky-800);
47
47
 
48
+ --info: var(--color-night-sky-600);
49
+ --on-info: var(--color-glacier-white-50);
50
+ --info-container: var(--color-night-sky-100);
51
+ --on-info-container: var(--color-night-sky-900);
52
+ --info-light: var(--color-night-sky-400);
53
+ --info-dark: var(--color-night-sky-800);
54
+
55
+ --warning: var(--color-laser-lemon-800);
56
+ --on-warning: var(--color-glacier-white-50);
57
+ --warning-container: var(--color-glacier-white-200);
58
+ --on-warning-container: var(--color-laser-lemon-800);
59
+ --warning-light: var(--color-laser-lemon-300);
60
+ --warning-dark: var(--color-laser-lemon-800);
61
+
48
62
  --neutral: var(--color-glacier-white-500);
49
63
 
50
64
  --surface: var(--color-glacier-white-100);
@@ -106,6 +120,20 @@ html.dark[data-rui-colors='ember'] {
106
120
  --success-light: var(--color-night-sky-300);
107
121
  --success-dark: var(--color-night-sky-700);
108
122
 
123
+ --info: var(--color-night-sky-400);
124
+ --on-info: var(--color-glacier-white-950);
125
+ --info-container: var(--color-night-sky-800);
126
+ --on-info-container: var(--color-night-sky-100);
127
+ --info-light: var(--color-night-sky-300);
128
+ --info-dark: var(--color-night-sky-700);
129
+
130
+ --warning: var(--color-laser-lemon-300);
131
+ --on-warning: var(--color-glacier-white-950);
132
+ --warning-container: var(--color-glacier-white-800);
133
+ --on-warning-container: var(--color-laser-lemon-300);
134
+ --warning-light: var(--color-laser-lemon-300);
135
+ --warning-dark: var(--color-laser-lemon-800);
136
+
109
137
  --neutral: var(--color-glacier-white-500);
110
138
 
111
139
  --surface: var(--color-glacier-white-900);
@@ -46,6 +46,20 @@ html:not([data-rui-colors]) {
46
46
  --success-light: var(--color-night-sky-400);
47
47
  --success-dark: var(--color-night-sky-800);
48
48
 
49
+ --info: var(--color-night-sky-600);
50
+ --on-info: var(--color-glacier-white-50);
51
+ --info-container: var(--color-night-sky-100);
52
+ --on-info-container: var(--color-night-sky-900);
53
+ --info-light: var(--color-night-sky-400);
54
+ --info-dark: var(--color-night-sky-800);
55
+
56
+ --warning: var(--color-laser-lemon-800);
57
+ --on-warning: var(--color-glacier-white-50);
58
+ --warning-container: color-mix(in oklab, var(--color-laser-lemon-300) 42%, var(--color-glacier-white-50));
59
+ --on-warning-container: var(--color-laser-lemon-800);
60
+ --warning-light: var(--color-laser-lemon-300);
61
+ --warning-dark: var(--color-laser-lemon-800);
62
+
49
63
  --neutral: var(--color-glacier-white-500);
50
64
 
51
65
  --surface: var(--color-glacier-white-100);
@@ -104,6 +118,20 @@ html.dark:not([data-rui-colors]) {
104
118
  --success-container: var(--color-night-sky-800);
105
119
  --on-success-container: var(--color-night-sky-100);
106
120
 
121
+ --info: var(--color-night-sky-400);
122
+ --on-info: var(--color-glacier-white-950);
123
+ --info-container: var(--color-night-sky-800);
124
+ --on-info-container: var(--color-night-sky-100);
125
+ --info-light: var(--color-night-sky-300);
126
+ --info-dark: var(--color-night-sky-600);
127
+
128
+ --warning: var(--color-laser-lemon-300);
129
+ --on-warning: var(--color-glacier-white-950);
130
+ --warning-container: color-mix(in oklab, var(--color-laser-lemon-800) 55%, var(--color-glacier-white-950));
131
+ --on-warning-container: var(--color-laser-lemon-300);
132
+ --warning-light: var(--color-laser-lemon-300);
133
+ --warning-dark: var(--color-laser-lemon-800);
134
+
107
135
  --surface: var(--color-glacier-white-900);
108
136
  --on-surface: var(--color-glacier-white-50);
109
137
  --surface-container-lowest: var(--color-glacier-white-950);
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Semantic color roles — Storybook brand presets + Tailwind bridge.
3
- * Load `colors/palettes.css` before this file.
2
+ * Semantic color roles — brand presets + tree-shakable Tailwind utility bridge.
3
+ * Load `colors/palettes.css` before this file (palette scales are `:root`, not `@theme`).
4
4
  */
5
5
  @import './presets/colors/index.css';
6
6
 
@@ -52,6 +52,26 @@
52
52
  --color-success-container: var(--success-container);
53
53
  --color-on-success-container: var(--on-success-container);
54
54
 
55
+ --color-info: var(--info);
56
+ --color-on-info: var(--on-info);
57
+ --color-info-container: var(--info-container);
58
+ --color-on-info-container: var(--on-info-container);
59
+ --color-info-light: var(--info-light);
60
+ --color-info-dark: var(--info-dark);
61
+
62
+ --color-warning: var(--warning);
63
+ --color-on-warning: var(--on-warning);
64
+ --color-warning-container: var(--warning-container);
65
+ --color-on-warning-container: var(--on-warning-container);
66
+ --color-warning-light: var(--warning-light);
67
+ --color-warning-dark: var(--warning-dark);
68
+
69
+ /** UI alias — maps to `error` (e.g. destructive buttons, error alerts). */
70
+ --color-destructive: var(--error);
71
+ --color-on-destructive: var(--on-error);
72
+ --color-destructive-container: var(--error-container);
73
+ --color-on-destructive-container: var(--on-error-container);
74
+
55
75
  --color-neutral: var(--neutral);
56
76
 
57
77
  --color-surface: var(--surface);
@@ -6,18 +6,18 @@
6
6
  :root {
7
7
  --space-1: 0.125rem;
8
8
  --space-2: 0.25rem;
9
- --space-3: 0.375rem;
10
- --space-4: 0.5rem;
11
- --space-5: 0.625rem;
12
- --space-6: 0.75rem;
13
- --space-8: 1rem;
14
- --space-10: 1.25rem;
15
- --space-12: 1.5rem;
16
- --space-16: 2rem;
9
+ --space-3: 0.5rem;
10
+ --space-4: 0.75rem;
11
+ --space-5: 1rem;
12
+ --space-6: 1.25rem;
13
+ --space-8: 1.5rem;
14
+ --space-10: 2rem;
15
+ --space-12: 2.5rem;
16
+ --space-16: 3rem;
17
17
 
18
- --space-control-x: var(--space-2);
19
- --space-control-y: var(--space-1);
20
- --space-inline: var(--space-1);
18
+ --space-control-x: var(--space-3);
19
+ --space-control-y: var(--space-2);
20
+ --space-inline: var(--space-2);
21
21
  --space-stack: var(--space-3);
22
- --space-inset: var(--space-3);
22
+ --space-inset: var(--space-4);
23
23
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ecopages/radiant-ui",
3
- "version": "0.1.0-beta.7",
3
+ "version": "0.1.0-beta.8",
4
4
  "description": "Accessible light-DOM UI components built with @ecopages/radiant, documented in Storybook",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -15,9 +15,9 @@
15
15
  "**/index.js"
16
16
  ],
17
17
  "peerDependencies": {
18
- "@ecopages/jsx": ">=0.3.0-beta.6",
19
- "@ecopages/radiant": ">=0.3.0-beta.6",
20
- "@ecopages/signals": ">=0.3.0-beta.6"
18
+ "@ecopages/jsx": ">=0.3.0-beta.8",
19
+ "@ecopages/radiant": ">=0.3.0-beta.8",
20
+ "@ecopages/signals": ">=0.3.0-beta.8"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@babel/core": "^7.28.0",
@@ -38,17 +38,20 @@
38
38
  "oxlint": "^1.71.0",
39
39
  "playwright": "^1.61.1",
40
40
  "postcss": "^8.5.24",
41
+ "react": "^19.2.0",
42
+ "react-dom": "^19.2.0",
41
43
  "storybook": "^10.5.2",
44
+ "ts-dedent": "^2.2.0",
42
45
  "tailwindcss": "^4.1.11",
43
46
  "tsx": "^4.20.6",
44
47
  "typescript": "~7.0.2",
45
48
  "vite": "^8.1.1",
46
49
  "vitest": "^4.1.10",
47
- "@ecopages/jsx": "0.3.0-beta.7",
48
- "@ecopages/radiant": "0.3.0-beta.7",
49
- "@ecopages/vite-plugin-radiant": "0.1.0-beta.2",
50
+ "@ecopages/jsx": "0.3.0-beta.8",
50
51
  "@ecopages/storybook-radiant-vite": "0.1.0-beta.0",
51
- "@ecopages/signals": "0.3.0-beta.7"
52
+ "@ecopages/vite-plugin-radiant": "0.1.0-beta.3",
53
+ "@ecopages/radiant": "0.3.0-beta.8",
54
+ "@ecopages/signals": "0.3.0-beta.8"
52
55
  },
53
56
  "exports": {
54
57
  "./package.json": "./package.json",
@@ -167,6 +170,9 @@
167
170
  "types": "./dist/components/ui/button/index.d.ts",
168
171
  "import": "./dist/components/ui/button/index.js"
169
172
  },
173
+ "./button/styles.css": {
174
+ "default": "./dist/components/ui/button/button.css"
175
+ },
170
176
  "./button-group": {
171
177
  "types": "./dist/components/ui/button-group/index.d.ts",
172
178
  "import": "./dist/components/ui/button-group/index.js"
@@ -216,6 +222,13 @@
216
222
  "./combobox/styles.css": {
217
223
  "default": "./dist/components/ui/combobox/combobox.css"
218
224
  },
225
+ "./cycle-toggle": {
226
+ "types": "./dist/components/ui/cycle-toggle/index.d.ts",
227
+ "import": "./dist/components/ui/cycle-toggle/index.js"
228
+ },
229
+ "./cycle-toggle/styles.css": {
230
+ "default": "./dist/components/ui/cycle-toggle/cycle-toggle.css"
231
+ },
219
232
  "./date-field": {
220
233
  "types": "./dist/components/ui/date-field/index.d.ts",
221
234
  "import": "./dist/components/ui/date-field/index.js"
@@ -1 +0,0 @@
1
- import './dialog.script';
@@ -1 +0,0 @@
1
- import './field.script';
@@ -1,4 +0,0 @@
1
- import '../field/field.script';
2
- import './form.script';
3
- import '../switch/switch.script';
4
- import '../date-field/date-field.script';
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- import '@ecopages/radiant/server/install-ssr-runtime';
2
- import '@ecopages/radiant/client/install-hydrator';
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- import './toast.script';
2
- import './toaster.script';
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- import '@ecopages/radiant/server/install-ssr-runtime';
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,43 +0,0 @@
1
- import type { JsxRenderable } from '@ecopages/jsx';
2
- declare const RADIANT_VIEW_ELEMENT: unique symbol;
3
- declare const RADIANT_SCRIPT_MODULE: unique symbol;
4
- declare const RADIANT_SCRIPT_EXPORT: unique symbol;
5
- declare const RADIANT_VIEW_MODULE: unique symbol;
6
- export type RadiantViewStylesheets = readonly string[];
7
- export type RadiantViewOptions = {
8
- /**
9
- * Stylesheet paths relative to the view module (e.g. `./alert.css`).
10
- *
11
- * @remarks
12
- * Declared as path strings — not `import './x.css'` — so published view
13
- * modules stay free of CSS side effects (Ecopages vendor prebundles cannot
14
- * bundle CSS). The strings are source metadata: Storybook’s view-module
15
- * stamp transform reintroduces `import './x.css'` when transforming the
16
- * module. Apps load styles via `@ecopages/radiant-ui/styles.css` (or a
17
- * theme). Use the `withStylesheets` decorator only for story-scoped extras.
18
- */
19
- stylesheets?: RadiantViewStylesheets;
20
- };
21
- export type RadiantViewComponent<TArgs = unknown> = ((args: TArgs) => JsxRenderable) & {
22
- [RADIANT_VIEW_ELEMENT]?: CustomElementConstructor;
23
- [RADIANT_SCRIPT_MODULE]?: string;
24
- [RADIANT_SCRIPT_EXPORT]?: string;
25
- [RADIANT_VIEW_MODULE]?: string;
26
- };
27
- /** Link a JSX view export to its RadiantElement class (same symbols as the Storybook framework). */
28
- export declare function defineRadiantView<TArgs>(element: CustomElementConstructor & {
29
- [RADIANT_SCRIPT_MODULE]?: string;
30
- [RADIANT_SCRIPT_EXPORT]?: string;
31
- }, render: (args: TArgs) => JsxRenderable, _options?: RadiantViewOptions): RadiantViewComponent<TArgs>;
32
- /**
33
- * Declare stylesheet paths and view module URL on a presentational export (no custom element).
34
- *
35
- * @remarks
36
- * `stylesheets` must appear as a source array literal so Storybook’s stamp
37
- * transform can inject CSS imports. `moduleUrl` (`import.meta.url`) stamps the
38
- * view-module symbol for relative path resolution.
39
- */
40
- export declare function attachRadiantStylesheets<T extends object>(target: T, _stylesheets: RadiantViewStylesheets, moduleUrl: string): T;
41
- /** Re-copy SSR metadata from the linked element (e.g. after HMR). */
42
- export declare function syncRadiantViewMetadata(view: RadiantViewComponent): void;
43
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,45 +0,0 @@
1
- /**
2
- * Storybook radius toggles — `data-rui-radius` on `<html>`.
3
- */
4
- html[data-rui-radius='default'],
5
- html:not([data-rui-radius]) {
6
- --border-radius-xs: 0.125rem;
7
- --border-radius-sm: 0.25rem;
8
- --border-radius-md: 0.375rem;
9
- --border-radius-lg: 0.5rem;
10
- --border-radius-xl: 0.75rem;
11
- --border-radius-2xl: 1rem;
12
- --border-radius-3xl: 1.5rem;
13
- --border-radius-full: 9999px;
14
- --radius-control: var(--border-radius-sm);
15
- --radius-container: var(--border-radius-md);
16
- --radius-pill: var(--border-radius-full);
17
- }
18
-
19
- html[data-rui-radius='soft'] {
20
- --border-radius-xs: 0.25rem;
21
- --border-radius-sm: 0.5rem;
22
- --border-radius-md: 0.75rem;
23
- --border-radius-lg: 1rem;
24
- --border-radius-xl: 1.25rem;
25
- --border-radius-2xl: 1.5rem;
26
- --border-radius-3xl: 2rem;
27
- --border-radius-full: 9999px;
28
- --radius-control: var(--border-radius-md);
29
- --radius-container: var(--border-radius-lg);
30
- --radius-pill: var(--border-radius-full);
31
- }
32
-
33
- html[data-rui-radius='sharp'] {
34
- --border-radius-xs: 0;
35
- --border-radius-sm: 0;
36
- --border-radius-md: 0;
37
- --border-radius-lg: 0;
38
- --border-radius-xl: 0;
39
- --border-radius-2xl: 0;
40
- --border-radius-3xl: 0;
41
- --border-radius-full: 9999px;
42
- --radius-control: 0;
43
- --radius-container: 0;
44
- --radius-pill: var(--border-radius-full);
45
- }
@@ -1,57 +0,0 @@
1
- /**
2
- * Storybook spacing toggles — `data-rui-spacing` on `<html>`.
3
- */
4
- html[data-rui-spacing='default'],
5
- html:not([data-rui-spacing]) {
6
- --space-1: 0.25rem;
7
- --space-2: 0.5rem;
8
- --space-3: 0.75rem;
9
- --space-4: 1rem;
10
- --space-5: 1.25rem;
11
- --space-6: 1.5rem;
12
- --space-8: 2rem;
13
- --space-10: 2.5rem;
14
- --space-12: 3rem;
15
- --space-16: 4rem;
16
- --space-control-x: var(--space-3);
17
- --space-control-y: var(--space-2);
18
- --space-inline: var(--space-2);
19
- --space-stack: var(--space-4);
20
- --space-inset: var(--space-4);
21
- }
22
-
23
- html[data-rui-spacing='compact'] {
24
- --space-1: 0.125rem;
25
- --space-2: 0.25rem;
26
- --space-3: 0.375rem;
27
- --space-4: 0.5rem;
28
- --space-5: 0.625rem;
29
- --space-6: 0.75rem;
30
- --space-8: 1rem;
31
- --space-10: 1.25rem;
32
- --space-12: 1.5rem;
33
- --space-16: 2rem;
34
- --space-control-x: var(--space-2);
35
- --space-control-y: var(--space-1);
36
- --space-inline: var(--space-1);
37
- --space-stack: var(--space-3);
38
- --space-inset: var(--space-3);
39
- }
40
-
41
- html[data-rui-spacing='wide'] {
42
- --space-1: 0.375rem;
43
- --space-2: 0.625rem;
44
- --space-3: 0.875rem;
45
- --space-4: 1.25rem;
46
- --space-5: 1.5rem;
47
- --space-6: 1.875rem;
48
- --space-8: 2.5rem;
49
- --space-10: 3rem;
50
- --space-12: 3.75rem;
51
- --space-16: 5rem;
52
- --space-control-x: var(--space-4);
53
- --space-control-y: var(--space-3);
54
- --space-inline: var(--space-3);
55
- --space-stack: var(--space-6);
56
- --space-inset: var(--space-6);
57
- }