@12-apps/ui 6.13.1 → 6.14.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 (142) hide show
  1. package/dist/_internal/components/data-display/Carousel/Carousel.js +4 -4
  2. package/dist/_internal/components/data-display/Chart/Chart.js +3 -3
  3. package/dist/_internal/components/data-display/Chart/SpecChart.js +7 -7
  4. package/dist/_internal/components/data-display/Chart/chart-renderers.js +2 -2
  5. package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
  6. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +2 -2
  7. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +24 -21
  8. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +29 -26
  9. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +2 -2
  10. package/dist/_internal/components/data-display/DataViews/base-list-card.js +3 -3
  11. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +1 -1
  12. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +2 -2
  13. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +5 -5
  14. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +3 -3
  15. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +20 -18
  16. package/dist/_internal/components/data-display/DataViews/data-views-header-row.js +12 -0
  17. package/dist/_internal/components/data-display/DataViews/data-views-header-row.js.map +1 -0
  18. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +7 -7
  19. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +5 -5
  20. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +6 -6
  21. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +3 -3
  22. package/dist/_internal/components/data-display/DataViews/data-views-selection-extra.js +8 -0
  23. package/dist/_internal/components/data-display/DataViews/data-views-selection-extra.js.map +1 -0
  24. package/dist/_internal/components/data-display/DataViews/data-views-selection.js +1 -1
  25. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +6 -6
  26. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +1 -1
  27. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +5 -5
  28. package/dist/_internal/components/data-display/DataViews/data-views-writers.js +9 -0
  29. package/dist/_internal/components/data-display/DataViews/data-views-writers.js.map +1 -0
  30. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +3 -2
  31. package/dist/_internal/components/data-display/index.js +23 -23
  32. package/dist/_internal/components/index.js +24 -24
  33. package/dist/_internal/components/layout/ContentToolbar/ContentToolbar.js +1 -1
  34. package/dist/_internal/components/layout/index.js +1 -1
  35. package/dist/charts.js +17 -17
  36. package/dist/{chunk-BV5XTGKB.js → chunk-2UCJJACD.js} +7 -9
  37. package/dist/chunk-2UCJJACD.js.map +1 -0
  38. package/dist/{chunk-JKLWHENB.js → chunk-62WEMJV3.js} +3 -3
  39. package/dist/chunk-62WEMJV3.js.map +1 -0
  40. package/dist/chunk-A4YWFX5C.js +39 -0
  41. package/dist/chunk-A4YWFX5C.js.map +1 -0
  42. package/dist/{chunk-CXA6UNFF.js → chunk-AP3PVR3T.js} +5 -5
  43. package/dist/{chunk-NPEKJXVV.js → chunk-BPCYXLWY.js} +7 -7
  44. package/dist/{chunk-XULTDO56.js → chunk-BVGR7OYA.js} +4 -4
  45. package/dist/{chunk-BZTFPSWT.js → chunk-DFLTUI7W.js} +7 -7
  46. package/dist/{chunk-AWTERXCW.js → chunk-GNAAHDCN.js} +4 -2
  47. package/dist/chunk-GNAAHDCN.js.map +1 -0
  48. package/dist/{chunk-HGBZZDP6.js → chunk-J4DDXHLB.js} +4 -4
  49. package/dist/chunk-KX75HM5U.js +20 -0
  50. package/dist/chunk-KX75HM5U.js.map +1 -0
  51. package/dist/chunk-LLZWB32X.js +36 -0
  52. package/dist/chunk-LLZWB32X.js.map +1 -0
  53. package/dist/{chunk-T4BFDZGU.js → chunk-LNIVT62P.js} +16 -40
  54. package/dist/chunk-LNIVT62P.js.map +1 -0
  55. package/dist/{chunk-WLCVOQCJ.js → chunk-LPNF4YJ7.js} +3 -3
  56. package/dist/{chunk-QQE2PVLO.js → chunk-M6365FGG.js} +2 -2
  57. package/dist/{chunk-RDYBS45D.js → chunk-O6MZPB64.js} +2 -2
  58. package/dist/{chunk-4KSOSI3U.js → chunk-O6V7KKW7.js} +4 -4
  59. package/dist/{chunk-JPDKRGYI.js → chunk-PDGAFQ6Z.js} +3 -3
  60. package/dist/{chunk-IN642YHK.js → chunk-PHA3NFZM.js} +2 -2
  61. package/dist/{chunk-NC2AATCC.js → chunk-QIKTIKO6.js} +2 -2
  62. package/dist/{chunk-GOWBYHYW.js → chunk-R6SBP5M5.js} +4 -4
  63. package/dist/{chunk-X5MPHXG5.js → chunk-RPWEXIAW.js} +6 -6
  64. package/dist/{chunk-2WWKBD4D.js → chunk-TSPHRZ4U.js} +5 -1
  65. package/dist/chunk-TSPHRZ4U.js.map +1 -0
  66. package/dist/chunk-U5FOJBLG.js +19 -0
  67. package/dist/chunk-U5FOJBLG.js.map +1 -0
  68. package/dist/{chunk-DEOC5OI7.js → chunk-U5RIDMMV.js} +2 -2
  69. package/dist/chunk-U5RIDMMV.js.map +1 -0
  70. package/dist/{chunk-ZHPKFV7Y.js → chunk-UENDC45F.js} +2 -2
  71. package/dist/{chunk-WXBBWSNU.js → chunk-ZNGUDGKW.js} +6 -5
  72. package/dist/chunk-ZNGUDGKW.js.map +1 -0
  73. package/dist/data-display/CardKit.js +7 -7
  74. package/dist/data-display/Carousel.js +4 -4
  75. package/dist/data-display/Chart.js +17 -17
  76. package/dist/data-display/DataGrid.js +2 -2
  77. package/dist/data-display/DataViews.js +38 -35
  78. package/dist/layout/ContentToolbar.js +1 -1
  79. package/dist/types/components/data-display/DataViews/DataViewsGrid.d.ts +12 -0
  80. package/dist/types/components/data-display/DataViews/DataViewsGrid.d.ts.map +1 -1
  81. package/dist/types/components/data-display/DataViews/DataViewsTableBase.d.ts +3 -0
  82. package/dist/types/components/data-display/DataViews/DataViewsTableBase.d.ts.map +1 -1
  83. package/dist/types/components/data-display/DataViews/data-views-grid-parts.d.ts +3 -0
  84. package/dist/types/components/data-display/DataViews/data-views-grid-parts.d.ts.map +1 -1
  85. package/dist/types/components/data-display/DataViews/data-views-header-row.d.ts +18 -0
  86. package/dist/types/components/data-display/DataViews/data-views-header-row.d.ts.map +1 -0
  87. package/dist/types/components/data-display/DataViews/data-views-selection-extra.d.ts +50 -0
  88. package/dist/types/components/data-display/DataViews/data-views-selection-extra.d.ts.map +1 -0
  89. package/dist/types/components/data-display/DataViews/data-views-selection.d.ts +31 -2
  90. package/dist/types/components/data-display/DataViews/data-views-selection.d.ts.map +1 -1
  91. package/dist/types/components/data-display/DataViews/data-views-shell-toolbar.d.ts +3 -1
  92. package/dist/types/components/data-display/DataViews/data-views-shell-toolbar.d.ts.map +1 -1
  93. package/dist/types/components/data-display/DataViews/data-views-toolbar.d.ts +2 -0
  94. package/dist/types/components/data-display/DataViews/data-views-toolbar.d.ts.map +1 -1
  95. package/dist/types/components/data-display/DataViews/data-views-writers.d.ts +20 -0
  96. package/dist/types/components/data-display/DataViews/data-views-writers.d.ts.map +1 -0
  97. package/dist/types/components/data-display/DataViews/index.d.ts +1 -0
  98. package/dist/types/components/data-display/DataViews/index.d.ts.map +1 -1
  99. package/dist/types/components/data-display/DataViews/use-data-views-state.d.ts.map +1 -1
  100. package/dist/types/components/layout/ContentToolbar/ContentToolbar.d.ts +1 -1
  101. package/dist/types/components/layout/ContentToolbar/ContentToolbar.d.ts.map +1 -1
  102. package/dist/types/components/layout/ContentToolbar/ContentToolbar.types.d.ts +15 -0
  103. package/dist/types/components/layout/ContentToolbar/ContentToolbar.types.d.ts.map +1 -1
  104. package/package.json +1 -1
  105. package/src/components/data-display/DataViews/DataViewsGrid.tsx +12 -0
  106. package/src/components/data-display/DataViews/DataViewsTableBase.tsx +3 -0
  107. package/src/components/data-display/DataViews/data-views-grid-parts.tsx +5 -50
  108. package/src/components/data-display/DataViews/data-views-header-row.tsx +52 -0
  109. package/src/components/data-display/DataViews/data-views-selection-extra.ts +67 -0
  110. package/src/components/data-display/DataViews/data-views-selection.ts +61 -6
  111. package/src/components/data-display/DataViews/data-views-shell-toolbar.tsx +4 -0
  112. package/src/components/data-display/DataViews/data-views-toolbar.tsx +3 -0
  113. package/src/components/data-display/DataViews/data-views-writers.ts +45 -0
  114. package/src/components/data-display/DataViews/index.ts +1 -0
  115. package/src/components/data-display/DataViews/use-data-views-state.ts +4 -11
  116. package/src/components/layout/ContentToolbar/ContentToolbar.md +10 -3
  117. package/src/components/layout/ContentToolbar/ContentToolbar.tsx +5 -0
  118. package/src/components/layout/ContentToolbar/ContentToolbar.types.ts +15 -0
  119. package/dist/chunk-2WWKBD4D.js.map +0 -1
  120. package/dist/chunk-AWTERXCW.js.map +0 -1
  121. package/dist/chunk-BV5XTGKB.js.map +0 -1
  122. package/dist/chunk-DEOC5OI7.js.map +0 -1
  123. package/dist/chunk-JKLWHENB.js.map +0 -1
  124. package/dist/chunk-T4BFDZGU.js.map +0 -1
  125. package/dist/chunk-WTOTWP6A.js +0 -27
  126. package/dist/chunk-WTOTWP6A.js.map +0 -1
  127. package/dist/chunk-WXBBWSNU.js.map +0 -1
  128. /package/dist/{chunk-CXA6UNFF.js.map → chunk-AP3PVR3T.js.map} +0 -0
  129. /package/dist/{chunk-NPEKJXVV.js.map → chunk-BPCYXLWY.js.map} +0 -0
  130. /package/dist/{chunk-XULTDO56.js.map → chunk-BVGR7OYA.js.map} +0 -0
  131. /package/dist/{chunk-BZTFPSWT.js.map → chunk-DFLTUI7W.js.map} +0 -0
  132. /package/dist/{chunk-HGBZZDP6.js.map → chunk-J4DDXHLB.js.map} +0 -0
  133. /package/dist/{chunk-WLCVOQCJ.js.map → chunk-LPNF4YJ7.js.map} +0 -0
  134. /package/dist/{chunk-QQE2PVLO.js.map → chunk-M6365FGG.js.map} +0 -0
  135. /package/dist/{chunk-RDYBS45D.js.map → chunk-O6MZPB64.js.map} +0 -0
  136. /package/dist/{chunk-4KSOSI3U.js.map → chunk-O6V7KKW7.js.map} +0 -0
  137. /package/dist/{chunk-JPDKRGYI.js.map → chunk-PDGAFQ6Z.js.map} +0 -0
  138. /package/dist/{chunk-IN642YHK.js.map → chunk-PHA3NFZM.js.map} +0 -0
  139. /package/dist/{chunk-NC2AATCC.js.map → chunk-QIKTIKO6.js.map} +0 -0
  140. /package/dist/{chunk-GOWBYHYW.js.map → chunk-R6SBP5M5.js.map} +0 -0
  141. /package/dist/{chunk-X5MPHXG5.js.map → chunk-RPWEXIAW.js.map} +0 -0
  142. /package/dist/{chunk-ZHPKFV7Y.js.map → chunk-UENDC45F.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"data-views-toolbar.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-toolbar.tsx"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACzB,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,IAAI,KAAK,KAAK,CAAC,SAAS,CAAC;IACjF,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,KAAK,GAAG,MAAM,CAAC;IAChC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC;IAC7D,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,aAAa,EAAE,sBAAsB,EAAE,CAAC;IACxC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,kFAAkF;IAClF,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACnC,6EAA6E;IAC7E,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAC1B,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,kFAAkF;IAClF,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,qDAAqD;IACrD,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAgED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAwC5G"}
1
+ {"version":3,"file":"data-views-toolbar.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-toolbar.tsx"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACzB,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,IAAI,KAAK,KAAK,CAAC,SAAS,CAAC;IACjF,+EAA+E;IAC/E,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,KAAK,GAAG,MAAM,CAAC;IAChC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC;IAC7D,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,aAAa,EAAE,sBAAsB,EAAE,CAAC;IACxC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,kFAAkF;IAClF,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACnC,6EAA6E;IAC7E,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAC1B,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,kFAAkF;IAClF,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,qDAAqD;IACrD,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAgED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAyC5G"}
@@ -0,0 +1,20 @@
1
+ import { type Dispatch, type SetStateAction } from "react";
2
+ import { type DataViewState, type DataViewStatePatch } from "./data-views-types";
3
+ /**
4
+ * The two ways a DataViews state is WRITTEN, spelled once.
5
+ *
6
+ * Both are `setState` with a shape — a whole-state patch, and the one column
7
+ * toggle that has to merge into a list rather than replace a field. They sat
8
+ * inline in `useDataViewsState`, which is permanently at the size gate's
9
+ * ceiling; here they sit next to each other, where the fact that
10
+ * `toggleColumn` is just a `patch` with a merge rule is visible.
11
+ *
12
+ * Extracted for the same reason `useSelection` was: that hook is a COMPOSITION
13
+ * of the pieces below it, and every piece that can be named on its own leaves
14
+ * it reading as what it assembles rather than as how each part works.
15
+ */
16
+ export declare function useStateWriters(setState: Dispatch<SetStateAction<DataViewState>>): {
17
+ patch: (next: DataViewStatePatch) => void;
18
+ toggleColumn: (id: string, visible: boolean) => void;
19
+ };
20
+ //# sourceMappingURL=data-views-writers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-views-writers.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-writers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAcjF;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,GAAG;IAClF,KAAK,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC1C,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACtD,CAUA"}
@@ -18,6 +18,7 @@ export { toSavedViewSummary, CARD_ASPECT_RATIOS, DATA_VIEWS_LAYOUTS } from "./da
18
18
  export { cardScaleForZoom, cardMinWidthForZoom } from "./data-views-layout-context";
19
19
  export { DataViewsBoard, type BoardConfig, type BoardGroup } from "./DataViewsBoard";
20
20
  export type { DataViewExport, DataViewExportFormat, DataViewExportRequest, } from "./data-views-export";
21
+ export type { SelectionExtraContext, SelectionExtraRender } from "./data-views-selection-extra";
21
22
  export { DataViewsScopeTabs, resolveScope, assertNoScopePillOverlap, type ScopeConfig, } from "./data-views-scopes";
22
23
  export type { RowAction, DataViewCardSelection, CardAspectRatio, SavedViewSummary, DataViewState, DataViewSyncState, DataViewsLayout, DataViewColumn, FilterFieldConfig, RangeFieldConfig, RangeFieldKind, RangeValue, RangePreset, NumberRangeFieldConfig, DayRangeFieldConfig, DataViewPersistence, DataViewRouter, DataViewSaveInput, DataViewMutationResult, DataViewQuery, DataViewServer, } from "./data-views-types";
23
24
  export { DataViewsCopyProvider, useDataViewsCopy } from "./data-views-copy-context";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAMxE,OAAO,EACL,aAAa,EACb,aAAa,EACb,UAAU,EACV,KAAK,SAAS,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,kBAAkB,EACvB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAI3B,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,KAAK,kBAAkB,EACvB,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACrF,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,wBAAwB,EACxB,KAAK,WAAW,GACjB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,SAAS,EACT,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,cAAc,GACf,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACpF,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAMxE,OAAO,EACL,aAAa,EACb,aAAa,EACb,UAAU,EACV,KAAK,SAAS,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,kBAAkB,EACvB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAI3B,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,KAAK,kBAAkB,EACvB,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACrF,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAChG,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,wBAAwB,EACxB,KAAK,WAAW,GACjB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,SAAS,EACT,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,cAAc,GACf,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACpF,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-data-views-state.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/use-data-views-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-data-views-state.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/use-data-views-state.ts"],"names":[],"mappings":"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"}
@@ -29,5 +29,5 @@ import type { ContentToolbarProps } from './ContentToolbar.types';
29
29
  * />
30
30
  * ```
31
31
  */
32
- export declare function ContentToolbar({ hasSelection, selectedCount, selectAll, clearSelection, rightControls, leadingControls, actions, selectAllTestId, clearAllTestId, edgeAlign, exclusiveSelection, selectAllLabel, selectAllText, clearAllText, }: ContentToolbarProps): React.JSX.Element;
32
+ export declare function ContentToolbar({ hasSelection, selectedCount, selectAll, clearSelection, rightControls, leadingControls, actions, selectionExtra, selectAllTestId, clearAllTestId, edgeAlign, exclusiveSelection, selectAllLabel, selectAllText, clearAllText, }: ContentToolbarProps): React.JSX.Element;
33
33
  //# sourceMappingURL=ContentToolbar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContentToolbar.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/ContentToolbar/ContentToolbar.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AA+KlE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,cAAc,CAAC,EAC7B,YAAY,EACZ,aAAa,EACb,SAAS,EACT,cAAc,EACd,aAAa,EACb,eAAe,EACf,OAAO,EACP,eAAe,EACf,cAAc,EACd,SAAiB,EACjB,kBAA0B,EAC1B,cAAc,EACd,aAAa,EACb,YAAY,GACb,EAAE,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAiDzC"}
1
+ {"version":3,"file":"ContentToolbar.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/ContentToolbar/ContentToolbar.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAkLlE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,cAAc,CAAC,EAC7B,YAAY,EACZ,aAAa,EACb,SAAS,EACT,cAAc,EACd,aAAa,EACb,eAAe,EACf,OAAO,EACP,cAAc,EACd,eAAe,EACf,cAAc,EACd,SAAiB,EACjB,kBAA0B,EAC1B,cAAc,EACd,aAAa,EACb,YAAY,GACb,EAAE,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAkDzC"}
@@ -42,6 +42,21 @@ export interface ContentToolbarProps {
42
42
  * what the action does.
43
43
  */
44
44
  actions?: ReactNode;
45
+ /**
46
+ * A control rendered between the count and {@link actions}, and ONLY while
47
+ * something is selected.
48
+ *
49
+ * It is a second slot rather than more room in `actions` because the two
50
+ * answer different questions. `actions` is what HAPPENS to the selection;
51
+ * this is what the selection IS — the "select all 143 matching" widening
52
+ * that a paginated grid needs once its whole page is ticked. Folding a
53
+ * widening control into the actions menu would file "change what I picked"
54
+ * under "do this to what I picked", where an operator reasonably expects
55
+ * every entry to write something.
56
+ *
57
+ * Ignored when nothing is selected: a widening has nothing to widen.
58
+ */
59
+ selectionExtra?: ReactNode;
45
60
  /** Test id for the Select All button. */
46
61
  selectAllTestId?: string;
47
62
  /** Test id for the Clear All button. */
@@ -1 +1 @@
1
- {"version":3,"file":"ContentToolbar.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/ContentToolbar/ContentToolbar.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContentToolbar.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/ContentToolbar/ContentToolbar.types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@12-apps/ui",
3
- "version": "6.13.1",
3
+ "version": "6.14.0",
4
4
  "license": "MIT",
5
5
  "packageManager": "pnpm@10.34.5",
6
6
  "type": "module",
@@ -5,6 +5,7 @@ import { useEffect, useRef } from "react";
5
5
  import { type SortFieldDefinition } from "../../layout/ContentToolbar";
6
6
 
7
7
  import { GridShell } from "./data-views-grid-parts";
8
+ import type { SelectionExtraRender } from "./data-views-selection-extra";
8
9
  import type { ListGroupConfig } from "./list-card-rails";
9
10
  import type { DisplayPanelView } from "./data-views-display-panel";
10
11
  import type { BoardConfig } from "./DataViewsBoard";
@@ -97,6 +98,17 @@ interface DataViewsGridProps<T extends Record<string, unknown>> {
97
98
  * Receives the selected rows + a `clearSelection` callback.
98
99
  */
99
100
  bulkActions?: (selectedRows: T[], clearSelection: () => void) => React.ReactNode;
101
+ /**
102
+ * A control rendered beside the "N selected" count, for changing WHAT is
103
+ * selected rather than what happens to it — a "select all N matching the
104
+ * filter" widening, above all.
105
+ *
106
+ * Called only while something is selected, and handed
107
+ * {@link SelectionExtraContext.allOnPageSelected} so the control can follow
108
+ * the convention operators already know: the widening appears once the whole
109
+ * page is ticked, and not before.
110
+ */
111
+ selectionExtra?: SelectionExtraRender<T>;
100
112
  /**
101
113
  * Render a bespoke per-row menu in the actions column instead of the auto
102
114
  * kebab — typically an entity's self-contained 3-dots menu that owns its own
@@ -4,6 +4,7 @@ import type { SortFieldDefinition } from "../../layout/ContentToolbar";
4
4
  import { useEffect, useMemo, useRef, useState } from "react";
5
5
 
6
6
  import { DataViewsGrid } from "./DataViewsGrid";
7
+ import type { SelectionExtraRender } from "./data-views-selection-extra";
7
8
  import type { ListGroupConfig } from "./list-card-rails";
8
9
  import type { DisplayPanelView } from "./data-views-display-panel";
9
10
  import { viewStateKey } from "./data-views-dirty";
@@ -76,6 +77,8 @@ export interface DataViewsTableBaseProps<T extends Record<string, unknown>> {
76
77
  rowActionsLeading?: (row: T) => React.ReactNode;
77
78
  /** Low-level bulk-action override; prefer `rowActions`. */
78
79
  bulkActions?: (selectedRows: T[], clearSelection: () => void) => React.ReactNode;
80
+ /** A selection-widening control beside the count (e.g. "select all matching"). */
81
+ selectionExtra?: SelectionExtraRender<T>;
79
82
  /** Bespoke per-row menu (an entity's self-contained 3-dots menu) instead of the auto kebab. */
80
83
  renderRowMenu?: (row: T) => React.ReactNode;
81
84
  /** Opt-in "Grade" (cards) layout — a card renderer per row; adds a Grade/Tabela toggle. */
@@ -3,8 +3,6 @@
3
3
  import { useEffect, useState } from "react";
4
4
 
5
5
  import { TableFilter } from "../../layout/TableFilter";
6
- import { Text } from "../../typography/Text";
7
- import { Box } from "../../../mui/Box";
8
6
  import { Stack } from "../../../mui/Stack";
9
7
 
10
8
  import {
@@ -17,6 +15,8 @@ import { GridMain } from "./data-views-grid-bodies";
17
15
  import type { ListGroupConfig } from "./list-card-rails";
18
16
  import { InlineFilterControls } from "./data-views-inline-bar";
19
17
  import { toOverflowFields, useFilterOverflow, type OverflowSplit } from "./data-views-overflow";
18
+ import { GridHeaderRow } from "./data-views-header-row";
19
+ import { resolveSelectionExtra, type SelectionExtraRender } from "./data-views-selection-extra";
20
20
  import { ShellToolbar } from "./data-views-shell-toolbar";
21
21
  import type { DisplayPanelView } from "./data-views-display-panel";
22
22
  import type { DataViewExport } from "./data-views-export";
@@ -36,54 +36,6 @@ import type {
36
36
  } from "./data-views-types";
37
37
  import type { DataViewsController } from "./use-data-views-state";
38
38
 
39
- /* ── Header row ──────────────────────────────────────────────────────────── */
40
-
41
- /**
42
- * The grid's own header row: the page title on the left, the primary page
43
- * actions on the right.
44
- *
45
- * `title` and `headerActions` were DECLARED on `DataViewsGridProps` and
46
- * `DataViewsTableBaseProps` but never destructured or forwarded — dead props
47
- * whose types lied to every caller that set them. Wired here rather than
48
- * deleted: a table that carries its own title keeps the title, the scope tabs
49
- * and the toolbar as one block, instead of the page having to space them.
50
- *
51
- * Renders NOTHING when neither is supplied, so no existing table gains a row.
52
- */
53
- function GridHeaderRow({
54
- title,
55
- headerActions,
56
- testIdPrefix,
57
- }: {
58
- title?: string;
59
- headerActions?: React.ReactNode;
60
- testIdPrefix: string;
61
- }): React.JSX.Element | null {
62
- if (!title && !headerActions) return null;
63
- return (
64
- <Box
65
- data-testid={`${testIdPrefix}-header`}
66
- sx={{
67
- display: "flex",
68
- alignItems: "center",
69
- justifyContent: "space-between",
70
- gap: 2,
71
- flexWrap: "wrap",
72
- pb: 1.5,
73
- }}
74
- >
75
- {title ? (
76
- <Text variant="heading" size="lg" as="h2">
77
- {title}
78
- </Text>
79
- ) : (
80
- <Box />
81
- )}
82
- {headerActions && <Box sx={{ display: "flex", alignItems: "center", gap: 1 }}>{headerActions}</Box>}
83
- </Box>
84
- );
85
- }
86
-
87
39
  /* ── Layout ⇄ view-state mirror ──────────────────────────────────────────── */
88
40
 
89
41
  /**
@@ -230,6 +182,8 @@ interface GridShellProps<T extends Record<string, unknown>> {
230
182
  toolbarRightSlot?: React.ReactNode;
231
183
  rowActions?: RowAction<T>[];
232
184
  bulkActions?: (selectedRows: T[], clearSelection: () => void) => React.ReactNode;
185
+ /** A widening control beside the selection count — see `resolveSelectionExtra`. */
186
+ selectionExtra?: SelectionExtraRender<T>;
233
187
  /** Opt-in "Grade" (cards) layout: renders each row as an entity-supplied card.
234
188
  * Omit ⇒ table only (no layout toggle). */
235
189
  renderCard?: (row: T, selection: DataViewCardSelection) => React.ReactNode;
@@ -326,6 +280,7 @@ function ShellStack<T extends Record<string, unknown>>({
326
280
  testIdPrefix={testIdPrefix}
327
281
  rowActions={props.rowActions}
328
282
  bulkActions={props.bulkActions}
283
+ selectionExtra={resolveSelectionExtra(props)}
329
284
  toolbarRightSlot={props.toolbarRightSlot}
330
285
  compactControls={showInline && split.compactControls}
331
286
  counterHidden={showInline && split.counterHidden}
@@ -0,0 +1,52 @@
1
+ "use client";
2
+
3
+ import { Text } from "../../typography/Text";
4
+ import { Box } from "../../../mui/Box";
5
+
6
+ /* ── Header row ──────────────────────────────────────────────────────────── */
7
+
8
+ /**
9
+ * The grid's own header row: the page title on the left, the primary page
10
+ * actions on the right.
11
+ *
12
+ * `title` and `headerActions` were DECLARED on `DataViewsGridProps` and
13
+ * `DataViewsTableBaseProps` but never destructured or forwarded — dead props
14
+ * whose types lied to every caller that set them. Wired here rather than
15
+ * deleted: a table that carries its own title keeps the title, the scope tabs
16
+ * and the toolbar as one block, instead of the page having to space them.
17
+ *
18
+ * Renders NOTHING when neither is supplied, so no existing table gains a row.
19
+ */
20
+ export function GridHeaderRow({
21
+ title,
22
+ headerActions,
23
+ testIdPrefix,
24
+ }: {
25
+ title?: string;
26
+ headerActions?: React.ReactNode;
27
+ testIdPrefix: string;
28
+ }): React.JSX.Element | null {
29
+ if (!title && !headerActions) return null;
30
+ return (
31
+ <Box
32
+ data-testid={`${testIdPrefix}-header`}
33
+ sx={{
34
+ display: "flex",
35
+ alignItems: "center",
36
+ justifyContent: "space-between",
37
+ gap: 2,
38
+ flexWrap: "wrap",
39
+ pb: 1.5,
40
+ }}
41
+ >
42
+ {title ? (
43
+ <Text variant="heading" size="lg" as="h2">
44
+ {title}
45
+ </Text>
46
+ ) : (
47
+ <Box />
48
+ )}
49
+ {headerActions && <Box sx={{ display: "flex", alignItems: "center", gap: 1 }}>{headerActions}</Box>}
50
+ </Box>
51
+ );
52
+ }
@@ -0,0 +1,67 @@
1
+ /**
2
+ * The selection-WIDENING slot: what a paginated grid needs so an operator can
3
+ * act on "everything matching the filter" rather than on the page in front of
4
+ * them.
5
+ *
6
+ * It is a slot of its own rather than a share of the bulk-actions menu because
7
+ * the two answer different questions — `actions` is what HAPPENS to the
8
+ * selection, this is what the selection IS. Folding a widening into the actions
9
+ * menu files "change what I picked" under "do this to what I picked", where
10
+ * every entry is expected to write something.
11
+ */
12
+ import type { DataViewsController } from "./use-data-views-state";
13
+
14
+ /**
15
+ * What a widening control gets to decide with.
16
+ *
17
+ * `allOnPageSelected` is the one thing a host cannot compute for itself, and
18
+ * the whole reason this is a context rather than a bare node: the grid owns
19
+ * which rows the page is currently rendering — server mode pages at the
20
+ * backend, so the host's `rows` prop and the page can differ mid-fetch — and
21
+ * "every row here is ticked" is the trigger a select-all-matching control
22
+ * hangs on. Deriving it host-side would be a second, slightly different answer
23
+ * to the question the grid already answers to draw its own header checkbox.
24
+ */
25
+ export interface SelectionExtraContext<T extends Record<string, unknown>> {
26
+ /** The selected rows, off-page ones included. */
27
+ selectedRows: T[];
28
+ /** Drop the whole selection. */
29
+ clearSelection: () => void;
30
+ /** Every row the page is rendering is selected — and the page is not empty. */
31
+ allOnPageSelected: boolean;
32
+ /** How many rows the page is rendering. */
33
+ pageRowCount: number;
34
+ }
35
+
36
+ /** The host's widening control, called only while something is selected. */
37
+ export type SelectionExtraRender<T extends Record<string, unknown>> = (
38
+ context: SelectionExtraContext<T>,
39
+ ) => React.ReactNode;
40
+
41
+ /**
42
+ * Resolve the host's control against the page on screen.
43
+ *
44
+ * Measured against `c.matched` — which in server mode IS the page — rather than
45
+ * the `rows` prop, so the answer cannot lag a page change.
46
+ *
47
+ * Returns `undefined` with nothing selected, so the toolbar renders no empty
48
+ * slot: a widening with nothing to widen is not a control.
49
+ */
50
+ export function resolveSelectionExtra<T extends Record<string, unknown>>({
51
+ c,
52
+ getRowId,
53
+ selectionExtra,
54
+ }: {
55
+ c: DataViewsController<T>;
56
+ getRowId: (row: T) => string | number;
57
+ selectionExtra?: SelectionExtraRender<T>;
58
+ }): React.ReactNode {
59
+ if (selectionExtra === undefined || c.selectedRows.length === 0) return undefined;
60
+ const page = c.matched;
61
+ return selectionExtra({
62
+ selectedRows: c.selectedRows,
63
+ clearSelection: c.clearSelection,
64
+ allOnPageSelected: page.length > 0 && page.every((row) => c.selectedIds.has(getRowId(row))),
65
+ pageRowCount: page.length,
66
+ });
67
+ }
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
 
3
- import { useMemo, useState } from "react";
3
+ import { useMemo, useRef, useState } from "react";
4
4
 
5
5
  /** The multi-select model, identical in every layout (table, cards, board). */
6
6
  interface DataViewsSelection<T> {
@@ -8,7 +8,7 @@ interface DataViewsSelection<T> {
8
8
  setSelectedIds: (ids: Set<string | number>) => void;
9
9
  /** Add/remove ONE id — what a card's or board card's checkbox calls. */
10
10
  toggleId: (id: string | number) => void;
11
- /** The selected rows, narrowed to what is currently rendered. */
11
+ /** The selected rows, INCLUDING ones the current page no longer renders. */
12
12
  selectedRows: T[];
13
13
  clearSelection: () => void;
14
14
  selectAll: () => void;
@@ -23,16 +23,71 @@ interface DataViewsSelection<T> {
23
23
  * because `toggleId` needs a functional update: two cards toggled in the same
24
24
  * tick would otherwise both read the pre-render set and the second would drop
25
25
  * the first's change.
26
+ *
27
+ * ## A selection has to survive PAGING
28
+ *
29
+ * `selectedIds` always did — nothing clears it when the page changes — but
30
+ * `selectedRows` was `matched.filter(...)`, and in SERVER mode `matched` is one
31
+ * page. So ticking three rows, paging, and ticking two more left the checkboxes
32
+ * claiming five and the bulk action receiving two, silently, with the other
33
+ * three still ticked on a page nobody was looking at.
34
+ *
35
+ * That is the worst shape a bug can have here: the UI and the write disagree,
36
+ * neither says so, and the rows that did not move are exactly the ones out of
37
+ * sight. So a row is REMEMBERED for as long as its id is selected, and
38
+ * `selectedRows` answers from that memory for anything the current page does
39
+ * not hold.
40
+ *
41
+ * **Server mode only** ({@link SelectionOptions.rememberOffPage}), and the
42
+ * distinction is not a hedge. In client mode `matched` is the whole filtered
43
+ * result, so nothing is ever off-page and there is nothing to remember — while
44
+ * narrowing the selection as the FILTER narrows is the behaviour a client-mode
45
+ * grid should keep. Remembering there would mean a bulk action reaching rows
46
+ * the operator has just filtered away.
26
47
  */
48
+ export interface SelectionOptions {
49
+ /**
50
+ * Keep rows the current page no longer renders.
51
+ *
52
+ * True in server mode, where `matched` is a page rather than the result.
53
+ */
54
+ rememberOffPage?: boolean;
55
+ }
56
+
27
57
  export function useSelection<T>(
28
58
  matched: T[],
29
59
  getRowId: (row: T) => string | number,
60
+ options: SelectionOptions = {},
30
61
  ): DataViewsSelection<T> {
31
62
  const [selectedIds, setSelectedIds] = useState<Set<string | number>>(new Set());
32
- const selectedRows = useMemo(
33
- () => matched.filter((row) => selectedIds.has(getRowId(row))),
34
- [matched, selectedIds, getRowId],
35
- );
63
+ // Rows seen while selected, so a selection outlives the page that made it.
64
+ // A ref rather than state: it is a CACHE derived from what has been rendered,
65
+ // and holding it in state would re-render on every page load to store rows
66
+ // nothing is waiting for.
67
+ const remembered = useRef(new Map<string | number, T>());
68
+
69
+ const selectedRows = useMemo(() => {
70
+ const onPage = matched.filter((row) => selectedIds.has(getRowId(row)));
71
+ if (!options.rememberOffPage) return onPage;
72
+
73
+ const cache = remembered.current;
74
+ // Refresh from what is on screen NOW: a row edited elsewhere and re-fetched
75
+ // must not be acted on through a stale snapshot from three pages ago.
76
+ for (const row of onPage) cache.set(getRowId(row), row);
77
+ // …and forget anything no longer selected, so the map cannot outgrow the
78
+ // selection it exists to describe.
79
+ for (const id of cache.keys()) if (!selectedIds.has(id)) cache.delete(id);
80
+
81
+ // On-page rows first, in the page's own order — unchanged from before this
82
+ // — then the remembered tail. Appending rather than interleaving keeps the
83
+ // familiar case byte-identical and makes the addition exactly the addition.
84
+ const onPageIds = new Set(onPage.map(getRowId));
85
+ const offPage = [...cache.entries()].flatMap(([id, row]) =>
86
+ onPageIds.has(id) ? [] : [row],
87
+ );
88
+ return [...onPage, ...offPage];
89
+ }, [matched, selectedIds, getRowId, options.rememberOffPage]);
90
+
36
91
  return {
37
92
  selectedIds,
38
93
  setSelectedIds,
@@ -22,6 +22,7 @@ export function ShellToolbar<T extends Record<string, unknown>>({
22
22
  testIdPrefix,
23
23
  rowActions,
24
24
  bulkActions,
25
+ selectionExtra,
25
26
  toolbarRightSlot,
26
27
  showInline,
27
28
  compactControls,
@@ -40,6 +41,8 @@ export function ShellToolbar<T extends Record<string, unknown>>({
40
41
  exportConfig?: DataViewExport;
41
42
  rowActions?: RowAction<T>[];
42
43
  bulkActions?: (selectedRows: T[], clearSelection: () => void) => React.ReactNode;
44
+ /** Already resolved by the shell, which is the party that knows the page. */
45
+ selectionExtra?: React.ReactNode;
43
46
  toolbarRightSlot?: React.ReactNode;
44
47
  /** Search + filters, rendered on the toolbar line (see `GridToolbar`). */
45
48
  filterControls?: React.ReactNode;
@@ -71,6 +74,7 @@ export function ShellToolbar<T extends Record<string, unknown>>({
71
74
  clearSelection={c.clearSelection}
72
75
  rowActions={rowActions}
73
76
  bulkActions={bulkActions}
77
+ selectionExtra={selectionExtra}
74
78
  sortFields={c.resolvedSortFields}
75
79
  activeSortField={c.activeSortField}
76
80
  activeSortOrder={c.activeSortOrder}
@@ -25,6 +25,8 @@ export interface GridToolbarProps<T extends Record<string, unknown>> {
25
25
  clearSelection: () => void;
26
26
  rowActions?: RowAction<T>[];
27
27
  bulkActions?: (selectedRows: T[], clearSelection: () => void) => React.ReactNode;
28
+ /** A control between the count and the actions menu — see `selectionExtra`. */
29
+ selectionExtra?: React.ReactNode;
28
30
  sortFields: SortFieldDefinition[];
29
31
  activeSortField: string;
30
32
  activeSortOrder: "asc" | "desc";
@@ -161,6 +163,7 @@ export function GridToolbar<T extends Record<string, unknown>>(props: GridToolba
161
163
  clearSelection={props.clearSelection}
162
164
  selectAllTestId={`${testIdPrefix}-select-all`}
163
165
  clearAllTestId={`${testIdPrefix}-clear-all`}
166
+ selectionExtra={props.selectionExtra}
164
167
  actions={renderBulkActions({
165
168
  rowActions: props.rowActions,
166
169
  bulkActions: props.bulkActions,
@@ -0,0 +1,45 @@
1
+ "use client";
2
+
3
+ import { type Dispatch, type SetStateAction } from "react";
4
+
5
+ import { type DataViewState, type DataViewStatePatch } from "./data-views-types";
6
+
7
+ /**
8
+ * Add or remove one column id from the visible-columns list.
9
+ *
10
+ * Moved here with its only caller. A visible column is APPENDED rather than
11
+ * restored to its original index, which is what makes re-showing a column put
12
+ * it last — the behaviour the Exibir panel has always had.
13
+ */
14
+ function nextVisibleColumns(current: string[], id: string, visible: boolean): string[] {
15
+ const without = current.filter((colId) => colId !== id);
16
+ return visible ? [...without, id] : without;
17
+ }
18
+
19
+ /**
20
+ * The two ways a DataViews state is WRITTEN, spelled once.
21
+ *
22
+ * Both are `setState` with a shape — a whole-state patch, and the one column
23
+ * toggle that has to merge into a list rather than replace a field. They sat
24
+ * inline in `useDataViewsState`, which is permanently at the size gate's
25
+ * ceiling; here they sit next to each other, where the fact that
26
+ * `toggleColumn` is just a `patch` with a merge rule is visible.
27
+ *
28
+ * Extracted for the same reason `useSelection` was: that hook is a COMPOSITION
29
+ * of the pieces below it, and every piece that can be named on its own leaves
30
+ * it reading as what it assembles rather than as how each part works.
31
+ */
32
+ export function useStateWriters(setState: Dispatch<SetStateAction<DataViewState>>): {
33
+ patch: (next: DataViewStatePatch) => void;
34
+ toggleColumn: (id: string, visible: boolean) => void;
35
+ } {
36
+ return {
37
+ patch: (next) =>
38
+ setState((prev) => ({ ...prev, ...(typeof next === "function" ? next(prev) : next) })),
39
+ toggleColumn: (id, visible) =>
40
+ setState((prev) => ({
41
+ ...prev,
42
+ visibleColumns: nextVisibleColumns(prev.visibleColumns, id, visible),
43
+ })),
44
+ };
45
+ }
@@ -45,6 +45,7 @@ export type {
45
45
  DataViewExportFormat,
46
46
  DataViewExportRequest,
47
47
  } from "./data-views-export";
48
+ export type { SelectionExtraContext, SelectionExtraRender } from "./data-views-selection-extra";
48
49
  export {
49
50
  DataViewsScopeTabs,
50
51
  resolveScope,
@@ -15,6 +15,7 @@ import { computeActiveFilterCount, defaultSortFields } from "./data-views-grid-h
15
15
  import { resolveScope, useScopeConfigChecks, type ScopeConfig } from "./data-views-scopes";
16
16
  import { serverDerived, useServerQuery } from "./data-views-server-query";
17
17
  import { useSelection } from "./data-views-selection";
18
+ import { useStateWriters } from "./data-views-writers";
18
19
  import {
19
20
  emptyViewState,
20
21
  type DataViewColumn,
@@ -168,12 +169,6 @@ function useMatchedRows<T extends Record<string, unknown>>(
168
169
  );
169
170
  }
170
171
 
171
- /** Add or remove one column id from the visible-columns list. */
172
- function nextVisibleColumns(current: string[], id: string, visible: boolean): string[] {
173
- const without = current.filter((colId) => colId !== id);
174
- return visible ? [...without, id] : without;
175
- }
176
-
177
172
  /**
178
173
  * Reconcile external state changes and surface every change to the caller:
179
174
  * - `appliedState` (a saved view) fully REPLACES the state — it is columns-
@@ -336,8 +331,7 @@ export function useDataViewsState<T extends Record<string, unknown>>({
336
331
 
337
332
  useStateSyncEffects(appliedState, syncState, state, onStateChange, setState);
338
333
 
339
- const patch = (next: DataViewStatePatch): void =>
340
- setState((prev) => ({ ...prev, ...(typeof next === "function" ? next(prev) : next) }));
334
+ const { patch, toggleColumn } = useStateWriters(setState);
341
335
  const matched = useMatchedRows(server, rows, columns, fields, rangeFields, state);
342
336
  // Resolved at READ time, every render: a stale deep link or a saved view naming
343
337
  // a scope that has since been removed falls back to the first declared scope
@@ -351,9 +345,8 @@ export function useDataViewsState<T extends Record<string, unknown>>({
351
345
  onRowClick,
352
346
  state.order,
353
347
  );
354
- const toggleColumn = (id: string, visible: boolean): void =>
355
- setState((prev) => ({ ...prev, visibleColumns: nextVisibleColumns(prev.visibleColumns, id, visible) }));
356
- const selection = useSelection(matched, getRowId);
348
+ // Server mode is where `matched` is a PAGE — see `useSelection` (FUT-942).
349
+ const selection = useSelection(matched, getRowId, { rememberOffPage: Boolean(server) });
357
350
  const resolvedSortFields = sortFields ?? defaultSortFields(columns);
358
351
 
359
352
  return {