@igne-agency/react-web-ui 0.3.0 → 0.4.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 (292) hide show
  1. package/README.md +32 -1
  2. package/dist/components/accordion/accordion.css +24 -19
  3. package/dist/components/accordion/accordion.d.ts +19 -3
  4. package/dist/components/accordion/accordion.js +86 -32
  5. package/dist/components/accordion/accordion.module.js +8 -8
  6. package/dist/components/active-filters/active-filter-describers.d.ts +1 -1
  7. package/dist/components/active-filters/active-filter-describers.js +1 -1
  8. package/dist/components/active-filters/active-filters.d.ts +35 -2
  9. package/dist/components/active-filters/active-filters.js +57 -52
  10. package/dist/components/active-filters/index.js +2 -2
  11. package/dist/components/attachment-tile/attachment-preview.d.ts +11 -9
  12. package/dist/components/attachment-tile/attachment-preview.js +102 -68
  13. package/dist/components/attachment-tile/attachment-tile.css +22 -13
  14. package/dist/components/attachment-tile/attachment-tile.d.ts +51 -6
  15. package/dist/components/attachment-tile/attachment-tile.js +209 -85
  16. package/dist/components/attachment-tile/attachment-tile.module.js +10 -10
  17. package/dist/components/attachment-tile/index.d.ts +1 -1
  18. package/dist/components/attachment-tile/index.js +2 -2
  19. package/dist/components/avatar/avatar.d.ts +5 -5
  20. package/dist/components/avatar/avatar.js +64 -37
  21. package/dist/components/avatar-group/avatar-group.js +2 -2
  22. package/dist/components/badge/badge.js +1 -1
  23. package/dist/components/breadcrumbs/breadcrumbs.d.ts +22 -7
  24. package/dist/components/breadcrumbs/breadcrumbs.js +189 -170
  25. package/dist/components/button/button.d.ts +2 -3
  26. package/dist/components/button/button.js +58 -77
  27. package/dist/components/button/close-button.d.ts +4 -2
  28. package/dist/components/button/close-button.js +9 -9
  29. package/dist/components/checkbox-field/checkbox-field.d.ts +17 -3
  30. package/dist/components/checkbox-field/checkbox-field.js +108 -131
  31. package/dist/components/checkbox-field/checkbox.css +26 -34
  32. package/dist/components/checkbox-field/checkbox.d.ts +51 -8
  33. package/dist/components/checkbox-field/checkbox.js +221 -57
  34. package/dist/components/checkbox-field/checkbox.module.js +6 -8
  35. package/dist/components/checkbox-field/index.d.ts +0 -1
  36. package/dist/components/checkbox-field/index.js +1 -2
  37. package/dist/components/checkbox-field/tsf-checkbox-field.d.ts +2 -2
  38. package/dist/components/checkbox-group-field/checkbox-group-field.d.ts +4 -1
  39. package/dist/components/checkbox-group-field/checkbox-group-field.js +54 -50
  40. package/dist/components/checkbox-group-field/checkbox-group.d.ts +7 -2
  41. package/dist/components/checkbox-group-field/checkbox-group.js +8 -3
  42. package/dist/components/collapsible/collapsible.css +23 -18
  43. package/dist/components/collapsible/collapsible.d.ts +18 -3
  44. package/dist/components/collapsible/collapsible.js +85 -32
  45. package/dist/components/collapsible/collapsible.module.js +7 -7
  46. package/dist/components/combobox-field/combobox-field.d.ts +9 -1
  47. package/dist/components/combobox-field/combobox-field.js +195 -175
  48. package/dist/components/combobox-field/combobox-items.d.ts +2 -2
  49. package/dist/components/combobox-field/combobox-items.js +4 -4
  50. package/dist/components/combobox-field/combobox.css +99 -96
  51. package/dist/components/combobox-field/combobox.d.ts +94 -15
  52. package/dist/components/combobox-field/combobox.js +484 -159
  53. package/dist/components/combobox-field/combobox.module.js +21 -21
  54. package/dist/components/combobox-field/index.d.ts +0 -1
  55. package/dist/components/combobox-field/selection.d.ts +4 -1
  56. package/dist/components/combobox-field/value-state-view.css +7 -3
  57. package/dist/components/combobox-field/value-state-view.d.ts +4 -2
  58. package/dist/components/combobox-field/value-state-view.js +15 -15
  59. package/dist/components/combobox-field/value-state-view.module.js +6 -4
  60. package/dist/components/composer/composer-attachments.d.ts +11 -3
  61. package/dist/components/composer/composer-attachments.js +61 -47
  62. package/dist/components/composer/composer-editor.d.ts +2 -1
  63. package/dist/components/composer/composer-editor.js +79 -71
  64. package/dist/components/composer/composer-mentions.js +2 -2
  65. package/dist/components/composer/composer.d.ts +42 -21
  66. package/dist/components/composer/composer.js +201 -58
  67. package/dist/components/composer/mention-text.js +3 -3
  68. package/dist/components/confirm-dialog/confirm-dialog.d.ts +8 -7
  69. package/dist/components/confirm-dialog/confirm-dialog.js +10 -9
  70. package/dist/components/conversation/conversation.context.d.ts +0 -5
  71. package/dist/components/conversation/conversation.d.ts +63 -29
  72. package/dist/components/conversation/conversation.js +193 -82
  73. package/dist/components/conversation/index.d.ts +1 -1
  74. package/dist/components/date-field/date-field.d.ts +10 -4
  75. package/dist/components/date-field/date-field.js +57 -43
  76. package/dist/components/date-field/date-input.d.ts +20 -3
  77. package/dist/components/date-field/date-input.js +28 -13
  78. package/dist/components/date-field/index.d.ts +1 -1
  79. package/dist/components/date-field/tsf-date-field.d.ts +1 -1
  80. package/dist/components/date-field/tsf-date-field.js +1 -1
  81. package/dist/components/date-range-field/date-range-field.d.ts +8 -4
  82. package/dist/components/date-range-field/date-range-field.js +57 -45
  83. package/dist/components/date-range-field/date-range-input.d.ts +20 -3
  84. package/dist/components/date-range-field/date-range-input.js +27 -12
  85. package/dist/components/date-range-field/tsf-date-range-field.d.ts +1 -1
  86. package/dist/components/date-range-field/tsf-date-range-field.js +1 -1
  87. package/dist/components/detail-list/detail-list.d.ts +28 -27
  88. package/dist/components/detail-list/detail-list.js +177 -121
  89. package/dist/components/dialog/dialog.d.ts +47 -27
  90. package/dist/components/dialog/dialog.js +101 -38
  91. package/dist/components/divider/divider.js +1 -1
  92. package/dist/components/drawer/drawer.d.ts +48 -30
  93. package/dist/components/drawer/drawer.js +113 -41
  94. package/dist/components/email-field/email-field.d.ts +5 -3
  95. package/dist/components/email-field/email-field.js +1 -3
  96. package/dist/components/email-field/tsf-email-field.d.ts +3 -2
  97. package/dist/components/empty-message/empty-message.d.ts +3 -3
  98. package/dist/components/empty-message/empty-message.js +3 -3
  99. package/dist/components/error-boundary/error-boundary.d.ts +5 -2
  100. package/dist/components/error-boundary/error-boundary.js +2 -3
  101. package/dist/components/error-message/error-message.d.ts +1 -1
  102. package/dist/components/error-message/error-message.js +1 -1
  103. package/dist/components/error-text/error-text.js +3 -3
  104. package/dist/components/field/field.d.ts +5 -5
  105. package/dist/components/field/field.js +9 -9
  106. package/dist/components/field/index.js +2 -2
  107. package/dist/components/field/input-parts.js +1 -1
  108. package/dist/components/field-placeholder/field-placeholder.d.ts +4 -1
  109. package/dist/components/field-placeholder/field-placeholder.js +41 -26
  110. package/dist/components/fieldset/field-group.js +1 -1
  111. package/dist/components/fieldset/fieldset-root.js +1 -1
  112. package/dist/components/fieldset/fieldset.css +4 -3
  113. package/dist/components/fieldset/fieldset.js +1 -1
  114. package/dist/components/fieldset/fieldset.module.js +2 -2
  115. package/dist/components/file-field/file-field.css +19 -15
  116. package/dist/components/file-field/file-field.d.ts +10 -1
  117. package/dist/components/file-field/file-field.js +130 -109
  118. package/dist/components/file-field/file-field.module.js +6 -4
  119. package/dist/components/file-field/file-input.d.ts +32 -9
  120. package/dist/components/file-field/file-input.js +94 -74
  121. package/dist/components/filter-bar/filter-bar.d.ts +79 -51
  122. package/dist/components/filter-bar/filter-bar.js +552 -216
  123. package/dist/components/form/form.d.ts +4 -6
  124. package/dist/components/form/form.js +6 -8
  125. package/dist/components/icon/icon.d.ts +5 -10
  126. package/dist/components/icon/icon.js +4 -6
  127. package/dist/components/link/link.js +1 -1
  128. package/dist/components/link-button/link-button.d.ts +1 -2
  129. package/dist/components/link-button/link-button.js +12 -22
  130. package/dist/components/loading-message/loading-message.d.ts +2 -2
  131. package/dist/components/loading-message/loading-message.js +1 -1
  132. package/dist/components/locale-provider/locale-provider.js +1 -1
  133. package/dist/components/menu/menu.d.ts +40 -22
  134. package/dist/components/menu/menu.js +100 -40
  135. package/dist/components/nav/nav-context.d.ts +0 -1
  136. package/dist/components/nav/nav-context.js +1 -2
  137. package/dist/components/nav/nav-item-view.d.ts +7 -7
  138. package/dist/components/nav/nav-item-view.js +27 -51
  139. package/dist/components/nav/nav.css +72 -60
  140. package/dist/components/nav/nav.d.ts +15 -8
  141. package/dist/components/nav/nav.js +105 -52
  142. package/dist/components/nav/nav.module.js +14 -14
  143. package/dist/components/number-field/number-field.d.ts +7 -1
  144. package/dist/components/number-field/number-field.js +98 -82
  145. package/dist/components/number-field/number-input.d.ts +53 -4
  146. package/dist/components/number-field/number-input.js +68 -21
  147. package/dist/components/number-field/tsf-number-field.d.ts +1 -1
  148. package/dist/components/number-field/tsf-number-field.js +1 -1
  149. package/dist/components/otp-field/otp-input.d.ts +25 -0
  150. package/dist/components/otp-field/otp-input.js +26 -1
  151. package/dist/components/pagination/pagination.d.ts +82 -23
  152. package/dist/components/pagination/pagination.js +656 -229
  153. package/dist/components/password-field/password-field.d.ts +7 -1
  154. package/dist/components/password-field/password-field.js +117 -126
  155. package/dist/components/password-field/password-strength.js +1 -1
  156. package/dist/components/password-field/tsf-password-field.d.ts +1 -1
  157. package/dist/components/password-field/tsf-password-field.js +1 -1
  158. package/dist/components/photo-field/photo-field.d.ts +17 -3
  159. package/dist/components/photo-field/photo-field.js +168 -89
  160. package/dist/components/photo-field/photo-input-context.d.ts +25 -0
  161. package/dist/components/photo-field/photo-input-context.js +14 -0
  162. package/dist/components/photo-field/photo-input.d.ts +58 -23
  163. package/dist/components/photo-field/photo-input.js +459 -261
  164. package/dist/components/popover/popover.d.ts +55 -23
  165. package/dist/components/popover/popover.js +205 -61
  166. package/dist/components/radio-group-field/radio-group.js +1 -1
  167. package/dist/components/search-field/search-field.d.ts +7 -5
  168. package/dist/components/search-field/search-field.js +4 -6
  169. package/dist/components/search-field/tsf-search-field.d.ts +1 -1
  170. package/dist/components/search-field/tsf-search-field.js +1 -1
  171. package/dist/components/segmented-control-field/segmented-control.js +1 -1
  172. package/dist/components/select-field/select-field.d.ts +7 -1
  173. package/dist/components/select-field/select-field.js +151 -139
  174. package/dist/components/select-field/select.d.ts +28 -6
  175. package/dist/components/select-field/select.js +234 -149
  176. package/dist/components/skeleton/skeleton.js +1 -1
  177. package/dist/components/spinner/spinner.css +47 -1
  178. package/dist/components/spinner/spinner.js +28 -11
  179. package/dist/components/spinner/spinner.module.js +18 -3
  180. package/dist/components/stale/stale.d.ts +17 -21
  181. package/dist/components/stale/stale.js +307 -129
  182. package/dist/components/status-message/status-message.css +22 -21
  183. package/dist/components/status-message/status-message.d.ts +10 -5
  184. package/dist/components/status-message/status-message.js +20 -24
  185. package/dist/components/status-message/status-message.module.js +6 -6
  186. package/dist/components/status-message/status-preset.d.ts +4 -5
  187. package/dist/components/status-message/status-preset.js +3 -3
  188. package/dist/components/switch-field/switch.js +1 -1
  189. package/dist/components/tabs/tabs.d.ts +51 -28
  190. package/dist/components/tabs/tabs.js +219 -144
  191. package/dist/components/tag/tag.css +23 -21
  192. package/dist/components/tag/tag.d.ts +17 -15
  193. package/dist/components/tag/tag.js +140 -65
  194. package/dist/components/tag/tag.module.js +3 -3
  195. package/dist/components/tag-group/tag-group.css +30 -27
  196. package/dist/components/tag-group/tag-group.d.ts +10 -4
  197. package/dist/components/tag-group/tag-group.js +47 -35
  198. package/dist/components/tag-group/tag-group.module.js +4 -4
  199. package/dist/components/text-field/text-field.d.ts +14 -3
  200. package/dist/components/text-field/text-field.js +154 -133
  201. package/dist/components/text-field/text-input.d.ts +89 -3
  202. package/dist/components/text-field/text-input.js +184 -70
  203. package/dist/components/textarea-field/textarea.js +1 -1
  204. package/dist/components/time-field/time-input.d.ts +6 -0
  205. package/dist/components/time-field/time-input.js +6 -0
  206. package/dist/components/time-zone-provider/time-zone-provider.js +1 -1
  207. package/dist/components/toast/index.js +2 -2
  208. package/dist/components/toast/toast-provider.css +38 -34
  209. package/dist/components/toast/toast-provider.d.ts +65 -3
  210. package/dist/components/toast/toast-provider.js +313 -148
  211. package/dist/components/toast/toast-provider.module.js +11 -17
  212. package/dist/components/toast/toast.d.ts +5 -1
  213. package/dist/components/toast/toast.js +2 -1
  214. package/dist/components/toggle-group-field/toggle-group.js +1 -1
  215. package/dist/components/tooltip/tooltip.d.ts +6 -6
  216. package/dist/components/tooltip/tooltip.js +7 -7
  217. package/dist/data-table/data-table-content.d.ts +18 -10
  218. package/dist/data-table/data-table-content.js +145 -290
  219. package/dist/data-table/data-table-context.d.ts +4 -2
  220. package/dist/data-table/data-table-context.js +1 -1
  221. package/dist/data-table/data-table-parts.d.ts +99 -0
  222. package/dist/data-table/data-table-parts.js +1182 -0
  223. package/dist/data-table/data-table-selection.d.ts +7 -3
  224. package/dist/data-table/data-table-selection.js +62 -37
  225. package/dist/data-table/data-table.css +100 -95
  226. package/dist/data-table/data-table.d.ts +49 -25
  227. package/dist/data-table/data-table.js +95 -83
  228. package/dist/data-table/data-table.module.js +34 -34
  229. package/dist/data-table/index.d.ts +2 -1
  230. package/dist/data-table/index.js +2 -1
  231. package/dist/data-view/use-data-view.d.ts +2 -2
  232. package/dist/data-view/use-data-view.js +2 -2
  233. package/dist/index.js +7 -8
  234. package/dist/lib/calendar/calendar-navigation.d.ts +9 -2
  235. package/dist/lib/calendar/calendar-navigation.js +72 -73
  236. package/dist/lib/calendar/calendar-year.d.ts +4 -3
  237. package/dist/lib/calendar/calendar-year.js +137 -156
  238. package/dist/lib/calendar/temporal.d.ts +18 -12
  239. package/dist/lib/calendar/temporal.js +191 -147
  240. package/dist/lib/table-storage.d.ts +2 -2
  241. package/dist/lib/table-storage.js +2 -2
  242. package/dist/lib/unsaved-changes/leave-guard.js +1 -1
  243. package/dist/terrazzo/index.d.ts +16 -0
  244. package/dist/terrazzo/index.js +94 -2
  245. package/dist/tokens.css +71 -69
  246. package/package.json +3 -2
  247. package/tokens/ref.tokens.json +0 -30
  248. package/tokens/sys.tokens.json +0 -7
  249. package/dist/assets/spinner.js +0 -28
  250. package/dist/components/checkbox-field/checkbox-glyph.d.ts +0 -12
  251. package/dist/components/checkbox-field/checkbox-glyph.js +0 -38
  252. package/dist/components/combobox-field/combobox-popup-body.d.ts +0 -34
  253. package/dist/components/combobox-field/combobox-popup-body.js +0 -142
  254. package/dist/components/conversation/conversation.context.js +0 -4
  255. package/dist/vendor/@material-design-icons/svg/outlined/add.js +0 -12
  256. package/dist/vendor/@material-design-icons/svg/outlined/arrow_downward.js +0 -12
  257. package/dist/vendor/@material-design-icons/svg/outlined/arrow_forward.js +0 -12
  258. package/dist/vendor/@material-design-icons/svg/outlined/arrow_upward.js +0 -12
  259. package/dist/vendor/@material-design-icons/svg/outlined/attach_file.js +0 -12
  260. package/dist/vendor/@material-design-icons/svg/outlined/block.js +0 -12
  261. package/dist/vendor/@material-design-icons/svg/outlined/calendar_today.js +0 -12
  262. package/dist/vendor/@material-design-icons/svg/outlined/check.js +0 -12
  263. package/dist/vendor/@material-design-icons/svg/outlined/check_circle.js +0 -12
  264. package/dist/vendor/@material-design-icons/svg/outlined/chevron_left.js +0 -12
  265. package/dist/vendor/@material-design-icons/svg/outlined/chevron_right.js +0 -12
  266. package/dist/vendor/@material-design-icons/svg/outlined/close.js +0 -12
  267. package/dist/vendor/@material-design-icons/svg/outlined/content_copy.js +0 -12
  268. package/dist/vendor/@material-design-icons/svg/outlined/date_range.js +0 -12
  269. package/dist/vendor/@material-design-icons/svg/outlined/description.js +0 -12
  270. package/dist/vendor/@material-design-icons/svg/outlined/download.js +0 -12
  271. package/dist/vendor/@material-design-icons/svg/outlined/error.js +0 -12
  272. package/dist/vendor/@material-design-icons/svg/outlined/error_outline.js +0 -12
  273. package/dist/vendor/@material-design-icons/svg/outlined/expand_less.js +0 -12
  274. package/dist/vendor/@material-design-icons/svg/outlined/expand_more.js +0 -12
  275. package/dist/vendor/@material-design-icons/svg/outlined/filter_alt.js +0 -12
  276. package/dist/vendor/@material-design-icons/svg/outlined/filter_alt_off.js +0 -12
  277. package/dist/vendor/@material-design-icons/svg/outlined/first_page.js +0 -12
  278. package/dist/vendor/@material-design-icons/svg/outlined/info.js +0 -12
  279. package/dist/vendor/@material-design-icons/svg/outlined/keyboard_arrow_down.js +0 -12
  280. package/dist/vendor/@material-design-icons/svg/outlined/last_page.js +0 -12
  281. package/dist/vendor/@material-design-icons/svg/outlined/mail.js +0 -12
  282. package/dist/vendor/@material-design-icons/svg/outlined/more_horiz.js +0 -12
  283. package/dist/vendor/@material-design-icons/svg/outlined/photo_camera.js +0 -12
  284. package/dist/vendor/@material-design-icons/svg/outlined/remove.js +0 -12
  285. package/dist/vendor/@material-design-icons/svg/outlined/restart_alt.js +0 -12
  286. package/dist/vendor/@material-design-icons/svg/outlined/restore.js +0 -12
  287. package/dist/vendor/@material-design-icons/svg/outlined/search.js +0 -12
  288. package/dist/vendor/@material-design-icons/svg/outlined/unfold_more.js +0 -12
  289. package/dist/vendor/@material-design-icons/svg/outlined/upload_file.js +0 -12
  290. package/dist/vendor/@material-design-icons/svg/outlined/visibility.js +0 -12
  291. package/dist/vendor/@material-design-icons/svg/outlined/visibility_off.js +0 -12
  292. package/dist/vendor/@material-design-icons/svg/outlined/warning_amber.js +0 -12
@@ -5,8 +5,8 @@ import { OPTIONS_LOADED } from "../field/options-load.js";
5
5
  import { Select } from "./select.js";
6
6
  import select_module_default from "./select.module.js";
7
7
  import { c } from "react/compiler-runtime";
8
- import { useRef } from "react";
9
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
+ import { useRef } from "react";
10
10
  // src/components/select-field/select-field.tsx
11
11
  /**
12
12
  * The assembled select: a labelled trigger over the shared popup surface, then
@@ -17,6 +17,8 @@ import { jsx, jsxs } from "react/jsx-runtime";
17
17
  * label="Status"
18
18
  * optionalLabel="optional"
19
19
  * options={statusOptions}
20
+ * icon={<ExpandMoreIcon />}
21
+ * checkIcon={<CheckIcon />}
20
22
  * value={status}
21
23
  * onValueChange={setStatus}
22
24
  * loadingLabel="Loading options…"
@@ -27,11 +29,13 @@ import { jsx, jsxs } from "react/jsx-runtime";
27
29
  * />
28
30
  */
29
31
  var SelectField = (t0) => {
30
- const $ = c(87);
32
+ const $ = c(91);
33
+ let checkIcon;
31
34
  let className;
32
35
  let description;
33
36
  let dirty;
34
37
  let errors;
38
+ let icon;
35
39
  let label;
36
40
  let loadBrokenLabel;
37
41
  let loadFailedLabel;
@@ -49,49 +53,53 @@ var SelectField = (t0) => {
49
53
  let t2;
50
54
  let touched;
51
55
  if ($[0] !== t0) {
52
- ({label, description, errors, requiredness, optionalLabel, dirty, touched, pending: t1, placeholder, load: t2, loadingLabel, loadFailedLabel, loadBrokenLabel, retryLabel, noOptionsLabel, onBlur, className, onOpenChange, onOpenChangeComplete, ...rootProps} = t0);
56
+ ({label, description, errors, requiredness, optionalLabel, dirty, touched, pending: t1, placeholder, icon, checkIcon, load: t2, loadingLabel, loadFailedLabel, loadBrokenLabel, retryLabel, noOptionsLabel, onBlur, className, onOpenChange, onOpenChangeComplete, ...rootProps} = t0);
53
57
  $[0] = t0;
54
- $[1] = className;
55
- $[2] = description;
56
- $[3] = dirty;
57
- $[4] = errors;
58
- $[5] = label;
59
- $[6] = loadBrokenLabel;
60
- $[7] = loadFailedLabel;
61
- $[8] = loadingLabel;
62
- $[9] = noOptionsLabel;
63
- $[10] = onBlur;
64
- $[11] = onOpenChange;
65
- $[12] = onOpenChangeComplete;
66
- $[13] = optionalLabel;
67
- $[14] = placeholder;
68
- $[15] = requiredness;
69
- $[16] = retryLabel;
70
- $[17] = rootProps;
71
- $[18] = t1;
72
- $[19] = t2;
73
- $[20] = touched;
58
+ $[1] = checkIcon;
59
+ $[2] = className;
60
+ $[3] = description;
61
+ $[4] = dirty;
62
+ $[5] = errors;
63
+ $[6] = icon;
64
+ $[7] = label;
65
+ $[8] = loadBrokenLabel;
66
+ $[9] = loadFailedLabel;
67
+ $[10] = loadingLabel;
68
+ $[11] = noOptionsLabel;
69
+ $[12] = onBlur;
70
+ $[13] = onOpenChange;
71
+ $[14] = onOpenChangeComplete;
72
+ $[15] = optionalLabel;
73
+ $[16] = placeholder;
74
+ $[17] = requiredness;
75
+ $[18] = retryLabel;
76
+ $[19] = rootProps;
77
+ $[20] = t1;
78
+ $[21] = t2;
79
+ $[22] = touched;
74
80
  } else {
75
- className = $[1];
76
- description = $[2];
77
- dirty = $[3];
78
- errors = $[4];
79
- label = $[5];
80
- loadBrokenLabel = $[6];
81
- loadFailedLabel = $[7];
82
- loadingLabel = $[8];
83
- noOptionsLabel = $[9];
84
- onBlur = $[10];
85
- onOpenChange = $[11];
86
- onOpenChangeComplete = $[12];
87
- optionalLabel = $[13];
88
- placeholder = $[14];
89
- requiredness = $[15];
90
- retryLabel = $[16];
91
- rootProps = $[17];
92
- t1 = $[18];
93
- t2 = $[19];
94
- touched = $[20];
81
+ checkIcon = $[1];
82
+ className = $[2];
83
+ description = $[3];
84
+ dirty = $[4];
85
+ errors = $[5];
86
+ icon = $[6];
87
+ label = $[7];
88
+ loadBrokenLabel = $[8];
89
+ loadFailedLabel = $[9];
90
+ loadingLabel = $[10];
91
+ noOptionsLabel = $[11];
92
+ onBlur = $[12];
93
+ onOpenChange = $[13];
94
+ onOpenChangeComplete = $[14];
95
+ optionalLabel = $[15];
96
+ placeholder = $[16];
97
+ requiredness = $[17];
98
+ retryLabel = $[18];
99
+ rootProps = $[19];
100
+ t1 = $[20];
101
+ t2 = $[21];
102
+ touched = $[22];
95
103
  }
96
104
  const pending = t1 === void 0 ? false : t1;
97
105
  const load = t2 === void 0 ? OPTIONS_LOADED : t2;
@@ -101,7 +109,7 @@ var SelectField = (t0) => {
101
109
  const inside = useRef(false);
102
110
  const t3 = rootProps.value !== void 0 && rootProps.value !== null && rootProps.value !== "";
103
111
  let t4;
104
- if ($[21] !== dirty || $[22] !== errors || $[23] !== pending || $[24] !== requiredness || $[25] !== rootProps.disabled || $[26] !== rootProps.readOnly || $[27] !== t3 || $[28] !== touched) {
112
+ if ($[23] !== dirty || $[24] !== errors || $[25] !== pending || $[26] !== requiredness || $[27] !== rootProps.disabled || $[28] !== rootProps.readOnly || $[29] !== t3 || $[30] !== touched) {
105
113
  t4 = {
106
114
  errors,
107
115
  requiredness,
@@ -112,113 +120,115 @@ var SelectField = (t0) => {
112
120
  readOnly: rootProps.readOnly,
113
121
  filled: t3
114
122
  };
115
- $[21] = dirty;
116
- $[22] = errors;
117
- $[23] = pending;
118
- $[24] = requiredness;
119
- $[25] = rootProps.disabled;
120
- $[26] = rootProps.readOnly;
121
- $[27] = t3;
122
- $[28] = touched;
123
- $[29] = t4;
124
- } else t4 = $[29];
123
+ $[23] = dirty;
124
+ $[24] = errors;
125
+ $[25] = pending;
126
+ $[26] = requiredness;
127
+ $[27] = rootProps.disabled;
128
+ $[28] = rootProps.readOnly;
129
+ $[29] = t3;
130
+ $[30] = touched;
131
+ $[31] = t4;
132
+ } else t4 = $[31];
125
133
  const field = useFieldState(t4);
126
134
  const t5 = field.state.pending === true || load.status === "pending";
127
135
  let t6;
128
- if ($[30] !== field.state || $[31] !== t5) {
136
+ if ($[32] !== field.state || $[33] !== t5) {
129
137
  t6 = {
130
138
  ...field.state,
131
139
  pending: t5
132
140
  };
133
- $[30] = field.state;
134
- $[31] = t5;
135
- $[32] = t6;
136
- } else t6 = $[32];
141
+ $[32] = field.state;
142
+ $[33] = t5;
143
+ $[34] = t6;
144
+ } else t6 = $[34];
137
145
  const fieldState = t6;
138
146
  let t7;
139
- if ($[33] !== description || $[34] !== field.invalid || $[35] !== ids) {
147
+ if ($[35] !== description || $[36] !== field.invalid || $[37] !== ids) {
140
148
  t7 = ids.describedBy(description !== void 0, field.invalid);
141
- $[33] = description;
142
- $[34] = field.invalid;
143
- $[35] = ids;
144
- $[36] = t7;
145
- } else t7 = $[36];
149
+ $[35] = description;
150
+ $[36] = field.invalid;
151
+ $[37] = ids;
152
+ $[38] = t7;
153
+ } else t7 = $[38];
146
154
  const describedBy = t7;
147
155
  let t8;
148
- if ($[37] !== onBlur) {
156
+ if ($[39] !== onBlur) {
149
157
  t8 = () => {
150
158
  if (inside.current && !open.current && !focused.current) {
151
159
  inside.current = false;
152
160
  onBlur?.();
153
161
  }
154
162
  };
155
- $[37] = onBlur;
156
- $[38] = t8;
157
- } else t8 = $[38];
163
+ $[39] = onBlur;
164
+ $[40] = t8;
165
+ } else t8 = $[40];
158
166
  const leave = t8;
159
167
  const t9 = requiredness === "required";
160
168
  let t10;
161
- if ($[39] !== onOpenChange) {
169
+ if ($[41] !== onOpenChange) {
162
170
  t10 = (next, details) => {
163
171
  open.current = next;
164
172
  if (next) inside.current = true;
165
173
  onOpenChange?.(next, details);
166
174
  };
167
- $[39] = onOpenChange;
168
- $[40] = t10;
169
- } else t10 = $[40];
175
+ $[41] = onOpenChange;
176
+ $[42] = t10;
177
+ } else t10 = $[42];
170
178
  let t11;
171
- if ($[41] !== leave || $[42] !== onOpenChangeComplete) {
179
+ if ($[43] !== leave || $[44] !== onOpenChangeComplete) {
172
180
  t11 = (next_0) => {
173
181
  onOpenChangeComplete?.(next_0);
174
182
  if (!next_0) requestAnimationFrame(leave);
175
183
  };
176
- $[41] = leave;
177
- $[42] = onOpenChangeComplete;
178
- $[43] = t11;
179
- } else t11 = $[43];
184
+ $[43] = leave;
185
+ $[44] = onOpenChangeComplete;
186
+ $[45] = t11;
187
+ } else t11 = $[45];
180
188
  let t12;
181
- if ($[44] !== optionalLabel || $[45] !== requiredness) {
189
+ if ($[46] !== optionalLabel || $[47] !== requiredness) {
182
190
  t12 = /* @__PURE__ */ jsx(Field.Requiredness, {
183
191
  requiredness,
184
192
  optionalLabel
185
193
  });
186
- $[44] = optionalLabel;
187
- $[45] = requiredness;
188
- $[46] = t12;
189
- } else t12 = $[46];
194
+ $[46] = optionalLabel;
195
+ $[47] = requiredness;
196
+ $[48] = t12;
197
+ } else t12 = $[48];
190
198
  let t13;
191
- if ($[47] !== label || $[48] !== t12) {
199
+ if ($[49] !== label || $[50] !== t12) {
192
200
  t13 = /* @__PURE__ */ jsxs(Select.Label, { children: [
193
201
  label,
194
202
  " ",
195
203
  t12
196
204
  ] });
197
- $[47] = label;
198
- $[48] = t12;
199
- $[49] = t13;
200
- } else t13 = $[49];
205
+ $[49] = label;
206
+ $[50] = t12;
207
+ $[51] = t13;
208
+ } else t13 = $[51];
201
209
  let t14;
202
- if ($[50] === Symbol.for("react.memo_cache_sentinel")) {
210
+ if ($[52] === Symbol.for("react.memo_cache_sentinel")) {
203
211
  t14 = () => {
204
212
  focused.current = true;
205
213
  inside.current = true;
206
214
  };
207
- $[50] = t14;
208
- } else t14 = $[50];
215
+ $[52] = t14;
216
+ } else t14 = $[52];
209
217
  let t15;
210
- if ($[51] !== leave) {
218
+ if ($[53] !== leave) {
211
219
  t15 = () => {
212
220
  focused.current = false;
213
221
  leave();
214
222
  };
215
- $[51] = leave;
216
- $[52] = t15;
217
- } else t15 = $[52];
223
+ $[53] = leave;
224
+ $[54] = t15;
225
+ } else t15 = $[54];
218
226
  let t16;
219
- if ($[53] !== className || $[54] !== describedBy || $[55] !== fieldState || $[56] !== load || $[57] !== loadBrokenLabel || $[58] !== loadFailedLabel || $[59] !== loadingLabel || $[60] !== noOptionsLabel || $[61] !== placeholder || $[62] !== retryLabel || $[63] !== t15) {
227
+ if ($[55] !== checkIcon || $[56] !== className || $[57] !== describedBy || $[58] !== fieldState || $[59] !== icon || $[60] !== load || $[61] !== loadBrokenLabel || $[62] !== loadFailedLabel || $[63] !== loadingLabel || $[64] !== noOptionsLabel || $[65] !== placeholder || $[66] !== retryLabel || $[67] !== t15) {
220
228
  t16 = /* @__PURE__ */ jsx(Select.Control, {
221
229
  placeholder,
230
+ icon,
231
+ checkIcon,
222
232
  load,
223
233
  loadingLabel,
224
234
  loadFailedLabel,
@@ -231,21 +241,23 @@ var SelectField = (t0) => {
231
241
  onFocus: t14,
232
242
  onBlur: t15
233
243
  });
234
- $[53] = className;
235
- $[54] = describedBy;
236
- $[55] = fieldState;
237
- $[56] = load;
238
- $[57] = loadBrokenLabel;
239
- $[58] = loadFailedLabel;
240
- $[59] = loadingLabel;
241
- $[60] = noOptionsLabel;
242
- $[61] = placeholder;
243
- $[62] = retryLabel;
244
- $[63] = t15;
245
- $[64] = t16;
246
- } else t16 = $[64];
244
+ $[55] = checkIcon;
245
+ $[56] = className;
246
+ $[57] = describedBy;
247
+ $[58] = fieldState;
248
+ $[59] = icon;
249
+ $[60] = load;
250
+ $[61] = loadBrokenLabel;
251
+ $[62] = loadFailedLabel;
252
+ $[63] = loadingLabel;
253
+ $[64] = noOptionsLabel;
254
+ $[65] = placeholder;
255
+ $[66] = retryLabel;
256
+ $[67] = t15;
257
+ $[68] = t16;
258
+ } else t16 = $[68];
247
259
  let t17;
248
- if ($[65] !== field.disabled || $[66] !== ids.controlId || $[67] !== rootProps || $[68] !== t10 || $[69] !== t11 || $[70] !== t13 || $[71] !== t16 || $[72] !== t9) {
260
+ if ($[69] !== field.disabled || $[70] !== ids.controlId || $[71] !== rootProps || $[72] !== t10 || $[73] !== t11 || $[74] !== t13 || $[75] !== t16 || $[76] !== t9) {
249
261
  t17 = /* @__PURE__ */ jsxs(Select.Root, {
250
262
  name: ids.controlId,
251
263
  inputRef: detachHiddenInput,
@@ -256,38 +268,38 @@ var SelectField = (t0) => {
256
268
  onOpenChangeComplete: t11,
257
269
  children: [t13, t16]
258
270
  });
259
- $[65] = field.disabled;
260
- $[66] = ids.controlId;
261
- $[67] = rootProps;
262
- $[68] = t10;
263
- $[69] = t11;
264
- $[70] = t13;
265
- $[71] = t16;
266
- $[72] = t9;
267
- $[73] = t17;
268
- } else t17 = $[73];
271
+ $[69] = field.disabled;
272
+ $[70] = ids.controlId;
273
+ $[71] = rootProps;
274
+ $[72] = t10;
275
+ $[73] = t11;
276
+ $[74] = t13;
277
+ $[75] = t16;
278
+ $[76] = t9;
279
+ $[77] = t17;
280
+ } else t17 = $[77];
269
281
  let t18;
270
- if ($[74] !== description || $[75] !== ids.descriptionId) {
282
+ if ($[78] !== description || $[79] !== ids.descriptionId) {
271
283
  t18 = /* @__PURE__ */ jsx(Select.Description, {
272
284
  id: ids.descriptionId,
273
285
  children: description
274
286
  });
275
- $[74] = description;
276
- $[75] = ids.descriptionId;
277
- $[76] = t18;
278
- } else t18 = $[76];
287
+ $[78] = description;
288
+ $[79] = ids.descriptionId;
289
+ $[80] = t18;
290
+ } else t18 = $[80];
279
291
  let t19;
280
- if ($[77] !== errors || $[78] !== ids.errorId) {
292
+ if ($[81] !== errors || $[82] !== ids.errorId) {
281
293
  t19 = /* @__PURE__ */ jsx(Select.Error, {
282
294
  id: ids.errorId,
283
295
  children: errors
284
296
  });
285
- $[77] = errors;
286
- $[78] = ids.errorId;
287
- $[79] = t19;
288
- } else t19 = $[79];
297
+ $[81] = errors;
298
+ $[82] = ids.errorId;
299
+ $[83] = t19;
300
+ } else t19 = $[83];
289
301
  let t20;
290
- if ($[80] !== dirty || $[81] !== field.invalid || $[82] !== t17 || $[83] !== t18 || $[84] !== t19 || $[85] !== touched) {
302
+ if ($[84] !== dirty || $[85] !== field.invalid || $[86] !== t17 || $[87] !== t18 || $[88] !== t19 || $[89] !== touched) {
291
303
  t20 = /* @__PURE__ */ jsxs(Field.Root, {
292
304
  className: select_module_default.field,
293
305
  invalid: field.invalid,
@@ -299,14 +311,14 @@ var SelectField = (t0) => {
299
311
  t19
300
312
  ]
301
313
  });
302
- $[80] = dirty;
303
- $[81] = field.invalid;
304
- $[82] = t17;
305
- $[83] = t18;
306
- $[84] = t19;
307
- $[85] = touched;
308
- $[86] = t20;
309
- } else t20 = $[86];
314
+ $[84] = dirty;
315
+ $[85] = field.invalid;
316
+ $[86] = t17;
317
+ $[87] = t18;
318
+ $[88] = t19;
319
+ $[89] = touched;
320
+ $[90] = t20;
321
+ } else t20 = $[90];
310
322
  return t20;
311
323
  };
312
324
  export { SelectField };
@@ -8,25 +8,43 @@ export type SelectRootProps<T extends string> = Omit<BaseSelect.Root.Props<T>, "
8
8
  options: readonly SelectOption<T>[];
9
9
  onValueChange?: (value: T) => void;
10
10
  }>;
11
+ /** The select's state, holding the options every part below it reads. */
11
12
  declare const SelectRoot: <T extends string>({ options, onValueChange, ...props }: SelectRootProps<T>) => ReactNode;
13
+ /** The label that names the trigger. */
12
14
  declare const SelectLabel: ({ className, ...props }: BaseSelect.Label.Props) => ReactNode;
13
15
  export type SelectTriggerProps = BaseSelect.Trigger.Props & Readonly<{
14
16
  /** Shown while nothing is selected. */
15
17
  placeholder?: string;
16
18
  /** The states projected onto the trigger as `data-*` attributes. */
17
19
  state?: FieldState;
20
+ /** The chevron after the value, such as an expand icon. */
21
+ icon?: ReactNode;
18
22
  }>;
19
- declare const SelectTrigger: ({ placeholder, state, className, children, ...props }: SelectTriggerProps) => ReactNode;
23
+ /** The chevron after the trigger's value. Its children are the icon; without them it renders nothing. */
24
+ declare const SelectIcon: ({ className, children, ...props }: BaseSelect.Icon.Props) => ReactNode;
25
+ /** The button that opens the list. Without children it shows the value, the pending mark and `icon`. */
26
+ declare const SelectTrigger: ({ placeholder, state, icon, className, children, ...props }: SelectTriggerProps) => ReactNode;
27
+ /** Places the popup against the trigger. */
20
28
  declare const SelectPositioner: ({ className, sideOffset, alignItemWithTrigger, ...props }: BaseSelect.Positioner.Props) => ReactNode;
29
+ /** The shared popup surface the list sits on. */
21
30
  declare const SelectPopup: ({ className, ...props }: BaseSelect.Popup.Props) => ReactNode;
22
31
  export type SelectItemProps = BaseSelect.Item.Props;
23
- declare const SelectItem: ({ className, children, ...props }: SelectItemProps) => ReactNode;
32
+ /** One option's row, holding its `ItemText` and `ItemIndicator`. */
33
+ declare const SelectItem: ({ className, ...props }: SelectItemProps) => ReactNode;
34
+ /** An option's text, which the trigger shows once it is chosen. */
35
+ declare const SelectItemText: ({ className, ...props }: BaseSelect.ItemText.Props) => ReactNode;
36
+ /** The mark beside the chosen option. Its children are the mark, such as a tick. */
37
+ declare const SelectItemIndicator: ({ className, ...props }: BaseSelect.ItemIndicator.Props) => ReactNode;
38
+ export type SelectItemsProps = Readonly<{
39
+ /** The mark beside the chosen option, such as a tick. */
40
+ checkIcon: ReactNode;
41
+ }>;
24
42
  /**
25
43
  * Every option of the enclosing `Select.Root`, in the order it was given them.
26
44
  * Compose the parts directly instead where a row is more than its label.
27
45
  */
28
- declare const SelectItems: () => ReactNode;
29
- export type SelectControlProps = Omit<SelectTriggerProps, "children"> & OptionsLoadLabels & Readonly<{
46
+ declare const SelectItems: ({ checkIcon, }: SelectItemsProps) => ReactNode;
47
+ export type SelectControlProps = Omit<SelectTriggerProps, "children"> & OptionsLoadLabels & SelectItemsProps & Readonly<{
30
48
  /** How far the options have loaded, when they come from a query. */
31
49
  load?: OptionsLoad;
32
50
  }>;
@@ -34,19 +52,21 @@ export type SelectControlProps = Omit<SelectTriggerProps, "children"> & OptionsL
34
52
  * The trigger over the portalled list of every option: the shape almost every
35
53
  * select takes. Reach for the parts where the list needs anything else.
36
54
  */
37
- declare const SelectControl: ({ load, loadingLabel, loadFailedLabel, loadBrokenLabel, retryLabel, noOptionsLabel, ...props }: SelectControlProps) => ReactNode;
55
+ declare const SelectControl: ({ load, loadingLabel, loadFailedLabel, loadBrokenLabel, retryLabel, noOptionsLabel, checkIcon, ...props }: SelectControlProps) => ReactNode;
38
56
  /** The parts of a select. */
39
57
  export type SelectParts = Readonly<{
40
58
  Root: typeof SelectRoot;
41
59
  Label: typeof SelectLabel;
42
60
  Trigger: typeof SelectTrigger;
43
61
  Value: typeof BaseSelect.Value;
44
- Icon: typeof BaseSelect.Icon;
62
+ Icon: typeof SelectIcon;
45
63
  Portal: typeof BaseSelect.Portal;
46
64
  Positioner: typeof SelectPositioner;
47
65
  Popup: typeof SelectPopup;
48
66
  List: typeof BaseSelect.List;
49
67
  Item: typeof SelectItem;
68
+ ItemText: typeof SelectItemText;
69
+ ItemIndicator: typeof SelectItemIndicator;
50
70
  Items: typeof SelectItems;
51
71
  Group: typeof BaseSelect.Group;
52
72
  GroupLabel: typeof BaseSelect.GroupLabel;
@@ -67,6 +87,8 @@ export type SelectParts = Readonly<{
67
87
  * <Select.Root options={options} value={value} onValueChange={setValue}>
68
88
  * <Select.Label>Status</Select.Label>
69
89
  * <Select.Control
90
+ * icon={<ExpandMoreIcon />}
91
+ * checkIcon={<CheckIcon />}
70
92
  * loadingLabel="Loading options…"
71
93
  * loadFailedLabel="Options could not be loaded."
72
94
  * loadBrokenLabel="Options could not be loaded, and trying again won't help."