@igne-agency/react-web-ui 0.4.0 → 0.6.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 (257) hide show
  1. package/dist/base.css +3 -0
  2. package/dist/components/accordion/accordion.css +21 -21
  3. package/dist/components/accordion/accordion.d.ts +17 -4
  4. package/dist/components/accordion/accordion.js +83 -36
  5. package/dist/components/accordion/accordion.module.js +6 -6
  6. package/dist/components/attachment-tile/attachment-preview.d.ts +56 -13
  7. package/dist/components/attachment-tile/attachment-preview.js +388 -119
  8. package/dist/components/attachment-tile/attachment-tile.css +31 -25
  9. package/dist/components/attachment-tile/attachment-tile.d.ts +32 -10
  10. package/dist/components/attachment-tile/attachment-tile.js +160 -43
  11. package/dist/components/attachment-tile/attachment-tile.module.js +8 -8
  12. package/dist/components/attachment-tile/index.d.ts +1 -1
  13. package/dist/components/avatar/avatar.css +9 -9
  14. package/dist/components/avatar/avatar.d.ts +50 -5
  15. package/dist/components/avatar/avatar.js +178 -64
  16. package/dist/components/avatar/avatar.module.js +3 -3
  17. package/dist/components/avatar-group/avatar-group-context.d.ts +2 -4
  18. package/dist/components/avatar-group/avatar-group-context.js +2 -2
  19. package/dist/components/avatar-group/avatar-group.css +26 -20
  20. package/dist/components/avatar-group/avatar-group.d.ts +85 -27
  21. package/dist/components/avatar-group/avatar-group.js +400 -246
  22. package/dist/components/avatar-group/avatar-group.module.js +8 -8
  23. package/dist/components/breadcrumbs/breadcrumbs.css +12 -12
  24. package/dist/components/breadcrumbs/breadcrumbs.d.ts +69 -23
  25. package/dist/components/breadcrumbs/breadcrumbs.js +299 -248
  26. package/dist/components/breadcrumbs/breadcrumbs.module.js +8 -8
  27. package/dist/components/button/button.css +29 -31
  28. package/dist/components/button/button.d.ts +20 -16
  29. package/dist/components/button/button.js +140 -145
  30. package/dist/components/button/button.module.js +1 -1
  31. package/dist/components/button/index.js +1 -1
  32. package/dist/components/checkbox-field/checkbox-field.js +63 -49
  33. package/dist/components/checkbox-field/checkbox.css +105 -56
  34. package/dist/components/checkbox-field/checkbox.d.ts +3 -2
  35. package/dist/components/checkbox-field/checkbox.js +12 -9
  36. package/dist/components/checkbox-field/checkbox.module.js +4 -4
  37. package/dist/components/checkbox-group-field/checkbox-group-field.js +78 -72
  38. package/dist/components/checkbox-group-field/checkbox-group.css +14 -10
  39. package/dist/components/checkbox-group-field/checkbox-group.d.ts +2 -2
  40. package/dist/components/checkbox-group-field/checkbox-group.js +2 -2
  41. package/dist/components/checkbox-group-field/checkbox-group.module.js +2 -2
  42. package/dist/components/collapsible/collapsible.css +20 -20
  43. package/dist/components/collapsible/collapsible.d.ts +17 -4
  44. package/dist/components/collapsible/collapsible.js +83 -36
  45. package/dist/components/collapsible/collapsible.module.js +5 -5
  46. package/dist/components/combobox-field/combobox-field.js +206 -158
  47. package/dist/components/combobox-field/combobox.css +492 -277
  48. package/dist/components/combobox-field/combobox.d.ts +148 -39
  49. package/dist/components/combobox-field/combobox.js +506 -206
  50. package/dist/components/combobox-field/combobox.module.js +21 -21
  51. package/dist/components/combobox-field/value-state-view.css +5 -5
  52. package/dist/components/combobox-field/value-state-view.module.js +4 -4
  53. package/dist/components/composer/composer-attachments.d.ts +30 -11
  54. package/dist/components/composer/composer-attachments.js +45 -40
  55. package/dist/components/composer/composer-editor.css +40 -35
  56. package/dist/components/composer/composer-editor.d.ts +14 -4
  57. package/dist/components/composer/composer-editor.js +134 -44
  58. package/dist/components/composer/composer-editor.module.js +5 -5
  59. package/dist/components/composer/composer.css +22 -22
  60. package/dist/components/composer/composer.d.ts +13 -2
  61. package/dist/components/composer/composer.js +78 -63
  62. package/dist/components/composer/composer.module.js +5 -5
  63. package/dist/components/composer/index.d.ts +2 -2
  64. package/dist/components/composer/mention-text.css +5 -5
  65. package/dist/components/composer/mention-text.module.js +1 -1
  66. package/dist/components/confirm-dialog/confirm-dialog.css +29 -29
  67. package/dist/components/confirm-dialog/confirm-dialog.d.ts +57 -3
  68. package/dist/components/confirm-dialog/confirm-dialog.js +266 -108
  69. package/dist/components/confirm-dialog/confirm-dialog.module.js +5 -5
  70. package/dist/components/conversation/conversation.css +52 -52
  71. package/dist/components/conversation/conversation.d.ts +43 -18
  72. package/dist/components/conversation/conversation.js +120 -78
  73. package/dist/components/conversation/conversation.module.js +15 -15
  74. package/dist/components/date-field/date-field.d.ts +1 -1
  75. package/dist/components/date-field/date-field.js +202 -100
  76. package/dist/components/date-field/date-input.d.ts +73 -37
  77. package/dist/components/date-field/date-input.js +72 -45
  78. package/dist/components/date-field/index.d.ts +1 -1
  79. package/dist/components/date-range-field/date-range-field.d.ts +1 -1
  80. package/dist/components/date-range-field/date-range-field.js +219 -107
  81. package/dist/components/date-range-field/date-range-input.d.ts +84 -40
  82. package/dist/components/date-range-field/date-range-input.js +83 -48
  83. package/dist/components/dialog/dialog.css +32 -32
  84. package/dist/components/dialog/dialog.d.ts +8 -7
  85. package/dist/components/dialog/dialog.js +8 -26
  86. package/dist/components/dialog/dialog.module.js +6 -6
  87. package/dist/components/divider/divider.css +6 -6
  88. package/dist/components/divider/divider.d.ts +36 -2
  89. package/dist/components/divider/divider.js +195 -29
  90. package/dist/components/divider/divider.module.js +3 -3
  91. package/dist/components/drawer/drawer.css +55 -56
  92. package/dist/components/drawer/drawer.d.ts +8 -7
  93. package/dist/components/drawer/drawer.js +8 -26
  94. package/dist/components/drawer/drawer.module.js +6 -6
  95. package/dist/components/field/field.css +34 -24
  96. package/dist/components/field/field.d.ts +60 -37
  97. package/dist/components/field/field.js +242 -157
  98. package/dist/components/field/field.module.js +12 -10
  99. package/dist/components/field/input-parts.d.ts +11 -13
  100. package/dist/components/field/input-parts.js +23 -42
  101. package/dist/components/field-placeholder/field-placeholder.css +6 -6
  102. package/dist/components/field-placeholder/field-placeholder.module.js +4 -4
  103. package/dist/components/fieldset/field-group.d.ts +1 -1
  104. package/dist/components/fieldset/field-group.js +48 -42
  105. package/dist/components/fieldset/fieldset-root.d.ts +1 -1
  106. package/dist/components/fieldset/fieldset-root.js +19 -17
  107. package/dist/components/fieldset/fieldset.d.ts +2 -2
  108. package/dist/components/fieldset/fieldset.js +2 -2
  109. package/dist/components/file-field/file-field.css +126 -60
  110. package/dist/components/file-field/file-field.js +201 -109
  111. package/dist/components/file-field/file-field.module.js +4 -4
  112. package/dist/components/file-field/file-input.d.ts +66 -40
  113. package/dist/components/file-field/file-input.js +188 -132
  114. package/dist/components/filter-bar/filter-bar.css +8 -8
  115. package/dist/components/filter-bar/filter-bar.d.ts +12 -3
  116. package/dist/components/filter-bar/filter-bar.js +23 -25
  117. package/dist/components/filter-bar/filter-bar.module.js +5 -5
  118. package/dist/components/form/form.d.ts +19 -7
  119. package/dist/components/form/form.js +80 -29
  120. package/dist/components/icon/icon.css +2 -2
  121. package/dist/components/icon/icon.module.js +1 -1
  122. package/dist/components/link/link.css +6 -5
  123. package/dist/components/link/link.module.js +1 -1
  124. package/dist/components/menu/menu.css +52 -47
  125. package/dist/components/menu/menu.d.ts +32 -25
  126. package/dist/components/menu/menu.js +75 -124
  127. package/dist/components/menu/menu.module.js +8 -8
  128. package/dist/components/nav/nav-context.d.ts +1 -1
  129. package/dist/components/nav/nav-item-view.d.ts +10 -13
  130. package/dist/components/nav/nav-item-view.js +42 -54
  131. package/dist/components/nav/nav.css +150 -119
  132. package/dist/components/nav/nav.d.ts +61 -17
  133. package/dist/components/nav/nav.js +271 -176
  134. package/dist/components/nav/nav.module.js +17 -15
  135. package/dist/components/number-field/number-field.css +153 -64
  136. package/dist/components/number-field/number-field.d.ts +2 -2
  137. package/dist/components/number-field/number-field.js +112 -91
  138. package/dist/components/number-field/number-field.module.js +6 -6
  139. package/dist/components/number-field/number-input.d.ts +43 -23
  140. package/dist/components/number-field/number-input.js +179 -125
  141. package/dist/components/otp-field/otp-field.css +153 -60
  142. package/dist/components/otp-field/otp-field.d.ts +2 -2
  143. package/dist/components/otp-field/otp-field.js +62 -46
  144. package/dist/components/otp-field/otp-field.module.js +4 -4
  145. package/dist/components/otp-field/otp-input.d.ts +8 -6
  146. package/dist/components/otp-field/otp-input.js +92 -92
  147. package/dist/components/pagination/pagination.d.ts +46 -15
  148. package/dist/components/pagination/pagination.js +217 -224
  149. package/dist/components/password-field/password-field.css +23 -23
  150. package/dist/components/password-field/password-field.js +107 -85
  151. package/dist/components/password-field/password-field.module.js +8 -8
  152. package/dist/components/password-field/password-strength.d.ts +107 -3
  153. package/dist/components/password-field/password-strength.js +569 -92
  154. package/dist/components/photo-field/photo-field.js +137 -112
  155. package/dist/components/photo-field/photo-input.css +67 -44
  156. package/dist/components/photo-field/photo-input.d.ts +59 -15
  157. package/dist/components/photo-field/photo-input.js +173 -86
  158. package/dist/components/photo-field/photo-input.module.js +10 -8
  159. package/dist/components/popover/popover.css +41 -41
  160. package/dist/components/popover/popover.d.ts +66 -25
  161. package/dist/components/popover/popover.js +332 -217
  162. package/dist/components/popover/popover.module.js +15 -19
  163. package/dist/components/radio-group-field/radio-group-field.js +80 -71
  164. package/dist/components/radio-group-field/radio-group.css +112 -60
  165. package/dist/components/radio-group-field/radio-group.d.ts +19 -3
  166. package/dist/components/radio-group-field/radio-group.js +66 -23
  167. package/dist/components/radio-group-field/radio-group.module.js +4 -4
  168. package/dist/components/segmented-control-field/segmented-control-field.d.ts +1 -1
  169. package/dist/components/segmented-control-field/segmented-control-field.js +111 -96
  170. package/dist/components/segmented-control-field/segmented-control.css +132 -79
  171. package/dist/components/segmented-control-field/segmented-control.d.ts +39 -15
  172. package/dist/components/segmented-control-field/segmented-control.js +124 -41
  173. package/dist/components/segmented-control-field/segmented-control.module.js +4 -4
  174. package/dist/components/select-field/select.css +214 -101
  175. package/dist/components/select-field/select.d.ts +43 -11
  176. package/dist/components/select-field/select.js +194 -109
  177. package/dist/components/select-field/select.module.js +14 -14
  178. package/dist/components/skeleton/skeleton.css +4 -4
  179. package/dist/components/skeleton/skeleton.module.js +3 -3
  180. package/dist/components/stale/stale.css +15 -15
  181. package/dist/components/stale/stale.d.ts +27 -3
  182. package/dist/components/stale/stale.js +147 -66
  183. package/dist/components/stale/stale.module.js +6 -6
  184. package/dist/components/status-message/status-message.css +22 -22
  185. package/dist/components/status-message/status-message.module.js +6 -6
  186. package/dist/components/switch-field/switch-field.js +77 -57
  187. package/dist/components/switch-field/switch.css +112 -63
  188. package/dist/components/switch-field/switch.d.ts +20 -3
  189. package/dist/components/switch-field/switch.js +70 -27
  190. package/dist/components/switch-field/switch.module.js +4 -4
  191. package/dist/components/tabs/tabs.css +32 -32
  192. package/dist/components/tabs/tabs.d.ts +21 -7
  193. package/dist/components/tabs/tabs.js +73 -14
  194. package/dist/components/tabs/tabs.module.js +7 -7
  195. package/dist/components/tag/tag.css +84 -84
  196. package/dist/components/tag/tag.module.js +3 -3
  197. package/dist/components/tag-group/tag-group.css +94 -94
  198. package/dist/components/tag-group/tag-group.module.js +4 -4
  199. package/dist/components/text-field/text-field.css +159 -82
  200. package/dist/components/text-field/text-field.d.ts +1 -1
  201. package/dist/components/text-field/text-field.js +139 -110
  202. package/dist/components/text-field/text-field.module.js +9 -9
  203. package/dist/components/text-field/text-input.d.ts +81 -45
  204. package/dist/components/text-field/text-input.js +366 -217
  205. package/dist/components/textarea-field/textarea-field.css +7 -2
  206. package/dist/components/textarea-field/textarea-field.js +72 -56
  207. package/dist/components/textarea-field/textarea-field.module.js +2 -2
  208. package/dist/components/time-field/time-field.js +153 -60
  209. package/dist/components/time-field/time-input.d.ts +21 -10
  210. package/dist/components/time-field/time-input.js +22 -11
  211. package/dist/components/toast/toast-provider.css +34 -31
  212. package/dist/components/toast/toast-provider.d.ts +63 -14
  213. package/dist/components/toast/toast-provider.js +174 -111
  214. package/dist/components/toast/toast-provider.module.js +7 -7
  215. package/dist/components/toggle-group-field/toggle-group-field.d.ts +1 -1
  216. package/dist/components/toggle-group-field/toggle-group-field.js +95 -89
  217. package/dist/components/toggle-group-field/toggle-group.css +117 -67
  218. package/dist/components/toggle-group-field/toggle-group.d.ts +2 -2
  219. package/dist/components/toggle-group-field/toggle-group.js +2 -2
  220. package/dist/components/toggle-group-field/toggle-group.module.js +2 -2
  221. package/dist/components/tooltip/tooltip.css +4 -4
  222. package/dist/components/tooltip/tooltip.module.js +1 -1
  223. package/dist/data-table/data-table-content.js +6 -5
  224. package/dist/data-table/data-table-parts.d.ts +41 -13
  225. package/dist/data-table/data-table-parts.js +213 -172
  226. package/dist/data-table/data-table-selection.d.ts +105 -3
  227. package/dist/data-table/data-table-selection.js +654 -145
  228. package/dist/data-table/data-table.css +125 -128
  229. package/dist/data-table/data-table.d.ts +21 -26
  230. package/dist/data-table/data-table.js +20 -23
  231. package/dist/data-table/data-table.module.js +32 -34
  232. package/dist/data-table/index.d.ts +2 -2
  233. package/dist/index.js +3 -3
  234. package/dist/lib/calendar/calendar-navigation.d.ts +39 -5
  235. package/dist/lib/calendar/calendar-navigation.js +185 -118
  236. package/dist/lib/calendar/calendar-parts.d.ts +143 -0
  237. package/dist/lib/calendar/calendar-parts.js +540 -0
  238. package/dist/lib/calendar/calendar-prefab.d.ts +52 -0
  239. package/dist/lib/calendar/calendar-prefab.js +311 -0
  240. package/dist/lib/calendar/calendar-year.d.ts +3 -1
  241. package/dist/lib/calendar/calendar-year.js +139 -131
  242. package/dist/lib/calendar/temporal.css +325 -232
  243. package/dist/lib/calendar/temporal.d.ts +67 -82
  244. package/dist/lib/calendar/temporal.js +258 -569
  245. package/dist/lib/calendar/temporal.module.js +38 -38
  246. package/dist/lib/forms/use-connected-field.d.ts +1 -1
  247. package/dist/lib/forms/use-connected-field.js +1 -1
  248. package/dist/lib/render-as.d.ts +13 -0
  249. package/dist/lib/render-as.js +46 -0
  250. package/dist/terrazzo/index.d.ts +4 -3
  251. package/dist/terrazzo/index.js +17 -6
  252. package/dist/tokens.css +28 -4
  253. package/package.json +2 -2
  254. package/tokens/dark.tokens.json +6 -0
  255. package/tokens/sys.tokens.json +7 -0
  256. package/dist/components/button/close-button.d.ts +0 -16
  257. package/dist/components/button/close-button.js +0 -30
@@ -1,42 +1,42 @@
1
1
  import './temporal.css';// src/lib/calendar/temporal.module.scss
2
- var group = "_group_zywoe_3";
3
- var input = "_input_zywoe_68";
4
- var rangeInput = "_rangeInput_zywoe_81";
5
- var rangeSeparator = "_rangeSeparator_zywoe_93";
6
- var rangeSpacer = "_rangeSpacer_zywoe_97";
7
- var segment = "_segment_zywoe_101";
8
- var trigger = "_trigger_zywoe_117";
9
- var popover = "_popover_zywoe_133";
10
- var dialog = "_dialog_zywoe_163";
11
- var calendar = "_calendar_zywoe_166";
12
- var header = "_header_zywoe_171";
13
- var navigation = "_navigation_zywoe_176";
14
- var navField = "_navField_zywoe_186";
15
- var navPortal = "_navPortal_zywoe_189";
16
- var navTrigger = "_navTrigger_zywoe_194";
17
- var navControl = "_navControl_zywoe_195";
18
- var navInput = "_navInput_zywoe_251";
19
- var navLabel = "_navLabel_zywoe_254";
20
- var navSizer = "_navSizer_zywoe_258";
21
- var navValue = "_navValue_zywoe_268";
22
- var navChevron = "_navChevron_zywoe_285";
23
- var navIcon = "_navIcon_zywoe_293";
24
- var navPositioner = "_navPositioner_zywoe_298";
25
- var navPopup = "_navPopup_zywoe_312";
26
- var yearPopup = "_yearPopup_zywoe_337";
27
- var yearEmpty = "_yearEmpty_zywoe_365";
28
- var yearList = "_yearList_zywoe_380";
29
- var navItem = "_navItem_zywoe_388";
30
- var yearOption = "_yearOption_zywoe_389";
31
- var navItemIndicator = "_navItemIndicator_zywoe_444";
32
- var yearIndicator = "_yearIndicator_zywoe_445";
33
- var yearValue = "_yearValue_zywoe_453";
34
- var months = "_months_zywoe_457";
35
- var grid = "_grid_zywoe_464";
36
- var weekday = "_weekday_zywoe_477";
37
- var day = "_day_zywoe_484";
38
- var today = "_today_zywoe_533";
39
- var rangeCalendar = "_rangeCalendar_zywoe_547";
2
+ var group = "_group_1t1xp_3";
3
+ var input = "_input_1t1xp_133";
4
+ var rangeInput = "_rangeInput_1t1xp_146";
5
+ var rangeSeparator = "_rangeSeparator_1t1xp_158";
6
+ var rangeSpacer = "_rangeSpacer_1t1xp_162";
7
+ var segment = "_segment_1t1xp_166";
8
+ var trigger = "_trigger_1t1xp_182";
9
+ var popover = "_popover_1t1xp_198";
10
+ var dialog = "_dialog_1t1xp_228";
11
+ var calendar = "_calendar_1t1xp_231";
12
+ var header = "_header_1t1xp_236";
13
+ var navigation = "_navigation_1t1xp_241";
14
+ var navField = "_navField_1t1xp_251";
15
+ var navPortal = "_navPortal_1t1xp_254";
16
+ var navTrigger = "_navTrigger_1t1xp_259";
17
+ var navControl = "_navControl_1t1xp_260";
18
+ var navInput = "_navInput_1t1xp_316";
19
+ var navLabel = "_navLabel_1t1xp_319";
20
+ var navSizer = "_navSizer_1t1xp_323";
21
+ var navValue = "_navValue_1t1xp_333";
22
+ var navChevron = "_navChevron_1t1xp_350";
23
+ var navIcon = "_navIcon_1t1xp_358";
24
+ var navPositioner = "_navPositioner_1t1xp_363";
25
+ var navPopup = "_navPopup_1t1xp_377";
26
+ var yearPopup = "_yearPopup_1t1xp_402";
27
+ var yearEmpty = "_yearEmpty_1t1xp_430";
28
+ var yearList = "_yearList_1t1xp_445";
29
+ var navItem = "_navItem_1t1xp_453";
30
+ var yearOption = "_yearOption_1t1xp_454";
31
+ var navItemIndicator = "_navItemIndicator_1t1xp_515";
32
+ var yearIndicator = "_yearIndicator_1t1xp_516";
33
+ var yearValue = "_yearValue_1t1xp_524";
34
+ var months = "_months_1t1xp_528";
35
+ var grid = "_grid_1t1xp_535";
36
+ var weekday = "_weekday_1t1xp_548";
37
+ var day = "_day_1t1xp_555";
38
+ var today = "_today_1t1xp_604";
39
+ var rangeCalendar = "_rangeCalendar_1t1xp_618";
40
40
  var temporal_module_default = {
41
41
  group,
42
42
  input,
@@ -23,7 +23,7 @@ export type ConnectedField<TValue> = Readonly<{
23
23
  *
24
24
  * @example
25
25
  * const { field, props: { name, onBlur, ...state } } = useConnectedField<string>(label);
26
- * <TextInput.Root {...state} value={field.state.value} onValueChange={field.handleChange} optionalLabel="optional">
26
+ * <TextInput.Root {...state} value={field.state.value} onValueChange={field.handleChange}>
27
27
  * <TextInput.Input name={name} onBlur={onBlur} />
28
28
  * </TextInput.Root>
29
29
  */
@@ -12,7 +12,7 @@ import { useContext, useLayoutEffect } from "react";
12
12
  *
13
13
  * @example
14
14
  * const { field, props: { name, onBlur, ...state } } = useConnectedField<string>(label);
15
- * <TextInput.Root {...state} value={field.state.value} onValueChange={field.handleChange} optionalLabel="optional">
15
+ * <TextInput.Root {...state} value={field.state.value} onValueChange={field.handleChange}>
16
16
  * <TextInput.Input name={name} onBlur={onBlur} />
17
17
  * </TextInput.Root>
18
18
  */
@@ -0,0 +1,13 @@
1
+ import { useRender } from "@base-ui/react/use-render";
2
+ import type { ComponentPropsWithRef, ReactElement } from "react";
3
+ type ButtonProps = ComponentPropsWithRef<"button">;
4
+ /**
5
+ * A react-aria `render` function that hands the component's DOM props, and
6
+ * any `extra` props, to a base-ui style `render` element such as a kit button,
7
+ * merged the way base-ui merges them.
8
+ *
9
+ * @example
10
+ * <AriaButton slot="remove" render={renderAs(<IconButton label="Remove"><CloseIcon /></IconButton>)} />
11
+ */
12
+ export declare const renderAs: (render: useRender.RenderProp, extra?: ButtonProps) => (props: ButtonProps) => ReactElement;
13
+ export {};
@@ -0,0 +1,46 @@
1
+ import { c } from "react/compiler-runtime";
2
+ import { useRender } from "@base-ui/react/use-render";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { mergeProps } from "@base-ui/react/merge-props";
5
+ // src/lib/render-as.tsx
6
+ var Rendered = (t0) => {
7
+ const $ = c(7);
8
+ const { render, props: t1 } = t0;
9
+ let props;
10
+ let ref;
11
+ if ($[0] !== t1) {
12
+ ({ref, ...props} = t1);
13
+ $[0] = t1;
14
+ $[1] = props;
15
+ $[2] = ref;
16
+ } else {
17
+ props = $[1];
18
+ ref = $[2];
19
+ }
20
+ let t2;
21
+ if ($[3] !== props || $[4] !== ref || $[5] !== render) {
22
+ t2 = {
23
+ render,
24
+ ref,
25
+ props
26
+ };
27
+ $[3] = props;
28
+ $[4] = ref;
29
+ $[5] = render;
30
+ $[6] = t2;
31
+ } else t2 = $[6];
32
+ return useRender(t2);
33
+ };
34
+ /**
35
+ * A react-aria `render` function that hands the component's DOM props, and
36
+ * any `extra` props, to a base-ui style `render` element such as a kit button,
37
+ * merged the way base-ui merges them.
38
+ *
39
+ * @example
40
+ * <AriaButton slot="remove" render={renderAs(<IconButton label="Remove"><CloseIcon /></IconButton>)} />
41
+ */
42
+ var renderAs = (render, extra) => (props) => /* @__PURE__ */ jsx(Rendered, {
43
+ render,
44
+ props: extra === void 0 ? props : mergeProps(props, extra)
45
+ });
46
+ export { renderAs };
@@ -26,9 +26,10 @@ export declare const variableNameOf: (id: string) => string;
26
26
  export declare const fontFamilyPropertyOf: (id: string) => string;
27
27
  /**
28
28
  * A Terrazzo plugin that builds a resolver's tokens into the custom properties
29
- * the kit's components read: `--ref-*` and `--sys-*`, the `light` theme on
30
- * `:root` and the `dark` theme's `sys` roles on `html[data-theme="dark"]`, and
31
- * under `prefers-color-scheme: dark` unless `data-theme="light"`, all in the
29
+ * the kit's components read: the `ref` ramps on `:root`, the `light` theme's
30
+ * `sys` roles on `:root` and any `[data-theme="light"]` element, and the `dark`
31
+ * theme's on any `[data-theme="dark"]` element and on `<html>` under
32
+ * `prefers-color-scheme: dark` unless `data-theme="light"`, all in the
32
33
  * `kit.base` cascade layer after the kit's layer order. A shadow
33
34
  * tagged `$extensions["nl.igne.css"].property: "filter"` is written as
34
35
  * `drop-shadow()` filters.
@@ -120,15 +120,17 @@ const dropShadows = (token, { tokensSet, transformAlias }) => {
120
120
  })
121
121
  .join(" ");
122
122
  };
123
- const light = (contents) => `:root {\n\tcolor-scheme: light;\n${families}${contents}\n}`;
123
+ const ramps = (contents) => `:root {\n${families}${contents}\n}`;
124
+ const light = (contents) => `:root,\n[data-theme="light"] {\n\tcolor-scheme: light;\n${contents}\n}`;
124
125
  const LAYER_ORDER = "@layer kit.reset, kit.base, kit.components;";
125
126
  const layered = (contents) => `${LAYER_ORDER}\n\n@layer kit.base {\n${contents.trimEnd()}\n}\n`;
126
- const dark = (contents) => `html[data-theme="dark"] {\n\tcolor-scheme: dark;\n${contents}\n}\n\n@media (prefers-color-scheme: dark) {\n\thtml:not([data-theme="light"]) {\n\t\tcolor-scheme: dark;\n${contents}\n\t}\n}`;
127
+ const dark = (contents) => `[data-theme="dark"] {\n\tcolor-scheme: dark;\n${contents}\n}\n\n@media (prefers-color-scheme: dark) {\n\thtml:not([data-theme="light"]) {\n\t\tcolor-scheme: dark;\n${contents}\n\t}\n}`;
127
128
  /**
128
129
  * A Terrazzo plugin that builds a resolver's tokens into the custom properties
129
- * the kit's components read: `--ref-*` and `--sys-*`, the `light` theme on
130
- * `:root` and the `dark` theme's `sys` roles on `html[data-theme="dark"]`, and
131
- * under `prefers-color-scheme: dark` unless `data-theme="light"`, all in the
130
+ * the kit's components read: the `ref` ramps on `:root`, the `light` theme's
131
+ * `sys` roles on `:root` and any `[data-theme="light"]` element, and the `dark`
132
+ * theme's on any `[data-theme="dark"]` element and on `<html>` under
133
+ * `prefers-color-scheme: dark` unless `data-theme="light"`, all in the
132
134
  * `kit.base` cascade layer after the kit's layer order. A shadow
133
135
  * tagged `$extensions["nl.igne.css"].property: "filter"` is written as
134
136
  * `drop-shadow()` filters.
@@ -158,7 +160,16 @@ const kitTokens = (options = {}) => {
158
160
  transform: (token, transformOptions) => typography(token, transformOptions) ??
159
161
  dropShadows(token, transformOptions),
160
162
  permutations: [
161
- { input: { theme: "light" }, prepare: light },
163
+ {
164
+ input: { theme: "light" },
165
+ include: ["ref.**"],
166
+ prepare: ramps,
167
+ },
168
+ {
169
+ input: { theme: "light" },
170
+ include: ["sys.**"],
171
+ prepare: light,
172
+ },
162
173
  {
163
174
  input: { theme: "dark" },
164
175
  include: ["sys.**"],
package/dist/tokens.css CHANGED
@@ -6,7 +6,6 @@
6
6
  * ------------------------------------------- */
7
7
 
8
8
  :root {
9
- color-scheme: light;
10
9
  --sys-font-family-body: system-ui, sans-serif;
11
10
  --sys-font-family-heading: var(--sys-font-family-body);
12
11
  --ref-blue-0: oklch(100% 0 234.03);
@@ -339,14 +338,25 @@
339
338
  --ref-sand-975: oklch(2.83% 0.0012 17.89);
340
339
  --ref-sand-990: oklch(1.13% 0.0005 17.89);
341
340
  --ref-sand-1000: oklch(0% 0 17.89);
341
+ }
342
+
343
+ :root,
344
+ [data-theme="light"] {
345
+ color-scheme: light;
346
+ --sys-color-autofill-bg: var(--ref-blue-50);
347
+ /* The page behind everything */
342
348
  --sys-color-bg: var(--ref-neutral-25);
349
+ /* The quiet hairline that separation rations */
343
350
  --sys-color-border: var(--ref-neutral-150);
351
+ /* The fill of a control or button that cannot be used */
344
352
  --sys-color-disabled-bg: var(--ref-neutral-100);
353
+ /* The ink of a control that cannot be used: its text, icons and the marks of its choice */
345
354
  --sys-color-disabled-fg: var(--ref-neutral-300);
346
355
  --sys-color-error-bg: var(--ref-red-50);
347
356
  --sys-color-error-border: var(--ref-red-200);
348
357
  --sys-color-error-fg: var(--ref-red-700);
349
358
  --sys-color-error-outline: var(--ref-red-250);
359
+ /* Keyboard focus, on every focusable element */
350
360
  --sys-color-focus-ring: var(--sys-color-primary);
351
361
  --sys-color-identity-1-bg: oklch(96.02% 0.0119 84);
352
362
  --sys-color-identity-1-fg: oklch(24.08% 0.0472 84);
@@ -364,23 +374,35 @@
364
374
  --sys-color-neutral-fg: var(--ref-neutral-700);
365
375
  --sys-color-on-primary: var(--ref-neutral-0);
366
376
  --sys-color-on-primary-container: var(--ref-neutral-800);
377
+ /* A mark that has to be found: grab bars, scroll thumbs, control outlines */
367
378
  --sys-color-outline: var(--ref-neutral-200);
379
+ /* Primary buttons and links */
368
380
  --sys-color-primary: var(--ref-neutral-750);
381
+ /* Avatar fallbacks, mention pills, brand tints */
369
382
  --sys-color-primary-container: var(--ref-neutral-50);
370
383
  --sys-color-selection-bg: var(--ref-neutral-100);
371
384
  --sys-color-selection-fg: var(--ref-neutral-800);
372
385
  --sys-color-success-bg: var(--ref-green-50);
373
386
  --sys-color-success-border: var(--ref-green-200);
374
387
  --sys-color-success-fg: var(--ref-green-700);
388
+ /* The default card */
375
389
  --sys-color-surface: var(--ref-neutral-0);
390
+ /* A fill nested in a card */
376
391
  --sys-color-surface-high: var(--ref-neutral-50);
392
+ /* The deepest recess: fields, placeholders */
377
393
  --sys-color-surface-highest: var(--ref-neutral-100);
394
+ /* The dimmest card: a table's sub-rows */
378
395
  --sys-color-surface-lowest: var(--ref-neutral-10);
396
+ /* Popups and tooltips */
379
397
  --sys-color-surface-overlay: var(--ref-neutral-0);
398
+ /* Toasts */
380
399
  --sys-color-surface-overlay-high: var(--ref-neutral-0);
400
+ /* Body copy and headings */
381
401
  --sys-color-text: var(--ref-neutral-500);
382
402
  --sys-color-text-inverse: var(--ref-neutral-0);
403
+ /* Captions, help text and anything passive */
383
404
  --sys-color-text-muted: var(--ref-neutral-450);
405
+ /* The hint text an empty field shows */
384
406
  --sys-color-text-placeholder: var(--ref-neutral-400);
385
407
  --sys-color-warning-bg: var(--ref-orange-50);
386
408
  --sys-color-warning-border: var(--ref-orange-200);
@@ -580,9 +602,10 @@
580
602
  --sys-unit-64: 8rem;
581
603
  }
582
604
 
583
- html[data-theme="dark"] {
605
+ [data-theme="dark"] {
584
606
  color-scheme: dark;
585
- /* The page behind everything */
607
+ --sys-color-autofill-bg: var(--ref-blue-750);
608
+ /* The page behind everything */
586
609
  --sys-color-bg: var(--ref-neutral-800);
587
610
  /* The quiet hairline that separation rations */
588
611
  --sys-color-border: var(--ref-neutral-500);
@@ -843,7 +866,8 @@ html[data-theme="dark"] {
843
866
  @media (prefers-color-scheme: dark) {
844
867
  html:not([data-theme="light"]) {
845
868
  color-scheme: dark;
846
- /* The page behind everything */
869
+ --sys-color-autofill-bg: var(--ref-blue-750);
870
+ /* The page behind everything */
847
871
  --sys-color-bg: var(--ref-neutral-800);
848
872
  /* The quiet hairline that separation rations */
849
873
  --sys-color-border: var(--ref-neutral-500);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@igne-agency/react-web-ui",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "description": "IGNE's React web component kit: primitives and the presets over them, form controls in three tiers with a TanStack Form bridge, and DTCG tokens themed per app.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -330,7 +330,7 @@
330
330
  },
331
331
  "scripts": {
332
332
  "fix": "bun run tokens && oxfmt . && oxlint --fix .",
333
- "check": "bun run tokens && oxfmt --check . && oxlint .",
333
+ "check": "bun run tokens && oxfmt --check . && oxlint . && bun tools/check-docs-tokens.ts",
334
334
  "tokens": "tz build",
335
335
  "build": "bun run tokens && vite build && tsc -p tsconfig.build.json && tsc -p tsconfig.terrazzo.json",
336
336
  "check:exports": "bun tools/check-exports.ts",
@@ -118,6 +118,12 @@
118
118
  "$value": "{ref.neutral.0}"
119
119
  }
120
120
  },
121
+ "autofill": {
122
+ "bg": {
123
+ "$type": "color",
124
+ "$value": "{ref.blue.750}"
125
+ }
126
+ },
121
127
  "bg": {
122
128
  "$type": "color",
123
129
  "$value": "{ref.neutral.800}"
@@ -252,6 +252,13 @@
252
252
  "$value": "{ref.neutral.800}"
253
253
  }
254
254
  },
255
+ "autofill": {
256
+ "$description": "A field the browser has filled in for the user",
257
+ "bg": {
258
+ "$type": "color",
259
+ "$value": "{ref.blue.50}"
260
+ }
261
+ },
255
262
  "bg": {
256
263
  "$description": "The page behind everything",
257
264
  "$type": "color",
@@ -1,16 +0,0 @@
1
- import type { ReactElement, ReactNode } from "react";
2
- export type CloseButtonProps = Readonly<{
3
- /** Accessible name, surfaced as the tooltip hint and the `aria-label`. */
4
- closeLabel: string;
5
- /** The app's close glyph, drawn in `currentColor` at `1em`. */
6
- icon: ReactNode;
7
- /** The library part that closes, such as `<BaseDialog.Close />`. */
8
- render: ReactElement;
9
- }>;
10
- /**
11
- * The icon-only way out of an overlay, rendered as the overlay's own close part.
12
- *
13
- * @example
14
- * <CloseButton closeLabel="Close" icon={<CloseIcon />} render={<BaseDialog.Close />} />
15
- */
16
- export declare const CloseButton: ({ closeLabel, icon, render, }: CloseButtonProps) => ReactNode;
@@ -1,30 +0,0 @@
1
- import { Button } from "./button.js";
2
- import { c } from "react/compiler-runtime";
3
- import { jsx } from "react/jsx-runtime";
4
- // src/components/button/close-button.tsx
5
- /**
6
- * The icon-only way out of an overlay, rendered as the overlay's own close part.
7
- *
8
- * @example
9
- * <CloseButton closeLabel="Close" icon={<CloseIcon />} render={<BaseDialog.Close />} />
10
- */
11
- var CloseButton = (t0) => {
12
- const $ = c(4);
13
- const { closeLabel, icon, render } = t0;
14
- let t1;
15
- if ($[0] !== closeLabel || $[1] !== icon || $[2] !== render) {
16
- t1 = /* @__PURE__ */ jsx(Button, {
17
- variant: "tertiary",
18
- iconOnly: true,
19
- icon,
20
- label: closeLabel,
21
- render
22
- });
23
- $[0] = closeLabel;
24
- $[1] = icon;
25
- $[2] = render;
26
- $[3] = t1;
27
- } else t1 = $[3];
28
- return t1;
29
- };
30
- export { CloseButton };