@ecopages/radiant-ui 0.1.0-beta.0

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 (254) hide show
  1. package/README.md +70 -0
  2. package/dist/components/ui/alert/alert.css +27 -0
  3. package/dist/components/ui/alert/alert.d.ts +4 -0
  4. package/dist/components/ui/alert/alert.script.d.ts +25 -0
  5. package/dist/components/ui/alert/index.d.ts +2 -0
  6. package/dist/components/ui/alert/index.js +2 -0
  7. package/dist/components/ui/alert/index.js.map +7 -0
  8. package/dist/components/ui/breadcrumb/breadcrumb.css +41 -0
  9. package/dist/components/ui/breadcrumb/breadcrumb.d.ts +59 -0
  10. package/dist/components/ui/breadcrumb/breadcrumb.script.d.ts +40 -0
  11. package/dist/components/ui/breadcrumb/index.d.ts +2 -0
  12. package/dist/components/ui/breadcrumb/index.js +2 -0
  13. package/dist/components/ui/breadcrumb/index.js.map +7 -0
  14. package/dist/components/ui/button/button.d.ts +37 -0
  15. package/dist/components/ui/button/index.d.ts +1 -0
  16. package/dist/components/ui/button/index.js +2 -0
  17. package/dist/components/ui/button/index.js.map +7 -0
  18. package/dist/components/ui/carousel/carousel.css +170 -0
  19. package/dist/components/ui/carousel/carousel.d.ts +39 -0
  20. package/dist/components/ui/carousel/carousel.script.d.ts +113 -0
  21. package/dist/components/ui/carousel/index.d.ts +2 -0
  22. package/dist/components/ui/carousel/index.js +2 -0
  23. package/dist/components/ui/carousel/index.js.map +7 -0
  24. package/dist/components/ui/checkbox/checkbox.css +55 -0
  25. package/dist/components/ui/checkbox/checkbox.d.ts +4 -0
  26. package/dist/components/ui/checkbox/checkbox.script.d.ts +58 -0
  27. package/dist/components/ui/checkbox/index.d.ts +2 -0
  28. package/dist/components/ui/checkbox/index.js +2 -0
  29. package/dist/components/ui/checkbox/index.js.map +7 -0
  30. package/dist/components/ui/combobox/combobox.css +65 -0
  31. package/dist/components/ui/combobox/combobox.d.ts +53 -0
  32. package/dist/components/ui/combobox/combobox.script.d.ts +89 -0
  33. package/dist/components/ui/combobox/index.d.ts +2 -0
  34. package/dist/components/ui/combobox/index.js +2 -0
  35. package/dist/components/ui/combobox/index.js.map +7 -0
  36. package/dist/components/ui/dialog/dialog-registry.d.ts +34 -0
  37. package/dist/components/ui/dialog/dialog-registry.test.d.ts +1 -0
  38. package/dist/components/ui/dialog/dialog-types.d.ts +55 -0
  39. package/dist/components/ui/dialog/dialog.css +53 -0
  40. package/dist/components/ui/dialog/dialog.d.ts +36 -0
  41. package/dist/components/ui/dialog/dialog.script.d.ts +61 -0
  42. package/dist/components/ui/dialog/index.d.ts +4 -0
  43. package/dist/components/ui/dialog/index.js +2 -0
  44. package/dist/components/ui/dialog/index.js.map +7 -0
  45. package/dist/components/ui/disclosure/disclosure-group.script.d.ts +31 -0
  46. package/dist/components/ui/disclosure/disclosure.css +105 -0
  47. package/dist/components/ui/disclosure/disclosure.d.ts +35 -0
  48. package/dist/components/ui/disclosure/disclosure.script.d.ts +38 -0
  49. package/dist/components/ui/disclosure/index.d.ts +3 -0
  50. package/dist/components/ui/disclosure/index.js +2 -0
  51. package/dist/components/ui/disclosure/index.js.map +7 -0
  52. package/dist/components/ui/feed/feed.css +14 -0
  53. package/dist/components/ui/feed/feed.d.ts +12 -0
  54. package/dist/components/ui/feed/feed.script.d.ts +22 -0
  55. package/dist/components/ui/feed/index.d.ts +2 -0
  56. package/dist/components/ui/feed/index.js +2 -0
  57. package/dist/components/ui/feed/index.js.map +7 -0
  58. package/dist/components/ui/field/field-context.d.ts +20 -0
  59. package/dist/components/ui/field/field-description.d.ts +8 -0
  60. package/dist/components/ui/field/field-error.d.ts +9 -0
  61. package/dist/components/ui/field/field-ssr-hydration.test.d.ts +1 -0
  62. package/dist/components/ui/field/field.css +26 -0
  63. package/dist/components/ui/field/field.d.ts +4 -0
  64. package/dist/components/ui/field/field.script.d.ts +68 -0
  65. package/dist/components/ui/field/index.d.ts +5 -0
  66. package/dist/components/ui/field/index.js +2 -0
  67. package/dist/components/ui/field/index.js.map +7 -0
  68. package/dist/components/ui/form/control-protocol.d.ts +19 -0
  69. package/dist/components/ui/form/form-context.d.ts +27 -0
  70. package/dist/components/ui/form/form-field.test.d.ts +3 -0
  71. package/dist/components/ui/form/form-store.d.ts +53 -0
  72. package/dist/components/ui/form/form-store.test.d.ts +1 -0
  73. package/dist/components/ui/form/form.css +12 -0
  74. package/dist/components/ui/form/form.d.ts +5 -0
  75. package/dist/components/ui/form/form.script.d.ts +67 -0
  76. package/dist/components/ui/form/index.d.ts +7 -0
  77. package/dist/components/ui/form/index.js +2 -0
  78. package/dist/components/ui/form/index.js.map +7 -0
  79. package/dist/components/ui/form/resolvers.d.ts +3 -0
  80. package/dist/components/ui/form/types.d.ts +72 -0
  81. package/dist/components/ui/grid/grid.css +47 -0
  82. package/dist/components/ui/grid/grid.d.ts +7 -0
  83. package/dist/components/ui/grid/grid.script.d.ts +26 -0
  84. package/dist/components/ui/grid/index.d.ts +2 -0
  85. package/dist/components/ui/grid/index.js +2 -0
  86. package/dist/components/ui/grid/index.js.map +7 -0
  87. package/dist/components/ui/input/index.d.ts +1 -0
  88. package/dist/components/ui/input/index.js +2 -0
  89. package/dist/components/ui/input/index.js.map +7 -0
  90. package/dist/components/ui/input/input.css +32 -0
  91. package/dist/components/ui/input/input.d.ts +23 -0
  92. package/dist/components/ui/label/index.d.ts +1 -0
  93. package/dist/components/ui/label/index.js +2 -0
  94. package/dist/components/ui/label/index.js.map +7 -0
  95. package/dist/components/ui/label/label.css +8 -0
  96. package/dist/components/ui/label/label.d.ts +9 -0
  97. package/dist/components/ui/listbox/index.d.ts +2 -0
  98. package/dist/components/ui/listbox/index.js +2 -0
  99. package/dist/components/ui/listbox/index.js.map +7 -0
  100. package/dist/components/ui/listbox/listbox.css +23 -0
  101. package/dist/components/ui/listbox/listbox.d.ts +12 -0
  102. package/dist/components/ui/listbox/listbox.script.d.ts +40 -0
  103. package/dist/components/ui/menu-button/index.d.ts +2 -0
  104. package/dist/components/ui/menu-button/index.js +2 -0
  105. package/dist/components/ui/menu-button/index.js.map +7 -0
  106. package/dist/components/ui/menu-button/menu-button.css +43 -0
  107. package/dist/components/ui/menu-button/menu-button.d.ts +13 -0
  108. package/dist/components/ui/menu-button/menu-button.script.d.ts +64 -0
  109. package/dist/components/ui/menubar/index.d.ts +2 -0
  110. package/dist/components/ui/menubar/index.js +2 -0
  111. package/dist/components/ui/menubar/index.js.map +7 -0
  112. package/dist/components/ui/menubar/menubar.css +45 -0
  113. package/dist/components/ui/menubar/menubar.d.ts +16 -0
  114. package/dist/components/ui/menubar/menubar.script.d.ts +52 -0
  115. package/dist/components/ui/meter/index.d.ts +2 -0
  116. package/dist/components/ui/meter/index.js +2 -0
  117. package/dist/components/ui/meter/index.js.map +7 -0
  118. package/dist/components/ui/meter/meter.css +17 -0
  119. package/dist/components/ui/meter/meter.d.ts +4 -0
  120. package/dist/components/ui/meter/meter.script.d.ts +33 -0
  121. package/dist/components/ui/navigation-menu/index.d.ts +2 -0
  122. package/dist/components/ui/navigation-menu/index.js +2 -0
  123. package/dist/components/ui/navigation-menu/index.js.map +7 -0
  124. package/dist/components/ui/navigation-menu/navigation-menu.css +90 -0
  125. package/dist/components/ui/navigation-menu/navigation-menu.d.ts +28 -0
  126. package/dist/components/ui/navigation-menu/navigation-menu.script.d.ts +49 -0
  127. package/dist/components/ui/radio-group/index.d.ts +2 -0
  128. package/dist/components/ui/radio-group/index.js +2 -0
  129. package/dist/components/ui/radio-group/index.js.map +7 -0
  130. package/dist/components/ui/radio-group/radio-group.css +44 -0
  131. package/dist/components/ui/radio-group/radio-group.d.ts +12 -0
  132. package/dist/components/ui/radio-group/radio-group.script.d.ts +52 -0
  133. package/dist/components/ui/sidebar/index.d.ts +3 -0
  134. package/dist/components/ui/sidebar/index.js +2 -0
  135. package/dist/components/ui/sidebar/index.js.map +7 -0
  136. package/dist/components/ui/sidebar/sidebar-trigger.script.d.ts +53 -0
  137. package/dist/components/ui/sidebar/sidebar.css +362 -0
  138. package/dist/components/ui/sidebar/sidebar.d.ts +141 -0
  139. package/dist/components/ui/sidebar/sidebar.script.d.ts +140 -0
  140. package/dist/components/ui/sidebar/sidebar.test.d.ts +1 -0
  141. package/dist/components/ui/slider/index.d.ts +2 -0
  142. package/dist/components/ui/slider/index.js +2 -0
  143. package/dist/components/ui/slider/index.js.map +7 -0
  144. package/dist/components/ui/slider/slider.css +51 -0
  145. package/dist/components/ui/slider/slider.d.ts +7 -0
  146. package/dist/components/ui/slider/slider.script.d.ts +102 -0
  147. package/dist/components/ui/spinbutton/index.d.ts +2 -0
  148. package/dist/components/ui/spinbutton/index.js +2 -0
  149. package/dist/components/ui/spinbutton/index.js.map +7 -0
  150. package/dist/components/ui/spinbutton/spinbutton.css +19 -0
  151. package/dist/components/ui/spinbutton/spinbutton.d.ts +4 -0
  152. package/dist/components/ui/spinbutton/spinbutton.script.d.ts +64 -0
  153. package/dist/components/ui/switch/index.d.ts +2 -0
  154. package/dist/components/ui/switch/index.js +2 -0
  155. package/dist/components/ui/switch/index.js.map +7 -0
  156. package/dist/components/ui/switch/switch.css +47 -0
  157. package/dist/components/ui/switch/switch.d.ts +4 -0
  158. package/dist/components/ui/switch/switch.script.d.ts +51 -0
  159. package/dist/components/ui/tabs/index.d.ts +2 -0
  160. package/dist/components/ui/tabs/index.js +2 -0
  161. package/dist/components/ui/tabs/index.js.map +7 -0
  162. package/dist/components/ui/tabs/tabs.css +28 -0
  163. package/dist/components/ui/tabs/tabs.d.ts +12 -0
  164. package/dist/components/ui/tabs/tabs.script.d.ts +54 -0
  165. package/dist/components/ui/textarea/index.d.ts +1 -0
  166. package/dist/components/ui/textarea/index.js +2 -0
  167. package/dist/components/ui/textarea/index.js.map +7 -0
  168. package/dist/components/ui/textarea/textarea.css +33 -0
  169. package/dist/components/ui/textarea/textarea.d.ts +23 -0
  170. package/dist/components/ui/toast/index.d.ts +5 -0
  171. package/dist/components/ui/toast/index.js +2 -0
  172. package/dist/components/ui/toast/index.js.map +7 -0
  173. package/dist/components/ui/toast/toast-api.d.ts +29 -0
  174. package/dist/components/ui/toast/toast-context.d.ts +59 -0
  175. package/dist/components/ui/toast/toast-state.d.ts +25 -0
  176. package/dist/components/ui/toast/toast.css +315 -0
  177. package/dist/components/ui/toast/toast.d.ts +8 -0
  178. package/dist/components/ui/toast/toast.script.d.ts +91 -0
  179. package/dist/components/ui/toast/toast.test.d.ts +2 -0
  180. package/dist/components/ui/toast/toaster.script.d.ts +79 -0
  181. package/dist/components/ui/toolbar/index.d.ts +2 -0
  182. package/dist/components/ui/toolbar/index.js +2 -0
  183. package/dist/components/ui/toolbar/index.js.map +7 -0
  184. package/dist/components/ui/toolbar/toolbar.css +16 -0
  185. package/dist/components/ui/toolbar/toolbar.d.ts +4 -0
  186. package/dist/components/ui/toolbar/toolbar.script.d.ts +30 -0
  187. package/dist/components/ui/tooltip/index.d.ts +2 -0
  188. package/dist/components/ui/tooltip/index.js +2 -0
  189. package/dist/components/ui/tooltip/index.js.map +7 -0
  190. package/dist/components/ui/tooltip/tooltip.css +25 -0
  191. package/dist/components/ui/tooltip/tooltip.d.ts +4 -0
  192. package/dist/components/ui/tooltip/tooltip.script.d.ts +70 -0
  193. package/dist/components/ui/tree/index.d.ts +2 -0
  194. package/dist/components/ui/tree/index.js +2 -0
  195. package/dist/components/ui/tree/index.js.map +7 -0
  196. package/dist/components/ui/tree/tree.css +54 -0
  197. package/dist/components/ui/tree/tree.d.ts +13 -0
  198. package/dist/components/ui/tree/tree.script.d.ts +45 -0
  199. package/dist/components/ui/treegrid/index.d.ts +2 -0
  200. package/dist/components/ui/treegrid/index.js +2 -0
  201. package/dist/components/ui/treegrid/index.js.map +7 -0
  202. package/dist/components/ui/treegrid/treegrid.css +77 -0
  203. package/dist/components/ui/treegrid/treegrid.d.ts +14 -0
  204. package/dist/components/ui/treegrid/treegrid.script.d.ts +49 -0
  205. package/dist/components/ui/window-splitter/index.d.ts +2 -0
  206. package/dist/components/ui/window-splitter/index.js +2 -0
  207. package/dist/components/ui/window-splitter/index.js.map +7 -0
  208. package/dist/components/ui/window-splitter/window-splitter.css +35 -0
  209. package/dist/components/ui/window-splitter/window-splitter.d.ts +8 -0
  210. package/dist/components/ui/window-splitter/window-splitter.script.d.ts +49 -0
  211. package/dist/index.d.ts +36 -0
  212. package/dist/index.js +2 -0
  213. package/dist/index.js.map +7 -0
  214. package/dist/lib/focusable-elements.d.ts +2 -0
  215. package/dist/lib/radiant-view.d.ts +17 -0
  216. package/dist/lib/roving-tabindex.d.ts +27 -0
  217. package/dist/styles/components/button.css +115 -0
  218. package/dist/styles/radiant-ui-core.css +7 -0
  219. package/dist/styles/radiant-ui.css +10 -0
  220. package/dist/styles/styles.css +36 -0
  221. package/dist/styles/tailwind.css +41 -0
  222. package/dist/styles/themes/aurora.css +19 -0
  223. package/dist/styles/themes/default-compact-soft.css +19 -0
  224. package/dist/styles/themes/default.css +2 -0
  225. package/dist/styles/themes/glacier.css +19 -0
  226. package/dist/styles/tokens/colors/aurora.css +73 -0
  227. package/dist/styles/tokens/colors/basalt.css +36 -0
  228. package/dist/styles/tokens/colors/glacier.css +45 -0
  229. package/dist/styles/tokens/colors/palettes.css +3 -0
  230. package/dist/styles/tokens/elevation/default.css +22 -0
  231. package/dist/styles/tokens/elevation/flat.css +22 -0
  232. package/dist/styles/tokens/motion/default.css +19 -0
  233. package/dist/styles/tokens/motion/snappy.css +19 -0
  234. package/dist/styles/tokens/presets/colors/aurora.css +126 -0
  235. package/dist/styles/tokens/presets/colors/basalt.css +126 -0
  236. package/dist/styles/tokens/presets/colors/ember.css +134 -0
  237. package/dist/styles/tokens/presets/colors/glacier.css +130 -0
  238. package/dist/styles/tokens/presets/colors/index.css +4 -0
  239. package/dist/styles/tokens/presets/radius.css +45 -0
  240. package/dist/styles/tokens/presets/spacing.css +57 -0
  241. package/dist/styles/tokens/radius/default.css +34 -0
  242. package/dist/styles/tokens/radius/edgy.css +35 -0
  243. package/dist/styles/tokens/radius/sharp.css +2 -0
  244. package/dist/styles/tokens/radius/soft.css +34 -0
  245. package/dist/styles/tokens/semantic.css +80 -0
  246. package/dist/styles/tokens/spacing/compact.css +23 -0
  247. package/dist/styles/tokens/spacing/default.css +23 -0
  248. package/dist/styles/tokens/spacing/scale-bridge.css +17 -0
  249. package/dist/styles/tokens/spacing/wide.css +23 -0
  250. package/dist/styles/tokens/system.css +36 -0
  251. package/dist/styles/tokens/typography/default.css +37 -0
  252. package/dist/styles/utilities/sheen.css +7 -0
  253. package/dist/types.d.ts +14 -0
  254. package/package.json +371 -0
@@ -0,0 +1,2 @@
1
+ /** Alias: sharp = edgy (square corners). */
2
+ @import './edgy.css';
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Soft radius pack — generous rounding.
3
+ */
4
+ :root {
5
+ --border-radius-none: 0;
6
+ --border-radius-xs: 0.25rem;
7
+ --border-radius-sm: 0.5rem;
8
+ --border-radius-md: 0.75rem;
9
+ --border-radius-lg: 1rem;
10
+ --border-radius-xl: 1.25rem;
11
+ --border-radius-2xl: 1.5rem;
12
+ --border-radius-3xl: 2rem;
13
+ --border-radius-full: 9999px;
14
+
15
+ --radius-control: var(--border-radius-md);
16
+ --radius-container: var(--border-radius-lg);
17
+ --radius-pill: var(--border-radius-full);
18
+ }
19
+
20
+ @theme {
21
+ --radius-none: var(--border-radius-none);
22
+ --radius-xs: var(--border-radius-xs);
23
+ --radius-sm: var(--border-radius-sm);
24
+ --radius-md: var(--border-radius-md);
25
+ --radius-lg: var(--border-radius-lg);
26
+ --radius-xl: var(--border-radius-xl);
27
+ --radius-2xl: var(--border-radius-2xl);
28
+ --radius-3xl: var(--border-radius-3xl);
29
+ --radius-full: var(--border-radius-full);
30
+ --radius-control: var(--radius-control);
31
+ --radius-container: var(--radius-container);
32
+ --radius-pill: var(--radius-pill);
33
+ --radius-button: var(--radius-control);
34
+ }
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Semantic color roles — Storybook brand presets + Tailwind bridge.
3
+ * Load `colors/palettes.css` before this file.
4
+ */
5
+ @import './presets/colors/index.css';
6
+
7
+ @theme {
8
+ --color-transparent: transparent;
9
+
10
+ --color-gray-50: var(--gray-50);
11
+ --color-gray-100: var(--gray-100);
12
+ --color-gray-200: var(--gray-200);
13
+ --color-gray-300: var(--gray-300);
14
+ --color-gray-400: var(--gray-400);
15
+ --color-gray-500: var(--gray-500);
16
+ --color-gray-600: var(--gray-600);
17
+ --color-gray-700: var(--gray-700);
18
+ --color-gray-800: var(--gray-800);
19
+ --color-gray-900: var(--gray-900);
20
+ --color-gray-950: var(--gray-950);
21
+
22
+ --color-primary: var(--primary);
23
+ --color-primary-light: var(--primary-light);
24
+ --color-primary-dark: var(--primary-dark);
25
+ --color-on-primary: var(--on-primary);
26
+ --color-primary-container: var(--primary-container);
27
+ --color-on-primary-container: var(--on-primary-container);
28
+
29
+ --color-secondary: var(--secondary);
30
+ --color-secondary-light: var(--secondary-light);
31
+ --color-secondary-dark: var(--secondary-dark);
32
+ --color-on-secondary: var(--on-secondary);
33
+ --color-secondary-container: var(--secondary-container);
34
+ --color-on-secondary-container: var(--on-secondary-container);
35
+
36
+ --color-tertiary: var(--tertiary);
37
+ --color-on-tertiary: var(--on-tertiary);
38
+ --color-tertiary-container: var(--tertiary-container);
39
+ --color-on-tertiary-container: var(--on-tertiary-container);
40
+
41
+ --color-error: var(--error);
42
+ --color-error-light: var(--error-light);
43
+ --color-error-dark: var(--error-dark);
44
+ --color-on-error: var(--on-error);
45
+ --color-error-container: var(--error-container);
46
+ --color-on-error-container: var(--on-error-container);
47
+
48
+ --color-success: var(--success);
49
+ --color-success-light: var(--success-light);
50
+ --color-success-dark: var(--success-dark);
51
+ --color-on-success: var(--on-success);
52
+ --color-success-container: var(--success-container);
53
+ --color-on-success-container: var(--on-success-container);
54
+
55
+ --color-neutral: var(--neutral);
56
+
57
+ --color-surface: var(--surface);
58
+ --color-on-surface: var(--on-surface);
59
+ --color-surface-container-lowest: var(--surface-container-lowest);
60
+ --color-on-surface-container-lowest: var(--on-surface-container-lowest);
61
+ --color-surface-container-low: var(--surface-container-low);
62
+ --color-on-surface-container-low: var(--on-surface-container-low);
63
+ --color-surface-container: var(--surface-container);
64
+ --color-on-surface-container: var(--on-surface-container);
65
+ --color-surface-container-high: var(--surface-container-high);
66
+ --color-on-surface-container-high: var(--on-surface-container-high);
67
+ --color-surface-container-highest: var(--surface-container-highest);
68
+ --color-on-surface-container-highest: var(--on-surface-container-highest);
69
+
70
+ --color-background: var(--background);
71
+ --color-on-background: var(--on-background);
72
+
73
+ --color-border: var(--border);
74
+ --color-focus-ring: var(--focus-ring);
75
+ --color-link: var(--link);
76
+ --color-overlay: var(--overlay);
77
+
78
+ --color-background-code: var(--background-code);
79
+ --color-on-background-code: var(--on-background-code);
80
+ }
@@ -0,0 +1,23 @@
1
+ @import './scale-bridge.css';
2
+
3
+ /**
4
+ * Compact spacing pack.
5
+ */
6
+ :root {
7
+ --space-1: 0.125rem;
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;
17
+
18
+ --space-control-x: var(--space-2);
19
+ --space-control-y: var(--space-1);
20
+ --space-inline: var(--space-1);
21
+ --space-stack: var(--space-3);
22
+ --space-inset: var(--space-3);
23
+ }
@@ -0,0 +1,23 @@
1
+ @import './scale-bridge.css';
2
+
3
+ /**
4
+ * Default spacing pack — comfortable density.
5
+ */
6
+ :root {
7
+ --space-1: 0.25rem;
8
+ --space-2: 0.5rem;
9
+ --space-3: 0.75rem;
10
+ --space-4: 1rem;
11
+ --space-5: 1.25rem;
12
+ --space-6: 1.5rem;
13
+ --space-8: 2rem;
14
+ --space-10: 2.5rem;
15
+ --space-12: 3rem;
16
+ --space-16: 4rem;
17
+
18
+ --space-control-x: var(--space-3);
19
+ --space-control-y: var(--space-2);
20
+ --space-inline: var(--space-2);
21
+ --space-stack: var(--space-4);
22
+ --space-inset: var(--space-4);
23
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Maps spacing roles to Tailwind spacing utilities (shared by all spacing packs).
3
+ */
4
+ @theme {
5
+ --spacing-1: var(--space-1);
6
+ --spacing-2: var(--space-2);
7
+ --spacing-3: var(--space-3);
8
+ --spacing-4: var(--space-4);
9
+ --spacing-5: var(--space-5);
10
+ --spacing-6: var(--space-6);
11
+ --spacing-8: var(--space-8);
12
+ --spacing-control-x: var(--space-control-x);
13
+ --spacing-control-y: var(--space-control-y);
14
+ --spacing-inline: var(--space-inline);
15
+ --spacing-stack: var(--space-stack);
16
+ --spacing-inset: var(--space-inset);
17
+ }
@@ -0,0 +1,23 @@
1
+ @import './scale-bridge.css';
2
+
3
+ /**
4
+ * Wide spacing pack.
5
+ */
6
+ :root {
7
+ --space-1: 0.375rem;
8
+ --space-2: 0.625rem;
9
+ --space-3: 0.875rem;
10
+ --space-4: 1.25rem;
11
+ --space-5: 1.5rem;
12
+ --space-6: 1.875rem;
13
+ --space-8: 2.5rem;
14
+ --space-10: 3rem;
15
+ --space-12: 3.75rem;
16
+ --space-16: 5rem;
17
+
18
+ --space-control-x: var(--space-4);
19
+ --space-control-y: var(--space-3);
20
+ --space-inline: var(--space-3);
21
+ --space-stack: var(--space-6);
22
+ --space-inset: var(--space-6);
23
+ }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Structural system tokens (Tier 3) — shared across all themes.
3
+ */
4
+ :root {
5
+ --border-width-hairline: 1px;
6
+ --border-width-thin: 1px;
7
+ --border-width-thick: 2px;
8
+
9
+ --focus-ring-width: 2px;
10
+ --focus-ring-offset: 2px;
11
+
12
+ --opacity-disabled: 0.5;
13
+ --opacity-muted: 0.6;
14
+
15
+ --z-dropdown: 10;
16
+ --z-popover: 20;
17
+ --z-overlay: 30;
18
+ --z-modal: 40;
19
+ --z-toast: 50;
20
+
21
+ --size-control-sm: 2rem;
22
+ --size-control-md: 2.5rem;
23
+ --size-control-lg: 3rem;
24
+ --size-icon-sm: 1rem;
25
+ --size-icon-md: 1.25rem;
26
+ }
27
+
28
+ @theme {
29
+ --opacity-disabled: var(--opacity-disabled);
30
+ --opacity-muted: var(--opacity-muted);
31
+ --z-index-dropdown: var(--z-dropdown);
32
+ --z-index-popover: var(--z-popover);
33
+ --z-index-overlay: var(--z-overlay);
34
+ --z-index-modal: var(--z-modal);
35
+ --z-index-toast: var(--z-toast);
36
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Default typography pack.
3
+ */
4
+ :root {
5
+ --font-sans:
6
+ ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
7
+ sans-serif;
8
+ --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
9
+
10
+ --text-xs: 0.75rem;
11
+ --text-sm: 0.875rem;
12
+ --text-body: 1rem;
13
+ --text-lg: 1.125rem;
14
+ --text-label: 0.875rem;
15
+ --text-control: 0.875rem;
16
+
17
+ --leading-body: 1.5;
18
+ --leading-relaxed: 1.625;
19
+ --leading-compact: 1.25;
20
+
21
+ --weight-regular: 400;
22
+ --weight-medium: 500;
23
+ --weight-semibold: 600;
24
+
25
+ --tracking-wide: 0.025em;
26
+ }
27
+
28
+ @theme {
29
+ --font-sans: var(--font-sans);
30
+ --font-mono: var(--font-mono);
31
+ --text-xs: var(--text-xs);
32
+ --text-sm: var(--text-sm);
33
+ --text-body: var(--text-body);
34
+ --text-lg: var(--text-lg);
35
+ --font-weight-medium: var(--weight-medium);
36
+ --font-weight-semibold: var(--weight-semibold);
37
+ }
@@ -0,0 +1,7 @@
1
+ @utility rui-sheen {
2
+ background-image: var(--sheen-image);
3
+
4
+ @media (forced-colors: active) {
5
+ background-image: none;
6
+ }
7
+ }
@@ -0,0 +1,14 @@
1
+ import type { JsxRenderable } from '@ecopages/jsx';
2
+ export type WithChildren<T = unknown> = T & {
3
+ children?: JsxRenderable;
4
+ };
5
+ export type WithChildrenAndClassName<T = unknown> = WithChildren<T> & {
6
+ className?: string;
7
+ };
8
+ /** Optional light-DOM slot when composing into a parent custom element. */
9
+ export type RadiantSlotProps = {
10
+ slot?: string;
11
+ };
12
+ export type FocusableElement = HTMLAnchorElement | HTMLButtonElement | HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | (HTMLElement & {
13
+ tabindex: number;
14
+ });
package/package.json ADDED
@@ -0,0 +1,371 @@
1
+ {
2
+ "name": "@ecopages/radiant-ui",
3
+ "version": "0.1.0-beta.0",
4
+ "description": "Accessible light-DOM UI components built with @ecopages/radiant, documented in Storybook",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "publishConfig": {
8
+ "access": "public"
9
+ },
10
+ "files": [
11
+ "dist"
12
+ ],
13
+ "sideEffects": [
14
+ "**/*.css",
15
+ "**/index.js"
16
+ ],
17
+ "dependencies": {
18
+ "@floating-ui/dom": "^1.8.0"
19
+ },
20
+ "peerDependencies": {
21
+ "@ecopages/jsx": ">=0.3.0-beta.4",
22
+ "@ecopages/radiant": ">=0.3.0-beta.4",
23
+ "@ecopages/signals": ">=0.3.0-beta.4"
24
+ },
25
+ "devDependencies": {
26
+ "@babel/core": "^7.28.0",
27
+ "@babel/plugin-proposal-decorators": "^7.28.0",
28
+ "@babel/plugin-syntax-typescript": "^7.28.0",
29
+ "@chromatic-com/storybook": "^5.2.1",
30
+ "@rolldown/plugin-babel": "^0.2.1",
31
+ "@storybook/addon-a11y": "^10.5.2",
32
+ "@storybook/addon-docs": "^10.5.2",
33
+ "@storybook/addon-vitest": "^10.5.2",
34
+ "@tailwindcss/vite": "^4.1.11",
35
+ "@types/node": "^24.13.2",
36
+ "@vitest/browser": "^4.1.10",
37
+ "@vitest/browser-playwright": "^4.1.10",
38
+ "@vitest/coverage-v8": "^4.1.10",
39
+ "esbuild": "^0.28.1",
40
+ "oxlint": "^1.71.0",
41
+ "playwright": "^1.61.1",
42
+ "storybook": "^10.5.2",
43
+ "tailwindcss": "^4.1.11",
44
+ "tsx": "^4.20.6",
45
+ "typescript": "~7.0.2",
46
+ "vite": "^8.1.1",
47
+ "vitest": "^4.1.10",
48
+ "@ecopages/jsx": "0.3.0-beta.4",
49
+ "@ecopages/radiant": "0.3.0-beta.4",
50
+ "@ecopages/storybook-radiant-vite": "0.1.0-beta.0",
51
+ "@ecopages/vite-plugin-radiant": "0.1.0-beta.0",
52
+ "@ecopages/signals": "0.3.0-beta.4"
53
+ },
54
+ "exports": {
55
+ "./package.json": "./package.json",
56
+ ".": {
57
+ "types": "./dist/index.d.ts",
58
+ "import": "./dist/index.js"
59
+ },
60
+ "./tokens/colors/aurora": {
61
+ "default": "./dist/styles/tokens/colors/aurora.css"
62
+ },
63
+ "./tokens/colors/glacier": {
64
+ "default": "./dist/styles/tokens/colors/glacier.css"
65
+ },
66
+ "./tokens/colors/basalt": {
67
+ "default": "./dist/styles/tokens/colors/basalt.css"
68
+ },
69
+ "./tokens/colors/palettes": {
70
+ "default": "./dist/styles/tokens/colors/palettes.css"
71
+ },
72
+ "./tokens/spacing/compact": {
73
+ "default": "./dist/styles/tokens/spacing/compact.css"
74
+ },
75
+ "./tokens/spacing/default": {
76
+ "default": "./dist/styles/tokens/spacing/default.css"
77
+ },
78
+ "./tokens/spacing/wide": {
79
+ "default": "./dist/styles/tokens/spacing/wide.css"
80
+ },
81
+ "./tokens/radius/edgy": {
82
+ "default": "./dist/styles/tokens/radius/edgy.css"
83
+ },
84
+ "./tokens/radius/sharp": {
85
+ "default": "./dist/styles/tokens/radius/sharp.css"
86
+ },
87
+ "./tokens/radius/default": {
88
+ "default": "./dist/styles/tokens/radius/default.css"
89
+ },
90
+ "./tokens/radius/soft": {
91
+ "default": "./dist/styles/tokens/radius/soft.css"
92
+ },
93
+ "./tokens/elevation/default": {
94
+ "default": "./dist/styles/tokens/elevation/default.css"
95
+ },
96
+ "./tokens/elevation/flat": {
97
+ "default": "./dist/styles/tokens/elevation/flat.css"
98
+ },
99
+ "./tokens/typography/default": {
100
+ "default": "./dist/styles/tokens/typography/default.css"
101
+ },
102
+ "./tokens/motion/default": {
103
+ "default": "./dist/styles/tokens/motion/default.css"
104
+ },
105
+ "./tokens/motion/snappy": {
106
+ "default": "./dist/styles/tokens/motion/snappy.css"
107
+ },
108
+ "./tokens/system": {
109
+ "default": "./dist/styles/tokens/system.css"
110
+ },
111
+ "./tokens/semantic": {
112
+ "default": "./dist/styles/tokens/semantic.css"
113
+ },
114
+ "./themes/default": {
115
+ "default": "./dist/styles/themes/default.css"
116
+ },
117
+ "./themes/glacier": {
118
+ "default": "./dist/styles/themes/glacier.css"
119
+ },
120
+ "./themes/aurora": {
121
+ "default": "./dist/styles/themes/aurora.css"
122
+ },
123
+ "./themes/default-compact-soft": {
124
+ "default": "./dist/styles/themes/default-compact-soft.css"
125
+ },
126
+ "./styles.css": {
127
+ "default": "./dist/styles/styles.css"
128
+ },
129
+ "./radiant-ui.css": {
130
+ "default": "./dist/styles/radiant-ui.css"
131
+ },
132
+ "./radiant-ui-core.css": {
133
+ "default": "./dist/styles/radiant-ui-core.css"
134
+ },
135
+ "./alert": {
136
+ "types": "./dist/components/ui/alert/index.d.ts",
137
+ "import": "./dist/components/ui/alert/index.js"
138
+ },
139
+ "./alert/styles.css": {
140
+ "default": "./dist/components/ui/alert/alert.css"
141
+ },
142
+ "./breadcrumb": {
143
+ "types": "./dist/components/ui/breadcrumb/index.d.ts",
144
+ "import": "./dist/components/ui/breadcrumb/index.js"
145
+ },
146
+ "./breadcrumb/styles.css": {
147
+ "default": "./dist/components/ui/breadcrumb/breadcrumb.css"
148
+ },
149
+ "./button": {
150
+ "types": "./dist/components/ui/button/index.d.ts",
151
+ "import": "./dist/components/ui/button/index.js"
152
+ },
153
+ "./carousel": {
154
+ "types": "./dist/components/ui/carousel/index.d.ts",
155
+ "import": "./dist/components/ui/carousel/index.js"
156
+ },
157
+ "./carousel/styles.css": {
158
+ "default": "./dist/components/ui/carousel/carousel.css"
159
+ },
160
+ "./checkbox": {
161
+ "types": "./dist/components/ui/checkbox/index.d.ts",
162
+ "import": "./dist/components/ui/checkbox/index.js"
163
+ },
164
+ "./checkbox/styles.css": {
165
+ "default": "./dist/components/ui/checkbox/checkbox.css"
166
+ },
167
+ "./combobox": {
168
+ "types": "./dist/components/ui/combobox/index.d.ts",
169
+ "import": "./dist/components/ui/combobox/index.js"
170
+ },
171
+ "./combobox/styles.css": {
172
+ "default": "./dist/components/ui/combobox/combobox.css"
173
+ },
174
+ "./dialog": {
175
+ "types": "./dist/components/ui/dialog/index.d.ts",
176
+ "import": "./dist/components/ui/dialog/index.js"
177
+ },
178
+ "./dialog/styles.css": {
179
+ "default": "./dist/components/ui/dialog/dialog.css"
180
+ },
181
+ "./disclosure": {
182
+ "types": "./dist/components/ui/disclosure/index.d.ts",
183
+ "import": "./dist/components/ui/disclosure/index.js"
184
+ },
185
+ "./disclosure/styles.css": {
186
+ "default": "./dist/components/ui/disclosure/disclosure.css"
187
+ },
188
+ "./feed": {
189
+ "types": "./dist/components/ui/feed/index.d.ts",
190
+ "import": "./dist/components/ui/feed/index.js"
191
+ },
192
+ "./feed/styles.css": {
193
+ "default": "./dist/components/ui/feed/feed.css"
194
+ },
195
+ "./field": {
196
+ "types": "./dist/components/ui/field/index.d.ts",
197
+ "import": "./dist/components/ui/field/index.js"
198
+ },
199
+ "./field/styles.css": {
200
+ "default": "./dist/components/ui/field/field.css"
201
+ },
202
+ "./form": {
203
+ "types": "./dist/components/ui/form/index.d.ts",
204
+ "import": "./dist/components/ui/form/index.js"
205
+ },
206
+ "./form/styles.css": {
207
+ "default": "./dist/components/ui/form/form.css"
208
+ },
209
+ "./grid": {
210
+ "types": "./dist/components/ui/grid/index.d.ts",
211
+ "import": "./dist/components/ui/grid/index.js"
212
+ },
213
+ "./grid/styles.css": {
214
+ "default": "./dist/components/ui/grid/grid.css"
215
+ },
216
+ "./input": {
217
+ "types": "./dist/components/ui/input/index.d.ts",
218
+ "import": "./dist/components/ui/input/index.js"
219
+ },
220
+ "./input/styles.css": {
221
+ "default": "./dist/components/ui/input/input.css"
222
+ },
223
+ "./label": {
224
+ "types": "./dist/components/ui/label/index.d.ts",
225
+ "import": "./dist/components/ui/label/index.js"
226
+ },
227
+ "./label/styles.css": {
228
+ "default": "./dist/components/ui/label/label.css"
229
+ },
230
+ "./listbox": {
231
+ "types": "./dist/components/ui/listbox/index.d.ts",
232
+ "import": "./dist/components/ui/listbox/index.js"
233
+ },
234
+ "./listbox/styles.css": {
235
+ "default": "./dist/components/ui/listbox/listbox.css"
236
+ },
237
+ "./menu-button": {
238
+ "types": "./dist/components/ui/menu-button/index.d.ts",
239
+ "import": "./dist/components/ui/menu-button/index.js"
240
+ },
241
+ "./menu-button/styles.css": {
242
+ "default": "./dist/components/ui/menu-button/menu-button.css"
243
+ },
244
+ "./menubar": {
245
+ "types": "./dist/components/ui/menubar/index.d.ts",
246
+ "import": "./dist/components/ui/menubar/index.js"
247
+ },
248
+ "./menubar/styles.css": {
249
+ "default": "./dist/components/ui/menubar/menubar.css"
250
+ },
251
+ "./meter": {
252
+ "types": "./dist/components/ui/meter/index.d.ts",
253
+ "import": "./dist/components/ui/meter/index.js"
254
+ },
255
+ "./meter/styles.css": {
256
+ "default": "./dist/components/ui/meter/meter.css"
257
+ },
258
+ "./navigation-menu": {
259
+ "types": "./dist/components/ui/navigation-menu/index.d.ts",
260
+ "import": "./dist/components/ui/navigation-menu/index.js"
261
+ },
262
+ "./navigation-menu/styles.css": {
263
+ "default": "./dist/components/ui/navigation-menu/navigation-menu.css"
264
+ },
265
+ "./radio-group": {
266
+ "types": "./dist/components/ui/radio-group/index.d.ts",
267
+ "import": "./dist/components/ui/radio-group/index.js"
268
+ },
269
+ "./radio-group/styles.css": {
270
+ "default": "./dist/components/ui/radio-group/radio-group.css"
271
+ },
272
+ "./sidebar": {
273
+ "types": "./dist/components/ui/sidebar/index.d.ts",
274
+ "import": "./dist/components/ui/sidebar/index.js"
275
+ },
276
+ "./sidebar/styles.css": {
277
+ "default": "./dist/components/ui/sidebar/sidebar.css"
278
+ },
279
+ "./slider": {
280
+ "types": "./dist/components/ui/slider/index.d.ts",
281
+ "import": "./dist/components/ui/slider/index.js"
282
+ },
283
+ "./slider/styles.css": {
284
+ "default": "./dist/components/ui/slider/slider.css"
285
+ },
286
+ "./spinbutton": {
287
+ "types": "./dist/components/ui/spinbutton/index.d.ts",
288
+ "import": "./dist/components/ui/spinbutton/index.js"
289
+ },
290
+ "./spinbutton/styles.css": {
291
+ "default": "./dist/components/ui/spinbutton/spinbutton.css"
292
+ },
293
+ "./switch": {
294
+ "types": "./dist/components/ui/switch/index.d.ts",
295
+ "import": "./dist/components/ui/switch/index.js"
296
+ },
297
+ "./switch/styles.css": {
298
+ "default": "./dist/components/ui/switch/switch.css"
299
+ },
300
+ "./tabs": {
301
+ "types": "./dist/components/ui/tabs/index.d.ts",
302
+ "import": "./dist/components/ui/tabs/index.js"
303
+ },
304
+ "./tabs/styles.css": {
305
+ "default": "./dist/components/ui/tabs/tabs.css"
306
+ },
307
+ "./textarea": {
308
+ "types": "./dist/components/ui/textarea/index.d.ts",
309
+ "import": "./dist/components/ui/textarea/index.js"
310
+ },
311
+ "./textarea/styles.css": {
312
+ "default": "./dist/components/ui/textarea/textarea.css"
313
+ },
314
+ "./toast": {
315
+ "types": "./dist/components/ui/toast/index.d.ts",
316
+ "import": "./dist/components/ui/toast/index.js"
317
+ },
318
+ "./toast/styles.css": {
319
+ "default": "./dist/components/ui/toast/toast.css"
320
+ },
321
+ "./toolbar": {
322
+ "types": "./dist/components/ui/toolbar/index.d.ts",
323
+ "import": "./dist/components/ui/toolbar/index.js"
324
+ },
325
+ "./toolbar/styles.css": {
326
+ "default": "./dist/components/ui/toolbar/toolbar.css"
327
+ },
328
+ "./tooltip": {
329
+ "types": "./dist/components/ui/tooltip/index.d.ts",
330
+ "import": "./dist/components/ui/tooltip/index.js"
331
+ },
332
+ "./tooltip/styles.css": {
333
+ "default": "./dist/components/ui/tooltip/tooltip.css"
334
+ },
335
+ "./tree": {
336
+ "types": "./dist/components/ui/tree/index.d.ts",
337
+ "import": "./dist/components/ui/tree/index.js"
338
+ },
339
+ "./tree/styles.css": {
340
+ "default": "./dist/components/ui/tree/tree.css"
341
+ },
342
+ "./treegrid": {
343
+ "types": "./dist/components/ui/treegrid/index.d.ts",
344
+ "import": "./dist/components/ui/treegrid/index.js"
345
+ },
346
+ "./treegrid/styles.css": {
347
+ "default": "./dist/components/ui/treegrid/treegrid.css"
348
+ },
349
+ "./window-splitter": {
350
+ "types": "./dist/components/ui/window-splitter/index.d.ts",
351
+ "import": "./dist/components/ui/window-splitter/index.js"
352
+ },
353
+ "./window-splitter/styles.css": {
354
+ "default": "./dist/components/ui/window-splitter/window-splitter.css"
355
+ }
356
+ },
357
+ "scripts": {
358
+ "build:framework": "pnpm --filter @ecopages/storybook-radiant-vite build",
359
+ "lint": "oxlint",
360
+ "storybook": "pnpm run build:framework && pnpm exec storybook dev -p 6006",
361
+ "build-storybook": "pnpm run build:framework && pnpm exec storybook build",
362
+ "test": "vitest run",
363
+ "clean": "rm -rf dist",
364
+ "generate:exports": "node --import tsx ./scripts/generate-exports.ts",
365
+ "build:files": "node --import tsx ./scripts/build.ts",
366
+ "build:types": "tsc -p tsconfig.build.json",
367
+ "build:lib": "pnpm run generate:exports && pnpm run clean && pnpm run build:files && pnpm run build:types && pnpm run copy-styles",
368
+ "copy-styles": "node --import tsx ./scripts/copy-styles.ts",
369
+ "typecheck": "tsc --noEmit -p tsconfig.app.json"
370
+ }
371
+ }