@igne-agency/react-web-ui 0.5.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 (254) hide show
  1. package/dist/components/accordion/accordion.css +21 -21
  2. package/dist/components/accordion/accordion.d.ts +17 -4
  3. package/dist/components/accordion/accordion.js +83 -36
  4. package/dist/components/accordion/accordion.module.js +6 -6
  5. package/dist/components/attachment-tile/attachment-preview.d.ts +56 -13
  6. package/dist/components/attachment-tile/attachment-preview.js +388 -119
  7. package/dist/components/attachment-tile/attachment-tile.css +31 -25
  8. package/dist/components/attachment-tile/attachment-tile.d.ts +32 -10
  9. package/dist/components/attachment-tile/attachment-tile.js +160 -43
  10. package/dist/components/attachment-tile/attachment-tile.module.js +8 -8
  11. package/dist/components/attachment-tile/index.d.ts +1 -1
  12. package/dist/components/avatar/avatar.css +9 -9
  13. package/dist/components/avatar/avatar.d.ts +50 -5
  14. package/dist/components/avatar/avatar.js +178 -64
  15. package/dist/components/avatar/avatar.module.js +3 -3
  16. package/dist/components/avatar-group/avatar-group-context.d.ts +2 -4
  17. package/dist/components/avatar-group/avatar-group-context.js +2 -2
  18. package/dist/components/avatar-group/avatar-group.css +26 -20
  19. package/dist/components/avatar-group/avatar-group.d.ts +85 -27
  20. package/dist/components/avatar-group/avatar-group.js +400 -246
  21. package/dist/components/avatar-group/avatar-group.module.js +8 -8
  22. package/dist/components/breadcrumbs/breadcrumbs.css +12 -12
  23. package/dist/components/breadcrumbs/breadcrumbs.d.ts +69 -23
  24. package/dist/components/breadcrumbs/breadcrumbs.js +299 -248
  25. package/dist/components/breadcrumbs/breadcrumbs.module.js +8 -8
  26. package/dist/components/button/button.css +29 -31
  27. package/dist/components/button/button.d.ts +20 -16
  28. package/dist/components/button/button.js +140 -145
  29. package/dist/components/button/button.module.js +1 -1
  30. package/dist/components/button/index.js +1 -1
  31. package/dist/components/checkbox-field/checkbox-field.js +63 -49
  32. package/dist/components/checkbox-field/checkbox.css +105 -56
  33. package/dist/components/checkbox-field/checkbox.d.ts +3 -2
  34. package/dist/components/checkbox-field/checkbox.js +12 -9
  35. package/dist/components/checkbox-field/checkbox.module.js +4 -4
  36. package/dist/components/checkbox-group-field/checkbox-group-field.js +78 -72
  37. package/dist/components/checkbox-group-field/checkbox-group.css +14 -10
  38. package/dist/components/checkbox-group-field/checkbox-group.d.ts +2 -2
  39. package/dist/components/checkbox-group-field/checkbox-group.js +2 -2
  40. package/dist/components/checkbox-group-field/checkbox-group.module.js +2 -2
  41. package/dist/components/collapsible/collapsible.css +20 -20
  42. package/dist/components/collapsible/collapsible.d.ts +17 -4
  43. package/dist/components/collapsible/collapsible.js +83 -36
  44. package/dist/components/collapsible/collapsible.module.js +5 -5
  45. package/dist/components/combobox-field/combobox-field.js +206 -158
  46. package/dist/components/combobox-field/combobox.css +492 -277
  47. package/dist/components/combobox-field/combobox.d.ts +148 -39
  48. package/dist/components/combobox-field/combobox.js +506 -206
  49. package/dist/components/combobox-field/combobox.module.js +21 -21
  50. package/dist/components/combobox-field/value-state-view.css +5 -5
  51. package/dist/components/combobox-field/value-state-view.module.js +4 -4
  52. package/dist/components/composer/composer-attachments.d.ts +30 -11
  53. package/dist/components/composer/composer-attachments.js +45 -40
  54. package/dist/components/composer/composer-editor.css +40 -35
  55. package/dist/components/composer/composer-editor.d.ts +14 -4
  56. package/dist/components/composer/composer-editor.js +134 -44
  57. package/dist/components/composer/composer-editor.module.js +5 -5
  58. package/dist/components/composer/composer.css +22 -22
  59. package/dist/components/composer/composer.d.ts +13 -2
  60. package/dist/components/composer/composer.js +78 -63
  61. package/dist/components/composer/composer.module.js +5 -5
  62. package/dist/components/composer/index.d.ts +2 -2
  63. package/dist/components/composer/mention-text.css +5 -5
  64. package/dist/components/composer/mention-text.module.js +1 -1
  65. package/dist/components/confirm-dialog/confirm-dialog.css +29 -29
  66. package/dist/components/confirm-dialog/confirm-dialog.d.ts +57 -3
  67. package/dist/components/confirm-dialog/confirm-dialog.js +266 -108
  68. package/dist/components/confirm-dialog/confirm-dialog.module.js +5 -5
  69. package/dist/components/conversation/conversation.css +52 -52
  70. package/dist/components/conversation/conversation.d.ts +43 -18
  71. package/dist/components/conversation/conversation.js +120 -78
  72. package/dist/components/conversation/conversation.module.js +15 -15
  73. package/dist/components/date-field/date-field.d.ts +1 -1
  74. package/dist/components/date-field/date-field.js +202 -100
  75. package/dist/components/date-field/date-input.d.ts +73 -37
  76. package/dist/components/date-field/date-input.js +72 -45
  77. package/dist/components/date-field/index.d.ts +1 -1
  78. package/dist/components/date-range-field/date-range-field.d.ts +1 -1
  79. package/dist/components/date-range-field/date-range-field.js +219 -107
  80. package/dist/components/date-range-field/date-range-input.d.ts +84 -40
  81. package/dist/components/date-range-field/date-range-input.js +83 -48
  82. package/dist/components/dialog/dialog.css +32 -32
  83. package/dist/components/dialog/dialog.d.ts +8 -7
  84. package/dist/components/dialog/dialog.js +8 -26
  85. package/dist/components/dialog/dialog.module.js +6 -6
  86. package/dist/components/divider/divider.css +6 -6
  87. package/dist/components/divider/divider.d.ts +36 -2
  88. package/dist/components/divider/divider.js +195 -29
  89. package/dist/components/divider/divider.module.js +3 -3
  90. package/dist/components/drawer/drawer.css +55 -56
  91. package/dist/components/drawer/drawer.d.ts +8 -7
  92. package/dist/components/drawer/drawer.js +8 -26
  93. package/dist/components/drawer/drawer.module.js +6 -6
  94. package/dist/components/field/field.css +34 -24
  95. package/dist/components/field/field.d.ts +60 -37
  96. package/dist/components/field/field.js +242 -157
  97. package/dist/components/field/field.module.js +12 -10
  98. package/dist/components/field/input-parts.d.ts +11 -13
  99. package/dist/components/field/input-parts.js +23 -42
  100. package/dist/components/field-placeholder/field-placeholder.css +6 -6
  101. package/dist/components/field-placeholder/field-placeholder.module.js +4 -4
  102. package/dist/components/fieldset/field-group.d.ts +1 -1
  103. package/dist/components/fieldset/field-group.js +48 -42
  104. package/dist/components/fieldset/fieldset-root.d.ts +1 -1
  105. package/dist/components/fieldset/fieldset-root.js +19 -17
  106. package/dist/components/fieldset/fieldset.d.ts +2 -2
  107. package/dist/components/fieldset/fieldset.js +2 -2
  108. package/dist/components/file-field/file-field.css +126 -60
  109. package/dist/components/file-field/file-field.js +201 -109
  110. package/dist/components/file-field/file-field.module.js +4 -4
  111. package/dist/components/file-field/file-input.d.ts +66 -40
  112. package/dist/components/file-field/file-input.js +188 -132
  113. package/dist/components/filter-bar/filter-bar.css +8 -8
  114. package/dist/components/filter-bar/filter-bar.d.ts +12 -3
  115. package/dist/components/filter-bar/filter-bar.js +23 -25
  116. package/dist/components/filter-bar/filter-bar.module.js +5 -5
  117. package/dist/components/form/form.d.ts +19 -7
  118. package/dist/components/form/form.js +80 -29
  119. package/dist/components/icon/icon.css +2 -2
  120. package/dist/components/icon/icon.module.js +1 -1
  121. package/dist/components/link/link.css +6 -5
  122. package/dist/components/link/link.module.js +1 -1
  123. package/dist/components/menu/menu.css +52 -47
  124. package/dist/components/menu/menu.d.ts +32 -25
  125. package/dist/components/menu/menu.js +75 -124
  126. package/dist/components/menu/menu.module.js +8 -8
  127. package/dist/components/nav/nav-context.d.ts +1 -1
  128. package/dist/components/nav/nav-item-view.d.ts +10 -13
  129. package/dist/components/nav/nav-item-view.js +42 -54
  130. package/dist/components/nav/nav.css +150 -119
  131. package/dist/components/nav/nav.d.ts +61 -17
  132. package/dist/components/nav/nav.js +271 -176
  133. package/dist/components/nav/nav.module.js +17 -15
  134. package/dist/components/number-field/number-field.css +153 -64
  135. package/dist/components/number-field/number-field.d.ts +2 -2
  136. package/dist/components/number-field/number-field.js +112 -91
  137. package/dist/components/number-field/number-field.module.js +6 -6
  138. package/dist/components/number-field/number-input.d.ts +43 -23
  139. package/dist/components/number-field/number-input.js +179 -125
  140. package/dist/components/otp-field/otp-field.css +153 -60
  141. package/dist/components/otp-field/otp-field.d.ts +2 -2
  142. package/dist/components/otp-field/otp-field.js +62 -46
  143. package/dist/components/otp-field/otp-field.module.js +4 -4
  144. package/dist/components/otp-field/otp-input.d.ts +8 -6
  145. package/dist/components/otp-field/otp-input.js +92 -92
  146. package/dist/components/pagination/pagination.d.ts +46 -15
  147. package/dist/components/pagination/pagination.js +217 -224
  148. package/dist/components/password-field/password-field.css +23 -23
  149. package/dist/components/password-field/password-field.js +107 -85
  150. package/dist/components/password-field/password-field.module.js +8 -8
  151. package/dist/components/password-field/password-strength.d.ts +107 -3
  152. package/dist/components/password-field/password-strength.js +569 -92
  153. package/dist/components/photo-field/photo-field.js +137 -112
  154. package/dist/components/photo-field/photo-input.css +67 -44
  155. package/dist/components/photo-field/photo-input.d.ts +59 -15
  156. package/dist/components/photo-field/photo-input.js +173 -86
  157. package/dist/components/photo-field/photo-input.module.js +10 -8
  158. package/dist/components/popover/popover.css +41 -41
  159. package/dist/components/popover/popover.d.ts +66 -25
  160. package/dist/components/popover/popover.js +332 -217
  161. package/dist/components/popover/popover.module.js +15 -19
  162. package/dist/components/radio-group-field/radio-group-field.js +80 -71
  163. package/dist/components/radio-group-field/radio-group.css +112 -60
  164. package/dist/components/radio-group-field/radio-group.d.ts +19 -3
  165. package/dist/components/radio-group-field/radio-group.js +66 -23
  166. package/dist/components/radio-group-field/radio-group.module.js +4 -4
  167. package/dist/components/segmented-control-field/segmented-control-field.d.ts +1 -1
  168. package/dist/components/segmented-control-field/segmented-control-field.js +111 -96
  169. package/dist/components/segmented-control-field/segmented-control.css +132 -79
  170. package/dist/components/segmented-control-field/segmented-control.d.ts +39 -15
  171. package/dist/components/segmented-control-field/segmented-control.js +124 -41
  172. package/dist/components/segmented-control-field/segmented-control.module.js +4 -4
  173. package/dist/components/select-field/select.css +214 -101
  174. package/dist/components/select-field/select.d.ts +43 -11
  175. package/dist/components/select-field/select.js +194 -109
  176. package/dist/components/select-field/select.module.js +14 -14
  177. package/dist/components/skeleton/skeleton.css +4 -4
  178. package/dist/components/skeleton/skeleton.module.js +3 -3
  179. package/dist/components/stale/stale.css +15 -15
  180. package/dist/components/stale/stale.d.ts +27 -3
  181. package/dist/components/stale/stale.js +147 -66
  182. package/dist/components/stale/stale.module.js +6 -6
  183. package/dist/components/status-message/status-message.css +22 -22
  184. package/dist/components/status-message/status-message.module.js +6 -6
  185. package/dist/components/switch-field/switch-field.js +77 -57
  186. package/dist/components/switch-field/switch.css +112 -63
  187. package/dist/components/switch-field/switch.d.ts +20 -3
  188. package/dist/components/switch-field/switch.js +70 -27
  189. package/dist/components/switch-field/switch.module.js +4 -4
  190. package/dist/components/tabs/tabs.css +32 -32
  191. package/dist/components/tabs/tabs.d.ts +21 -7
  192. package/dist/components/tabs/tabs.js +73 -14
  193. package/dist/components/tabs/tabs.module.js +7 -7
  194. package/dist/components/tag/tag.css +84 -84
  195. package/dist/components/tag/tag.module.js +3 -3
  196. package/dist/components/tag-group/tag-group.css +94 -94
  197. package/dist/components/tag-group/tag-group.module.js +4 -4
  198. package/dist/components/text-field/text-field.css +159 -82
  199. package/dist/components/text-field/text-field.d.ts +1 -1
  200. package/dist/components/text-field/text-field.js +139 -110
  201. package/dist/components/text-field/text-field.module.js +9 -9
  202. package/dist/components/text-field/text-input.d.ts +81 -45
  203. package/dist/components/text-field/text-input.js +366 -217
  204. package/dist/components/textarea-field/textarea-field.css +7 -2
  205. package/dist/components/textarea-field/textarea-field.js +72 -56
  206. package/dist/components/textarea-field/textarea-field.module.js +2 -2
  207. package/dist/components/time-field/time-field.js +153 -60
  208. package/dist/components/time-field/time-input.d.ts +21 -10
  209. package/dist/components/time-field/time-input.js +22 -11
  210. package/dist/components/toast/toast-provider.css +34 -31
  211. package/dist/components/toast/toast-provider.d.ts +63 -14
  212. package/dist/components/toast/toast-provider.js +174 -111
  213. package/dist/components/toast/toast-provider.module.js +7 -7
  214. package/dist/components/toggle-group-field/toggle-group-field.d.ts +1 -1
  215. package/dist/components/toggle-group-field/toggle-group-field.js +95 -89
  216. package/dist/components/toggle-group-field/toggle-group.css +117 -67
  217. package/dist/components/toggle-group-field/toggle-group.d.ts +2 -2
  218. package/dist/components/toggle-group-field/toggle-group.js +2 -2
  219. package/dist/components/toggle-group-field/toggle-group.module.js +2 -2
  220. package/dist/components/tooltip/tooltip.css +4 -4
  221. package/dist/components/tooltip/tooltip.module.js +1 -1
  222. package/dist/data-table/data-table-content.js +6 -5
  223. package/dist/data-table/data-table-parts.d.ts +41 -13
  224. package/dist/data-table/data-table-parts.js +213 -172
  225. package/dist/data-table/data-table-selection.d.ts +105 -3
  226. package/dist/data-table/data-table-selection.js +654 -145
  227. package/dist/data-table/data-table.css +125 -128
  228. package/dist/data-table/data-table.d.ts +21 -26
  229. package/dist/data-table/data-table.js +20 -23
  230. package/dist/data-table/data-table.module.js +32 -34
  231. package/dist/data-table/index.d.ts +2 -2
  232. package/dist/index.js +3 -3
  233. package/dist/lib/calendar/calendar-navigation.d.ts +39 -5
  234. package/dist/lib/calendar/calendar-navigation.js +185 -118
  235. package/dist/lib/calendar/calendar-parts.d.ts +143 -0
  236. package/dist/lib/calendar/calendar-parts.js +540 -0
  237. package/dist/lib/calendar/calendar-prefab.d.ts +52 -0
  238. package/dist/lib/calendar/calendar-prefab.js +311 -0
  239. package/dist/lib/calendar/calendar-year.d.ts +3 -1
  240. package/dist/lib/calendar/calendar-year.js +139 -131
  241. package/dist/lib/calendar/temporal.css +325 -232
  242. package/dist/lib/calendar/temporal.d.ts +67 -82
  243. package/dist/lib/calendar/temporal.js +258 -569
  244. package/dist/lib/calendar/temporal.module.js +38 -38
  245. package/dist/lib/forms/use-connected-field.d.ts +1 -1
  246. package/dist/lib/forms/use-connected-field.js +1 -1
  247. package/dist/lib/render-as.d.ts +13 -0
  248. package/dist/lib/render-as.js +46 -0
  249. package/dist/tokens.css +6 -3
  250. package/package.json +1 -1
  251. package/tokens/dark.tokens.json +6 -0
  252. package/tokens/sys.tokens.json +7 -0
  253. package/dist/components/button/close-button.d.ts +0 -16
  254. package/dist/components/button/close-button.js +0 -30
@@ -1,76 +1,164 @@
1
1
  @layer kit.reset, kit.base, kit.components;
2
2
  @layer kit.components {
3
- ._root_1bv2o_3 {
3
+ ._root_qb00b_3 {
4
4
  min-inline-size: 0;
5
5
  }
6
- ._wrapper_1bv2o_6 {
6
+ ._wrapper_qb00b_6 {
7
7
  display: contents;
8
8
  }
9
- ._group_1bv2o_9 {
10
- --field-fg: var(--sys-color-text);
11
- --field-muted-fg: var(--sys-color-text-muted);
12
- --field-placeholder-fg: var(--sys-color-text-placeholder);
9
+ ._group_qb00b_9 {
10
+ --_field-fg: var(--field-fg, var(--sys-color-text));
11
+ --_field-muted-fg: var(
12
+ --field-muted-fg,
13
+ var(--sys-color-text-muted)
14
+ );
15
+ --_field-placeholder-fg: var(
16
+ --field-placeholder-fg,
17
+ var(--sys-color-text-placeholder)
18
+ );
19
+ --_field-caret: var(--field-caret, auto);
20
+ }
21
+ ._group_qb00b_9 {
22
+ --_field-fill: var(
23
+ --field-bg,
24
+ var(--sys-color-surface)
25
+ );
13
26
  align-items: center;
14
27
  box-sizing: border-box;
15
- min-block-size: calc(1lh + 2 * var(--sys-unit-6) + 2 * 1px);
16
- border: 1px solid var(--sys-color-border);
17
- border-radius: var(--sys-radius-sm);
18
- background: var(--sys-color-surface);
19
- padding: var(--sys-unit-6);
20
- color: var(--field-fg);
21
- font: var(--sys-font-body-medium);
22
- }
23
- ._group_1bv2o_9 {
24
- outline: 0 solid var(--sys-color-focus-ring);
25
- outline-offset: var(--sys-focus-ring-offset);
26
- }
27
- ._group_1bv2o_9[data-focus-visible] {
28
- outline-width: var(--sys-focus-ring-width);
28
+ min-block-size: var(--field-min-block-size, calc(1lh + 2 * var(--field-pad-y, var(--sys-unit-6)) + 2 * var(--field-border-width, 1px)));
29
+ border: var(--field-border-width, 1px) solid var(--field-border, var(--sys-color-border));
30
+ border-radius: var(--field-radius, var(--sys-radius-sm));
31
+ background: var(--_field-fill);
32
+ padding-block: var(--field-pad-y, var(--sys-unit-6));
33
+ padding-inline: var(--field-pad-start, var(--field-pad-x, var(--sys-unit-6))) var(--field-pad-end, var(--field-pad-x, var(--sys-unit-6)));
34
+ box-shadow: var(--field-shadow, none);
35
+ color: var(--_field-fg);
36
+ font: var(--field-font, var(--sys-font-body-medium));
37
+ caret-color: var(--_field-caret);
38
+ backdrop-filter: var(--field-backdrop-filter, none);
39
+ }
40
+ ._group_qb00b_9 {
41
+ outline: 0 solid var(--field-ring-color, var(--sys-color-focus-ring));
42
+ outline-offset: var(--field-ring-offset, var(--sys-focus-ring-offset));
43
+ }
44
+ ._group_qb00b_9[data-focus-visible] {
45
+ outline-width: var(--field-ring-width, var(--sys-focus-ring-width));
29
46
  }
30
47
  @media not (prefers-reduced-motion) {
31
- ._group_1bv2o_9 {
32
- transition: border-color var(--sys-motion-instant) var(--sys-motion-standard), background var(--sys-motion-instant) var(--sys-motion-standard);
48
+ ._group_qb00b_9 {
49
+ transition: border-color var(--sys-motion-instant) var(--sys-motion-standard), background var(--sys-motion-instant) var(--sys-motion-standard), box-shadow var(--sys-motion-instant) var(--sys-motion-standard);
33
50
  }
34
51
  }
35
- ._group_1bv2o_9:hover:not([data-disabled], [data-readonly]), ._group_1bv2o_9[data-focused], ._group_1bv2o_9[data-popup-open] {
36
- border-color: var(--sys-color-primary);
37
- }
38
- ._group_1bv2o_9[data-readonly] {
39
- --field-fg: var(--sys-color-text);
40
- border-style: dashed;
41
- border-color: var(--sys-color-outline);
42
- background: var(--sys-color-surface-high);
43
- color: var(--field-fg);
44
- }
45
- ._group_1bv2o_9[data-pending] {
52
+ ._group_qb00b_9:hover:not([data-disabled],
53
+ [data-readonly],
54
+ [data-focused],
55
+ [data-popup-open]) {
56
+ border-color: var(--field-hover-border, var(--sys-color-primary));
57
+ }
58
+ ._group_qb00b_9[data-focused], ._group_qb00b_9[data-popup-open] {
59
+ border-width: var(--field-focus-border-width, var(--field-border-width, 1px));
60
+ border-color: var(--field-focus-border, var(--sys-color-primary));
61
+ box-shadow: var(--field-focus-shadow, var(--field-shadow, none));
62
+ }
63
+ ._group_qb00b_9:has(:autofill) {
64
+ --_field-fill: var(
65
+ --field-autofill-bg,
66
+ var(--sys-color-autofill-bg)
67
+ );
68
+ }
69
+ ._group_qb00b_9[data-readonly] {
70
+ --_field-fg: var(
71
+ --field-readonly-fg,
72
+ var(--sys-color-text)
73
+ );
74
+ --_field-fill: var(
75
+ --field-readonly-bg,
76
+ var(--sys-color-surface-high)
77
+ );
78
+ border-style: var(--field-readonly-border-style, dashed);
79
+ border-color: var(--field-readonly-border, var(--sys-color-outline));
80
+ background: var(--_field-fill);
81
+ color: var(--_field-fg);
82
+ }
83
+ ._group_qb00b_9[data-pending] {
46
84
  cursor: progress;
47
- caret-color: var(--sys-color-text-muted);
48
- }
49
- ._group_1bv2o_9[data-invalid] {
50
- --field-fg: var(--sys-color-error-fg);
51
- --field-muted-fg: var(--sys-color-error-fg);
52
- --field-placeholder-fg: var(--sys-color-error-fg);
53
- border-color: var(--sys-color-error-fg);
54
- background-color: var(--sys-color-error-bg);
55
- color: var(--field-fg);
56
- }
57
- ._group_1bv2o_9[data-disabled] {
58
- --field-fg: var(--sys-color-disabled-fg);
59
- --field-muted-fg: var(--sys-color-disabled-fg);
60
- --field-placeholder-fg: var(--sys-color-disabled-fg);
61
- color: var(--sys-color-disabled-fg);
85
+ caret-color: var(--field-pending-caret, var(--sys-color-text-muted));
86
+ }
87
+ ._group_qb00b_9[data-invalid] {
88
+ --_field-fg: var(
89
+ --field-invalid-fg,
90
+ var(--sys-color-error-fg)
91
+ );
92
+ --_field-muted-fg: var(
93
+ --field-invalid-muted-fg,
94
+ var(--field-invalid-fg, var(--sys-color-error-fg))
95
+ );
96
+ --_field-placeholder-fg: var(
97
+ --field-invalid-placeholder-fg,
98
+ var(--field-invalid-fg, var(--sys-color-error-fg))
99
+ );
100
+ --_field-fill: var(
101
+ --field-invalid-bg,
102
+ var(--sys-color-error-bg)
103
+ );
104
+ border-color: var(--field-invalid-border, var(--sys-color-error-fg));
105
+ background-color: var(--_field-fill);
106
+ color: var(--_field-fg);
107
+ border-width: var(--field-invalid-border-width, var(--field-border-width, 1px));
108
+ box-shadow: var(--field-invalid-shadow, var(--field-shadow, none));
109
+ }
110
+ ._group_qb00b_9[data-disabled] {
111
+ --_field-fg: var(
112
+ --field-disabled-fg,
113
+ var(--sys-color-disabled-fg)
114
+ );
115
+ --_field-muted-fg: var(
116
+ --field-disabled-muted-fg,
117
+ var(--field-disabled-fg, var(--sys-color-disabled-fg))
118
+ );
119
+ --_field-placeholder-fg: var(
120
+ --field-disabled-placeholder-fg,
121
+ var(--field-disabled-fg, var(--sys-color-disabled-fg))
122
+ );
123
+ color: var(--field-disabled-fg, var(--sys-color-disabled-fg));
62
124
  cursor: not-allowed;
63
- background: var(--sys-color-disabled-bg);
125
+ --_field-fill: var(
126
+ --field-disabled-bg,
127
+ var(--sys-color-disabled-bg)
128
+ );
64
129
  }
65
- ._group_1bv2o_9 {
130
+ ._group_qb00b_9 {
66
131
  position: relative;
67
132
  display: flex;
68
- gap: var(--sys-unit-4);
133
+ gap: var(--field-inlay-gap, var(--sys-unit-4));
69
134
  }
70
- ._group_1bv2o_9 {
135
+ ._group_qb00b_9 {
71
136
  inline-size: 100%;
72
137
  }
73
- ._input_1bv2o_73 {
138
+ ._input_qb00b_138::-webkit-search-cancel-button {
139
+ display: none;
140
+ appearance: none;
141
+ }
142
+ ._input_qb00b_138::-webkit-search-decoration {
143
+ display: none;
144
+ appearance: none;
145
+ }
146
+ ._input_qb00b_138 {
147
+ line-height: normal;
148
+ }
149
+ ._input_qb00b_138:autofill {
150
+ box-shadow: inset 0 0 0 100vmax var(--_field-fill);
151
+ -webkit-text-fill-color: var(--_field-fg);
152
+ caret-color: var(--_field-caret, var(--_field-fg));
153
+ filter: none;
154
+ }
155
+ ._input_qb00b_138:-webkit-autofill {
156
+ box-shadow: inset 0 0 0 100vmax var(--_field-fill);
157
+ -webkit-text-fill-color: var(--_field-fg);
158
+ caret-color: var(--_field-caret, var(--_field-fg));
159
+ filter: none;
160
+ }
161
+ ._input_qb00b_138 {
74
162
  flex: 1;
75
163
  min-inline-size: 0;
76
164
  border: none;
@@ -78,33 +166,34 @@
78
166
  padding: 0;
79
167
  color: inherit;
80
168
  font: inherit;
169
+ }
170
+ ._input_qb00b_138::placeholder {
171
+ color: var(--_field-placeholder-fg);
172
+ }
173
+ ._input_qb00b_138 {
81
174
  font-variant-numeric: tabular-nums;
82
175
  text-align: var(--number-field-text-align, end);
83
176
  cursor: text;
84
- line-height: normal;
85
- }
86
- ._input_1bv2o_73::placeholder {
87
- color: var(--field-placeholder-fg);
88
177
  }
89
- ._inlay_1bv2o_89 {
178
+ ._inlay_qb00b_178 {
90
179
  display: inline-flex;
91
180
  flex: none;
92
181
  align-items: center;
93
- gap: var(--sys-unit-2);
94
- color: var(--field-muted-fg);
95
- font: var(--sys-font-body-medium);
182
+ gap: var(--field-inlay-content-gap, var(--sys-unit-2));
183
+ color: var(--field-inlay-fg, var(--_field-muted-fg));
184
+ font: var(--field-inlay-font, var(--sys-font-body-medium));
96
185
  cursor: default;
97
186
  pointer-events: none;
98
187
  line-height: normal;
99
188
  }
100
- ._action_1bv2o_100 {
189
+ ._action_qb00b_189 {
101
190
  position: relative;
102
191
  flex: none;
103
- margin-block: calc(-1 * var(--sys-unit-6));
192
+ margin-block: calc(-1 * var(--field-pad-y, var(--sys-unit-6)));
104
193
  cursor: pointer;
105
194
  }
106
195
  @media (any-pointer: coarse) {
107
- ._action_1bv2o_100::before {
196
+ ._action_qb00b_189::before {
108
197
  content: "";
109
198
  position: absolute;
110
199
  inset: 50%;
@@ -1,5 +1,5 @@
1
1
  import type { ReactNode } from "react";
2
- import type { FieldBlurHandler, FieldProps } from "../field/index.ts";
2
+ import { type FieldBlurHandler, type FieldProps } from "../field/index.ts";
3
3
  import { type NumberInputInputProps, type NumberInputRootProps } from "./number-input.tsx";
4
4
  export type NumberFieldProps = FieldProps & Omit<NumberInputRootProps, keyof FieldProps | "children"> & Pick<NumberInputInputProps, "placeholder" | "autoComplete" | "enterKeyHint" | "onFocus"> & Readonly<{
5
5
  onBlur?: FieldBlurHandler;
@@ -37,4 +37,4 @@ export type NumberFieldProps = FieldProps & Omit<NumberInputRootProps, keyof Fie
37
37
  * onValueChange={setRate}
38
38
  * />
39
39
  */
40
- export declare const NumberField: ({ label, description, prefix, suffix, decrementLabel, incrementLabel, decrementIcon, incrementIcon, roleDescription, placeholder, autoComplete, enterKeyHint, onBlur, onFocus, ...rootProps }: NumberFieldProps) => ReactNode;
40
+ export declare const NumberField: ({ label, description, prefix, suffix, decrementLabel, incrementLabel, decrementIcon, incrementIcon, roleDescription, placeholder, autoComplete, enterKeyHint, onBlur, onFocus, optionalLabel, ...rootProps }: NumberFieldProps) => ReactNode;
@@ -1,4 +1,7 @@
1
+ import { IconButton } from "../button/button.js";
2
+ import { Field } from "../field/field.js";
1
3
  import { NumberInput } from "./number-input.js";
4
+ import { Spinner } from "../spinner/spinner.js";
2
5
  import { c } from "react/compiler-runtime";
3
6
  import { jsx, jsxs } from "react/jsx-runtime";
4
7
  // src/components/number-field/number-field.tsx
@@ -22,7 +25,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
22
25
  * />
23
26
  */
24
27
  var NumberField = (t0) => {
25
- const $ = c(50);
28
+ const $ = c(54);
26
29
  let autoComplete;
27
30
  let decrementIcon;
28
31
  let decrementLabel;
@@ -33,13 +36,14 @@ var NumberField = (t0) => {
33
36
  let label;
34
37
  let onBlur;
35
38
  let onFocus;
39
+ let optionalLabel;
36
40
  let placeholder;
37
41
  let prefix;
38
42
  let roleDescription;
39
43
  let rootProps;
40
44
  let suffix;
41
45
  if ($[0] !== t0) {
42
- ({label, description, prefix, suffix, decrementLabel, incrementLabel, decrementIcon, incrementIcon, roleDescription, placeholder, autoComplete, enterKeyHint, onBlur, onFocus, ...rootProps} = t0);
46
+ ({label, description, prefix, suffix, decrementLabel, incrementLabel, decrementIcon, incrementIcon, roleDescription, placeholder, autoComplete, enterKeyHint, onBlur, onFocus, optionalLabel, ...rootProps} = t0);
43
47
  $[0] = t0;
44
48
  $[1] = autoComplete;
45
49
  $[2] = decrementIcon;
@@ -51,11 +55,12 @@ var NumberField = (t0) => {
51
55
  $[8] = label;
52
56
  $[9] = onBlur;
53
57
  $[10] = onFocus;
54
- $[11] = placeholder;
55
- $[12] = prefix;
56
- $[13] = roleDescription;
57
- $[14] = rootProps;
58
- $[15] = suffix;
58
+ $[11] = optionalLabel;
59
+ $[12] = placeholder;
60
+ $[13] = prefix;
61
+ $[14] = roleDescription;
62
+ $[15] = rootProps;
63
+ $[16] = suffix;
59
64
  } else {
60
65
  autoComplete = $[1];
61
66
  decrementIcon = $[2];
@@ -67,37 +72,51 @@ var NumberField = (t0) => {
67
72
  label = $[8];
68
73
  onBlur = $[9];
69
74
  onFocus = $[10];
70
- placeholder = $[11];
71
- prefix = $[12];
72
- roleDescription = $[13];
73
- rootProps = $[14];
74
- suffix = $[15];
75
+ optionalLabel = $[11];
76
+ placeholder = $[12];
77
+ prefix = $[13];
78
+ roleDescription = $[14];
79
+ rootProps = $[15];
80
+ suffix = $[16];
75
81
  }
76
82
  let t1;
77
- if ($[16] !== label) {
78
- t1 = /* @__PURE__ */ jsx(NumberInput.Label, { children: label });
79
- $[16] = label;
80
- $[17] = t1;
81
- } else t1 = $[17];
83
+ if ($[17] !== optionalLabel) {
84
+ t1 = /* @__PURE__ */ jsx(Field.Requiredness, { optionalLabel });
85
+ $[17] = optionalLabel;
86
+ $[18] = t1;
87
+ } else t1 = $[18];
82
88
  let t2;
83
- if ($[18] !== decrementIcon || $[19] !== decrementLabel) {
84
- t2 = /* @__PURE__ */ jsx(NumberInput.Decrement, {
89
+ if ($[19] !== label || $[20] !== t1) {
90
+ t2 = /* @__PURE__ */ jsxs(NumberInput.Label, { children: [
91
+ label,
92
+ " ",
93
+ t1
94
+ ] });
95
+ $[19] = label;
96
+ $[20] = t1;
97
+ $[21] = t2;
98
+ } else t2 = $[21];
99
+ let t3;
100
+ if ($[22] !== decrementIcon || $[23] !== decrementLabel) {
101
+ t3 = /* @__PURE__ */ jsx(NumberInput.Decrement, { render: /* @__PURE__ */ jsx(IconButton, {
85
102
  label: decrementLabel,
103
+ variant: "tertiary",
104
+ size: "sm",
86
105
  children: decrementIcon
87
- });
88
- $[18] = decrementIcon;
89
- $[19] = decrementLabel;
90
- $[20] = t2;
91
- } else t2 = $[20];
92
- let t3;
93
- if ($[21] !== prefix) {
94
- t3 = prefix !== void 0 && /* @__PURE__ */ jsx(NumberInput.Affix, { children: prefix });
95
- $[21] = prefix;
96
- $[22] = t3;
97
- } else t3 = $[22];
106
+ }) });
107
+ $[22] = decrementIcon;
108
+ $[23] = decrementLabel;
109
+ $[24] = t3;
110
+ } else t3 = $[24];
98
111
  let t4;
99
- if ($[23] !== autoComplete || $[24] !== enterKeyHint || $[25] !== onBlur || $[26] !== onFocus || $[27] !== placeholder || $[28] !== roleDescription) {
100
- t4 = /* @__PURE__ */ jsx(NumberInput.Input, {
112
+ if ($[25] !== prefix) {
113
+ t4 = prefix !== void 0 && /* @__PURE__ */ jsx(NumberInput.Affix, { children: prefix });
114
+ $[25] = prefix;
115
+ $[26] = t4;
116
+ } else t4 = $[26];
117
+ let t5;
118
+ if ($[27] !== autoComplete || $[28] !== enterKeyHint || $[29] !== onBlur || $[30] !== onFocus || $[31] !== placeholder || $[32] !== roleDescription) {
119
+ t5 = /* @__PURE__ */ jsx(NumberInput.Input, {
101
120
  "aria-roledescription": roleDescription,
102
121
  placeholder,
103
122
  autoComplete,
@@ -105,80 +124,82 @@ var NumberField = (t0) => {
105
124
  onBlur,
106
125
  onFocus
107
126
  });
108
- $[23] = autoComplete;
109
- $[24] = enterKeyHint;
110
- $[25] = onBlur;
111
- $[26] = onFocus;
112
- $[27] = placeholder;
113
- $[28] = roleDescription;
114
- $[29] = t4;
115
- } else t4 = $[29];
116
- let t5;
117
- if ($[30] !== suffix) {
118
- t5 = suffix !== void 0 && /* @__PURE__ */ jsx(NumberInput.Affix, { children: suffix });
119
- $[30] = suffix;
120
- $[31] = t5;
121
- } else t5 = $[31];
127
+ $[27] = autoComplete;
128
+ $[28] = enterKeyHint;
129
+ $[29] = onBlur;
130
+ $[30] = onFocus;
131
+ $[31] = placeholder;
132
+ $[32] = roleDescription;
133
+ $[33] = t5;
134
+ } else t5 = $[33];
122
135
  let t6;
123
- if ($[32] === Symbol.for("react.memo_cache_sentinel")) {
124
- t6 = /* @__PURE__ */ jsx(NumberInput.Pending, {});
125
- $[32] = t6;
126
- } else t6 = $[32];
136
+ if ($[34] !== suffix) {
137
+ t6 = suffix !== void 0 && /* @__PURE__ */ jsx(NumberInput.Affix, { children: suffix });
138
+ $[34] = suffix;
139
+ $[35] = t6;
140
+ } else t6 = $[35];
127
141
  let t7;
128
- if ($[33] !== incrementIcon || $[34] !== incrementLabel) {
129
- t7 = /* @__PURE__ */ jsx(NumberInput.Increment, {
142
+ if ($[36] === Symbol.for("react.memo_cache_sentinel")) {
143
+ t7 = /* @__PURE__ */ jsx(NumberInput.Pending, { children: /* @__PURE__ */ jsx(Spinner, { size: 1 }) });
144
+ $[36] = t7;
145
+ } else t7 = $[36];
146
+ let t8;
147
+ if ($[37] !== incrementIcon || $[38] !== incrementLabel) {
148
+ t8 = /* @__PURE__ */ jsx(NumberInput.Increment, { render: /* @__PURE__ */ jsx(IconButton, {
130
149
  label: incrementLabel,
150
+ variant: "tertiary",
151
+ size: "sm",
131
152
  children: incrementIcon
132
- });
133
- $[33] = incrementIcon;
134
- $[34] = incrementLabel;
135
- $[35] = t7;
136
- } else t7 = $[35];
137
- let t8;
138
- if ($[36] !== t2 || $[37] !== t3 || $[38] !== t4 || $[39] !== t5 || $[40] !== t7) {
139
- t8 = /* @__PURE__ */ jsxs(NumberInput.Group, { children: [
140
- t2,
153
+ }) });
154
+ $[37] = incrementIcon;
155
+ $[38] = incrementLabel;
156
+ $[39] = t8;
157
+ } else t8 = $[39];
158
+ let t9;
159
+ if ($[40] !== t3 || $[41] !== t4 || $[42] !== t5 || $[43] !== t6 || $[44] !== t8) {
160
+ t9 = /* @__PURE__ */ jsxs(NumberInput.Group, { children: [
141
161
  t3,
142
162
  t4,
143
163
  t5,
144
164
  t6,
145
- t7
165
+ t7,
166
+ t8
146
167
  ] });
147
- $[36] = t2;
148
- $[37] = t3;
149
- $[38] = t4;
150
- $[39] = t5;
151
- $[40] = t7;
152
- $[41] = t8;
153
- } else t8 = $[41];
154
- let t9;
155
- if ($[42] !== description) {
156
- t9 = /* @__PURE__ */ jsx(NumberInput.Description, { children: description });
157
- $[42] = description;
158
- $[43] = t9;
159
- } else t9 = $[43];
168
+ $[40] = t3;
169
+ $[41] = t4;
170
+ $[42] = t5;
171
+ $[43] = t6;
172
+ $[44] = t8;
173
+ $[45] = t9;
174
+ } else t9 = $[45];
160
175
  let t10;
161
- if ($[44] === Symbol.for("react.memo_cache_sentinel")) {
162
- t10 = /* @__PURE__ */ jsx(NumberInput.Error, {});
163
- $[44] = t10;
164
- } else t10 = $[44];
176
+ if ($[46] !== description) {
177
+ t10 = /* @__PURE__ */ jsx(NumberInput.Description, { children: description });
178
+ $[46] = description;
179
+ $[47] = t10;
180
+ } else t10 = $[47];
165
181
  let t11;
166
- if ($[45] !== rootProps || $[46] !== t1 || $[47] !== t8 || $[48] !== t9) {
167
- t11 = /* @__PURE__ */ jsxs(NumberInput.Root, {
182
+ if ($[48] === Symbol.for("react.memo_cache_sentinel")) {
183
+ t11 = /* @__PURE__ */ jsx(NumberInput.Error, {});
184
+ $[48] = t11;
185
+ } else t11 = $[48];
186
+ let t12;
187
+ if ($[49] !== rootProps || $[50] !== t10 || $[51] !== t2 || $[52] !== t9) {
188
+ t12 = /* @__PURE__ */ jsxs(NumberInput.Root, {
168
189
  ...rootProps,
169
190
  children: [
170
- t1,
171
- t8,
191
+ t2,
172
192
  t9,
173
- t10
193
+ t10,
194
+ t11
174
195
  ]
175
196
  });
176
- $[45] = rootProps;
177
- $[46] = t1;
178
- $[47] = t8;
179
- $[48] = t9;
180
- $[49] = t11;
181
- } else t11 = $[49];
182
- return t11;
197
+ $[49] = rootProps;
198
+ $[50] = t10;
199
+ $[51] = t2;
200
+ $[52] = t9;
201
+ $[53] = t12;
202
+ } else t12 = $[53];
203
+ return t12;
183
204
  };
184
205
  export { NumberField };
@@ -1,10 +1,10 @@
1
1
  import './number-field.css';// src/components/number-field/number-field.module.scss
2
- var root = "_root_1bv2o_3";
3
- var wrapper = "_wrapper_1bv2o_6";
4
- var group = "_group_1bv2o_9";
5
- var input = "_input_1bv2o_73";
6
- var inlay = "_inlay_1bv2o_89";
7
- var action = "_action_1bv2o_100";
2
+ var root = "_root_qb00b_3";
3
+ var wrapper = "_wrapper_qb00b_6";
4
+ var group = "_group_qb00b_9";
5
+ var input = "_input_qb00b_138";
6
+ var inlay = "_inlay_qb00b_178";
7
+ var action = "_action_qb00b_189";
8
8
  var number_field_module_default = {
9
9
  root,
10
10
  wrapper,
@@ -1,8 +1,9 @@
1
1
  import { NumberField as BaseNumberField } from "@base-ui/react/number-field";
2
+ import { useRender } from "@base-ui/react/use-render";
2
3
  import type { ComponentProps, ReactNode } from "react";
3
4
  import { Field, type FieldProps, type FieldState } from "../field/index.ts";
4
5
  import { InputError, type InputErrorProps, InputLabel, type InputLabelProps, InputPending, type InputPendingProps } from "../field/input-parts.tsx";
5
- export type NumberInputRootProps = Omit<FieldProps, "label" | "description"> & Readonly<{
6
+ export type NumberInputRootProps = Omit<FieldProps, "label" | "description" | "optionalLabel"> & Readonly<{
6
7
  value: number | null;
7
8
  onValueChange: (value: number | null) => void;
8
9
  /** How the amount is rendered and parsed inside the control. */
@@ -24,9 +25,9 @@ export type NumberInputRootProps = Omit<FieldProps, "label" | "description"> & R
24
25
  * and projecting its state onto every part.
25
26
  *
26
27
  * @example
27
- * <NumberInput.Root value={hours} onValueChange={setHours} optionalLabel="optional">…</NumberInput.Root>
28
+ * <NumberInput.Root value={hours} onValueChange={setHours}>…</NumberInput.Root>
28
29
  */
29
- declare const NumberInputRoot: ({ value, onValueChange, format, min, max, step, disabled, readOnly, requiredness, optionalLabel, errors, dirty, touched, pending, state, name, id, className, children, }: NumberInputRootProps) => ReactNode;
30
+ declare const NumberInputRoot: ({ value, onValueChange, format, min, max, step, disabled, readOnly, requiredness, errors, dirty, touched, pending, state, name, id, className, children, }: NumberInputRootProps) => ReactNode;
30
31
  export type NumberInputLabelProps = InputLabelProps;
31
32
  export type NumberInputGroupProps = Omit<BaseNumberField.Group.Props, "className"> & Readonly<{
32
33
  className?: string;
@@ -62,27 +63,38 @@ export type NumberInputInputProps = Omit<BaseNumberField.Input.Props, "className
62
63
  * <NumberInput.Input aria-roledescription="Number field" />
63
64
  */
64
65
  declare const NumberInputInput: ({ className, ...props }: NumberInputInputProps) => ReactNode;
65
- export type NumberInputStepProps = Readonly<{
66
- /** Accessible name and tooltip hint, such as "Increase". */
67
- label: string;
68
- className?: string;
69
- /** The icon the button shows. */
70
- children: ReactNode;
66
+ export type NumberInputStepProps = Omit<BaseNumberField.Decrement.Props, "render" | "children"> & Readonly<{
67
+ /** The button to render, such as `<IconButton label="Increase" variant="tertiary" size="sm"><AddIcon /></IconButton>`. */
68
+ render: useRender.RenderProp;
71
69
  }>;
72
70
  /**
73
- * The icon-only button that steps the value down.
71
+ * The button that steps the value down. It renders whichever button it is
72
+ * given.
74
73
  *
75
74
  * @example
76
- * <NumberInput.Decrement label="Decrease"><RemoveIcon /></NumberInput.Decrement>
75
+ * <NumberInput.Decrement
76
+ * render={
77
+ * <IconButton label="Decrease" variant="tertiary" size="sm">
78
+ * <RemoveIcon />
79
+ * </IconButton>
80
+ * }
81
+ * />
77
82
  */
78
- declare const NumberInputDecrement: ({ label, className, children, }: NumberInputStepProps) => ReactNode;
83
+ declare const NumberInputDecrement: ({ render, className, ...props }: NumberInputStepProps) => ReactNode;
79
84
  /**
80
- * The icon-only button that steps the value up.
85
+ * The button that steps the value up. It renders whichever button it is
86
+ * given.
81
87
  *
82
88
  * @example
83
- * <NumberInput.Increment label="Increase"><AddIcon /></NumberInput.Increment>
89
+ * <NumberInput.Increment
90
+ * render={
91
+ * <IconButton label="Increase" variant="tertiary" size="sm">
92
+ * <AddIcon />
93
+ * </IconButton>
94
+ * }
95
+ * />
84
96
  */
85
- declare const NumberInputIncrement: ({ label, className, children, }: NumberInputStepProps) => ReactNode;
97
+ declare const NumberInputIncrement: ({ render, className, ...props }: NumberInputStepProps) => ReactNode;
86
98
  export type NumberInputPendingProps = InputPendingProps;
87
99
  export type NumberInputErrorProps = InputErrorProps;
88
100
  /** The parts of a number input. */
@@ -107,16 +119,24 @@ export type NumberInputParts = Readonly<{
107
119
  * description too. `Error` renders the errors `Root` was given.
108
120
  *
109
121
  * @example
110
- * <NumberInput.Root value={hours} onValueChange={setHours} optionalLabel="optional">
111
- * <NumberInput.Label>Hours</NumberInput.Label>
122
+ * <NumberInput.Root value={hours} onValueChange={setHours} requiredness="optional">
123
+ * <NumberInput.Label>Hours <Field.Requiredness optionalLabel="optional" /></NumberInput.Label>
112
124
  * <NumberInput.Group>
113
- * <NumberInput.Decrement label="Decrease">
114
- * <RemoveIcon />
115
- * </NumberInput.Decrement>
125
+ * <NumberInput.Decrement
126
+ * render={
127
+ * <IconButton label="Decrease" variant="tertiary" size="sm">
128
+ * <RemoveIcon />
129
+ * </IconButton>
130
+ * }
131
+ * />
116
132
  * <NumberInput.Input aria-roledescription="Number field" />
117
- * <NumberInput.Increment label="Increase">
118
- * <AddIcon />
119
- * </NumberInput.Increment>
133
+ * <NumberInput.Increment
134
+ * render={
135
+ * <IconButton label="Increase" variant="tertiary" size="sm">
136
+ * <AddIcon />
137
+ * </IconButton>
138
+ * }
139
+ * />
120
140
  * </NumberInput.Group>
121
141
  * <NumberInput.Error />
122
142
  * </NumberInput.Root>