@igne-agency/react-web-ui 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/dist/components/accordion/accordion.css +21 -21
  2. package/dist/components/accordion/accordion.d.ts +17 -4
  3. package/dist/components/accordion/accordion.js +83 -36
  4. package/dist/components/accordion/accordion.module.js +6 -6
  5. package/dist/components/attachment-tile/attachment-preview.d.ts +56 -13
  6. package/dist/components/attachment-tile/attachment-preview.js +388 -119
  7. package/dist/components/attachment-tile/attachment-tile.css +31 -25
  8. package/dist/components/attachment-tile/attachment-tile.d.ts +32 -10
  9. package/dist/components/attachment-tile/attachment-tile.js +160 -43
  10. package/dist/components/attachment-tile/attachment-tile.module.js +8 -8
  11. package/dist/components/attachment-tile/index.d.ts +1 -1
  12. package/dist/components/avatar/avatar.css +9 -9
  13. package/dist/components/avatar/avatar.d.ts +50 -5
  14. package/dist/components/avatar/avatar.js +178 -64
  15. package/dist/components/avatar/avatar.module.js +3 -3
  16. package/dist/components/avatar-group/avatar-group-context.d.ts +2 -4
  17. package/dist/components/avatar-group/avatar-group-context.js +2 -2
  18. package/dist/components/avatar-group/avatar-group.css +26 -20
  19. package/dist/components/avatar-group/avatar-group.d.ts +85 -27
  20. package/dist/components/avatar-group/avatar-group.js +400 -246
  21. package/dist/components/avatar-group/avatar-group.module.js +8 -8
  22. package/dist/components/breadcrumbs/breadcrumbs.css +12 -12
  23. package/dist/components/breadcrumbs/breadcrumbs.d.ts +69 -23
  24. package/dist/components/breadcrumbs/breadcrumbs.js +299 -248
  25. package/dist/components/breadcrumbs/breadcrumbs.module.js +8 -8
  26. package/dist/components/button/button.css +29 -31
  27. package/dist/components/button/button.d.ts +20 -16
  28. package/dist/components/button/button.js +140 -145
  29. package/dist/components/button/button.module.js +1 -1
  30. package/dist/components/button/index.js +1 -1
  31. package/dist/components/checkbox-field/checkbox-field.js +63 -49
  32. package/dist/components/checkbox-field/checkbox.css +105 -56
  33. package/dist/components/checkbox-field/checkbox.d.ts +3 -2
  34. package/dist/components/checkbox-field/checkbox.js +12 -9
  35. package/dist/components/checkbox-field/checkbox.module.js +4 -4
  36. package/dist/components/checkbox-group-field/checkbox-group-field.js +78 -72
  37. package/dist/components/checkbox-group-field/checkbox-group.css +14 -10
  38. package/dist/components/checkbox-group-field/checkbox-group.d.ts +2 -2
  39. package/dist/components/checkbox-group-field/checkbox-group.js +2 -2
  40. package/dist/components/checkbox-group-field/checkbox-group.module.js +2 -2
  41. package/dist/components/collapsible/collapsible.css +20 -20
  42. package/dist/components/collapsible/collapsible.d.ts +17 -4
  43. package/dist/components/collapsible/collapsible.js +83 -36
  44. package/dist/components/collapsible/collapsible.module.js +5 -5
  45. package/dist/components/combobox-field/combobox-field.js +206 -158
  46. package/dist/components/combobox-field/combobox.css +492 -277
  47. package/dist/components/combobox-field/combobox.d.ts +148 -39
  48. package/dist/components/combobox-field/combobox.js +506 -206
  49. package/dist/components/combobox-field/combobox.module.js +21 -21
  50. package/dist/components/combobox-field/value-state-view.css +5 -5
  51. package/dist/components/combobox-field/value-state-view.module.js +4 -4
  52. package/dist/components/composer/composer-attachments.d.ts +30 -11
  53. package/dist/components/composer/composer-attachments.js +45 -40
  54. package/dist/components/composer/composer-editor.css +40 -35
  55. package/dist/components/composer/composer-editor.d.ts +14 -4
  56. package/dist/components/composer/composer-editor.js +134 -44
  57. package/dist/components/composer/composer-editor.module.js +5 -5
  58. package/dist/components/composer/composer.css +22 -22
  59. package/dist/components/composer/composer.d.ts +13 -2
  60. package/dist/components/composer/composer.js +78 -63
  61. package/dist/components/composer/composer.module.js +5 -5
  62. package/dist/components/composer/index.d.ts +2 -2
  63. package/dist/components/composer/mention-text.css +5 -5
  64. package/dist/components/composer/mention-text.module.js +1 -1
  65. package/dist/components/confirm-dialog/confirm-dialog.css +29 -29
  66. package/dist/components/confirm-dialog/confirm-dialog.d.ts +57 -3
  67. package/dist/components/confirm-dialog/confirm-dialog.js +266 -108
  68. package/dist/components/confirm-dialog/confirm-dialog.module.js +5 -5
  69. package/dist/components/conversation/conversation.css +52 -52
  70. package/dist/components/conversation/conversation.d.ts +43 -18
  71. package/dist/components/conversation/conversation.js +120 -78
  72. package/dist/components/conversation/conversation.module.js +15 -15
  73. package/dist/components/date-field/date-field.d.ts +1 -1
  74. package/dist/components/date-field/date-field.js +202 -100
  75. package/dist/components/date-field/date-input.d.ts +73 -37
  76. package/dist/components/date-field/date-input.js +72 -45
  77. package/dist/components/date-field/index.d.ts +1 -1
  78. package/dist/components/date-range-field/date-range-field.d.ts +1 -1
  79. package/dist/components/date-range-field/date-range-field.js +219 -107
  80. package/dist/components/date-range-field/date-range-input.d.ts +84 -40
  81. package/dist/components/date-range-field/date-range-input.js +83 -48
  82. package/dist/components/dialog/dialog.css +32 -32
  83. package/dist/components/dialog/dialog.d.ts +8 -7
  84. package/dist/components/dialog/dialog.js +8 -26
  85. package/dist/components/dialog/dialog.module.js +6 -6
  86. package/dist/components/divider/divider.css +6 -6
  87. package/dist/components/divider/divider.d.ts +36 -2
  88. package/dist/components/divider/divider.js +195 -29
  89. package/dist/components/divider/divider.module.js +3 -3
  90. package/dist/components/drawer/drawer.css +55 -56
  91. package/dist/components/drawer/drawer.d.ts +8 -7
  92. package/dist/components/drawer/drawer.js +8 -26
  93. package/dist/components/drawer/drawer.module.js +6 -6
  94. package/dist/components/field/field.css +34 -24
  95. package/dist/components/field/field.d.ts +60 -37
  96. package/dist/components/field/field.js +242 -157
  97. package/dist/components/field/field.module.js +12 -10
  98. package/dist/components/field/input-parts.d.ts +11 -13
  99. package/dist/components/field/input-parts.js +23 -42
  100. package/dist/components/field-placeholder/field-placeholder.css +6 -6
  101. package/dist/components/field-placeholder/field-placeholder.module.js +4 -4
  102. package/dist/components/fieldset/field-group.d.ts +1 -1
  103. package/dist/components/fieldset/field-group.js +48 -42
  104. package/dist/components/fieldset/fieldset-root.d.ts +1 -1
  105. package/dist/components/fieldset/fieldset-root.js +19 -17
  106. package/dist/components/fieldset/fieldset.d.ts +2 -2
  107. package/dist/components/fieldset/fieldset.js +2 -2
  108. package/dist/components/file-field/file-field.css +126 -60
  109. package/dist/components/file-field/file-field.js +201 -109
  110. package/dist/components/file-field/file-field.module.js +4 -4
  111. package/dist/components/file-field/file-input.d.ts +66 -40
  112. package/dist/components/file-field/file-input.js +188 -132
  113. package/dist/components/filter-bar/filter-bar.css +8 -8
  114. package/dist/components/filter-bar/filter-bar.d.ts +12 -3
  115. package/dist/components/filter-bar/filter-bar.js +23 -25
  116. package/dist/components/filter-bar/filter-bar.module.js +5 -5
  117. package/dist/components/form/form.d.ts +19 -7
  118. package/dist/components/form/form.js +80 -29
  119. package/dist/components/icon/icon.css +2 -2
  120. package/dist/components/icon/icon.module.js +1 -1
  121. package/dist/components/link/link.css +6 -5
  122. package/dist/components/link/link.module.js +1 -1
  123. package/dist/components/menu/menu.css +52 -47
  124. package/dist/components/menu/menu.d.ts +32 -25
  125. package/dist/components/menu/menu.js +75 -124
  126. package/dist/components/menu/menu.module.js +8 -8
  127. package/dist/components/nav/nav-context.d.ts +1 -1
  128. package/dist/components/nav/nav-item-view.d.ts +10 -13
  129. package/dist/components/nav/nav-item-view.js +42 -54
  130. package/dist/components/nav/nav.css +150 -119
  131. package/dist/components/nav/nav.d.ts +61 -17
  132. package/dist/components/nav/nav.js +271 -176
  133. package/dist/components/nav/nav.module.js +17 -15
  134. package/dist/components/number-field/number-field.css +153 -64
  135. package/dist/components/number-field/number-field.d.ts +2 -2
  136. package/dist/components/number-field/number-field.js +112 -91
  137. package/dist/components/number-field/number-field.module.js +6 -6
  138. package/dist/components/number-field/number-input.d.ts +43 -23
  139. package/dist/components/number-field/number-input.js +179 -125
  140. package/dist/components/otp-field/otp-field.css +153 -60
  141. package/dist/components/otp-field/otp-field.d.ts +2 -2
  142. package/dist/components/otp-field/otp-field.js +62 -46
  143. package/dist/components/otp-field/otp-field.module.js +4 -4
  144. package/dist/components/otp-field/otp-input.d.ts +8 -6
  145. package/dist/components/otp-field/otp-input.js +92 -92
  146. package/dist/components/pagination/pagination.d.ts +46 -15
  147. package/dist/components/pagination/pagination.js +217 -224
  148. package/dist/components/password-field/password-field.css +23 -23
  149. package/dist/components/password-field/password-field.js +107 -85
  150. package/dist/components/password-field/password-field.module.js +8 -8
  151. package/dist/components/password-field/password-strength.d.ts +107 -3
  152. package/dist/components/password-field/password-strength.js +569 -92
  153. package/dist/components/photo-field/photo-field.js +137 -112
  154. package/dist/components/photo-field/photo-input.css +67 -44
  155. package/dist/components/photo-field/photo-input.d.ts +59 -15
  156. package/dist/components/photo-field/photo-input.js +173 -86
  157. package/dist/components/photo-field/photo-input.module.js +10 -8
  158. package/dist/components/popover/popover.css +41 -41
  159. package/dist/components/popover/popover.d.ts +66 -25
  160. package/dist/components/popover/popover.js +332 -217
  161. package/dist/components/popover/popover.module.js +15 -19
  162. package/dist/components/radio-group-field/radio-group-field.js +80 -71
  163. package/dist/components/radio-group-field/radio-group.css +112 -60
  164. package/dist/components/radio-group-field/radio-group.d.ts +19 -3
  165. package/dist/components/radio-group-field/radio-group.js +66 -23
  166. package/dist/components/radio-group-field/radio-group.module.js +4 -4
  167. package/dist/components/segmented-control-field/segmented-control-field.d.ts +1 -1
  168. package/dist/components/segmented-control-field/segmented-control-field.js +111 -96
  169. package/dist/components/segmented-control-field/segmented-control.css +132 -79
  170. package/dist/components/segmented-control-field/segmented-control.d.ts +39 -15
  171. package/dist/components/segmented-control-field/segmented-control.js +124 -41
  172. package/dist/components/segmented-control-field/segmented-control.module.js +4 -4
  173. package/dist/components/select-field/select.css +214 -101
  174. package/dist/components/select-field/select.d.ts +43 -11
  175. package/dist/components/select-field/select.js +194 -109
  176. package/dist/components/select-field/select.module.js +14 -14
  177. package/dist/components/skeleton/skeleton.css +4 -4
  178. package/dist/components/skeleton/skeleton.module.js +3 -3
  179. package/dist/components/stale/stale.css +15 -15
  180. package/dist/components/stale/stale.d.ts +27 -3
  181. package/dist/components/stale/stale.js +147 -66
  182. package/dist/components/stale/stale.module.js +6 -6
  183. package/dist/components/status-message/status-message.css +22 -22
  184. package/dist/components/status-message/status-message.module.js +6 -6
  185. package/dist/components/switch-field/switch-field.js +77 -57
  186. package/dist/components/switch-field/switch.css +112 -63
  187. package/dist/components/switch-field/switch.d.ts +20 -3
  188. package/dist/components/switch-field/switch.js +70 -27
  189. package/dist/components/switch-field/switch.module.js +4 -4
  190. package/dist/components/tabs/tabs.css +32 -32
  191. package/dist/components/tabs/tabs.d.ts +21 -7
  192. package/dist/components/tabs/tabs.js +73 -14
  193. package/dist/components/tabs/tabs.module.js +7 -7
  194. package/dist/components/tag/tag.css +84 -84
  195. package/dist/components/tag/tag.module.js +3 -3
  196. package/dist/components/tag-group/tag-group.css +94 -94
  197. package/dist/components/tag-group/tag-group.module.js +4 -4
  198. package/dist/components/text-field/text-field.css +159 -82
  199. package/dist/components/text-field/text-field.d.ts +1 -1
  200. package/dist/components/text-field/text-field.js +139 -110
  201. package/dist/components/text-field/text-field.module.js +9 -9
  202. package/dist/components/text-field/text-input.d.ts +81 -45
  203. package/dist/components/text-field/text-input.js +366 -217
  204. package/dist/components/textarea-field/textarea-field.css +7 -2
  205. package/dist/components/textarea-field/textarea-field.js +72 -56
  206. package/dist/components/textarea-field/textarea-field.module.js +2 -2
  207. package/dist/components/time-field/time-field.js +153 -60
  208. package/dist/components/time-field/time-input.d.ts +21 -10
  209. package/dist/components/time-field/time-input.js +22 -11
  210. package/dist/components/toast/toast-provider.css +34 -31
  211. package/dist/components/toast/toast-provider.d.ts +63 -14
  212. package/dist/components/toast/toast-provider.js +174 -111
  213. package/dist/components/toast/toast-provider.module.js +7 -7
  214. package/dist/components/toggle-group-field/toggle-group-field.d.ts +1 -1
  215. package/dist/components/toggle-group-field/toggle-group-field.js +95 -89
  216. package/dist/components/toggle-group-field/toggle-group.css +117 -67
  217. package/dist/components/toggle-group-field/toggle-group.d.ts +2 -2
  218. package/dist/components/toggle-group-field/toggle-group.js +2 -2
  219. package/dist/components/toggle-group-field/toggle-group.module.js +2 -2
  220. package/dist/components/tooltip/tooltip.css +4 -4
  221. package/dist/components/tooltip/tooltip.module.js +1 -1
  222. package/dist/data-table/data-table-content.js +6 -5
  223. package/dist/data-table/data-table-parts.d.ts +41 -13
  224. package/dist/data-table/data-table-parts.js +213 -172
  225. package/dist/data-table/data-table-selection.d.ts +105 -3
  226. package/dist/data-table/data-table-selection.js +654 -145
  227. package/dist/data-table/data-table.css +125 -128
  228. package/dist/data-table/data-table.d.ts +21 -26
  229. package/dist/data-table/data-table.js +20 -23
  230. package/dist/data-table/data-table.module.js +32 -34
  231. package/dist/data-table/index.d.ts +2 -2
  232. package/dist/index.js +3 -3
  233. package/dist/lib/calendar/calendar-navigation.d.ts +39 -5
  234. package/dist/lib/calendar/calendar-navigation.js +185 -118
  235. package/dist/lib/calendar/calendar-parts.d.ts +143 -0
  236. package/dist/lib/calendar/calendar-parts.js +540 -0
  237. package/dist/lib/calendar/calendar-prefab.d.ts +52 -0
  238. package/dist/lib/calendar/calendar-prefab.js +311 -0
  239. package/dist/lib/calendar/calendar-year.d.ts +3 -1
  240. package/dist/lib/calendar/calendar-year.js +139 -131
  241. package/dist/lib/calendar/temporal.css +325 -232
  242. package/dist/lib/calendar/temporal.d.ts +67 -82
  243. package/dist/lib/calendar/temporal.js +258 -569
  244. package/dist/lib/calendar/temporal.module.js +38 -38
  245. package/dist/lib/forms/use-connected-field.d.ts +1 -1
  246. package/dist/lib/forms/use-connected-field.js +1 -1
  247. package/dist/lib/render-as.d.ts +13 -0
  248. package/dist/lib/render-as.js +46 -0
  249. package/dist/tokens.css +6 -3
  250. package/package.json +1 -1
  251. package/tokens/dark.tokens.json +6 -0
  252. package/tokens/sys.tokens.json +7 -0
  253. package/dist/components/button/close-button.d.ts +0 -16
  254. package/dist/components/button/close-button.js +0 -30
@@ -1,4 +1,4 @@
1
- import { Button } from "../button/button.js";
1
+ import { IconButton } from "../button/button.js";
2
2
  import { Menu } from "../menu/menu.js";
3
3
  import { Tooltip } from "../tooltip/tooltip.js";
4
4
  import breadcrumbs_module_default from "./breadcrumbs.module.js";
@@ -10,34 +10,41 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
10
  // src/components/breadcrumbs/breadcrumbs.tsx
11
11
  var isClipped = (element) => element.scrollWidth > element.clientWidth;
12
12
  /**
13
- * Shows the full text of a crumb as a tooltip, only while the crumb cuts it
14
- * short.
13
+ * Renders a crumb with its text, and shows the full text as a tooltip only
14
+ * while the crumb cuts it short.
15
+ *
16
+ * @example
17
+ * <Breadcrumbs.ClippedHint render={<Breadcrumbs.Page />}>Invoice 2041</Breadcrumbs.ClippedHint>
15
18
  */
16
19
  var ClippedHint = (t0) => {
17
- const $ = c(7);
18
- const { element, children } = t0;
20
+ const $ = c(8);
21
+ const { render, children } = t0;
19
22
  let t1;
20
- if ($[0] !== element) {
21
- t1 = /* @__PURE__ */ jsx(Tooltip.Trigger, { render: element });
22
- $[0] = element;
23
- $[1] = t1;
24
- } else t1 = $[1];
23
+ if ($[0] !== children || $[1] !== render) {
24
+ t1 = /* @__PURE__ */ jsx(Tooltip.Trigger, {
25
+ render,
26
+ children
27
+ });
28
+ $[0] = children;
29
+ $[1] = render;
30
+ $[2] = t1;
31
+ } else t1 = $[2];
25
32
  let t2;
26
- if ($[2] !== children) {
33
+ if ($[3] !== children) {
27
34
  t2 = /* @__PURE__ */ jsx(Tooltip.Portal, { children: /* @__PURE__ */ jsx(Tooltip.Positioner, { children: /* @__PURE__ */ jsx(Tooltip.Popup, { children }) }) });
28
- $[2] = children;
29
- $[3] = t2;
30
- } else t2 = $[3];
35
+ $[3] = children;
36
+ $[4] = t2;
37
+ } else t2 = $[4];
31
38
  let t3;
32
- if ($[4] !== t1 || $[5] !== t2) {
39
+ if ($[5] !== t1 || $[6] !== t2) {
33
40
  t3 = /* @__PURE__ */ jsxs(Tooltip.Root, {
34
41
  onOpenChange: _temp,
35
42
  children: [t1, t2]
36
43
  });
37
- $[4] = t1;
38
- $[5] = t2;
39
- $[6] = t3;
40
- } else t3 = $[6];
44
+ $[5] = t1;
45
+ $[6] = t2;
46
+ $[7] = t3;
47
+ } else t3 = $[7];
41
48
  return t3;
42
49
  };
43
50
  /** The breadcrumb landmark. */
@@ -199,145 +206,116 @@ var Item = (t0) => {
199
206
  /**
200
207
  * A crumb leading to a page above the current one. It spreads every other prop
201
208
  * onto the `<a>` and forwards its ref, so a router's `createLink` can wrap it.
202
- * When it cuts its text short, it shows the full text as a tooltip.
209
+ *
210
+ * @example
211
+ * <Breadcrumbs.Link href="/invoices">Invoices</Breadcrumbs.Link>
203
212
  */
204
213
  var BreadcrumbLink = (t0) => {
205
- const $ = c(17);
206
- let children;
214
+ const $ = c(14);
207
215
  let className;
208
216
  let props;
209
217
  let ref;
210
218
  let render;
211
219
  if ($[0] !== t0) {
212
- ({render, className, children, ref, ...props} = t0);
220
+ ({render, className, ref, ...props} = t0);
213
221
  $[0] = t0;
214
- $[1] = children;
215
- $[2] = className;
216
- $[3] = props;
217
- $[4] = ref;
218
- $[5] = render;
222
+ $[1] = className;
223
+ $[2] = props;
224
+ $[3] = ref;
225
+ $[4] = render;
219
226
  } else {
220
- children = $[1];
221
- className = $[2];
222
- props = $[3];
223
- ref = $[4];
224
- render = $[5];
227
+ className = $[1];
228
+ props = $[2];
229
+ ref = $[3];
230
+ render = $[4];
225
231
  }
226
232
  let t1;
227
- if ($[6] !== className) {
233
+ if ($[5] !== className) {
228
234
  t1 = clsx(breadcrumbs_module_default.crumb, className);
229
- $[6] = className;
230
- $[7] = t1;
231
- } else t1 = $[7];
235
+ $[5] = className;
236
+ $[6] = t1;
237
+ } else t1 = $[6];
232
238
  let t2;
233
- if ($[8] !== children || $[9] !== props || $[10] !== ref || $[11] !== render || $[12] !== t1) {
234
- t2 = /* @__PURE__ */ jsx(LinkElement, {
235
- render,
236
- ref,
239
+ if ($[7] !== props || $[8] !== t1) {
240
+ t2 = {
237
241
  ...props,
238
- className: t1,
239
- children
240
- });
241
- $[8] = children;
242
- $[9] = props;
243
- $[10] = ref;
244
- $[11] = render;
245
- $[12] = t1;
246
- $[13] = t2;
247
- } else t2 = $[13];
242
+ className: t1
243
+ };
244
+ $[7] = props;
245
+ $[8] = t1;
246
+ $[9] = t2;
247
+ } else t2 = $[9];
248
248
  let t3;
249
- if ($[14] !== children || $[15] !== t2) {
250
- t3 = /* @__PURE__ */ jsx(ClippedHint, {
251
- element: t2,
252
- children
253
- });
254
- $[14] = children;
255
- $[15] = t2;
256
- $[16] = t3;
257
- } else t3 = $[16];
258
- return t3;
259
- };
260
- var LinkElement = (t0) => {
261
- const $ = c(8);
262
- let props;
263
- let ref;
264
- let render;
265
- if ($[0] !== t0) {
266
- ({render, ref, ...props} = t0);
267
- $[0] = t0;
268
- $[1] = props;
269
- $[2] = ref;
270
- $[3] = render;
271
- } else {
272
- props = $[1];
273
- ref = $[2];
274
- render = $[3];
275
- }
276
- let t1;
277
- if ($[4] !== props || $[5] !== ref || $[6] !== render) {
278
- t1 = {
249
+ if ($[10] !== ref || $[11] !== render || $[12] !== t2) {
250
+ t3 = {
279
251
  defaultTagName: "a",
280
252
  render,
281
253
  ref,
282
- props
254
+ props: t2
283
255
  };
284
- $[4] = props;
285
- $[5] = ref;
286
- $[6] = render;
287
- $[7] = t1;
288
- } else t1 = $[7];
289
- return useRender(t1);
256
+ $[10] = ref;
257
+ $[11] = render;
258
+ $[12] = t2;
259
+ $[13] = t3;
260
+ } else t3 = $[13];
261
+ return useRender(t3);
290
262
  };
291
263
  /**
292
- * The current page's crumb, which is not a link. When it cuts its text short,
293
- * it shows the full text as a tooltip.
264
+ * The current page's crumb, which is not a link.
265
+ *
266
+ * @example
267
+ * <Breadcrumbs.Page>Invoice 2041</Breadcrumbs.Page>
294
268
  */
295
269
  var Page = (t0) => {
296
- const $ = c(13);
297
- let children;
270
+ const $ = c(14);
298
271
  let className;
299
272
  let props;
273
+ let ref;
274
+ let render;
300
275
  if ($[0] !== t0) {
301
- ({className, children, ...props} = t0);
276
+ ({render, className, ref, ...props} = t0);
302
277
  $[0] = t0;
303
- $[1] = children;
304
- $[2] = className;
305
- $[3] = props;
278
+ $[1] = className;
279
+ $[2] = props;
280
+ $[3] = ref;
281
+ $[4] = render;
306
282
  } else {
307
- children = $[1];
308
- className = $[2];
309
- props = $[3];
283
+ className = $[1];
284
+ props = $[2];
285
+ ref = $[3];
286
+ render = $[4];
310
287
  }
311
288
  let t1;
312
- if ($[4] !== className) {
289
+ if ($[5] !== className) {
313
290
  t1 = clsx(breadcrumbs_module_default.crumb, className);
314
- $[4] = className;
315
- $[5] = t1;
316
- } else t1 = $[5];
291
+ $[5] = className;
292
+ $[6] = t1;
293
+ } else t1 = $[6];
317
294
  let t2;
318
- if ($[6] !== children || $[7] !== props || $[8] !== t1) {
319
- t2 = /* @__PURE__ */ jsx("span", {
295
+ if ($[7] !== props || $[8] !== t1) {
296
+ t2 = {
320
297
  "aria-current": "page",
321
298
  ...props,
322
- className: t1,
323
- children
324
- });
325
- $[6] = children;
299
+ className: t1
300
+ };
326
301
  $[7] = props;
327
302
  $[8] = t1;
328
303
  $[9] = t2;
329
304
  } else t2 = $[9];
330
305
  let t3;
331
- if ($[10] !== children || $[11] !== t2) {
332
- t3 = /* @__PURE__ */ jsx(ClippedHint, {
333
- element: t2,
334
- children
335
- });
336
- $[10] = children;
337
- $[11] = t2;
338
- $[12] = t3;
339
- } else t3 = $[12];
340
- return t3;
306
+ if ($[10] !== ref || $[11] !== render || $[12] !== t2) {
307
+ t3 = {
308
+ defaultTagName: "span",
309
+ render,
310
+ ref,
311
+ props: t2
312
+ };
313
+ $[10] = ref;
314
+ $[11] = render;
315
+ $[12] = t2;
316
+ $[13] = t3;
317
+ } else t3 = $[13];
318
+ return useRender(t3);
341
319
  };
342
320
  /**
343
321
  * The decorative space between two crumbs, holding the app's mark, such as a
@@ -394,47 +372,105 @@ var Separator = (t0) => {
394
372
  } else t3 = $[13];
395
373
  return useRender(t3);
396
374
  };
397
- /** A button that opens a menu of the crumbs the trail has no room for. */
398
- var Overflow = (t0) => {
399
- const $ = c(8);
400
- const { label, icon, children } = t0;
375
+ /**
376
+ * Holds the overflow menu's open state for `OverflowTrigger` and
377
+ * `OverflowContent`. It renders no element of its own.
378
+ *
379
+ * @example
380
+ * <Breadcrumbs.Overflow>
381
+ * <Breadcrumbs.OverflowTrigger render={<IconButton label="Show more" variant="tertiary"><MoreIcon /></IconButton>} />
382
+ * <Breadcrumbs.OverflowContent>…</Breadcrumbs.OverflowContent>
383
+ * </Breadcrumbs.Overflow>
384
+ */
385
+ var Overflow = (props) => {
386
+ const $ = c(2);
387
+ let t0;
388
+ if ($[0] !== props) {
389
+ t0 = /* @__PURE__ */ jsx(Menu.Root, { ...props });
390
+ $[0] = props;
391
+ $[1] = t0;
392
+ } else t0 = $[1];
393
+ return t0;
394
+ };
395
+ /**
396
+ * The button that opens the menu of the crumbs the trail has no room for. It
397
+ * renders whichever button it is given.
398
+ *
399
+ * @example
400
+ * <Breadcrumbs.OverflowTrigger render={<IconButton label="Show more" variant="tertiary"><MoreIcon /></IconButton>} />
401
+ */
402
+ var OverflowTrigger = (props) => {
403
+ const $ = c(2);
404
+ let t0;
405
+ if ($[0] !== props) {
406
+ t0 = /* @__PURE__ */ jsx(Menu.Trigger, { ...props });
407
+ $[0] = props;
408
+ $[1] = t0;
409
+ } else t0 = $[1];
410
+ return t0;
411
+ };
412
+ /**
413
+ * The menu of folded crumbs, each a `Menu.LinkItem`, aligned under the
414
+ * trigger's start and scrolling when it outgrows the room.
415
+ *
416
+ * @example
417
+ * <Breadcrumbs.OverflowContent>
418
+ * <Menu.LinkItem href="/region">Region</Menu.LinkItem>
419
+ * </Breadcrumbs.OverflowContent>
420
+ */
421
+ var OverflowContent = (t0) => {
422
+ const $ = c(12);
423
+ let className;
424
+ let props;
401
425
  let t1;
402
- if ($[0] !== icon || $[1] !== label) {
403
- t1 = /* @__PURE__ */ jsx(Menu.Trigger, {
404
- icon,
405
- label
406
- });
407
- $[0] = icon;
408
- $[1] = label;
409
- $[2] = t1;
410
- } else t1 = $[2];
411
426
  let t2;
412
- if ($[3] !== children) {
413
- t2 = /* @__PURE__ */ jsx(Menu.Content, {
414
- align: "start",
415
- sideOffset: 4,
416
- className: breadcrumbs_module_default.popup,
417
- children
418
- });
419
- $[3] = children;
427
+ if ($[0] !== t0) {
428
+ ({align: t1, sideOffset: t2, className, ...props} = t0);
429
+ $[0] = t0;
430
+ $[1] = className;
431
+ $[2] = props;
432
+ $[3] = t1;
420
433
  $[4] = t2;
421
- } else t2 = $[4];
434
+ } else {
435
+ className = $[1];
436
+ props = $[2];
437
+ t1 = $[3];
438
+ t2 = $[4];
439
+ }
440
+ const align = t1 === void 0 ? "start" : t1;
441
+ const sideOffset = t2 === void 0 ? 4 : t2;
422
442
  let t3;
423
- if ($[5] !== t1 || $[6] !== t2) {
424
- t3 = /* @__PURE__ */ jsxs(Menu.Root, { children: [t1, t2] });
425
- $[5] = t1;
426
- $[6] = t2;
427
- $[7] = t3;
428
- } else t3 = $[7];
429
- return t3;
443
+ if ($[5] !== className) {
444
+ t3 = clsx(breadcrumbs_module_default.popup, className);
445
+ $[5] = className;
446
+ $[6] = t3;
447
+ } else t3 = $[6];
448
+ let t4;
449
+ if ($[7] !== align || $[8] !== props || $[9] !== sideOffset || $[10] !== t3) {
450
+ t4 = /* @__PURE__ */ jsx(Menu.Content, {
451
+ align,
452
+ sideOffset,
453
+ className: t3,
454
+ ...props
455
+ });
456
+ $[7] = align;
457
+ $[8] = props;
458
+ $[9] = sideOffset;
459
+ $[10] = t3;
460
+ $[11] = t4;
461
+ } else t4 = $[11];
462
+ return t4;
430
463
  };
431
464
  /**
432
465
  * A hidden copy of the whole trail at its full length, with one separator and
433
466
  * the overflow button, for `useFold` to measure.
467
+ *
468
+ * @example
469
+ * <Breadcrumbs.Gauge ref={gauge} labels={labels} overflow={moreButton} separator={<ChevronIcon />} />
434
470
  */
435
471
  var Gauge = (t0) => {
436
- const $ = c(13);
437
- const { labels, overflowLabel, overflowIcon, separator, ref } = t0;
472
+ const $ = c(12);
473
+ const { labels, overflow, separator, ref } = t0;
438
474
  let t1;
439
475
  if ($[0] !== labels) {
440
476
  t1 = labels.map(_temp2);
@@ -456,23 +492,17 @@ var Gauge = (t0) => {
456
492
  $[4] = t3;
457
493
  } else t3 = $[4];
458
494
  let t4;
459
- if ($[5] !== overflowIcon || $[6] !== overflowLabel) {
495
+ if ($[5] !== overflow) {
460
496
  t4 = /* @__PURE__ */ jsx("li", {
461
497
  "data-gauge": "overflow",
462
498
  className: breadcrumbs_module_default.item,
463
- children: /* @__PURE__ */ jsx(Button, {
464
- variant: "tertiary",
465
- iconOnly: true,
466
- icon: overflowIcon,
467
- label: overflowLabel
468
- })
499
+ children: overflow
469
500
  });
470
- $[5] = overflowIcon;
471
- $[6] = overflowLabel;
472
- $[7] = t4;
473
- } else t4 = $[7];
501
+ $[5] = overflow;
502
+ $[6] = t4;
503
+ } else t4 = $[6];
474
504
  let t5;
475
- if ($[8] !== ref || $[9] !== t1 || $[10] !== t3 || $[11] !== t4) {
505
+ if ($[7] !== ref || $[8] !== t1 || $[9] !== t3 || $[10] !== t4) {
476
506
  t5 = /* @__PURE__ */ jsx("div", {
477
507
  className: breadcrumbs_module_default.gauge,
478
508
  "aria-hidden": true,
@@ -487,12 +517,12 @@ var Gauge = (t0) => {
487
517
  ]
488
518
  })
489
519
  });
490
- $[8] = ref;
491
- $[9] = t1;
492
- $[10] = t3;
493
- $[11] = t4;
494
- $[12] = t5;
495
- } else t5 = $[12];
520
+ $[7] = ref;
521
+ $[8] = t1;
522
+ $[9] = t3;
523
+ $[10] = t4;
524
+ $[11] = t5;
525
+ } else t5 = $[11];
496
526
  return t5;
497
527
  };
498
528
  var Ancestor = (t0) => {
@@ -503,8 +533,8 @@ var Ancestor = (t0) => {
503
533
  t1 = /* @__PURE__ */ jsx(Item, { children: crumb.render === void 0 ? /* @__PURE__ */ jsx("span", {
504
534
  className: breadcrumbs_module_default.crumb,
505
535
  children: crumb.label
506
- }) : /* @__PURE__ */ jsx(BreadcrumbLink, {
507
- render: crumb.render,
536
+ }) : /* @__PURE__ */ jsx(ClippedHint, {
537
+ render: /* @__PURE__ */ jsx(BreadcrumbLink, { render: crumb.render }),
508
538
  children: crumb.label
509
539
  }) });
510
540
  $[0] = crumb.label;
@@ -532,7 +562,7 @@ var Ancestor = (t0) => {
532
562
  * and the current page stay. Renders nothing for a trail of one.
533
563
  */
534
564
  var Trail = (t0) => {
535
- const $ = c(45);
565
+ const $ = c(49);
536
566
  const { label, overflowLabel, overflowIcon, separator, crumbs, className } = t0;
537
567
  const { root, gauge, folded } = useFold();
538
568
  let t1;
@@ -545,6 +575,7 @@ var Trail = (t0) => {
545
575
  if (crumbs.length < 2 || current === void 0) return null;
546
576
  let T0;
547
577
  let T1;
578
+ let overflowButton;
548
579
  let t2;
549
580
  let t3;
550
581
  let t4;
@@ -554,36 +585,44 @@ var Trail = (t0) => {
554
585
  if ($[2] !== className || $[3] !== crumbs || $[4] !== folded || $[5] !== label || $[6] !== overflowIcon || $[7] !== overflowLabel || $[8] !== root || $[9] !== separator) {
555
586
  const ancestors = crumbs.slice(0, -1);
556
587
  const hidden = ancestors.slice(1, 1 + folded);
588
+ let t8;
589
+ if ($[19] !== overflowIcon || $[20] !== overflowLabel) {
590
+ t8 = /* @__PURE__ */ jsx(IconButton, {
591
+ variant: "tertiary",
592
+ label: overflowLabel,
593
+ children: overflowIcon
594
+ });
595
+ $[19] = overflowIcon;
596
+ $[20] = overflowLabel;
597
+ $[21] = t8;
598
+ } else t8 = $[21];
599
+ overflowButton = t8;
557
600
  T1 = Root;
558
601
  t5 = root;
559
602
  t6 = label;
560
603
  t7 = className;
561
604
  T0 = List;
562
- let t8;
563
- if ($[18] !== separator) {
564
- t8 = (crumb) => /* @__PURE__ */ jsx(Ancestor, {
605
+ let t9;
606
+ if ($[22] !== separator) {
607
+ t9 = (crumb) => /* @__PURE__ */ jsx(Ancestor, {
565
608
  crumb,
566
609
  separator
567
610
  }, crumb.id);
568
- $[18] = separator;
569
- $[19] = t8;
570
- } else t8 = $[19];
571
- t2 = ancestors.slice(0, 1).map(t8);
572
- t3 = hidden.length > 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Item, { children: /* @__PURE__ */ jsx(Overflow, {
573
- label: overflowLabel,
574
- icon: overflowIcon,
575
- children: hidden.map(_temp3)
576
- }) }), /* @__PURE__ */ jsx(Separator, { children: separator })] }) : null;
577
- let t9;
578
- if ($[20] !== separator) {
579
- t9 = (crumb_1) => /* @__PURE__ */ jsx(Ancestor, {
611
+ $[22] = separator;
612
+ $[23] = t9;
613
+ } else t9 = $[23];
614
+ t2 = ancestors.slice(0, 1).map(t9);
615
+ t3 = hidden.length > 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Item, { children: /* @__PURE__ */ jsxs(Overflow, { children: [/* @__PURE__ */ jsx(OverflowTrigger, { render: overflowButton }), /* @__PURE__ */ jsx(OverflowContent, { children: hidden.map(_temp3) })] }) }), /* @__PURE__ */ jsx(Separator, { children: separator })] }) : null;
616
+ let t10;
617
+ if ($[24] !== separator) {
618
+ t10 = (crumb_1) => /* @__PURE__ */ jsx(Ancestor, {
580
619
  crumb: crumb_1,
581
620
  separator
582
621
  }, crumb_1.id);
583
- $[20] = separator;
584
- $[21] = t9;
585
- } else t9 = $[21];
586
- t4 = ancestors.slice(1 + hidden.length).map(t9);
622
+ $[24] = separator;
623
+ $[25] = t10;
624
+ } else t10 = $[25];
625
+ t4 = ancestors.slice(1 + hidden.length).map(t10);
587
626
  $[2] = className;
588
627
  $[3] = crumbs;
589
628
  $[4] = folded;
@@ -594,86 +633,95 @@ var Trail = (t0) => {
594
633
  $[9] = separator;
595
634
  $[10] = T0;
596
635
  $[11] = T1;
597
- $[12] = t2;
598
- $[13] = t3;
599
- $[14] = t4;
600
- $[15] = t5;
601
- $[16] = t6;
602
- $[17] = t7;
636
+ $[12] = overflowButton;
637
+ $[13] = t2;
638
+ $[14] = t3;
639
+ $[15] = t4;
640
+ $[16] = t5;
641
+ $[17] = t6;
642
+ $[18] = t7;
603
643
  } else {
604
644
  T0 = $[10];
605
645
  T1 = $[11];
606
- t2 = $[12];
607
- t3 = $[13];
608
- t4 = $[14];
609
- t5 = $[15];
610
- t6 = $[16];
611
- t7 = $[17];
646
+ overflowButton = $[12];
647
+ t2 = $[13];
648
+ t3 = $[14];
649
+ t4 = $[15];
650
+ t5 = $[16];
651
+ t6 = $[17];
652
+ t7 = $[18];
612
653
  }
613
654
  let t8;
614
- if ($[22] !== current.label) {
615
- t8 = /* @__PURE__ */ jsx(Item, { children: /* @__PURE__ */ jsx(Page, { children: current.label }) });
616
- $[22] = current.label;
617
- $[23] = t8;
618
- } else t8 = $[23];
655
+ if ($[26] === Symbol.for("react.memo_cache_sentinel")) {
656
+ t8 = /* @__PURE__ */ jsx(Page, {});
657
+ $[26] = t8;
658
+ } else t8 = $[26];
619
659
  let t9;
620
- if ($[24] !== T0 || $[25] !== t2 || $[26] !== t3 || $[27] !== t4 || $[28] !== t8) {
621
- t9 = /* @__PURE__ */ jsxs(T0, { children: [
660
+ if ($[27] !== current.label) {
661
+ t9 = /* @__PURE__ */ jsx(Item, { children: /* @__PURE__ */ jsx(ClippedHint, {
662
+ render: t8,
663
+ children: current.label
664
+ }) });
665
+ $[27] = current.label;
666
+ $[28] = t9;
667
+ } else t9 = $[28];
668
+ let t10;
669
+ if ($[29] !== T0 || $[30] !== t2 || $[31] !== t3 || $[32] !== t4 || $[33] !== t9) {
670
+ t10 = /* @__PURE__ */ jsxs(T0, { children: [
622
671
  t2,
623
672
  t3,
624
673
  t4,
625
- t8
674
+ t9
626
675
  ] });
627
- $[24] = T0;
628
- $[25] = t2;
629
- $[26] = t3;
630
- $[27] = t4;
631
- $[28] = t8;
632
- $[29] = t9;
633
- } else t9 = $[29];
634
- let t10;
635
- if ($[30] !== crumbs) {
636
- t10 = crumbs.map(_temp4);
637
- $[30] = crumbs;
638
- $[31] = t10;
639
- } else t10 = $[31];
676
+ $[29] = T0;
677
+ $[30] = t2;
678
+ $[31] = t3;
679
+ $[32] = t4;
680
+ $[33] = t9;
681
+ $[34] = t10;
682
+ } else t10 = $[34];
640
683
  let t11;
641
- if ($[32] !== gauge || $[33] !== overflowIcon || $[34] !== overflowLabel || $[35] !== separator || $[36] !== t10) {
642
- t11 = /* @__PURE__ */ jsx(Gauge, {
684
+ if ($[35] !== crumbs) {
685
+ t11 = crumbs.map(_temp4);
686
+ $[35] = crumbs;
687
+ $[36] = t11;
688
+ } else t11 = $[36];
689
+ let t12;
690
+ if ($[37] !== gauge || $[38] !== overflowButton || $[39] !== separator || $[40] !== t11) {
691
+ t12 = /* @__PURE__ */ jsx(Gauge, {
643
692
  ref: gauge,
644
- labels: t10,
645
- overflowLabel,
646
- overflowIcon,
693
+ labels: t11,
694
+ overflow: overflowButton,
647
695
  separator
648
696
  });
649
- $[32] = gauge;
650
- $[33] = overflowIcon;
651
- $[34] = overflowLabel;
652
- $[35] = separator;
653
- $[36] = t10;
654
- $[37] = t11;
655
- } else t11 = $[37];
656
- let t12;
657
- if ($[38] !== T1 || $[39] !== t11 || $[40] !== t5 || $[41] !== t6 || $[42] !== t7 || $[43] !== t9) {
658
- t12 = /* @__PURE__ */ jsxs(T1, {
697
+ $[37] = gauge;
698
+ $[38] = overflowButton;
699
+ $[39] = separator;
700
+ $[40] = t11;
701
+ $[41] = t12;
702
+ } else t12 = $[41];
703
+ let t13;
704
+ if ($[42] !== T1 || $[43] !== t10 || $[44] !== t12 || $[45] !== t5 || $[46] !== t6 || $[47] !== t7) {
705
+ t13 = /* @__PURE__ */ jsxs(T1, {
659
706
  ref: t5,
660
707
  "aria-label": t6,
661
708
  className: t7,
662
- children: [t9, t11]
709
+ children: [t10, t12]
663
710
  });
664
- $[38] = T1;
665
- $[39] = t11;
666
- $[40] = t5;
667
- $[41] = t6;
668
- $[42] = t7;
669
- $[43] = t9;
711
+ $[42] = T1;
712
+ $[43] = t10;
670
713
  $[44] = t12;
671
- } else t12 = $[44];
672
- return t12;
714
+ $[45] = t5;
715
+ $[46] = t6;
716
+ $[47] = t7;
717
+ $[48] = t13;
718
+ } else t13 = $[48];
719
+ return t13;
673
720
  };
674
721
  /**
675
722
  * The trail to the current page. Given `crumbs`, it folds what does not fit
676
- * into an overflow menu; the parts hanging off it compose a trail by hand.
723
+ * into an overflow menu and hints the full text of a crumb it cuts short; the
724
+ * parts hanging off it compose a trail by hand.
677
725
  *
678
726
  * @example
679
727
  * <Breadcrumbs
@@ -695,7 +743,10 @@ var Breadcrumbs = Object.assign(Trail, {
695
743
  Link: BreadcrumbLink,
696
744
  Page,
697
745
  Separator,
746
+ ClippedHint,
698
747
  Overflow,
748
+ OverflowTrigger,
749
+ OverflowContent,
699
750
  Gauge
700
751
  });
701
752
  function _temp(open, details) {