@12-apps/ui 6.12.1 → 6.13.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 (130) hide show
  1. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +25 -25
  2. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +27 -27
  3. package/dist/_internal/components/data-display/DataViews/base-card.js +2 -2
  4. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +5 -5
  5. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +4 -4
  6. package/dist/_internal/components/data-display/DataViews/base-list-card.js +6 -6
  7. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +11 -11
  8. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +4 -4
  9. package/dist/_internal/components/data-display/DataViews/data-views-display-tabs.js +3 -3
  10. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +12 -12
  11. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +4 -4
  12. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +23 -23
  13. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +12 -12
  14. package/dist/_internal/components/data-display/DataViews/data-views-layout-context.js +2 -2
  15. package/dist/_internal/components/data-display/DataViews/data-views-scope-tabs.js +3 -3
  16. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +6 -6
  17. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +5 -5
  18. package/dist/_internal/components/data-display/DataViews/data-views-types.js +1 -1
  19. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +3 -3
  20. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +2 -2
  21. package/dist/_internal/components/data-display/DataViews/use-saved-views-controller.js +2 -2
  22. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +5 -5
  23. package/dist/_internal/components/form/CategorySelect/CategoryPanelList.js +3 -3
  24. package/dist/_internal/components/form/CategorySelect/CategoryQuickActions.js +2 -2
  25. package/dist/_internal/components/form/CategorySelect/CategoryRows.js +2 -2
  26. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +10 -10
  27. package/dist/_internal/components/form/CategorySelect/category-keyboard.js +2 -1
  28. package/dist/_internal/components/form/CategorySelect/category-tree.js +3 -1
  29. package/dist/_internal/components/form/CategorySelect/useCategoryCommit.js +2 -1
  30. package/dist/_internal/components/form/CategorySelect/useCategoryKeyHandler.js +3 -2
  31. package/dist/_internal/components/form/CategorySelect/useCategorySelect.js +2 -2
  32. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +11 -11
  33. package/dist/_internal/components/form/total-form/Fields/index.js +12 -12
  34. package/dist/{chunk-HQBXB5QB.js → chunk-2GB5CIN6.js} +2 -2
  35. package/dist/{chunk-IKBQ7CS2.js → chunk-56SMIHWE.js} +2 -2
  36. package/dist/{chunk-LWYXMCX6.js → chunk-5ZZPQ3MT.js} +4 -4
  37. package/dist/{chunk-JIEEUHNS.js → chunk-AZSFIQIA.js} +8 -8
  38. package/dist/{chunk-S6T722WH.js → chunk-BMAOQDVY.js} +3 -3
  39. package/dist/{chunk-5F4NIRVF.js → chunk-CKZFYGBY.js} +10 -6
  40. package/dist/chunk-CKZFYGBY.js.map +1 -0
  41. package/dist/{chunk-CY5X3HNQ.js → chunk-E2H7MBPM.js} +2 -2
  42. package/dist/{chunk-KWUQZDPL.js → chunk-ECIGNYSI.js} +3 -2
  43. package/dist/chunk-ECIGNYSI.js.map +1 -0
  44. package/dist/{chunk-XQZOMXP3.js → chunk-FZHKKLOO.js} +2 -2
  45. package/dist/{chunk-NXTKZSMT.js → chunk-IN642YHK.js} +2 -2
  46. package/dist/{chunk-QBJVRPTF.js → chunk-ISH42UC7.js} +2 -2
  47. package/dist/{chunk-AGKQBS4C.js → chunk-JHBQZZHT.js} +3 -3
  48. package/dist/{chunk-SVXSBLVD.js → chunk-KEDI6IRA.js} +2 -2
  49. package/dist/{chunk-Z5E2PXGN.js → chunk-LPYB4Y7C.js} +49 -16
  50. package/dist/chunk-LPYB4Y7C.js.map +1 -0
  51. package/dist/{chunk-DVTCZR3K.js → chunk-LR6MSKTT.js} +7 -5
  52. package/dist/chunk-LR6MSKTT.js.map +1 -0
  53. package/dist/{chunk-USBTXEBG.js → chunk-P55UFXYW.js} +2 -2
  54. package/dist/{chunk-C6ATAHBX.js → chunk-QEPGWTJT.js} +1 -1
  55. package/dist/chunk-QEPGWTJT.js.map +1 -0
  56. package/dist/{chunk-6UGRH32J.js → chunk-QRKBBOSY.js} +4 -4
  57. package/dist/{chunk-TY6CTYCF.js → chunk-TOUSE63W.js} +2 -2
  58. package/dist/{chunk-TDSRBCBG.js → chunk-W3UM2KEW.js} +7 -7
  59. package/dist/{chunk-6IAQGSXD.js → chunk-WIEXYVMU.js} +2 -2
  60. package/dist/{chunk-GQTBWJYK.js → chunk-WKRSVGT6.js} +2 -2
  61. package/dist/{chunk-T6V3DKJ5.js → chunk-WLCVOQCJ.js} +2 -2
  62. package/dist/{chunk-GCC66ZSD.js → chunk-WWM2YTW4.js} +29 -13
  63. package/dist/chunk-WWM2YTW4.js.map +1 -0
  64. package/dist/{chunk-ZBYWGL5G.js → chunk-WXHJG2UU.js} +2 -2
  65. package/dist/{chunk-QFHUWD3C.js → chunk-XIYPVNEB.js} +3 -3
  66. package/dist/{chunk-N7SBWD2V.js → chunk-XYRS4JOF.js} +4 -4
  67. package/dist/{chunk-T4JGNZAR.js → chunk-YQJMVUBG.js} +2 -2
  68. package/dist/{chunk-F6FT2LIR.js → chunk-YRFKPRV2.js} +2 -2
  69. package/dist/{chunk-VN6Z6F7R.js → chunk-ZAB65STX.js} +11 -6
  70. package/dist/chunk-ZAB65STX.js.map +1 -0
  71. package/dist/{chunk-HVIB6WMD.js → chunk-ZIPCGZA3.js} +2 -2
  72. package/dist/{chunk-Q5GXVDXL.js → chunk-ZQPG57GA.js} +2 -2
  73. package/dist/{chunk-E3IPN3KN.js → chunk-ZUIJ3N7N.js} +2 -2
  74. package/dist/data-display/DataViews.js +31 -31
  75. package/dist/form/CategorySelect.js +10 -10
  76. package/dist/form/total-form.js +12 -12
  77. package/dist/types/components/data-display/DataViews/data-views-category-pill.d.ts +6 -0
  78. package/dist/types/components/data-display/DataViews/data-views-category-pill.d.ts.map +1 -1
  79. package/dist/types/components/data-display/DataViews/data-views-types.d.ts +13 -0
  80. package/dist/types/components/data-display/DataViews/data-views-types.d.ts.map +1 -1
  81. package/dist/types/components/form/CategorySelect/CategoryPanelList.d.ts.map +1 -1
  82. package/dist/types/components/form/CategorySelect/CategoryRows.d.ts +8 -2
  83. package/dist/types/components/form/CategorySelect/CategoryRows.d.ts.map +1 -1
  84. package/dist/types/components/form/CategorySelect/category-keyboard.d.ts +1 -1
  85. package/dist/types/components/form/CategorySelect/category-keyboard.d.ts.map +1 -1
  86. package/dist/types/components/form/CategorySelect/category-tree.d.ts +12 -0
  87. package/dist/types/components/form/CategorySelect/category-tree.d.ts.map +1 -1
  88. package/dist/types/components/form/CategorySelect/useCategoryCommit.d.ts.map +1 -1
  89. package/package.json +1 -1
  90. package/src/components/data-display/DataViews/data-views-category-pill.tsx +7 -0
  91. package/src/components/data-display/DataViews/data-views-types.ts +13 -0
  92. package/src/components/form/CategorySelect/CategoryPanelList.tsx +9 -5
  93. package/src/components/form/CategorySelect/CategoryRows.tsx +64 -23
  94. package/src/components/form/CategorySelect/CategorySelect.md +33 -6
  95. package/src/components/form/CategorySelect/category-keyboard.ts +34 -15
  96. package/src/components/form/CategorySelect/category-tree.ts +17 -8
  97. package/src/components/form/CategorySelect/useCategoryCommit.ts +10 -6
  98. package/dist/chunk-5F4NIRVF.js.map +0 -1
  99. package/dist/chunk-C6ATAHBX.js.map +0 -1
  100. package/dist/chunk-DVTCZR3K.js.map +0 -1
  101. package/dist/chunk-GCC66ZSD.js.map +0 -1
  102. package/dist/chunk-KWUQZDPL.js.map +0 -1
  103. package/dist/chunk-VN6Z6F7R.js.map +0 -1
  104. package/dist/chunk-Z5E2PXGN.js.map +0 -1
  105. /package/dist/{chunk-HQBXB5QB.js.map → chunk-2GB5CIN6.js.map} +0 -0
  106. /package/dist/{chunk-IKBQ7CS2.js.map → chunk-56SMIHWE.js.map} +0 -0
  107. /package/dist/{chunk-LWYXMCX6.js.map → chunk-5ZZPQ3MT.js.map} +0 -0
  108. /package/dist/{chunk-JIEEUHNS.js.map → chunk-AZSFIQIA.js.map} +0 -0
  109. /package/dist/{chunk-S6T722WH.js.map → chunk-BMAOQDVY.js.map} +0 -0
  110. /package/dist/{chunk-CY5X3HNQ.js.map → chunk-E2H7MBPM.js.map} +0 -0
  111. /package/dist/{chunk-XQZOMXP3.js.map → chunk-FZHKKLOO.js.map} +0 -0
  112. /package/dist/{chunk-NXTKZSMT.js.map → chunk-IN642YHK.js.map} +0 -0
  113. /package/dist/{chunk-QBJVRPTF.js.map → chunk-ISH42UC7.js.map} +0 -0
  114. /package/dist/{chunk-AGKQBS4C.js.map → chunk-JHBQZZHT.js.map} +0 -0
  115. /package/dist/{chunk-SVXSBLVD.js.map → chunk-KEDI6IRA.js.map} +0 -0
  116. /package/dist/{chunk-USBTXEBG.js.map → chunk-P55UFXYW.js.map} +0 -0
  117. /package/dist/{chunk-6UGRH32J.js.map → chunk-QRKBBOSY.js.map} +0 -0
  118. /package/dist/{chunk-TY6CTYCF.js.map → chunk-TOUSE63W.js.map} +0 -0
  119. /package/dist/{chunk-TDSRBCBG.js.map → chunk-W3UM2KEW.js.map} +0 -0
  120. /package/dist/{chunk-6IAQGSXD.js.map → chunk-WIEXYVMU.js.map} +0 -0
  121. /package/dist/{chunk-GQTBWJYK.js.map → chunk-WKRSVGT6.js.map} +0 -0
  122. /package/dist/{chunk-T6V3DKJ5.js.map → chunk-WLCVOQCJ.js.map} +0 -0
  123. /package/dist/{chunk-ZBYWGL5G.js.map → chunk-WXHJG2UU.js.map} +0 -0
  124. /package/dist/{chunk-QFHUWD3C.js.map → chunk-XIYPVNEB.js.map} +0 -0
  125. /package/dist/{chunk-N7SBWD2V.js.map → chunk-XYRS4JOF.js.map} +0 -0
  126. /package/dist/{chunk-T4JGNZAR.js.map → chunk-YQJMVUBG.js.map} +0 -0
  127. /package/dist/{chunk-F6FT2LIR.js.map → chunk-YRFKPRV2.js.map} +0 -0
  128. /package/dist/{chunk-HVIB6WMD.js.map → chunk-ZIPCGZA3.js.map} +0 -0
  129. /package/dist/{chunk-Q5GXVDXL.js.map → chunk-ZQPG57GA.js.map} +0 -0
  130. /package/dist/{chunk-E3IPN3KN.js.map → chunk-ZUIJ3N7N.js.map} +0 -0
@@ -1,3 +1,7 @@
1
+ import {
2
+ isLeafCategory
3
+ } from "./chunk-LR6MSKTT.js";
4
+
1
5
  // src/components/form/CategorySelect/useCategoryCommit.ts
2
6
  import { useCallback, useMemo } from "react";
3
7
  function useCategoryCommit({
@@ -30,15 +34,16 @@ function useCategoryCommit({
30
34
  }, [props]);
31
35
  const activateCategory = useCallback(
32
36
  (group) => {
33
- if (allowParentSelection && single) {
34
- pick(group.category.id);
37
+ const selectable = allowParentSelection || isLeafCategory(group);
38
+ if (!selectable) {
39
+ toggleExpanded(group.category.id);
35
40
  return;
36
41
  }
37
- if (allowParentSelection) {
38
- toggleCategory(group);
42
+ if (single) {
43
+ pick(group.category.id);
39
44
  return;
40
45
  }
41
- toggleExpanded(group.category.id);
46
+ toggleCategory(group);
42
47
  },
43
48
  [allowParentSelection, single, pick, toggleCategory, toggleExpanded]
44
49
  );
@@ -65,4 +70,4 @@ function useCategoryCommit({
65
70
  export {
66
71
  useCategoryCommit
67
72
  };
68
- //# sourceMappingURL=chunk-VN6Z6F7R.js.map
73
+ //# sourceMappingURL=chunk-ZAB65STX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/form/CategorySelect/useCategoryCommit.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react';\n\nimport { isLeafCategory } from './category-tree';\nimport type { CategoryGroup, CategorySelectProps } from './CategorySelect.types';\nimport type { CategorySelectState } from './useCategorySelect';\n\n/** The verbs a row, a footer button or a key press can invoke. */\nexport interface CategoryActions {\n /** Publish the draft to the caller and close (multi-select). */\n commit: () => void;\n /** Choose one id and close (single-select). */\n pick: (id: string) => void;\n /** Close without publishing, returning focus to the trigger. */\n cancel: () => void;\n /** Empty the APPLIED selection straight from the closed trigger. */\n clearSelection: () => void;\n activateCategory: (group: CategoryGroup) => void;\n activateSubcategory: (id: string) => void;\n}\n\ninterface UseCategoryCommitArgs {\n props: CategorySelectProps;\n state: CategorySelectState;\n single: boolean;\n allowParentSelection: boolean;\n}\n\n/**\n * The commit semantics, which are the one thing the two modes genuinely differ\n * on: multi-select batches into a draft and publishes on Apply, single-select\n * publishes the moment a row is chosen.\n */\nexport function useCategoryCommit({\n props,\n state,\n single,\n allowParentSelection,\n}: UseCategoryCommitArgs): CategoryActions {\n const { closePanel, triggerRef, toggleCategory, toggleSubcategory, toggleExpanded } = state;\n\n const closeAndRefocus = useCallback(() => {\n closePanel();\n triggerRef.current?.focus();\n }, [closePanel, triggerRef]);\n\n const commit = useCallback(() => {\n if (props.mode === 'single') return;\n props.onChange([...state.draft]);\n closeAndRefocus();\n }, [props, state.draft, closeAndRefocus]);\n\n const pick = useCallback(\n (id: string) => {\n if (props.mode !== 'single') return;\n props.onChange(id);\n closeAndRefocus();\n },\n [props, closeAndRefocus],\n );\n\n const clearSelection = useCallback(() => {\n if (props.mode === 'single') props.onChange(null);\n else props.onChange([]);\n }, [props]);\n\n // A category row means different things per mode: pick the whole category,\n // tick all its leaves, or — when it is only a heading — just fold it. A\n // CHILDLESS category is never the last of those: it is the leaf, so it acts\n // like one even in the leaf-only default.\n const activateCategory = useCallback(\n (group: CategoryGroup) => {\n const selectable = allowParentSelection || isLeafCategory(group);\n if (!selectable) {\n toggleExpanded(group.category.id);\n return;\n }\n if (single) {\n pick(group.category.id);\n return;\n }\n toggleCategory(group);\n },\n [allowParentSelection, single, pick, toggleCategory, toggleExpanded],\n );\n\n const activateSubcategory = useCallback(\n (id: string) => {\n if (single) pick(id);\n else toggleSubcategory(id);\n },\n [single, pick, toggleSubcategory],\n );\n\n return useMemo(\n () => ({\n commit,\n pick,\n cancel: closeAndRefocus,\n clearSelection,\n activateCategory,\n activateSubcategory,\n }),\n [commit, pick, closeAndRefocus, clearSelection, activateCategory, activateSubcategory],\n );\n}\n"],"mappings":";;;;;AAAA,SAAS,aAAa,eAAe;AAgC9B,SAAS,kBAAkB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA2C;AACzC,QAAM,EAAE,YAAY,YAAY,gBAAgB,mBAAmB,eAAe,IAAI;AAEtF,QAAM,kBAAkB,YAAY,MAAM;AACxC,eAAW;AACX,eAAW,SAAS,MAAM;AAAA,EAC5B,GAAG,CAAC,YAAY,UAAU,CAAC;AAE3B,QAAM,SAAS,YAAY,MAAM;AAC/B,QAAI,MAAM,SAAS,SAAU;AAC7B,UAAM,SAAS,CAAC,GAAG,MAAM,KAAK,CAAC;AAC/B,oBAAgB;AAAA,EAClB,GAAG,CAAC,OAAO,MAAM,OAAO,eAAe,CAAC;AAExC,QAAM,OAAO;AAAA,IACX,CAAC,OAAe;AACd,UAAI,MAAM,SAAS,SAAU;AAC7B,YAAM,SAAS,EAAE;AACjB,sBAAgB;AAAA,IAClB;AAAA,IACA,CAAC,OAAO,eAAe;AAAA,EACzB;AAEA,QAAM,iBAAiB,YAAY,MAAM;AACvC,QAAI,MAAM,SAAS,SAAU,OAAM,SAAS,IAAI;AAAA,QAC3C,OAAM,SAAS,CAAC,CAAC;AAAA,EACxB,GAAG,CAAC,KAAK,CAAC;AAMV,QAAM,mBAAmB;AAAA,IACvB,CAAC,UAAyB;AACxB,YAAM,aAAa,wBAAwB,eAAe,KAAK;AAC/D,UAAI,CAAC,YAAY;AACf,uBAAe,MAAM,SAAS,EAAE;AAChC;AAAA,MACF;AACA,UAAI,QAAQ;AACV,aAAK,MAAM,SAAS,EAAE;AACtB;AAAA,MACF;AACA,qBAAe,KAAK;AAAA,IACtB;AAAA,IACA,CAAC,sBAAsB,QAAQ,MAAM,gBAAgB,cAAc;AAAA,EACrE;AAEA,QAAM,sBAAsB;AAAA,IAC1B,CAAC,OAAe;AACd,UAAI,OAAQ,MAAK,EAAE;AAAA,UACd,mBAAkB,EAAE;AAAA,IAC3B;AAAA,IACA,CAAC,QAAQ,MAAM,iBAAiB;AAAA,EAClC;AAEA,SAAO;AAAA,IACL,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,QAAQ,MAAM,iBAAiB,gBAAgB,kBAAkB,mBAAmB;AAAA,EACvF;AACF;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DATA_VIEWS_LAYOUTS
3
- } from "./chunk-C6ATAHBX.js";
3
+ } from "./chunk-QEPGWTJT.js";
4
4
  import {
5
5
  useDataViewsCopy
6
6
  } from "./chunk-KHG57NAE.js";
@@ -184,4 +184,4 @@ export {
184
184
  useDataViewsLayout,
185
185
  DataViewsZoomSlider
186
186
  };
187
- //# sourceMappingURL=chunk-HVIB6WMD.js.map
187
+ //# sourceMappingURL=chunk-ZIPCGZA3.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  RAIL_GAP_PX
3
- } from "./chunk-T4JGNZAR.js";
3
+ } from "./chunk-YQJMVUBG.js";
4
4
  import {
5
5
  DescriptionItem
6
6
  } from "./chunk-TCAB2ERD.js";
@@ -222,4 +222,4 @@ export {
222
222
  ListCardActions,
223
223
  ListCardTail
224
224
  };
225
- //# sourceMappingURL=chunk-Q5GXVDXL.js.map
225
+ //# sourceMappingURL=chunk-ZQPG57GA.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  collectLeafIds
3
- } from "./chunk-DVTCZR3K.js";
3
+ } from "./chunk-LR6MSKTT.js";
4
4
 
5
5
  // src/components/form/CategorySelect/CategoryQuickActions.tsx
6
6
  import Box from "@mui/material/Box/index.js";
@@ -57,4 +57,4 @@ function CategoryQuickActions({
57
57
  export {
58
58
  CategoryQuickActions
59
59
  };
60
- //# sourceMappingURL=chunk-E3IPN3KN.js.map
60
+ //# sourceMappingURL=chunk-ZUIJ3N7N.js.map
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  DataViewsTableBase
3
- } from "../chunk-S6T722WH.js";
3
+ } from "../chunk-BMAOQDVY.js";
4
4
  import "../chunk-LS42VJAI.js";
5
5
  import {
6
6
  DataViewsGrid
7
- } from "../chunk-AGKQBS4C.js";
7
+ } from "../chunk-JHBQZZHT.js";
8
8
  import {
9
9
  BaseListCard
10
- } from "../chunk-N7SBWD2V.js";
10
+ } from "../chunk-XYRS4JOF.js";
11
11
  import "../chunk-UNF65XZW.js";
12
- import "../chunk-6UGRH32J.js";
13
- import "../chunk-Q5GXVDXL.js";
12
+ import "../chunk-QRKBBOSY.js";
13
+ import "../chunk-ZQPG57GA.js";
14
14
  import "../chunk-2JCRNWHE.js";
15
15
  import {
16
16
  BaseCard
17
- } from "../chunk-ZBYWGL5G.js";
17
+ } from "../chunk-WXHJG2UU.js";
18
18
  import "../chunk-MQUU2XZB.js";
19
19
  import {
20
20
  DragContainerProvider,
@@ -22,15 +22,15 @@ import {
22
22
  useDragItem
23
23
  } from "../chunk-JCJGJX7V.js";
24
24
  import "../chunk-ZOLAYP2D.js";
25
- import "../chunk-TDSRBCBG.js";
26
- import "../chunk-NXTKZSMT.js";
25
+ import "../chunk-W3UM2KEW.js";
26
+ import "../chunk-IN642YHK.js";
27
27
  import "../chunk-S7CAXRRP.js";
28
- import "../chunk-T6V3DKJ5.js";
28
+ import "../chunk-WLCVOQCJ.js";
29
29
  import "../chunk-5WNQJ5KS.js";
30
- import "../chunk-KWUQZDPL.js";
30
+ import "../chunk-ECIGNYSI.js";
31
31
  import "../chunk-ZHPKFV7Y.js";
32
32
  import "../chunk-NC2AATCC.js";
33
- import "../chunk-QFHUWD3C.js";
33
+ import "../chunk-XIYPVNEB.js";
34
34
  import {
35
35
  DataViewsBoard
36
36
  } from "../chunk-3DQP6OPC.js";
@@ -43,13 +43,13 @@ import "../chunk-IAGOUTI6.js";
43
43
  import "../chunk-FV36LFPX.js";
44
44
  import "../chunk-2I5B5NNT.js";
45
45
  import "../chunk-A7Q5AQVD.js";
46
- import "../chunk-CY5X3HNQ.js";
46
+ import "../chunk-E2H7MBPM.js";
47
47
  import "../chunk-GCZJH4XL.js";
48
48
  import {
49
49
  DEFAULT_RAILS,
50
50
  ListCardGroup,
51
51
  RAIL_COUNT
52
- } from "../chunk-T4JGNZAR.js";
52
+ } from "../chunk-YQJMVUBG.js";
53
53
  import {
54
54
  DEFAULT_CELL_WIDTH
55
55
  } from "../chunk-6VP2L3DJ.js";
@@ -57,21 +57,21 @@ import "../chunk-XPS7FWZS.js";
57
57
  import "../chunk-U7SO3N42.js";
58
58
  import "../chunk-UHXNEXOC.js";
59
59
  import "../chunk-5M4TYFR3.js";
60
- import "../chunk-XQZOMXP3.js";
61
- import "../chunk-GQTBWJYK.js";
60
+ import "../chunk-FZHKKLOO.js";
61
+ import "../chunk-WKRSVGT6.js";
62
62
  import "../chunk-NQCYVYP3.js";
63
- import "../chunk-USBTXEBG.js";
63
+ import "../chunk-P55UFXYW.js";
64
64
  import "../chunk-2PPWKCMW.js";
65
- import "../chunk-F6FT2LIR.js";
65
+ import "../chunk-YRFKPRV2.js";
66
66
  import "../chunk-SNR537TI.js";
67
67
  import {
68
68
  cardMinWidthForZoom,
69
69
  cardScaleForZoom
70
- } from "../chunk-HVIB6WMD.js";
70
+ } from "../chunk-ZIPCGZA3.js";
71
71
  import "../chunk-QTPKACVO.js";
72
- import "../chunk-6IAQGSXD.js";
72
+ import "../chunk-WIEXYVMU.js";
73
73
  import "../chunk-DZEC6RFM.js";
74
- import "../chunk-TY6CTYCF.js";
74
+ import "../chunk-TOUSE63W.js";
75
75
  import "../chunk-4QQVIGRG.js";
76
76
  import "../chunk-YGQX7BNI.js";
77
77
  import "../chunk-IMLIIW77.js";
@@ -86,7 +86,7 @@ import {
86
86
  CARD_ASPECT_RATIOS,
87
87
  DATA_VIEWS_LAYOUTS,
88
88
  toSavedViewSummary
89
- } from "../chunk-C6ATAHBX.js";
89
+ } from "../chunk-QEPGWTJT.js";
90
90
  import "../chunk-T4SM36XC.js";
91
91
  import {
92
92
  DataViewsCopyProvider,
@@ -124,22 +124,22 @@ import "../chunk-TBWEIQUR.js";
124
124
  import "../chunk-35ETD7ML.js";
125
125
  import "../chunk-UCU5FCYE.js";
126
126
  import "../chunk-N5ZWC6CB.js";
127
- import "../chunk-JIEEUHNS.js";
127
+ import "../chunk-AZSFIQIA.js";
128
128
  import "../chunk-LMXWI3DD.js";
129
- import "../chunk-LWYXMCX6.js";
130
- import "../chunk-E3IPN3KN.js";
131
- import "../chunk-5F4NIRVF.js";
129
+ import "../chunk-5ZZPQ3MT.js";
130
+ import "../chunk-ZUIJ3N7N.js";
131
+ import "../chunk-CKZFYGBY.js";
132
132
  import "../chunk-PLOOVF43.js";
133
133
  import "../chunk-GPVB3FQP.js";
134
- import "../chunk-VN6Z6F7R.js";
134
+ import "../chunk-ZAB65STX.js";
135
135
  import "../chunk-XQ2BNVXL.js";
136
- import "../chunk-Z5E2PXGN.js";
136
+ import "../chunk-LPYB4Y7C.js";
137
137
  import "../chunk-DMNZD3Q7.js";
138
138
  import "../chunk-XCT2ZLA6.js";
139
- import "../chunk-HQBXB5QB.js";
140
- import "../chunk-DVTCZR3K.js";
141
- import "../chunk-QBJVRPTF.js";
142
- import "../chunk-GCC66ZSD.js";
139
+ import "../chunk-2GB5CIN6.js";
140
+ import "../chunk-ISH42UC7.js";
141
+ import "../chunk-WWM2YTW4.js";
142
+ import "../chunk-LR6MSKTT.js";
143
143
  import "../chunk-QYKDY4EI.js";
144
144
  import "../chunk-J7VY6KNP.js";
145
145
  import "../chunk-3AEY5TYV.js";
@@ -1,19 +1,21 @@
1
1
  import "../chunk-N5ZWC6CB.js";
2
2
  import {
3
3
  CategorySelect
4
- } from "../chunk-JIEEUHNS.js";
4
+ } from "../chunk-AZSFIQIA.js";
5
5
  import "../chunk-LMXWI3DD.js";
6
- import "../chunk-LWYXMCX6.js";
7
- import "../chunk-E3IPN3KN.js";
8
- import "../chunk-5F4NIRVF.js";
6
+ import "../chunk-5ZZPQ3MT.js";
7
+ import "../chunk-ZUIJ3N7N.js";
8
+ import "../chunk-CKZFYGBY.js";
9
9
  import "../chunk-PLOOVF43.js";
10
10
  import "../chunk-GPVB3FQP.js";
11
- import "../chunk-VN6Z6F7R.js";
11
+ import "../chunk-ZAB65STX.js";
12
12
  import "../chunk-XQ2BNVXL.js";
13
- import "../chunk-Z5E2PXGN.js";
13
+ import "../chunk-LPYB4Y7C.js";
14
14
  import "../chunk-DMNZD3Q7.js";
15
15
  import "../chunk-XCT2ZLA6.js";
16
- import "../chunk-HQBXB5QB.js";
16
+ import "../chunk-2GB5CIN6.js";
17
+ import "../chunk-ISH42UC7.js";
18
+ import "../chunk-WWM2YTW4.js";
17
19
  import {
18
20
  buildCategoryGroups,
19
21
  categoryCheckState,
@@ -22,9 +24,7 @@ import {
22
24
  foldText,
23
25
  leavesOf,
24
26
  summarizeSelection
25
- } from "../chunk-DVTCZR3K.js";
26
- import "../chunk-QBJVRPTF.js";
27
- import "../chunk-GCC66ZSD.js";
27
+ } from "../chunk-LR6MSKTT.js";
28
28
  import "../chunk-C3UKR3NT.js";
29
29
  import "../chunk-VZO7VREP.js";
30
30
  import "../chunk-MFU4Y25U.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "../chunk-OK5BHFZE.js";
4
4
  import {
5
5
  Fields_exports
6
- } from "../chunk-IKBQ7CS2.js";
6
+ } from "../chunk-56SMIHWE.js";
7
7
  import "../chunk-LIQHOLDQ.js";
8
8
  import {
9
9
  TextField
@@ -14,7 +14,7 @@ import {
14
14
  import "../chunk-CESQKLIR.js";
15
15
  import {
16
16
  CategoryField
17
- } from "../chunk-SVXSBLVD.js";
17
+ } from "../chunk-KEDI6IRA.js";
18
18
  import {
19
19
  SubmitButton
20
20
  } from "../chunk-3BR2CLAM.js";
@@ -34,22 +34,22 @@ import "../chunk-QL7L6RHR.js";
34
34
  import "../chunk-JD5BVIM7.js";
35
35
  import "../chunk-JXUWWPZR.js";
36
36
  import "../chunk-N5ZWC6CB.js";
37
- import "../chunk-JIEEUHNS.js";
37
+ import "../chunk-AZSFIQIA.js";
38
38
  import "../chunk-LMXWI3DD.js";
39
- import "../chunk-LWYXMCX6.js";
40
- import "../chunk-E3IPN3KN.js";
41
- import "../chunk-5F4NIRVF.js";
39
+ import "../chunk-5ZZPQ3MT.js";
40
+ import "../chunk-ZUIJ3N7N.js";
41
+ import "../chunk-CKZFYGBY.js";
42
42
  import "../chunk-PLOOVF43.js";
43
43
  import "../chunk-GPVB3FQP.js";
44
- import "../chunk-VN6Z6F7R.js";
44
+ import "../chunk-ZAB65STX.js";
45
45
  import "../chunk-XQ2BNVXL.js";
46
- import "../chunk-Z5E2PXGN.js";
46
+ import "../chunk-LPYB4Y7C.js";
47
47
  import "../chunk-DMNZD3Q7.js";
48
48
  import "../chunk-XCT2ZLA6.js";
49
- import "../chunk-HQBXB5QB.js";
50
- import "../chunk-DVTCZR3K.js";
51
- import "../chunk-QBJVRPTF.js";
52
- import "../chunk-GCC66ZSD.js";
49
+ import "../chunk-2GB5CIN6.js";
50
+ import "../chunk-ISH42UC7.js";
51
+ import "../chunk-WWM2YTW4.js";
52
+ import "../chunk-LR6MSKTT.js";
53
53
  import "../chunk-QYKDY4EI.js";
54
54
  import "../chunk-J7VY6KNP.js";
55
55
  import "../chunk-3AEY5TYV.js";
@@ -25,6 +25,12 @@ interface PillControlProps<T extends Record<string, unknown>> {
25
25
  * A category set nests, and flattening it into one list is what made "Massas"
26
26
  * (mercearia) indistinguishable from "Massas" (pratos principais). `control:
27
27
  * "category"` opts a field into the tree, which shows each hit under its parent.
28
+ *
29
+ * {@link FilterFieldConfig.allowParentSelection} decides whether a parent row is
30
+ * itself tickable. It is forwarded rather than fixed here because it is a
31
+ * per-SCREEN question: a filter over a catalogue where products sit on leaves
32
+ * wants "the whole category" as one click, while one whose parents are pure
33
+ * grouping would only offer a tick that means nothing.
28
34
  */
29
35
  export declare function PillControl<T extends Record<string, unknown>>({ fieldId, pill, selected, onTogglePill, onClearField, onOpenChange, testIdPrefix, layout, }: PillControlProps<T>): React.JSX.Element;
30
36
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"data-views-category-pill.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-category-pill.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAgB,MAAM,oBAAoB,CAAC;AAE1E;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,GACvE,IAAI,CASN;AASD,UAAU,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzE,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC7D,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,MAAe,GAChB,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAoCzC"}
1
+ {"version":3,"file":"data-views-category-pill.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-category-pill.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAgB,MAAM,oBAAoB,CAAC;AAE1E;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,GACvE,IAAI,CASN;AASD,UAAU,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzE,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC7D,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,MAAe,GAChB,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAqCzC"}
@@ -85,6 +85,19 @@ export interface FilterFieldConfig<T extends Record<string, unknown>> {
85
85
  * one indistinguishable list.
86
86
  */
87
87
  control?: "checkboxes" | "multiselect" | "category";
88
+ /**
89
+ * Lets a `control: "category"` pill select a PARENT category, not just its
90
+ * children. Off by default, which keeps the leaf-only reading: the parent is
91
+ * a heading and its subcategories are the rows you tick.
92
+ *
93
+ * Turn it on where "the whole category" is a filter a user would reach for —
94
+ * selecting a parent then selects every subcategory under it, and the chip
95
+ * tray collapses that back to one chip bearing the category's name.
96
+ *
97
+ * A category with NO children is selectable either way: it is itself the
98
+ * leaf, so the flag has nothing to gate there.
99
+ */
100
+ allowParentSelection?: boolean;
88
101
  /**
89
102
  * Forces this filter to render as a searchable multi-select dropdown with the
90
103
  * search box always shown, regardless of how many options are currently
@@ -1 +1 @@
1
- {"version":3,"file":"data-views-types.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-views-types.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CategoryPanelList.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/CategorySelect/CategoryPanelList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAYxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAQ5D,UAAU,cAAc;IACtB,gEAAgE;IAChE,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,kBAAkB,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACnD,qBAAqB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAChD,UAAU,EAAE,MAAM,CAAC;CACpB;AAgID,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA4C1E"}
1
+ {"version":3,"file":"CategoryPanelList.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/CategorySelect/CategoryPanelList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAYxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAQ5D,UAAU,cAAc;IACtB,gEAAgE;IAChE,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,kBAAkB,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACnD,qBAAqB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAChD,UAAU,EAAE,MAAM,CAAC;CACpB;AAoID,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA4C1E"}
@@ -21,6 +21,10 @@ interface CategoryHeadRowProps {
21
21
  sheet: boolean;
22
22
  /** Absent in leaf-only mode, where the category is a heading with no checkbox. */
23
23
  checkState?: CategoryCheckState;
24
+ /** Single-select draws a radio for the control: choosing a row is exclusive. */
25
+ single: boolean;
26
+ /** False for a childless category — there is nothing under it to disclose. */
27
+ expandable: boolean;
24
28
  selectedCount: number;
25
29
  showCounts: boolean;
26
30
  onToggleExpanded: () => void;
@@ -33,9 +37,11 @@ interface CategoryHeadRowProps {
33
37
  *
34
38
  * The chevron is its OWN button inside the row button — clicking it only folds,
35
39
  * while clicking the row does the row's job (expand as a heading, or tick when
36
- * parents are selectable).
40
+ * the category is selectable). A CHILDLESS category has neither a fold nor a
41
+ * heading to be: it draws no chevron, and it carries the control, because it is
42
+ * itself the leaf.
37
43
  */
38
- export declare function CategoryHeadRow({ option, query, expanded, active, sheet, checkState, selectedCount, showCounts, onToggleExpanded, onActivate, dataTestId, copy, }: CategoryHeadRowProps): React.JSX.Element;
44
+ export declare function CategoryHeadRow({ option, query, expanded, active, sheet, checkState, single, expandable, selectedCount, showCounts, onToggleExpanded, onActivate, dataTestId, copy, }: CategoryHeadRowProps): React.JSX.Element;
39
45
  interface SubcategoryRowProps {
40
46
  option: CategorySelectOption;
41
47
  query: string;
@@ -1 +1 @@
1
- {"version":3,"file":"CategoryRows.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/CategorySelect/CategoryRows.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAa7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,0CAA0C;AAC1C,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,KAAK,GACN,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAepB;AAED,iFAAiF;AACjF,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,kBAAkB,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAO5F;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAExE;AAED,UAAU,oBAAoB;IAC5B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,kFAAkF;IAClF,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAaD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,KAAK,EACL,QAAQ,EACR,MAAM,EACN,KAAK,EACL,UAAU,EACV,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,IAAI,GACL,EAAE,oBAAoB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA2C1C;AAED,UAAU,mBAAmB;IAC3B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,uEAAuE;IACvE,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,KAAK,EACL,QAAQ,EACR,MAAM,EACN,KAAK,EACL,MAAM,EACN,UAAU,EACV,UAAU,EACV,UAAU,GACX,EAAE,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA0BzC;AAED,4EAA4E;AAC5E,wBAAgB,sBAAsB,CAAC,EACrC,MAAM,EACN,KAAK,GACN,EAAE;IACD,MAAM,EAAE,oBAAoB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAMpB"}
1
+ {"version":3,"file":"CategoryRows.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/CategorySelect/CategoryRows.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAa7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,0CAA0C;AAC1C,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,KAAK,GACN,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAepB;AAED,iFAAiF;AACjF,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,kBAAkB,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAO5F;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAExE;AAED,UAAU,oBAAoB;IAC5B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,kFAAkF;IAClF,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,gFAAgF;IAChF,MAAM,EAAE,OAAO,CAAC;IAChB,8EAA8E;IAC9E,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AA0DD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,KAAK,EACL,QAAQ,EACR,MAAM,EACN,KAAK,EACL,UAAU,EACV,MAAM,EACN,UAAU,EACV,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,IAAI,GACL,EAAE,oBAAoB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA+B1C;AAED,UAAU,mBAAmB;IAC3B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,uEAAuE;IACvE,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,KAAK,EACL,QAAQ,EACR,MAAM,EACN,KAAK,EACL,MAAM,EACN,UAAU,EACV,UAAU,EACV,UAAU,GACX,EAAE,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA0BzC;AAED,4EAA4E;AAC5E,wBAAgB,sBAAsB,CAAC,EACrC,MAAM,EACN,KAAK,GACN,EAAE;IACD,MAAM,EAAE,oBAAoB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAMpB"}
@@ -1,4 +1,4 @@
1
- import type { CategoryRowRef } from './category-tree';
1
+ import { type CategoryRowRef } from './category-tree';
2
2
  import type { CategoryGroup } from './CategorySelect.types';
3
3
  /** What a key handler is allowed to do to the panel. */
4
4
  export interface CategoryKeyContext {
@@ -1 +1 @@
1
- {"version":3,"file":"category-keyboard.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/CategorySelect/category-keyboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,2EAA2E;IAC3E,MAAM,EAAE,OAAO,CAAC;IAChB,8EAA8E;IAC9E,oBAAoB,EAAE,OAAO,CAAC;IAC9B,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,cAAc,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B;AAiGD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,iBAAiB,EAAE,OAAO,EAC1B,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAMT"}
1
+ {"version":3,"file":"category-keyboard.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/CategorySelect/category-keyboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,2EAA2E;IAC3E,MAAM,EAAE,OAAO,CAAC;IAChB,8EAA8E;IAC9E,oBAAoB,EAAE,OAAO,CAAC;IAC9B,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,cAAc,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B;AAoHD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,iBAAiB,EAAE,OAAO,EAC1B,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAMT"}
@@ -16,6 +16,18 @@ export declare function foldText(text: string): string;
16
16
  * was filtered out of the payload, or because the tree is deeper than two levels.
17
17
  */
18
18
  export declare function buildCategoryGroups(options: CategorySelectOption[]): CategoryGroup[];
19
+ /**
20
+ * Whether this category IS the leaf, because nothing sits under it.
21
+ *
22
+ * The leaf-only default makes a category a heading and the subcategory the thing
23
+ * you pick — but a childless category has no subcategory to offer instead, so
24
+ * that reading leaves it unpickable and the row does nothing at all. It is the
25
+ * leaf, so it is selectable in its own right, whatever `allowParentSelection`
26
+ * says. Everything below already agreed; only the rows and the activation did
27
+ * not, which is what made a childless category unselectable on the estoque
28
+ * filter while `Marcar tudo` could still select it.
29
+ */
30
+ export declare function isLeafCategory(group: CategoryGroup): boolean;
19
31
  /** Every selectable leaf id across all groups, in display order. */
20
32
  export declare function collectLeafIds(groups: CategoryGroup[]): string[];
21
33
  /** The leaves a category stands for — its subcategories, or itself when childless. */
@@ -1 +1 @@
1
- {"version":3,"file":"category-tree.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/CategorySelect/category-tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAEhC;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK7C;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,aAAa,EAAE,CAmBpF;AAED,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAMhE;AAED,sFAAsF;AACtF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,CAIvD;AAED,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC;AAE1D,sEAAsE;AACtE,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAC5B,kBAAkB,CAKpB;AAED,gFAAgF;AAChF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAC5B,GAAG,CAAC,MAAM,CAAC,CAMb;AAED,qDAAqD;AACrD,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAIjF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EAAE,EACvB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAC5B,qBAAqB,EAAE,CAWzB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,aAAa,EAAE,EACvB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAC5B,GAAG,CAAC,MAAM,CAAC,CASb;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAU5F;AAED,yEAAyE;AACzE,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAUjF;AAED,mFAAmF;AACnF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,GAAG,aAAa,CAAC;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,2EAA2E;AAC3E,wBAAgB,WAAW,CACzB,MAAM,EAAE,aAAa,EAAE,EACvB,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,GAC1C,cAAc,EAAE,CAelB"}
1
+ {"version":3,"file":"category-tree.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/CategorySelect/category-tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAEhC;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK7C;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,aAAa,EAAE,CAmBpF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAE5D;AAED,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAEhE;AAED,sFAAsF;AACtF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,CAEvD;AAED,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC;AAE1D,sEAAsE;AACtE,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAC5B,kBAAkB,CAKpB;AAED,gFAAgF;AAChF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAC5B,GAAG,CAAC,MAAM,CAAC,CAMb;AAED,qDAAqD;AACrD,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAIjF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EAAE,EACvB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAC5B,qBAAqB,EAAE,CAWzB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,aAAa,EAAE,EACvB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAC5B,GAAG,CAAC,MAAM,CAAC,CASb;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAU5F;AAED,yEAAyE;AACzE,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAUjF;AAED,mFAAmF;AACnF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,GAAG,aAAa,CAAC;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,2EAA2E;AAC3E,wBAAgB,WAAW,CACzB,MAAM,EAAE,aAAa,EAAE,EACvB,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,GAC1C,cAAc,EAAE,CAelB"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCategoryCommit.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/CategorySelect/useCategoryCommit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,+CAA+C;IAC/C,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,gEAAgE;IAChE,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,oEAAoE;IACpE,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACjD,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED,UAAU,qBAAqB;IAC7B,KAAK,EAAE,mBAAmB,CAAC;IAC3B,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,KAAK,EACL,MAAM,EACN,oBAAoB,GACrB,EAAE,qBAAqB,GAAG,eAAe,CAgEzC"}
1
+ {"version":3,"file":"useCategoryCommit.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/CategorySelect/useCategoryCommit.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,+CAA+C;IAC/C,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,gEAAgE;IAChE,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,oEAAoE;IACpE,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACjD,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED,UAAU,qBAAqB;IAC7B,KAAK,EAAE,mBAAmB,CAAC;IAC3B,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,KAAK,EACL,MAAM,EACN,oBAAoB,GACrB,EAAE,qBAAqB,GAAG,eAAe,CAmEzC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@12-apps/ui",
3
- "version": "6.12.1",
3
+ "version": "6.13.0",
4
4
  "license": "MIT",
5
5
  "packageManager": "pnpm@10.34.5",
6
6
  "type": "module",
@@ -55,6 +55,12 @@ interface PillControlProps<T extends Record<string, unknown>> {
55
55
  * A category set nests, and flattening it into one list is what made "Massas"
56
56
  * (mercearia) indistinguishable from "Massas" (pratos principais). `control:
57
57
  * "category"` opts a field into the tree, which shows each hit under its parent.
58
+ *
59
+ * {@link FilterFieldConfig.allowParentSelection} decides whether a parent row is
60
+ * itself tickable. It is forwarded rather than fixed here because it is a
61
+ * per-SCREEN question: a filter over a catalogue where products sit on leaves
62
+ * wants "the whole category" as one click, while one whose parents are pure
63
+ * grouping would only offer a tick that means nothing.
58
64
  */
59
65
  export function PillControl<T extends Record<string, unknown>>({
60
66
  fieldId,
@@ -76,6 +82,7 @@ export function PillControl<T extends Record<string, unknown>>({
76
82
  label={layout === "stacked" ? pill.label : undefined}
77
83
  fullWidth={layout === "stacked"}
78
84
  options={pill.options.map(toCategoryOption)}
85
+ allowParentSelection={pill.allowParentSelection ?? false}
79
86
  value={selected}
80
87
  onChange={(next) => emitPillDiff(fieldId, selected, next, onTogglePill)}
81
88
  dataTestId={testId}
@@ -109,6 +109,19 @@ export interface FilterFieldConfig<T extends Record<string, unknown>> {
109
109
  * one indistinguishable list.
110
110
  */
111
111
  control?: "checkboxes" | "multiselect" | "category";
112
+ /**
113
+ * Lets a `control: "category"` pill select a PARENT category, not just its
114
+ * children. Off by default, which keeps the leaf-only reading: the parent is
115
+ * a heading and its subcategories are the rows you tick.
116
+ *
117
+ * Turn it on where "the whole category" is a filter a user would reach for —
118
+ * selecting a parent then selects every subcategory under it, and the chip
119
+ * tray collapses that back to one chip bearing the category's name.
120
+ *
121
+ * A category with NO children is selectable either way: it is itself the
122
+ * leaf, so the flag has nothing to gate there.
123
+ */
124
+ allowParentSelection?: boolean;
112
125
  /**
113
126
  * Forces this filter to render as a searchable multi-select dropdown with the
114
127
  * search box always shown, regardless of how many options are currently
@@ -5,7 +5,7 @@ import Box from '@mui/material/Box/index.js';
5
5
  import Button from '@mui/material/Button/index.js';
6
6
  import Skeleton from '@mui/material/Skeleton/index.js';
7
7
 
8
- import { categoryCheckState } from './category-tree';
8
+ import { categoryCheckState, isLeafCategory } from './category-tree';
9
9
  import {
10
10
  CategoryHeadRow,
11
11
  CategorySectionHeading,
@@ -125,7 +125,11 @@ function CategoryGroupRows({
125
125
  const { draft, query, single, allowParentSelection, rowIds, activeIndex, sheet } = props;
126
126
  const categoryId = group.category.id;
127
127
  const expanded = props.isExpanded(categoryId);
128
- const asHeading = single && !allowParentSelection;
128
+ // A childless category is the leaf, so it is selectable whatever the mode says
129
+ // — the heading reading has no subcategory to point at, and would leave the
130
+ // row inert.
131
+ const selectable = allowParentSelection || isLeafCategory(group);
132
+ const asHeading = single && !selectable;
129
133
  const selectedCount = group.subcategories.filter((sub) => draft.has(sub.id)).length;
130
134
 
131
135
  return (
@@ -139,9 +143,9 @@ function CategoryGroupRows({
139
143
  expanded={expanded}
140
144
  active={rowIds[activeIndex] === categoryId}
141
145
  sheet={sheet}
142
- checkState={
143
- allowParentSelection ? categoryCheckState(group, draft) : undefined
144
- }
146
+ checkState={selectable ? categoryCheckState(group, draft) : undefined}
147
+ single={single}
148
+ expandable={!isLeafCategory(group)}
145
149
  selectedCount={selectedCount}
146
150
  showCounts={props.showCounts}
147
151
  onToggleExpanded={() => props.onToggleExpanded(categoryId)}