@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
@@ -1,14 +1,14 @@
1
1
  import { normalizeFieldErrors } from "../../lib/forms/errors.js";
2
2
  import { formatBytes } from "../../lib/format-bytes.js";
3
- import { useFieldIds } from "../field/field.js";
3
+ import { Field } from "../field/field.js";
4
4
  import { useFieldState } from "../field/use-field-state.js";
5
5
  import { useLocale } from "../locale-provider/locale-provider.js";
6
6
  import { FileInput } from "./file-input.js";
7
7
  import { isOversized, oversizedFiles } from "./file-size.js";
8
8
  import { isAccepted, wrongTypeFiles } from "./file-type.js";
9
9
  import { c } from "react/compiler-runtime";
10
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
11
  import { useRef } from "react";
11
- import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
12
12
  import { isFileDropItem } from "react-aria-components";
13
13
  // src/components/file-field/file-field.tsx
14
14
  /**
@@ -30,16 +30,17 @@ import { isFileDropItem } from "react-aria-components";
30
30
  * chooseLabel="Choose files"
31
31
  * filesLabel="Files for attachments"
32
32
  * removeLabel="Remove"
33
+ * removeIcon={<CloseIcon />}
33
34
  * fileHint={(name, size) => `${name} (${size})`}
34
35
  * tooLargeError={(name, maxSize) => `${name} is larger than ${maxSize}.`}
35
36
  * wrongTypeError={name => `${name} is not an accepted file type.`}
36
37
  * />
37
38
  */
38
39
  var FileField = (t0) => {
39
- const $ = c(86);
40
- const { label, description, errors, requiredness, optionalLabel, dirty, touched, pending, value, onValueChange, onBlur, maxFileSize, accept, multiple, disabled, readOnly, dropTargetLabel, dropHint, chooseLabel, filesLabel, removeLabel, fileHint, tooLargeError, wrongTypeError, className } = t0;
40
+ const $ = c(93);
41
+ const { label, description, errors, requiredness, optionalLabel, dirty, touched, pending, value, onValueChange, onBlur, maxFileSize, accept, multiple, disabled, readOnly, dropTargetLabel, dropHint, dropIcon, chooseLabel, chooseIcon, filesLabel, removeLabel, removeIcon, fileIcon, fileHint, tooLargeError, wrongTypeError, className } = t0;
41
42
  const locale = useLocale();
42
- const ids = useFieldIds();
43
+ const ids = Field.useIds();
43
44
  const triggerRef = useRef(null);
44
45
  let t1;
45
46
  if ($[0] !== accept || $[1] !== errors || $[2] !== locale || $[3] !== maxFileSize || $[4] !== tooLargeError || $[5] !== value || $[6] !== wrongTypeError) {
@@ -131,8 +132,20 @@ var FileField = (t0) => {
131
132
  } else t6 = $[31];
132
133
  const remove = t6;
133
134
  let t7;
134
- if ($[32] !== accept || $[33] !== fieldState.disabled || $[34] !== fileHint || $[35] !== filesLabel || $[36] !== locale || $[37] !== maxFileSize || $[38] !== readOnly || $[39] !== remove || $[40] !== removeLabel || $[41] !== value) {
135
- t7 = value.length === 0 ? null : /* @__PURE__ */ jsx(FileInput.List, {
135
+ if ($[32] !== readOnly || $[33] !== removeIcon || $[34] !== removeLabel) {
136
+ t7 = readOnly === true ? {} : {
137
+ removeLabel,
138
+ removeIcon
139
+ };
140
+ $[32] = readOnly;
141
+ $[33] = removeIcon;
142
+ $[34] = removeLabel;
143
+ $[35] = t7;
144
+ } else t7 = $[35];
145
+ const removal = t7;
146
+ let t8;
147
+ if ($[36] !== accept || $[37] !== fieldState.disabled || $[38] !== fileHint || $[39] !== fileIcon || $[40] !== filesLabel || $[41] !== locale || $[42] !== maxFileSize || $[43] !== readOnly || $[44] !== removal || $[45] !== remove || $[46] !== value) {
148
+ t8 = value.length === 0 ? null : /* @__PURE__ */ jsx(FileInput.List, {
136
149
  label: filesLabel,
137
150
  onRemove: readOnly === true ? void 0 : remove,
138
151
  children: value.map((file_3, index_1) => /* @__PURE__ */ jsx(FileInput.Item, {
@@ -141,55 +154,61 @@ var FileField = (t0) => {
141
154
  hint: fileHint(file_3.name, formatBytes(file_3.size, locale)),
142
155
  invalid: isOversized(file_3, maxFileSize) || !isAccepted(file_3, accept ?? []),
143
156
  disabled: fieldState.disabled,
144
- removeLabel: readOnly === true ? void 0 : removeLabel
157
+ icon: fileIcon,
158
+ ...removal
145
159
  }, keyOf(file_3, index_1)))
146
160
  });
147
- $[32] = accept;
148
- $[33] = fieldState.disabled;
149
- $[34] = fileHint;
150
- $[35] = filesLabel;
151
- $[36] = locale;
152
- $[37] = maxFileSize;
153
- $[38] = readOnly;
154
- $[39] = remove;
155
- $[40] = removeLabel;
156
- $[41] = value;
157
- $[42] = t7;
158
- } else t7 = $[42];
159
- const tiles = t7;
160
- let t8;
161
- if ($[43] !== onBlur) {
162
- t8 = (event) => {
161
+ $[36] = accept;
162
+ $[37] = fieldState.disabled;
163
+ $[38] = fileHint;
164
+ $[39] = fileIcon;
165
+ $[40] = filesLabel;
166
+ $[41] = locale;
167
+ $[42] = maxFileSize;
168
+ $[43] = readOnly;
169
+ $[44] = removal;
170
+ $[45] = remove;
171
+ $[46] = value;
172
+ $[47] = t8;
173
+ } else t8 = $[47];
174
+ const tiles = t8;
175
+ let t9;
176
+ if ($[48] !== onBlur) {
177
+ t9 = (event) => {
163
178
  if (!(event.relatedTarget instanceof Node && event.currentTarget.contains(event.relatedTarget))) onBlur?.();
164
179
  };
165
- $[43] = onBlur;
166
- $[44] = t8;
167
- } else t8 = $[44];
168
- let t9;
169
- if ($[45] !== label || $[46] !== optionalLabel || $[47] !== requiredness) {
170
- t9 = /* @__PURE__ */ jsx(FileInput.Legend, {
180
+ $[48] = onBlur;
181
+ $[49] = t9;
182
+ } else t9 = $[49];
183
+ let t10;
184
+ if ($[50] !== label || $[51] !== optionalLabel || $[52] !== requiredness) {
185
+ t10 = /* @__PURE__ */ jsx(FileInput.Legend, {
171
186
  requiredness,
172
187
  optionalLabel,
173
188
  children: label
174
189
  });
175
- $[45] = label;
176
- $[46] = optionalLabel;
177
- $[47] = requiredness;
178
- $[48] = t9;
179
- } else t9 = $[48];
180
- const t10 = readOnly === true ? _temp2 : void 0;
181
- let t11;
182
- if ($[49] !== add) {
183
- t11 = async (event_0) => {
190
+ $[50] = label;
191
+ $[51] = optionalLabel;
192
+ $[52] = requiredness;
193
+ $[53] = t10;
194
+ } else t10 = $[53];
195
+ const t11 = readOnly === true ? _temp2 : void 0;
196
+ let t12;
197
+ if ($[54] !== add) {
198
+ t12 = async (event_0) => {
184
199
  add(await Promise.all(event_0.items.filter(isFileDropItem).map(_temp3)));
185
200
  };
186
- $[49] = add;
187
- $[50] = t11;
188
- } else t11 = $[50];
189
- let t12;
190
- if ($[51] !== accept || $[52] !== add || $[53] !== chooseLabel || $[54] !== describedBy || $[55] !== dropHint || $[56] !== field.disabled || $[57] !== field.invalid || $[58] !== multiple || $[59] !== readOnly) {
191
- t12 = readOnly === true ? null : /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(FileInput.Hint, { children: dropHint }), /* @__PURE__ */ jsx(FileInput.Trigger, {
201
+ $[54] = add;
202
+ $[55] = t12;
203
+ } else t12 = $[55];
204
+ let t13;
205
+ if ($[56] !== accept || $[57] !== add || $[58] !== chooseIcon || $[59] !== chooseLabel || $[60] !== describedBy || $[61] !== dropHint || $[62] !== dropIcon || $[63] !== field.disabled || $[64] !== field.invalid || $[65] !== multiple || $[66] !== readOnly) {
206
+ t13 = readOnly === true ? null : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(FileInput.Hint, {
207
+ icon: dropIcon,
208
+ children: dropHint
209
+ }), /* @__PURE__ */ jsx(FileInput.Trigger, {
192
210
  label: chooseLabel,
211
+ icon: chooseIcon,
193
212
  disabled: field.disabled,
194
213
  describedBy,
195
214
  buttonRef: triggerRef,
@@ -198,91 +217,93 @@ var FileField = (t0) => {
198
217
  acceptedFileTypes: accept,
199
218
  onSelect: (files) => add(files === null ? [] : [...files])
200
219
  })] });
201
- $[51] = accept;
202
- $[52] = add;
203
- $[53] = chooseLabel;
204
- $[54] = describedBy;
205
- $[55] = dropHint;
206
- $[56] = field.disabled;
207
- $[57] = field.invalid;
208
- $[58] = multiple;
209
- $[59] = readOnly;
210
- $[60] = t12;
211
- } else t12 = $[60];
212
- let t13;
213
- if ($[61] !== field.phase) {
214
- t13 = field.phase !== "fresh" && /* @__PURE__ */ jsx(FileInput.Pending, {});
215
- $[61] = field.phase;
216
- $[62] = t13;
217
- } else t13 = $[62];
220
+ $[56] = accept;
221
+ $[57] = add;
222
+ $[58] = chooseIcon;
223
+ $[59] = chooseLabel;
224
+ $[60] = describedBy;
225
+ $[61] = dropHint;
226
+ $[62] = dropIcon;
227
+ $[63] = field.disabled;
228
+ $[64] = field.invalid;
229
+ $[65] = multiple;
230
+ $[66] = readOnly;
231
+ $[67] = t13;
232
+ } else t13 = $[67];
218
233
  let t14;
219
- if ($[63] !== dropTargetLabel || $[64] !== field.disabled || $[65] !== fieldState || $[66] !== t10 || $[67] !== t11 || $[68] !== t12 || $[69] !== t13 || $[70] !== tiles) {
220
- t14 = /* @__PURE__ */ jsxs(FileInput.DropTarget, {
234
+ if ($[68] !== field.phase) {
235
+ t14 = field.phase !== "fresh" && /* @__PURE__ */ jsx(FileInput.Pending, {});
236
+ $[68] = field.phase;
237
+ $[69] = t14;
238
+ } else t14 = $[69];
239
+ let t15;
240
+ if ($[70] !== dropTargetLabel || $[71] !== field.disabled || $[72] !== fieldState || $[73] !== t11 || $[74] !== t12 || $[75] !== t13 || $[76] !== t14 || $[77] !== tiles) {
241
+ t15 = /* @__PURE__ */ jsxs(FileInput.DropTarget, {
221
242
  "aria-label": dropTargetLabel,
222
243
  state: fieldState,
223
244
  isDisabled: field.disabled,
224
- getDropOperation: t10,
225
- onDrop: t11,
245
+ getDropOperation: t11,
246
+ onDrop: t12,
226
247
  children: [
227
- t12,
248
+ t13,
228
249
  tiles,
229
- t13
250
+ t14
230
251
  ]
231
252
  });
232
- $[63] = dropTargetLabel;
233
- $[64] = field.disabled;
234
- $[65] = fieldState;
235
- $[66] = t10;
236
- $[67] = t11;
237
- $[68] = t12;
238
- $[69] = t13;
239
- $[70] = tiles;
240
- $[71] = t14;
241
- } else t14 = $[71];
242
- let t15;
243
- if ($[72] !== description || $[73] !== ids.descriptionId) {
244
- t15 = /* @__PURE__ */ jsx(FileInput.Description, {
253
+ $[70] = dropTargetLabel;
254
+ $[71] = field.disabled;
255
+ $[72] = fieldState;
256
+ $[73] = t11;
257
+ $[74] = t12;
258
+ $[75] = t13;
259
+ $[76] = t14;
260
+ $[77] = tiles;
261
+ $[78] = t15;
262
+ } else t15 = $[78];
263
+ let t16;
264
+ if ($[79] !== description || $[80] !== ids.descriptionId) {
265
+ t16 = /* @__PURE__ */ jsx(FileInput.Description, {
245
266
  id: ids.descriptionId,
246
267
  children: description
247
268
  });
248
- $[72] = description;
249
- $[73] = ids.descriptionId;
250
- $[74] = t15;
251
- } else t15 = $[74];
252
- let t16;
253
- if ($[75] !== ids.errorId || $[76] !== messages) {
254
- t16 = /* @__PURE__ */ jsx(FileInput.Error, {
269
+ $[79] = description;
270
+ $[80] = ids.descriptionId;
271
+ $[81] = t16;
272
+ } else t16 = $[81];
273
+ let t17;
274
+ if ($[82] !== ids.errorId || $[83] !== messages) {
275
+ t17 = /* @__PURE__ */ jsx(FileInput.Error, {
255
276
  id: ids.errorId,
256
277
  children: messages
257
278
  });
258
- $[75] = ids.errorId;
259
- $[76] = messages;
260
- $[77] = t16;
261
- } else t16 = $[77];
262
- let t17;
263
- if ($[78] !== className || $[79] !== fieldState || $[80] !== t14 || $[81] !== t15 || $[82] !== t16 || $[83] !== t8 || $[84] !== t9) {
264
- t17 = /* @__PURE__ */ jsxs(FileInput.Root, {
279
+ $[82] = ids.errorId;
280
+ $[83] = messages;
281
+ $[84] = t17;
282
+ } else t17 = $[84];
283
+ let t18;
284
+ if ($[85] !== className || $[86] !== fieldState || $[87] !== t10 || $[88] !== t15 || $[89] !== t16 || $[90] !== t17 || $[91] !== t9) {
285
+ t18 = /* @__PURE__ */ jsxs(FileInput.Root, {
265
286
  state: fieldState,
266
287
  disabled: fieldState.disabled,
267
288
  className,
268
- onBlur: t8,
289
+ onBlur: t9,
269
290
  children: [
270
- t9,
271
- t14,
291
+ t10,
272
292
  t15,
273
- t16
293
+ t16,
294
+ t17
274
295
  ]
275
296
  });
276
- $[78] = className;
277
- $[79] = fieldState;
278
- $[80] = t14;
279
- $[81] = t15;
280
- $[82] = t16;
281
- $[83] = t8;
282
- $[84] = t9;
283
- $[85] = t17;
284
- } else t17 = $[85];
285
- return t17;
297
+ $[85] = className;
298
+ $[86] = fieldState;
299
+ $[87] = t10;
300
+ $[88] = t15;
301
+ $[89] = t16;
302
+ $[90] = t17;
303
+ $[91] = t9;
304
+ $[92] = t18;
305
+ } else t18 = $[92];
306
+ return t18;
286
307
  };
287
308
  function _temp(file_1, index) {
288
309
  return `${index}-${file_1.name}`;
@@ -1,10 +1,12 @@
1
1
  import './file-field.css';// src/components/file-field/file-field.module.scss
2
- var dropTarget = "_dropTarget_ohenx_3";
3
- var hint = "_hint_ohenx_82";
4
- var list = "_list_ohenx_92";
2
+ var dropTarget = "_dropTarget_1ap1m_3";
3
+ var hint = "_hint_1ap1m_82";
4
+ var hintIcon = "_hintIcon_1ap1m_92";
5
+ var list = "_list_1ap1m_96";
5
6
  var file_field_module_default = {
6
7
  dropTarget,
7
8
  hint,
9
+ hintIcon,
8
10
  list
9
11
  };
10
- export { file_field_module_default as default, dropTarget, hint, list };
12
+ export { file_field_module_default as default, dropTarget, hint, hintIcon, list };
@@ -5,7 +5,9 @@ export type FileInputRootProps = FieldRootProps & Readonly<{
5
5
  /** The states projected onto the field as `data-*` attributes. */
6
6
  state?: FieldState;
7
7
  }>;
8
+ /** The fieldset around the file input, which projects its state as `data-*` attributes. */
8
9
  declare const FileInputRoot: ({ state, disabled, ...props }: FileInputRootProps) => ReactNode;
10
+ /** The legend that names the fieldset. */
9
11
  declare const FileInputLegend: (props: FieldLabelProps) => ReactNode;
10
12
  export type FileInputDropTargetProps = Omit<AriaDropZoneProps, "className" | "aria-label"> & Readonly<{
11
13
  /** Accessible name for the drop target, which is not a labelable element. */
@@ -14,8 +16,14 @@ export type FileInputDropTargetProps = Omit<AriaDropZoneProps, "className" | "ar
14
16
  state?: FieldState;
15
17
  className?: string;
16
18
  }>;
19
+ /** The area files are dropped on, holding the hint, the picker button and the staged files. */
17
20
  declare const FileInputDropTarget: ({ state, className, ...props }: FileInputDropTargetProps) => ReactNode;
18
- declare const FileInputHint: ({ className, children, ...props }: ComponentProps<"p">) => ReactNode;
21
+ export type FileInputHintProps = ComponentProps<"p"> & Readonly<{
22
+ /** Drawn above the prompt, such as an upload icon. */
23
+ icon?: ReactNode;
24
+ }>;
25
+ /** The prompt inside the drop target, with an optional `icon` above it. */
26
+ declare const FileInputHint: ({ className, icon, children, ...props }: FileInputHintProps) => ReactNode;
19
27
  export type FileInputTriggerProps = Omit<AriaFileTriggerProps, "children"> & Readonly<{
20
28
  /** Visible label on the picker button. */
21
29
  label: string;
@@ -26,8 +34,11 @@ export type FileInputTriggerProps = Omit<AriaFileTriggerProps, "children"> & Rea
26
34
  buttonRef?: Ref<HTMLButtonElement>;
27
35
  /** Marks the picker button as the field's invalid control. */
28
36
  invalid?: boolean;
37
+ /** Drawn before the button's label, such as an attach icon. */
38
+ icon?: ReactNode;
29
39
  }>;
30
- declare const FileInputTrigger: ({ label, disabled, describedBy, buttonRef, invalid, ...props }: FileInputTriggerProps) => ReactNode;
40
+ /** The button that opens the file dialog. */
41
+ declare const FileInputTrigger: ({ label, disabled, describedBy, buttonRef, invalid, icon, ...props }: FileInputTriggerProps) => ReactNode;
31
42
  export type FileInputListProps = Readonly<{
32
43
  /** Accessible name for the group of tiles. */
33
44
  label: string;
@@ -36,7 +47,18 @@ export type FileInputListProps = Readonly<{
36
47
  children: ReactNode;
37
48
  className?: string;
38
49
  }>;
50
+ /** The staged files, as a group of removable tiles. */
39
51
  declare const FileInputList: ({ label, onRemove, children, className, }: FileInputListProps) => ReactNode;
52
+ /** A tile's remove button: its name and icon together, or neither for a fixed tile. */
53
+ export type FileInputItemRemoval = Readonly<{
54
+ /** Accessible name for the remove button. */
55
+ removeLabel: string;
56
+ /** The remove button's icon, such as a cross. */
57
+ removeIcon: ReactNode;
58
+ }> | Readonly<{
59
+ removeLabel?: undefined;
60
+ removeIcon?: undefined;
61
+ }>;
40
62
  export type FileInputItemProps = Readonly<{
41
63
  /** Key the surrounding list removes this file by. */
42
64
  id: string;
@@ -46,10 +68,11 @@ export type FileInputItemProps = Readonly<{
46
68
  /** Marks the tile as rejected, such as over the size limit. */
47
69
  invalid?: boolean;
48
70
  disabled?: boolean;
49
- /** Accessible name for the remove button; without one the tile is fixed. */
50
- removeLabel?: string;
51
- }>;
52
- declare const FileInputItem: ({ id, file, hint, invalid, disabled, removeLabel, }: FileInputItemProps) => ReactNode;
71
+ /** Drawn on a tile that has no image preview, such as a file icon. */
72
+ icon?: ReactNode;
73
+ }> & FileInputItemRemoval;
74
+ /** One staged file as an `AttachmentTile`. */
75
+ declare const FileInputItem: ({ invalid, disabled, ...props }: FileInputItemProps) => ReactNode;
53
76
  /** The parts of a file input. */
54
77
  export type FileInputParts = Readonly<{
55
78
  Root: typeof FileInputRoot;
@@ -73,10 +96,10 @@ export type FileInputParts = Readonly<{
73
96
  * <FileInput.Root state={{ requiredness: "optional" }}>
74
97
  * <FileInput.Legend optionalLabel="optional">Attachments</FileInput.Legend>
75
98
  * <FileInput.DropTarget aria-label="Drop zone for attachments" onDrop={onDrop}>
76
- * <FileInput.Hint>Drag files here</FileInput.Hint>
77
- * <FileInput.Trigger label="Choose files" onSelect={onSelect} />
99
+ * <FileInput.Hint icon={<UploadFileIcon />}>Drag files here</FileInput.Hint>
100
+ * <FileInput.Trigger label="Choose files" icon={<AttachFileIcon />} onSelect={onSelect} />
78
101
  * <FileInput.List label="Files for attachments" onRemove={onRemove}>
79
- * <FileInput.Item id={id} file={file} hint="invoice.pdf (12 kB)" removeLabel="Remove" />
102
+ * <FileInput.Item id={id} file={file} hint="invoice.pdf (12 kB)" removeLabel="Remove" removeIcon={<CloseIcon />} />
80
103
  * </FileInput.List>
81
104
  * </FileInput.DropTarget>
82
105
  * </FileInput.Root>