@ecopages/radiant-ui 0.1.0-rc.7 → 0.1.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 (238) hide show
  1. package/README.md +11 -3
  2. package/dist/components/ui/alert/alert.d.ts +2 -4
  3. package/dist/components/ui/alert/alert.script.d.ts +25 -15
  4. package/dist/components/ui/autocomplete/autocomplete.css +1 -2
  5. package/dist/components/ui/autocomplete/autocomplete.d.ts +8 -3
  6. package/dist/components/ui/autocomplete/autocomplete.script.d.ts +29 -4
  7. package/dist/components/ui/avatar/avatar.css +10 -8
  8. package/dist/components/ui/avatar/avatar.d.ts +3 -1
  9. package/dist/components/ui/breadcrumb/breadcrumb.d.ts +11 -11
  10. package/dist/components/ui/breadcrumb/breadcrumb.script.d.ts +10 -10
  11. package/dist/components/ui/calendar/calendar.css +10 -5
  12. package/dist/components/ui/calendar/calendar.script.d.ts +24 -21
  13. package/dist/components/ui/calendar/index.js +1 -1
  14. package/dist/components/ui/calendar/index.js.map +3 -3
  15. package/dist/components/ui/carousel/carousel-autoplay.d.ts +22 -0
  16. package/dist/components/ui/carousel/carousel-swipe.d.ts +17 -0
  17. package/dist/components/ui/carousel/carousel-window.d.ts +63 -0
  18. package/dist/components/ui/carousel/carousel.css +71 -18
  19. package/dist/components/ui/carousel/carousel.d.ts +8 -4
  20. package/dist/components/ui/carousel/carousel.script.d.ts +73 -40
  21. package/dist/components/ui/carousel/index.js +1 -1
  22. package/dist/components/ui/carousel/index.js.map +4 -4
  23. package/dist/components/ui/checkbox/checkbox.d.ts +11 -0
  24. package/dist/components/ui/checkbox/checkbox.script.d.ts +31 -8
  25. package/dist/components/ui/checkbox/index.js +1 -1
  26. package/dist/components/ui/checkbox/index.js.map +4 -4
  27. package/dist/components/ui/checkbox-group/checkbox-group.d.ts +4 -2
  28. package/dist/components/ui/checkbox-group/checkbox-group.script.d.ts +39 -20
  29. package/dist/components/ui/checkbox-group/index.js +1 -1
  30. package/dist/components/ui/checkbox-group/index.js.map +4 -4
  31. package/dist/components/ui/combobox/combobox.css +9 -1
  32. package/dist/components/ui/combobox/combobox.d.ts +12 -4
  33. package/dist/components/ui/combobox/combobox.script.d.ts +74 -25
  34. package/dist/components/ui/combobox/index.d.ts +2 -2
  35. package/dist/components/ui/combobox/index.js +1 -1
  36. package/dist/components/ui/combobox/index.js.map +4 -4
  37. package/dist/components/ui/cycle-toggle/cycle-toggle.d.ts +6 -2
  38. package/dist/components/ui/cycle-toggle/cycle-toggle.script.d.ts +35 -4
  39. package/dist/components/ui/cycle-toggle/index.js +1 -1
  40. package/dist/components/ui/cycle-toggle/index.js.map +3 -3
  41. package/dist/components/ui/date-field/date-field.css +13 -17
  42. package/dist/components/ui/date-field/date-field.d.ts +10 -8
  43. package/dist/components/ui/date-field/date-field.script.d.ts +35 -52
  44. package/dist/components/ui/date-field/index.js +1 -1
  45. package/dist/components/ui/date-field/index.js.map +4 -4
  46. package/dist/components/ui/date-input/date-input-segment-dom.d.ts +24 -0
  47. package/dist/components/ui/date-input/date-input.css +50 -0
  48. package/dist/components/ui/date-input/date-input.d.ts +8 -0
  49. package/dist/components/ui/date-input/date-input.script.d.ts +137 -0
  50. package/dist/components/ui/date-input/index.d.ts +2 -0
  51. package/dist/components/ui/date-input/index.js +2 -0
  52. package/dist/components/ui/date-input/index.js.map +7 -0
  53. package/dist/components/ui/date-range-picker/date-range-picker.css +18 -19
  54. package/dist/components/ui/date-range-picker/date-range-picker.d.ts +11 -9
  55. package/dist/components/ui/date-range-picker/date-range-picker.script.d.ts +42 -51
  56. package/dist/components/ui/date-range-picker/index.js +1 -1
  57. package/dist/components/ui/date-range-picker/index.js.map +4 -4
  58. package/dist/components/ui/dialog/dialog.css +18 -14
  59. package/dist/components/ui/dialog/dialog.d.ts +6 -0
  60. package/dist/components/ui/dialog/dialog.script.d.ts +43 -10
  61. package/dist/components/ui/dialog/index.js +1 -1
  62. package/dist/components/ui/dialog/index.js.map +4 -4
  63. package/dist/components/ui/disclosure/disclosure-group.script.d.ts +19 -3
  64. package/dist/components/ui/disclosure/disclosure.css +3 -6
  65. package/dist/components/ui/disclosure/disclosure.d.ts +23 -7
  66. package/dist/components/ui/disclosure/disclosure.script.d.ts +31 -7
  67. package/dist/components/ui/disclosure/index.d.ts +1 -1
  68. package/dist/components/ui/disclosure/index.js +1 -1
  69. package/dist/components/ui/disclosure/index.js.map +4 -4
  70. package/dist/components/ui/field/field-description.d.ts +1 -0
  71. package/dist/components/ui/field/field-error.d.ts +2 -2
  72. package/dist/components/ui/field/field.d.ts +4 -4
  73. package/dist/components/ui/field/field.script.d.ts +54 -24
  74. package/dist/components/ui/field/index.js +1 -1
  75. package/dist/components/ui/field/index.js.map +4 -4
  76. package/dist/components/ui/form/control-protocol.d.ts +38 -1
  77. package/dist/components/ui/form/form-context.d.ts +3 -0
  78. package/dist/components/ui/form/form.d.ts +6 -0
  79. package/dist/components/ui/form/form.script.d.ts +29 -12
  80. package/dist/components/ui/form/index.d.ts +2 -1
  81. package/dist/components/ui/form/index.js +1 -1
  82. package/dist/components/ui/form/index.js.map +4 -4
  83. package/dist/components/ui/grid/grid.d.ts +4 -3
  84. package/dist/components/ui/grid/grid.script.d.ts +19 -11
  85. package/dist/components/ui/hover-card/hover-card.css +12 -101
  86. package/dist/components/ui/hover-card/hover-card.d.ts +7 -2
  87. package/dist/components/ui/hover-card/hover-card.script.d.ts +36 -5
  88. package/dist/components/ui/hover-card/index.js +1 -1
  89. package/dist/components/ui/hover-card/index.js.map +4 -4
  90. package/dist/components/ui/input/index.js +1 -1
  91. package/dist/components/ui/input/index.js.map +4 -4
  92. package/dist/components/ui/input/input.css +1 -1
  93. package/dist/components/ui/knob/index.js +1 -1
  94. package/dist/components/ui/knob/index.js.map +3 -3
  95. package/dist/components/ui/knob/knob.css +6 -1
  96. package/dist/components/ui/knob/knob.d.ts +4 -4
  97. package/dist/components/ui/knob/knob.script.d.ts +55 -20
  98. package/dist/components/ui/label/index.js +1 -1
  99. package/dist/components/ui/label/index.js.map +4 -4
  100. package/dist/components/ui/label/label.d.ts +2 -1
  101. package/dist/components/ui/listbox/index.d.ts +2 -2
  102. package/dist/components/ui/listbox/index.js +1 -1
  103. package/dist/components/ui/listbox/index.js.map +4 -4
  104. package/dist/components/ui/listbox/listbox.css +14 -0
  105. package/dist/components/ui/listbox/listbox.d.ts +16 -2
  106. package/dist/components/ui/listbox/listbox.script.d.ts +55 -12
  107. package/dist/components/ui/menu-button/index.js +1 -1
  108. package/dist/components/ui/menu-button/index.js.map +4 -4
  109. package/dist/components/ui/menu-button/menu-button.d.ts +2 -2
  110. package/dist/components/ui/menu-button/menu-button.script.d.ts +30 -27
  111. package/dist/components/ui/menubar/index.js +1 -1
  112. package/dist/components/ui/menubar/index.js.map +4 -4
  113. package/dist/components/ui/menubar/menubar.script.d.ts +41 -15
  114. package/dist/components/ui/meter/index.js +1 -1
  115. package/dist/components/ui/meter/index.js.map +3 -3
  116. package/dist/components/ui/meter/meter.css +27 -2
  117. package/dist/components/ui/meter/meter.script.d.ts +19 -14
  118. package/dist/components/ui/navigation-menu/index.d.ts +1 -1
  119. package/dist/components/ui/navigation-menu/index.js +1 -1
  120. package/dist/components/ui/navigation-menu/index.js.map +4 -4
  121. package/dist/components/ui/navigation-menu/navigation-menu.css +32 -34
  122. package/dist/components/ui/navigation-menu/navigation-menu.d.ts +34 -5
  123. package/dist/components/ui/navigation-menu/navigation-menu.script.d.ts +93 -12
  124. package/dist/components/ui/number-field/index.js +1 -1
  125. package/dist/components/ui/number-field/index.js.map +4 -4
  126. package/dist/components/ui/number-field/number-field.css +1 -1
  127. package/dist/components/ui/number-field/number-field.d.ts +8 -19
  128. package/dist/components/ui/number-field/number-field.script.d.ts +30 -9
  129. package/dist/components/ui/pagination/index.d.ts +1 -1
  130. package/dist/components/ui/pagination/index.js +1 -1
  131. package/dist/components/ui/pagination/index.js.map +3 -3
  132. package/dist/components/ui/pagination/pagination.css +50 -13
  133. package/dist/components/ui/pagination/pagination.d.ts +33 -9
  134. package/dist/components/ui/pagination/pagination.script.d.ts +29 -9
  135. package/dist/components/ui/popover/index.js +1 -1
  136. package/dist/components/ui/popover/index.js.map +4 -4
  137. package/dist/components/ui/popover/popover.d.ts +17 -1
  138. package/dist/components/ui/popover/popover.script.d.ts +57 -9
  139. package/dist/components/ui/radio-group/index.js +1 -1
  140. package/dist/components/ui/radio-group/index.js.map +4 -4
  141. package/dist/components/ui/radio-group/radio-group.d.ts +2 -2
  142. package/dist/components/ui/radio-group/radio-group.script.d.ts +35 -16
  143. package/dist/components/ui/select/index.d.ts +2 -2
  144. package/dist/components/ui/select/index.js +1 -1
  145. package/dist/components/ui/select/index.js.map +4 -4
  146. package/dist/components/ui/select/select.css +8 -6
  147. package/dist/components/ui/select/select.d.ts +18 -9
  148. package/dist/components/ui/select/select.script.d.ts +74 -26
  149. package/dist/components/ui/shared/calendar-popover-behavior.d.ts +27 -0
  150. package/dist/components/ui/shared/control-toggle.css +8 -4
  151. package/dist/components/ui/shared/field-label.d.ts +5 -0
  152. package/dist/components/ui/shared/listbox-host-controller.d.ts +41 -0
  153. package/dist/components/ui/shared/listbox-option.d.ts +4 -0
  154. package/dist/components/ui/shared/multi-value.d.ts +23 -1
  155. package/dist/components/ui/shared/numeric-range.d.ts +8 -0
  156. package/dist/components/ui/shared/popover.css +10 -99
  157. package/dist/components/ui/sidebar/index.d.ts +2 -1
  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.d.ts +12 -0
  161. package/dist/components/ui/sidebar/sidebar-trigger.script.d.ts +52 -31
  162. package/dist/components/ui/sidebar/sidebar.css +67 -61
  163. package/dist/components/ui/sidebar/sidebar.d.ts +9 -4
  164. package/dist/components/ui/sidebar/sidebar.script.d.ts +42 -20
  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.css +5 -5
  168. package/dist/components/ui/slider/slider.d.ts +20 -10
  169. package/dist/components/ui/slider/slider.script.d.ts +103 -27
  170. package/dist/components/ui/switch/index.js +1 -1
  171. package/dist/components/ui/switch/index.js.map +4 -4
  172. package/dist/components/ui/switch/switch.css +28 -22
  173. package/dist/components/ui/switch/switch.d.ts +13 -0
  174. package/dist/components/ui/switch/switch.script.d.ts +34 -8
  175. package/dist/components/ui/table/index.js +1 -1
  176. package/dist/components/ui/table/index.js.map +4 -4
  177. package/dist/components/ui/table/table.d.ts +9 -7
  178. package/dist/components/ui/table/table.script.d.ts +55 -12
  179. package/dist/components/ui/tabs/tabs.css +18 -12
  180. package/dist/components/ui/tabs/tabs.d.ts +7 -4
  181. package/dist/components/ui/tabs/tabs.script.d.ts +39 -9
  182. package/dist/components/ui/tag-group/index.js +1 -1
  183. package/dist/components/ui/tag-group/index.js.map +4 -4
  184. package/dist/components/ui/tag-group/tag-group.d.ts +19 -7
  185. package/dist/components/ui/tag-group/tag-group.script.d.ts +58 -10
  186. package/dist/components/ui/textarea/index.js +1 -1
  187. package/dist/components/ui/textarea/index.js.map +4 -4
  188. package/dist/components/ui/textarea/textarea.css +1 -1
  189. package/dist/components/ui/toast/index.js +1 -1
  190. package/dist/components/ui/toast/index.js.map +4 -4
  191. package/dist/components/ui/toast/toast.css +35 -32
  192. package/dist/components/ui/toast/toast.script.d.ts +17 -31
  193. package/dist/components/ui/toast/toaster.script.d.ts +24 -12
  194. package/dist/components/ui/toc/toc.script.d.ts +19 -8
  195. package/dist/components/ui/toolbar/toolbar.d.ts +5 -0
  196. package/dist/components/ui/toolbar/toolbar.script.d.ts +24 -4
  197. package/dist/components/ui/tooltip/index.js +1 -1
  198. package/dist/components/ui/tooltip/index.js.map +4 -4
  199. package/dist/components/ui/tooltip/tooltip.css +14 -94
  200. package/dist/components/ui/tooltip/tooltip.d.ts +7 -0
  201. package/dist/components/ui/tooltip/tooltip.script.d.ts +36 -6
  202. package/dist/components/ui/tree/tree.d.ts +4 -3
  203. package/dist/components/ui/tree/tree.script.d.ts +28 -15
  204. package/dist/components/ui/treegrid/treegrid.d.ts +5 -3
  205. package/dist/components/ui/treegrid/treegrid.script.d.ts +33 -14
  206. package/dist/components/ui/window-splitter/index.d.ts +1 -1
  207. package/dist/components/ui/window-splitter/index.js +1 -1
  208. package/dist/components/ui/window-splitter/index.js.map +3 -3
  209. package/dist/components/ui/window-splitter/window-splitter.d.ts +10 -1
  210. package/dist/components/ui/window-splitter/window-splitter.script.d.ts +26 -8
  211. package/dist/index.d.ts +2 -0
  212. package/dist/index.js +1 -1
  213. package/dist/index.js.map +4 -4
  214. package/dist/lib/icons/check.d.ts +3 -0
  215. package/dist/lib/icons/chevron-down.d.ts +0 -1
  216. package/dist/lib/icons/index.d.ts +2 -0
  217. package/dist/lib/icons/x.d.ts +5 -0
  218. package/dist/lib/intl-date/index.d.ts +4 -2
  219. package/dist/lib/intl-date/segment-editing.d.ts +34 -0
  220. package/dist/lib/intl-date/segments.d.ts +26 -4
  221. package/dist/lib/non-empty.d.ts +6 -0
  222. package/dist/lib/unique-id.d.ts +11 -0
  223. package/dist/lib/viewport/breakpoints.d.ts +6 -0
  224. package/dist/lib/viewport/mobile-layout.d.ts +15 -0
  225. package/dist/styles/primitives.css +14 -11
  226. package/dist/styles/radiant-ui-core.css +10 -0
  227. package/dist/styles/radiant-ui.css +40 -11
  228. package/dist/styles/style-dependencies.json +38 -13
  229. package/dist/styles/styles.css +485 -252
  230. package/dist/styles/tailwind.css +40 -101
  231. package/dist/styles/tokens/presets/colors/aurora.css +2 -0
  232. package/dist/styles/tokens/presets/colors/basalt.css +2 -0
  233. package/dist/styles/tokens/presets/colors/ember.css +2 -0
  234. package/dist/styles/tokens/presets/colors/glacier.css +2 -0
  235. package/dist/styles/tokens/semantic.css +1 -0
  236. package/dist/styles/tokens/system.css +11 -3
  237. package/dist/styles/tokens/typography/default.css +8 -0
  238. package/package.json +27 -13
@@ -186,6 +186,12 @@
186
186
  .top-0 {
187
187
  top: 0px;
188
188
  }
189
+ .right-inset {
190
+ right: var(--spacing-inset, var(--space-inset));
191
+ }
192
+ .left-inset {
193
+ left: var(--spacing-inset, var(--space-inset));
194
+ }
189
195
  .z-10 {
190
196
  z-index: 10;
191
197
  }
@@ -418,6 +424,9 @@
418
424
  .overflow-y-auto {
419
425
  overflow-y: auto;
420
426
  }
427
+ .rounded {
428
+ border-radius: 0.25rem;
429
+ }
421
430
  .rounded-container {
422
431
  border-radius: var(--radius-container, var(--radius-container));
423
432
  }
@@ -607,6 +616,9 @@
607
616
  .text-warning {
608
617
  color: var(--color-warning, var(--warning));
609
618
  }
619
+ .underline {
620
+ text-decoration-line: underline;
621
+ }
610
622
  .opacity-60 {
611
623
  opacity: 60%;
612
624
  }
@@ -621,14 +633,6 @@
621
633
  --tw-shadow: var(--shadow-overlay);
622
634
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
623
635
  }
624
- .shadow-modal {
625
- --tw-shadow: var(--shadow-modal);
626
- box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
627
- }
628
- .shadow-overlay {
629
- --tw-shadow: var(--shadow-overlay);
630
- box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
631
- }
632
636
  .ring {
633
637
  --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
634
638
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -641,6 +645,10 @@
641
645
  --tw-blur: blur(8px);
642
646
  filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
643
647
  }
648
+ .invert {
649
+ --tw-invert: invert(100%);
650
+ filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
651
+ }
644
652
  .filter {
645
653
  filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
646
654
  }
@@ -907,6 +915,7 @@
907
915
  --text-5xl: 3rem;
908
916
  --text-label: 0.875rem;
909
917
  --text-control: 0.875rem;
918
+ --text-control-input: 1rem;
910
919
  --leading-body: 1.5;
911
920
  --leading-relaxed: 1.625;
912
921
  --leading-compact: 1.25;
@@ -914,6 +923,13 @@
914
923
  --weight-medium: 500;
915
924
  --weight-semibold: 600;
916
925
  --tracking-wide: 0.025em;
926
+ }
927
+ @media (min-width: 640px) {
928
+ :root {
929
+ --text-control-input: var(--text-control);
930
+ }
931
+ }
932
+ :root {
917
933
  --duration-fast: 150ms;
918
934
  --duration-normal: 200ms;
919
935
  --duration-slow: 300ms;
@@ -924,6 +940,11 @@
924
940
  --border-width-hairline: 1px;
925
941
  --border-width-thin: 1px;
926
942
  --border-width-thick: 2px;
943
+ --rui-track-mix: 22%;
944
+ --rui-track-fill: var(--on-background);
945
+ @supports (color: color-mix(in lab, red, red)) {
946
+ --rui-track-fill: color-mix(in oklab, var(--on-background) var(--rui-track-mix), transparent);
947
+ }
927
948
  --focus-ring-width: 2px;
928
949
  --focus-ring-offset: 2px;
929
950
  --opacity-disabled: 0.5;
@@ -933,9 +954,9 @@
933
954
  --z-overlay: 30;
934
955
  --z-modal: 40;
935
956
  --z-toast: 50;
936
- --size-control-sm: 2rem;
937
- --size-control-md: 2.5rem;
938
- --size-control-lg: 3rem;
957
+ --size-control-sm: var(--space-8, 2rem);
958
+ --size-control-md: var(--space-10, 2.5rem);
959
+ --size-control-lg: var(--space-12, 3rem);
939
960
  --size-icon-sm: 1rem;
940
961
  --size-icon-md: 1.25rem;
941
962
  }
@@ -1014,6 +1035,7 @@ html[data-rui-colors='glacier'], html:not([data-rui-colors]) {
1014
1035
  --border: color-mix(in oklab, var(--color-glacier-white-900) 15%, transparent);
1015
1036
  }
1016
1037
  --focus-ring: var(--color-night-sky-500);
1038
+ --on-focus-ring: var(--on-primary);
1017
1039
  --link: var(--color-navy-blue-700);
1018
1040
  --overlay: oklch(0% 0 0 / 0.45);
1019
1041
  --background-code: var(--color-glacier-white-100);
@@ -1078,6 +1100,7 @@ html.dark[data-rui-colors='glacier'], html.dark:not([data-rui-colors]) {
1078
1100
  --border: color-mix(in oklab, var(--color-glacier-white-50) 18%, transparent);
1079
1101
  }
1080
1102
  --focus-ring: var(--color-night-sky-400);
1103
+ --on-focus-ring: var(--on-primary);
1081
1104
  --link: var(--color-navy-blue-400);
1082
1105
  --overlay: oklch(0% 0 0 / 0.65);
1083
1106
  --background-code: var(--color-glacier-white-900);
@@ -1173,6 +1196,7 @@ html[data-rui-colors='aurora'] {
1173
1196
  --on-background: var(--color-black);
1174
1197
  --border: var(--color-pale-sky-400);
1175
1198
  --focus-ring: var(--color-havelock-blue-500);
1199
+ --on-focus-ring: var(--on-primary);
1176
1200
  --link: var(--color-havelock-blue-700);
1177
1201
  --overlay: oklch(0% 0 0 / 0.4);
1178
1202
  --background-code: var(--color-pale-sky-900);
@@ -1250,6 +1274,7 @@ html.dark[data-rui-colors='aurora'] {
1250
1274
  --on-background: var(--color-white);
1251
1275
  --border: var(--color-pale-sky-700);
1252
1276
  --focus-ring: var(--color-havelock-blue-400);
1277
+ --on-focus-ring: var(--on-primary);
1253
1278
  --link: var(--color-havelock-blue-300);
1254
1279
  --overlay: oklch(0% 0 0 / 0.6);
1255
1280
  --background-code: var(--color-pale-sky-950);
@@ -1324,6 +1349,7 @@ html[data-rui-colors='basalt'] {
1324
1349
  --on-background: var(--color-basalt-900);
1325
1350
  --border: var(--color-basalt-400);
1326
1351
  --focus-ring: var(--color-carbon-blue-500);
1352
+ --on-focus-ring: var(--on-primary);
1327
1353
  --link: var(--color-carbon-blue-600);
1328
1354
  --overlay: oklch(0% 0 0 / 0.5);
1329
1355
  --background-code: var(--color-basalt-900);
@@ -1380,6 +1406,7 @@ html.dark[data-rui-colors='basalt'] {
1380
1406
  --on-background: var(--color-basalt-50);
1381
1407
  --border: var(--color-basalt-700);
1382
1408
  --focus-ring: var(--color-carbon-blue-400);
1409
+ --on-focus-ring: var(--on-primary);
1383
1410
  --link: var(--color-carbon-blue-400);
1384
1411
  --overlay: oklch(0% 0 0 / 0.7);
1385
1412
  --background-code: var(--color-basalt-975);
@@ -1457,6 +1484,7 @@ html[data-rui-colors='ember'] {
1457
1484
  --border: color-mix(in oklab, var(--color-glacier-white-900) 12%, transparent);
1458
1485
  }
1459
1486
  --focus-ring: var(--color-scarlet-500);
1487
+ --on-focus-ring: var(--on-primary);
1460
1488
  --link: var(--color-scarlet-700);
1461
1489
  --overlay: oklch(0% 0 0 / 0.42);
1462
1490
  --background-code: var(--color-glacier-white-100);
@@ -1523,6 +1551,7 @@ html.dark[data-rui-colors='ember'] {
1523
1551
  --border: color-mix(in oklab, var(--color-glacier-white-50) 16%, transparent);
1524
1552
  }
1525
1553
  --focus-ring: var(--color-scarlet-400);
1554
+ --on-focus-ring: var(--on-primary);
1526
1555
  --link: var(--color-scarlet-400);
1527
1556
  --overlay: oklch(0% 0 0 / 0.62);
1528
1557
  --background-code: var(--color-glacier-white-900);
@@ -1537,96 +1566,6 @@ html.dark[data-rui-colors='ember'] {
1537
1566
  :root {
1538
1567
  color-scheme: light;
1539
1568
  }
1540
- html[data-rui-spacing='default'], html:not([data-rui-spacing]) {
1541
- --space-1: 0.25rem;
1542
- --space-2: 0.5rem;
1543
- --space-3: 0.75rem;
1544
- --space-4: 1rem;
1545
- --space-5: 1.25rem;
1546
- --space-6: 1.5rem;
1547
- --space-8: 2rem;
1548
- --space-10: 2.5rem;
1549
- --space-12: 3rem;
1550
- --space-16: 4rem;
1551
- --space-control-x: var(--space-3);
1552
- --space-control-y: var(--space-2);
1553
- --space-inline: var(--space-2);
1554
- --space-stack: var(--space-4);
1555
- --space-inset: var(--space-4);
1556
- }
1557
- html[data-rui-spacing='compact'] {
1558
- --space-1: 0.125rem;
1559
- --space-2: 0.25rem;
1560
- --space-3: 0.5rem;
1561
- --space-4: 0.75rem;
1562
- --space-5: 1rem;
1563
- --space-6: 1.25rem;
1564
- --space-8: 1.5rem;
1565
- --space-10: 2rem;
1566
- --space-12: 2.5rem;
1567
- --space-16: 3rem;
1568
- --space-control-x: var(--space-3);
1569
- --space-control-y: var(--space-2);
1570
- --space-inline: var(--space-2);
1571
- --space-stack: var(--space-3);
1572
- --space-inset: var(--space-4);
1573
- }
1574
- html[data-rui-spacing='wide'] {
1575
- --space-1: 0.375rem;
1576
- --space-2: 0.625rem;
1577
- --space-3: 0.875rem;
1578
- --space-4: 1.25rem;
1579
- --space-5: 1.5rem;
1580
- --space-6: 1.875rem;
1581
- --space-8: 2.5rem;
1582
- --space-10: 3rem;
1583
- --space-12: 3.75rem;
1584
- --space-16: 5rem;
1585
- --space-control-x: var(--space-4);
1586
- --space-control-y: var(--space-3);
1587
- --space-inline: var(--space-3);
1588
- --space-stack: var(--space-6);
1589
- --space-inset: var(--space-6);
1590
- }
1591
- html[data-rui-radius='default'], html:not([data-rui-radius]) {
1592
- --border-radius-xs: 0.125rem;
1593
- --border-radius-sm: 0.25rem;
1594
- --border-radius-md: 0.375rem;
1595
- --border-radius-lg: 0.5rem;
1596
- --border-radius-xl: 0.75rem;
1597
- --border-radius-2xl: 1rem;
1598
- --border-radius-3xl: 1.5rem;
1599
- --border-radius-full: 9999px;
1600
- --radius-control: var(--border-radius-sm);
1601
- --radius-container: var(--border-radius-md);
1602
- --radius-pill: var(--border-radius-full);
1603
- }
1604
- html[data-rui-radius='soft'] {
1605
- --border-radius-xs: 0.25rem;
1606
- --border-radius-sm: 0.5rem;
1607
- --border-radius-md: 0.75rem;
1608
- --border-radius-lg: 1rem;
1609
- --border-radius-xl: 1.25rem;
1610
- --border-radius-2xl: 1.5rem;
1611
- --border-radius-3xl: 2rem;
1612
- --border-radius-full: 9999px;
1613
- --radius-control: var(--border-radius-md);
1614
- --radius-container: var(--border-radius-lg);
1615
- --radius-pill: var(--border-radius-full);
1616
- }
1617
- html[data-rui-radius='sharp'] {
1618
- --border-radius-xs: 0;
1619
- --border-radius-sm: 0;
1620
- --border-radius-md: 0;
1621
- --border-radius-lg: 0;
1622
- --border-radius-xl: 0;
1623
- --border-radius-2xl: 0;
1624
- --border-radius-3xl: 0;
1625
- --border-radius-full: 9999px;
1626
- --radius-control: 0;
1627
- --radius-container: 0;
1628
- --radius-pill: var(--border-radius-full);
1629
- }
1630
1569
  @layer components {
1631
1570
  .rui-button {
1632
1571
  display: inline-flex;
@@ -79,6 +79,7 @@ html[data-rui-colors='aurora'] {
79
79
 
80
80
  --border: var(--color-pale-sky-400);
81
81
  --focus-ring: var(--color-havelock-blue-500);
82
+ --on-focus-ring: var(--on-primary);
82
83
  --link: var(--color-havelock-blue-700);
83
84
  --overlay: oklch(0% 0 0 / 0.4);
84
85
 
@@ -146,6 +147,7 @@ html.dark[data-rui-colors='aurora'] {
146
147
 
147
148
  --border: var(--color-pale-sky-700);
148
149
  --focus-ring: var(--color-havelock-blue-400);
150
+ --on-focus-ring: var(--on-primary);
149
151
  --link: var(--color-havelock-blue-300);
150
152
  --overlay: oklch(0% 0 0 / 0.6);
151
153
 
@@ -79,6 +79,7 @@ html[data-rui-colors='basalt'] {
79
79
 
80
80
  --border: var(--color-basalt-400);
81
81
  --focus-ring: var(--color-carbon-blue-500);
82
+ --on-focus-ring: var(--on-primary);
82
83
  --link: var(--color-carbon-blue-600);
83
84
  --overlay: oklch(0% 0 0 / 0.5);
84
85
 
@@ -146,6 +147,7 @@ html.dark[data-rui-colors='basalt'] {
146
147
 
147
148
  --border: var(--color-basalt-700);
148
149
  --focus-ring: var(--color-carbon-blue-400);
150
+ --on-focus-ring: var(--on-primary);
149
151
  --link: var(--color-carbon-blue-400);
150
152
  --overlay: oklch(0% 0 0 / 0.7);
151
153
 
@@ -79,6 +79,7 @@ html[data-rui-colors='ember'] {
79
79
 
80
80
  --border: color-mix(in oklab, var(--color-glacier-white-900) 12%, transparent);
81
81
  --focus-ring: var(--color-scarlet-500);
82
+ --on-focus-ring: var(--on-primary);
82
83
  --link: var(--color-scarlet-700);
83
84
  --overlay: oklch(0% 0 0 / 0.42);
84
85
 
@@ -154,6 +155,7 @@ html.dark[data-rui-colors='ember'] {
154
155
 
155
156
  --border: color-mix(in oklab, var(--color-glacier-white-50) 16%, transparent);
156
157
  --focus-ring: var(--color-scarlet-400);
158
+ --on-focus-ring: var(--on-primary);
157
159
  --link: var(--color-scarlet-400);
158
160
  --overlay: oklch(0% 0 0 / 0.62);
159
161
 
@@ -80,6 +80,7 @@ html:not([data-rui-colors]) {
80
80
 
81
81
  --border: color-mix(in oklab, var(--color-glacier-white-900) 15%, transparent);
82
82
  --focus-ring: var(--color-night-sky-500);
83
+ --on-focus-ring: var(--on-primary);
83
84
  --link: var(--color-navy-blue-700);
84
85
  --overlay: oklch(0% 0 0 / 0.45);
85
86
 
@@ -150,6 +151,7 @@ html.dark:not([data-rui-colors]) {
150
151
 
151
152
  --border: color-mix(in oklab, var(--color-glacier-white-50) 18%, transparent);
152
153
  --focus-ring: var(--color-night-sky-400);
154
+ --on-focus-ring: var(--on-primary);
153
155
  --link: var(--color-navy-blue-400);
154
156
  --overlay: oklch(0% 0 0 / 0.65);
155
157
 
@@ -92,6 +92,7 @@
92
92
 
93
93
  --color-border: var(--border);
94
94
  --color-focus-ring: var(--focus-ring);
95
+ --color-on-focus-ring: var(--on-focus-ring);
95
96
  --color-link: var(--link);
96
97
  --color-overlay: var(--overlay);
97
98
 
@@ -1,5 +1,10 @@
1
1
  /**
2
2
  * Structural system tokens (Tier 3) — shared across all themes.
3
+ *
4
+ * `--size-control-*` aliases `--space-8/10/12` so compact and wide packs
5
+ * change button and input height with padding. Icon sizes stay fixed.
6
+ * `--rui-track-mix` / `--rui-track-fill` size the unfilled slider and knob
7
+ * track against `--on-background`. Optional `--rui-track-color` replaces the fill.
3
8
  */
4
9
  :root {
5
10
  --color-black: oklch(0% 0 0);
@@ -9,6 +14,9 @@
9
14
  --border-width-thin: 1px;
10
15
  --border-width-thick: 2px;
11
16
 
17
+ --rui-track-mix: 22%;
18
+ --rui-track-fill: color-mix(in oklab, var(--on-background) var(--rui-track-mix), transparent);
19
+
12
20
  --focus-ring-width: 2px;
13
21
  --focus-ring-offset: 2px;
14
22
 
@@ -21,9 +29,9 @@
21
29
  --z-modal: 40;
22
30
  --z-toast: 50;
23
31
 
24
- --size-control-sm: 2rem;
25
- --size-control-md: 2.5rem;
26
- --size-control-lg: 3rem;
32
+ --size-control-sm: var(--space-8, 2rem);
33
+ --size-control-md: var(--space-10, 2.5rem);
34
+ --size-control-lg: var(--space-12, 3rem);
27
35
  --size-icon-sm: 1rem;
28
36
  --size-icon-md: 1.25rem;
29
37
  }
@@ -18,6 +18,8 @@
18
18
  --text-5xl: 3rem;
19
19
  --text-label: 0.875rem;
20
20
  --text-control: 0.875rem;
21
+ /* 16px on narrow viewports avoids iOS Safari focus zoom; desktop uses --text-control. */
22
+ --text-control-input: 1rem;
21
23
 
22
24
  --leading-body: 1.5;
23
25
  --leading-relaxed: 1.625;
@@ -30,6 +32,12 @@
30
32
  --tracking-wide: 0.025em;
31
33
  }
32
34
 
35
+ @media (min-width: 640px) {
36
+ :root {
37
+ --text-control-input: var(--text-control);
38
+ }
39
+ }
40
+
33
41
  @theme {
34
42
  --font-sans: var(--font-sans);
35
43
  --font-mono: var(--font-mono);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ecopages/radiant-ui",
3
- "version": "0.1.0-rc.7",
3
+ "version": "0.1.0",
4
4
  "description": "Accessible light-DOM UI components built with @ecopages/radiant",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,12 +17,14 @@
17
17
  ],
18
18
  "sideEffects": [
19
19
  "**/*.css",
20
+ "**/*.script.ts",
21
+ "**/*.script.tsx",
20
22
  "**/index.js"
21
23
  ],
22
24
  "peerDependencies": {
23
- "@ecopages/jsx": ">=0.3.0-rc.4",
24
- "@ecopages/radiant": ">=0.3.0-rc.4",
25
- "@ecopages/signals": ">=0.3.0-rc.4"
25
+ "@ecopages/jsx": ">=0.3.0",
26
+ "@ecopages/radiant": ">=0.3.0",
27
+ "@ecopages/signals": ">=0.3.0"
26
28
  },
27
29
  "devDependencies": {
28
30
  "@babel/core": "^7.28.0",
@@ -54,12 +56,12 @@
54
56
  "typescript": "~7.0.2",
55
57
  "vite": "^8.1.1",
56
58
  "vitest": "^4.1.10",
57
- "@ecopages/jsx": "0.3.0-rc.4",
58
59
  "@ecopages/oxlint-config": "0.0.0",
59
- "@ecopages/radiant": "0.3.0-rc.4",
60
- "@ecopages/signals": "0.3.0-rc.4",
61
- "@ecopages/vite-plugin-radiant": "0.1.0-rc.0",
62
- "@ecopages/storybook-radiant-vite": "0.1.0-rc.0"
60
+ "@ecopages/storybook-radiant-vite": "0.1.0",
61
+ "@ecopages/radiant": "0.3.0",
62
+ "@ecopages/signals": "0.3.0",
63
+ "@ecopages/jsx": "0.3.0",
64
+ "@ecopages/vite-plugin-radiant": "0.1.0"
63
65
  },
64
66
  "exports": {
65
67
  "./package.json": "./package.json",
@@ -75,6 +77,10 @@
75
77
  "types": "./dist/aria.d.ts",
76
78
  "import": "./dist/aria.js"
77
79
  },
80
+ "./icons": {
81
+ "types": "./dist/lib/icons/index.d.ts",
82
+ "import": "./dist/lib/icons/index.js"
83
+ },
78
84
  "./tokens/colors/aurora": {
79
85
  "default": "./dist/styles/tokens/colors/aurora.css"
80
86
  },
@@ -268,6 +274,13 @@
268
274
  "./date-field/styles.css": {
269
275
  "default": "./dist/components/ui/date-field/date-field.css"
270
276
  },
277
+ "./date-input": {
278
+ "types": "./dist/components/ui/date-input/index.d.ts",
279
+ "import": "./dist/components/ui/date-input/index.js"
280
+ },
281
+ "./date-input/styles.css": {
282
+ "default": "./dist/components/ui/date-input/date-input.css"
283
+ },
271
284
  "./date-range-picker": {
272
285
  "types": "./dist/components/ui/date-range-picker/index.d.ts",
273
286
  "import": "./dist/components/ui/date-range-picker/index.js"
@@ -561,20 +574,21 @@
561
574
  ]
562
575
  },
563
576
  "scripts": {
564
- "build:framework": "pnpm --filter @ecopages/storybook-radiant-vite build",
577
+ "build:framework": "pnpm --filter @ecopages/vite-plugin-radiant build:lib && pnpm --filter @ecopages/storybook-radiant-vite build",
565
578
  "lint": "oxlint",
566
579
  "storybook": "pnpm run build:framework && pnpm --filter @ecopages/storybook-radiant-vite exec storybook dev -p 6006 -c ../radiant-ui/.storybook",
567
580
  "build-storybook": "pnpm run build:framework && pnpm --filter @ecopages/storybook-radiant-vite exec storybook build -c ../radiant-ui/.storybook",
568
581
  "test": "vitest run",
569
- "test:all": "pnpm --filter @ecopages/jsx build:lib && pnpm --filter @ecopages/radiant build:lib && pnpm --filter @ecopages/vite-plugin-radiant build:lib && pnpm run build:framework && vitest run",
570
- "test:storybook": "pnpm --filter @ecopages/jsx build:lib && pnpm --filter @ecopages/radiant build:lib && pnpm --filter @ecopages/vite-plugin-radiant build:lib && pnpm run build:framework && vitest run --project=storybook",
582
+ "test:all": "pnpm --filter @ecopages/jsx build:lib && pnpm --filter @ecopages/radiant build:lib && pnpm run build:framework && vitest run",
583
+ "test:storybook": "pnpm --filter @ecopages/jsx build:lib && pnpm --filter @ecopages/radiant build:lib && pnpm run build:framework && vitest run --project=storybook",
571
584
  "test:ssr": "pnpm --filter @ecopages/jsx build:lib && pnpm --filter @ecopages/radiant build:lib && pnpm run build:framework && vitest run --project=ssr && node --import tsx ./scripts/test-storybook-ssr.ts",
572
585
  "test:ssr:smoke": "pnpm --filter @ecopages/jsx build:lib && pnpm --filter @ecopages/radiant build:lib && pnpm run build:framework && node --import tsx ./scripts/test-storybook-ssr.ts --smoke",
573
586
  "clean": "rm -rf dist",
574
587
  "generate:exports": "node --import tsx ./scripts/generate-exports.ts",
575
588
  "build:files": "node --import tsx ./scripts/build.ts",
576
589
  "build:types": "tsc -p tsconfig.build.json",
577
- "build:lib": "pnpm run generate:exports && pnpm run clean && pnpm run build:files && pnpm run build:types && pnpm run copy-styles",
590
+ "build:lib": "pnpm run generate:exports && pnpm run clean && pnpm run build:files && pnpm run build:types && pnpm run copy-styles && pnpm run test:package",
591
+ "test:package": "node --test scripts/package-registration.test.mjs",
578
592
  "copy-styles": "node --import tsx ./scripts/copy-styles.ts",
579
593
  "typecheck": "tsc --noEmit -p tsconfig.app.json"
580
594
  }