@igne-agency/react-web-ui 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (290) hide show
  1. package/README.md +32 -1
  2. package/dist/components/accordion/accordion.css +24 -19
  3. package/dist/components/accordion/accordion.d.ts +19 -3
  4. package/dist/components/accordion/accordion.js +86 -32
  5. package/dist/components/accordion/accordion.module.js +8 -8
  6. package/dist/components/active-filters/active-filter-describers.d.ts +1 -1
  7. package/dist/components/active-filters/active-filter-describers.js +1 -1
  8. package/dist/components/active-filters/active-filters.d.ts +35 -2
  9. package/dist/components/active-filters/active-filters.js +57 -52
  10. package/dist/components/active-filters/index.js +2 -2
  11. package/dist/components/attachment-tile/attachment-preview.d.ts +11 -9
  12. package/dist/components/attachment-tile/attachment-preview.js +102 -68
  13. package/dist/components/attachment-tile/attachment-tile.css +22 -13
  14. package/dist/components/attachment-tile/attachment-tile.d.ts +51 -6
  15. package/dist/components/attachment-tile/attachment-tile.js +209 -85
  16. package/dist/components/attachment-tile/attachment-tile.module.js +10 -10
  17. package/dist/components/attachment-tile/index.d.ts +1 -1
  18. package/dist/components/attachment-tile/index.js +2 -2
  19. package/dist/components/avatar/avatar.d.ts +5 -5
  20. package/dist/components/avatar/avatar.js +64 -37
  21. package/dist/components/avatar-group/avatar-group.js +2 -2
  22. package/dist/components/badge/badge.js +1 -1
  23. package/dist/components/breadcrumbs/breadcrumbs.d.ts +22 -7
  24. package/dist/components/breadcrumbs/breadcrumbs.js +189 -170
  25. package/dist/components/button/button.d.ts +2 -3
  26. package/dist/components/button/button.js +58 -77
  27. package/dist/components/button/close-button.d.ts +4 -2
  28. package/dist/components/button/close-button.js +9 -9
  29. package/dist/components/checkbox-field/checkbox-field.d.ts +17 -3
  30. package/dist/components/checkbox-field/checkbox-field.js +108 -131
  31. package/dist/components/checkbox-field/checkbox.css +26 -34
  32. package/dist/components/checkbox-field/checkbox.d.ts +51 -8
  33. package/dist/components/checkbox-field/checkbox.js +221 -57
  34. package/dist/components/checkbox-field/checkbox.module.js +6 -8
  35. package/dist/components/checkbox-field/index.d.ts +0 -1
  36. package/dist/components/checkbox-field/index.js +1 -2
  37. package/dist/components/checkbox-field/tsf-checkbox-field.d.ts +2 -2
  38. package/dist/components/checkbox-group-field/checkbox-group-field.d.ts +4 -1
  39. package/dist/components/checkbox-group-field/checkbox-group-field.js +54 -50
  40. package/dist/components/checkbox-group-field/checkbox-group.d.ts +7 -2
  41. package/dist/components/checkbox-group-field/checkbox-group.js +8 -3
  42. package/dist/components/collapsible/collapsible.css +23 -18
  43. package/dist/components/collapsible/collapsible.d.ts +18 -3
  44. package/dist/components/collapsible/collapsible.js +85 -32
  45. package/dist/components/collapsible/collapsible.module.js +7 -7
  46. package/dist/components/combobox-field/combobox-field.d.ts +9 -1
  47. package/dist/components/combobox-field/combobox-field.js +195 -175
  48. package/dist/components/combobox-field/combobox-items.d.ts +2 -2
  49. package/dist/components/combobox-field/combobox-items.js +4 -4
  50. package/dist/components/combobox-field/combobox.css +99 -96
  51. package/dist/components/combobox-field/combobox.d.ts +94 -15
  52. package/dist/components/combobox-field/combobox.js +484 -159
  53. package/dist/components/combobox-field/combobox.module.js +21 -21
  54. package/dist/components/combobox-field/index.d.ts +0 -1
  55. package/dist/components/combobox-field/selection.d.ts +4 -1
  56. package/dist/components/combobox-field/value-state-view.css +7 -3
  57. package/dist/components/combobox-field/value-state-view.d.ts +4 -2
  58. package/dist/components/combobox-field/value-state-view.js +15 -15
  59. package/dist/components/combobox-field/value-state-view.module.js +6 -4
  60. package/dist/components/composer/composer-attachments.d.ts +11 -3
  61. package/dist/components/composer/composer-attachments.js +61 -47
  62. package/dist/components/composer/composer-editor.d.ts +2 -1
  63. package/dist/components/composer/composer-editor.js +79 -71
  64. package/dist/components/composer/composer-mentions.js +2 -2
  65. package/dist/components/composer/composer.d.ts +42 -21
  66. package/dist/components/composer/composer.js +201 -58
  67. package/dist/components/composer/mention-text.js +3 -3
  68. package/dist/components/confirm-dialog/confirm-dialog.d.ts +8 -7
  69. package/dist/components/confirm-dialog/confirm-dialog.js +10 -9
  70. package/dist/components/conversation/conversation.context.d.ts +0 -5
  71. package/dist/components/conversation/conversation.d.ts +63 -29
  72. package/dist/components/conversation/conversation.js +193 -82
  73. package/dist/components/conversation/index.d.ts +1 -1
  74. package/dist/components/date-field/date-field.d.ts +10 -4
  75. package/dist/components/date-field/date-field.js +57 -43
  76. package/dist/components/date-field/date-input.d.ts +20 -3
  77. package/dist/components/date-field/date-input.js +28 -13
  78. package/dist/components/date-field/index.d.ts +1 -1
  79. package/dist/components/date-field/tsf-date-field.d.ts +1 -1
  80. package/dist/components/date-field/tsf-date-field.js +1 -1
  81. package/dist/components/date-range-field/date-range-field.d.ts +8 -4
  82. package/dist/components/date-range-field/date-range-field.js +57 -45
  83. package/dist/components/date-range-field/date-range-input.d.ts +20 -3
  84. package/dist/components/date-range-field/date-range-input.js +27 -12
  85. package/dist/components/date-range-field/tsf-date-range-field.d.ts +1 -1
  86. package/dist/components/date-range-field/tsf-date-range-field.js +1 -1
  87. package/dist/components/detail-list/detail-list.d.ts +28 -27
  88. package/dist/components/detail-list/detail-list.js +177 -121
  89. package/dist/components/dialog/dialog.d.ts +47 -27
  90. package/dist/components/dialog/dialog.js +101 -38
  91. package/dist/components/divider/divider.js +1 -1
  92. package/dist/components/drawer/drawer.d.ts +48 -30
  93. package/dist/components/drawer/drawer.js +113 -41
  94. package/dist/components/email-field/email-field.d.ts +5 -3
  95. package/dist/components/email-field/email-field.js +1 -3
  96. package/dist/components/email-field/tsf-email-field.d.ts +3 -2
  97. package/dist/components/empty-message/empty-message.d.ts +3 -3
  98. package/dist/components/empty-message/empty-message.js +3 -3
  99. package/dist/components/error-boundary/error-boundary.d.ts +5 -2
  100. package/dist/components/error-boundary/error-boundary.js +2 -3
  101. package/dist/components/error-message/error-message.d.ts +1 -1
  102. package/dist/components/error-message/error-message.js +1 -1
  103. package/dist/components/error-text/error-text.js +3 -3
  104. package/dist/components/field/field.d.ts +5 -5
  105. package/dist/components/field/field.js +9 -9
  106. package/dist/components/field/index.js +2 -2
  107. package/dist/components/field/input-parts.js +1 -1
  108. package/dist/components/field-placeholder/field-placeholder.d.ts +4 -1
  109. package/dist/components/field-placeholder/field-placeholder.js +41 -26
  110. package/dist/components/fieldset/field-group.js +1 -1
  111. package/dist/components/fieldset/fieldset-root.js +1 -1
  112. package/dist/components/fieldset/fieldset.js +1 -1
  113. package/dist/components/file-field/file-field.css +19 -15
  114. package/dist/components/file-field/file-field.d.ts +10 -1
  115. package/dist/components/file-field/file-field.js +130 -109
  116. package/dist/components/file-field/file-field.module.js +6 -4
  117. package/dist/components/file-field/file-input.d.ts +32 -9
  118. package/dist/components/file-field/file-input.js +94 -74
  119. package/dist/components/filter-bar/filter-bar.d.ts +79 -51
  120. package/dist/components/filter-bar/filter-bar.js +552 -216
  121. package/dist/components/form/form.d.ts +4 -6
  122. package/dist/components/form/form.js +6 -8
  123. package/dist/components/icon/icon.d.ts +5 -10
  124. package/dist/components/icon/icon.js +4 -6
  125. package/dist/components/link/link.js +1 -1
  126. package/dist/components/link-button/link-button.d.ts +1 -2
  127. package/dist/components/link-button/link-button.js +12 -22
  128. package/dist/components/loading-message/loading-message.d.ts +2 -2
  129. package/dist/components/loading-message/loading-message.js +1 -1
  130. package/dist/components/locale-provider/locale-provider.js +1 -1
  131. package/dist/components/menu/menu.d.ts +40 -22
  132. package/dist/components/menu/menu.js +100 -40
  133. package/dist/components/nav/nav-context.d.ts +0 -1
  134. package/dist/components/nav/nav-context.js +1 -2
  135. package/dist/components/nav/nav-item-view.d.ts +7 -7
  136. package/dist/components/nav/nav-item-view.js +27 -51
  137. package/dist/components/nav/nav.css +72 -60
  138. package/dist/components/nav/nav.d.ts +15 -8
  139. package/dist/components/nav/nav.js +105 -52
  140. package/dist/components/nav/nav.module.js +14 -14
  141. package/dist/components/number-field/number-field.d.ts +7 -1
  142. package/dist/components/number-field/number-field.js +98 -82
  143. package/dist/components/number-field/number-input.d.ts +53 -4
  144. package/dist/components/number-field/number-input.js +68 -21
  145. package/dist/components/number-field/tsf-number-field.d.ts +1 -1
  146. package/dist/components/number-field/tsf-number-field.js +1 -1
  147. package/dist/components/otp-field/otp-input.d.ts +25 -0
  148. package/dist/components/otp-field/otp-input.js +26 -1
  149. package/dist/components/pagination/pagination.d.ts +82 -23
  150. package/dist/components/pagination/pagination.js +656 -229
  151. package/dist/components/password-field/password-field.d.ts +7 -1
  152. package/dist/components/password-field/password-field.js +117 -126
  153. package/dist/components/password-field/password-strength.js +1 -1
  154. package/dist/components/password-field/tsf-password-field.d.ts +1 -1
  155. package/dist/components/password-field/tsf-password-field.js +1 -1
  156. package/dist/components/photo-field/photo-field.d.ts +17 -3
  157. package/dist/components/photo-field/photo-field.js +168 -89
  158. package/dist/components/photo-field/photo-input-context.d.ts +25 -0
  159. package/dist/components/photo-field/photo-input-context.js +14 -0
  160. package/dist/components/photo-field/photo-input.d.ts +58 -23
  161. package/dist/components/photo-field/photo-input.js +459 -261
  162. package/dist/components/popover/popover.d.ts +55 -23
  163. package/dist/components/popover/popover.js +205 -61
  164. package/dist/components/radio-group-field/radio-group.js +1 -1
  165. package/dist/components/search-field/search-field.d.ts +7 -5
  166. package/dist/components/search-field/search-field.js +4 -6
  167. package/dist/components/search-field/tsf-search-field.d.ts +1 -1
  168. package/dist/components/search-field/tsf-search-field.js +1 -1
  169. package/dist/components/segmented-control-field/segmented-control.js +1 -1
  170. package/dist/components/select-field/select-field.d.ts +7 -1
  171. package/dist/components/select-field/select-field.js +151 -139
  172. package/dist/components/select-field/select.d.ts +28 -6
  173. package/dist/components/select-field/select.js +234 -149
  174. package/dist/components/skeleton/skeleton.js +1 -1
  175. package/dist/components/spinner/spinner.css +47 -1
  176. package/dist/components/spinner/spinner.js +28 -11
  177. package/dist/components/spinner/spinner.module.js +18 -3
  178. package/dist/components/stale/stale.d.ts +17 -21
  179. package/dist/components/stale/stale.js +307 -129
  180. package/dist/components/status-message/status-message.css +22 -21
  181. package/dist/components/status-message/status-message.d.ts +10 -5
  182. package/dist/components/status-message/status-message.js +20 -24
  183. package/dist/components/status-message/status-message.module.js +6 -6
  184. package/dist/components/status-message/status-preset.d.ts +4 -5
  185. package/dist/components/status-message/status-preset.js +3 -3
  186. package/dist/components/switch-field/switch.js +1 -1
  187. package/dist/components/tabs/tabs.d.ts +51 -28
  188. package/dist/components/tabs/tabs.js +219 -144
  189. package/dist/components/tag/tag.css +23 -21
  190. package/dist/components/tag/tag.d.ts +17 -15
  191. package/dist/components/tag/tag.js +140 -65
  192. package/dist/components/tag/tag.module.js +3 -3
  193. package/dist/components/tag-group/tag-group.css +30 -27
  194. package/dist/components/tag-group/tag-group.d.ts +10 -4
  195. package/dist/components/tag-group/tag-group.js +47 -35
  196. package/dist/components/tag-group/tag-group.module.js +4 -4
  197. package/dist/components/text-field/text-field.d.ts +14 -3
  198. package/dist/components/text-field/text-field.js +154 -133
  199. package/dist/components/text-field/text-input.d.ts +89 -3
  200. package/dist/components/text-field/text-input.js +184 -70
  201. package/dist/components/textarea-field/textarea.js +1 -1
  202. package/dist/components/time-field/time-input.d.ts +6 -0
  203. package/dist/components/time-field/time-input.js +6 -0
  204. package/dist/components/time-zone-provider/time-zone-provider.js +1 -1
  205. package/dist/components/toast/index.js +2 -2
  206. package/dist/components/toast/toast-provider.css +38 -34
  207. package/dist/components/toast/toast-provider.d.ts +65 -3
  208. package/dist/components/toast/toast-provider.js +313 -148
  209. package/dist/components/toast/toast-provider.module.js +11 -17
  210. package/dist/components/toast/toast.d.ts +5 -1
  211. package/dist/components/toast/toast.js +2 -1
  212. package/dist/components/toggle-group-field/toggle-group.js +1 -1
  213. package/dist/components/tooltip/tooltip.d.ts +6 -6
  214. package/dist/components/tooltip/tooltip.js +7 -7
  215. package/dist/data-table/data-table-content.d.ts +18 -10
  216. package/dist/data-table/data-table-content.js +145 -290
  217. package/dist/data-table/data-table-context.d.ts +4 -2
  218. package/dist/data-table/data-table-context.js +1 -1
  219. package/dist/data-table/data-table-parts.d.ts +99 -0
  220. package/dist/data-table/data-table-parts.js +1182 -0
  221. package/dist/data-table/data-table-selection.d.ts +7 -3
  222. package/dist/data-table/data-table-selection.js +62 -37
  223. package/dist/data-table/data-table.css +100 -95
  224. package/dist/data-table/data-table.d.ts +49 -25
  225. package/dist/data-table/data-table.js +95 -83
  226. package/dist/data-table/data-table.module.js +34 -34
  227. package/dist/data-table/index.d.ts +2 -1
  228. package/dist/data-table/index.js +2 -1
  229. package/dist/data-view/use-data-view.d.ts +2 -2
  230. package/dist/data-view/use-data-view.js +2 -2
  231. package/dist/index.js +7 -8
  232. package/dist/lib/calendar/calendar-navigation.d.ts +9 -2
  233. package/dist/lib/calendar/calendar-navigation.js +72 -73
  234. package/dist/lib/calendar/calendar-year.d.ts +4 -3
  235. package/dist/lib/calendar/calendar-year.js +137 -156
  236. package/dist/lib/calendar/temporal.d.ts +18 -12
  237. package/dist/lib/calendar/temporal.js +191 -147
  238. package/dist/lib/table-storage.d.ts +2 -2
  239. package/dist/lib/table-storage.js +2 -2
  240. package/dist/lib/unsaved-changes/leave-guard.js +1 -1
  241. package/dist/terrazzo/index.d.ts +16 -0
  242. package/dist/terrazzo/index.js +94 -2
  243. package/dist/tokens.css +71 -69
  244. package/package.json +3 -2
  245. package/tokens/ref.tokens.json +0 -30
  246. package/tokens/sys.tokens.json +0 -7
  247. package/dist/assets/spinner.js +0 -28
  248. package/dist/components/checkbox-field/checkbox-glyph.d.ts +0 -12
  249. package/dist/components/checkbox-field/checkbox-glyph.js +0 -38
  250. package/dist/components/combobox-field/combobox-popup-body.d.ts +0 -34
  251. package/dist/components/combobox-field/combobox-popup-body.js +0 -142
  252. package/dist/components/conversation/conversation.context.js +0 -4
  253. package/dist/vendor/@material-design-icons/svg/outlined/add.js +0 -12
  254. package/dist/vendor/@material-design-icons/svg/outlined/arrow_downward.js +0 -12
  255. package/dist/vendor/@material-design-icons/svg/outlined/arrow_forward.js +0 -12
  256. package/dist/vendor/@material-design-icons/svg/outlined/arrow_upward.js +0 -12
  257. package/dist/vendor/@material-design-icons/svg/outlined/attach_file.js +0 -12
  258. package/dist/vendor/@material-design-icons/svg/outlined/block.js +0 -12
  259. package/dist/vendor/@material-design-icons/svg/outlined/calendar_today.js +0 -12
  260. package/dist/vendor/@material-design-icons/svg/outlined/check.js +0 -12
  261. package/dist/vendor/@material-design-icons/svg/outlined/check_circle.js +0 -12
  262. package/dist/vendor/@material-design-icons/svg/outlined/chevron_left.js +0 -12
  263. package/dist/vendor/@material-design-icons/svg/outlined/chevron_right.js +0 -12
  264. package/dist/vendor/@material-design-icons/svg/outlined/close.js +0 -12
  265. package/dist/vendor/@material-design-icons/svg/outlined/content_copy.js +0 -12
  266. package/dist/vendor/@material-design-icons/svg/outlined/date_range.js +0 -12
  267. package/dist/vendor/@material-design-icons/svg/outlined/description.js +0 -12
  268. package/dist/vendor/@material-design-icons/svg/outlined/download.js +0 -12
  269. package/dist/vendor/@material-design-icons/svg/outlined/error.js +0 -12
  270. package/dist/vendor/@material-design-icons/svg/outlined/error_outline.js +0 -12
  271. package/dist/vendor/@material-design-icons/svg/outlined/expand_less.js +0 -12
  272. package/dist/vendor/@material-design-icons/svg/outlined/expand_more.js +0 -12
  273. package/dist/vendor/@material-design-icons/svg/outlined/filter_alt.js +0 -12
  274. package/dist/vendor/@material-design-icons/svg/outlined/filter_alt_off.js +0 -12
  275. package/dist/vendor/@material-design-icons/svg/outlined/first_page.js +0 -12
  276. package/dist/vendor/@material-design-icons/svg/outlined/info.js +0 -12
  277. package/dist/vendor/@material-design-icons/svg/outlined/keyboard_arrow_down.js +0 -12
  278. package/dist/vendor/@material-design-icons/svg/outlined/last_page.js +0 -12
  279. package/dist/vendor/@material-design-icons/svg/outlined/mail.js +0 -12
  280. package/dist/vendor/@material-design-icons/svg/outlined/more_horiz.js +0 -12
  281. package/dist/vendor/@material-design-icons/svg/outlined/photo_camera.js +0 -12
  282. package/dist/vendor/@material-design-icons/svg/outlined/remove.js +0 -12
  283. package/dist/vendor/@material-design-icons/svg/outlined/restart_alt.js +0 -12
  284. package/dist/vendor/@material-design-icons/svg/outlined/restore.js +0 -12
  285. package/dist/vendor/@material-design-icons/svg/outlined/search.js +0 -12
  286. package/dist/vendor/@material-design-icons/svg/outlined/unfold_more.js +0 -12
  287. package/dist/vendor/@material-design-icons/svg/outlined/upload_file.js +0 -12
  288. package/dist/vendor/@material-design-icons/svg/outlined/visibility.js +0 -12
  289. package/dist/vendor/@material-design-icons/svg/outlined/visibility_off.js +0 -12
  290. package/dist/vendor/@material-design-icons/svg/outlined/warning_amber.js +0 -12
@@ -1,194 +1,269 @@
1
- import { useRequiredContext } from "../../lib/use-required-context.js";
2
1
  import { Badge } from "../badge/badge.js";
3
2
  import tabs_module_default from "./tabs.module.js";
4
3
  import { c } from "react/compiler-runtime";
5
- import { createContext } from "react";
6
- import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
7
4
  import { clsx } from "clsx";
5
+ import { jsx } from "react/jsx-runtime";
6
+ import { createContext, use } from "react";
8
7
  import { Tabs } from "@base-ui/react/tabs";
9
8
  // src/components/tabs/tabs.tsx
10
- var TabsContext = createContext(null);
11
- var useTabs = () => {
12
- return useRequiredContext(TabsContext, "Tabs parts must be rendered inside Tabs.Root.");
13
- };
9
+ var InkCopyContext = createContext(false);
10
+ var ListChildrenContext = createContext(null);
11
+ /** The tabs and the panels they open. */
14
12
  var Root = (t0) => {
15
- const $ = c(13);
16
- const { tabs, value, defaultValue, onValueChange, className, children } = t0;
13
+ const $ = c(16);
14
+ let className;
15
+ let defaultValue;
16
+ let onValueChange;
17
+ let props;
18
+ let value;
19
+ if ($[0] !== t0) {
20
+ ({value, defaultValue, onValueChange, className, ...props} = t0);
21
+ $[0] = t0;
22
+ $[1] = className;
23
+ $[2] = defaultValue;
24
+ $[3] = onValueChange;
25
+ $[4] = props;
26
+ $[5] = value;
27
+ } else {
28
+ className = $[1];
29
+ defaultValue = $[2];
30
+ onValueChange = $[3];
31
+ props = $[4];
32
+ value = $[5];
33
+ }
17
34
  let t1;
18
- if ($[0] !== onValueChange) {
35
+ if ($[6] !== onValueChange) {
19
36
  t1 = (next) => {
20
37
  if (typeof next === "string") onValueChange?.(next);
21
38
  };
22
- $[0] = onValueChange;
23
- $[1] = t1;
24
- } else t1 = $[1];
39
+ $[6] = onValueChange;
40
+ $[7] = t1;
41
+ } else t1 = $[7];
25
42
  let t2;
26
- if ($[2] !== className) {
43
+ if ($[8] !== className) {
27
44
  t2 = clsx(tabs_module_default.root, className);
28
- $[2] = className;
29
- $[3] = t2;
30
- } else t2 = $[3];
45
+ $[8] = className;
46
+ $[9] = t2;
47
+ } else t2 = $[9];
31
48
  let t3;
32
- if ($[4] !== children || $[5] !== defaultValue || $[6] !== t1 || $[7] !== t2 || $[8] !== value) {
49
+ if ($[10] !== defaultValue || $[11] !== props || $[12] !== t1 || $[13] !== t2 || $[14] !== value) {
33
50
  t3 = /* @__PURE__ */ jsx(Tabs.Root, {
51
+ ...props,
34
52
  value,
35
53
  defaultValue,
36
54
  onValueChange: t1,
37
- className: t2,
38
- children
55
+ className: t2
39
56
  });
40
- $[4] = children;
41
- $[5] = defaultValue;
57
+ $[10] = defaultValue;
58
+ $[11] = props;
59
+ $[12] = t1;
60
+ $[13] = t2;
61
+ $[14] = value;
62
+ $[15] = t3;
63
+ } else t3 = $[15];
64
+ return t3;
65
+ };
66
+ /** The row of tabs, scrolling sideways when it outgrows its room. */
67
+ var List = (t0) => {
68
+ const $ = c(14);
69
+ let children;
70
+ let className;
71
+ let label;
72
+ let props;
73
+ if ($[0] !== t0) {
74
+ ({label, className, children, ...props} = t0);
75
+ $[0] = t0;
76
+ $[1] = children;
77
+ $[2] = className;
78
+ $[3] = label;
79
+ $[4] = props;
80
+ } else {
81
+ children = $[1];
82
+ className = $[2];
83
+ label = $[3];
84
+ props = $[4];
85
+ }
86
+ let t1;
87
+ if ($[5] !== className) {
88
+ t1 = clsx(tabs_module_default.list, className);
89
+ $[5] = className;
42
90
  $[6] = t1;
43
- $[7] = t2;
44
- $[8] = value;
45
- $[9] = t3;
46
- } else t3 = $[9];
47
- let t4;
48
- if ($[10] !== t3 || $[11] !== tabs) {
49
- t4 = /* @__PURE__ */ jsx(TabsContext, {
50
- value: tabs,
51
- children: t3
91
+ } else t1 = $[6];
92
+ let t2;
93
+ if ($[7] !== children) {
94
+ t2 = /* @__PURE__ */ jsx(ListChildrenContext, {
95
+ value: children,
96
+ children
97
+ });
98
+ $[7] = children;
99
+ $[8] = t2;
100
+ } else t2 = $[8];
101
+ let t3;
102
+ if ($[9] !== label || $[10] !== props || $[11] !== t1 || $[12] !== t2) {
103
+ t3 = /* @__PURE__ */ jsx("div", {
104
+ className: tabs_module_default.scroller,
105
+ children: /* @__PURE__ */ jsx(Tabs.List, {
106
+ ...props,
107
+ "aria-label": label,
108
+ className: t1,
109
+ children: t2
110
+ })
52
111
  });
53
- $[10] = t3;
54
- $[11] = tabs;
55
- $[12] = t4;
56
- } else t4 = $[12];
57
- return t4;
112
+ $[9] = label;
113
+ $[10] = props;
114
+ $[11] = t1;
115
+ $[12] = t2;
116
+ $[13] = t3;
117
+ } else t3 = $[13];
118
+ return t3;
58
119
  };
59
- var TabContent = (t0) => {
120
+ /** One tab: its label, and a `Count` where it has one. */
121
+ var Tab = (t0) => {
60
122
  const $ = c(5);
61
- const { tab } = t0;
62
- let t1;
63
- if ($[0] !== tab.count) {
64
- t1 = tab.count === void 0 ? null : /* @__PURE__ */ jsx(Badge, {
65
- tone: "neutral",
66
- variant: "subtle",
67
- children: tab.count
68
- });
69
- $[0] = tab.count;
70
- $[1] = t1;
71
- } else t1 = $[1];
72
- let t2;
73
- if ($[2] !== t1 || $[3] !== tab.label) {
74
- t2 = /* @__PURE__ */ jsxs(Fragment$1, { children: [tab.label, t1] });
75
- $[2] = t1;
76
- $[3] = tab.label;
77
- $[4] = t2;
78
- } else t2 = $[4];
79
- return t2;
123
+ let children;
124
+ let className;
125
+ let props;
126
+ let value;
127
+ if ($[0] !== t0) {
128
+ ({value, className, children, ...props} = t0);
129
+ $[0] = t0;
130
+ $[1] = children;
131
+ $[2] = className;
132
+ $[3] = props;
133
+ $[4] = value;
134
+ } else {
135
+ children = $[1];
136
+ className = $[2];
137
+ props = $[3];
138
+ value = $[4];
139
+ }
140
+ return use(InkCopyContext) ? /* @__PURE__ */ jsx("span", {
141
+ className: clsx(tabs_module_default.tab, className),
142
+ children
143
+ }) : /* @__PURE__ */ jsx(Tabs.Tab, {
144
+ ...props,
145
+ value,
146
+ className: clsx(tabs_module_default.tab, className),
147
+ children
148
+ });
80
149
  };
81
- var Bar = (t0) => {
82
- const $ = c(15);
83
- const { label, className } = t0;
84
- const tabs = useTabs();
150
+ /** A count after a tab's label, as a neutral badge. */
151
+ var Count = (t0) => {
152
+ const $ = c(8);
153
+ let props;
85
154
  let t1;
86
- if ($[0] !== className) {
87
- t1 = clsx(tabs_module_default.scroller, className);
88
- $[0] = className;
89
- $[1] = t1;
90
- } else t1 = $[1];
91
155
  let t2;
92
- if ($[2] !== tabs) {
93
- t2 = tabs.map(_temp);
94
- $[2] = tabs;
156
+ if ($[0] !== t0) {
157
+ ({tone: t1, variant: t2, ...props} = t0);
158
+ $[0] = t0;
159
+ $[1] = props;
160
+ $[2] = t1;
95
161
  $[3] = t2;
96
- } else t2 = $[3];
162
+ } else {
163
+ props = $[1];
164
+ t1 = $[2];
165
+ t2 = $[3];
166
+ }
167
+ const tone = t1 === void 0 ? "neutral" : t1;
168
+ const variant = t2 === void 0 ? "subtle" : t2;
97
169
  let t3;
98
- if ($[4] !== tabs) {
99
- t3 = tabs.map(_temp2);
100
- $[4] = tabs;
101
- $[5] = t3;
102
- } else t3 = $[5];
103
- let t4;
104
- if ($[6] !== t3) {
105
- t4 = /* @__PURE__ */ jsx(Tabs.Indicator, {
106
- className: tabs_module_default.indicator,
107
- children: /* @__PURE__ */ jsx("span", {
108
- className: tabs_module_default.indicatorLabels,
109
- "aria-hidden": "true",
110
- children: t3
111
- })
170
+ if ($[4] !== props || $[5] !== tone || $[6] !== variant) {
171
+ t3 = /* @__PURE__ */ jsx(Badge, {
172
+ tone,
173
+ variant,
174
+ ...props
112
175
  });
113
- $[6] = t3;
114
- $[7] = t4;
115
- } else t4 = $[7];
116
- let t5;
117
- if ($[8] !== label || $[9] !== t2 || $[10] !== t4) {
118
- t5 = /* @__PURE__ */ jsxs(Tabs.List, {
119
- className: tabs_module_default.list,
120
- "aria-label": label,
121
- children: [t2, t4]
122
- });
123
- $[8] = label;
124
- $[9] = t2;
125
- $[10] = t4;
126
- $[11] = t5;
127
- } else t5 = $[11];
128
- let t6;
129
- if ($[12] !== t1 || $[13] !== t5) {
130
- t6 = /* @__PURE__ */ jsx("div", {
131
- className: t1,
132
- children: t5
133
- });
134
- $[12] = t1;
135
- $[13] = t5;
136
- $[14] = t6;
137
- } else t6 = $[14];
138
- return t6;
176
+ $[4] = props;
177
+ $[5] = tone;
178
+ $[6] = variant;
179
+ $[7] = t3;
180
+ } else t3 = $[7];
181
+ return t3;
139
182
  };
183
+ /**
184
+ * The pill that slides to the open tab, inside the `List`. It holds a copy of
185
+ * the list's tabs, so the open tab's label turns over as the pill arrives.
186
+ */
187
+ var Indicator = (t0) => {
188
+ const $ = c(3);
189
+ let className;
190
+ let props;
191
+ if ($[0] !== t0) {
192
+ ({className, ...props} = t0);
193
+ $[0] = t0;
194
+ $[1] = className;
195
+ $[2] = props;
196
+ } else {
197
+ className = $[1];
198
+ props = $[2];
199
+ }
200
+ const tabs = use(ListChildrenContext);
201
+ return use(InkCopyContext) ? null : /* @__PURE__ */ jsx(Tabs.Indicator, {
202
+ ...props,
203
+ className: clsx(tabs_module_default.indicator, className),
204
+ children: /* @__PURE__ */ jsx("span", {
205
+ className: tabs_module_default.indicatorLabels,
206
+ "aria-hidden": "true",
207
+ children: /* @__PURE__ */ jsx(InkCopyContext, {
208
+ value: true,
209
+ children: tabs
210
+ })
211
+ })
212
+ });
213
+ };
214
+ /** What one tab opens. */
140
215
  var Panel = (t0) => {
141
- const $ = c(6);
142
- const { value, className, children } = t0;
216
+ const $ = c(8);
217
+ let className;
218
+ let props;
219
+ if ($[0] !== t0) {
220
+ ({className, ...props} = t0);
221
+ $[0] = t0;
222
+ $[1] = className;
223
+ $[2] = props;
224
+ } else {
225
+ className = $[1];
226
+ props = $[2];
227
+ }
143
228
  let t1;
144
- if ($[0] !== className) {
229
+ if ($[3] !== className) {
145
230
  t1 = clsx(tabs_module_default.panel, className);
146
- $[0] = className;
147
- $[1] = t1;
148
- } else t1 = $[1];
231
+ $[3] = className;
232
+ $[4] = t1;
233
+ } else t1 = $[4];
149
234
  let t2;
150
- if ($[2] !== children || $[3] !== t1 || $[4] !== value) {
235
+ if ($[5] !== props || $[6] !== t1) {
151
236
  t2 = /* @__PURE__ */ jsx(Tabs.Panel, {
152
- value,
153
- className: t1,
154
- children
237
+ ...props,
238
+ className: t1
155
239
  });
156
- $[2] = children;
157
- $[3] = t1;
158
- $[4] = value;
159
- $[5] = t2;
160
- } else t2 = $[5];
240
+ $[5] = props;
241
+ $[6] = t1;
242
+ $[7] = t2;
243
+ } else t2 = $[7];
161
244
  return t2;
162
245
  };
163
246
  /**
164
- * In-page tabs over base-ui's `Tabs`: `Root` takes the tabs, `Bar` lays them
165
- * out with a pill that slides to the open one, and each `Panel` holds what its
166
- * tab opens. Tabs that lead to pages are a horizontal `Nav`.
247
+ * In-page tabs over base-ui's `Tabs`, with a pill that slides to the open tab.
248
+ * Tabs that lead to pages are a horizontal `Nav`.
167
249
  *
168
250
  * @example
169
- * <Tabs.Root tabs={[{ value: "details", label: "Details" }, { value: "history", label: "History", count: 3 }]} defaultValue="details">
170
- * <Tabs.Bar label="Declaration" />
251
+ * <Tabs.Root defaultValue="details">
252
+ * <Tabs.List label="Invoice">
253
+ * <Tabs.Tab value="details">Details</Tabs.Tab>
254
+ * <Tabs.Tab value="history">History<Tabs.Count>3</Tabs.Count></Tabs.Tab>
255
+ * <Tabs.Indicator />
256
+ * </Tabs.List>
171
257
  * <Tabs.Panel value="details">…</Tabs.Panel>
172
258
  * <Tabs.Panel value="history">…</Tabs.Panel>
173
259
  * </Tabs.Root>
174
260
  */
175
261
  var Tabs$1 = {
176
262
  Root,
177
- Bar,
263
+ List,
264
+ Tab,
265
+ Count,
266
+ Indicator,
178
267
  Panel
179
268
  };
180
- function _temp(tab) {
181
- return /* @__PURE__ */ jsx(Tabs.Tab, {
182
- value: tab.value,
183
- disabled: tab.disabled,
184
- className: tabs_module_default.tab,
185
- children: /* @__PURE__ */ jsx(TabContent, { tab })
186
- }, tab.value);
187
- }
188
- function _temp2(tab_0) {
189
- return /* @__PURE__ */ jsx("span", {
190
- className: tabs_module_default.tab,
191
- children: /* @__PURE__ */ jsx(TabContent, { tab: tab_0 })
192
- }, tab_0.value);
193
- }
194
269
  export { Tabs$1 as Tabs };
@@ -1,89 +1,89 @@
1
1
  @layer kit.reset, kit.base, kit.components;
2
2
  @layer kit.components {
3
- ._root_1lbu9_3[data-variant=subtle] {
3
+ ._root_10znj_3[data-variant=subtle] {
4
4
  --tag-bg: var(--sys-color-neutral-bg);
5
5
  --tag-fg: var(--sys-color-neutral-fg);
6
6
  --tag-border: transparent;
7
7
  }
8
- ._root_1lbu9_3[data-variant=solid] {
8
+ ._root_10znj_3[data-variant=solid] {
9
9
  --tag-bg: var(--sys-color-neutral-fg);
10
10
  --tag-fg: var(--sys-color-neutral-bg);
11
11
  --tag-border: transparent;
12
12
  }
13
- ._root_1lbu9_3[data-variant=outline] {
13
+ ._root_10znj_3[data-variant=outline] {
14
14
  --tag-bg: transparent;
15
15
  --tag-fg: var(--sys-color-neutral-fg);
16
16
  --tag-border: var(--sys-color-neutral-border);
17
17
  }
18
- ._root_1lbu9_3[data-tone=info][data-variant=subtle] {
18
+ ._root_10znj_3[data-tone=info][data-variant=subtle] {
19
19
  --tag-bg: var(--sys-color-info-bg);
20
20
  --tag-fg: var(--sys-color-info-fg);
21
21
  --tag-border: transparent;
22
22
  }
23
- ._root_1lbu9_3[data-tone=info][data-variant=solid] {
23
+ ._root_10znj_3[data-tone=info][data-variant=solid] {
24
24
  --tag-bg: var(--sys-color-info-fg);
25
25
  --tag-fg: var(--sys-color-info-bg);
26
26
  --tag-border: transparent;
27
27
  }
28
- ._root_1lbu9_3[data-tone=info][data-variant=outline] {
28
+ ._root_10znj_3[data-tone=info][data-variant=outline] {
29
29
  --tag-bg: transparent;
30
30
  --tag-fg: var(--sys-color-info-fg);
31
31
  --tag-border: var(
32
32
  --sys-color-info-border
33
33
  );
34
34
  }
35
- ._root_1lbu9_3[data-tone=success][data-variant=subtle] {
35
+ ._root_10znj_3[data-tone=success][data-variant=subtle] {
36
36
  --tag-bg: var(--sys-color-success-bg);
37
37
  --tag-fg: var(--sys-color-success-fg);
38
38
  --tag-border: transparent;
39
39
  }
40
- ._root_1lbu9_3[data-tone=success][data-variant=solid] {
40
+ ._root_10znj_3[data-tone=success][data-variant=solid] {
41
41
  --tag-bg: var(--sys-color-success-fg);
42
42
  --tag-fg: var(--sys-color-success-bg);
43
43
  --tag-border: transparent;
44
44
  }
45
- ._root_1lbu9_3[data-tone=success][data-variant=outline] {
45
+ ._root_10znj_3[data-tone=success][data-variant=outline] {
46
46
  --tag-bg: transparent;
47
47
  --tag-fg: var(--sys-color-success-fg);
48
48
  --tag-border: var(
49
49
  --sys-color-success-border
50
50
  );
51
51
  }
52
- ._root_1lbu9_3[data-tone=warning][data-variant=subtle] {
52
+ ._root_10znj_3[data-tone=warning][data-variant=subtle] {
53
53
  --tag-bg: var(--sys-color-warning-bg);
54
54
  --tag-fg: var(--sys-color-warning-fg);
55
55
  --tag-border: transparent;
56
56
  }
57
- ._root_1lbu9_3[data-tone=warning][data-variant=solid] {
57
+ ._root_10znj_3[data-tone=warning][data-variant=solid] {
58
58
  --tag-bg: var(--sys-color-warning-fg);
59
59
  --tag-fg: var(--sys-color-warning-bg);
60
60
  --tag-border: transparent;
61
61
  }
62
- ._root_1lbu9_3[data-tone=warning][data-variant=outline] {
62
+ ._root_10znj_3[data-tone=warning][data-variant=outline] {
63
63
  --tag-bg: transparent;
64
64
  --tag-fg: var(--sys-color-warning-fg);
65
65
  --tag-border: var(
66
66
  --sys-color-warning-border
67
67
  );
68
68
  }
69
- ._root_1lbu9_3[data-tone=error][data-variant=subtle] {
69
+ ._root_10znj_3[data-tone=error][data-variant=subtle] {
70
70
  --tag-bg: var(--sys-color-error-bg);
71
71
  --tag-fg: var(--sys-color-error-fg);
72
72
  --tag-border: transparent;
73
73
  }
74
- ._root_1lbu9_3[data-tone=error][data-variant=solid] {
74
+ ._root_10znj_3[data-tone=error][data-variant=solid] {
75
75
  --tag-bg: var(--sys-color-error-fg);
76
76
  --tag-fg: var(--sys-color-error-bg);
77
77
  --tag-border: transparent;
78
78
  }
79
- ._root_1lbu9_3[data-tone=error][data-variant=outline] {
79
+ ._root_10znj_3[data-tone=error][data-variant=outline] {
80
80
  --tag-bg: transparent;
81
81
  --tag-fg: var(--sys-color-error-fg);
82
82
  --tag-border: var(
83
83
  --sys-color-error-border
84
84
  );
85
85
  }
86
- ._root_1lbu9_3 {
86
+ ._root_10znj_3 {
87
87
  display: inline-flex;
88
88
  align-items: center;
89
89
  gap: var(--sys-unit-3);
@@ -96,25 +96,27 @@
96
96
  color: var(--tag-fg);
97
97
  font: var(--sys-font-label-small);
98
98
  }
99
- ._root_1lbu9_3 {
99
+ ._root_10znj_3 {
100
100
  outline: 0 solid var(--sys-color-focus-ring);
101
101
  outline-offset: var(--sys-focus-ring-offset);
102
102
  }
103
- ._root_1lbu9_3:focus-visible {
103
+ ._root_10znj_3:focus-visible {
104
104
  outline-width: var(--sys-focus-ring-width);
105
105
  }
106
- ._root_1lbu9_3[data-focus-visible] {
106
+ ._root_10znj_3[data-focus-visible] {
107
107
  outline-width: var(--sys-focus-ring-width);
108
108
  }
109
- ._dot_1lbu9_109 {
109
+ ._dot_10znj_109 {
110
110
  flex-shrink: 0;
111
111
  inline-size: var(--sys-unit-3);
112
112
  block-size: var(--sys-unit-3);
113
113
  border-radius: var(--sys-radius-circle);
114
114
  background: currentcolor;
115
115
  }
116
- ._icon_1lbu9_116 {
116
+ ._icon_10znj_116 {
117
+ display: inline-flex;
117
118
  flex-shrink: 0;
119
+ font-size: var(--tag-icon-size, 1em);
118
120
  margin-inline-start: calc(-1 * var(--sys-unit-1));
119
121
  }
120
122
  }
@@ -1,22 +1,24 @@
1
- import type { ComponentPropsWithRef, ReactNode } from "react";
1
+ import { useRender } from "@base-ui/react/use-render";
2
+ import type { ReactElement, ReactNode } from "react";
2
3
  import type { Tone, ToneVariant } from "../../lib/tone.ts";
3
- import { type SvgComponent } from "../icon/icon.tsx";
4
- export type TagRootProps = ComponentPropsWithRef<"span"> & Readonly<{
4
+ export type TagRootProps = useRender.ComponentProps<"span"> & Readonly<{
5
5
  /** Status colour. @default "neutral" */
6
6
  tone?: Tone;
7
7
  /** @default "subtle" */
8
8
  variant?: ToneVariant;
9
9
  children: ReactNode;
10
10
  }>;
11
- declare const Root: ({ tone, variant, className, children, ...props }: TagRootProps) => ReactNode;
12
- export type TagDotProps = ComponentPropsWithRef<"span">;
13
- declare const Dot: ({ className, ...props }: TagDotProps) => ReactNode;
14
- export type TagIconProps = Readonly<{
15
- /** The glyph, from a SVGR `?react` import. */
16
- svg: SvgComponent;
17
- className?: string;
18
- }>;
19
- declare const TagIcon: ({ svg, className, }: TagIconProps) => ReactNode;
11
+ /** The pill: a `<span>` in a status `tone` and `variant`. */
12
+ declare const Root: ({ tone, variant, render, className, ref, ...props }: TagRootProps) => ReactElement;
13
+ export type TagDotProps = useRender.ComponentProps<"span">;
14
+ /** A dot in the tag's tone, leading its label. */
15
+ declare const Dot: ({ render, className, ref, ...props }: TagDotProps) => ReactElement;
16
+ export type TagIconProps = useRender.ComponentProps<"span">;
17
+ /**
18
+ * The glyph leading the label: its children, sized to the tag's text and drawn
19
+ * in its ink. Renders nothing without children.
20
+ */
21
+ declare const TagIcon: ({ render, className, ref, children, ...props }: TagIconProps) => ReactElement | null;
20
22
  type TagParts = Readonly<{
21
23
  Root: typeof Root;
22
24
  Dot: typeof Dot;
@@ -27,9 +29,9 @@ type TagParts = Readonly<{
27
29
  * most one indicator: `Dot` or `Icon`. A removable tag is a `TagGroup.Tag`.
28
30
  *
29
31
  * @example
30
- * <Tag.Root tone="info">
31
- * <Tag.Dot />
32
- * Outstanding
32
+ * <Tag.Root tone="error">
33
+ * <Tag.Icon><ErrorIcon /></Tag.Icon>
34
+ * Returned
33
35
  * </Tag.Root>
34
36
  */
35
37
  export declare const Tag: TagParts;