@igne-agency/react-web-ui 0.4.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 (257) hide show
  1. package/dist/base.css +3 -0
  2. package/dist/components/accordion/accordion.css +21 -21
  3. package/dist/components/accordion/accordion.d.ts +17 -4
  4. package/dist/components/accordion/accordion.js +83 -36
  5. package/dist/components/accordion/accordion.module.js +6 -6
  6. package/dist/components/attachment-tile/attachment-preview.d.ts +56 -13
  7. package/dist/components/attachment-tile/attachment-preview.js +388 -119
  8. package/dist/components/attachment-tile/attachment-tile.css +31 -25
  9. package/dist/components/attachment-tile/attachment-tile.d.ts +32 -10
  10. package/dist/components/attachment-tile/attachment-tile.js +160 -43
  11. package/dist/components/attachment-tile/attachment-tile.module.js +8 -8
  12. package/dist/components/attachment-tile/index.d.ts +1 -1
  13. package/dist/components/avatar/avatar.css +9 -9
  14. package/dist/components/avatar/avatar.d.ts +50 -5
  15. package/dist/components/avatar/avatar.js +178 -64
  16. package/dist/components/avatar/avatar.module.js +3 -3
  17. package/dist/components/avatar-group/avatar-group-context.d.ts +2 -4
  18. package/dist/components/avatar-group/avatar-group-context.js +2 -2
  19. package/dist/components/avatar-group/avatar-group.css +26 -20
  20. package/dist/components/avatar-group/avatar-group.d.ts +85 -27
  21. package/dist/components/avatar-group/avatar-group.js +400 -246
  22. package/dist/components/avatar-group/avatar-group.module.js +8 -8
  23. package/dist/components/breadcrumbs/breadcrumbs.css +12 -12
  24. package/dist/components/breadcrumbs/breadcrumbs.d.ts +69 -23
  25. package/dist/components/breadcrumbs/breadcrumbs.js +299 -248
  26. package/dist/components/breadcrumbs/breadcrumbs.module.js +8 -8
  27. package/dist/components/button/button.css +29 -31
  28. package/dist/components/button/button.d.ts +20 -16
  29. package/dist/components/button/button.js +140 -145
  30. package/dist/components/button/button.module.js +1 -1
  31. package/dist/components/button/index.js +1 -1
  32. package/dist/components/checkbox-field/checkbox-field.js +63 -49
  33. package/dist/components/checkbox-field/checkbox.css +105 -56
  34. package/dist/components/checkbox-field/checkbox.d.ts +3 -2
  35. package/dist/components/checkbox-field/checkbox.js +12 -9
  36. package/dist/components/checkbox-field/checkbox.module.js +4 -4
  37. package/dist/components/checkbox-group-field/checkbox-group-field.js +78 -72
  38. package/dist/components/checkbox-group-field/checkbox-group.css +14 -10
  39. package/dist/components/checkbox-group-field/checkbox-group.d.ts +2 -2
  40. package/dist/components/checkbox-group-field/checkbox-group.js +2 -2
  41. package/dist/components/checkbox-group-field/checkbox-group.module.js +2 -2
  42. package/dist/components/collapsible/collapsible.css +20 -20
  43. package/dist/components/collapsible/collapsible.d.ts +17 -4
  44. package/dist/components/collapsible/collapsible.js +83 -36
  45. package/dist/components/collapsible/collapsible.module.js +5 -5
  46. package/dist/components/combobox-field/combobox-field.js +206 -158
  47. package/dist/components/combobox-field/combobox.css +492 -277
  48. package/dist/components/combobox-field/combobox.d.ts +148 -39
  49. package/dist/components/combobox-field/combobox.js +506 -206
  50. package/dist/components/combobox-field/combobox.module.js +21 -21
  51. package/dist/components/combobox-field/value-state-view.css +5 -5
  52. package/dist/components/combobox-field/value-state-view.module.js +4 -4
  53. package/dist/components/composer/composer-attachments.d.ts +30 -11
  54. package/dist/components/composer/composer-attachments.js +45 -40
  55. package/dist/components/composer/composer-editor.css +40 -35
  56. package/dist/components/composer/composer-editor.d.ts +14 -4
  57. package/dist/components/composer/composer-editor.js +134 -44
  58. package/dist/components/composer/composer-editor.module.js +5 -5
  59. package/dist/components/composer/composer.css +22 -22
  60. package/dist/components/composer/composer.d.ts +13 -2
  61. package/dist/components/composer/composer.js +78 -63
  62. package/dist/components/composer/composer.module.js +5 -5
  63. package/dist/components/composer/index.d.ts +2 -2
  64. package/dist/components/composer/mention-text.css +5 -5
  65. package/dist/components/composer/mention-text.module.js +1 -1
  66. package/dist/components/confirm-dialog/confirm-dialog.css +29 -29
  67. package/dist/components/confirm-dialog/confirm-dialog.d.ts +57 -3
  68. package/dist/components/confirm-dialog/confirm-dialog.js +266 -108
  69. package/dist/components/confirm-dialog/confirm-dialog.module.js +5 -5
  70. package/dist/components/conversation/conversation.css +52 -52
  71. package/dist/components/conversation/conversation.d.ts +43 -18
  72. package/dist/components/conversation/conversation.js +120 -78
  73. package/dist/components/conversation/conversation.module.js +15 -15
  74. package/dist/components/date-field/date-field.d.ts +1 -1
  75. package/dist/components/date-field/date-field.js +202 -100
  76. package/dist/components/date-field/date-input.d.ts +73 -37
  77. package/dist/components/date-field/date-input.js +72 -45
  78. package/dist/components/date-field/index.d.ts +1 -1
  79. package/dist/components/date-range-field/date-range-field.d.ts +1 -1
  80. package/dist/components/date-range-field/date-range-field.js +219 -107
  81. package/dist/components/date-range-field/date-range-input.d.ts +84 -40
  82. package/dist/components/date-range-field/date-range-input.js +83 -48
  83. package/dist/components/dialog/dialog.css +32 -32
  84. package/dist/components/dialog/dialog.d.ts +8 -7
  85. package/dist/components/dialog/dialog.js +8 -26
  86. package/dist/components/dialog/dialog.module.js +6 -6
  87. package/dist/components/divider/divider.css +6 -6
  88. package/dist/components/divider/divider.d.ts +36 -2
  89. package/dist/components/divider/divider.js +195 -29
  90. package/dist/components/divider/divider.module.js +3 -3
  91. package/dist/components/drawer/drawer.css +55 -56
  92. package/dist/components/drawer/drawer.d.ts +8 -7
  93. package/dist/components/drawer/drawer.js +8 -26
  94. package/dist/components/drawer/drawer.module.js +6 -6
  95. package/dist/components/field/field.css +34 -24
  96. package/dist/components/field/field.d.ts +60 -37
  97. package/dist/components/field/field.js +242 -157
  98. package/dist/components/field/field.module.js +12 -10
  99. package/dist/components/field/input-parts.d.ts +11 -13
  100. package/dist/components/field/input-parts.js +23 -42
  101. package/dist/components/field-placeholder/field-placeholder.css +6 -6
  102. package/dist/components/field-placeholder/field-placeholder.module.js +4 -4
  103. package/dist/components/fieldset/field-group.d.ts +1 -1
  104. package/dist/components/fieldset/field-group.js +48 -42
  105. package/dist/components/fieldset/fieldset-root.d.ts +1 -1
  106. package/dist/components/fieldset/fieldset-root.js +19 -17
  107. package/dist/components/fieldset/fieldset.d.ts +2 -2
  108. package/dist/components/fieldset/fieldset.js +2 -2
  109. package/dist/components/file-field/file-field.css +126 -60
  110. package/dist/components/file-field/file-field.js +201 -109
  111. package/dist/components/file-field/file-field.module.js +4 -4
  112. package/dist/components/file-field/file-input.d.ts +66 -40
  113. package/dist/components/file-field/file-input.js +188 -132
  114. package/dist/components/filter-bar/filter-bar.css +8 -8
  115. package/dist/components/filter-bar/filter-bar.d.ts +12 -3
  116. package/dist/components/filter-bar/filter-bar.js +23 -25
  117. package/dist/components/filter-bar/filter-bar.module.js +5 -5
  118. package/dist/components/form/form.d.ts +19 -7
  119. package/dist/components/form/form.js +80 -29
  120. package/dist/components/icon/icon.css +2 -2
  121. package/dist/components/icon/icon.module.js +1 -1
  122. package/dist/components/link/link.css +6 -5
  123. package/dist/components/link/link.module.js +1 -1
  124. package/dist/components/menu/menu.css +52 -47
  125. package/dist/components/menu/menu.d.ts +32 -25
  126. package/dist/components/menu/menu.js +75 -124
  127. package/dist/components/menu/menu.module.js +8 -8
  128. package/dist/components/nav/nav-context.d.ts +1 -1
  129. package/dist/components/nav/nav-item-view.d.ts +10 -13
  130. package/dist/components/nav/nav-item-view.js +42 -54
  131. package/dist/components/nav/nav.css +150 -119
  132. package/dist/components/nav/nav.d.ts +61 -17
  133. package/dist/components/nav/nav.js +271 -176
  134. package/dist/components/nav/nav.module.js +17 -15
  135. package/dist/components/number-field/number-field.css +153 -64
  136. package/dist/components/number-field/number-field.d.ts +2 -2
  137. package/dist/components/number-field/number-field.js +112 -91
  138. package/dist/components/number-field/number-field.module.js +6 -6
  139. package/dist/components/number-field/number-input.d.ts +43 -23
  140. package/dist/components/number-field/number-input.js +179 -125
  141. package/dist/components/otp-field/otp-field.css +153 -60
  142. package/dist/components/otp-field/otp-field.d.ts +2 -2
  143. package/dist/components/otp-field/otp-field.js +62 -46
  144. package/dist/components/otp-field/otp-field.module.js +4 -4
  145. package/dist/components/otp-field/otp-input.d.ts +8 -6
  146. package/dist/components/otp-field/otp-input.js +92 -92
  147. package/dist/components/pagination/pagination.d.ts +46 -15
  148. package/dist/components/pagination/pagination.js +217 -224
  149. package/dist/components/password-field/password-field.css +23 -23
  150. package/dist/components/password-field/password-field.js +107 -85
  151. package/dist/components/password-field/password-field.module.js +8 -8
  152. package/dist/components/password-field/password-strength.d.ts +107 -3
  153. package/dist/components/password-field/password-strength.js +569 -92
  154. package/dist/components/photo-field/photo-field.js +137 -112
  155. package/dist/components/photo-field/photo-input.css +67 -44
  156. package/dist/components/photo-field/photo-input.d.ts +59 -15
  157. package/dist/components/photo-field/photo-input.js +173 -86
  158. package/dist/components/photo-field/photo-input.module.js +10 -8
  159. package/dist/components/popover/popover.css +41 -41
  160. package/dist/components/popover/popover.d.ts +66 -25
  161. package/dist/components/popover/popover.js +332 -217
  162. package/dist/components/popover/popover.module.js +15 -19
  163. package/dist/components/radio-group-field/radio-group-field.js +80 -71
  164. package/dist/components/radio-group-field/radio-group.css +112 -60
  165. package/dist/components/radio-group-field/radio-group.d.ts +19 -3
  166. package/dist/components/radio-group-field/radio-group.js +66 -23
  167. package/dist/components/radio-group-field/radio-group.module.js +4 -4
  168. package/dist/components/segmented-control-field/segmented-control-field.d.ts +1 -1
  169. package/dist/components/segmented-control-field/segmented-control-field.js +111 -96
  170. package/dist/components/segmented-control-field/segmented-control.css +132 -79
  171. package/dist/components/segmented-control-field/segmented-control.d.ts +39 -15
  172. package/dist/components/segmented-control-field/segmented-control.js +124 -41
  173. package/dist/components/segmented-control-field/segmented-control.module.js +4 -4
  174. package/dist/components/select-field/select.css +214 -101
  175. package/dist/components/select-field/select.d.ts +43 -11
  176. package/dist/components/select-field/select.js +194 -109
  177. package/dist/components/select-field/select.module.js +14 -14
  178. package/dist/components/skeleton/skeleton.css +4 -4
  179. package/dist/components/skeleton/skeleton.module.js +3 -3
  180. package/dist/components/stale/stale.css +15 -15
  181. package/dist/components/stale/stale.d.ts +27 -3
  182. package/dist/components/stale/stale.js +147 -66
  183. package/dist/components/stale/stale.module.js +6 -6
  184. package/dist/components/status-message/status-message.css +22 -22
  185. package/dist/components/status-message/status-message.module.js +6 -6
  186. package/dist/components/switch-field/switch-field.js +77 -57
  187. package/dist/components/switch-field/switch.css +112 -63
  188. package/dist/components/switch-field/switch.d.ts +20 -3
  189. package/dist/components/switch-field/switch.js +70 -27
  190. package/dist/components/switch-field/switch.module.js +4 -4
  191. package/dist/components/tabs/tabs.css +32 -32
  192. package/dist/components/tabs/tabs.d.ts +21 -7
  193. package/dist/components/tabs/tabs.js +73 -14
  194. package/dist/components/tabs/tabs.module.js +7 -7
  195. package/dist/components/tag/tag.css +84 -84
  196. package/dist/components/tag/tag.module.js +3 -3
  197. package/dist/components/tag-group/tag-group.css +94 -94
  198. package/dist/components/tag-group/tag-group.module.js +4 -4
  199. package/dist/components/text-field/text-field.css +159 -82
  200. package/dist/components/text-field/text-field.d.ts +1 -1
  201. package/dist/components/text-field/text-field.js +139 -110
  202. package/dist/components/text-field/text-field.module.js +9 -9
  203. package/dist/components/text-field/text-input.d.ts +81 -45
  204. package/dist/components/text-field/text-input.js +366 -217
  205. package/dist/components/textarea-field/textarea-field.css +7 -2
  206. package/dist/components/textarea-field/textarea-field.js +72 -56
  207. package/dist/components/textarea-field/textarea-field.module.js +2 -2
  208. package/dist/components/time-field/time-field.js +153 -60
  209. package/dist/components/time-field/time-input.d.ts +21 -10
  210. package/dist/components/time-field/time-input.js +22 -11
  211. package/dist/components/toast/toast-provider.css +34 -31
  212. package/dist/components/toast/toast-provider.d.ts +63 -14
  213. package/dist/components/toast/toast-provider.js +174 -111
  214. package/dist/components/toast/toast-provider.module.js +7 -7
  215. package/dist/components/toggle-group-field/toggle-group-field.d.ts +1 -1
  216. package/dist/components/toggle-group-field/toggle-group-field.js +95 -89
  217. package/dist/components/toggle-group-field/toggle-group.css +117 -67
  218. package/dist/components/toggle-group-field/toggle-group.d.ts +2 -2
  219. package/dist/components/toggle-group-field/toggle-group.js +2 -2
  220. package/dist/components/toggle-group-field/toggle-group.module.js +2 -2
  221. package/dist/components/tooltip/tooltip.css +4 -4
  222. package/dist/components/tooltip/tooltip.module.js +1 -1
  223. package/dist/data-table/data-table-content.js +6 -5
  224. package/dist/data-table/data-table-parts.d.ts +41 -13
  225. package/dist/data-table/data-table-parts.js +213 -172
  226. package/dist/data-table/data-table-selection.d.ts +105 -3
  227. package/dist/data-table/data-table-selection.js +654 -145
  228. package/dist/data-table/data-table.css +125 -128
  229. package/dist/data-table/data-table.d.ts +21 -26
  230. package/dist/data-table/data-table.js +20 -23
  231. package/dist/data-table/data-table.module.js +32 -34
  232. package/dist/data-table/index.d.ts +2 -2
  233. package/dist/index.js +3 -3
  234. package/dist/lib/calendar/calendar-navigation.d.ts +39 -5
  235. package/dist/lib/calendar/calendar-navigation.js +185 -118
  236. package/dist/lib/calendar/calendar-parts.d.ts +143 -0
  237. package/dist/lib/calendar/calendar-parts.js +540 -0
  238. package/dist/lib/calendar/calendar-prefab.d.ts +52 -0
  239. package/dist/lib/calendar/calendar-prefab.js +311 -0
  240. package/dist/lib/calendar/calendar-year.d.ts +3 -1
  241. package/dist/lib/calendar/calendar-year.js +139 -131
  242. package/dist/lib/calendar/temporal.css +325 -232
  243. package/dist/lib/calendar/temporal.d.ts +67 -82
  244. package/dist/lib/calendar/temporal.js +258 -569
  245. package/dist/lib/calendar/temporal.module.js +38 -38
  246. package/dist/lib/forms/use-connected-field.d.ts +1 -1
  247. package/dist/lib/forms/use-connected-field.js +1 -1
  248. package/dist/lib/render-as.d.ts +13 -0
  249. package/dist/lib/render-as.js +46 -0
  250. package/dist/terrazzo/index.d.ts +4 -3
  251. package/dist/terrazzo/index.js +17 -6
  252. package/dist/tokens.css +28 -4
  253. package/package.json +2 -2
  254. package/tokens/dark.tokens.json +6 -0
  255. package/tokens/sys.tokens.json +7 -0
  256. package/dist/components/button/close-button.d.ts +0 -16
  257. package/dist/components/button/close-button.js +0 -30
@@ -8,10 +8,11 @@ import { useRender } from "@base-ui/react/use-render";
8
8
  import { clsx } from "clsx";
9
9
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
10
  // src/components/avatar-group/avatar-group.tsx
11
+ var DEFAULT_SIZE = 1.5;
11
12
  var LIST_AVATAR_SIZE = 1.5;
12
13
  /** The stack: a named group of avatars, overlapping, with no control of its own. */
13
14
  var Root = (t0) => {
14
- const $ = c(28);
15
+ const $ = c(27);
15
16
  let className;
16
17
  let inlineStyle;
17
18
  let label;
@@ -38,7 +39,7 @@ var Root = (t0) => {
38
39
  render = $[6];
39
40
  t1 = $[7];
40
41
  }
41
- const size = t1 === void 0 ? 1.5 : t1;
42
+ const size = t1 === void 0 ? DEFAULT_SIZE : t1;
42
43
  let t2;
43
44
  if ($[8] !== className) {
44
45
  t2 = clsx(avatar_group_module_default.group, className);
@@ -86,130 +87,121 @@ var Root = (t0) => {
86
87
  } else t6 = $[21];
87
88
  const element = useRender(t6);
88
89
  let t7;
89
- if ($[22] !== label || $[23] !== size) {
90
- t7 = {
91
- label,
92
- size
93
- };
90
+ if ($[22] !== label) {
91
+ t7 = { label };
94
92
  $[22] = label;
95
- $[23] = size;
96
- $[24] = t7;
97
- } else t7 = $[24];
93
+ $[23] = t7;
94
+ } else t7 = $[23];
98
95
  let t8;
99
- if ($[25] !== element || $[26] !== t7) {
96
+ if ($[24] !== element || $[25] !== t7) {
100
97
  t8 = /* @__PURE__ */ jsx(AvatarGroupContext, {
101
98
  value: t7,
102
99
  children: element
103
100
  });
104
- $[25] = element;
105
- $[26] = t7;
106
- $[27] = t8;
107
- } else t8 = $[27];
101
+ $[24] = element;
102
+ $[25] = t7;
103
+ $[26] = t8;
104
+ } else t8 = $[26];
108
105
  return t8;
109
106
  };
110
- /** One member of the stack, overlapping the one before it: an image named for its person. */
107
+ /**
108
+ * One member of the stack, overlapping the one before it: an image named for
109
+ * its person, holding their `Avatar`.
110
+ *
111
+ * @example
112
+ * <AvatarGroup.Avatar name="Ada Lovelace">
113
+ * <Avatar name="Ada Lovelace" size={1.5} />
114
+ * </AvatarGroup.Avatar>
115
+ */
111
116
  var Avatar = (t0) => {
112
- const $ = c(22);
117
+ const $ = c(16);
113
118
  let className;
114
119
  let name;
115
120
  let props;
116
121
  let ref;
117
122
  let render;
118
- let src;
119
123
  if ($[0] !== t0) {
120
- ({name, src, render, className, ref, ...props} = t0);
124
+ ({name, render, className, ref, ...props} = t0);
121
125
  $[0] = t0;
122
126
  $[1] = className;
123
127
  $[2] = name;
124
128
  $[3] = props;
125
129
  $[4] = ref;
126
130
  $[5] = render;
127
- $[6] = src;
128
131
  } else {
129
132
  className = $[1];
130
133
  name = $[2];
131
134
  props = $[3];
132
135
  ref = $[4];
133
136
  render = $[5];
134
- src = $[6];
135
137
  }
136
- const { size } = useAvatarGroup();
137
138
  let t1;
138
- if ($[7] !== className) {
139
+ if ($[6] !== className) {
139
140
  t1 = clsx(avatar_group_module_default.member, className);
140
- $[7] = className;
141
- $[8] = t1;
142
- } else t1 = $[8];
141
+ $[6] = className;
142
+ $[7] = t1;
143
+ } else t1 = $[7];
143
144
  let t2;
144
- if ($[9] !== name || $[10] !== size || $[11] !== src) {
145
- t2 = /* @__PURE__ */ jsx(Avatar$1, {
146
- name,
147
- src,
148
- size
149
- });
150
- $[9] = name;
151
- $[10] = size;
152
- $[11] = src;
153
- $[12] = t2;
154
- } else t2 = $[12];
155
- let t3;
156
- if ($[13] !== name || $[14] !== props || $[15] !== t1 || $[16] !== t2) {
157
- t3 = {
145
+ if ($[8] !== name || $[9] !== props || $[10] !== t1) {
146
+ t2 = {
158
147
  role: "img",
159
148
  ...props,
160
149
  "aria-label": name,
161
- className: t1,
162
- children: t2
150
+ className: t1
163
151
  };
164
- $[13] = name;
165
- $[14] = props;
166
- $[15] = t1;
167
- $[16] = t2;
168
- $[17] = t3;
169
- } else t3 = $[17];
170
- let t4;
171
- if ($[18] !== ref || $[19] !== render || $[20] !== t3) {
172
- t4 = {
152
+ $[8] = name;
153
+ $[9] = props;
154
+ $[10] = t1;
155
+ $[11] = t2;
156
+ } else t2 = $[11];
157
+ let t3;
158
+ if ($[12] !== ref || $[13] !== render || $[14] !== t2) {
159
+ t3 = {
173
160
  defaultTagName: "span",
174
161
  render,
175
162
  ref,
176
- props: t3
163
+ props: t2
177
164
  };
178
- $[18] = ref;
179
- $[19] = render;
180
- $[20] = t3;
181
- $[21] = t4;
182
- } else t4 = $[21];
183
- return useRender(t4);
165
+ $[12] = ref;
166
+ $[13] = render;
167
+ $[14] = t2;
168
+ $[15] = t3;
169
+ } else t3 = $[15];
170
+ return useRender(t3);
184
171
  };
185
172
  /**
186
- * The count of everyone the stack leaves out: a button that opens a popover
187
- * holding its children, on hover, on a tap or from the keyboard.
173
+ * The last member of the stack: the button that stands for everyone it leaves
174
+ * out, holding a `Count`. Render it as the trigger of a `Popover`.
175
+ *
176
+ * @example
177
+ * <AvatarGroup.Overflow
178
+ * label="+3, show all invitees"
179
+ * render={<Popover.Trigger openOnHover />}>
180
+ * <AvatarGroup.Count count={3} />
181
+ * </AvatarGroup.Overflow>
188
182
  */
189
183
  var Overflow = (t0) => {
190
- const $ = c(24);
191
- let children;
184
+ const $ = c(16);
192
185
  let className;
193
- let count;
194
186
  let label;
195
187
  let props;
188
+ let ref;
189
+ let render;
196
190
  if ($[0] !== t0) {
197
- ({count, label, children, className, ...props} = t0);
191
+ ({label, render, className, ref, ...props} = t0);
198
192
  $[0] = t0;
199
- $[1] = children;
200
- $[2] = className;
201
- $[3] = count;
202
- $[4] = label;
203
- $[5] = props;
193
+ $[1] = className;
194
+ $[2] = label;
195
+ $[3] = props;
196
+ $[4] = ref;
197
+ $[5] = render;
204
198
  } else {
205
- children = $[1];
206
- className = $[2];
207
- count = $[3];
208
- label = $[4];
209
- props = $[5];
199
+ className = $[1];
200
+ label = $[2];
201
+ props = $[3];
202
+ ref = $[4];
203
+ render = $[5];
210
204
  }
211
- const { label: groupLabel } = useAvatarGroup();
212
- const locale = useLocale();
213
205
  let t1;
214
206
  if ($[6] !== className) {
215
207
  t1 = clsx(avatar_group_module_default.member, avatar_group_module_default.overflow, className);
@@ -217,6 +209,70 @@ var Overflow = (t0) => {
217
209
  $[7] = t1;
218
210
  } else t1 = $[7];
219
211
  let t2;
212
+ if ($[8] !== label || $[9] !== props || $[10] !== t1) {
213
+ t2 = {
214
+ type: "button",
215
+ ...props,
216
+ "aria-label": label,
217
+ className: t1
218
+ };
219
+ $[8] = label;
220
+ $[9] = props;
221
+ $[10] = t1;
222
+ $[11] = t2;
223
+ } else t2 = $[11];
224
+ let t3;
225
+ if ($[12] !== ref || $[13] !== render || $[14] !== t2) {
226
+ t3 = {
227
+ defaultTagName: "button",
228
+ render,
229
+ ref,
230
+ props: t2
231
+ };
232
+ $[12] = ref;
233
+ $[13] = render;
234
+ $[14] = t2;
235
+ $[15] = t3;
236
+ } else t3 = $[15];
237
+ return useRender(t3);
238
+ };
239
+ /**
240
+ * How many people the stack leaves out, as a signed number in the reader's
241
+ * own format.
242
+ *
243
+ * @example
244
+ * <AvatarGroup.Count count={3} />
245
+ */
246
+ var Count = (t0) => {
247
+ const $ = c(19);
248
+ let className;
249
+ let count;
250
+ let props;
251
+ let ref;
252
+ let render;
253
+ if ($[0] !== t0) {
254
+ ({count, render, className, ref, ...props} = t0);
255
+ $[0] = t0;
256
+ $[1] = className;
257
+ $[2] = count;
258
+ $[3] = props;
259
+ $[4] = ref;
260
+ $[5] = render;
261
+ } else {
262
+ className = $[1];
263
+ count = $[2];
264
+ props = $[3];
265
+ ref = $[4];
266
+ render = $[5];
267
+ }
268
+ const locale = useLocale();
269
+ let t1;
270
+ if ($[6] !== className) {
271
+ t1 = clsx(avatar_group_module_default.count, className);
272
+ $[6] = className;
273
+ $[7] = t1;
274
+ } else t1 = $[7];
275
+ let t2;
220
276
  if ($[8] !== count || $[9] !== locale) {
221
277
  t2 = new Intl.NumberFormat(locale, { signDisplay: "always" }).format(count);
222
278
  $[8] = count;
@@ -224,52 +280,75 @@ var Overflow = (t0) => {
224
280
  $[10] = t2;
225
281
  } else t2 = $[10];
226
282
  let t3;
227
- if ($[11] !== t2) {
228
- t3 = /* @__PURE__ */ jsx("span", {
229
- className: avatar_group_module_default.count,
283
+ if ($[11] !== props || $[12] !== t1 || $[13] !== t2) {
284
+ t3 = {
285
+ ...props,
286
+ className: t1,
230
287
  children: t2
231
- });
232
- $[11] = t2;
233
- $[12] = t3;
234
- } else t3 = $[12];
288
+ };
289
+ $[11] = props;
290
+ $[12] = t1;
291
+ $[13] = t2;
292
+ $[14] = t3;
293
+ } else t3 = $[14];
235
294
  let t4;
236
- if ($[13] !== label || $[14] !== props || $[15] !== t1 || $[16] !== t3) {
237
- t4 = /* @__PURE__ */ jsx(Popover.Trigger, {
238
- openOnHover: true,
239
- ...props,
295
+ if ($[15] !== ref || $[16] !== render || $[17] !== t3) {
296
+ t4 = {
297
+ defaultTagName: "span",
298
+ render,
299
+ ref,
300
+ props: t3
301
+ };
302
+ $[15] = ref;
303
+ $[16] = render;
304
+ $[17] = t3;
305
+ $[18] = t4;
306
+ } else t4 = $[18];
307
+ return useRender(t4);
308
+ };
309
+ /**
310
+ * The overflow's popover surface, named after the group.
311
+ *
312
+ * @example
313
+ * <Popover.Portal>
314
+ * <Popover.Positioner side="top" sideOffset={8}>
315
+ * <AvatarGroup.Popup><AvatarGroup.List>…</AvatarGroup.List></AvatarGroup.Popup>
316
+ * </Popover.Positioner>
317
+ * </Popover.Portal>
318
+ */
319
+ var Popup = (t0) => {
320
+ const $ = c(9);
321
+ let className;
322
+ let props;
323
+ if ($[0] !== t0) {
324
+ ({className, ...props} = t0);
325
+ $[0] = t0;
326
+ $[1] = className;
327
+ $[2] = props;
328
+ } else {
329
+ className = $[1];
330
+ props = $[2];
331
+ }
332
+ const { label } = useAvatarGroup();
333
+ let t1;
334
+ if ($[3] !== className) {
335
+ t1 = clsx(avatar_group_module_default.popup, className);
336
+ $[3] = className;
337
+ $[4] = t1;
338
+ } else t1 = $[4];
339
+ let t2;
340
+ if ($[5] !== label || $[6] !== props || $[7] !== t1) {
341
+ t2 = /* @__PURE__ */ jsx(Popover.Popup, {
240
342
  "aria-label": label,
241
- className: t1,
242
- children: t3
343
+ ...props,
344
+ className: t1
243
345
  });
244
- $[13] = label;
245
- $[14] = props;
246
- $[15] = t1;
247
- $[16] = t3;
248
- $[17] = t4;
249
- } else t4 = $[17];
250
- let t5;
251
- if ($[18] !== children || $[19] !== groupLabel) {
252
- t5 = /* @__PURE__ */ jsx(Popover.Portal, { children: /* @__PURE__ */ jsx(Popover.Positioner, {
253
- side: "top",
254
- sideOffset: 8,
255
- children: /* @__PURE__ */ jsx(Popover.Popup, {
256
- "aria-label": groupLabel,
257
- className: avatar_group_module_default.popup,
258
- children
259
- })
260
- }) });
261
- $[18] = children;
262
- $[19] = groupLabel;
263
- $[20] = t5;
264
- } else t5 = $[20];
265
- let t6;
266
- if ($[21] !== t4 || $[22] !== t5) {
267
- t6 = /* @__PURE__ */ jsxs(Popover.Root, { children: [t4, t5] });
268
- $[21] = t4;
269
- $[22] = t5;
270
- $[23] = t6;
271
- } else t6 = $[23];
272
- return t6;
346
+ $[5] = label;
347
+ $[6] = props;
348
+ $[7] = t1;
349
+ $[8] = t2;
350
+ } else t2 = $[8];
351
+ return t2;
273
352
  };
274
353
  /** The people in the overflow's popover, one `ListItem` each. */
275
354
  var List = (t0) => {
@@ -322,120 +401,192 @@ var List = (t0) => {
322
401
  } else t3 = $[13];
323
402
  return useRender(t3);
324
403
  };
325
- /** One person in the list: their avatar, their name and any suffix. */
404
+ /**
405
+ * One person in the list: their `Avatar`, then their `Name`.
406
+ *
407
+ * @example
408
+ * <AvatarGroup.ListItem>
409
+ * <Avatar name="Ada Lovelace" size={1.5} />
410
+ * <AvatarGroup.Name>Ada Lovelace</AvatarGroup.Name>
411
+ * </AvatarGroup.ListItem>
412
+ */
326
413
  var ListItem = (t0) => {
327
- const $ = c(29);
414
+ const $ = c(14);
328
415
  let className;
329
- let name;
330
416
  let props;
331
417
  let ref;
332
418
  let render;
333
- let src;
334
- let suffix;
335
419
  if ($[0] !== t0) {
336
- ({name, src, suffix, render, className, ref, ...props} = t0);
420
+ ({render, className, ref, ...props} = t0);
337
421
  $[0] = t0;
338
422
  $[1] = className;
339
- $[2] = name;
340
- $[3] = props;
341
- $[4] = ref;
342
- $[5] = render;
343
- $[6] = src;
344
- $[7] = suffix;
423
+ $[2] = props;
424
+ $[3] = ref;
425
+ $[4] = render;
345
426
  } else {
346
427
  className = $[1];
347
- name = $[2];
348
- props = $[3];
349
- ref = $[4];
350
- render = $[5];
351
- src = $[6];
352
- suffix = $[7];
428
+ props = $[2];
429
+ ref = $[3];
430
+ render = $[4];
353
431
  }
354
432
  let t1;
355
- if ($[8] !== className) {
433
+ if ($[5] !== className) {
356
434
  t1 = clsx(avatar_group_module_default.item, className);
357
- $[8] = className;
358
- $[9] = t1;
359
- } else t1 = $[9];
435
+ $[5] = className;
436
+ $[6] = t1;
437
+ } else t1 = $[6];
360
438
  let t2;
361
- if ($[10] !== name || $[11] !== src) {
362
- t2 = /* @__PURE__ */ jsx(Avatar$1, {
363
- name,
364
- src,
365
- size: LIST_AVATAR_SIZE
366
- });
367
- $[10] = name;
368
- $[11] = src;
369
- $[12] = t2;
370
- } else t2 = $[12];
371
- let t3;
372
- if ($[13] !== suffix) {
373
- t3 = suffix === void 0 ? null : /* @__PURE__ */ jsxs(Fragment, { children: [" ", /* @__PURE__ */ jsx("span", {
374
- className: avatar_group_module_default.suffix,
375
- children: suffix
376
- })] });
377
- $[13] = suffix;
378
- $[14] = t3;
379
- } else t3 = $[14];
380
- let t4;
381
- if ($[15] !== name || $[16] !== t3) {
382
- t4 = /* @__PURE__ */ jsxs("span", { children: [name, t3] });
383
- $[15] = name;
384
- $[16] = t3;
385
- $[17] = t4;
386
- } else t4 = $[17];
387
- let t5;
388
- if ($[18] !== t2 || $[19] !== t4) {
389
- t5 = /* @__PURE__ */ jsxs(Fragment, { children: [t2, t4] });
390
- $[18] = t2;
391
- $[19] = t4;
392
- $[20] = t5;
393
- } else t5 = $[20];
394
- let t6;
395
- if ($[21] !== props || $[22] !== t1 || $[23] !== t5) {
396
- t6 = {
439
+ if ($[7] !== props || $[8] !== t1) {
440
+ t2 = {
397
441
  ...props,
398
- className: t1,
399
- children: t5
442
+ className: t1
400
443
  };
401
- $[21] = props;
402
- $[22] = t1;
403
- $[23] = t5;
404
- $[24] = t6;
405
- } else t6 = $[24];
406
- let t7;
407
- if ($[25] !== ref || $[26] !== render || $[27] !== t6) {
408
- t7 = {
444
+ $[7] = props;
445
+ $[8] = t1;
446
+ $[9] = t2;
447
+ } else t2 = $[9];
448
+ let t3;
449
+ if ($[10] !== ref || $[11] !== render || $[12] !== t2) {
450
+ t3 = {
409
451
  defaultTagName: "li",
410
452
  render,
411
453
  ref,
412
- props: t6
454
+ props: t2
455
+ };
456
+ $[10] = ref;
457
+ $[11] = render;
458
+ $[12] = t2;
459
+ $[13] = t3;
460
+ } else t3 = $[13];
461
+ return useRender(t3);
462
+ };
463
+ /**
464
+ * A person's name in the list, with any `Suffix` after it.
465
+ *
466
+ * @example
467
+ * <AvatarGroup.Name>
468
+ * Ada Lovelace <AvatarGroup.Suffix>(you)</AvatarGroup.Suffix>
469
+ * </AvatarGroup.Name>
470
+ */
471
+ var Name = (t0) => {
472
+ const $ = c(8);
473
+ let props;
474
+ let ref;
475
+ let render;
476
+ if ($[0] !== t0) {
477
+ ({render, ref, ...props} = t0);
478
+ $[0] = t0;
479
+ $[1] = props;
480
+ $[2] = ref;
481
+ $[3] = render;
482
+ } else {
483
+ props = $[1];
484
+ ref = $[2];
485
+ render = $[3];
486
+ }
487
+ let t1;
488
+ if ($[4] !== props || $[5] !== ref || $[6] !== render) {
489
+ t1 = {
490
+ defaultTagName: "span",
491
+ render,
492
+ ref,
493
+ props
413
494
  };
414
- $[25] = ref;
415
- $[26] = render;
416
- $[27] = t6;
417
- $[28] = t7;
418
- } else t7 = $[28];
419
- return useRender(t7);
495
+ $[4] = props;
496
+ $[5] = ref;
497
+ $[6] = render;
498
+ $[7] = t1;
499
+ } else t1 = $[7];
500
+ return useRender(t1);
501
+ };
502
+ /**
503
+ * Muted words after a name, such as "(you)".
504
+ *
505
+ * @example
506
+ * <AvatarGroup.Suffix>(you)</AvatarGroup.Suffix>
507
+ */
508
+ var Suffix = (t0) => {
509
+ const $ = c(14);
510
+ let className;
511
+ let props;
512
+ let ref;
513
+ let render;
514
+ if ($[0] !== t0) {
515
+ ({render, className, ref, ...props} = t0);
516
+ $[0] = t0;
517
+ $[1] = className;
518
+ $[2] = props;
519
+ $[3] = ref;
520
+ $[4] = render;
521
+ } else {
522
+ className = $[1];
523
+ props = $[2];
524
+ ref = $[3];
525
+ render = $[4];
526
+ }
527
+ let t1;
528
+ if ($[5] !== className) {
529
+ t1 = clsx(avatar_group_module_default.suffix, className);
530
+ $[5] = className;
531
+ $[6] = t1;
532
+ } else t1 = $[6];
533
+ let t2;
534
+ if ($[7] !== props || $[8] !== t1) {
535
+ t2 = {
536
+ ...props,
537
+ className: t1
538
+ };
539
+ $[7] = props;
540
+ $[8] = t1;
541
+ $[9] = t2;
542
+ } else t2 = $[9];
543
+ let t3;
544
+ if ($[10] !== ref || $[11] !== render || $[12] !== t2) {
545
+ t3 = {
546
+ defaultTagName: "span",
547
+ render,
548
+ ref,
549
+ props: t2
550
+ };
551
+ $[10] = ref;
552
+ $[11] = render;
553
+ $[12] = t2;
554
+ $[13] = t3;
555
+ } else t3 = $[13];
556
+ return useRender(t3);
420
557
  };
421
558
  var Prefab = (t0) => {
422
- const $ = c(23);
423
- const { people, label, overflowLabel, currentUser, max: t1, size, className } = t0;
559
+ const $ = c(25);
560
+ const { people, label, overflowLabel, currentUser, max: t1, size: t2, className } = t0;
424
561
  const max = t1 === void 0 ? 4 : t1;
562
+ const size = t2 === void 0 ? DEFAULT_SIZE : t2;
425
563
  let T0;
426
564
  let overflow;
427
- let t2;
428
565
  let t3;
429
566
  let t4;
430
567
  let t5;
568
+ let t6;
431
569
  if ($[0] !== className || $[1] !== label || $[2] !== max || $[3] !== people || $[4] !== size) {
432
570
  const shown = people.slice(0, max);
433
571
  overflow = people.length - shown.length;
434
572
  T0 = Root;
435
- t2 = label;
436
- t3 = size;
437
- t4 = className;
438
- t5 = shown.map(_temp);
573
+ t3 = label;
574
+ t4 = size;
575
+ t5 = className;
576
+ let t7;
577
+ if ($[11] !== size) {
578
+ t7 = (person) => /* @__PURE__ */ jsx(Avatar, {
579
+ name: person.name,
580
+ children: /* @__PURE__ */ jsx(Avatar$1, {
581
+ name: person.name,
582
+ src: person.src,
583
+ size
584
+ })
585
+ }, person.id);
586
+ $[11] = size;
587
+ $[12] = t7;
588
+ } else t7 = $[12];
589
+ t6 = shown.map(t7);
439
590
  $[0] = className;
440
591
  $[1] = label;
441
592
  $[2] = max;
@@ -443,57 +594,62 @@ var Prefab = (t0) => {
443
594
  $[4] = size;
444
595
  $[5] = T0;
445
596
  $[6] = overflow;
446
- $[7] = t2;
447
- $[8] = t3;
448
- $[9] = t4;
449
- $[10] = t5;
597
+ $[7] = t3;
598
+ $[8] = t4;
599
+ $[9] = t5;
600
+ $[10] = t6;
450
601
  } else {
451
602
  T0 = $[5];
452
603
  overflow = $[6];
453
- t2 = $[7];
454
- t3 = $[8];
455
- t4 = $[9];
456
- t5 = $[10];
604
+ t3 = $[7];
605
+ t4 = $[8];
606
+ t5 = $[9];
607
+ t6 = $[10];
457
608
  }
458
- let t6;
459
- if ($[11] !== currentUser || $[12] !== overflow || $[13] !== overflowLabel || $[14] !== people) {
460
- t6 = overflow > 0 ? /* @__PURE__ */ jsx(Overflow, {
461
- count: overflow,
609
+ let t7;
610
+ if ($[13] !== currentUser || $[14] !== overflow || $[15] !== overflowLabel || $[16] !== people) {
611
+ t7 = overflow > 0 ? /* @__PURE__ */ jsxs(Popover.Root, { children: [/* @__PURE__ */ jsx(Overflow, {
462
612
  label: overflowLabel(overflow),
463
- children: /* @__PURE__ */ jsx(List, { children: people.map((person_0) => /* @__PURE__ */ jsx(ListItem, {
613
+ render: /* @__PURE__ */ jsx(Popover.Trigger, { openOnHover: true }),
614
+ children: /* @__PURE__ */ jsx(Count, { count: overflow })
615
+ }), /* @__PURE__ */ jsx(Popover.Portal, { children: /* @__PURE__ */ jsx(Popover.Positioner, {
616
+ side: "top",
617
+ sideOffset: 8,
618
+ children: /* @__PURE__ */ jsx(Popup, { children: /* @__PURE__ */ jsx(List, { children: people.map((person_0) => /* @__PURE__ */ jsxs(ListItem, { children: [/* @__PURE__ */ jsx(Avatar$1, {
464
619
  name: person_0.name,
465
620
  src: person_0.src,
466
- suffix: currentUser?.id === person_0.id ? currentUser.label : void 0
467
- }, person_0.id)) })
468
- }) : null;
469
- $[11] = currentUser;
470
- $[12] = overflow;
471
- $[13] = overflowLabel;
472
- $[14] = people;
473
- $[15] = t6;
474
- } else t6 = $[15];
475
- let t7;
476
- if ($[16] !== T0 || $[17] !== t2 || $[18] !== t3 || $[19] !== t4 || $[20] !== t5 || $[21] !== t6) {
477
- t7 = /* @__PURE__ */ jsxs(T0, {
478
- label: t2,
479
- size: t3,
480
- className: t4,
481
- children: [t5, t6]
621
+ size: LIST_AVATAR_SIZE
622
+ }), /* @__PURE__ */ jsxs(Name, { children: [person_0.name, currentUser?.id === person_0.id ? /* @__PURE__ */ jsxs(Fragment, { children: [" ", /* @__PURE__ */ jsx(Suffix, { children: currentUser.label })] }) : null] })] }, person_0.id)) }) })
623
+ }) })] }) : null;
624
+ $[13] = currentUser;
625
+ $[14] = overflow;
626
+ $[15] = overflowLabel;
627
+ $[16] = people;
628
+ $[17] = t7;
629
+ } else t7 = $[17];
630
+ let t8;
631
+ if ($[18] !== T0 || $[19] !== t3 || $[20] !== t4 || $[21] !== t5 || $[22] !== t6 || $[23] !== t7) {
632
+ t8 = /* @__PURE__ */ jsxs(T0, {
633
+ label: t3,
634
+ size: t4,
635
+ className: t5,
636
+ children: [t6, t7]
482
637
  });
483
- $[16] = T0;
484
- $[17] = t2;
485
- $[18] = t3;
486
- $[19] = t4;
487
- $[20] = t5;
488
- $[21] = t6;
489
- $[22] = t7;
490
- } else t7 = $[22];
491
- return t7;
638
+ $[18] = T0;
639
+ $[19] = t3;
640
+ $[20] = t4;
641
+ $[21] = t5;
642
+ $[22] = t6;
643
+ $[23] = t7;
644
+ $[24] = t8;
645
+ } else t8 = $[24];
646
+ return t8;
492
647
  };
493
648
  /**
494
649
  * A compact stack of avatars that folds everyone past `max` into a count. The
495
650
  * count is a button that lists everyone by name; the stack itself is content.
496
- * The parts hanging off it compose a group by hand.
651
+ * The parts hanging off it compose a group by hand, with the overflow's
652
+ * `Popover` composed around them.
497
653
  *
498
654
  * @example
499
655
  * <AvatarGroup
@@ -507,13 +663,11 @@ var AvatarGroup = Object.assign(Prefab, {
507
663
  Root,
508
664
  Avatar,
509
665
  Overflow,
666
+ Count,
667
+ Popup,
510
668
  List,
511
- ListItem
669
+ ListItem,
670
+ Name,
671
+ Suffix
512
672
  });
513
- function _temp(person) {
514
- return /* @__PURE__ */ jsx(Avatar, {
515
- name: person.name,
516
- src: person.src
517
- }, person.id);
518
- }
519
673
  export { AvatarGroup };