@igne-agency/react-web-ui 0.3.1 → 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 (290) 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.js +1 -1
  113. package/dist/components/file-field/file-field.css +19 -15
  114. package/dist/components/file-field/file-field.d.ts +10 -1
  115. package/dist/components/file-field/file-field.js +130 -109
  116. package/dist/components/file-field/file-field.module.js +6 -4
  117. package/dist/components/file-field/file-input.d.ts +32 -9
  118. package/dist/components/file-field/file-input.js +94 -74
  119. package/dist/components/filter-bar/filter-bar.d.ts +79 -51
  120. package/dist/components/filter-bar/filter-bar.js +552 -216
  121. package/dist/components/form/form.d.ts +4 -6
  122. package/dist/components/form/form.js +6 -8
  123. package/dist/components/icon/icon.d.ts +5 -10
  124. package/dist/components/icon/icon.js +4 -6
  125. package/dist/components/link/link.js +1 -1
  126. package/dist/components/link-button/link-button.d.ts +1 -2
  127. package/dist/components/link-button/link-button.js +12 -22
  128. package/dist/components/loading-message/loading-message.d.ts +2 -2
  129. package/dist/components/loading-message/loading-message.js +1 -1
  130. package/dist/components/locale-provider/locale-provider.js +1 -1
  131. package/dist/components/menu/menu.d.ts +40 -22
  132. package/dist/components/menu/menu.js +100 -40
  133. package/dist/components/nav/nav-context.d.ts +0 -1
  134. package/dist/components/nav/nav-context.js +1 -2
  135. package/dist/components/nav/nav-item-view.d.ts +7 -7
  136. package/dist/components/nav/nav-item-view.js +27 -51
  137. package/dist/components/nav/nav.css +72 -60
  138. package/dist/components/nav/nav.d.ts +15 -8
  139. package/dist/components/nav/nav.js +105 -52
  140. package/dist/components/nav/nav.module.js +14 -14
  141. package/dist/components/number-field/number-field.d.ts +7 -1
  142. package/dist/components/number-field/number-field.js +98 -82
  143. package/dist/components/number-field/number-input.d.ts +53 -4
  144. package/dist/components/number-field/number-input.js +68 -21
  145. package/dist/components/number-field/tsf-number-field.d.ts +1 -1
  146. package/dist/components/number-field/tsf-number-field.js +1 -1
  147. package/dist/components/otp-field/otp-input.d.ts +25 -0
  148. package/dist/components/otp-field/otp-input.js +26 -1
  149. package/dist/components/pagination/pagination.d.ts +82 -23
  150. package/dist/components/pagination/pagination.js +656 -229
  151. package/dist/components/password-field/password-field.d.ts +7 -1
  152. package/dist/components/password-field/password-field.js +117 -126
  153. package/dist/components/password-field/password-strength.js +1 -1
  154. package/dist/components/password-field/tsf-password-field.d.ts +1 -1
  155. package/dist/components/password-field/tsf-password-field.js +1 -1
  156. package/dist/components/photo-field/photo-field.d.ts +17 -3
  157. package/dist/components/photo-field/photo-field.js +168 -89
  158. package/dist/components/photo-field/photo-input-context.d.ts +25 -0
  159. package/dist/components/photo-field/photo-input-context.js +14 -0
  160. package/dist/components/photo-field/photo-input.d.ts +58 -23
  161. package/dist/components/photo-field/photo-input.js +459 -261
  162. package/dist/components/popover/popover.d.ts +55 -23
  163. package/dist/components/popover/popover.js +205 -61
  164. package/dist/components/radio-group-field/radio-group.js +1 -1
  165. package/dist/components/search-field/search-field.d.ts +7 -5
  166. package/dist/components/search-field/search-field.js +4 -6
  167. package/dist/components/search-field/tsf-search-field.d.ts +1 -1
  168. package/dist/components/search-field/tsf-search-field.js +1 -1
  169. package/dist/components/segmented-control-field/segmented-control.js +1 -1
  170. package/dist/components/select-field/select-field.d.ts +7 -1
  171. package/dist/components/select-field/select-field.js +151 -139
  172. package/dist/components/select-field/select.d.ts +28 -6
  173. package/dist/components/select-field/select.js +234 -149
  174. package/dist/components/skeleton/skeleton.js +1 -1
  175. package/dist/components/spinner/spinner.css +47 -1
  176. package/dist/components/spinner/spinner.js +28 -11
  177. package/dist/components/spinner/spinner.module.js +18 -3
  178. package/dist/components/stale/stale.d.ts +17 -21
  179. package/dist/components/stale/stale.js +307 -129
  180. package/dist/components/status-message/status-message.css +22 -21
  181. package/dist/components/status-message/status-message.d.ts +10 -5
  182. package/dist/components/status-message/status-message.js +20 -24
  183. package/dist/components/status-message/status-message.module.js +6 -6
  184. package/dist/components/status-message/status-preset.d.ts +4 -5
  185. package/dist/components/status-message/status-preset.js +3 -3
  186. package/dist/components/switch-field/switch.js +1 -1
  187. package/dist/components/tabs/tabs.d.ts +51 -28
  188. package/dist/components/tabs/tabs.js +219 -144
  189. package/dist/components/tag/tag.css +23 -21
  190. package/dist/components/tag/tag.d.ts +17 -15
  191. package/dist/components/tag/tag.js +140 -65
  192. package/dist/components/tag/tag.module.js +3 -3
  193. package/dist/components/tag-group/tag-group.css +30 -27
  194. package/dist/components/tag-group/tag-group.d.ts +10 -4
  195. package/dist/components/tag-group/tag-group.js +47 -35
  196. package/dist/components/tag-group/tag-group.module.js +4 -4
  197. package/dist/components/text-field/text-field.d.ts +14 -3
  198. package/dist/components/text-field/text-field.js +154 -133
  199. package/dist/components/text-field/text-input.d.ts +89 -3
  200. package/dist/components/text-field/text-input.js +184 -70
  201. package/dist/components/textarea-field/textarea.js +1 -1
  202. package/dist/components/time-field/time-input.d.ts +6 -0
  203. package/dist/components/time-field/time-input.js +6 -0
  204. package/dist/components/time-zone-provider/time-zone-provider.js +1 -1
  205. package/dist/components/toast/index.js +2 -2
  206. package/dist/components/toast/toast-provider.css +38 -34
  207. package/dist/components/toast/toast-provider.d.ts +65 -3
  208. package/dist/components/toast/toast-provider.js +313 -148
  209. package/dist/components/toast/toast-provider.module.js +11 -17
  210. package/dist/components/toast/toast.d.ts +5 -1
  211. package/dist/components/toast/toast.js +2 -1
  212. package/dist/components/toggle-group-field/toggle-group.js +1 -1
  213. package/dist/components/tooltip/tooltip.d.ts +6 -6
  214. package/dist/components/tooltip/tooltip.js +7 -7
  215. package/dist/data-table/data-table-content.d.ts +18 -10
  216. package/dist/data-table/data-table-content.js +145 -290
  217. package/dist/data-table/data-table-context.d.ts +4 -2
  218. package/dist/data-table/data-table-context.js +1 -1
  219. package/dist/data-table/data-table-parts.d.ts +99 -0
  220. package/dist/data-table/data-table-parts.js +1182 -0
  221. package/dist/data-table/data-table-selection.d.ts +7 -3
  222. package/dist/data-table/data-table-selection.js +62 -37
  223. package/dist/data-table/data-table.css +100 -95
  224. package/dist/data-table/data-table.d.ts +49 -25
  225. package/dist/data-table/data-table.js +95 -83
  226. package/dist/data-table/data-table.module.js +34 -34
  227. package/dist/data-table/index.d.ts +2 -1
  228. package/dist/data-table/index.js +2 -1
  229. package/dist/data-view/use-data-view.d.ts +2 -2
  230. package/dist/data-view/use-data-view.js +2 -2
  231. package/dist/index.js +7 -8
  232. package/dist/lib/calendar/calendar-navigation.d.ts +9 -2
  233. package/dist/lib/calendar/calendar-navigation.js +72 -73
  234. package/dist/lib/calendar/calendar-year.d.ts +4 -3
  235. package/dist/lib/calendar/calendar-year.js +137 -156
  236. package/dist/lib/calendar/temporal.d.ts +18 -12
  237. package/dist/lib/calendar/temporal.js +191 -147
  238. package/dist/lib/table-storage.d.ts +2 -2
  239. package/dist/lib/table-storage.js +2 -2
  240. package/dist/lib/unsaved-changes/leave-guard.js +1 -1
  241. package/dist/terrazzo/index.d.ts +16 -0
  242. package/dist/terrazzo/index.js +94 -2
  243. package/dist/tokens.css +71 -69
  244. package/package.json +3 -2
  245. package/tokens/ref.tokens.json +0 -30
  246. package/tokens/sys.tokens.json +0 -7
  247. package/dist/assets/spinner.js +0 -28
  248. package/dist/components/checkbox-field/checkbox-glyph.d.ts +0 -12
  249. package/dist/components/checkbox-field/checkbox-glyph.js +0 -38
  250. package/dist/components/combobox-field/combobox-popup-body.d.ts +0 -34
  251. package/dist/components/combobox-field/combobox-popup-body.js +0 -142
  252. package/dist/components/conversation/conversation.context.js +0 -4
  253. package/dist/vendor/@material-design-icons/svg/outlined/add.js +0 -12
  254. package/dist/vendor/@material-design-icons/svg/outlined/arrow_downward.js +0 -12
  255. package/dist/vendor/@material-design-icons/svg/outlined/arrow_forward.js +0 -12
  256. package/dist/vendor/@material-design-icons/svg/outlined/arrow_upward.js +0 -12
  257. package/dist/vendor/@material-design-icons/svg/outlined/attach_file.js +0 -12
  258. package/dist/vendor/@material-design-icons/svg/outlined/block.js +0 -12
  259. package/dist/vendor/@material-design-icons/svg/outlined/calendar_today.js +0 -12
  260. package/dist/vendor/@material-design-icons/svg/outlined/check.js +0 -12
  261. package/dist/vendor/@material-design-icons/svg/outlined/check_circle.js +0 -12
  262. package/dist/vendor/@material-design-icons/svg/outlined/chevron_left.js +0 -12
  263. package/dist/vendor/@material-design-icons/svg/outlined/chevron_right.js +0 -12
  264. package/dist/vendor/@material-design-icons/svg/outlined/close.js +0 -12
  265. package/dist/vendor/@material-design-icons/svg/outlined/content_copy.js +0 -12
  266. package/dist/vendor/@material-design-icons/svg/outlined/date_range.js +0 -12
  267. package/dist/vendor/@material-design-icons/svg/outlined/description.js +0 -12
  268. package/dist/vendor/@material-design-icons/svg/outlined/download.js +0 -12
  269. package/dist/vendor/@material-design-icons/svg/outlined/error.js +0 -12
  270. package/dist/vendor/@material-design-icons/svg/outlined/error_outline.js +0 -12
  271. package/dist/vendor/@material-design-icons/svg/outlined/expand_less.js +0 -12
  272. package/dist/vendor/@material-design-icons/svg/outlined/expand_more.js +0 -12
  273. package/dist/vendor/@material-design-icons/svg/outlined/filter_alt.js +0 -12
  274. package/dist/vendor/@material-design-icons/svg/outlined/filter_alt_off.js +0 -12
  275. package/dist/vendor/@material-design-icons/svg/outlined/first_page.js +0 -12
  276. package/dist/vendor/@material-design-icons/svg/outlined/info.js +0 -12
  277. package/dist/vendor/@material-design-icons/svg/outlined/keyboard_arrow_down.js +0 -12
  278. package/dist/vendor/@material-design-icons/svg/outlined/last_page.js +0 -12
  279. package/dist/vendor/@material-design-icons/svg/outlined/mail.js +0 -12
  280. package/dist/vendor/@material-design-icons/svg/outlined/more_horiz.js +0 -12
  281. package/dist/vendor/@material-design-icons/svg/outlined/photo_camera.js +0 -12
  282. package/dist/vendor/@material-design-icons/svg/outlined/remove.js +0 -12
  283. package/dist/vendor/@material-design-icons/svg/outlined/restart_alt.js +0 -12
  284. package/dist/vendor/@material-design-icons/svg/outlined/restore.js +0 -12
  285. package/dist/vendor/@material-design-icons/svg/outlined/search.js +0 -12
  286. package/dist/vendor/@material-design-icons/svg/outlined/unfold_more.js +0 -12
  287. package/dist/vendor/@material-design-icons/svg/outlined/upload_file.js +0 -12
  288. package/dist/vendor/@material-design-icons/svg/outlined/visibility.js +0 -12
  289. package/dist/vendor/@material-design-icons/svg/outlined/visibility_off.js +0 -12
  290. package/dist/vendor/@material-design-icons/svg/outlined/warning_amber.js +0 -12
@@ -3,8 +3,8 @@ import { useFieldState } from "../field/use-field-state.js";
3
3
  import { useTimeZone } from "../time-zone-provider/time-zone-provider.js";
4
4
  import { DateInput } from "./date-input.js";
5
5
  import { c } from "react/compiler-runtime";
6
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
7
  import { useRef } from "react";
7
- import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
8
8
  // src/components/date-field/date-field.tsx
9
9
  /**
10
10
  * A labelled date entry whose segments are typed or picked from a calendar
@@ -12,7 +12,7 @@ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
12
12
  *
13
13
  * @example
14
14
  * <DateField
15
- * label="Treatment date"
15
+ * label="Service date"
16
16
  * optionalLabel="optional"
17
17
  * openCalendarLabel="Open calendar"
18
18
  * previousMonthLabel="Previous month"
@@ -20,13 +20,17 @@ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
20
20
  * monthLabel="Month"
21
21
  * yearLabel="Year"
22
22
  * noMatchingYearLabel="No matching year."
23
+ * openCalendarIcon={<CalendarTodayIcon />}
24
+ * previousIcon={<ChevronLeftIcon />}
25
+ * nextIcon={<ChevronRightIcon />}
26
+ * checkIcon={<CheckIcon />}
23
27
  * value={date}
24
28
  * onValueChange={setDate}
25
29
  * />
26
30
  */
27
31
  var DateField = (t0) => {
28
- const $ = c(44);
29
- const { label, description, errors, requiredness, optionalLabel, dirty, touched, pending, openCalendarLabel, previousMonthLabel, nextMonthLabel, monthLabel, yearLabel, noMatchingYearLabel, value, defaultValue, onValueChange, onBlur, minValue, maxValue, name, disabled, readOnly, className } = t0;
32
+ const $ = c(49);
33
+ const { label, description, errors, requiredness, optionalLabel, dirty, touched, pending, openCalendarLabel, previousMonthLabel, nextMonthLabel, monthLabel, yearLabel, noMatchingYearLabel, openCalendarIcon, previousIcon, nextIcon, checkIcon, expandIcon, value, defaultValue, onValueChange, onBlur, minValue, maxValue, name, disabled, readOnly, className } = t0;
30
34
  const triggerRef = useRef(null);
31
35
  const timeZone = useTimeZone();
32
36
  let t1;
@@ -64,7 +68,7 @@ var DateField = (t0) => {
64
68
  const { phase } = field;
65
69
  const fieldState = field.state;
66
70
  let t4;
67
- if ($[12] !== day || $[13] !== defaultValue || $[14] !== field.disabled || $[15] !== field.invalid || $[16] !== fieldState || $[17] !== maxValue || $[18] !== minValue || $[19] !== monthLabel || $[20] !== name || $[21] !== nextMonthLabel || $[22] !== noMatchingYearLabel || $[23] !== onBlur || $[24] !== onValueChange || $[25] !== openCalendarLabel || $[26] !== phase || $[27] !== previousMonthLabel || $[28] !== readOnly || $[29] !== requiredness || $[30] !== timeZone || $[31] !== value || $[32] !== yearLabel) {
71
+ if ($[12] !== checkIcon || $[13] !== day || $[14] !== defaultValue || $[15] !== expandIcon || $[16] !== field.disabled || $[17] !== field.invalid || $[18] !== fieldState || $[19] !== maxValue || $[20] !== minValue || $[21] !== monthLabel || $[22] !== name || $[23] !== nextIcon || $[24] !== nextMonthLabel || $[25] !== noMatchingYearLabel || $[26] !== onBlur || $[27] !== onValueChange || $[28] !== openCalendarIcon || $[29] !== openCalendarLabel || $[30] !== phase || $[31] !== previousIcon || $[32] !== previousMonthLabel || $[33] !== readOnly || $[34] !== requiredness || $[35] !== timeZone || $[36] !== value || $[37] !== yearLabel) {
68
72
  t4 = (t5) => {
69
73
  const { labelId, describedBy, controlId } = t5;
70
74
  return /* @__PURE__ */ jsx(DateInput.Root, {
@@ -84,7 +88,7 @@ var DateField = (t0) => {
84
88
  isInvalid: field.invalid,
85
89
  children: (t6) => {
86
90
  const { isFocusWithin } = t6;
87
- return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs(DateInput.Group, {
91
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs(DateInput.Group, {
88
92
  state: {
89
93
  ...fieldState,
90
94
  focused: isFocusWithin
@@ -94,7 +98,8 @@ var DateField = (t0) => {
94
98
  phase !== "fresh" && /* @__PURE__ */ jsx(DateInput.Pending, {}),
95
99
  /* @__PURE__ */ jsx(DateInput.Trigger, {
96
100
  label: openCalendarLabel,
97
- ref: triggerRef
101
+ ref: triggerRef,
102
+ children: openCalendarIcon
98
103
  })
99
104
  ]
100
105
  }), /* @__PURE__ */ jsx(DateInput.Popup, {
@@ -104,37 +109,46 @@ var DateField = (t0) => {
104
109
  nextMonthLabel,
105
110
  monthLabel,
106
111
  yearLabel,
107
- noMatchingYearLabel
112
+ noMatchingYearLabel,
113
+ previousIcon,
114
+ nextIcon,
115
+ checkIcon,
116
+ expandIcon
108
117
  })
109
118
  })] });
110
119
  }
111
120
  });
112
121
  };
113
- $[12] = day;
114
- $[13] = defaultValue;
115
- $[14] = field.disabled;
116
- $[15] = field.invalid;
117
- $[16] = fieldState;
118
- $[17] = maxValue;
119
- $[18] = minValue;
120
- $[19] = monthLabel;
121
- $[20] = name;
122
- $[21] = nextMonthLabel;
123
- $[22] = noMatchingYearLabel;
124
- $[23] = onBlur;
125
- $[24] = onValueChange;
126
- $[25] = openCalendarLabel;
127
- $[26] = phase;
128
- $[27] = previousMonthLabel;
129
- $[28] = readOnly;
130
- $[29] = requiredness;
131
- $[30] = timeZone;
132
- $[31] = value;
133
- $[32] = yearLabel;
134
- $[33] = t4;
135
- } else t4 = $[33];
122
+ $[12] = checkIcon;
123
+ $[13] = day;
124
+ $[14] = defaultValue;
125
+ $[15] = expandIcon;
126
+ $[16] = field.disabled;
127
+ $[17] = field.invalid;
128
+ $[18] = fieldState;
129
+ $[19] = maxValue;
130
+ $[20] = minValue;
131
+ $[21] = monthLabel;
132
+ $[22] = name;
133
+ $[23] = nextIcon;
134
+ $[24] = nextMonthLabel;
135
+ $[25] = noMatchingYearLabel;
136
+ $[26] = onBlur;
137
+ $[27] = onValueChange;
138
+ $[28] = openCalendarIcon;
139
+ $[29] = openCalendarLabel;
140
+ $[30] = phase;
141
+ $[31] = previousIcon;
142
+ $[32] = previousMonthLabel;
143
+ $[33] = readOnly;
144
+ $[34] = requiredness;
145
+ $[35] = timeZone;
146
+ $[36] = value;
147
+ $[37] = yearLabel;
148
+ $[38] = t4;
149
+ } else t4 = $[38];
136
150
  let t5;
137
- if ($[34] !== className || $[35] !== description || $[36] !== dirty || $[37] !== errors || $[38] !== label || $[39] !== optionalLabel || $[40] !== requiredness || $[41] !== t4 || $[42] !== touched) {
151
+ if ($[39] !== className || $[40] !== description || $[41] !== dirty || $[42] !== errors || $[43] !== label || $[44] !== optionalLabel || $[45] !== requiredness || $[46] !== t4 || $[47] !== touched) {
138
152
  t5 = /* @__PURE__ */ jsx(DateInput.Frame, {
139
153
  label,
140
154
  description,
@@ -146,17 +160,17 @@ var DateField = (t0) => {
146
160
  className,
147
161
  children: t4
148
162
  });
149
- $[34] = className;
150
- $[35] = description;
151
- $[36] = dirty;
152
- $[37] = errors;
153
- $[38] = label;
154
- $[39] = optionalLabel;
155
- $[40] = requiredness;
156
- $[41] = t4;
157
- $[42] = touched;
158
- $[43] = t5;
159
- } else t5 = $[43];
163
+ $[39] = className;
164
+ $[40] = description;
165
+ $[41] = dirty;
166
+ $[42] = errors;
167
+ $[43] = label;
168
+ $[44] = optionalLabel;
169
+ $[45] = requiredness;
170
+ $[46] = t4;
171
+ $[47] = touched;
172
+ $[48] = t5;
173
+ } else t5 = $[48];
160
174
  return t5;
161
175
  };
162
176
  export { DateField };
@@ -4,13 +4,28 @@ import { type DatePickerProps as AriaDatePickerProps } from "react-aria-componen
4
4
  import { TemporalCalendar, TemporalFrame, TemporalGroup, TemporalInput, TemporalPopup, type TemporalStateProps } from "../../lib/calendar/temporal.tsx";
5
5
  import { Field } from "../field/index.ts";
6
6
  export type DateInputRootProps = AriaDatePickerProps<CalendarDate> & TemporalStateProps;
7
+ /**
8
+ * A react-aria `DatePicker` holding the value, with today as the placeholder
9
+ * in the `TimeZoneProvider`'s zone.
10
+ *
11
+ * @example
12
+ * <DateInput.Root aria-labelledby={labelId}>…</DateInput.Root>
13
+ */
7
14
  declare const DateInputRoot: ({ state, ...props }: DateInputRootProps) => ReactNode;
8
15
  export type DateInputTriggerProps = Readonly<{
9
16
  /** Accessible name, such as "Open calendar". */
10
17
  label: string;
11
18
  ref?: Ref<HTMLButtonElement>;
19
+ /** The icon the button shows. */
20
+ children: ReactNode;
12
21
  }>;
13
- declare const DateInputTrigger: ({ label, ref, }: DateInputTriggerProps) => ReactNode;
22
+ /**
23
+ * The icon-only button that opens the calendar.
24
+ *
25
+ * @example
26
+ * <DateInput.Trigger label="Open calendar"><CalendarTodayIcon /></DateInput.Trigger>
27
+ */
28
+ declare const DateInputTrigger: ({ label, ref, children, }: DateInputTriggerProps) => ReactNode;
14
29
  /** The parts of a date input. */
15
30
  export type DateInputParts = Readonly<{
16
31
  Frame: typeof TemporalFrame;
@@ -33,10 +48,12 @@ export type DateInputParts = Readonly<{
33
48
  * <>
34
49
  * <DateInput.Group state={{ focused: isFocusWithin }}>
35
50
  * <DateInput.Input />
36
- * <DateInput.Trigger label="Open calendar" />
51
+ * <DateInput.Trigger label="Open calendar">
52
+ * <CalendarTodayIcon />
53
+ * </DateInput.Trigger>
37
54
  * </DateInput.Group>
38
55
  * <DateInput.Popup>
39
- * <DateInput.Calendar {...calendarLabels} />
56
+ * <DateInput.Calendar {...calendarLabels} {...calendarIcons} />
40
57
  * </DateInput.Popup>
41
58
  * </>
42
59
  * )}
@@ -1,14 +1,20 @@
1
- import SvgCalendarToday from "../../vendor/@material-design-icons/svg/outlined/calendar_today.js";
2
1
  import { todayIn } from "../../lib/calendar/temporal-value.js";
3
2
  import { TemporalCalendar, TemporalFrame, TemporalGroup, TemporalInput, TemporalPopup, TemporalTrigger } from "../../lib/calendar/temporal.js";
4
3
  import { Field } from "../field/field.js";
5
4
  import { fieldStateAttributes } from "../field/field-state.js";
6
5
  import { useTimeZone } from "../time-zone-provider/time-zone-provider.js";
7
6
  import { c } from "react/compiler-runtime";
8
- import { useId } from "react";
9
7
  import { jsx } from "react/jsx-runtime";
8
+ import { useId } from "react";
10
9
  import { DatePicker } from "react-aria-components";
11
10
  // src/components/date-field/date-input.tsx
11
+ /**
12
+ * A react-aria `DatePicker` holding the value, with today as the placeholder
13
+ * in the `TimeZoneProvider`'s zone.
14
+ *
15
+ * @example
16
+ * <DateInput.Root aria-labelledby={labelId}>…</DateInput.Root>
17
+ */
12
18
  var DateInputRoot = (t0) => {
13
19
  const $ = c(14);
14
20
  let props;
@@ -60,20 +66,27 @@ var DateInputRoot = (t0) => {
60
66
  } else t6 = $[13];
61
67
  return t6;
62
68
  };
69
+ /**
70
+ * The icon-only button that opens the calendar.
71
+ *
72
+ * @example
73
+ * <DateInput.Trigger label="Open calendar"><CalendarTodayIcon /></DateInput.Trigger>
74
+ */
63
75
  var DateInputTrigger = (t0) => {
64
- const $ = c(3);
65
- const { label, ref } = t0;
76
+ const $ = c(4);
77
+ const { label, ref, children } = t0;
66
78
  let t1;
67
- if ($[0] !== label || $[1] !== ref) {
79
+ if ($[0] !== children || $[1] !== label || $[2] !== ref) {
68
80
  t1 = /* @__PURE__ */ jsx(TemporalTrigger, {
69
- icon: SvgCalendarToday,
70
81
  label,
71
- ref
82
+ ref,
83
+ children
72
84
  });
73
- $[0] = label;
74
- $[1] = ref;
75
- $[2] = t1;
76
- } else t1 = $[2];
85
+ $[0] = children;
86
+ $[1] = label;
87
+ $[2] = ref;
88
+ $[3] = t1;
89
+ } else t1 = $[3];
77
90
  return t1;
78
91
  };
79
92
  /**
@@ -87,10 +100,12 @@ var DateInputTrigger = (t0) => {
87
100
  * <>
88
101
  * <DateInput.Group state={{ focused: isFocusWithin }}>
89
102
  * <DateInput.Input />
90
- * <DateInput.Trigger label="Open calendar" />
103
+ * <DateInput.Trigger label="Open calendar">
104
+ * <CalendarTodayIcon />
105
+ * </DateInput.Trigger>
91
106
  * </DateInput.Group>
92
107
  * <DateInput.Popup>
93
- * <DateInput.Calendar {...calendarLabels} />
108
+ * <DateInput.Calendar {...calendarLabels} {...calendarIcons} />
94
109
  * </DateInput.Popup>
95
110
  * </>
96
111
  * )}
@@ -1,4 +1,4 @@
1
- export type { CalendarLabels } from "../../lib/calendar/temporal.tsx";
1
+ export type { CalendarIcons, CalendarLabels, } from "../../lib/calendar/temporal.tsx";
2
2
  export * from "./date-field.tsx";
3
3
  export * from "./date-input.tsx";
4
4
  export * from "./tsf-date-field.tsx";
@@ -8,7 +8,7 @@ export type TSFDateFieldProps = Omit<DateFieldProps, keyof ConnectedFieldProps |
8
8
  *
9
9
  * @example
10
10
  * <form.AppField name="treatedOn">
11
- * {field => <field.DateField label="Treatment date" optionalLabel="optional" {...calendarLabels} />}
11
+ * {field => <field.DateField label="Service date" optionalLabel="optional" openCalendarIcon={<CalendarTodayIcon />} {...calendarLabels} {...calendarIcons} />}
12
12
  * </form.AppField>
13
13
  */
14
14
  export declare const TSFDateField: (props: TSFDateFieldProps) => ReactNode;
@@ -9,7 +9,7 @@ import { jsx } from "react/jsx-runtime";
9
9
  *
10
10
  * @example
11
11
  * <form.AppField name="treatedOn">
12
- * {field => <field.DateField label="Treatment date" optionalLabel="optional" {...calendarLabels} />}
12
+ * {field => <field.DateField label="Service date" optionalLabel="optional" openCalendarIcon={<CalendarTodayIcon />} {...calendarLabels} {...calendarIcons} />}
13
13
  * </form.AppField>
14
14
  */
15
15
  var TSFDateField = (props) => {
@@ -1,10 +1,12 @@
1
1
  import { type ReactNode } from "react";
2
- import type { CalendarLabels } from "../../lib/calendar/temporal.tsx";
2
+ import type { CalendarIcons, CalendarLabels } from "../../lib/calendar/temporal.tsx";
3
3
  import { type IsoDateRange } from "../../lib/calendar/temporal-value.ts";
4
4
  import { type FieldBlurHandler, type FieldProps } from "../field/index.ts";
5
- export type DateRangeFieldProps = FieldProps & CalendarLabels & Readonly<{
5
+ export type DateRangeFieldProps = FieldProps & CalendarLabels & CalendarIcons & Readonly<{
6
6
  /** Accessible name of the button that opens the calendar, such as "Open calendar". */
7
7
  openCalendarLabel: string;
8
+ /** The icon of the button that opens the calendar. */
9
+ openCalendarIcon: ReactNode;
8
10
  /**
9
11
  * Inclusive ISO plain dates, such as `{ start: "2026-07-01", end: "2026-07-31" }`.
10
12
  * A date-time or an instant is read as the day it falls on in the
@@ -41,13 +43,15 @@ export type DateRangeFieldProps = FieldProps & CalendarLabels & Readonly<{
41
43
  *
42
44
  * @example
43
45
  * <DateRangeField
44
- * label="Declaration period"
46
+ * label="Invoice period"
45
47
  * optionalLabel="optional"
46
48
  * openCalendarLabel="Open calendar"
49
+ * openCalendarIcon={<DateRangeIcon />}
47
50
  * {...calendarLabels}
51
+ * {...calendarIcons}
48
52
  * visibleMonths={narrow ? 1 : 2}
49
53
  * value={period}
50
54
  * onValueChange={setPeriod}
51
55
  * />
52
56
  */
53
- export declare const DateRangeField: ({ label, description, errors, requiredness, optionalLabel, dirty, touched, pending, openCalendarLabel, previousMonthLabel, nextMonthLabel, monthLabel, yearLabel, noMatchingYearLabel, value, defaultValue, onValueChange, onBlur, minValue, maxValue, visibleMonths, startName, endName, disabled, readOnly, className, }: DateRangeFieldProps) => ReactNode;
57
+ export declare const DateRangeField: ({ label, description, errors, requiredness, optionalLabel, dirty, touched, pending, openCalendarLabel, previousMonthLabel, nextMonthLabel, monthLabel, yearLabel, noMatchingYearLabel, openCalendarIcon, previousIcon, nextIcon, checkIcon, expandIcon, value, defaultValue, onValueChange, onBlur, minValue, maxValue, visibleMonths, startName, endName, disabled, readOnly, className, }: DateRangeFieldProps) => ReactNode;
@@ -3,8 +3,8 @@ import { useFieldState } from "../field/use-field-state.js";
3
3
  import { useTimeZone } from "../time-zone-provider/time-zone-provider.js";
4
4
  import { DateRangeInput } from "./date-range-input.js";
5
5
  import { c } from "react/compiler-runtime";
6
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
7
  import { useRef } from "react";
7
- import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
8
8
  // src/components/date-range-field/date-range-field.tsx
9
9
  /**
10
10
  * A labelled start and end date, typed or picked from one range calendar. Its
@@ -13,18 +13,20 @@ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
13
13
  *
14
14
  * @example
15
15
  * <DateRangeField
16
- * label="Declaration period"
16
+ * label="Invoice period"
17
17
  * optionalLabel="optional"
18
18
  * openCalendarLabel="Open calendar"
19
+ * openCalendarIcon={<DateRangeIcon />}
19
20
  * {...calendarLabels}
21
+ * {...calendarIcons}
20
22
  * visibleMonths={narrow ? 1 : 2}
21
23
  * value={period}
22
24
  * onValueChange={setPeriod}
23
25
  * />
24
26
  */
25
27
  var DateRangeField = (t0) => {
26
- const $ = c(46);
27
- const { label, description, errors, requiredness, optionalLabel, dirty, touched, pending, openCalendarLabel, previousMonthLabel, nextMonthLabel, monthLabel, yearLabel, noMatchingYearLabel, value, defaultValue, onValueChange, onBlur, minValue, maxValue, visibleMonths, startName, endName, disabled, readOnly, className } = t0;
28
+ const $ = c(51);
29
+ const { label, description, errors, requiredness, optionalLabel, dirty, touched, pending, openCalendarLabel, previousMonthLabel, nextMonthLabel, monthLabel, yearLabel, noMatchingYearLabel, openCalendarIcon, previousIcon, nextIcon, checkIcon, expandIcon, value, defaultValue, onValueChange, onBlur, minValue, maxValue, visibleMonths, startName, endName, disabled, readOnly, className } = t0;
28
30
  const triggerRef = useRef(null);
29
31
  const timeZone = useTimeZone();
30
32
  let t1;
@@ -62,7 +64,7 @@ var DateRangeField = (t0) => {
62
64
  const { phase } = field;
63
65
  const fieldState = field.state;
64
66
  let t4;
65
- if ($[12] !== defaultValue || $[13] !== endName || $[14] !== field.disabled || $[15] !== field.invalid || $[16] !== fieldState || $[17] !== maxValue || $[18] !== minValue || $[19] !== monthLabel || $[20] !== nextMonthLabel || $[21] !== noMatchingYearLabel || $[22] !== onBlur || $[23] !== onValueChange || $[24] !== openCalendarLabel || $[25] !== phase || $[26] !== previousMonthLabel || $[27] !== range || $[28] !== readOnly || $[29] !== requiredness || $[30] !== startName || $[31] !== timeZone || $[32] !== value || $[33] !== visibleMonths || $[34] !== yearLabel) {
67
+ if ($[12] !== checkIcon || $[13] !== defaultValue || $[14] !== endName || $[15] !== expandIcon || $[16] !== field.disabled || $[17] !== field.invalid || $[18] !== fieldState || $[19] !== maxValue || $[20] !== minValue || $[21] !== monthLabel || $[22] !== nextIcon || $[23] !== nextMonthLabel || $[24] !== noMatchingYearLabel || $[25] !== onBlur || $[26] !== onValueChange || $[27] !== openCalendarIcon || $[28] !== openCalendarLabel || $[29] !== phase || $[30] !== previousIcon || $[31] !== previousMonthLabel || $[32] !== range || $[33] !== readOnly || $[34] !== requiredness || $[35] !== startName || $[36] !== timeZone || $[37] !== value || $[38] !== visibleMonths || $[39] !== yearLabel) {
66
68
  t4 = (t5) => {
67
69
  const { labelId, describedBy, controlId } = t5;
68
70
  return /* @__PURE__ */ jsx(DateRangeInput.Root, {
@@ -83,7 +85,7 @@ var DateRangeField = (t0) => {
83
85
  isInvalid: field.invalid,
84
86
  children: (t6) => {
85
87
  const { isFocusWithin } = t6;
86
- return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs(DateRangeInput.Group, {
88
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs(DateRangeInput.Group, {
87
89
  state: {
88
90
  ...fieldState,
89
91
  focused: isFocusWithin
@@ -96,7 +98,8 @@ var DateRangeField = (t0) => {
96
98
  phase !== "fresh" && /* @__PURE__ */ jsx(DateRangeInput.Pending, {}),
97
99
  /* @__PURE__ */ jsx(DateRangeInput.Trigger, {
98
100
  label: openCalendarLabel,
99
- ref: triggerRef
101
+ ref: triggerRef,
102
+ children: openCalendarIcon
100
103
  })
101
104
  ]
102
105
  }), /* @__PURE__ */ jsx(DateRangeInput.Popup, {
@@ -107,39 +110,48 @@ var DateRangeField = (t0) => {
107
110
  nextMonthLabel,
108
111
  monthLabel,
109
112
  yearLabel,
110
- noMatchingYearLabel
113
+ noMatchingYearLabel,
114
+ previousIcon,
115
+ nextIcon,
116
+ checkIcon,
117
+ expandIcon
111
118
  })
112
119
  })] });
113
120
  }
114
121
  });
115
122
  };
116
- $[12] = defaultValue;
117
- $[13] = endName;
118
- $[14] = field.disabled;
119
- $[15] = field.invalid;
120
- $[16] = fieldState;
121
- $[17] = maxValue;
122
- $[18] = minValue;
123
- $[19] = monthLabel;
124
- $[20] = nextMonthLabel;
125
- $[21] = noMatchingYearLabel;
126
- $[22] = onBlur;
127
- $[23] = onValueChange;
128
- $[24] = openCalendarLabel;
129
- $[25] = phase;
130
- $[26] = previousMonthLabel;
131
- $[27] = range;
132
- $[28] = readOnly;
133
- $[29] = requiredness;
134
- $[30] = startName;
135
- $[31] = timeZone;
136
- $[32] = value;
137
- $[33] = visibleMonths;
138
- $[34] = yearLabel;
139
- $[35] = t4;
140
- } else t4 = $[35];
123
+ $[12] = checkIcon;
124
+ $[13] = defaultValue;
125
+ $[14] = endName;
126
+ $[15] = expandIcon;
127
+ $[16] = field.disabled;
128
+ $[17] = field.invalid;
129
+ $[18] = fieldState;
130
+ $[19] = maxValue;
131
+ $[20] = minValue;
132
+ $[21] = monthLabel;
133
+ $[22] = nextIcon;
134
+ $[23] = nextMonthLabel;
135
+ $[24] = noMatchingYearLabel;
136
+ $[25] = onBlur;
137
+ $[26] = onValueChange;
138
+ $[27] = openCalendarIcon;
139
+ $[28] = openCalendarLabel;
140
+ $[29] = phase;
141
+ $[30] = previousIcon;
142
+ $[31] = previousMonthLabel;
143
+ $[32] = range;
144
+ $[33] = readOnly;
145
+ $[34] = requiredness;
146
+ $[35] = startName;
147
+ $[36] = timeZone;
148
+ $[37] = value;
149
+ $[38] = visibleMonths;
150
+ $[39] = yearLabel;
151
+ $[40] = t4;
152
+ } else t4 = $[40];
141
153
  let t5;
142
- if ($[36] !== className || $[37] !== description || $[38] !== dirty || $[39] !== errors || $[40] !== label || $[41] !== optionalLabel || $[42] !== requiredness || $[43] !== t4 || $[44] !== touched) {
154
+ if ($[41] !== className || $[42] !== description || $[43] !== dirty || $[44] !== errors || $[45] !== label || $[46] !== optionalLabel || $[47] !== requiredness || $[48] !== t4 || $[49] !== touched) {
143
155
  t5 = /* @__PURE__ */ jsx(DateRangeInput.Frame, {
144
156
  label,
145
157
  description,
@@ -151,17 +163,17 @@ var DateRangeField = (t0) => {
151
163
  className,
152
164
  children: t4
153
165
  });
154
- $[36] = className;
155
- $[37] = description;
156
- $[38] = dirty;
157
- $[39] = errors;
158
- $[40] = label;
159
- $[41] = optionalLabel;
160
- $[42] = requiredness;
161
- $[43] = t4;
162
- $[44] = touched;
163
- $[45] = t5;
164
- } else t5 = $[45];
166
+ $[41] = className;
167
+ $[42] = description;
168
+ $[43] = dirty;
169
+ $[44] = errors;
170
+ $[45] = label;
171
+ $[46] = optionalLabel;
172
+ $[47] = requiredness;
173
+ $[48] = t4;
174
+ $[49] = touched;
175
+ $[50] = t5;
176
+ } else t5 = $[50];
165
177
  return t5;
166
178
  };
167
179
  export { DateRangeField };
@@ -4,13 +4,28 @@ import { type DateRangePickerProps as AriaDateRangePickerProps } from "react-ari
4
4
  import { TemporalFrame, TemporalGroup, TemporalPopup, TemporalRangeCalendar, TemporalRangeInput, TemporalRangeSeparator, TemporalRangeSpacer, type TemporalStateProps } from "../../lib/calendar/temporal.tsx";
5
5
  import { Field } from "../field/index.ts";
6
6
  export type DateRangeInputRootProps = AriaDateRangePickerProps<CalendarDate> & TemporalStateProps;
7
+ /**
8
+ * A react-aria `DateRangePicker` holding the value, with today as the
9
+ * placeholder in the `TimeZoneProvider`'s zone.
10
+ *
11
+ * @example
12
+ * <DateRangeInput.Root aria-labelledby={labelId}>…</DateRangeInput.Root>
13
+ */
7
14
  declare const DateRangeInputRoot: ({ state, ...props }: DateRangeInputRootProps) => ReactNode;
8
15
  export type DateRangeInputTriggerProps = Readonly<{
9
16
  /** Accessible name, such as "Open calendar". */
10
17
  label: string;
11
18
  ref?: Ref<HTMLButtonElement>;
19
+ /** The icon the button shows. */
20
+ children: ReactNode;
12
21
  }>;
13
- declare const DateRangeInputTrigger: ({ label, ref, }: DateRangeInputTriggerProps) => ReactNode;
22
+ /**
23
+ * The icon-only button that opens the range calendar.
24
+ *
25
+ * @example
26
+ * <DateRangeInput.Trigger label="Open calendar"><DateRangeIcon /></DateRangeInput.Trigger>
27
+ */
28
+ declare const DateRangeInputTrigger: ({ label, ref, children, }: DateRangeInputTriggerProps) => ReactNode;
14
29
  /** The parts of a date range input. */
15
30
  export type DateRangeInputParts = Readonly<{
16
31
  Frame: typeof TemporalFrame;
@@ -38,10 +53,12 @@ export type DateRangeInputParts = Readonly<{
38
53
  * <DateRangeInput.Separator />
39
54
  * <DateRangeInput.Input slot="end" />
40
55
  * <DateRangeInput.Spacer />
41
- * <DateRangeInput.Trigger label="Open calendar" />
56
+ * <DateRangeInput.Trigger label="Open calendar">
57
+ * <DateRangeIcon />
58
+ * </DateRangeInput.Trigger>
42
59
  * </DateRangeInput.Group>
43
60
  * <DateRangeInput.Popup>
44
- * <DateRangeInput.Calendar {...calendarLabels} />
61
+ * <DateRangeInput.Calendar {...calendarLabels} {...calendarIcons} />
45
62
  * </DateRangeInput.Popup>
46
63
  * </>
47
64
  * )}
@@ -1,4 +1,3 @@
1
- import SvgDateRange from "../../vendor/@material-design-icons/svg/outlined/date_range.js";
2
1
  import { todayIn } from "../../lib/calendar/temporal-value.js";
3
2
  import { TemporalFrame, TemporalGroup, TemporalPopup, TemporalRangeCalendar, TemporalRangeInput, TemporalRangeSeparator, TemporalRangeSpacer, TemporalTrigger } from "../../lib/calendar/temporal.js";
4
3
  import { Field } from "../field/field.js";
@@ -8,6 +7,13 @@ import { c } from "react/compiler-runtime";
8
7
  import { jsx } from "react/jsx-runtime";
9
8
  import { DateRangePicker } from "react-aria-components";
10
9
  // src/components/date-range-field/date-range-input.tsx
10
+ /**
11
+ * A react-aria `DateRangePicker` holding the value, with today as the
12
+ * placeholder in the `TimeZoneProvider`'s zone.
13
+ *
14
+ * @example
15
+ * <DateRangeInput.Root aria-labelledby={labelId}>…</DateRangeInput.Root>
16
+ */
11
17
  var DateRangeInputRoot = (t0) => {
12
18
  const $ = c(13);
13
19
  let props;
@@ -55,20 +61,27 @@ var DateRangeInputRoot = (t0) => {
55
61
  } else t5 = $[12];
56
62
  return t5;
57
63
  };
64
+ /**
65
+ * The icon-only button that opens the range calendar.
66
+ *
67
+ * @example
68
+ * <DateRangeInput.Trigger label="Open calendar"><DateRangeIcon /></DateRangeInput.Trigger>
69
+ */
58
70
  var DateRangeInputTrigger = (t0) => {
59
- const $ = c(3);
60
- const { label, ref } = t0;
71
+ const $ = c(4);
72
+ const { label, ref, children } = t0;
61
73
  let t1;
62
- if ($[0] !== label || $[1] !== ref) {
74
+ if ($[0] !== children || $[1] !== label || $[2] !== ref) {
63
75
  t1 = /* @__PURE__ */ jsx(TemporalTrigger, {
64
- icon: SvgDateRange,
65
76
  label,
66
- ref
77
+ ref,
78
+ children
67
79
  });
68
- $[0] = label;
69
- $[1] = ref;
70
- $[2] = t1;
71
- } else t1 = $[2];
80
+ $[0] = children;
81
+ $[1] = label;
82
+ $[2] = ref;
83
+ $[3] = t1;
84
+ } else t1 = $[3];
72
85
  return t1;
73
86
  };
74
87
  /**
@@ -85,10 +98,12 @@ var DateRangeInputTrigger = (t0) => {
85
98
  * <DateRangeInput.Separator />
86
99
  * <DateRangeInput.Input slot="end" />
87
100
  * <DateRangeInput.Spacer />
88
- * <DateRangeInput.Trigger label="Open calendar" />
101
+ * <DateRangeInput.Trigger label="Open calendar">
102
+ * <DateRangeIcon />
103
+ * </DateRangeInput.Trigger>
89
104
  * </DateRangeInput.Group>
90
105
  * <DateRangeInput.Popup>
91
- * <DateRangeInput.Calendar {...calendarLabels} />
106
+ * <DateRangeInput.Calendar {...calendarLabels} {...calendarIcons} />
92
107
  * </DateRangeInput.Popup>
93
108
  * </>
94
109
  * )}
@@ -9,7 +9,7 @@ export type TSFDateRangeFieldProps = Omit<DateRangeFieldProps, keyof ConnectedFi
9
9
  *
10
10
  * @example
11
11
  * <form.AppField name="period">
12
- * {field => <field.DateRangeField label="Period" optionalLabel="optional" openCalendarLabel="Open calendar" {...calendarLabels} />}
12
+ * {field => <field.DateRangeField label="Period" optionalLabel="optional" openCalendarLabel="Open calendar" openCalendarIcon={<DateRangeIcon />} {...calendarLabels} {...calendarIcons} />}
13
13
  * </form.AppField>
14
14
  */
15
15
  export declare const TSFDateRangeField: (props: TSFDateRangeFieldProps) => ReactNode;
@@ -10,7 +10,7 @@ import { jsx } from "react/jsx-runtime";
10
10
  *
11
11
  * @example
12
12
  * <form.AppField name="period">
13
- * {field => <field.DateRangeField label="Period" optionalLabel="optional" openCalendarLabel="Open calendar" {...calendarLabels} />}
13
+ * {field => <field.DateRangeField label="Period" optionalLabel="optional" openCalendarLabel="Open calendar" openCalendarIcon={<DateRangeIcon />} {...calendarLabels} {...calendarIcons} />}
14
14
  * </form.AppField>
15
15
  */
16
16
  var TSFDateRangeField = (props) => {