@igne-agency/react-web-ui 0.3.1 → 0.5.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 (291) hide show
  1. package/README.md +32 -1
  2. package/dist/base.css +3 -0
  3. package/dist/components/accordion/accordion.css +24 -19
  4. package/dist/components/accordion/accordion.d.ts +19 -3
  5. package/dist/components/accordion/accordion.js +86 -32
  6. package/dist/components/accordion/accordion.module.js +8 -8
  7. package/dist/components/active-filters/active-filter-describers.d.ts +1 -1
  8. package/dist/components/active-filters/active-filter-describers.js +1 -1
  9. package/dist/components/active-filters/active-filters.d.ts +35 -2
  10. package/dist/components/active-filters/active-filters.js +57 -52
  11. package/dist/components/active-filters/index.js +2 -2
  12. package/dist/components/attachment-tile/attachment-preview.d.ts +11 -9
  13. package/dist/components/attachment-tile/attachment-preview.js +102 -68
  14. package/dist/components/attachment-tile/attachment-tile.css +22 -13
  15. package/dist/components/attachment-tile/attachment-tile.d.ts +51 -6
  16. package/dist/components/attachment-tile/attachment-tile.js +209 -85
  17. package/dist/components/attachment-tile/attachment-tile.module.js +10 -10
  18. package/dist/components/attachment-tile/index.d.ts +1 -1
  19. package/dist/components/attachment-tile/index.js +2 -2
  20. package/dist/components/avatar/avatar.d.ts +5 -5
  21. package/dist/components/avatar/avatar.js +64 -37
  22. package/dist/components/avatar-group/avatar-group.js +2 -2
  23. package/dist/components/badge/badge.js +1 -1
  24. package/dist/components/breadcrumbs/breadcrumbs.d.ts +22 -7
  25. package/dist/components/breadcrumbs/breadcrumbs.js +189 -170
  26. package/dist/components/button/button.d.ts +2 -3
  27. package/dist/components/button/button.js +58 -77
  28. package/dist/components/button/close-button.d.ts +4 -2
  29. package/dist/components/button/close-button.js +9 -9
  30. package/dist/components/checkbox-field/checkbox-field.d.ts +17 -3
  31. package/dist/components/checkbox-field/checkbox-field.js +108 -131
  32. package/dist/components/checkbox-field/checkbox.css +26 -34
  33. package/dist/components/checkbox-field/checkbox.d.ts +51 -8
  34. package/dist/components/checkbox-field/checkbox.js +221 -57
  35. package/dist/components/checkbox-field/checkbox.module.js +6 -8
  36. package/dist/components/checkbox-field/index.d.ts +0 -1
  37. package/dist/components/checkbox-field/index.js +1 -2
  38. package/dist/components/checkbox-field/tsf-checkbox-field.d.ts +2 -2
  39. package/dist/components/checkbox-group-field/checkbox-group-field.d.ts +4 -1
  40. package/dist/components/checkbox-group-field/checkbox-group-field.js +54 -50
  41. package/dist/components/checkbox-group-field/checkbox-group.d.ts +7 -2
  42. package/dist/components/checkbox-group-field/checkbox-group.js +8 -3
  43. package/dist/components/collapsible/collapsible.css +23 -18
  44. package/dist/components/collapsible/collapsible.d.ts +18 -3
  45. package/dist/components/collapsible/collapsible.js +85 -32
  46. package/dist/components/collapsible/collapsible.module.js +7 -7
  47. package/dist/components/combobox-field/combobox-field.d.ts +9 -1
  48. package/dist/components/combobox-field/combobox-field.js +195 -175
  49. package/dist/components/combobox-field/combobox-items.d.ts +2 -2
  50. package/dist/components/combobox-field/combobox-items.js +4 -4
  51. package/dist/components/combobox-field/combobox.css +99 -96
  52. package/dist/components/combobox-field/combobox.d.ts +94 -15
  53. package/dist/components/combobox-field/combobox.js +484 -159
  54. package/dist/components/combobox-field/combobox.module.js +21 -21
  55. package/dist/components/combobox-field/index.d.ts +0 -1
  56. package/dist/components/combobox-field/selection.d.ts +4 -1
  57. package/dist/components/combobox-field/value-state-view.css +7 -3
  58. package/dist/components/combobox-field/value-state-view.d.ts +4 -2
  59. package/dist/components/combobox-field/value-state-view.js +15 -15
  60. package/dist/components/combobox-field/value-state-view.module.js +6 -4
  61. package/dist/components/composer/composer-attachments.d.ts +11 -3
  62. package/dist/components/composer/composer-attachments.js +61 -47
  63. package/dist/components/composer/composer-editor.d.ts +2 -1
  64. package/dist/components/composer/composer-editor.js +79 -71
  65. package/dist/components/composer/composer-mentions.js +2 -2
  66. package/dist/components/composer/composer.d.ts +42 -21
  67. package/dist/components/composer/composer.js +201 -58
  68. package/dist/components/composer/mention-text.js +3 -3
  69. package/dist/components/confirm-dialog/confirm-dialog.d.ts +8 -7
  70. package/dist/components/confirm-dialog/confirm-dialog.js +10 -9
  71. package/dist/components/conversation/conversation.context.d.ts +0 -5
  72. package/dist/components/conversation/conversation.d.ts +63 -29
  73. package/dist/components/conversation/conversation.js +193 -82
  74. package/dist/components/conversation/index.d.ts +1 -1
  75. package/dist/components/date-field/date-field.d.ts +10 -4
  76. package/dist/components/date-field/date-field.js +57 -43
  77. package/dist/components/date-field/date-input.d.ts +20 -3
  78. package/dist/components/date-field/date-input.js +28 -13
  79. package/dist/components/date-field/index.d.ts +1 -1
  80. package/dist/components/date-field/tsf-date-field.d.ts +1 -1
  81. package/dist/components/date-field/tsf-date-field.js +1 -1
  82. package/dist/components/date-range-field/date-range-field.d.ts +8 -4
  83. package/dist/components/date-range-field/date-range-field.js +57 -45
  84. package/dist/components/date-range-field/date-range-input.d.ts +20 -3
  85. package/dist/components/date-range-field/date-range-input.js +27 -12
  86. package/dist/components/date-range-field/tsf-date-range-field.d.ts +1 -1
  87. package/dist/components/date-range-field/tsf-date-range-field.js +1 -1
  88. package/dist/components/detail-list/detail-list.d.ts +28 -27
  89. package/dist/components/detail-list/detail-list.js +177 -121
  90. package/dist/components/dialog/dialog.d.ts +47 -27
  91. package/dist/components/dialog/dialog.js +101 -38
  92. package/dist/components/divider/divider.js +1 -1
  93. package/dist/components/drawer/drawer.d.ts +48 -30
  94. package/dist/components/drawer/drawer.js +113 -41
  95. package/dist/components/email-field/email-field.d.ts +5 -3
  96. package/dist/components/email-field/email-field.js +1 -3
  97. package/dist/components/email-field/tsf-email-field.d.ts +3 -2
  98. package/dist/components/empty-message/empty-message.d.ts +3 -3
  99. package/dist/components/empty-message/empty-message.js +3 -3
  100. package/dist/components/error-boundary/error-boundary.d.ts +5 -2
  101. package/dist/components/error-boundary/error-boundary.js +2 -3
  102. package/dist/components/error-message/error-message.d.ts +1 -1
  103. package/dist/components/error-message/error-message.js +1 -1
  104. package/dist/components/error-text/error-text.js +3 -3
  105. package/dist/components/field/field.d.ts +5 -5
  106. package/dist/components/field/field.js +9 -9
  107. package/dist/components/field/index.js +2 -2
  108. package/dist/components/field/input-parts.js +1 -1
  109. package/dist/components/field-placeholder/field-placeholder.d.ts +4 -1
  110. package/dist/components/field-placeholder/field-placeholder.js +41 -26
  111. package/dist/components/fieldset/field-group.js +1 -1
  112. package/dist/components/fieldset/fieldset-root.js +1 -1
  113. package/dist/components/fieldset/fieldset.js +1 -1
  114. package/dist/components/file-field/file-field.css +19 -15
  115. package/dist/components/file-field/file-field.d.ts +10 -1
  116. package/dist/components/file-field/file-field.js +130 -109
  117. package/dist/components/file-field/file-field.module.js +6 -4
  118. package/dist/components/file-field/file-input.d.ts +32 -9
  119. package/dist/components/file-field/file-input.js +94 -74
  120. package/dist/components/filter-bar/filter-bar.d.ts +79 -51
  121. package/dist/components/filter-bar/filter-bar.js +552 -216
  122. package/dist/components/form/form.d.ts +4 -6
  123. package/dist/components/form/form.js +6 -8
  124. package/dist/components/icon/icon.d.ts +5 -10
  125. package/dist/components/icon/icon.js +4 -6
  126. package/dist/components/link/link.js +1 -1
  127. package/dist/components/link-button/link-button.d.ts +1 -2
  128. package/dist/components/link-button/link-button.js +12 -22
  129. package/dist/components/loading-message/loading-message.d.ts +2 -2
  130. package/dist/components/loading-message/loading-message.js +1 -1
  131. package/dist/components/locale-provider/locale-provider.js +1 -1
  132. package/dist/components/menu/menu.d.ts +40 -22
  133. package/dist/components/menu/menu.js +100 -40
  134. package/dist/components/nav/nav-context.d.ts +0 -1
  135. package/dist/components/nav/nav-context.js +1 -2
  136. package/dist/components/nav/nav-item-view.d.ts +7 -7
  137. package/dist/components/nav/nav-item-view.js +27 -51
  138. package/dist/components/nav/nav.css +72 -60
  139. package/dist/components/nav/nav.d.ts +15 -8
  140. package/dist/components/nav/nav.js +105 -52
  141. package/dist/components/nav/nav.module.js +14 -14
  142. package/dist/components/number-field/number-field.d.ts +7 -1
  143. package/dist/components/number-field/number-field.js +98 -82
  144. package/dist/components/number-field/number-input.d.ts +53 -4
  145. package/dist/components/number-field/number-input.js +68 -21
  146. package/dist/components/number-field/tsf-number-field.d.ts +1 -1
  147. package/dist/components/number-field/tsf-number-field.js +1 -1
  148. package/dist/components/otp-field/otp-input.d.ts +25 -0
  149. package/dist/components/otp-field/otp-input.js +26 -1
  150. package/dist/components/pagination/pagination.d.ts +82 -23
  151. package/dist/components/pagination/pagination.js +656 -229
  152. package/dist/components/password-field/password-field.d.ts +7 -1
  153. package/dist/components/password-field/password-field.js +117 -126
  154. package/dist/components/password-field/password-strength.js +1 -1
  155. package/dist/components/password-field/tsf-password-field.d.ts +1 -1
  156. package/dist/components/password-field/tsf-password-field.js +1 -1
  157. package/dist/components/photo-field/photo-field.d.ts +17 -3
  158. package/dist/components/photo-field/photo-field.js +168 -89
  159. package/dist/components/photo-field/photo-input-context.d.ts +25 -0
  160. package/dist/components/photo-field/photo-input-context.js +14 -0
  161. package/dist/components/photo-field/photo-input.d.ts +58 -23
  162. package/dist/components/photo-field/photo-input.js +459 -261
  163. package/dist/components/popover/popover.d.ts +55 -23
  164. package/dist/components/popover/popover.js +205 -61
  165. package/dist/components/radio-group-field/radio-group.js +1 -1
  166. package/dist/components/search-field/search-field.d.ts +7 -5
  167. package/dist/components/search-field/search-field.js +4 -6
  168. package/dist/components/search-field/tsf-search-field.d.ts +1 -1
  169. package/dist/components/search-field/tsf-search-field.js +1 -1
  170. package/dist/components/segmented-control-field/segmented-control.js +1 -1
  171. package/dist/components/select-field/select-field.d.ts +7 -1
  172. package/dist/components/select-field/select-field.js +151 -139
  173. package/dist/components/select-field/select.d.ts +28 -6
  174. package/dist/components/select-field/select.js +234 -149
  175. package/dist/components/skeleton/skeleton.js +1 -1
  176. package/dist/components/spinner/spinner.css +47 -1
  177. package/dist/components/spinner/spinner.js +28 -11
  178. package/dist/components/spinner/spinner.module.js +18 -3
  179. package/dist/components/stale/stale.d.ts +17 -21
  180. package/dist/components/stale/stale.js +307 -129
  181. package/dist/components/status-message/status-message.css +22 -21
  182. package/dist/components/status-message/status-message.d.ts +10 -5
  183. package/dist/components/status-message/status-message.js +20 -24
  184. package/dist/components/status-message/status-message.module.js +6 -6
  185. package/dist/components/status-message/status-preset.d.ts +4 -5
  186. package/dist/components/status-message/status-preset.js +3 -3
  187. package/dist/components/switch-field/switch.js +1 -1
  188. package/dist/components/tabs/tabs.d.ts +51 -28
  189. package/dist/components/tabs/tabs.js +219 -144
  190. package/dist/components/tag/tag.css +23 -21
  191. package/dist/components/tag/tag.d.ts +17 -15
  192. package/dist/components/tag/tag.js +140 -65
  193. package/dist/components/tag/tag.module.js +3 -3
  194. package/dist/components/tag-group/tag-group.css +30 -27
  195. package/dist/components/tag-group/tag-group.d.ts +10 -4
  196. package/dist/components/tag-group/tag-group.js +47 -35
  197. package/dist/components/tag-group/tag-group.module.js +4 -4
  198. package/dist/components/text-field/text-field.d.ts +14 -3
  199. package/dist/components/text-field/text-field.js +154 -133
  200. package/dist/components/text-field/text-input.d.ts +89 -3
  201. package/dist/components/text-field/text-input.js +184 -70
  202. package/dist/components/textarea-field/textarea.js +1 -1
  203. package/dist/components/time-field/time-input.d.ts +6 -0
  204. package/dist/components/time-field/time-input.js +6 -0
  205. package/dist/components/time-zone-provider/time-zone-provider.js +1 -1
  206. package/dist/components/toast/index.js +2 -2
  207. package/dist/components/toast/toast-provider.css +38 -34
  208. package/dist/components/toast/toast-provider.d.ts +65 -3
  209. package/dist/components/toast/toast-provider.js +313 -148
  210. package/dist/components/toast/toast-provider.module.js +11 -17
  211. package/dist/components/toast/toast.d.ts +5 -1
  212. package/dist/components/toast/toast.js +2 -1
  213. package/dist/components/toggle-group-field/toggle-group.js +1 -1
  214. package/dist/components/tooltip/tooltip.d.ts +6 -6
  215. package/dist/components/tooltip/tooltip.js +7 -7
  216. package/dist/data-table/data-table-content.d.ts +18 -10
  217. package/dist/data-table/data-table-content.js +145 -290
  218. package/dist/data-table/data-table-context.d.ts +4 -2
  219. package/dist/data-table/data-table-context.js +1 -1
  220. package/dist/data-table/data-table-parts.d.ts +99 -0
  221. package/dist/data-table/data-table-parts.js +1182 -0
  222. package/dist/data-table/data-table-selection.d.ts +7 -3
  223. package/dist/data-table/data-table-selection.js +62 -37
  224. package/dist/data-table/data-table.css +100 -95
  225. package/dist/data-table/data-table.d.ts +49 -25
  226. package/dist/data-table/data-table.js +95 -83
  227. package/dist/data-table/data-table.module.js +34 -34
  228. package/dist/data-table/index.d.ts +2 -1
  229. package/dist/data-table/index.js +2 -1
  230. package/dist/data-view/use-data-view.d.ts +2 -2
  231. package/dist/data-view/use-data-view.js +2 -2
  232. package/dist/index.js +7 -8
  233. package/dist/lib/calendar/calendar-navigation.d.ts +9 -2
  234. package/dist/lib/calendar/calendar-navigation.js +72 -73
  235. package/dist/lib/calendar/calendar-year.d.ts +4 -3
  236. package/dist/lib/calendar/calendar-year.js +137 -156
  237. package/dist/lib/calendar/temporal.d.ts +18 -12
  238. package/dist/lib/calendar/temporal.js +191 -147
  239. package/dist/lib/table-storage.d.ts +2 -2
  240. package/dist/lib/table-storage.js +2 -2
  241. package/dist/lib/unsaved-changes/leave-guard.js +1 -1
  242. package/dist/terrazzo/index.d.ts +20 -3
  243. package/dist/terrazzo/index.js +110 -7
  244. package/dist/tokens.css +94 -71
  245. package/package.json +4 -3
  246. package/tokens/ref.tokens.json +0 -30
  247. package/tokens/sys.tokens.json +0 -7
  248. package/dist/assets/spinner.js +0 -28
  249. package/dist/components/checkbox-field/checkbox-glyph.d.ts +0 -12
  250. package/dist/components/checkbox-field/checkbox-glyph.js +0 -38
  251. package/dist/components/combobox-field/combobox-popup-body.d.ts +0 -34
  252. package/dist/components/combobox-field/combobox-popup-body.js +0 -142
  253. package/dist/components/conversation/conversation.context.js +0 -4
  254. package/dist/vendor/@material-design-icons/svg/outlined/add.js +0 -12
  255. package/dist/vendor/@material-design-icons/svg/outlined/arrow_downward.js +0 -12
  256. package/dist/vendor/@material-design-icons/svg/outlined/arrow_forward.js +0 -12
  257. package/dist/vendor/@material-design-icons/svg/outlined/arrow_upward.js +0 -12
  258. package/dist/vendor/@material-design-icons/svg/outlined/attach_file.js +0 -12
  259. package/dist/vendor/@material-design-icons/svg/outlined/block.js +0 -12
  260. package/dist/vendor/@material-design-icons/svg/outlined/calendar_today.js +0 -12
  261. package/dist/vendor/@material-design-icons/svg/outlined/check.js +0 -12
  262. package/dist/vendor/@material-design-icons/svg/outlined/check_circle.js +0 -12
  263. package/dist/vendor/@material-design-icons/svg/outlined/chevron_left.js +0 -12
  264. package/dist/vendor/@material-design-icons/svg/outlined/chevron_right.js +0 -12
  265. package/dist/vendor/@material-design-icons/svg/outlined/close.js +0 -12
  266. package/dist/vendor/@material-design-icons/svg/outlined/content_copy.js +0 -12
  267. package/dist/vendor/@material-design-icons/svg/outlined/date_range.js +0 -12
  268. package/dist/vendor/@material-design-icons/svg/outlined/description.js +0 -12
  269. package/dist/vendor/@material-design-icons/svg/outlined/download.js +0 -12
  270. package/dist/vendor/@material-design-icons/svg/outlined/error.js +0 -12
  271. package/dist/vendor/@material-design-icons/svg/outlined/error_outline.js +0 -12
  272. package/dist/vendor/@material-design-icons/svg/outlined/expand_less.js +0 -12
  273. package/dist/vendor/@material-design-icons/svg/outlined/expand_more.js +0 -12
  274. package/dist/vendor/@material-design-icons/svg/outlined/filter_alt.js +0 -12
  275. package/dist/vendor/@material-design-icons/svg/outlined/filter_alt_off.js +0 -12
  276. package/dist/vendor/@material-design-icons/svg/outlined/first_page.js +0 -12
  277. package/dist/vendor/@material-design-icons/svg/outlined/info.js +0 -12
  278. package/dist/vendor/@material-design-icons/svg/outlined/keyboard_arrow_down.js +0 -12
  279. package/dist/vendor/@material-design-icons/svg/outlined/last_page.js +0 -12
  280. package/dist/vendor/@material-design-icons/svg/outlined/mail.js +0 -12
  281. package/dist/vendor/@material-design-icons/svg/outlined/more_horiz.js +0 -12
  282. package/dist/vendor/@material-design-icons/svg/outlined/photo_camera.js +0 -12
  283. package/dist/vendor/@material-design-icons/svg/outlined/remove.js +0 -12
  284. package/dist/vendor/@material-design-icons/svg/outlined/restart_alt.js +0 -12
  285. package/dist/vendor/@material-design-icons/svg/outlined/restore.js +0 -12
  286. package/dist/vendor/@material-design-icons/svg/outlined/search.js +0 -12
  287. package/dist/vendor/@material-design-icons/svg/outlined/unfold_more.js +0 -12
  288. package/dist/vendor/@material-design-icons/svg/outlined/upload_file.js +0 -12
  289. package/dist/vendor/@material-design-icons/svg/outlined/visibility.js +0 -12
  290. package/dist/vendor/@material-design-icons/svg/outlined/visibility_off.js +0 -12
  291. package/dist/vendor/@material-design-icons/svg/outlined/warning_amber.js +0 -12
@@ -1,12 +1,12 @@
1
- import SvgPhotoCamera from "../../vendor/@material-design-icons/svg/outlined/photo_camera.js";
2
- import SvgClose from "../../vendor/@material-design-icons/svg/outlined/close.js";
3
1
  import { Button } from "../button/button.js";
4
2
  import { fieldStateAttributes } from "../field/field-state.js";
5
- import { Icon } from "../icon/icon.js";
3
+ import { PhotoInputContext, usePhotoInput } from "./photo-input-context.js";
6
4
  import photo_input_module_default from "./photo-input.module.js";
7
5
  import { c } from "react/compiler-runtime";
8
- import { useId, useRef, useState } from "react";
6
+ import { clsx } from "clsx";
9
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
+ import { useId, useRef, useState } from "react";
9
+ import { mergeProps } from "@base-ui/react/merge-props";
10
10
  // src/components/photo-field/photo-input.tsx
11
11
  var IMAGES = ["image/*"];
12
12
  /** Points an image at the file through an object URL, made once per file and revoked when the file changes or the image unmounts. */
@@ -25,29 +25,56 @@ var usePreviewSource = (file) => {
25
25
  } else t0 = $[1];
26
26
  return t0;
27
27
  };
28
- /**
29
- * The bare photo picker: a circle showing the photo, which is itself the
30
- * button that opens the file dialog and the target a file is dropped on. A
31
- * picked photo can be removed with the button on the rim, or with Delete on
32
- * the circle. Read-only, the circle stays focusable and opens nothing. It
33
- * carries no name of its own, so an enclosing field names it. For the
34
- * ordinary case, use `PhotoField`.
35
- *
36
- * @example
37
- * <PhotoInput
38
- * labelledBy={labelId}
39
- * value={file}
40
- * onValueChange={setFile}
41
- * defaultPreview={<Avatar name={user.name} />}
42
- * previewLabel="Preview"
43
- * photoSetLabel="Photo set"
44
- * noPhotoLabel="No photo"
45
- * removeLabel="Remove photo"
46
- * />
47
- */
48
- var PhotoInput = (t0) => {
49
- const $ = c(67);
50
- const { value, onValueChange, defaultPreview, hasStoredImage: t1, accept: t2, labelledBy, describedBy, name, readOnly: t3, invalid: t4, pending: t5, onBlur, previewLabel, photoSetLabel, noPhotoLabel, removeLabel } = t0;
28
+ /** The photo input's state and frame, which holds the hidden file input the well opens. */
29
+ var PhotoInputRoot = (t0) => {
30
+ const $ = c(49);
31
+ let children;
32
+ let className;
33
+ let describedBy;
34
+ let labelledBy;
35
+ let name;
36
+ let onBlur;
37
+ let onValueChange;
38
+ let props;
39
+ let t1;
40
+ let t2;
41
+ let t3;
42
+ let t4;
43
+ let t5;
44
+ let value;
45
+ if ($[0] !== t0) {
46
+ ({value, onValueChange, hasStoredImage: t1, accept: t2, labelledBy, describedBy, name, readOnly: t3, invalid: t4, pending: t5, onBlur, className, children, ...props} = t0);
47
+ $[0] = t0;
48
+ $[1] = children;
49
+ $[2] = className;
50
+ $[3] = describedBy;
51
+ $[4] = labelledBy;
52
+ $[5] = name;
53
+ $[6] = onBlur;
54
+ $[7] = onValueChange;
55
+ $[8] = props;
56
+ $[9] = t1;
57
+ $[10] = t2;
58
+ $[11] = t3;
59
+ $[12] = t4;
60
+ $[13] = t5;
61
+ $[14] = value;
62
+ } else {
63
+ children = $[1];
64
+ className = $[2];
65
+ describedBy = $[3];
66
+ labelledBy = $[4];
67
+ name = $[5];
68
+ onBlur = $[6];
69
+ onValueChange = $[7];
70
+ props = $[8];
71
+ t1 = $[9];
72
+ t2 = $[10];
73
+ t3 = $[11];
74
+ t4 = $[12];
75
+ t5 = $[13];
76
+ value = $[14];
77
+ }
51
78
  const hasStoredImage = t1 === void 0 ? false : t1;
52
79
  const accept = t2 === void 0 ? IMAGES : t2;
53
80
  const readOnly = t3 === void 0 ? false : t3;
@@ -56,270 +83,441 @@ var PhotoInput = (t0) => {
56
83
  const valueId = useId();
57
84
  const well = useRef(null);
58
85
  const picker = useRef(null);
59
- const [dragOver, setDragOver] = useState(false);
60
- const previewSource = usePreviewSource(value);
61
- const filled = value !== void 0 || hasStoredImage;
62
86
  let t6;
63
- if ($[0] !== defaultPreview || $[1] !== previewLabel || $[2] !== previewSource || $[3] !== value) {
64
- t6 = value === void 0 ? defaultPreview : /* @__PURE__ */ jsx("img", {
65
- ref: previewSource,
66
- alt: previewLabel
67
- });
68
- $[0] = defaultPreview;
69
- $[1] = previewLabel;
70
- $[2] = previewSource;
71
- $[3] = value;
72
- $[4] = t6;
73
- } else t6 = $[4];
87
+ if ($[15] !== onValueChange) {
88
+ t6 = async (file) => {
89
+ await onValueChange?.(file);
90
+ };
91
+ $[15] = onValueChange;
92
+ $[16] = t6;
93
+ } else t6 = $[16];
94
+ const pick = t6;
74
95
  let t7;
75
- if ($[5] !== t6) {
76
- t7 = /* @__PURE__ */ jsx("span", {
77
- className: photo_input_module_default.face,
78
- children: t6
79
- });
80
- $[5] = t6;
81
- $[6] = t7;
82
- } else t7 = $[6];
83
- const face = t7;
84
- let t8;
85
- if ($[7] !== describedBy || $[8] !== valueId) {
86
- t8 = [valueId, describedBy].filter(_temp);
87
- $[7] = describedBy;
88
- $[8] = valueId;
89
- $[9] = t8;
90
- } else t8 = $[9];
91
- const description = t8.join(" ");
92
- const t9 = filled ? photoSetLabel : noPhotoLabel;
93
- let t10;
94
- if ($[10] !== t9 || $[11] !== valueId) {
95
- t10 = /* @__PURE__ */ jsx("span", {
96
- id: valueId,
97
- className: photo_input_module_default.valueText,
98
- children: t9
99
- });
100
- $[10] = t9;
101
- $[11] = valueId;
102
- $[12] = t10;
103
- } else t10 = $[12];
104
- const valueText = t10;
105
- let t11;
106
- if ($[13] !== onValueChange) {
107
- t11 = async () => {
96
+ if ($[17] !== onValueChange) {
97
+ t7 = async () => {
108
98
  await onValueChange?.(void 0);
109
99
  well.current?.focus();
110
100
  };
111
- $[13] = onValueChange;
112
- $[14] = t11;
113
- } else t11 = $[14];
114
- const remove = t11;
115
- if (readOnly) {
116
- let t12;
117
- if ($[15] !== filled || $[16] !== pending) {
118
- t12 = fieldStateAttributes({
119
- readonly: true,
120
- filled,
121
- pending
122
- });
123
- $[15] = filled;
124
- $[16] = pending;
125
- $[17] = t12;
126
- } else t12 = $[17];
127
- let t13;
128
- if ($[18] !== description || $[19] !== face || $[20] !== labelledBy || $[21] !== onBlur || $[22] !== t12) {
129
- t13 = /* @__PURE__ */ jsx("span", {
130
- role: "img",
131
- tabIndex: 0,
132
- "aria-labelledby": labelledBy,
133
- "aria-describedby": description,
134
- className: photo_input_module_default.well,
135
- onBlur,
136
- ...t12,
137
- children: face
138
- });
139
- $[18] = description;
140
- $[19] = face;
141
- $[20] = labelledBy;
142
- $[21] = onBlur;
143
- $[22] = t12;
144
- $[23] = t13;
145
- } else t13 = $[23];
146
- let t14;
147
- if ($[24] !== t13 || $[25] !== valueText) {
148
- t14 = /* @__PURE__ */ jsxs("div", {
149
- className: photo_input_module_default.photoInput,
150
- children: [t13, valueText]
151
- });
152
- $[24] = t13;
153
- $[25] = valueText;
154
- $[26] = t14;
155
- } else t14 = $[26];
156
- return t14;
157
- }
158
- const t12 = value === void 0 ? void 0 : "Delete";
101
+ $[17] = onValueChange;
102
+ $[18] = t7;
103
+ } else t7 = $[18];
104
+ const remove = t7;
105
+ const t8 = value !== void 0 || hasStoredImage;
106
+ let t9;
107
+ if ($[19] !== describedBy || $[20] !== valueId) {
108
+ t9 = [valueId, describedBy].filter(_temp);
109
+ $[19] = describedBy;
110
+ $[20] = valueId;
111
+ $[21] = t9;
112
+ } else t9 = $[21];
113
+ const t10 = t9.join(" ");
114
+ let t11;
115
+ if ($[22] !== invalid || $[23] !== labelledBy || $[24] !== onBlur || $[25] !== pending || $[26] !== pick || $[27] !== readOnly || $[28] !== remove || $[29] !== t10 || $[30] !== t8 || $[31] !== value || $[32] !== valueId) {
116
+ t11 = {
117
+ value,
118
+ filled: t8,
119
+ readOnly,
120
+ invalid,
121
+ pending,
122
+ labelledBy,
123
+ describedBy: t10,
124
+ valueId,
125
+ well,
126
+ picker,
127
+ pick,
128
+ remove,
129
+ onBlur
130
+ };
131
+ $[22] = invalid;
132
+ $[23] = labelledBy;
133
+ $[24] = onBlur;
134
+ $[25] = pending;
135
+ $[26] = pick;
136
+ $[27] = readOnly;
137
+ $[28] = remove;
138
+ $[29] = t10;
139
+ $[30] = t8;
140
+ $[31] = value;
141
+ $[32] = valueId;
142
+ $[33] = t11;
143
+ } else t11 = $[33];
144
+ let t12;
145
+ if ($[34] !== className) {
146
+ t12 = clsx(photo_input_module_default.photoInput, className);
147
+ $[34] = className;
148
+ $[35] = t12;
149
+ } else t12 = $[35];
159
150
  let t13;
160
- if ($[27] === Symbol.for("react.memo_cache_sentinel")) {
161
- t13 = () => picker.current?.click();
162
- $[27] = t13;
163
- } else t13 = $[27];
151
+ if ($[36] !== accept || $[37] !== name || $[38] !== pick || $[39] !== readOnly) {
152
+ t13 = readOnly ? null : /* @__PURE__ */ jsx("input", {
153
+ ref: picker,
154
+ type: "file",
155
+ name,
156
+ accept: accept.join(","),
157
+ tabIndex: -1,
158
+ "aria-hidden": "true",
159
+ className: photo_input_module_default.picker,
160
+ onChange: async (event) => {
161
+ const file_0 = event.target.files?.[0];
162
+ event.target.value = "";
163
+ if (file_0 !== void 0) await pick(file_0);
164
+ }
165
+ });
166
+ $[36] = accept;
167
+ $[37] = name;
168
+ $[38] = pick;
169
+ $[39] = readOnly;
170
+ $[40] = t13;
171
+ } else t13 = $[40];
164
172
  let t14;
165
- if ($[28] !== remove || $[29] !== value) {
166
- t14 = (event) => {
173
+ if ($[41] !== children || $[42] !== props || $[43] !== t12 || $[44] !== t13) {
174
+ t14 = /* @__PURE__ */ jsxs("div", {
175
+ className: t12,
176
+ ...props,
177
+ children: [children, t13]
178
+ });
179
+ $[41] = children;
180
+ $[42] = props;
181
+ $[43] = t12;
182
+ $[44] = t13;
183
+ $[45] = t14;
184
+ } else t14 = $[45];
185
+ let t15;
186
+ if ($[46] !== t11 || $[47] !== t14) {
187
+ t15 = /* @__PURE__ */ jsx(PhotoInputContext, {
188
+ value: t11,
189
+ children: t14
190
+ });
191
+ $[46] = t11;
192
+ $[47] = t14;
193
+ $[48] = t15;
194
+ } else t15 = $[48];
195
+ return t15;
196
+ };
197
+ /**
198
+ * The circle that shows the photo. It is the button that opens the file dialog
199
+ * and the target a file is dropped on, and Delete removes a picked photo.
200
+ * Read-only, it is a focusable image that opens nothing.
201
+ */
202
+ var PhotoInputWell = (t0) => {
203
+ const $ = c(13);
204
+ const { className, ...props } = t0;
205
+ const { value, filled, readOnly, invalid, pending, labelledBy, describedBy, well, picker, pick, remove, onBlur } = usePhotoInput();
206
+ const [dragOver, setDragOver] = useState(false);
207
+ if (readOnly) return /* @__PURE__ */ jsx("span", { ...mergeProps({
208
+ role: "img",
209
+ tabIndex: 0,
210
+ "aria-labelledby": labelledBy,
211
+ "aria-describedby": describedBy,
212
+ className: clsx(photo_input_module_default.well, className),
213
+ onBlur,
214
+ ...fieldStateAttributes({
215
+ readonly: true,
216
+ filled,
217
+ pending
218
+ })
219
+ }, props) });
220
+ const t1 = "button";
221
+ let t2;
222
+ if ($[0] !== picker) {
223
+ t2 = () => picker.current?.click();
224
+ $[0] = picker;
225
+ $[1] = t2;
226
+ } else t2 = $[1];
227
+ let t3;
228
+ if ($[2] !== remove || $[3] !== value) {
229
+ t3 = (event) => {
167
230
  if (event.key === "Delete" && value !== void 0) {
168
231
  event.preventDefault();
169
232
  remove();
170
233
  }
171
234
  };
172
- $[28] = remove;
173
- $[29] = value;
174
- $[30] = t14;
175
- } else t14 = $[30];
176
- let t15;
177
- let t16;
178
- if ($[31] === Symbol.for("react.memo_cache_sentinel")) {
179
- t15 = (event_0) => {
235
+ $[2] = remove;
236
+ $[3] = value;
237
+ $[4] = t3;
238
+ } else t3 = $[4];
239
+ let t4;
240
+ let t5;
241
+ if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
242
+ t4 = (event_0) => {
180
243
  event_0.preventDefault();
181
244
  setDragOver(true);
182
245
  };
183
- t16 = () => setDragOver(false);
184
- $[31] = t15;
185
- $[32] = t16;
246
+ t5 = () => setDragOver(false);
247
+ $[5] = t4;
248
+ $[6] = t5;
186
249
  } else {
187
- t15 = $[31];
188
- t16 = $[32];
250
+ t4 = $[5];
251
+ t5 = $[6];
189
252
  }
190
- let t17;
191
- if ($[33] !== onValueChange) {
192
- t17 = (event_1) => {
253
+ let t6;
254
+ if ($[7] !== pick) {
255
+ t6 = (event_1) => {
193
256
  event_1.preventDefault();
194
257
  setDragOver(false);
195
258
  const file = event_1.dataTransfer.files[0];
196
- if (file !== void 0) onValueChange?.(file);
259
+ if (file !== void 0) pick(file);
197
260
  };
198
- $[33] = onValueChange;
199
- $[34] = t17;
200
- } else t17 = $[34];
201
- const t18 = dragOver || void 0;
202
- const t19 = invalid ? "invalid" : void 0;
203
- let t20;
204
- if ($[35] !== filled || $[36] !== pending || $[37] !== t19) {
205
- t20 = fieldStateAttributes({
206
- validity: t19,
261
+ $[7] = pick;
262
+ $[8] = t6;
263
+ } else t6 = $[8];
264
+ const t7 = mergeProps({
265
+ "aria-labelledby": labelledBy,
266
+ "aria-describedby": describedBy,
267
+ "aria-keyshortcuts": value === void 0 ? void 0 : "Delete",
268
+ className: clsx(photo_input_module_default.well, className),
269
+ onClick: t2,
270
+ onBlur,
271
+ onKeyDown: t3,
272
+ onDragOver: t4,
273
+ onDragLeave: t5,
274
+ onDrop: t6,
275
+ ...fieldStateAttributes({
276
+ validity: invalid ? "invalid" : void 0,
207
277
  filled,
208
278
  pending
279
+ })
280
+ }, props);
281
+ const t8 = dragOver || void 0;
282
+ let t9;
283
+ if ($[9] !== t7 || $[10] !== t8 || $[11] !== well) {
284
+ t9 = /* @__PURE__ */ jsx("button", {
285
+ ref: well,
286
+ type: t1,
287
+ ...t7,
288
+ "data-dragover": t8
209
289
  });
210
- $[35] = filled;
211
- $[36] = pending;
212
- $[37] = t19;
213
- $[38] = t20;
214
- } else t20 = $[38];
215
- let t21;
216
- if ($[39] === Symbol.for("react.memo_cache_sentinel")) {
217
- t21 = /* @__PURE__ */ jsx("span", {
218
- className: photo_input_module_default.badge,
219
- "aria-hidden": "true",
220
- children: /* @__PURE__ */ jsx(Icon, {
221
- svg: SvgPhotoCamera,
222
- label: ""
223
- })
290
+ $[9] = t7;
291
+ $[10] = t8;
292
+ $[11] = well;
293
+ $[12] = t9;
294
+ } else t9 = $[12];
295
+ return t9;
296
+ };
297
+ /** The picture inside the well: the picked photo, else its children, such as a placeholder or the stored photo. */
298
+ var PhotoInputFace = (t0) => {
299
+ const $ = c(16);
300
+ let children;
301
+ let className;
302
+ let previewLabel;
303
+ let props;
304
+ if ($[0] !== t0) {
305
+ ({previewLabel, className, children, ...props} = t0);
306
+ $[0] = t0;
307
+ $[1] = children;
308
+ $[2] = className;
309
+ $[3] = previewLabel;
310
+ $[4] = props;
311
+ } else {
312
+ children = $[1];
313
+ className = $[2];
314
+ previewLabel = $[3];
315
+ props = $[4];
316
+ }
317
+ const { value } = usePhotoInput();
318
+ const previewSource = usePreviewSource(value);
319
+ let t1;
320
+ if ($[5] !== className) {
321
+ t1 = clsx(photo_input_module_default.face, className);
322
+ $[5] = className;
323
+ $[6] = t1;
324
+ } else t1 = $[6];
325
+ let t2;
326
+ if ($[7] !== children || $[8] !== previewLabel || $[9] !== previewSource || $[10] !== value) {
327
+ t2 = value === void 0 ? children : /* @__PURE__ */ jsx("img", {
328
+ ref: previewSource,
329
+ alt: previewLabel
224
330
  });
225
- $[39] = t21;
226
- } else t21 = $[39];
227
- let t22;
228
- if ($[40] !== description || $[41] !== face || $[42] !== labelledBy || $[43] !== onBlur || $[44] !== t12 || $[45] !== t14 || $[46] !== t17 || $[47] !== t18 || $[48] !== t20) {
229
- t22 = /* @__PURE__ */ jsxs("button", {
230
- ref: well,
231
- type: "button",
232
- "aria-labelledby": labelledBy,
233
- "aria-describedby": description,
234
- "aria-keyshortcuts": t12,
235
- className: photo_input_module_default.well,
236
- onClick: t13,
237
- onBlur,
238
- onKeyDown: t14,
239
- onDragOver: t15,
240
- onDragLeave: t16,
241
- onDrop: t17,
242
- "data-dragover": t18,
243
- ...t20,
244
- children: [face, t21]
331
+ $[7] = children;
332
+ $[8] = previewLabel;
333
+ $[9] = previewSource;
334
+ $[10] = value;
335
+ $[11] = t2;
336
+ } else t2 = $[11];
337
+ let t3;
338
+ if ($[12] !== props || $[13] !== t1 || $[14] !== t2) {
339
+ t3 = /* @__PURE__ */ jsx("span", {
340
+ className: t1,
341
+ ...props,
342
+ children: t2
245
343
  });
246
- $[40] = description;
247
- $[41] = face;
248
- $[42] = labelledBy;
249
- $[43] = onBlur;
250
- $[44] = t12;
251
- $[45] = t14;
252
- $[46] = t17;
253
- $[47] = t18;
254
- $[48] = t20;
255
- $[49] = t22;
256
- } else t22 = $[49];
257
- let t23;
258
- if ($[50] !== remove || $[51] !== removeLabel || $[52] !== value) {
259
- t23 = value !== void 0 && /* @__PURE__ */ jsx(Button, {
260
- iconOnly: true,
261
- icon: SvgClose,
262
- label: removeLabel,
263
- variant: "secondary",
264
- className: photo_input_module_default.remove,
265
- onClick: () => void remove()
344
+ $[12] = props;
345
+ $[13] = t1;
346
+ $[14] = t2;
347
+ $[15] = t3;
348
+ } else t3 = $[15];
349
+ return t3;
350
+ };
351
+ /** The badge on the well's rim. Its children are the icon, such as a camera; without them, or read-only, it renders nothing. */
352
+ var PhotoInputBadge = (t0) => {
353
+ const $ = c(10);
354
+ let children;
355
+ let className;
356
+ let props;
357
+ if ($[0] !== t0) {
358
+ ({className, children, ...props} = t0);
359
+ $[0] = t0;
360
+ $[1] = children;
361
+ $[2] = className;
362
+ $[3] = props;
363
+ } else {
364
+ children = $[1];
365
+ className = $[2];
366
+ props = $[3];
367
+ }
368
+ const { readOnly } = usePhotoInput();
369
+ if (readOnly || children === void 0 || children === null || children === false) return null;
370
+ let t1;
371
+ if ($[4] !== className) {
372
+ t1 = clsx(photo_input_module_default.badge, className);
373
+ $[4] = className;
374
+ $[5] = t1;
375
+ } else t1 = $[5];
376
+ let t2;
377
+ if ($[6] !== children || $[7] !== props || $[8] !== t1) {
378
+ t2 = /* @__PURE__ */ jsx("span", {
379
+ className: t1,
380
+ "aria-hidden": "true",
381
+ ...props,
382
+ children
266
383
  });
267
- $[50] = remove;
268
- $[51] = removeLabel;
269
- $[52] = value;
270
- $[53] = t23;
271
- } else t23 = $[53];
272
- let t24;
273
- if ($[54] !== accept) {
274
- t24 = accept.join(",");
275
- $[54] = accept;
276
- $[55] = t24;
277
- } else t24 = $[55];
278
- let t25;
279
- if ($[56] !== onValueChange) {
280
- t25 = async (event_2) => {
281
- const file_0 = event_2.target.files?.[0];
282
- event_2.target.value = "";
283
- if (file_0 !== void 0) await onValueChange?.(file_0);
384
+ $[6] = children;
385
+ $[7] = props;
386
+ $[8] = t1;
387
+ $[9] = t2;
388
+ } else t2 = $[9];
389
+ return t2;
390
+ };
391
+ /** The icon-only button on the rim that removes a picked photo. It renders only while one is picked. */
392
+ var PhotoInputRemove = (t0) => {
393
+ const $ = c(17);
394
+ let className;
395
+ let icon;
396
+ let label;
397
+ let onClick;
398
+ let props;
399
+ if ($[0] !== t0) {
400
+ ({label, icon, className, onClick, ...props} = t0);
401
+ $[0] = t0;
402
+ $[1] = className;
403
+ $[2] = icon;
404
+ $[3] = label;
405
+ $[4] = onClick;
406
+ $[5] = props;
407
+ } else {
408
+ className = $[1];
409
+ icon = $[2];
410
+ label = $[3];
411
+ onClick = $[4];
412
+ props = $[5];
413
+ }
414
+ const { value, readOnly, remove } = usePhotoInput();
415
+ if (readOnly || value === void 0) return null;
416
+ let t1;
417
+ if ($[6] !== className) {
418
+ t1 = clsx(photo_input_module_default.remove, className);
419
+ $[6] = className;
420
+ $[7] = t1;
421
+ } else t1 = $[7];
422
+ let t2;
423
+ if ($[8] !== onClick || $[9] !== remove) {
424
+ t2 = (event) => {
425
+ onClick?.(event);
426
+ remove();
284
427
  };
285
- $[56] = onValueChange;
286
- $[57] = t25;
287
- } else t25 = $[57];
288
- let t26;
289
- if ($[58] !== name || $[59] !== t24 || $[60] !== t25) {
290
- t26 = /* @__PURE__ */ jsx("input", {
291
- ref: picker,
292
- type: "file",
293
- name,
294
- accept: t24,
295
- tabIndex: -1,
296
- "aria-hidden": "true",
297
- className: photo_input_module_default.picker,
298
- onChange: t25
428
+ $[8] = onClick;
429
+ $[9] = remove;
430
+ $[10] = t2;
431
+ } else t2 = $[10];
432
+ let t3;
433
+ if ($[11] !== icon || $[12] !== label || $[13] !== props || $[14] !== t1 || $[15] !== t2) {
434
+ t3 = /* @__PURE__ */ jsx(Button, {
435
+ iconOnly: true,
436
+ icon,
437
+ label,
438
+ variant: "secondary",
439
+ className: t1,
440
+ onClick: t2,
441
+ ...props
299
442
  });
300
- $[58] = name;
301
- $[59] = t24;
302
- $[60] = t25;
303
- $[61] = t26;
304
- } else t26 = $[61];
305
- let t27;
306
- if ($[62] !== t22 || $[63] !== t23 || $[64] !== t26 || $[65] !== valueText) {
307
- t27 = /* @__PURE__ */ jsxs("div", {
308
- className: photo_input_module_default.photoInput,
309
- children: [
310
- t22,
311
- t23,
312
- t26,
313
- valueText
314
- ]
443
+ $[11] = icon;
444
+ $[12] = label;
445
+ $[13] = props;
446
+ $[14] = t1;
447
+ $[15] = t2;
448
+ $[16] = t3;
449
+ } else t3 = $[16];
450
+ return t3;
451
+ };
452
+ /** The hidden text that describes the well, saying whether a photo is set. */
453
+ var PhotoInputValueText = (t0) => {
454
+ const $ = c(12);
455
+ let className;
456
+ let noPhotoLabel;
457
+ let photoSetLabel;
458
+ let props;
459
+ if ($[0] !== t0) {
460
+ ({photoSetLabel, noPhotoLabel, className, ...props} = t0);
461
+ $[0] = t0;
462
+ $[1] = className;
463
+ $[2] = noPhotoLabel;
464
+ $[3] = photoSetLabel;
465
+ $[4] = props;
466
+ } else {
467
+ className = $[1];
468
+ noPhotoLabel = $[2];
469
+ photoSetLabel = $[3];
470
+ props = $[4];
471
+ }
472
+ const { filled, valueId } = usePhotoInput();
473
+ let t1;
474
+ if ($[5] !== className) {
475
+ t1 = clsx(photo_input_module_default.valueText, className);
476
+ $[5] = className;
477
+ $[6] = t1;
478
+ } else t1 = $[6];
479
+ const t2 = filled ? photoSetLabel : noPhotoLabel;
480
+ let t3;
481
+ if ($[7] !== props || $[8] !== t1 || $[9] !== t2 || $[10] !== valueId) {
482
+ t3 = /* @__PURE__ */ jsx("span", {
483
+ id: valueId,
484
+ className: t1,
485
+ ...props,
486
+ children: t2
315
487
  });
316
- $[62] = t22;
317
- $[63] = t23;
318
- $[64] = t26;
319
- $[65] = valueText;
320
- $[66] = t27;
321
- } else t27 = $[66];
322
- return t27;
488
+ $[7] = props;
489
+ $[8] = t1;
490
+ $[9] = t2;
491
+ $[10] = valueId;
492
+ $[11] = t3;
493
+ } else t3 = $[11];
494
+ return t3;
495
+ };
496
+ /**
497
+ * The parts of a photo picker: a circle showing the photo, which is itself the
498
+ * button that opens the file dialog and the target a file is dropped on, with
499
+ * a remove button on its rim. It carries no name of its own, so an enclosing
500
+ * field names it. For the ordinary case, use `PhotoField`.
501
+ *
502
+ * @example
503
+ * <PhotoInput.Root labelledBy={labelId} value={file} onValueChange={setFile}>
504
+ * <PhotoInput.Well>
505
+ * <PhotoInput.Face previewLabel="Preview">
506
+ * <Avatar name={user.name} />
507
+ * </PhotoInput.Face>
508
+ * <PhotoInput.Badge><PhotoCameraIcon /></PhotoInput.Badge>
509
+ * </PhotoInput.Well>
510
+ * <PhotoInput.Remove label="Remove photo" icon={<CloseIcon />} />
511
+ * <PhotoInput.ValueText photoSetLabel="Photo set" noPhotoLabel="No photo" />
512
+ * </PhotoInput.Root>
513
+ */
514
+ var PhotoInput = {
515
+ Root: PhotoInputRoot,
516
+ Well: PhotoInputWell,
517
+ Face: PhotoInputFace,
518
+ Badge: PhotoInputBadge,
519
+ Remove: PhotoInputRemove,
520
+ ValueText: PhotoInputValueText
323
521
  };
324
522
  function _temp(id) {
325
523
  return id !== void 0;