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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/README.md +32 -1
  2. package/dist/base.css +3 -0
  3. package/dist/components/accordion/accordion.css +24 -19
  4. package/dist/components/accordion/accordion.d.ts +19 -3
  5. package/dist/components/accordion/accordion.js +86 -32
  6. package/dist/components/accordion/accordion.module.js +8 -8
  7. package/dist/components/active-filters/active-filter-describers.d.ts +1 -1
  8. package/dist/components/active-filters/active-filter-describers.js +1 -1
  9. package/dist/components/active-filters/active-filters.d.ts +35 -2
  10. package/dist/components/active-filters/active-filters.js +57 -52
  11. package/dist/components/active-filters/index.js +2 -2
  12. package/dist/components/attachment-tile/attachment-preview.d.ts +11 -9
  13. package/dist/components/attachment-tile/attachment-preview.js +102 -68
  14. package/dist/components/attachment-tile/attachment-tile.css +22 -13
  15. package/dist/components/attachment-tile/attachment-tile.d.ts +51 -6
  16. package/dist/components/attachment-tile/attachment-tile.js +209 -85
  17. package/dist/components/attachment-tile/attachment-tile.module.js +10 -10
  18. package/dist/components/attachment-tile/index.d.ts +1 -1
  19. package/dist/components/attachment-tile/index.js +2 -2
  20. package/dist/components/avatar/avatar.d.ts +5 -5
  21. package/dist/components/avatar/avatar.js +64 -37
  22. package/dist/components/avatar-group/avatar-group.js +2 -2
  23. package/dist/components/badge/badge.js +1 -1
  24. package/dist/components/breadcrumbs/breadcrumbs.d.ts +22 -7
  25. package/dist/components/breadcrumbs/breadcrumbs.js +189 -170
  26. package/dist/components/button/button.d.ts +2 -3
  27. package/dist/components/button/button.js +58 -77
  28. package/dist/components/button/close-button.d.ts +4 -2
  29. package/dist/components/button/close-button.js +9 -9
  30. package/dist/components/checkbox-field/checkbox-field.d.ts +17 -3
  31. package/dist/components/checkbox-field/checkbox-field.js +108 -131
  32. package/dist/components/checkbox-field/checkbox.css +26 -34
  33. package/dist/components/checkbox-field/checkbox.d.ts +51 -8
  34. package/dist/components/checkbox-field/checkbox.js +221 -57
  35. package/dist/components/checkbox-field/checkbox.module.js +6 -8
  36. package/dist/components/checkbox-field/index.d.ts +0 -1
  37. package/dist/components/checkbox-field/index.js +1 -2
  38. package/dist/components/checkbox-field/tsf-checkbox-field.d.ts +2 -2
  39. package/dist/components/checkbox-group-field/checkbox-group-field.d.ts +4 -1
  40. package/dist/components/checkbox-group-field/checkbox-group-field.js +54 -50
  41. package/dist/components/checkbox-group-field/checkbox-group.d.ts +7 -2
  42. package/dist/components/checkbox-group-field/checkbox-group.js +8 -3
  43. package/dist/components/collapsible/collapsible.css +23 -18
  44. package/dist/components/collapsible/collapsible.d.ts +18 -3
  45. package/dist/components/collapsible/collapsible.js +85 -32
  46. package/dist/components/collapsible/collapsible.module.js +7 -7
  47. package/dist/components/combobox-field/combobox-field.d.ts +9 -1
  48. package/dist/components/combobox-field/combobox-field.js +195 -175
  49. package/dist/components/combobox-field/combobox-items.d.ts +2 -2
  50. package/dist/components/combobox-field/combobox-items.js +4 -4
  51. package/dist/components/combobox-field/combobox.css +99 -96
  52. package/dist/components/combobox-field/combobox.d.ts +94 -15
  53. package/dist/components/combobox-field/combobox.js +484 -159
  54. package/dist/components/combobox-field/combobox.module.js +21 -21
  55. package/dist/components/combobox-field/index.d.ts +0 -1
  56. package/dist/components/combobox-field/selection.d.ts +4 -1
  57. package/dist/components/combobox-field/value-state-view.css +7 -3
  58. package/dist/components/combobox-field/value-state-view.d.ts +4 -2
  59. package/dist/components/combobox-field/value-state-view.js +15 -15
  60. package/dist/components/combobox-field/value-state-view.module.js +6 -4
  61. package/dist/components/composer/composer-attachments.d.ts +11 -3
  62. package/dist/components/composer/composer-attachments.js +61 -47
  63. package/dist/components/composer/composer-editor.d.ts +2 -1
  64. package/dist/components/composer/composer-editor.js +79 -71
  65. package/dist/components/composer/composer-mentions.js +2 -2
  66. package/dist/components/composer/composer.d.ts +42 -21
  67. package/dist/components/composer/composer.js +201 -58
  68. package/dist/components/composer/mention-text.js +3 -3
  69. package/dist/components/confirm-dialog/confirm-dialog.d.ts +8 -7
  70. package/dist/components/confirm-dialog/confirm-dialog.js +10 -9
  71. package/dist/components/conversation/conversation.context.d.ts +0 -5
  72. package/dist/components/conversation/conversation.d.ts +63 -29
  73. package/dist/components/conversation/conversation.js +193 -82
  74. package/dist/components/conversation/index.d.ts +1 -1
  75. package/dist/components/date-field/date-field.d.ts +10 -4
  76. package/dist/components/date-field/date-field.js +57 -43
  77. package/dist/components/date-field/date-input.d.ts +20 -3
  78. package/dist/components/date-field/date-input.js +28 -13
  79. package/dist/components/date-field/index.d.ts +1 -1
  80. package/dist/components/date-field/tsf-date-field.d.ts +1 -1
  81. package/dist/components/date-field/tsf-date-field.js +1 -1
  82. package/dist/components/date-range-field/date-range-field.d.ts +8 -4
  83. package/dist/components/date-range-field/date-range-field.js +57 -45
  84. package/dist/components/date-range-field/date-range-input.d.ts +20 -3
  85. package/dist/components/date-range-field/date-range-input.js +27 -12
  86. package/dist/components/date-range-field/tsf-date-range-field.d.ts +1 -1
  87. package/dist/components/date-range-field/tsf-date-range-field.js +1 -1
  88. package/dist/components/detail-list/detail-list.d.ts +28 -27
  89. package/dist/components/detail-list/detail-list.js +177 -121
  90. package/dist/components/dialog/dialog.d.ts +47 -27
  91. package/dist/components/dialog/dialog.js +101 -38
  92. package/dist/components/divider/divider.js +1 -1
  93. package/dist/components/drawer/drawer.d.ts +48 -30
  94. package/dist/components/drawer/drawer.js +113 -41
  95. package/dist/components/email-field/email-field.d.ts +5 -3
  96. package/dist/components/email-field/email-field.js +1 -3
  97. package/dist/components/email-field/tsf-email-field.d.ts +3 -2
  98. package/dist/components/empty-message/empty-message.d.ts +3 -3
  99. package/dist/components/empty-message/empty-message.js +3 -3
  100. package/dist/components/error-boundary/error-boundary.d.ts +5 -2
  101. package/dist/components/error-boundary/error-boundary.js +2 -3
  102. package/dist/components/error-message/error-message.d.ts +1 -1
  103. package/dist/components/error-message/error-message.js +1 -1
  104. package/dist/components/error-text/error-text.js +3 -3
  105. package/dist/components/field/field.d.ts +5 -5
  106. package/dist/components/field/field.js +9 -9
  107. package/dist/components/field/index.js +2 -2
  108. package/dist/components/field/input-parts.js +1 -1
  109. package/dist/components/field-placeholder/field-placeholder.d.ts +4 -1
  110. package/dist/components/field-placeholder/field-placeholder.js +41 -26
  111. package/dist/components/fieldset/field-group.js +1 -1
  112. package/dist/components/fieldset/fieldset-root.js +1 -1
  113. package/dist/components/fieldset/fieldset.js +1 -1
  114. package/dist/components/file-field/file-field.css +19 -15
  115. package/dist/components/file-field/file-field.d.ts +10 -1
  116. package/dist/components/file-field/file-field.js +130 -109
  117. package/dist/components/file-field/file-field.module.js +6 -4
  118. package/dist/components/file-field/file-input.d.ts +32 -9
  119. package/dist/components/file-field/file-input.js +94 -74
  120. package/dist/components/filter-bar/filter-bar.d.ts +79 -51
  121. package/dist/components/filter-bar/filter-bar.js +552 -216
  122. package/dist/components/form/form.d.ts +4 -6
  123. package/dist/components/form/form.js +6 -8
  124. package/dist/components/icon/icon.d.ts +5 -10
  125. package/dist/components/icon/icon.js +4 -6
  126. package/dist/components/link/link.js +1 -1
  127. package/dist/components/link-button/link-button.d.ts +1 -2
  128. package/dist/components/link-button/link-button.js +12 -22
  129. package/dist/components/loading-message/loading-message.d.ts +2 -2
  130. package/dist/components/loading-message/loading-message.js +1 -1
  131. package/dist/components/locale-provider/locale-provider.js +1 -1
  132. package/dist/components/menu/menu.d.ts +40 -22
  133. package/dist/components/menu/menu.js +100 -40
  134. package/dist/components/nav/nav-context.d.ts +0 -1
  135. package/dist/components/nav/nav-context.js +1 -2
  136. package/dist/components/nav/nav-item-view.d.ts +7 -7
  137. package/dist/components/nav/nav-item-view.js +27 -51
  138. package/dist/components/nav/nav.css +72 -60
  139. package/dist/components/nav/nav.d.ts +15 -8
  140. package/dist/components/nav/nav.js +105 -52
  141. package/dist/components/nav/nav.module.js +14 -14
  142. package/dist/components/number-field/number-field.d.ts +7 -1
  143. package/dist/components/number-field/number-field.js +98 -82
  144. package/dist/components/number-field/number-input.d.ts +53 -4
  145. package/dist/components/number-field/number-input.js +68 -21
  146. package/dist/components/number-field/tsf-number-field.d.ts +1 -1
  147. package/dist/components/number-field/tsf-number-field.js +1 -1
  148. package/dist/components/otp-field/otp-input.d.ts +25 -0
  149. package/dist/components/otp-field/otp-input.js +26 -1
  150. package/dist/components/pagination/pagination.d.ts +82 -23
  151. package/dist/components/pagination/pagination.js +656 -229
  152. package/dist/components/password-field/password-field.d.ts +7 -1
  153. package/dist/components/password-field/password-field.js +117 -126
  154. package/dist/components/password-field/password-strength.js +1 -1
  155. package/dist/components/password-field/tsf-password-field.d.ts +1 -1
  156. package/dist/components/password-field/tsf-password-field.js +1 -1
  157. package/dist/components/photo-field/photo-field.d.ts +17 -3
  158. package/dist/components/photo-field/photo-field.js +168 -89
  159. package/dist/components/photo-field/photo-input-context.d.ts +25 -0
  160. package/dist/components/photo-field/photo-input-context.js +14 -0
  161. package/dist/components/photo-field/photo-input.d.ts +58 -23
  162. package/dist/components/photo-field/photo-input.js +459 -261
  163. package/dist/components/popover/popover.d.ts +55 -23
  164. package/dist/components/popover/popover.js +205 -61
  165. package/dist/components/radio-group-field/radio-group.js +1 -1
  166. package/dist/components/search-field/search-field.d.ts +7 -5
  167. package/dist/components/search-field/search-field.js +4 -6
  168. package/dist/components/search-field/tsf-search-field.d.ts +1 -1
  169. package/dist/components/search-field/tsf-search-field.js +1 -1
  170. package/dist/components/segmented-control-field/segmented-control.js +1 -1
  171. package/dist/components/select-field/select-field.d.ts +7 -1
  172. package/dist/components/select-field/select-field.js +151 -139
  173. package/dist/components/select-field/select.d.ts +28 -6
  174. package/dist/components/select-field/select.js +234 -149
  175. package/dist/components/skeleton/skeleton.js +1 -1
  176. package/dist/components/spinner/spinner.css +47 -1
  177. package/dist/components/spinner/spinner.js +28 -11
  178. package/dist/components/spinner/spinner.module.js +18 -3
  179. package/dist/components/stale/stale.d.ts +17 -21
  180. package/dist/components/stale/stale.js +307 -129
  181. package/dist/components/status-message/status-message.css +22 -21
  182. package/dist/components/status-message/status-message.d.ts +10 -5
  183. package/dist/components/status-message/status-message.js +20 -24
  184. package/dist/components/status-message/status-message.module.js +6 -6
  185. package/dist/components/status-message/status-preset.d.ts +4 -5
  186. package/dist/components/status-message/status-preset.js +3 -3
  187. package/dist/components/switch-field/switch.js +1 -1
  188. package/dist/components/tabs/tabs.d.ts +51 -28
  189. package/dist/components/tabs/tabs.js +219 -144
  190. package/dist/components/tag/tag.css +23 -21
  191. package/dist/components/tag/tag.d.ts +17 -15
  192. package/dist/components/tag/tag.js +140 -65
  193. package/dist/components/tag/tag.module.js +3 -3
  194. package/dist/components/tag-group/tag-group.css +30 -27
  195. package/dist/components/tag-group/tag-group.d.ts +10 -4
  196. package/dist/components/tag-group/tag-group.js +47 -35
  197. package/dist/components/tag-group/tag-group.module.js +4 -4
  198. package/dist/components/text-field/text-field.d.ts +14 -3
  199. package/dist/components/text-field/text-field.js +154 -133
  200. package/dist/components/text-field/text-input.d.ts +89 -3
  201. package/dist/components/text-field/text-input.js +184 -70
  202. package/dist/components/textarea-field/textarea.js +1 -1
  203. package/dist/components/time-field/time-input.d.ts +6 -0
  204. package/dist/components/time-field/time-input.js +6 -0
  205. package/dist/components/time-zone-provider/time-zone-provider.js +1 -1
  206. package/dist/components/toast/index.js +2 -2
  207. package/dist/components/toast/toast-provider.css +38 -34
  208. package/dist/components/toast/toast-provider.d.ts +65 -3
  209. package/dist/components/toast/toast-provider.js +313 -148
  210. package/dist/components/toast/toast-provider.module.js +11 -17
  211. package/dist/components/toast/toast.d.ts +5 -1
  212. package/dist/components/toast/toast.js +2 -1
  213. package/dist/components/toggle-group-field/toggle-group.js +1 -1
  214. package/dist/components/tooltip/tooltip.d.ts +6 -6
  215. package/dist/components/tooltip/tooltip.js +7 -7
  216. package/dist/data-table/data-table-content.d.ts +18 -10
  217. package/dist/data-table/data-table-content.js +145 -290
  218. package/dist/data-table/data-table-context.d.ts +4 -2
  219. package/dist/data-table/data-table-context.js +1 -1
  220. package/dist/data-table/data-table-parts.d.ts +99 -0
  221. package/dist/data-table/data-table-parts.js +1182 -0
  222. package/dist/data-table/data-table-selection.d.ts +7 -3
  223. package/dist/data-table/data-table-selection.js +62 -37
  224. package/dist/data-table/data-table.css +100 -95
  225. package/dist/data-table/data-table.d.ts +49 -25
  226. package/dist/data-table/data-table.js +95 -83
  227. package/dist/data-table/data-table.module.js +34 -34
  228. package/dist/data-table/index.d.ts +2 -1
  229. package/dist/data-table/index.js +2 -1
  230. package/dist/data-view/use-data-view.d.ts +2 -2
  231. package/dist/data-view/use-data-view.js +2 -2
  232. package/dist/index.js +7 -8
  233. package/dist/lib/calendar/calendar-navigation.d.ts +9 -2
  234. package/dist/lib/calendar/calendar-navigation.js +72 -73
  235. package/dist/lib/calendar/calendar-year.d.ts +4 -3
  236. package/dist/lib/calendar/calendar-year.js +137 -156
  237. package/dist/lib/calendar/temporal.d.ts +18 -12
  238. package/dist/lib/calendar/temporal.js +191 -147
  239. package/dist/lib/table-storage.d.ts +2 -2
  240. package/dist/lib/table-storage.js +2 -2
  241. package/dist/lib/unsaved-changes/leave-guard.js +1 -1
  242. package/dist/terrazzo/index.d.ts +20 -3
  243. package/dist/terrazzo/index.js +110 -7
  244. package/dist/tokens.css +94 -71
  245. package/package.json +4 -3
  246. package/tokens/ref.tokens.json +0 -30
  247. package/tokens/sys.tokens.json +0 -7
  248. package/dist/assets/spinner.js +0 -28
  249. package/dist/components/checkbox-field/checkbox-glyph.d.ts +0 -12
  250. package/dist/components/checkbox-field/checkbox-glyph.js +0 -38
  251. package/dist/components/combobox-field/combobox-popup-body.d.ts +0 -34
  252. package/dist/components/combobox-field/combobox-popup-body.js +0 -142
  253. package/dist/components/conversation/conversation.context.js +0 -4
  254. package/dist/vendor/@material-design-icons/svg/outlined/add.js +0 -12
  255. package/dist/vendor/@material-design-icons/svg/outlined/arrow_downward.js +0 -12
  256. package/dist/vendor/@material-design-icons/svg/outlined/arrow_forward.js +0 -12
  257. package/dist/vendor/@material-design-icons/svg/outlined/arrow_upward.js +0 -12
  258. package/dist/vendor/@material-design-icons/svg/outlined/attach_file.js +0 -12
  259. package/dist/vendor/@material-design-icons/svg/outlined/block.js +0 -12
  260. package/dist/vendor/@material-design-icons/svg/outlined/calendar_today.js +0 -12
  261. package/dist/vendor/@material-design-icons/svg/outlined/check.js +0 -12
  262. package/dist/vendor/@material-design-icons/svg/outlined/check_circle.js +0 -12
  263. package/dist/vendor/@material-design-icons/svg/outlined/chevron_left.js +0 -12
  264. package/dist/vendor/@material-design-icons/svg/outlined/chevron_right.js +0 -12
  265. package/dist/vendor/@material-design-icons/svg/outlined/close.js +0 -12
  266. package/dist/vendor/@material-design-icons/svg/outlined/content_copy.js +0 -12
  267. package/dist/vendor/@material-design-icons/svg/outlined/date_range.js +0 -12
  268. package/dist/vendor/@material-design-icons/svg/outlined/description.js +0 -12
  269. package/dist/vendor/@material-design-icons/svg/outlined/download.js +0 -12
  270. package/dist/vendor/@material-design-icons/svg/outlined/error.js +0 -12
  271. package/dist/vendor/@material-design-icons/svg/outlined/error_outline.js +0 -12
  272. package/dist/vendor/@material-design-icons/svg/outlined/expand_less.js +0 -12
  273. package/dist/vendor/@material-design-icons/svg/outlined/expand_more.js +0 -12
  274. package/dist/vendor/@material-design-icons/svg/outlined/filter_alt.js +0 -12
  275. package/dist/vendor/@material-design-icons/svg/outlined/filter_alt_off.js +0 -12
  276. package/dist/vendor/@material-design-icons/svg/outlined/first_page.js +0 -12
  277. package/dist/vendor/@material-design-icons/svg/outlined/info.js +0 -12
  278. package/dist/vendor/@material-design-icons/svg/outlined/keyboard_arrow_down.js +0 -12
  279. package/dist/vendor/@material-design-icons/svg/outlined/last_page.js +0 -12
  280. package/dist/vendor/@material-design-icons/svg/outlined/mail.js +0 -12
  281. package/dist/vendor/@material-design-icons/svg/outlined/more_horiz.js +0 -12
  282. package/dist/vendor/@material-design-icons/svg/outlined/photo_camera.js +0 -12
  283. package/dist/vendor/@material-design-icons/svg/outlined/remove.js +0 -12
  284. package/dist/vendor/@material-design-icons/svg/outlined/restart_alt.js +0 -12
  285. package/dist/vendor/@material-design-icons/svg/outlined/restore.js +0 -12
  286. package/dist/vendor/@material-design-icons/svg/outlined/search.js +0 -12
  287. package/dist/vendor/@material-design-icons/svg/outlined/unfold_more.js +0 -12
  288. package/dist/vendor/@material-design-icons/svg/outlined/upload_file.js +0 -12
  289. package/dist/vendor/@material-design-icons/svg/outlined/visibility.js +0 -12
  290. package/dist/vendor/@material-design-icons/svg/outlined/visibility_off.js +0 -12
  291. package/dist/vendor/@material-design-icons/svg/outlined/warning_amber.js +0 -12
package/README.md CHANGED
@@ -100,10 +100,39 @@ export default defineConfig({
100
100
  });
101
101
  ```
102
102
 
103
- The resolver needs a `theme` modifier with `light` and `dark` contexts. Like the kit's own `tokens.css`, the file the preset writes opens with the kit's layer order and keeps every rule in `kit.base`, so an unlayered override in the app still wins. The preset names every token by its path with dots as hyphens (`sys.color.primary` becomes `--sys-color-primary`), and writes a shadow tagged `$extensions["nl.igne.css"].property: "filter"` as `drop-shadow()` filters.
103
+ The resolver needs a `theme` modifier with `light` and `dark` contexts. Like the kit's own `tokens.css`, the file the preset writes opens with the kit's layer order and keeps every rule in `kit.base`, so an unlayered override in the app still wins. The preset names every token by its path with dots as hyphens (`sys.color.primary` becomes `--sys-color-primary`), and writes a shadow tagged `$extensions["nl.igne.css"].property: "filter"` as `drop-shadow()` filters. Typography tokens name no family, so the preset narrows Terrazzo's `core/valid-typography` rule to `fontSize`, `fontWeight` and `lineHeight`.
104
+
105
+ ### Typeface
106
+
107
+ The kit names no typeface and loads no font. Every type role reads its family from one of two custom properties: `--sys-font-family-heading` for headings and `--sys-font-family-body` for everything else. The body family defaults to `system-ui, sans-serif`, and the heading family follows the body family. To use a typeface, load it the way the app loads any font, then name it on `:root` in unlayered CSS:
108
+
109
+ ```css
110
+ :root {
111
+ --sys-font-family-body: "Inter", system-ui, sans-serif;
112
+ --sys-font-family-heading:
113
+ "Satoshi", system-ui, sans-serif;
114
+ }
115
+ ```
116
+
117
+ This works the same over the kit's `tokens.css` and over a theme the preset builds.
104
118
 
105
119
  The kit owns no breakpoints and no gutters; those are the app's layout.
106
120
 
121
+ ## Icons
122
+
123
+ The kit renders no icons and depends on no icon set. Wherever a component shows one, it leaves a slot the app fills from its own set: a part's children, or, on a ready-made component, a prop named for the icon's job (`icon`, `closeIcon`, `expandIcon`). The slot sizes the glyph to its text and colours it, so an SVG drawn at `1em` in `currentColor` fits as is. A slot is required only where the icon is all the control shows, such as a close button's cross; anywhere else, left out, nothing renders.
124
+
125
+ ```tsx
126
+ import ExpandMoreIcon from "@material-design-icons/svg/outlined/expand_more.svg?react";
127
+ import { Select } from "@igne-agency/react-web-ui/select-field";
128
+
129
+ <Select.Icon>
130
+ <ExpandMoreIcon />
131
+ </Select.Icon>;
132
+ ```
133
+
134
+ `Icon`, from `./icon`, sizes and labels any SVG component: `label=""` hides a glyph that stands beside its word, and a label names one that stands alone.
135
+
107
136
  ## Providers
108
137
 
109
138
  The kit has no catch-all provider. Wrap the app in the ones it uses:
@@ -113,6 +142,7 @@ import { LocaleProvider } from "@igne-agency/react-web-ui/locale-provider";
113
142
  import { TimeZoneProvider } from "@igne-agency/react-web-ui/time-zone-provider";
114
143
  import { ToastProvider } from "@igne-agency/react-web-ui/toast";
115
144
  import { Tooltip } from "@igne-agency/react-web-ui/tooltip";
145
+ import CloseIcon from "./icons/close.svg?react";
116
146
 
117
147
  export const Providers = ({
118
148
  children,
@@ -122,6 +152,7 @@ export const Providers = ({
122
152
  <Tooltip.Provider>
123
153
  <ToastProvider
124
154
  closeLabel="Close"
155
+ closeIcon={<CloseIcon />}
125
156
  viewportLabel="Notifications">
126
157
  {children}
127
158
  </ToastProvider>
package/dist/base.css CHANGED
@@ -112,6 +112,9 @@
112
112
  transition: background-color var(--sys-motion-medium) var(--sys-motion-standard), color var(--sys-motion-medium) var(--sys-motion-standard);
113
113
  }
114
114
  }
115
+ [data-theme] {
116
+ color: var(--sys-color-text);
117
+ }
115
118
  button,
116
119
  select,
117
120
  summary,
@@ -1,15 +1,15 @@
1
1
  @layer kit.reset, kit.base, kit.components;
2
2
  @layer kit.components {
3
- ._root_1u0up_3 {
3
+ ._root_1qlrq_3 {
4
4
  display: flex;
5
5
  flex-direction: column;
6
6
  gap: var(--accordion-gap, var(--sys-unit-2));
7
7
  }
8
- ._item_1u0up_8 {
8
+ ._item_1qlrq_8 {
9
9
  display: flex;
10
10
  flex-direction: column;
11
11
  }
12
- ._trigger_1u0up_12 {
12
+ ._trigger_1qlrq_12 {
13
13
  display: flex;
14
14
  align-items: center;
15
15
  justify-content: space-between;
@@ -25,18 +25,18 @@
25
25
  text-align: start;
26
26
  cursor: pointer;
27
27
  }
28
- ._trigger_1u0up_12 {
28
+ ._trigger_1qlrq_12 {
29
29
  outline: 0 solid var(--sys-color-focus-ring);
30
30
  outline-offset: var(--sys-focus-ring-offset);
31
31
  }
32
- ._trigger_1u0up_12:focus-visible {
32
+ ._trigger_1qlrq_12:focus-visible {
33
33
  outline-width: var(--sys-focus-ring-width);
34
34
  }
35
- ._trigger_1u0up_12 {
35
+ ._trigger_1qlrq_12 {
36
36
  position: relative;
37
37
  isolation: isolate;
38
38
  }
39
- ._trigger_1u0up_12::after {
39
+ ._trigger_1qlrq_12::after {
40
40
  content: "";
41
41
  position: absolute;
42
42
  z-index: -1;
@@ -47,47 +47,52 @@
47
47
  pointer-events: none;
48
48
  }
49
49
  @media not (prefers-reduced-motion) {
50
- ._trigger_1u0up_12::after {
50
+ ._trigger_1qlrq_12::after {
51
51
  transition: opacity var(--sys-motion-instant) var(--sys-motion-standard);
52
52
  }
53
53
  }
54
- ._trigger_1u0up_12:hover:not(:disabled, [data-disabled])::after {
54
+ ._trigger_1qlrq_12:hover:not(:disabled, [data-disabled])::after {
55
55
  opacity: var(--sys-state-hover);
56
56
  }
57
- ._trigger_1u0up_12:active:not(:disabled, [data-disabled])::after {
57
+ ._trigger_1qlrq_12:active:not(:disabled, [data-disabled])::after {
58
58
  opacity: var(--sys-state-pressed);
59
59
  }
60
- ._trigger_1u0up_12[data-disabled] {
60
+ ._trigger_1qlrq_12[data-disabled] {
61
61
  color: var(--sys-color-disabled-fg);
62
62
  cursor: not-allowed;
63
63
  }
64
- ._chevron_1u0up_64 {
64
+ ._indicator_1qlrq_64 {
65
65
  flex-shrink: 0;
66
66
  }
67
67
  @media not (prefers-reduced-motion) {
68
- ._chevron_1u0up_64 {
68
+ ._indicator_1qlrq_64 {
69
69
  transition: rotate var(--sys-motion-short) var(--sys-motion-standard);
70
70
  }
71
71
  }
72
- [data-panel-open] > ._chevron_1u0up_64 {
72
+ [data-panel-open] > ._indicator_1qlrq_64 {
73
73
  rotate: 180deg;
74
74
  }
75
- ._panel_1u0up_75 {
75
+ ._indicator_1qlrq_64 {
76
+ display: inline-flex;
77
+ color: var(--accordion-indicator-fg, currentcolor);
78
+ font-size: var(--accordion-indicator-size, 1.5em);
79
+ }
80
+ ._panel_1qlrq_80 {
76
81
  overflow: hidden;
77
82
  }
78
- ._panel_1u0up_75[hidden]:not([hidden=until-found]) {
83
+ ._panel_1qlrq_80[hidden]:not([hidden=until-found]) {
79
84
  display: none;
80
85
  }
81
86
  @media not (prefers-reduced-motion) {
82
- ._panel_1u0up_75 {
87
+ ._panel_1qlrq_80 {
83
88
  block-size: var(--accordion-panel-height);
84
89
  transition: block-size var(--sys-motion-short) var(--sys-motion-standard);
85
90
  }
86
- ._panel_1u0up_75[data-starting-style], ._panel_1u0up_75[data-ending-style] {
91
+ ._panel_1qlrq_80[data-starting-style], ._panel_1qlrq_80[data-ending-style] {
87
92
  block-size: 0;
88
93
  }
89
94
  }
90
- ._content_1u0up_90 {
95
+ ._content_1qlrq_95 {
91
96
  padding: var(--accordion-pad-y, var(--sys-unit-4)) var(--accordion-pad-x, var(--sys-unit-6));
92
97
  }
93
98
  }
@@ -1,4 +1,5 @@
1
1
  import { Accordion as BaseAccordion } from "@base-ui/react/accordion";
2
+ import { useRender } from "@base-ui/react/use-render";
2
3
  import type { ReactNode } from "react";
3
4
  export type AccordionRootProps = Omit<BaseAccordion.Root.Props<string>, "className"> & Readonly<{
4
5
  className?: string;
@@ -10,21 +11,33 @@ export type AccordionItemProps = Omit<BaseAccordion.Item.Props, "className" | "v
10
11
  }>;
11
12
  export type AccordionTriggerProps = Omit<BaseAccordion.Trigger.Props, "className" | "children"> & Readonly<{
12
13
  className?: string;
13
- /** What the item's panel holds, as the trigger's label. */
14
+ /** The label naming what the item's panel holds, then an `Accordion.Indicator`. */
14
15
  children: ReactNode;
15
16
  }>;
17
+ export type AccordionIndicatorProps = useRender.ComponentProps<"span">;
16
18
  export type AccordionPanelProps = Omit<BaseAccordion.Panel.Props, "className"> & Readonly<{
17
19
  className?: string;
18
20
  }>;
21
+ /** The stack of items. */
19
22
  declare const Root: ({ className, ...props }: AccordionRootProps) => ReactNode;
23
+ /** One item: its header and its panel. */
20
24
  declare const Item: ({ className, ...props }: AccordionItemProps) => ReactNode;
21
- declare const Trigger: ({ className, children, ...props }: AccordionTriggerProps) => ReactNode;
25
+ /** The button that folds the item's panel open and shut, inside its `Header`. */
26
+ declare const Trigger: ({ className, ...props }: AccordionTriggerProps) => ReactNode;
27
+ /**
28
+ * The trigger's open-state glyph, such as the app's chevron, turned over while
29
+ * the panel is open. Put it last in the `Trigger`; without children it renders
30
+ * nothing.
31
+ */
32
+ declare const Indicator: ({ render, className, children, ref, ...props }: AccordionIndicatorProps) => ReactNode;
33
+ /** What the item holds, folding along its height. */
22
34
  declare const Panel: ({ className, children, ...props }: AccordionPanelProps) => ReactNode;
23
35
  type AccordionNamespace = Readonly<{
24
36
  Root: typeof Root;
25
37
  Item: typeof Item;
26
38
  Header: typeof BaseAccordion.Header;
27
39
  Trigger: typeof Trigger;
40
+ Indicator: typeof Indicator;
28
41
  Panel: typeof Panel;
29
42
  }>;
30
43
  /**
@@ -36,7 +49,10 @@ type AccordionNamespace = Readonly<{
36
49
  * <Accordion.Root>
37
50
  * <Accordion.Item value="fees">
38
51
  * <Accordion.Header>
39
- * <Accordion.Trigger>Fees</Accordion.Trigger>
52
+ * <Accordion.Trigger>
53
+ * Fees
54
+ * <Accordion.Indicator><ChevronIcon /></Accordion.Indicator>
55
+ * </Accordion.Trigger>
40
56
  * </Accordion.Header>
41
57
  * <Accordion.Panel>{fees}</Accordion.Panel>
42
58
  * </Accordion.Item>
@@ -1,11 +1,11 @@
1
- import SvgExpandMore from "../../vendor/@material-design-icons/svg/outlined/expand_more.js";
2
- import { Icon } from "../icon/icon.js";
3
1
  import accordion_module_default from "./accordion.module.js";
4
2
  import { c } from "react/compiler-runtime";
5
3
  import { Accordion } from "@base-ui/react/accordion";
6
- import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { useRender } from "@base-ui/react/use-render";
7
5
  import { clsx } from "clsx";
6
+ import { jsx } from "react/jsx-runtime";
8
7
  // src/components/accordion/accordion.tsx
8
+ /** The stack of items. */
9
9
  var Root = (t0) => {
10
10
  const $ = c(8);
11
11
  let className;
@@ -37,6 +37,7 @@ var Root = (t0) => {
37
37
  } else t2 = $[7];
38
38
  return t2;
39
39
  };
40
+ /** One item: its header and its panel. */
40
41
  var Item = (t0) => {
41
42
  const $ = c(8);
42
43
  let className;
@@ -68,52 +69,101 @@ var Item = (t0) => {
68
69
  } else t2 = $[7];
69
70
  return t2;
70
71
  };
72
+ /** The button that folds the item's panel open and shut, inside its `Header`. */
71
73
  var Trigger = (t0) => {
72
- const $ = c(11);
74
+ const $ = c(8);
75
+ let className;
76
+ let props;
77
+ if ($[0] !== t0) {
78
+ ({className, ...props} = t0);
79
+ $[0] = t0;
80
+ $[1] = className;
81
+ $[2] = props;
82
+ } else {
83
+ className = $[1];
84
+ props = $[2];
85
+ }
86
+ let t1;
87
+ if ($[3] !== className) {
88
+ t1 = clsx(accordion_module_default.trigger, className);
89
+ $[3] = className;
90
+ $[4] = t1;
91
+ } else t1 = $[4];
92
+ let t2;
93
+ if ($[5] !== props || $[6] !== t1) {
94
+ t2 = /* @__PURE__ */ jsx(Accordion.Trigger, {
95
+ className: t1,
96
+ ...props
97
+ });
98
+ $[5] = props;
99
+ $[6] = t1;
100
+ $[7] = t2;
101
+ } else t2 = $[7];
102
+ return t2;
103
+ };
104
+ /**
105
+ * The trigger's open-state glyph, such as the app's chevron, turned over while
106
+ * the panel is open. Put it last in the `Trigger`; without children it renders
107
+ * nothing.
108
+ */
109
+ var Indicator = (t0) => {
110
+ const $ = c(16);
73
111
  let children;
74
112
  let className;
75
113
  let props;
114
+ let ref;
115
+ let render;
76
116
  if ($[0] !== t0) {
77
- ({className, children, ...props} = t0);
117
+ ({render, className, children, ref, ...props} = t0);
78
118
  $[0] = t0;
79
119
  $[1] = children;
80
120
  $[2] = className;
81
121
  $[3] = props;
122
+ $[4] = ref;
123
+ $[5] = render;
82
124
  } else {
83
125
  children = $[1];
84
126
  className = $[2];
85
127
  props = $[3];
128
+ ref = $[4];
129
+ render = $[5];
86
130
  }
87
131
  let t1;
88
- if ($[4] !== className) {
89
- t1 = clsx(accordion_module_default.trigger, className);
90
- $[4] = className;
91
- $[5] = t1;
92
- } else t1 = $[5];
132
+ if ($[6] !== className) {
133
+ t1 = clsx(accordion_module_default.indicator, className);
134
+ $[6] = className;
135
+ $[7] = t1;
136
+ } else t1 = $[7];
93
137
  let t2;
94
- if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
95
- t2 = /* @__PURE__ */ jsx(Icon, {
96
- svg: SvgExpandMore,
97
- label: "",
98
- size: 1.5,
99
- className: accordion_module_default.chevron
100
- });
101
- $[6] = t2;
102
- } else t2 = $[6];
103
- let t3;
104
- if ($[7] !== children || $[8] !== props || $[9] !== t1) {
105
- t3 = /* @__PURE__ */ jsxs(Accordion.Trigger, {
106
- className: t1,
138
+ if ($[8] !== children || $[9] !== props || $[10] !== t1) {
139
+ t2 = {
140
+ "aria-hidden": true,
107
141
  ...props,
108
- children: [children, t2]
109
- });
110
- $[7] = children;
111
- $[8] = props;
112
- $[9] = t1;
113
- $[10] = t3;
114
- } else t3 = $[10];
115
- return t3;
142
+ className: t1,
143
+ children
144
+ };
145
+ $[8] = children;
146
+ $[9] = props;
147
+ $[10] = t1;
148
+ $[11] = t2;
149
+ } else t2 = $[11];
150
+ let t3;
151
+ if ($[12] !== ref || $[13] !== render || $[14] !== t2) {
152
+ t3 = {
153
+ defaultTagName: "span",
154
+ render,
155
+ ref,
156
+ props: t2
157
+ };
158
+ $[12] = ref;
159
+ $[13] = render;
160
+ $[14] = t2;
161
+ $[15] = t3;
162
+ } else t3 = $[15];
163
+ const element = useRender(t3);
164
+ return children === void 0 || children === null ? null : element;
116
165
  };
166
+ /** What the item holds, folding along its height. */
117
167
  var Panel = (t0) => {
118
168
  const $ = c(12);
119
169
  let children;
@@ -168,7 +218,10 @@ var Panel = (t0) => {
168
218
  * <Accordion.Root>
169
219
  * <Accordion.Item value="fees">
170
220
  * <Accordion.Header>
171
- * <Accordion.Trigger>Fees</Accordion.Trigger>
221
+ * <Accordion.Trigger>
222
+ * Fees
223
+ * <Accordion.Indicator><ChevronIcon /></Accordion.Indicator>
224
+ * </Accordion.Trigger>
172
225
  * </Accordion.Header>
173
226
  * <Accordion.Panel>{fees}</Accordion.Panel>
174
227
  * </Accordion.Item>
@@ -179,6 +232,7 @@ var Accordion$1 = {
179
232
  Item,
180
233
  Header: Accordion.Header,
181
234
  Trigger,
235
+ Indicator,
182
236
  Panel
183
237
  };
184
238
  export { Accordion$1 as Accordion };
@@ -1,16 +1,16 @@
1
1
  import './accordion.css';// src/components/accordion/accordion.module.scss
2
- var root = "_root_1u0up_3";
3
- var item = "_item_1u0up_8";
4
- var trigger = "_trigger_1u0up_12";
5
- var chevron = "_chevron_1u0up_64";
6
- var panel = "_panel_1u0up_75";
7
- var content = "_content_1u0up_90";
2
+ var root = "_root_1qlrq_3";
3
+ var item = "_item_1qlrq_8";
4
+ var trigger = "_trigger_1qlrq_12";
5
+ var indicator = "_indicator_1qlrq_64";
6
+ var panel = "_panel_1qlrq_80";
7
+ var content = "_content_1qlrq_95";
8
8
  var accordion_module_default = {
9
9
  root,
10
10
  item,
11
11
  trigger,
12
- chevron,
12
+ indicator,
13
13
  panel,
14
14
  content
15
15
  };
16
- export { chevron, content, accordion_module_default as default, item, panel, root, trigger };
16
+ export { content, accordion_module_default as default, indicator, item, panel, root, trigger };
@@ -29,7 +29,7 @@ export type ActiveFilterDescribers<TFilters> = Readonly<{
29
29
  * multi-value filter. `render` maps one value to its display text.
30
30
  *
31
31
  * @example
32
- * // statuses?: DeclarationStatus[]
32
+ * // statuses?: InvoiceStatus[]
33
33
  * describeList({
34
34
  * label: "Status",
35
35
  * render: (status) => statusLabels[status](),
@@ -4,7 +4,7 @@
4
4
  * multi-value filter. `render` maps one value to its display text.
5
5
  *
6
6
  * @example
7
- * // statuses?: DeclarationStatus[]
7
+ * // statuses?: InvoiceStatus[]
8
8
  * describeList({
9
9
  * label: "Status",
10
10
  * render: (status) => statusLabels[status](),
@@ -1,6 +1,35 @@
1
1
  import type { ReactNode } from "react";
2
+ import type { Key } from "react-aria-components";
3
+ import type { Tone, ToneVariant } from "../../lib/tone.ts";
2
4
  import { type FilterView } from "../filter-bar/use-filter-view.ts";
3
5
  import type { ActiveFilterDescribers } from "./active-filter-describers.ts";
6
+ /** One chip for a committed filter, ready for a `TagGroup.Tag`. */
7
+ export type ActiveFilterChip = Readonly<{
8
+ /** The chip's key in the `TagGroup`. */
9
+ id: string;
10
+ content: ReactNode;
11
+ textValue?: string;
12
+ tone?: Tone;
13
+ variant: ToneVariant;
14
+ /** Clears what the chip stands for. */
15
+ onRemove: () => void;
16
+ }>;
17
+ /** The chips for the committed filters, and the `TagGroup.Root` `onRemove` that clears them. */
18
+ export type ActiveFilterChips = Readonly<{
19
+ chips: readonly ActiveFilterChip[];
20
+ /** Clears the filters behind the removed keys; pass it to `TagGroup.Root`. */
21
+ onRemove: (keys: Set<Key>) => void;
22
+ }>;
23
+ /**
24
+ * Builds one or more chips per described, non-empty committed filter, for a
25
+ * caller that renders its own `TagGroup`.
26
+ *
27
+ * @example
28
+ * const { chips, onRemove } = useActiveFilterChips(filters, {
29
+ * status: describeValue({ label: "Status" }),
30
+ * });
31
+ */
32
+ export declare const useActiveFilterChips: <TFilters extends object>(filters: FilterView<TFilters>, describe: ActiveFilterDescribers<TFilters>) => ActiveFilterChips;
4
33
  export type ActiveFiltersProps<TFilters extends object> = Readonly<{
5
34
  filters: FilterView<TFilters>;
6
35
  /** Maps a filter key + value to one or more chip descriptors. */
@@ -9,12 +38,15 @@ export type ActiveFiltersProps<TFilters extends object> = Readonly<{
9
38
  label: string;
10
39
  /** Each chip's remove button's name and tooltip, such as "Remove". */
11
40
  removeLabel: string;
41
+ /** The glyph on each chip's remove button, such as a cross. */
42
+ removeIcon: ReactNode;
12
43
  className?: string;
13
44
  }>;
14
45
  /**
15
46
  * A roving-focus row of removable chips for the committed filters, on the
16
47
  * kit's `TagGroup`. Renders one or more chips per described, non-empty
17
- * committed field, and nothing when none are active.
48
+ * committed field, and nothing when none are active. Compose `TagGroup` over
49
+ * `useActiveFilterChips` where a chip needs more than this.
18
50
  *
19
51
  * @example
20
52
  * <ActiveFilters
@@ -22,6 +54,7 @@ export type ActiveFiltersProps<TFilters extends object> = Readonly<{
22
54
  * describe={{ status: describeValue({ label: "Status" }) }}
23
55
  * label="Active filters"
24
56
  * removeLabel="Remove"
57
+ * removeIcon={<CloseIcon />}
25
58
  * />
26
59
  */
27
- export declare const ActiveFilters: <TFilters extends object>({ filters, describe, label, removeLabel, className, }: ActiveFiltersProps<TFilters>) => ReactNode;
60
+ export declare const ActiveFilters: <TFilters extends object>({ filters, describe, label, removeLabel, removeIcon, className, }: ActiveFiltersProps<TFilters>) => ReactNode;
@@ -3,8 +3,17 @@ import { TagGroup } from "../tag-group/tag-group.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  // src/components/active-filters/active-filters.tsx
6
- var buildChips = (filters, describe) => {
7
- return Object.keys(describe).filter((key) => key in describe).flatMap((key) => {
6
+ /**
7
+ * Builds one or more chips per described, non-empty committed filter, for a
8
+ * caller that renders its own `TagGroup`.
9
+ *
10
+ * @example
11
+ * const { chips, onRemove } = useActiveFilterChips(filters, {
12
+ * status: describeValue({ label: "Status" }),
13
+ * });
14
+ */
15
+ var useActiveFilterChips = (filters, describe) => {
16
+ const chips = Object.keys(describe).filter((key) => key in describe).flatMap((key) => {
8
17
  const value = filters.committed[key];
9
18
  if (!isActiveFilterValue(value)) return [];
10
19
  const described = describe[key]?.(value);
@@ -20,11 +29,18 @@ var buildChips = (filters, describe) => {
20
29
  })
21
30
  }));
22
31
  });
32
+ return {
33
+ chips,
34
+ onRemove: (removed) => {
35
+ for (const chip of chips) if (removed.has(chip.id)) chip.onRemove();
36
+ }
37
+ };
23
38
  };
24
39
  /**
25
40
  * A roving-focus row of removable chips for the committed filters, on the
26
41
  * kit's `TagGroup`. Renders one or more chips per described, non-empty
27
- * committed field, and nothing when none are active.
42
+ * committed field, and nothing when none are active. Compose `TagGroup` over
43
+ * `useActiveFilterChips` where a chip needs more than this.
28
44
  *
29
45
  * @example
30
46
  * <ActiveFilters
@@ -32,65 +48,54 @@ var buildChips = (filters, describe) => {
32
48
  * describe={{ status: describeValue({ label: "Status" }) }}
33
49
  * label="Active filters"
34
50
  * removeLabel="Remove"
51
+ * removeIcon={<CloseIcon />}
35
52
  * />
36
53
  */
37
54
  var ActiveFilters = (t0) => {
38
- const $ = c(15);
39
- const { filters, describe, label, removeLabel, className } = t0;
55
+ const $ = c(11);
56
+ const { filters, describe, label, removeLabel, removeIcon, className } = t0;
57
+ const { chips, onRemove } = useActiveFilterChips(filters, describe);
58
+ if (chips.length === 0) return null;
40
59
  let t1;
41
- if ($[0] !== describe || $[1] !== filters) {
42
- t1 = buildChips(filters, describe);
43
- $[0] = describe;
44
- $[1] = filters;
60
+ if ($[0] !== removeIcon || $[1] !== removeLabel) {
61
+ t1 = (chip) => /* @__PURE__ */ jsxs(TagGroup.Tag, {
62
+ id: chip.id,
63
+ textValue: chip.textValue,
64
+ tone: chip.tone,
65
+ variant: chip.variant,
66
+ children: [chip.content, /* @__PURE__ */ jsx(TagGroup.Remove, {
67
+ label: removeLabel,
68
+ children: removeIcon
69
+ })]
70
+ });
71
+ $[0] = removeIcon;
72
+ $[1] = removeLabel;
45
73
  $[2] = t1;
46
74
  } else t1 = $[2];
47
- const chips = t1;
48
- if (chips.length === 0) return null;
49
75
  let t2;
50
- if ($[3] !== chips) {
51
- t2 = (keys) => {
52
- for (const chip of chips) if (keys.has(chip.id)) chip.onRemove();
53
- };
54
- $[3] = chips;
55
- $[4] = t2;
56
- } else t2 = $[4];
57
- const handleRemove = t2;
58
- let t3;
59
- if ($[5] !== removeLabel) {
60
- t3 = (chip_0) => /* @__PURE__ */ jsxs(TagGroup.Tag, {
61
- id: chip_0.id,
62
- textValue: chip_0.textValue,
63
- tone: chip_0.tone,
64
- variant: chip_0.variant,
65
- children: [chip_0.content, /* @__PURE__ */ jsx(TagGroup.Remove, { label: removeLabel })]
66
- });
67
- $[5] = removeLabel;
68
- $[6] = t3;
69
- } else t3 = $[6];
70
- let t4;
71
- if ($[7] !== chips || $[8] !== t3) {
72
- t4 = /* @__PURE__ */ jsx(TagGroup.List, {
76
+ if ($[3] !== chips || $[4] !== t1) {
77
+ t2 = /* @__PURE__ */ jsx(TagGroup.List, {
73
78
  items: chips,
74
- children: t3
79
+ children: t1
75
80
  });
76
- $[7] = chips;
77
- $[8] = t3;
78
- $[9] = t4;
79
- } else t4 = $[9];
80
- let t5;
81
- if ($[10] !== className || $[11] !== handleRemove || $[12] !== label || $[13] !== t4) {
82
- t5 = /* @__PURE__ */ jsx(TagGroup.Root, {
81
+ $[3] = chips;
82
+ $[4] = t1;
83
+ $[5] = t2;
84
+ } else t2 = $[5];
85
+ let t3;
86
+ if ($[6] !== className || $[7] !== label || $[8] !== onRemove || $[9] !== t2) {
87
+ t3 = /* @__PURE__ */ jsx(TagGroup.Root, {
83
88
  "aria-label": label,
84
- onRemove: handleRemove,
89
+ onRemove,
85
90
  className,
86
- children: t4
91
+ children: t2
87
92
  });
88
- $[10] = className;
89
- $[11] = handleRemove;
90
- $[12] = label;
91
- $[13] = t4;
92
- $[14] = t5;
93
- } else t5 = $[14];
94
- return t5;
93
+ $[6] = className;
94
+ $[7] = label;
95
+ $[8] = onRemove;
96
+ $[9] = t2;
97
+ $[10] = t3;
98
+ } else t3 = $[10];
99
+ return t3;
95
100
  };
96
- export { ActiveFilters };
101
+ export { ActiveFilters, useActiveFilterChips };
@@ -1,3 +1,3 @@
1
1
  import { describeFlag, describeList, describeValue } from "./active-filter-describers.js";
2
- import { ActiveFilters } from "./active-filters.js";
3
- export { ActiveFilters, describeFlag, describeList, describeValue };
2
+ import { ActiveFilters, useActiveFilterChips } from "./active-filters.js";
3
+ export { ActiveFilters, describeFlag, describeList, describeValue, useActiveFilterChips };