@12-apps/ui 6.24.7 → 6.25.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 (221) hide show
  1. package/components-catalog.md +1 -1
  2. package/dist/_internal/components/data-display/CardKit/CardKebab.js +4 -4
  3. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +4 -4
  4. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +4 -4
  5. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +34 -34
  6. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +40 -40
  7. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +4 -4
  8. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +5 -5
  9. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +4 -4
  10. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +15 -15
  11. package/dist/_internal/components/data-display/DataViews/data-views-columns.js +5 -5
  12. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +5 -5
  13. package/dist/_internal/components/data-display/DataViews/data-views-empty.js +4 -4
  14. package/dist/_internal/components/data-display/DataViews/data-views-export.js +4 -4
  15. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +16 -16
  16. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +6 -6
  17. package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +4 -4
  18. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +31 -31
  19. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +20 -20
  20. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +4 -4
  21. package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +4 -4
  22. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +9 -9
  23. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +7 -7
  24. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +8 -8
  25. package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +4 -4
  26. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +6 -6
  27. package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +4 -4
  28. package/dist/_internal/components/feedback/index.js +4 -4
  29. package/dist/_internal/components/form/Button/Button.js +3 -3
  30. package/dist/_internal/components/form/Button/Button.metrics.js +3 -1
  31. package/dist/_internal/components/form/Button/Button.styles.js +2 -2
  32. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +8 -8
  33. package/dist/_internal/components/form/CategorySelect/CategoryPanelFoot.js +2 -2
  34. package/dist/_internal/components/form/CategorySelect/CategoryPanelHead.js +2 -2
  35. package/dist/_internal/components/form/CategorySelect/CategoryPanelList.js +4 -4
  36. package/dist/_internal/components/form/CategorySelect/CategoryQuickActions.js +2 -2
  37. package/dist/_internal/components/form/CategorySelect/CategoryRows.js +7 -9
  38. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +14 -14
  39. package/dist/_internal/components/form/CategorySelect/CategorySelect.styles.js +3 -1
  40. package/dist/_internal/components/form/CategorySelect/CategoryTrigger.js +2 -2
  41. package/dist/_internal/components/form/CategorySelect/category-keyboard.js +2 -2
  42. package/dist/_internal/components/form/CategorySelect/category-tree.js +11 -3
  43. package/dist/_internal/components/form/CategorySelect/useCategoryCommit.js +2 -2
  44. package/dist/_internal/components/form/CategorySelect/useCategoryKeyHandler.js +3 -3
  45. package/dist/_internal/components/form/CategorySelect/useCategorySelect.js +2 -2
  46. package/dist/_internal/components/form/index.js +3 -3
  47. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +15 -15
  48. package/dist/_internal/components/form/total-form/Fields/index.js +16 -16
  49. package/dist/_internal/components/form/total-form/SubmitButton.js +4 -4
  50. package/dist/_internal/components/index.js +5 -5
  51. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +4 -4
  52. package/dist/_internal/components/navigation/index.js +4 -4
  53. package/dist/_internal/social-login-button/social-login-button.js +4 -4
  54. package/dist/_internal/user-avatar/user-avatar.js +4 -4
  55. package/dist/{chunk-6JGPPTLX.js → chunk-2GI7ANEL.js} +3 -3
  56. package/dist/{chunk-U2ZDN2AL.js → chunk-2PBGVMM2.js} +2 -2
  57. package/dist/{chunk-ITGG5OKP.js → chunk-5LQ7PKMW.js} +3 -1
  58. package/dist/chunk-5LQ7PKMW.js.map +1 -0
  59. package/dist/{chunk-4T7TXRGM.js → chunk-6ZY5XU4J.js} +3 -3
  60. package/dist/{chunk-CHPZTF34.js → chunk-7KWBGMQC.js} +2 -2
  61. package/dist/{chunk-6NSIZ2ZO.js → chunk-7MN6I5NK.js} +3 -3
  62. package/dist/{chunk-PN5CQKA2.js → chunk-AXTLFK4T.js} +2 -2
  63. package/dist/{chunk-JT6TERQL.js → chunk-BB2OUERT.js} +2 -2
  64. package/dist/{chunk-XUJG2HFW.js → chunk-BH5BXLGI.js} +2 -2
  65. package/dist/{chunk-4TXIZ5WI.js → chunk-CJUOBTLL.js} +2 -2
  66. package/dist/{chunk-NWNSUHEB.js → chunk-CT5K725B.js} +2 -2
  67. package/dist/{chunk-6OORHAE7.js → chunk-EQ7PWGBN.js} +3 -3
  68. package/dist/{chunk-EJQW2IYW.js → chunk-FPFUXRD2.js} +2 -2
  69. package/dist/{chunk-ZRPGVHTR.js → chunk-GGI7GM5O.js} +2 -2
  70. package/dist/{chunk-KIHQE5YA.js → chunk-GVDJQMFI.js} +2 -2
  71. package/dist/{chunk-TX5V42AY.js → chunk-HEBQS7QP.js} +3 -3
  72. package/dist/{chunk-BUQ2JUND.js → chunk-JO6BBSGY.js} +2 -2
  73. package/dist/{chunk-4ZV7N5CU.js → chunk-JXPHU3K5.js} +4 -4
  74. package/dist/{chunk-TW3BXVEU.js → chunk-KMXAPYU2.js} +2 -2
  75. package/dist/{chunk-CJBBGMIA.js → chunk-MNXVXW4T.js} +2 -2
  76. package/dist/{chunk-OFOYMZRY.js → chunk-NPN7JTRM.js} +22 -47
  77. package/dist/chunk-NPN7JTRM.js.map +1 -0
  78. package/dist/{chunk-BPLFM2GL.js → chunk-NYEA7JAI.js} +3 -3
  79. package/dist/{chunk-O6AZDQJJ.js → chunk-OE2ZVL67.js} +2 -2
  80. package/dist/{chunk-4523RYE7.js → chunk-OG2FP6SE.js} +2 -2
  81. package/dist/{chunk-XKV5ZIBG.js → chunk-OGGPQVIG.js} +2 -2
  82. package/dist/{chunk-SQNW22ZZ.js → chunk-OV4WREMW.js} +3 -3
  83. package/dist/{chunk-OVLNF4AZ.js → chunk-P7IVAMAU.js} +24 -35
  84. package/dist/chunk-P7IVAMAU.js.map +1 -0
  85. package/dist/{chunk-6LGWJFQK.js → chunk-PFDM2OIP.js} +2 -2
  86. package/dist/chunk-PN4HVM43.js +160 -0
  87. package/dist/chunk-PN4HVM43.js.map +1 -0
  88. package/dist/{chunk-WWM2YTW4.js → chunk-R2AZOWEZ.js} +21 -27
  89. package/dist/chunk-R2AZOWEZ.js.map +1 -0
  90. package/dist/{chunk-2GB5CIN6.js → chunk-RZVUY2MO.js} +8 -4
  91. package/dist/chunk-RZVUY2MO.js.map +1 -0
  92. package/dist/{chunk-YTOYMJPM.js → chunk-SLVQ33AN.js} +15 -5
  93. package/dist/chunk-SLVQ33AN.js.map +1 -0
  94. package/dist/{chunk-H5VEJDEK.js → chunk-TVPPA4RD.js} +7 -7
  95. package/dist/{chunk-ISH42UC7.js → chunk-USJPZ5Q7.js} +2 -2
  96. package/dist/{chunk-5OIH36KX.js → chunk-V4FKHLEB.js} +2 -2
  97. package/dist/{chunk-ZUIJ3N7N.js → chunk-V6Z4XS3I.js} +5 -3
  98. package/dist/chunk-V6Z4XS3I.js.map +1 -0
  99. package/dist/{chunk-JM64OEU6.js → chunk-WAPJ2DL3.js} +10 -13
  100. package/dist/chunk-WAPJ2DL3.js.map +1 -0
  101. package/dist/{chunk-QPLWDSYG.js → chunk-WM6Y2S6W.js} +4 -4
  102. package/dist/{chunk-EMMPNB6D.js → chunk-X4Z62ZQY.js} +2 -2
  103. package/dist/{chunk-ZAB65STX.js → chunk-XHHR6G35.js} +2 -2
  104. package/dist/{chunk-OP65D4UR.js → chunk-XR6WBW23.js} +2 -2
  105. package/dist/{chunk-WIT3Y7JT.js → chunk-Y2B3I3IH.js} +2 -2
  106. package/dist/{chunk-R6SNYC3D.js → chunk-Y3KRUT7O.js} +2 -2
  107. package/dist/{chunk-TPLKJHNN.js → chunk-ZC7RQDZ5.js} +8 -7
  108. package/dist/chunk-ZC7RQDZ5.js.map +1 -0
  109. package/dist/{chunk-TFO6GBW7.js → chunk-ZS44PY7T.js} +5 -1
  110. package/dist/chunk-ZS44PY7T.js.map +1 -0
  111. package/dist/{chunk-AJ6XEO4E.js → chunk-ZUY65MFH.js} +2 -2
  112. package/dist/{chunk-4X4KM4ZB.js → chunk-ZZMZF7PZ.js} +2 -2
  113. package/dist/data-display/CardKit.js +5 -5
  114. package/dist/data-display/DataViews.js +40 -40
  115. package/dist/feedback/ConfirmAction.js +4 -4
  116. package/dist/form/Button.js +3 -3
  117. package/dist/form/CategorySelect.js +24 -16
  118. package/dist/form/total-form.js +20 -20
  119. package/dist/native/chunks/{chunk-ZAQ3AZJM.js → chunk-2R2R35C5.js} +2 -2
  120. package/dist/native/chunks/{chunk-ATS7STZJ.js → chunk-WL5LXVCK.js} +1 -1
  121. package/dist/native/chunks/{chunk-ATS7STZJ.js.map → chunk-WL5LXVCK.js.map} +1 -1
  122. package/dist/native/data-display/EmptyState.js +2 -2
  123. package/dist/native/data-display/ErrorState.js +1 -1
  124. package/dist/native/data-display/FleetMap.js +2 -2
  125. package/dist/native/form/Button.js +1 -1
  126. package/dist/navigation/AppHeader.js +4 -4
  127. package/dist/social-login-button.js +4 -4
  128. package/dist/types/components/form/Button/Button.d.ts +7 -3
  129. package/dist/types/components/form/Button/Button.d.ts.map +1 -1
  130. package/dist/types/components/form/Button/Button.metrics.d.ts +25 -0
  131. package/dist/types/components/form/Button/Button.metrics.d.ts.map +1 -1
  132. package/dist/types/components/form/Button/Button.types.d.ts +37 -4
  133. package/dist/types/components/form/Button/Button.types.d.ts.map +1 -1
  134. package/dist/types/components/form/CategorySelect/CategoryPanel.d.ts.map +1 -1
  135. package/dist/types/components/form/CategorySelect/CategoryPanelList.d.ts +6 -0
  136. package/dist/types/components/form/CategorySelect/CategoryPanelList.d.ts.map +1 -1
  137. package/dist/types/components/form/CategorySelect/CategoryQuickActions.d.ts.map +1 -1
  138. package/dist/types/components/form/CategorySelect/CategoryRows.d.ts +12 -24
  139. package/dist/types/components/form/CategorySelect/CategoryRows.d.ts.map +1 -1
  140. package/dist/types/components/form/CategorySelect/CategorySelect.d.ts +10 -7
  141. package/dist/types/components/form/CategorySelect/CategorySelect.d.ts.map +1 -1
  142. package/dist/types/components/form/CategorySelect/CategorySelect.styles.d.ts +11 -0
  143. package/dist/types/components/form/CategorySelect/CategorySelect.styles.d.ts.map +1 -1
  144. package/dist/types/components/form/CategorySelect/CategorySelect.types.d.ts +10 -2
  145. package/dist/types/components/form/CategorySelect/CategorySelect.types.d.ts.map +1 -1
  146. package/dist/types/components/form/CategorySelect/category-keyboard.d.ts.map +1 -1
  147. package/dist/types/components/form/CategorySelect/category-tree.d.ts +52 -20
  148. package/dist/types/components/form/CategorySelect/category-tree.d.ts.map +1 -1
  149. package/dist/types/components/form/CategorySelect/index.d.ts +1 -1
  150. package/dist/types/components/form/CategorySelect/index.d.ts.map +1 -1
  151. package/dist/types/components/form/CategorySelect/useCategorySelect.d.ts +2 -0
  152. package/dist/types/components/form/CategorySelect/useCategorySelect.d.ts.map +1 -1
  153. package/dist/types-native/components/form/Button/Button.metrics.d.ts +25 -0
  154. package/dist/types-native/components/form/Button/Button.metrics.d.ts.map +1 -1
  155. package/dist/user-avatar.js +4 -4
  156. package/package.json +1 -1
  157. package/src/components/form/Button/Button.md +39 -0
  158. package/src/components/form/Button/Button.metrics.ts +26 -0
  159. package/src/components/form/Button/Button.tsx +77 -4
  160. package/src/components/form/Button/Button.types.ts +47 -5
  161. package/src/components/form/CategorySelect/CategoryPanel.tsx +1 -0
  162. package/src/components/form/CategorySelect/CategoryPanelList.tsx +42 -34
  163. package/src/components/form/CategorySelect/CategoryQuickActions.tsx +6 -4
  164. package/src/components/form/CategorySelect/CategoryRows.tsx +45 -81
  165. package/src/components/form/CategorySelect/CategorySelect.md +47 -13
  166. package/src/components/form/CategorySelect/CategorySelect.styles.ts +13 -0
  167. package/src/components/form/CategorySelect/CategorySelect.tsx +16 -14
  168. package/src/components/form/CategorySelect/CategorySelect.types.ts +10 -2
  169. package/src/components/form/CategorySelect/category-keyboard.ts +27 -31
  170. package/src/components/form/CategorySelect/category-tree.ts +143 -63
  171. package/src/components/form/CategorySelect/index.ts +4 -0
  172. package/src/components/form/CategorySelect/useCategorySelect.ts +15 -1
  173. package/dist/chunk-2GB5CIN6.js.map +0 -1
  174. package/dist/chunk-ITGG5OKP.js.map +0 -1
  175. package/dist/chunk-JM64OEU6.js.map +0 -1
  176. package/dist/chunk-LR6MSKTT.js +0 -124
  177. package/dist/chunk-LR6MSKTT.js.map +0 -1
  178. package/dist/chunk-OFOYMZRY.js.map +0 -1
  179. package/dist/chunk-OVLNF4AZ.js.map +0 -1
  180. package/dist/chunk-TFO6GBW7.js.map +0 -1
  181. package/dist/chunk-TPLKJHNN.js.map +0 -1
  182. package/dist/chunk-WWM2YTW4.js.map +0 -1
  183. package/dist/chunk-YTOYMJPM.js.map +0 -1
  184. package/dist/chunk-ZUIJ3N7N.js.map +0 -1
  185. /package/dist/{chunk-6JGPPTLX.js.map → chunk-2GI7ANEL.js.map} +0 -0
  186. /package/dist/{chunk-U2ZDN2AL.js.map → chunk-2PBGVMM2.js.map} +0 -0
  187. /package/dist/{chunk-4T7TXRGM.js.map → chunk-6ZY5XU4J.js.map} +0 -0
  188. /package/dist/{chunk-CHPZTF34.js.map → chunk-7KWBGMQC.js.map} +0 -0
  189. /package/dist/{chunk-6NSIZ2ZO.js.map → chunk-7MN6I5NK.js.map} +0 -0
  190. /package/dist/{chunk-PN5CQKA2.js.map → chunk-AXTLFK4T.js.map} +0 -0
  191. /package/dist/{chunk-JT6TERQL.js.map → chunk-BB2OUERT.js.map} +0 -0
  192. /package/dist/{chunk-XUJG2HFW.js.map → chunk-BH5BXLGI.js.map} +0 -0
  193. /package/dist/{chunk-4TXIZ5WI.js.map → chunk-CJUOBTLL.js.map} +0 -0
  194. /package/dist/{chunk-NWNSUHEB.js.map → chunk-CT5K725B.js.map} +0 -0
  195. /package/dist/{chunk-6OORHAE7.js.map → chunk-EQ7PWGBN.js.map} +0 -0
  196. /package/dist/{chunk-EJQW2IYW.js.map → chunk-FPFUXRD2.js.map} +0 -0
  197. /package/dist/{chunk-ZRPGVHTR.js.map → chunk-GGI7GM5O.js.map} +0 -0
  198. /package/dist/{chunk-KIHQE5YA.js.map → chunk-GVDJQMFI.js.map} +0 -0
  199. /package/dist/{chunk-TX5V42AY.js.map → chunk-HEBQS7QP.js.map} +0 -0
  200. /package/dist/{chunk-BUQ2JUND.js.map → chunk-JO6BBSGY.js.map} +0 -0
  201. /package/dist/{chunk-4ZV7N5CU.js.map → chunk-JXPHU3K5.js.map} +0 -0
  202. /package/dist/{chunk-TW3BXVEU.js.map → chunk-KMXAPYU2.js.map} +0 -0
  203. /package/dist/{chunk-CJBBGMIA.js.map → chunk-MNXVXW4T.js.map} +0 -0
  204. /package/dist/{chunk-BPLFM2GL.js.map → chunk-NYEA7JAI.js.map} +0 -0
  205. /package/dist/{chunk-O6AZDQJJ.js.map → chunk-OE2ZVL67.js.map} +0 -0
  206. /package/dist/{chunk-4523RYE7.js.map → chunk-OG2FP6SE.js.map} +0 -0
  207. /package/dist/{chunk-XKV5ZIBG.js.map → chunk-OGGPQVIG.js.map} +0 -0
  208. /package/dist/{chunk-SQNW22ZZ.js.map → chunk-OV4WREMW.js.map} +0 -0
  209. /package/dist/{chunk-6LGWJFQK.js.map → chunk-PFDM2OIP.js.map} +0 -0
  210. /package/dist/{chunk-H5VEJDEK.js.map → chunk-TVPPA4RD.js.map} +0 -0
  211. /package/dist/{chunk-ISH42UC7.js.map → chunk-USJPZ5Q7.js.map} +0 -0
  212. /package/dist/{chunk-5OIH36KX.js.map → chunk-V4FKHLEB.js.map} +0 -0
  213. /package/dist/{chunk-QPLWDSYG.js.map → chunk-WM6Y2S6W.js.map} +0 -0
  214. /package/dist/{chunk-EMMPNB6D.js.map → chunk-X4Z62ZQY.js.map} +0 -0
  215. /package/dist/{chunk-ZAB65STX.js.map → chunk-XHHR6G35.js.map} +0 -0
  216. /package/dist/{chunk-OP65D4UR.js.map → chunk-XR6WBW23.js.map} +0 -0
  217. /package/dist/{chunk-WIT3Y7JT.js.map → chunk-Y2B3I3IH.js.map} +0 -0
  218. /package/dist/{chunk-R6SNYC3D.js.map → chunk-Y3KRUT7O.js.map} +0 -0
  219. /package/dist/{chunk-AJ6XEO4E.js.map → chunk-ZUY65MFH.js.map} +0 -0
  220. /package/dist/{chunk-4X4KM4ZB.js.map → chunk-ZZMZF7PZ.js.map} +0 -0
  221. /package/dist/native/chunks/{chunk-ZAQ3AZJM.js.map → chunk-2R2R35C5.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/form/CategorySelect/CategorySelect.tsx"],"sourcesContent":["'use client';\n\nimport { useEffect, useMemo, useRef } from 'react';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport useMediaQuery from '@mui/material/useMediaQuery/index.js';\n\nimport { categoryPath, summarizeSelection } from './category-tree';\nimport { CategoryPanel } from './CategoryPanel';\nimport { CategoryPanelSurface } from './CategoryPanelSurface';\nimport { CategoryTrigger } from './CategoryTrigger';\nimport { METRICS } from './CategorySelect.styles';\nimport type { CategoryGroup, CategorySelectProps } from './CategorySelect.types';\nimport { useCategoryCommit } from './useCategoryCommit';\nimport { useCategoryKeyHandler } from './useCategoryKeyHandler';\nimport { useCategorySelect } from './useCategorySelect';\nimport { FormControl, FormLabel, FormMessage } from '../Form';\n\n/** The applied selection, always as an array — the two modes differ in shape. */\nfunction appliedIds(props: CategorySelectProps): string[] {\n if (props.mode === 'single') return props.value ? [props.value] : [];\n return props.value;\n}\n\n/** True when the draft differs from what is already applied. */\nfunction draftChanged(draft: ReadonlySet<string>, applied: readonly string[]): boolean {\n return draft.size !== applied.length || applied.some((id) => !draft.has(id));\n}\n\n/**\n * \"Pai › Filha\" for a chosen id, so the trigger carries its context once the\n * panel has closed over it. The whole path, at whatever depth the row sits.\n */\nfunction singleLabel(groups: CategoryGroup[], value: string | null): string | undefined {\n if (!value) return undefined;\n return categoryPath(groups, value)?.join(' › ');\n}\n\n/** The optional props, resolved once so the component body stays branch-free. */\ninterface ResolvedConfig {\n single: boolean;\n placeholder: string;\n disabled: boolean;\n loading: boolean;\n fullWidth: boolean;\n showCounts: boolean;\n allowParentSelection: boolean;\n dataTestId: string;\n}\n\nfunction resolveConfig(props: CategorySelectProps): ResolvedConfig {\n const single = props.mode === 'single';\n return {\n single,\n placeholder: props.placeholder ?? (single ? props.copy.placeholderSingle : props.copy.placeholderMulti),\n disabled: props.disabled ?? false,\n loading: props.loading ?? false,\n fullWidth: props.fullWidth ?? false,\n showCounts: props.showCounts ?? false,\n allowParentSelection: props.allowParentSelection ?? false,\n dataTestId: props.dataTestId ?? 'category-select',\n };\n}\n\n/** Focus the search box on open, and keep the keyboard cursor in view. */\nfunction usePanelFocus(\n open: boolean,\n activeIndex: number,\n searchInputRef: React.RefObject<HTMLInputElement | null>,\n listRef: React.RefObject<HTMLDivElement | null>,\n): void {\n // The first thing an admin does with ten categories is type; focusing here\n // saves the extra click every single time the panel opens.\n useEffect(() => {\n if (!open) return undefined;\n const frame = requestAnimationFrame(() => searchInputRef.current?.focus());\n return () => cancelAnimationFrame(frame);\n }, [open, searchInputRef]);\n\n useEffect(() => {\n if (activeIndex < 0) return;\n const rows = listRef.current?.querySelectorAll('[role=\"option\"], [role=\"button\"]');\n rows?.[activeIndex]?.scrollIntoView({ block: 'nearest' });\n }, [activeIndex, listRef]);\n}\n\n/**\n * A hierarchical category picker: categories as the frame, whatever is filed\n * under them as the thing you choose.\n *\n * Two modes off one component. `multi` is the FILTER — ticks accumulate in a\n * draft and reach `onChange` only on Apply, so the list behind the panel does not\n * reload on every click. `single` is the \"move to…\" picker, where choosing a row\n * commits immediately because there is nothing to batch.\n *\n * The tree nests as deep as the payload does — a picker can file ITEMS under a\n * subcategory and get a third storey with no extra configuration. Opening\n * unfolds the top level, and a search reveals every hit whatever is folded.\n *\n * Selected categories pin above the list so they survive scrolling and\n * searching, search is accent-insensitive (`agua` finds `Águas`), and the whole\n * tree is keyboard-drivable — ↑↓ to move, → to open, ← to close, Space to mark,\n * Enter to apply, Esc to cancel.\n *\n * Under {@link METRICS.sheetBreakpoint} the panel becomes a bottom sheet, which\n * is the only way a 290px-tall list stays usable one-handed.\n */\nexport function CategorySelect(props: CategorySelectProps): React.JSX.Element {\n const { options, label, error, onCreateCategory, copy } = props;\n const {\n single,\n placeholder,\n disabled,\n loading,\n fullWidth,\n showCounts,\n allowParentSelection,\n dataTestId,\n } = resolveConfig(props);\n\n const theme = useTheme();\n const sheet = useMediaQuery(theme.breakpoints.down(METRICS.sheetBreakpoint));\n const applied = appliedIds(props);\n\n const state = useCategorySelect({ options, selected: applied });\n const searchInputRef = useRef<HTMLInputElement | null>(null);\n const listRef = useRef<HTMLDivElement | null>(null);\n usePanelFocus(state.open, state.activeIndex, searchInputRef, listRef);\n\n const chips = useMemo(\n () => summarizeSelection(state.allGroups, state.draft),\n [state.allGroups, state.draft],\n );\n const rowIds = useMemo(() => state.rows.map((row) => row.id), [state.rows]);\n\n const actions = useCategoryCommit({ props, state, single, allowParentSelection });\n const onKeyDown = useCategoryKeyHandler({ state, single, allowParentSelection, actions });\n\n return (\n <FormControl fullWidth={fullWidth} error={Boolean(error)}>\n {label && <FormLabel error={Boolean(error)}>{label}</FormLabel>}\n <CategoryTrigger copy={copy}\n placeholder={placeholder}\n selectionLabel={\n props.mode === 'single' ? singleLabel(state.allGroups, props.value) : undefined\n }\n count={single ? undefined : applied.length}\n open={state.open}\n disabled={disabled}\n fullWidth={fullWidth}\n onOpen={state.openPanel}\n onClear={applied.length > 0 ? actions.clearSelection : undefined}\n triggerRef={state.triggerRef}\n dataTestId={dataTestId}\n />\n <CategoryPanelSurface\n open={state.open}\n sheet={sheet}\n anchorEl={state.triggerRef.current}\n onClose={actions.cancel}\n >\n <CategoryPanel copy={copy}\n state={state}\n chips={chips}\n rowIds={rowIds}\n changed={draftChanged(state.draft, applied)}\n single={single}\n sheet={sheet}\n loading={loading}\n showCounts={showCounts}\n allowParentSelection={allowParentSelection}\n ariaLabel={label ?? placeholder}\n onKeyDown={onKeyDown}\n onActivateCategory={actions.activateCategory}\n onActivateSubcategory={actions.activateSubcategory}\n onApply={actions.commit}\n onCancel={actions.cancel}\n onCreateCategory={onCreateCategory}\n searchInputRef={searchInputRef}\n listRef={listRef}\n dataTestId={dataTestId}\n />\n </CategoryPanelSurface>\n {error && <FormMessage error dataTestId={`${dataTestId}-message`}>{error}</FormMessage>}\n </FormControl>\n );\n}\n"],"mappings":"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","names":[]}
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  DeleteViewDialog
3
- } from "./chunk-4X4KM4ZB.js";
3
+ } from "./chunk-ZZMZF7PZ.js";
4
4
  import {
5
5
  DataViewsGrid
6
- } from "./chunk-6OORHAE7.js";
6
+ } from "./chunk-EQ7PWGBN.js";
7
7
  import {
8
8
  viewStateKey
9
9
  } from "./chunk-ZOLAYP2D.js";
10
10
  import {
11
11
  ViewDialogs,
12
12
  ViewMutationErrorAlert
13
- } from "./chunk-4T7TXRGM.js";
13
+ } from "./chunk-6ZY5XU4J.js";
14
14
  import {
15
15
  useSavedViewsController
16
16
  } from "./chunk-HR7YTBR7.js";
@@ -178,4 +178,4 @@ function renderViewDialogs(ctl, fields, columns, views, testIdPrefix, onSaved) {
178
178
  export {
179
179
  DataViewsTableBase
180
180
  };
181
- //# sourceMappingURL=chunk-QPLWDSYG.js.map
181
+ //# sourceMappingURL=chunk-WM6Y2S6W.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  GridToolbar
3
- } from "./chunk-4ZV7N5CU.js";
3
+ } from "./chunk-JXPHU3K5.js";
4
4
 
5
5
  // src/components/data-display/DataViews/data-views-shell-toolbar.tsx
6
6
  import { jsx } from "react/jsx-runtime";
@@ -64,4 +64,4 @@ function ShellToolbar({
64
64
  export {
65
65
  ShellToolbar
66
66
  };
67
- //# sourceMappingURL=chunk-EMMPNB6D.js.map
67
+ //# sourceMappingURL=chunk-X4Z62ZQY.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isLeafCategory
3
- } from "./chunk-LR6MSKTT.js";
3
+ } from "./chunk-PN4HVM43.js";
4
4
 
5
5
  // src/components/form/CategorySelect/useCategoryCommit.ts
6
6
  import { useCallback, useMemo } from "react";
@@ -70,4 +70,4 @@ function useCategoryCommit({
70
70
  export {
71
71
  useCategoryCommit
72
72
  };
73
- //# sourceMappingURL=chunk-ZAB65STX.js.map
73
+ //# sourceMappingURL=chunk-XHHR6G35.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-4XK6JQ4D.js";
4
4
  import {
5
5
  Button
6
- } from "./chunk-YTOYMJPM.js";
6
+ } from "./chunk-SLVQ33AN.js";
7
7
 
8
8
  // src/components/form/total-form/SubmitButton.tsx
9
9
  import { jsx } from "react/jsx-runtime";
@@ -29,4 +29,4 @@ function SubmitButton({
29
29
  export {
30
30
  SubmitButton
31
31
  };
32
- //# sourceMappingURL=chunk-OP65D4UR.js.map
32
+ //# sourceMappingURL=chunk-XR6WBW23.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-4XK6JQ4D.js";
4
4
  import {
5
5
  CategorySelect
6
- } from "./chunk-JM64OEU6.js";
6
+ } from "./chunk-WAPJ2DL3.js";
7
7
 
8
8
  // src/components/form/total-form/Fields/CategoryField.tsx
9
9
  import { jsx } from "react/jsx-runtime";
@@ -38,4 +38,4 @@ function CategoryField({
38
38
  export {
39
39
  CategoryField
40
40
  };
41
- //# sourceMappingURL=chunk-WIT3Y7JT.js.map
41
+ //# sourceMappingURL=chunk-Y2B3I3IH.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-EOHKZGOZ.js";
7
7
  import {
8
8
  CategoryField
9
- } from "./chunk-WIT3Y7JT.js";
9
+ } from "./chunk-Y2B3I3IH.js";
10
10
  import {
11
11
  ToggleField
12
12
  } from "./chunk-LYMAMKJT.js";
@@ -30,4 +30,4 @@ __export(Fields_exports, {
30
30
  export {
31
31
  Fields_exports
32
32
  };
33
- //# sourceMappingURL=chunk-R6SNYC3D.js.map
33
+ //# sourceMappingURL=chunk-Y3KRUT7O.js.map
@@ -1,24 +1,24 @@
1
1
  import {
2
2
  CategoryQuickActions
3
- } from "./chunk-ZUIJ3N7N.js";
3
+ } from "./chunk-V6Z4XS3I.js";
4
4
  import {
5
5
  CategoryPanelList
6
- } from "./chunk-OVLNF4AZ.js";
6
+ } from "./chunk-P7IVAMAU.js";
7
7
  import {
8
8
  CategoryPanelHead,
9
9
  CategoryPinnedTray
10
- } from "./chunk-4TXIZ5WI.js";
10
+ } from "./chunk-CJUOBTLL.js";
11
11
  import {
12
12
  CategoryMultiFoot,
13
13
  CategorySingleFoot
14
- } from "./chunk-AJ6XEO4E.js";
14
+ } from "./chunk-ZUY65MFH.js";
15
15
  import {
16
16
  panelSx,
17
17
  sheetSx
18
- } from "./chunk-TFO6GBW7.js";
18
+ } from "./chunk-ZS44PY7T.js";
19
19
  import {
20
20
  removeChip
21
- } from "./chunk-LR6MSKTT.js";
21
+ } from "./chunk-PN4HVM43.js";
22
22
 
23
23
  // src/components/form/CategorySelect/CategoryPanel.tsx
24
24
  import Box from "@mui/material/Box/index.js";
@@ -82,6 +82,7 @@ function CategoryPanel({
82
82
  loading,
83
83
  showCounts,
84
84
  allowParentSelection,
85
+ deepTree: state.deepTree,
85
86
  isExpanded: state.isExpanded,
86
87
  onToggleExpanded: state.toggleExpanded,
87
88
  onActivateCategory,
@@ -155,4 +156,4 @@ function PanelFooter({
155
156
  export {
156
157
  CategoryPanel
157
158
  };
158
- //# sourceMappingURL=chunk-TPLKJHNN.js.map
159
+ //# sourceMappingURL=chunk-ZC7RQDZ5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/form/CategorySelect/CategoryPanel.tsx"],"sourcesContent":["'use client';\n\nimport type { CategorySelectCopy } from \"../../../copy\";\nimport Box from '@mui/material/Box/index.js';\n\nimport { removeChip } from './category-tree';\nimport { CategoryMultiFoot, CategorySingleFoot } from './CategoryPanelFoot';\nimport { CategoryPanelHead, CategoryPinnedTray } from './CategoryPanelHead';\nimport { CategoryPanelList } from './CategoryPanelList';\nimport { CategoryQuickActions } from './CategoryQuickActions';\nimport { panelSx, sheetSx } from './CategorySelect.styles';\nimport type { CategoryGroup, CategorySelectionChip } from './CategorySelect.types';\nimport type { CategorySelectState } from './useCategorySelect';\n\nexport interface CategoryPanelProps {\n /** The words this panel renders. REQUIRED — no default copy. */\n copy: CategorySelectCopy;\n state: CategorySelectState;\n chips: CategorySelectionChip[];\n rowIds: string[];\n /** True when the applied selection differs from the draft. */\n changed: boolean;\n single: boolean;\n sheet: boolean;\n loading: boolean;\n showCounts: boolean;\n allowParentSelection: boolean;\n ariaLabel: string;\n onKeyDown: (event: React.KeyboardEvent) => void;\n onActivateCategory: (group: CategoryGroup) => void;\n onActivateSubcategory: (id: string) => void;\n onApply: () => void;\n onCancel: () => void;\n onCreateCategory?: () => void;\n searchInputRef: React.RefObject<HTMLInputElement | null>;\n listRef: React.RefObject<HTMLDivElement | null>;\n dataTestId: string;\n}\n\n/** Search + pinned selection + tree + footer, in the panel's own chrome. */\nexport function CategoryPanel({\n state,\n chips,\n rowIds,\n changed,\n single,\n sheet,\n loading,\n showCounts,\n allowParentSelection,\n ariaLabel,\n onKeyDown,\n onActivateCategory,\n onActivateSubcategory,\n onApply,\n onCancel,\n onCreateCategory,\n searchInputRef,\n listRef,\n dataTestId,\n copy,\n}: CategoryPanelProps): React.JSX.Element {\n return (\n <Box\n onKeyDown={onKeyDown}\n role=\"dialog\"\n aria-label={ariaLabel}\n data-testid={`${dataTestId}-panel`}\n sx={(theme) => ({ ...panelSx(theme), ...(sheet ? sheetSx(theme) : {}) })}\n >\n <CategoryPanelHead\n copy={copy}\n query={state.query}\n placeholder={single ? copy.search.placeholderSingle : copy.search.placeholderMulti}\n sheet={sheet}\n quickActions={\n single ? undefined : <CategoryQuickActions state={state} dataTestId={dataTestId} copy={copy} />\n }\n onQueryChange={state.setQuery}\n searchInputRef={searchInputRef}\n dataTestId={dataTestId}\n />\n {!single && !loading && (\n <PinnedTray state={state} chips={chips} dataTestId={dataTestId} copy={copy} />\n )}\n <CategoryPanelList copy={copy}\n groups={state.visibleGroups}\n query={state.query}\n draft={state.draft}\n rowIds={rowIds}\n activeIndex={state.activeIndex}\n sheet={sheet}\n single={single}\n loading={loading}\n showCounts={showCounts}\n allowParentSelection={allowParentSelection}\n deepTree={state.deepTree}\n isExpanded={state.isExpanded}\n onToggleExpanded={state.toggleExpanded}\n onActivateCategory={onActivateCategory}\n onActivateSubcategory={onActivateSubcategory}\n onClearQuery={() => state.setQuery('')}\n onCreateCategory={onCreateCategory}\n listRef={listRef}\n dataTestId={dataTestId}\n />\n <PanelFooter\n state={state}\n changed={changed}\n single={single}\n sheet={sheet}\n copy={copy}\n onApply={onApply}\n onCancel={onCancel}\n dataTestId={dataTestId}\n />\n </Box>\n );\n}\n\n/** The selected-category chips, wired to remove from the draft. */\nfunction PinnedTray({\n state,\n chips,\n dataTestId,\n copy,\n}: Pick<CategoryPanelProps, 'state' | 'chips' | 'dataTestId' | 'copy'>): React.JSX.Element {\n return (\n <CategoryPinnedTray\n copy={copy}\n chips={chips}\n onRemove={(chipId) => state.setDraft(removeChip(state.allGroups, chipId, state.draft))}\n dataTestId={dataTestId}\n />\n );\n}\n\n/** Whichever footer the mode calls for. */\nfunction PanelFooter({\n state,\n changed,\n single,\n sheet,\n onApply,\n onCancel,\n dataTestId,\n copy,\n}: Pick<\n CategoryPanelProps,\n 'state' | 'changed' | 'single' | 'sheet' | 'onApply' | 'onCancel' | 'dataTestId' | 'copy'\n>): React.JSX.Element {\n if (single) {\n return (\n <CategorySingleFoot sheet={sheet} onCancel={onCancel} dataTestId={dataTestId} copy={copy} />\n );\n }\n return (\n <CategoryMultiFoot\n count={state.draft.size}\n changed={changed}\n sheet={sheet}\n copy={copy}\n onClear={() => state.setDraft(new Set())}\n onApply={onApply}\n dataTestId={dataTestId}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,SAAS;AA4DZ,SAa2B,KAb3B;AAvBG,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA0C;AACxC,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,MAAK;AAAA,MACL,cAAY;AAAA,MACZ,eAAa,GAAG,UAAU;AAAA,MAC1B,IAAI,CAAC,WAAW,EAAE,GAAG,QAAQ,KAAK,GAAG,GAAI,QAAQ,QAAQ,KAAK,IAAI,CAAC,EAAG;AAAA,MAEtE;AAAA;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA,OAAO,MAAM;AAAA,YACb,aAAa,SAAS,KAAK,OAAO,oBAAoB,KAAK,OAAO;AAAA,YAClE;AAAA,YACA,cACE,SAAS,SAAY,oBAAC,wBAAqB,OAAc,YAAwB,MAAY;AAAA,YAE/F,eAAe,MAAM;AAAA,YACrB;AAAA,YACA;AAAA;AAAA,QACF;AAAA,QACC,CAAC,UAAU,CAAC,WACX,oBAAC,cAAW,OAAc,OAAc,YAAwB,MAAY;AAAA,QAE9E;AAAA,UAAC;AAAA;AAAA,YAAkB;AAAA,YACjB,QAAQ,MAAM;AAAA,YACd,OAAO,MAAM;AAAA,YACb,OAAO,MAAM;AAAA,YACb;AAAA,YACA,aAAa,MAAM;AAAA,YACnB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,UAAU,MAAM;AAAA,YAChB,YAAY,MAAM;AAAA,YAClB,kBAAkB,MAAM;AAAA,YACxB;AAAA,YACA;AAAA,YACA,cAAc,MAAM,MAAM,SAAS,EAAE;AAAA,YACrC;AAAA,YACA;AAAA,YACA;AAAA;AAAA,QACF;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAAA,QACF;AAAA;AAAA;AAAA,EACF;AAEJ;AAGA,SAAS,WAAW;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA2F;AACzF,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,UAAU,CAAC,WAAW,MAAM,SAAS,WAAW,MAAM,WAAW,QAAQ,MAAM,KAAK,CAAC;AAAA,MACrF;AAAA;AAAA,EACF;AAEJ;AAGA,SAAS,YAAY;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAGsB;AACpB,MAAI,QAAQ;AACV,WACE,oBAAC,sBAAmB,OAAc,UAAoB,YAAwB,MAAY;AAAA,EAE9F;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO,MAAM,MAAM;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS,MAAM,MAAM,SAAS,oBAAI,IAAI,CAAC;AAAA,MACvC;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -16,6 +16,8 @@ var METRICS = {
16
16
  rowRadius: 8,
17
17
  boxSize: 18,
18
18
  chevronButton: 22,
19
+ /** Extra left padding per level of nesting. */
20
+ rowIndentStep: 14,
19
21
  footerButton: 32,
20
22
  sheetFooterButton: 38,
21
23
  /** Below this width the panel becomes a bottom sheet. */
@@ -202,6 +204,7 @@ var rowSx = (theme, active, sheet) => ({
202
204
  },
203
205
  "&:focus-visible": { outline: `2px solid ${theme.palette.primary.main}`, outlineOffset: 1 }
204
206
  });
207
+ var rowIndent = (depth) => depth === 0 ? {} : { paddingLeft: `${depth * METRICS.rowIndentStep}px` };
205
208
  var rowNameSx = (theme, isCategory) => ({
206
209
  flex: 1,
207
210
  minWidth: 0,
@@ -317,6 +320,7 @@ export {
317
320
  chipSx,
318
321
  listSx,
319
322
  rowSx,
323
+ rowIndent,
320
324
  rowNameSx,
321
325
  rowMetaSx,
322
326
  markSx,
@@ -329,4 +333,4 @@ export {
329
333
  emptySx,
330
334
  skeletonSx
331
335
  };
332
- //# sourceMappingURL=chunk-TFO6GBW7.js.map
336
+ //# sourceMappingURL=chunk-ZS44PY7T.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/form/CategorySelect/CategorySelect.styles.ts"],"sourcesContent":["import { alpha, type CSSObject, type Theme } from '@mui/material/styles/index.js';\n\nimport { fieldEdge } from '../../../tokens/field-edge';\n\n/**\n * The prototype's METRICS, verbatim.\n *\n * Every number here is lifted from the approved design and is intentionally\n * absolute rather than derived from `theme.spacing`: the design is specified on\n * a half-pixel type scale (13.5px rows, 1.5px checkbox borders) that an 8px\n * spacing grid cannot express without rounding the look away.\n *\n * COLOURS are the deliberate exception — they come from the theme, because a\n * tenant can white-label the palette (a hard-coded indigo would survive the\n * rebrand and the rest of the screen would not) and because the library ships a\n * dark mode. On the default light indigo theme the tokens below resolve to the\n * prototype's own values.\n */\nexport const METRICS = {\n triggerHeight: 38,\n triggerRadius: 10,\n panelWidth: 340,\n panelRadius: 14,\n listMaxHeight: 290,\n sheetListMaxHeight: 340,\n rowHeight: 36,\n sheetRowHeight: 42,\n rowRadius: 8,\n boxSize: 18,\n chevronButton: 22,\n /** Extra left padding per level of nesting. */\n rowIndentStep: 14,\n footerButton: 32,\n sheetFooterButton: 38,\n /** Below this width the panel becomes a bottom sheet. */\n sheetBreakpoint: 480,\n} as const;\n\n/** Accent family, derived so a white-labelled palette carries through. */\nconst accent = (theme: Theme) => ({\n main: theme.palette.primary.main,\n ink: theme.palette.primary.dark,\n soft: alpha(theme.palette.primary.main, 0.08),\n edge: alpha(theme.palette.primary.main, 0.28),\n ring: alpha(theme.palette.primary.main, 0.15),\n});\n\n/** The closed control. `selected` swaps it to the accent-tinted \"has filter\" skin. */\nexport const triggerSx = (theme: Theme, selected: boolean, open: boolean): CSSObject => {\n const brand = accent(theme);\n return {\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n height: METRICS.triggerHeight,\n padding: '0 10px 0 12px',\n borderRadius: `${METRICS.triggerRadius}px`,\n border: `1px solid ${open || selected ? brand.edge : fieldEdge(theme)}`,\n background: selected ? brand.soft : theme.palette.background.paper,\n color: selected ? brand.ink : theme.palette.text.primary,\n font: 'inherit',\n fontSize: 13,\n cursor: 'pointer',\n maxWidth: '100%',\n transition: 'border-color .12s, box-shadow .12s',\n boxShadow: open ? `0 0 0 3px ${brand.ring}` : 'none',\n '&:hover': { borderColor: open || selected ? brand.edge : theme.palette.text.disabled },\n '&:focus-visible': {\n outline: 'none',\n borderColor: brand.main,\n boxShadow: `0 0 0 3px ${alpha(brand.main, 0.18)}`,\n },\n '&:disabled': { opacity: 0.5, cursor: 'default' },\n };\n};\n\n/** The count pill inside the trigger. */\nexport const triggerCountSx = (theme: Theme): CSSObject => ({\n fontWeight: 600,\n fontSize: 11,\n lineHeight: 1,\n background: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n borderRadius: '999px',\n padding: '3px 6px',\n minWidth: 18,\n textAlign: 'center',\n});\n\n/** The trigger's inline clear (×) and the chevron. */\nexport const triggerClearSx: CSSObject = {\n width: 20,\n height: 20,\n flex: '0 0 auto',\n border: 0,\n background: 'transparent',\n borderRadius: '5px',\n display: 'grid',\n placeItems: 'center',\n cursor: 'pointer',\n color: 'inherit',\n opacity: 0.6,\n padding: 0,\n '&:hover': { background: alpha('#000', 0.08), opacity: 1 },\n};\n\nexport const triggerChevronSx = (open: boolean): CSSObject => ({\n width: 14,\n height: 14,\n flex: '0 0 auto',\n opacity: 0.55,\n transition: 'transform .15s',\n transform: open ? 'rotate(180deg)' : 'none',\n});\n\n/** The floating panel. */\nexport const panelSx = (theme: Theme): CSSObject => ({\n width: METRICS.panelWidth,\n maxWidth: '100%',\n background: theme.palette.background.paper,\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: `${METRICS.panelRadius}px`,\n boxShadow: '0 1px 2px rgba(16,20,35,.05), 0 18px 40px -12px rgba(16,20,35,.28)',\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden',\n});\n\n/** Bottom-sheet skin, applied under {@link METRICS.sheetBreakpoint}. */\nexport const sheetSx = (theme: Theme): CSSObject => ({\n width: '100%',\n maxWidth: 'none',\n borderRadius: '18px 18px 0 0',\n borderBottom: 0,\n position: 'relative',\n paddingTop: '4px',\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n top: 7,\n left: '50%',\n transform: 'translateX(-50%)',\n width: 36,\n height: 4,\n borderRadius: '2px',\n background: theme.palette.divider,\n },\n});\n\nexport const panelHeadSx = (theme: Theme, sheet: boolean): CSSObject => ({\n padding: sheet ? '18px 10px 8px' : '10px 10px 8px',\n borderBottom: `1px solid ${theme.palette.divider}`,\n});\n\nexport const pinnedSx = (theme: Theme): CSSObject => ({\n padding: '9px 10px',\n borderBottom: `1px solid ${theme.palette.divider}`,\n background: alpha(theme.palette.primary.main, 0.03),\n});\n\nexport const pinnedLabelSx = (theme: Theme): CSSObject => ({\n fontWeight: 600,\n fontSize: 10,\n lineHeight: 1,\n letterSpacing: '.08em',\n textTransform: 'uppercase',\n color: theme.palette.text.secondary,\n marginBottom: '7px',\n});\n\nexport const chipWrapSx: CSSObject = {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '5px',\n maxHeight: 74,\n overflow: 'auto',\n};\n\n/** A selected-category chip, in the pinned tray and the applied bar alike. */\nexport const chipSx = (theme: Theme): CSSObject => {\n const brand = accent(theme);\n return {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '5px',\n fontSize: 12,\n background: brand.soft,\n color: brand.ink,\n border: `1px solid ${brand.edge}`,\n borderRadius: '7px',\n padding: '3px 4px 3px 8px',\n '& button': {\n border: 0,\n background: 'transparent',\n color: 'inherit',\n cursor: 'pointer',\n padding: 0,\n width: 16,\n height: 16,\n borderRadius: '4px',\n display: 'grid',\n placeItems: 'center',\n opacity: 0.65,\n fontSize: 13,\n lineHeight: 1,\n '&:hover': { background: alpha(theme.palette.primary.main, 0.16), opacity: 1 },\n },\n };\n};\n\nexport const listSx = (sheet: boolean): CSSObject => ({\n overflow: 'auto',\n maxHeight: sheet ? METRICS.sheetListMaxHeight : METRICS.listMaxHeight,\n padding: '6px 6px 8px',\n scrollPadding: '8px 0',\n overscrollBehavior: 'contain',\n});\n\n/** A row. `active` is the KEYBOARD cursor — deliberately distinct from hover. */\nexport const rowSx = (theme: Theme, active: boolean, sheet: boolean): CSSObject => ({\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n padding: '0 8px',\n height: sheet ? METRICS.sheetRowHeight : METRICS.rowHeight,\n borderRadius: `${METRICS.rowRadius}px`,\n cursor: 'pointer',\n userSelect: 'none',\n position: 'relative',\n width: '100%',\n border: 0,\n textAlign: 'left',\n font: 'inherit',\n background: active ? alpha(theme.palette.primary.main, 0.08) : 'transparent',\n boxShadow: active ? `inset 0 0 0 1px ${alpha(theme.palette.primary.main, 0.3)}` : 'none',\n '&:hover': {\n background: active\n ? alpha(theme.palette.primary.main, 0.08)\n : theme.palette.action.hover,\n },\n '&:focus-visible': { outline: `2px solid ${theme.palette.primary.main}`, outlineOffset: 1 },\n});\n\n/**\n * How far a row sits in from the panel edge, by depth.\n *\n * One step per level, on top of {@link rowSx}'s own 8px gutter — depth 0 keeps\n * that gutter, and every level below it adds `METRICS.rowIndentStep`. Absolute\n * like the rest of this file: the step is the design's own 14px, not a spacing\n * multiple that would round it.\n */\nexport const rowIndent = (depth: number): CSSObject =>\n depth === 0 ? {} : { paddingLeft: `${depth * METRICS.rowIndentStep}px` };\n\nexport const rowNameSx = (theme: Theme, isCategory: boolean): CSSObject => ({\n flex: 1,\n minWidth: 0,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n fontSize: 13.5,\n fontWeight: isCategory ? 600 : 450,\n color: isCategory ? theme.palette.text.primary : theme.palette.text.secondary,\n});\n\nexport const rowMetaSx = (theme: Theme, selected: boolean): CSSObject => ({\n font: '500 11px/1 ui-monospace, SFMono-Regular, Menlo, monospace',\n color: selected ? theme.palette.primary.main : theme.palette.text.secondary,\n fontWeight: selected ? 600 : 500,\n flex: '0 0 auto',\n});\n\n/** The query hit inside a row label. */\nexport const markSx: CSSObject = {\n background: '#fff2a8',\n color: 'inherit',\n borderRadius: '2px',\n padding: '0 1px',\n};\n\nexport const chevronButtonSx = (theme: Theme, open: boolean): CSSObject => ({\n width: METRICS.chevronButton,\n height: METRICS.chevronButton,\n flex: '0 0 auto',\n border: 0,\n background: 'transparent',\n borderRadius: '6px',\n display: 'grid',\n placeItems: 'center',\n cursor: 'pointer',\n color: theme.palette.text.secondary,\n padding: 0,\n '&:hover': { background: theme.palette.action.hover, color: theme.palette.text.primary },\n '& svg': { width: 12, height: 12, transition: 'transform .15s', transform: open ? 'rotate(90deg)' : 'none' },\n});\n\n/** The tri-state checkbox: unchecked, checked, or the partial bar. */\nexport const checkboxSx = (theme: Theme, state: 'off' | 'partial' | 'on'): CSSObject => ({\n width: METRICS.boxSize,\n height: METRICS.boxSize,\n flex: '0 0 auto',\n border: `1.5px solid ${state === 'off' ? theme.palette.divider : theme.palette.primary.main}`,\n borderRadius: '5px',\n background: state === 'off' ? theme.palette.background.paper : theme.palette.primary.main,\n display: 'grid',\n placeItems: 'center',\n transition: 'background .1s, border-color .1s',\n '& svg': { width: 12, height: 12, color: theme.palette.primary.contrastText },\n});\n\n/** The partial bar drawn inside a half-selected checkbox. */\nexport const checkboxBarSx = (theme: Theme): CSSObject => ({\n width: 9,\n height: 2,\n background: theme.palette.primary.contrastText,\n borderRadius: '1px',\n});\n\nexport const radioSx = (theme: Theme, on: boolean): CSSObject => ({\n width: METRICS.boxSize,\n height: METRICS.boxSize,\n flex: '0 0 auto',\n borderRadius: '50%',\n background: theme.palette.background.paper,\n border: on\n ? `5.5px solid ${theme.palette.primary.main}`\n : `1.5px solid ${theme.palette.divider}`,\n boxSizing: 'border-box',\n});\n\nexport const sectionHeadSx = (theme: Theme): CSSObject => ({\n fontWeight: 600,\n fontSize: 10,\n lineHeight: 1,\n letterSpacing: '.08em',\n textTransform: 'uppercase',\n color: theme.palette.text.secondary,\n padding: '9px 8px 6px',\n});\n\nexport const footerSx = (theme: Theme): CSSObject => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '8px',\n padding: '9px 10px',\n borderTop: `1px solid ${theme.palette.divider}`,\n background: theme.palette.action.hover,\n});\n\nexport const emptySx = (theme: Theme): CSSObject => ({\n padding: '26px 18px',\n textAlign: 'center',\n color: theme.palette.text.secondary,\n '& strong': {\n display: 'block',\n color: theme.palette.text.primary,\n fontSize: 13.5,\n marginBottom: '4px',\n },\n '& p': { margin: '0 0 12px', fontSize: 12.5, lineHeight: 1.5 },\n});\n\n/** Skeleton row used while the catalogue loads. */\nexport const skeletonSx: CSSObject = {\n height: METRICS.rowHeight,\n margin: '4px 6px',\n borderRadius: `${METRICS.rowRadius}px`,\n};\n"],"mappings":"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","names":[]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  METRICS,
3
3
  footerSx
4
- } from "./chunk-TFO6GBW7.js";
4
+ } from "./chunk-ZS44PY7T.js";
5
5
 
6
6
  // src/components/form/CategorySelect/CategoryPanelFoot.tsx
7
7
  import Box from "@mui/material/Box/index.js";
@@ -77,4 +77,4 @@ export {
77
77
  CategoryMultiFoot,
78
78
  CategorySingleFoot
79
79
  };
80
- //# sourceMappingURL=chunk-AJ6XEO4E.js.map
80
+ //# sourceMappingURL=chunk-ZUY65MFH.js.map
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-WEBEOBN5.js";
11
11
  import {
12
12
  Button
13
- } from "./chunk-YTOYMJPM.js";
13
+ } from "./chunk-SLVQ33AN.js";
14
14
  import {
15
15
  Text
16
16
  } from "./chunk-343TTIHD.js";
@@ -69,4 +69,4 @@ function DeleteViewDialog({
69
69
  export {
70
70
  DeleteViewDialog
71
71
  };
72
- //# sourceMappingURL=chunk-4X4KM4ZB.js.map
72
+ //# sourceMappingURL=chunk-ZZMZF7PZ.js.map
@@ -17,14 +17,14 @@ import {
17
17
  } from "../chunk-SYJMI2NP.js";
18
18
  import {
19
19
  CardKebab
20
- } from "../chunk-CJBBGMIA.js";
20
+ } from "../chunk-MNXVXW4T.js";
21
21
  import {
22
22
  useRowConfirm
23
23
  } from "../chunk-3T2I6BYA.js";
24
24
  import "../chunk-WVML3ENZ.js";
25
25
  import "../chunk-IDHZHOZW.js";
26
26
  import "../chunk-XCBQXSTR.js";
27
- import "../chunk-NWNSUHEB.js";
27
+ import "../chunk-CT5K725B.js";
28
28
  import "../chunk-HJOABXKN.js";
29
29
  import "../chunk-3P4THDBM.js";
30
30
  import "../chunk-QQS3GQYS.js";
@@ -38,9 +38,9 @@ import "../chunk-BWB2MVWP.js";
38
38
  import "../chunk-TXKZEKJN.js";
39
39
  import "../chunk-6DPAWXZ3.js";
40
40
  import "../chunk-BA4RHQ3B.js";
41
- import "../chunk-YTOYMJPM.js";
42
- import "../chunk-JT6TERQL.js";
43
- import "../chunk-ITGG5OKP.js";
41
+ import "../chunk-SLVQ33AN.js";
42
+ import "../chunk-BB2OUERT.js";
43
+ import "../chunk-5LQ7PKMW.js";
44
44
  import "../chunk-TAMIZE4Q.js";
45
45
  import "../chunk-TYJR4GOF.js";
46
46
  import "../chunk-NQN5Z36J.js";
@@ -3,11 +3,11 @@ import {
3
3
  } from "../chunk-JWW2Z3RH.js";
4
4
  import {
5
5
  DataViewsTableBase
6
- } from "../chunk-QPLWDSYG.js";
7
- import "../chunk-4X4KM4ZB.js";
6
+ } from "../chunk-WM6Y2S6W.js";
7
+ import "../chunk-ZZMZF7PZ.js";
8
8
  import {
9
9
  DataViewsGrid
10
- } from "../chunk-6OORHAE7.js";
10
+ } from "../chunk-EQ7PWGBN.js";
11
11
  import {
12
12
  BaseListCard
13
13
  } from "../chunk-WR5JFDQ5.js";
@@ -22,17 +22,17 @@ import {
22
22
  DropIndicator,
23
23
  useDragItem
24
24
  } from "../chunk-JCJGJX7V.js";
25
- import "../chunk-H5VEJDEK.js";
26
- import "../chunk-BPLFM2GL.js";
25
+ import "../chunk-TVPPA4RD.js";
26
+ import "../chunk-NYEA7JAI.js";
27
27
  import {
28
28
  DataViewsBoard
29
29
  } from "../chunk-E55CJV65.js";
30
- import "../chunk-PN5CQKA2.js";
31
- import "../chunk-5OIH36KX.js";
32
- import "../chunk-6NSIZ2ZO.js";
30
+ import "../chunk-AXTLFK4T.js";
31
+ import "../chunk-V4FKHLEB.js";
32
+ import "../chunk-7MN6I5NK.js";
33
33
  import "../chunk-5WNQJ5KS.js";
34
- import "../chunk-EJQW2IYW.js";
35
- import "../chunk-6LGWJFQK.js";
34
+ import "../chunk-FPFUXRD2.js";
35
+ import "../chunk-PFDM2OIP.js";
36
36
  import "../chunk-O4VCZTK4.js";
37
37
  import "../chunk-JSH3HFDQ.js";
38
38
  import "../chunk-DFLTUI7W.js";
@@ -43,9 +43,9 @@ import "../chunk-CBOB5AV6.js";
43
43
  import "../chunk-HP2ODXNA.js";
44
44
  import "../chunk-TQ6FPOPD.js";
45
45
  import "../chunk-IAGOUTI6.js";
46
- import "../chunk-EMMPNB6D.js";
46
+ import "../chunk-X4Z62ZQY.js";
47
47
  import "../chunk-KX75HM5U.js";
48
- import "../chunk-XKV5ZIBG.js";
48
+ import "../chunk-OGGPQVIG.js";
49
49
  import "../chunk-HZVFAGLZ.js";
50
50
  import "../chunk-OGGHD64H.js";
51
51
  import {
@@ -56,25 +56,25 @@ import {
56
56
  import {
57
57
  DEFAULT_CELL_WIDTH
58
58
  } from "../chunk-6VP2L3DJ.js";
59
- import "../chunk-4ZV7N5CU.js";
60
- import "../chunk-SQNW22ZZ.js";
59
+ import "../chunk-JXPHU3K5.js";
60
+ import "../chunk-OV4WREMW.js";
61
61
  import "../chunk-7NSX7A5H.js";
62
62
  import "../chunk-DW5FRWRQ.js";
63
63
  import "../chunk-SNR537TI.js";
64
- import "../chunk-XUJG2HFW.js";
64
+ import "../chunk-BH5BXLGI.js";
65
65
  import {
66
66
  cardMinWidthForZoom,
67
67
  cardScaleForZoom
68
68
  } from "../chunk-ZPIMPOHV.js";
69
- import "../chunk-O6AZDQJJ.js";
70
- import "../chunk-4T7TXRGM.js";
71
- import "../chunk-CHPZTF34.js";
72
- import "../chunk-6JGPPTLX.js";
69
+ import "../chunk-OE2ZVL67.js";
70
+ import "../chunk-6ZY5XU4J.js";
71
+ import "../chunk-7KWBGMQC.js";
72
+ import "../chunk-2GI7ANEL.js";
73
73
  import "../chunk-5M4TYFR3.js";
74
74
  import "../chunk-HR7YTBR7.js";
75
75
  import "../chunk-DZEC6RFM.js";
76
- import "../chunk-TX5V42AY.js";
77
- import "../chunk-TW3BXVEU.js";
76
+ import "../chunk-HEBQS7QP.js";
77
+ import "../chunk-KMXAPYU2.js";
78
78
  import "../chunk-YGQX7BNI.js";
79
79
  import "../chunk-IMLIIW77.js";
80
80
  import "../chunk-LLZWB32X.js";
@@ -84,7 +84,7 @@ import {
84
84
  resolveScope
85
85
  } from "../chunk-LYKV3C7B.js";
86
86
  import "../chunk-U5FOJBLG.js";
87
- import "../chunk-U2ZDN2AL.js";
87
+ import "../chunk-2PBGVMM2.js";
88
88
  import {
89
89
  CARD_ASPECT_RATIOS,
90
90
  DATA_VIEWS_LAYOUTS,
@@ -128,22 +128,22 @@ import "../chunk-MLCFODJO.js";
128
128
  import "../chunk-35ETD7ML.js";
129
129
  import "../chunk-UCU5FCYE.js";
130
130
  import "../chunk-N5ZWC6CB.js";
131
- import "../chunk-JM64OEU6.js";
131
+ import "../chunk-WAPJ2DL3.js";
132
132
  import "../chunk-LMXWI3DD.js";
133
- import "../chunk-TPLKJHNN.js";
134
- import "../chunk-ZUIJ3N7N.js";
135
- import "../chunk-OVLNF4AZ.js";
136
- import "../chunk-4TXIZ5WI.js";
137
- import "../chunk-AJ6XEO4E.js";
138
- import "../chunk-ZAB65STX.js";
139
- import "../chunk-KIHQE5YA.js";
140
- import "../chunk-OFOYMZRY.js";
133
+ import "../chunk-ZC7RQDZ5.js";
134
+ import "../chunk-V6Z4XS3I.js";
135
+ import "../chunk-P7IVAMAU.js";
136
+ import "../chunk-CJUOBTLL.js";
137
+ import "../chunk-ZUY65MFH.js";
138
+ import "../chunk-XHHR6G35.js";
139
+ import "../chunk-GVDJQMFI.js";
140
+ import "../chunk-NPN7JTRM.js";
141
141
  import "../chunk-DMNZD3Q7.js";
142
- import "../chunk-TFO6GBW7.js";
143
- import "../chunk-2GB5CIN6.js";
144
- import "../chunk-ISH42UC7.js";
145
- import "../chunk-WWM2YTW4.js";
146
- import "../chunk-LR6MSKTT.js";
142
+ import "../chunk-ZS44PY7T.js";
143
+ import "../chunk-RZVUY2MO.js";
144
+ import "../chunk-USJPZ5Q7.js";
145
+ import "../chunk-R2AZOWEZ.js";
146
+ import "../chunk-PN4HVM43.js";
147
147
  import "../chunk-QYKDY4EI.js";
148
148
  import "../chunk-4OHRZW7U.js";
149
149
  import "../chunk-S6YY2WWK.js";
@@ -158,7 +158,7 @@ import "../chunk-R7R3LOKW.js";
158
158
  import "../chunk-5ZNU2U4D.js";
159
159
  import "../chunk-TZ633UZA.js";
160
160
  import "../chunk-XCBQXSTR.js";
161
- import "../chunk-NWNSUHEB.js";
161
+ import "../chunk-CT5K725B.js";
162
162
  import "../chunk-HJOABXKN.js";
163
163
  import "../chunk-3P4THDBM.js";
164
164
  import "../chunk-QQS3GQYS.js";
@@ -201,9 +201,9 @@ import "../chunk-BEBLRL5D.js";
201
201
  import "../chunk-6Q6T3FW5.js";
202
202
  import "../chunk-FKUYRQSP.js";
203
203
  import "../chunk-BA4RHQ3B.js";
204
- import "../chunk-YTOYMJPM.js";
205
- import "../chunk-JT6TERQL.js";
206
- import "../chunk-ITGG5OKP.js";
204
+ import "../chunk-SLVQ33AN.js";
205
+ import "../chunk-BB2OUERT.js";
206
+ import "../chunk-5LQ7PKMW.js";
207
207
  import "../chunk-TAMIZE4Q.js";
208
208
  import "../chunk-73BEVJCS.js";
209
209
  import "../chunk-343TTIHD.js";
@@ -1,7 +1,7 @@
1
1
  import "../chunk-XCBQXSTR.js";
2
2
  import {
3
3
  createConfirmButton
4
- } from "../chunk-NWNSUHEB.js";
4
+ } from "../chunk-CT5K725B.js";
5
5
  import {
6
6
  withConfirmation
7
7
  } from "../chunk-HJOABXKN.js";
@@ -17,9 +17,9 @@ import {
17
17
  import "../chunk-2IBFEHIX.js";
18
18
  import "../chunk-BWB2MVWP.js";
19
19
  import "../chunk-BA4RHQ3B.js";
20
- import "../chunk-YTOYMJPM.js";
21
- import "../chunk-JT6TERQL.js";
22
- import "../chunk-ITGG5OKP.js";
20
+ import "../chunk-SLVQ33AN.js";
21
+ import "../chunk-BB2OUERT.js";
22
+ import "../chunk-5LQ7PKMW.js";
23
23
  import "../chunk-TAMIZE4Q.js";
24
24
  import "../chunk-TYJR4GOF.js";
25
25
  import "../chunk-NQN5Z36J.js";
@@ -1,9 +1,9 @@
1
1
  import "../chunk-BA4RHQ3B.js";
2
2
  import {
3
3
  Button
4
- } from "../chunk-YTOYMJPM.js";
5
- import "../chunk-JT6TERQL.js";
6
- import "../chunk-ITGG5OKP.js";
4
+ } from "../chunk-SLVQ33AN.js";
5
+ import "../chunk-BB2OUERT.js";
6
+ import "../chunk-5LQ7PKMW.js";
7
7
  import "../chunk-TAMIZE4Q.js";
8
8
  import "../chunk-TYJR4GOF.js";
9
9
  import "../chunk-NQN5Z36J.js";
@@ -1,30 +1,34 @@
1
1
  import "../chunk-N5ZWC6CB.js";
2
2
  import {
3
3
  CategorySelect
4
- } from "../chunk-JM64OEU6.js";
4
+ } from "../chunk-WAPJ2DL3.js";
5
5
  import "../chunk-LMXWI3DD.js";
6
- import "../chunk-TPLKJHNN.js";
7
- import "../chunk-ZUIJ3N7N.js";
8
- import "../chunk-OVLNF4AZ.js";
9
- import "../chunk-4TXIZ5WI.js";
10
- import "../chunk-AJ6XEO4E.js";
11
- import "../chunk-ZAB65STX.js";
12
- import "../chunk-KIHQE5YA.js";
13
- import "../chunk-OFOYMZRY.js";
6
+ import "../chunk-ZC7RQDZ5.js";
7
+ import "../chunk-V6Z4XS3I.js";
8
+ import "../chunk-P7IVAMAU.js";
9
+ import "../chunk-CJUOBTLL.js";
10
+ import "../chunk-ZUY65MFH.js";
11
+ import "../chunk-XHHR6G35.js";
12
+ import "../chunk-GVDJQMFI.js";
13
+ import "../chunk-NPN7JTRM.js";
14
14
  import "../chunk-DMNZD3Q7.js";
15
- import "../chunk-TFO6GBW7.js";
16
- import "../chunk-2GB5CIN6.js";
17
- import "../chunk-ISH42UC7.js";
18
- import "../chunk-WWM2YTW4.js";
15
+ import "../chunk-ZS44PY7T.js";
16
+ import "../chunk-RZVUY2MO.js";
17
+ import "../chunk-USJPZ5Q7.js";
18
+ import "../chunk-R2AZOWEZ.js";
19
19
  import {
20
20
  buildCategoryGroups,
21
21
  categoryCheckState,
22
+ categoryPath,
23
+ collectBranchIds,
22
24
  collectLeafIds,
23
25
  filterCategoryGroups,
26
+ findGroup,
24
27
  foldText,
25
28
  leavesOf,
26
- summarizeSelection
27
- } from "../chunk-LR6MSKTT.js";
29
+ summarizeSelection,
30
+ treeDepth
31
+ } from "../chunk-PN4HVM43.js";
28
32
  import "../chunk-C3UKR3NT.js";
29
33
  import "../chunk-IPPTOL53.js";
30
34
  import "../chunk-7FDU3FIN.js";
@@ -36,10 +40,14 @@ export {
36
40
  CategorySelect,
37
41
  buildCategoryGroups,
38
42
  categoryCheckState,
43
+ categoryPath,
44
+ collectBranchIds,
39
45
  collectLeafIds,
40
46
  filterCategoryGroups,
47
+ findGroup,
41
48
  foldText,
42
49
  leavesOf,
43
- summarizeSelection
50
+ summarizeSelection,
51
+ treeDepth
44
52
  };
45
53
  //# sourceMappingURL=CategorySelect.js.map