eidos-ui 2.0.0 → 2.1.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 (223) hide show
  1. package/dist/Avatar.types-BY-C09Ke.d.cts +23 -0
  2. package/dist/Avatar.types-BY-C09Ke.d.ts +23 -0
  3. package/dist/{Header.types-BZi80bWz.d.cts → Header.types-B3QtuiL-.d.cts} +7 -3
  4. package/dist/{Header.types-DJt-q01P.d.ts → Header.types-C6w0FBY8.d.ts} +7 -3
  5. package/dist/{Table.types-Cl5gR8r9.d.cts → Table.types-CPj-udMc.d.cts} +95 -0
  6. package/dist/{Table.types-jhPb7JNU.d.ts → Table.types-CZZ7QWAI.d.ts} +95 -0
  7. package/dist/Toolbar.types-DSk8z2iy.d.cts +38 -0
  8. package/dist/Toolbar.types-RN0klQzu.d.ts +38 -0
  9. package/dist/alert/index.cjs +4 -4
  10. package/dist/alert/index.d.cts +2 -1
  11. package/dist/alert/index.d.ts +2 -1
  12. package/dist/alert/index.js +3 -3
  13. package/dist/avatar/index.d.cts +3 -21
  14. package/dist/avatar/index.d.ts +3 -21
  15. package/dist/button/index.cjs +3 -3
  16. package/dist/button/index.js +2 -2
  17. package/dist/chip/index.cjs +3 -3
  18. package/dist/chip/index.js +2 -2
  19. package/dist/{chunk-KIXFSXIN.cjs → chunk-3E7TKBQI.cjs} +5 -3
  20. package/dist/chunk-3E7TKBQI.cjs.map +1 -0
  21. package/dist/{chunk-ZBKJ3EMK.cjs → chunk-442U3W6R.cjs} +3 -3
  22. package/dist/{chunk-ZBKJ3EMK.cjs.map → chunk-442U3W6R.cjs.map} +1 -1
  23. package/dist/{chunk-YQLCPKGV.js → chunk-5HUZYY54.js} +6 -4
  24. package/dist/chunk-5HUZYY54.js.map +1 -0
  25. package/dist/{chunk-G5IGADJI.cjs → chunk-5VM2256W.cjs} +7 -11
  26. package/dist/chunk-5VM2256W.cjs.map +1 -0
  27. package/dist/{chunk-Z4ZY7L7W.js → chunk-5ZL6PYU3.js} +3 -3
  28. package/dist/{chunk-A3NE2C7C.js → chunk-67RFMV6K.js} +2 -2
  29. package/dist/{chunk-2U7UJOOB.cjs → chunk-6HUHH6Y4.cjs} +17 -15
  30. package/dist/chunk-6HUHH6Y4.cjs.map +1 -0
  31. package/dist/{chunk-5WROPW7Z.js → chunk-A7WQINIG.js} +3 -3
  32. package/dist/{chunk-DKZTDYH5.cjs → chunk-AAA6TR5I.cjs} +3 -3
  33. package/dist/{chunk-DKZTDYH5.cjs.map → chunk-AAA6TR5I.cjs.map} +1 -1
  34. package/dist/{chunk-A7Z2QAFZ.cjs → chunk-APK5OQRV.cjs} +5 -5
  35. package/dist/{chunk-A7Z2QAFZ.cjs.map → chunk-APK5OQRV.cjs.map} +1 -1
  36. package/dist/{chunk-ISABZ2VX.cjs → chunk-AXBYJ2OY.cjs} +9 -9
  37. package/dist/{chunk-ISABZ2VX.cjs.map → chunk-AXBYJ2OY.cjs.map} +1 -1
  38. package/dist/{chunk-6RGJAQCU.cjs → chunk-B5G5XVFJ.cjs} +5 -5
  39. package/dist/{chunk-6RGJAQCU.cjs.map → chunk-B5G5XVFJ.cjs.map} +1 -1
  40. package/dist/{chunk-MW2S7PZ7.cjs → chunk-D5IY2HUV.cjs} +5 -5
  41. package/dist/{chunk-MW2S7PZ7.cjs.map → chunk-D5IY2HUV.cjs.map} +1 -1
  42. package/dist/{chunk-FMPXSF3H.cjs → chunk-DAXZRNNO.cjs} +4 -4
  43. package/dist/{chunk-FMPXSF3H.cjs.map → chunk-DAXZRNNO.cjs.map} +1 -1
  44. package/dist/{chunk-AJZTVCST.js → chunk-EXITZVB2.js} +24 -9
  45. package/dist/chunk-EXITZVB2.js.map +1 -0
  46. package/dist/{chunk-AYMD4D4M.cjs → chunk-EZME5CLK.cjs} +3 -3
  47. package/dist/{chunk-AYMD4D4M.cjs.map → chunk-EZME5CLK.cjs.map} +1 -1
  48. package/dist/{chunk-IV4LM3MB.js → chunk-F26VIKNF.js} +9 -11
  49. package/dist/chunk-F26VIKNF.js.map +1 -0
  50. package/dist/{chunk-WPTMMOA6.cjs → chunk-G77YR73R.cjs} +10 -13
  51. package/dist/chunk-G77YR73R.cjs.map +1 -0
  52. package/dist/chunk-GEHL4LKK.cjs +32 -0
  53. package/dist/chunk-GEHL4LKK.cjs.map +1 -0
  54. package/dist/chunk-GGSII6Y2.cjs +921 -0
  55. package/dist/chunk-GGSII6Y2.cjs.map +1 -0
  56. package/dist/{chunk-3VRMTWUS.js → chunk-GHQ6SQPI.js} +7 -10
  57. package/dist/chunk-GHQ6SQPI.js.map +1 -0
  58. package/dist/{chunk-56B6RLOE.js → chunk-GI6VJYOS.js} +4 -4
  59. package/dist/{chunk-56B6RLOE.js.map → chunk-GI6VJYOS.js.map} +1 -1
  60. package/dist/{chunk-UGMONQGH.cjs → chunk-GR2PMCVN.cjs} +10 -12
  61. package/dist/chunk-GR2PMCVN.cjs.map +1 -0
  62. package/dist/{chunk-7AHZTHXR.cjs → chunk-GT22EGJP.cjs} +5 -5
  63. package/dist/{chunk-7AHZTHXR.cjs.map → chunk-GT22EGJP.cjs.map} +1 -1
  64. package/dist/{chunk-ALGX5X4N.js → chunk-IFVT5UCY.js} +3 -3
  65. package/dist/{chunk-5CLC3FJO.js → chunk-KBG77JHC.js} +13 -2
  66. package/dist/chunk-KBG77JHC.js.map +1 -0
  67. package/dist/{chunk-HLNKIAE5.cjs → chunk-KJZUYC4X.cjs} +5 -5
  68. package/dist/{chunk-HLNKIAE5.cjs.map → chunk-KJZUYC4X.cjs.map} +1 -1
  69. package/dist/{chunk-4BQM5F76.cjs → chunk-LFWPQYWX.cjs} +3 -3
  70. package/dist/{chunk-4BQM5F76.cjs.map → chunk-LFWPQYWX.cjs.map} +1 -1
  71. package/dist/{chunk-XVSODE4K.cjs → chunk-LIFUHQH5.cjs} +35 -20
  72. package/dist/chunk-LIFUHQH5.cjs.map +1 -0
  73. package/dist/{chunk-PJC7NZUV.cjs → chunk-LUL6RZ4M.cjs} +3 -3
  74. package/dist/{chunk-PJC7NZUV.cjs.map → chunk-LUL6RZ4M.cjs.map} +1 -1
  75. package/dist/{chunk-4UJ7LG4W.cjs → chunk-N2IGZIEX.cjs} +3 -3
  76. package/dist/{chunk-4UJ7LG4W.cjs.map → chunk-N2IGZIEX.cjs.map} +1 -1
  77. package/dist/{chunk-3LHQUOGP.js → chunk-NGVOXM7P.js} +3 -3
  78. package/dist/{chunk-WTXASLBB.js → chunk-O5WEKLNF.js} +2 -2
  79. package/dist/{chunk-BOB5JJ7F.js → chunk-P7IQY5YH.js} +2 -2
  80. package/dist/{chunk-VZYLJSV5.js → chunk-R4PU2TBM.js} +2 -2
  81. package/dist/{chunk-P2GCAVUZ.js → chunk-RAZRQ57B.js} +2 -2
  82. package/dist/{chunk-K7IFNKMN.js → chunk-REVK7IGN.js} +2 -2
  83. package/dist/{chunk-6U2H26A4.cjs → chunk-RHOT7AEI.cjs} +3 -3
  84. package/dist/{chunk-6U2H26A4.cjs.map → chunk-RHOT7AEI.cjs.map} +1 -1
  85. package/dist/{chunk-MH2CD2QT.js → chunk-RKA2OJRT.js} +207 -102
  86. package/dist/chunk-RKA2OJRT.js.map +1 -0
  87. package/dist/{chunk-JC4WLVBG.js → chunk-RWOX2NJN.js} +2 -2
  88. package/dist/{chunk-4LM33LDV.js → chunk-S3CT536K.js} +2 -2
  89. package/dist/{chunk-4M3LZLOH.js → chunk-SHYSLWQG.js} +2 -2
  90. package/dist/{chunk-EQEV7GPT.cjs → chunk-SKEWTQJ7.cjs} +5 -5
  91. package/dist/{chunk-EQEV7GPT.cjs.map → chunk-SKEWTQJ7.cjs.map} +1 -1
  92. package/dist/{chunk-2ZENLZEQ.cjs → chunk-SKTDGCWJ.cjs} +232 -127
  93. package/dist/chunk-SKTDGCWJ.cjs.map +1 -0
  94. package/dist/{chunk-2BXCIWL7.js → chunk-SN6EWQDJ.js} +3 -3
  95. package/dist/{chunk-DW2YDWGN.js → chunk-TEJIPPZR.js} +2 -2
  96. package/dist/{chunk-OGKD5PLS.cjs → chunk-TRLBYA5G.cjs} +4 -4
  97. package/dist/{chunk-OGKD5PLS.cjs.map → chunk-TRLBYA5G.cjs.map} +1 -1
  98. package/dist/{chunk-WE5FTQGD.js → chunk-VHMOKXUT.js} +3 -7
  99. package/dist/chunk-VHMOKXUT.js.map +1 -0
  100. package/dist/{chunk-S77GR5YQ.cjs → chunk-VHQTDITV.cjs} +3 -3
  101. package/dist/{chunk-S77GR5YQ.cjs.map → chunk-VHQTDITV.cjs.map} +1 -1
  102. package/dist/{chunk-3HMKE2GJ.js → chunk-VSTQEHVZ.js} +6 -4
  103. package/dist/chunk-VSTQEHVZ.js.map +1 -0
  104. package/dist/{chunk-HNUTV3HR.cjs → chunk-WUBQJVB7.cjs} +3 -3
  105. package/dist/{chunk-HNUTV3HR.cjs.map → chunk-WUBQJVB7.cjs.map} +1 -1
  106. package/dist/{chunk-S7TWEVC3.js → chunk-Y53HCLGW.js} +2 -2
  107. package/dist/{chunk-WIE7HDIM.js → chunk-YJXZR7RL.js} +2 -2
  108. package/dist/{chunk-IJYYHBZC.cjs → chunk-Z4SLV6WG.cjs} +3 -3
  109. package/dist/{chunk-IJYYHBZC.cjs.map → chunk-Z4SLV6WG.cjs.map} +1 -1
  110. package/dist/chunk-ZEZK664O.js +921 -0
  111. package/dist/chunk-ZEZK664O.js.map +1 -0
  112. package/dist/{chunk-JMD3P4CY.js → chunk-ZHFPV43D.js} +2 -2
  113. package/dist/combobox/index.cjs +4 -4
  114. package/dist/combobox/index.js +3 -3
  115. package/dist/context-menu/index.cjs +4 -4
  116. package/dist/context-menu/index.js +3 -3
  117. package/dist/data-grid/index.cjs +13 -13
  118. package/dist/data-grid/index.d.cts +49 -3
  119. package/dist/data-grid/index.d.ts +49 -3
  120. package/dist/data-grid/index.js +12 -12
  121. package/dist/date-picker/index.cjs +6 -6
  122. package/dist/date-picker/index.js +5 -5
  123. package/dist/drawer/index.cjs +4 -4
  124. package/dist/drawer/index.d.cts +2 -1
  125. package/dist/drawer/index.d.ts +2 -1
  126. package/dist/drawer/index.js +3 -3
  127. package/dist/empty-state/index.d.cts +2 -2
  128. package/dist/empty-state/index.d.ts +2 -2
  129. package/dist/header/index.cjs +4 -4
  130. package/dist/header/index.d.cts +2 -2
  131. package/dist/header/index.d.ts +2 -2
  132. package/dist/header/index.js +3 -3
  133. package/dist/index.cjs +29 -29
  134. package/dist/index.css +318 -73
  135. package/dist/index.d.cts +5 -4
  136. package/dist/index.d.ts +5 -4
  137. package/dist/index.js +28 -28
  138. package/dist/inline-edit/index.cjs +4 -4
  139. package/dist/inline-edit/index.js +3 -3
  140. package/dist/input/index.cjs +3 -3
  141. package/dist/input/index.js +2 -2
  142. package/dist/menu/index.cjs +3 -3
  143. package/dist/menu/index.js +2 -2
  144. package/dist/modal/index.cjs +4 -4
  145. package/dist/modal/index.d.cts +2 -1
  146. package/dist/modal/index.d.ts +2 -1
  147. package/dist/modal/index.js +3 -3
  148. package/dist/navigation/index.cjs +4 -4
  149. package/dist/navigation/index.js +3 -3
  150. package/dist/page-layout/index.cjs +8 -8
  151. package/dist/page-layout/index.d.cts +3 -2
  152. package/dist/page-layout/index.d.ts +3 -2
  153. package/dist/page-layout/index.js +7 -7
  154. package/dist/pagination/index.cjs +6 -6
  155. package/dist/pagination/index.js +5 -5
  156. package/dist/popover/index.cjs +2 -2
  157. package/dist/popover/index.d.cts +2 -2
  158. package/dist/popover/index.d.ts +2 -2
  159. package/dist/popover/index.js +1 -1
  160. package/dist/segmented-control/index.cjs +3 -3
  161. package/dist/segmented-control/index.js +2 -2
  162. package/dist/select/index.cjs +4 -4
  163. package/dist/select/index.js +3 -3
  164. package/dist/snackbar/index.cjs +4 -4
  165. package/dist/snackbar/index.js +3 -3
  166. package/dist/split-button/index.cjs +4 -4
  167. package/dist/split-button/index.js +3 -3
  168. package/dist/table/index.cjs +11 -11
  169. package/dist/table/index.d.cts +3 -3
  170. package/dist/table/index.d.ts +3 -3
  171. package/dist/table/index.js +10 -10
  172. package/dist/tabs/index.cjs +3 -3
  173. package/dist/tabs/index.js +2 -2
  174. package/dist/tag-input/index.cjs +4 -4
  175. package/dist/tag-input/index.js +3 -3
  176. package/dist/textarea/index.cjs +3 -3
  177. package/dist/textarea/index.js +2 -2
  178. package/dist/toolbar/index.cjs +5 -5
  179. package/dist/toolbar/index.d.cts +3 -2
  180. package/dist/toolbar/index.d.ts +3 -2
  181. package/dist/toolbar/index.js +4 -4
  182. package/package.json +6 -5
  183. package/dist/Toolbar.types-BGD57Uhm.d.ts +0 -22
  184. package/dist/Toolbar.types-tQkLmPIu.d.cts +0 -22
  185. package/dist/chunk-2U7UJOOB.cjs.map +0 -1
  186. package/dist/chunk-2ZENLZEQ.cjs.map +0 -1
  187. package/dist/chunk-3HMKE2GJ.js.map +0 -1
  188. package/dist/chunk-3VRMTWUS.js.map +0 -1
  189. package/dist/chunk-5CLC3FJO.js.map +0 -1
  190. package/dist/chunk-AJZTVCST.js.map +0 -1
  191. package/dist/chunk-G5IGADJI.cjs.map +0 -1
  192. package/dist/chunk-GOR642KK.cjs +0 -21
  193. package/dist/chunk-GOR642KK.cjs.map +0 -1
  194. package/dist/chunk-IV4LM3MB.js.map +0 -1
  195. package/dist/chunk-KIXFSXIN.cjs.map +0 -1
  196. package/dist/chunk-MH2CD2QT.js.map +0 -1
  197. package/dist/chunk-QONDJ5VM.cjs +0 -744
  198. package/dist/chunk-QONDJ5VM.cjs.map +0 -1
  199. package/dist/chunk-UGMONQGH.cjs.map +0 -1
  200. package/dist/chunk-VSFKM7FE.js +0 -744
  201. package/dist/chunk-VSFKM7FE.js.map +0 -1
  202. package/dist/chunk-WE5FTQGD.js.map +0 -1
  203. package/dist/chunk-WPTMMOA6.cjs.map +0 -1
  204. package/dist/chunk-XVSODE4K.cjs.map +0 -1
  205. package/dist/chunk-YQLCPKGV.js.map +0 -1
  206. /package/dist/{chunk-Z4ZY7L7W.js.map → chunk-5ZL6PYU3.js.map} +0 -0
  207. /package/dist/{chunk-A3NE2C7C.js.map → chunk-67RFMV6K.js.map} +0 -0
  208. /package/dist/{chunk-5WROPW7Z.js.map → chunk-A7WQINIG.js.map} +0 -0
  209. /package/dist/{chunk-ALGX5X4N.js.map → chunk-IFVT5UCY.js.map} +0 -0
  210. /package/dist/{chunk-3LHQUOGP.js.map → chunk-NGVOXM7P.js.map} +0 -0
  211. /package/dist/{chunk-WTXASLBB.js.map → chunk-O5WEKLNF.js.map} +0 -0
  212. /package/dist/{chunk-BOB5JJ7F.js.map → chunk-P7IQY5YH.js.map} +0 -0
  213. /package/dist/{chunk-VZYLJSV5.js.map → chunk-R4PU2TBM.js.map} +0 -0
  214. /package/dist/{chunk-P2GCAVUZ.js.map → chunk-RAZRQ57B.js.map} +0 -0
  215. /package/dist/{chunk-K7IFNKMN.js.map → chunk-REVK7IGN.js.map} +0 -0
  216. /package/dist/{chunk-JC4WLVBG.js.map → chunk-RWOX2NJN.js.map} +0 -0
  217. /package/dist/{chunk-4LM33LDV.js.map → chunk-S3CT536K.js.map} +0 -0
  218. /package/dist/{chunk-4M3LZLOH.js.map → chunk-SHYSLWQG.js.map} +0 -0
  219. /package/dist/{chunk-2BXCIWL7.js.map → chunk-SN6EWQDJ.js.map} +0 -0
  220. /package/dist/{chunk-DW2YDWGN.js.map → chunk-TEJIPPZR.js.map} +0 -0
  221. /package/dist/{chunk-S7TWEVC3.js.map → chunk-Y53HCLGW.js.map} +0 -0
  222. /package/dist/{chunk-WIE7HDIM.js.map → chunk-YJXZR7RL.js.map} +0 -0
  223. /package/dist/{chunk-JMD3P4CY.js.map → chunk-ZHFPV43D.js.map} +0 -0
@@ -11,22 +11,22 @@
11
11
 
12
12
 
13
13
 
14
- var _chunkXVSODE4Kcjs = require('./chunk-XVSODE4K.cjs');
14
+ var _chunkLIFUHQH5cjs = require('./chunk-LIFUHQH5.cjs');
15
15
 
16
16
 
17
17
  var _chunkTROYIUDHcjs = require('./chunk-TROYIUDH.cjs');
18
18
 
19
19
 
20
- var _chunkEQEV7GPTcjs = require('./chunk-EQEV7GPT.cjs');
20
+ var _chunkSKEWTQJ7cjs = require('./chunk-SKEWTQJ7.cjs');
21
21
 
22
22
 
23
- var _chunkISABZ2VXcjs = require('./chunk-ISABZ2VX.cjs');
23
+ var _chunkAXBYJ2OYcjs = require('./chunk-AXBYJ2OY.cjs');
24
24
 
25
25
 
26
- var _chunkDKZTDYH5cjs = require('./chunk-DKZTDYH5.cjs');
26
+ var _chunkAAA6TR5Icjs = require('./chunk-AAA6TR5I.cjs');
27
27
 
28
28
 
29
- var _chunkHLNKIAE5cjs = require('./chunk-HLNKIAE5.cjs');
29
+ var _chunkKJZUYC4Xcjs = require('./chunk-KJZUYC4X.cjs');
30
30
 
31
31
 
32
32
  var _chunkKV3V2CPHcjs = require('./chunk-KV3V2CPH.cjs');
@@ -35,22 +35,23 @@ var _chunkKV3V2CPHcjs = require('./chunk-KV3V2CPH.cjs');
35
35
  var _chunkIJ4DXG7Dcjs = require('./chunk-IJ4DXG7D.cjs');
36
36
 
37
37
 
38
- var _chunkHNUTV3HRcjs = require('./chunk-HNUTV3HR.cjs');
38
+ var _chunkWUBQJVB7cjs = require('./chunk-WUBQJVB7.cjs');
39
39
 
40
40
 
41
- var _chunkG5IGADJIcjs = require('./chunk-G5IGADJI.cjs');
41
+ var _chunk5VM2256Wcjs = require('./chunk-5VM2256W.cjs');
42
42
 
43
43
 
44
- var _chunkFMPXSF3Hcjs = require('./chunk-FMPXSF3H.cjs');
44
+ var _chunkDAXZRNNOcjs = require('./chunk-DAXZRNNO.cjs');
45
45
 
46
46
 
47
47
  var _chunkFRUOA2QUcjs = require('./chunk-FRUOA2QU.cjs');
48
48
 
49
49
 
50
- var _chunkA7Z2QAFZcjs = require('./chunk-A7Z2QAFZ.cjs');
50
+ var _chunkAPK5OQRVcjs = require('./chunk-APK5OQRV.cjs');
51
51
 
52
52
 
53
- var _chunkGOR642KKcjs = require('./chunk-GOR642KK.cjs');
53
+
54
+ var _chunkGEHL4LKKcjs = require('./chunk-GEHL4LKK.cjs');
54
55
 
55
56
  // src/components/DataGrid/DataGrid.component.tsx
56
57
  var _react = require('react'); var _react2 = _interopRequireDefault(_react);
@@ -67,10 +68,15 @@ var _reactdom = require('react-dom');
67
68
 
68
69
 
69
70
 
70
-
71
71
  var _lucidereact = require('lucide-react');
72
72
  var _jsxruntime = require('react/jsx-runtime');
73
- var MIN_COLUMN_WIDTH_PX = 100;
73
+ var MIN_DATA_COLUMN_WIDTH_PX = 100;
74
+ var ACTIONS_COLUMN_WIDTH_PX = 48;
75
+ var CHECKBOX_COLUMN_WIDTH_PX = 40;
76
+ var ROW_NUMBER_COLUMN_WIDTH_PX = 40;
77
+ var DRAG_HANDLE_COLUMN_WIDTH_PX = 32;
78
+ var EXPAND_COLUMN_WIDTH_PX = 32;
79
+ var COMPACT_TOOLBAR_WIDTH_PX = 560;
74
80
  var cellOf = (row, key) => row[key];
75
81
  var QUICK_FILTER_RESET_VALUE = "";
76
82
  var hasFilterValue = (value) => {
@@ -85,7 +91,7 @@ function SortableTableRow({
85
91
  className,
86
92
  children
87
93
  }) {
88
- const { attributes, listeners, setNodeRef, transform, transition, isDragging } = _chunkXVSODE4Kcjs.useSortable.call(void 0, {
94
+ const { attributes, listeners, setNodeRef, transform, transition, isDragging } = _chunkLIFUHQH5cjs.useSortable.call(void 0, {
89
95
  id,
90
96
  disabled
91
97
  });
@@ -95,7 +101,7 @@ function SortableTableRow({
95
101
  ref: setNodeRef,
96
102
  className: [className, isDragging ? "eidos-datagrid-row--dragging" : ""].filter(Boolean).join(" "),
97
103
  style: {
98
- transform: _chunkXVSODE4Kcjs.CSS.Transform.toString(transform),
104
+ transform: _chunkLIFUHQH5cjs.CSS.Transform.toString(transform),
99
105
  transition: _nullishCoalesce(transition, () => ( void 0)),
100
106
  opacity: isDragging ? 0.4 : 1
101
107
  },
@@ -203,6 +209,8 @@ function DataGridInner({
203
209
  selectedRows: controlledSelectedRows,
204
210
  defaultSelectedRows,
205
211
  onSelectionChange,
212
+ selectAllScope = "all",
213
+ onSelectAllMatching,
206
214
  bulkActions,
207
215
  // ── Row expansion ────────────────────────────────────────────────────────────
208
216
  expandable = false,
@@ -275,22 +283,26 @@ function DataGridInner({
275
283
  );
276
284
  const [containerWidth, setContainerWidth] = _react.useState.call(void 0, null);
277
285
  const resizeObserverRef = _react.useRef.call(void 0, null);
278
- const setContainerRef = _react.useCallback.call(void 0,
279
- (el) => {
280
- _optionalChain([resizeObserverRef, 'access', _ => _.current, 'optionalAccess', _2 => _2.disconnect, 'call', _3 => _3()]);
281
- resizeObserverRef.current = null;
282
- if (!el || !hasCardView) return;
283
- const observer = new ResizeObserver((entries) => {
284
- const width = _optionalChain([entries, 'access', _4 => _4[0], 'optionalAccess', _5 => _5.contentRect, 'access', _6 => _6.width]);
285
- if (width != null) setContainerWidth(width);
286
- });
287
- observer.observe(el);
288
- resizeObserverRef.current = observer;
289
- },
290
- [hasCardView]
286
+ const setContainerRef = _react.useCallback.call(void 0, (el) => {
287
+ _optionalChain([resizeObserverRef, 'access', _ => _.current, 'optionalAccess', _2 => _2.disconnect, 'call', _3 => _3()]);
288
+ resizeObserverRef.current = null;
289
+ if (!el) return;
290
+ const observer = new ResizeObserver((entries) => {
291
+ const width = _optionalChain([entries, 'access', _4 => _4[0], 'optionalAccess', _5 => _5.contentRect, 'access', _6 => _6.width]);
292
+ if (width != null) setContainerWidth(width);
293
+ });
294
+ observer.observe(el);
295
+ resizeObserverRef.current = observer;
296
+ }, []);
297
+ const minTableWidth = _react.useMemo.call(void 0,
298
+ () => columns.reduce(
299
+ (total, column) => total + (column.type === "actions" ? ACTIONS_COLUMN_WIDTH_PX : MIN_DATA_COLUMN_WIDTH_PX),
300
+ (showRowNumbers ? ROW_NUMBER_COLUMN_WIDTH_PX : 0) + (draggableRows ? DRAG_HANDLE_COLUMN_WIDTH_PX : 0) + (selectable ? CHECKBOX_COLUMN_WIDTH_PX : 0) + (expandable ? EXPAND_COLUMN_WIDTH_PX : 0)
301
+ ),
302
+ [columns, showRowNumbers, draggableRows, selectable, expandable]
291
303
  );
292
- const columnCountForCardView = columns.length + (showRowNumbers ? 1 : 0) + (draggableRows ? 1 : 0) + (selectable ? 1 : 0) + (expandable ? 1 : 0);
293
- const isCardView = hasCardView && containerWidth !== null && (containerWidth < cardViewBreakpoint || containerWidth < columnCountForCardView * MIN_COLUMN_WIDTH_PX);
304
+ const isCardView = hasCardView && containerWidth !== null && (containerWidth < cardViewBreakpoint || containerWidth < minTableWidth);
305
+ const isCompactToolbar = containerWidth !== null && containerWidth < COMPACT_TOOLBAR_WIDTH_PX;
294
306
  const cardHeaderColumn = _react.useMemo.call(void 0, () => columns.find((c) => c.cardHeader), [columns]);
295
307
  const cardSubheaderColumn = _react.useMemo.call(void 0, () => columns.find((c) => c.cardSubheader), [columns]);
296
308
  const actionsColumn = _react.useMemo.call(void 0, () => columns.find((c) => c.type === "actions"), [columns]);
@@ -298,6 +310,7 @@ function DataGridInner({
298
310
  () => columns.filter((c) => c !== actionsColumn),
299
311
  [columns, actionsColumn]
300
312
  );
313
+ const hasCardToolbar = selectable || showRowNumbers || expandable || !!cardHeaderColumn || !!cardSubheaderColumn || !!actionsColumn;
301
314
  const cardFieldColumns = _react.useMemo.call(void 0,
302
315
  () => dataColumns.filter((c) => c !== cardHeaderColumn && c !== cardSubheaderColumn),
303
316
  [dataColumns, cardHeaderColumn, cardSubheaderColumn]
@@ -328,16 +341,36 @@ function DataGridInner({
328
341
  () => new Set(isControlledSelection ? _nullishCoalesce(controlledSelectedRows, () => ( [])) : [...internalSelectedKeys]),
329
342
  [isControlledSelection, controlledSelectedRows, internalSelectedKeys]
330
343
  );
331
- const allKeys = _react.useMemo.call(void 0,
332
- () => localData.map((row, idx) => String(_nullishCoalesce(cellOf(row, rowKeyField), () => ( idx)))),
333
- [localData, rowKeyField]
334
- );
335
- const allSelected = allKeys.length > 0 && allKeys.every((k) => selectedSet.has(k));
336
- const someSelected = !allSelected && allKeys.some((k) => selectedSet.has(k));
337
344
  const hasSelection = selectedSet.size > 0;
345
+ const selectedRowCacheRef = _react.useRef.call(void 0, /* @__PURE__ */ new Map());
346
+ const rowsForKeys = _react.useCallback.call(void 0,
347
+ (keys) => {
348
+ const current = /* @__PURE__ */ new Map();
349
+ localDataRef.current.forEach(
350
+ (row, idx) => current.set(String(_nullishCoalesce(cellOf(row, rowKeyField), () => ( idx))), row)
351
+ );
352
+ const cache = selectedRowCacheRef.current;
353
+ return keys.map((key) => _nullishCoalesce(current.get(key), () => ( cache.get(key)))).filter((row) => row !== void 0);
354
+ },
355
+ [rowKeyField]
356
+ );
357
+ _react.useEffect.call(void 0, () => {
358
+ const cache = selectedRowCacheRef.current;
359
+ const current = /* @__PURE__ */ new Map();
360
+ localData.forEach((row, idx) => current.set(String(_nullishCoalesce(cellOf(row, rowKeyField), () => ( idx))), row));
361
+ const next = /* @__PURE__ */ new Map();
362
+ selectedSet.forEach((key) => {
363
+ const row = _nullishCoalesce(current.get(key), () => ( cache.get(key)));
364
+ if (row) next.set(key, row);
365
+ });
366
+ selectedRowCacheRef.current = next;
367
+ }, [localData, selectedSet, rowKeyField]);
338
368
  const selectedItems = _react.useMemo.call(void 0,
339
- () => localData.filter((row, idx) => selectedSet.has(String(_nullishCoalesce(cellOf(row, rowKeyField), () => ( idx))))),
340
- [localData, selectedSet, rowKeyField]
369
+ () => rowsForKeys([...selectedSet]),
370
+ // `localData` isn't read directly here - `rowsForKeys` reads it through a
371
+ // ref - but it must still retrigger this when the loaded rows change.
372
+ // eslint-disable-next-line react-hooks/exhaustive-deps
373
+ [rowsForKeys, selectedSet, localData]
341
374
  );
342
375
  const expandedSet = _react.useMemo.call(void 0,
343
376
  () => new Set(isControlledExpansion ? _nullishCoalesce(controlledExpandedRows, () => ( [])) : [...internalExpandedKeys]),
@@ -414,6 +447,22 @@ function DataGridInner({
414
447
  }, [sortedData, showPagination, currentPage, currentPageSize, onPageChange]);
415
448
  const totalItemCount = _nullishCoalesce(totalRowsProp, () => ( sortedData.length));
416
449
  const totalPages = Math.max(1, Math.ceil(totalItemCount / currentPageSize));
450
+ const selectAllKeys = _react.useMemo.call(void 0,
451
+ () => (selectAllScope === "page" ? displayData : localData).map(
452
+ (row, idx) => String(_nullishCoalesce(cellOf(row, rowKeyField), () => ( idx)))
453
+ ),
454
+ [selectAllScope, displayData, localData, rowKeyField]
455
+ );
456
+ const allSelected = selectAllKeys.length > 0 && selectAllKeys.every((key) => selectedSet.has(key));
457
+ const someSelected = !allSelected && selectAllKeys.some((key) => selectedSet.has(key));
458
+ _react.useEffect.call(void 0, () => {
459
+ if (!selectable || selectAllScope !== "all") return;
460
+ if (totalItemCount <= localData.length) return;
461
+ _chunkGEHL4LKKcjs.devWarn.call(void 0,
462
+ `datagrid-select-all-scope:${localData.length}/${totalItemCount}`,
463
+ `DataGrid: selectAllScope="all" can only select the ${localData.length} row(s) currently loaded, but there are ${totalItemCount} in total. The keys of rows the grid has never received cannot be known here - use selectAllScope="page" to make the scope explicit, or resolve the full key set yourself and pass it as \`selectedRows\`.`
464
+ );
465
+ }, [selectable, selectAllScope, totalItemCount, localData.length]);
417
466
  const activeFiltersKey = _react.useMemo.call(void 0, () => JSON.stringify(activeFilters), [activeFilters]);
418
467
  _react.useEffect.call(void 0, () => {
419
468
  setCurrentPage(1);
@@ -654,12 +703,9 @@ function DataGridInner({
654
703
  const commitSelection = _react.useCallback.call(void 0,
655
704
  (keys) => {
656
705
  if (!isControlledSelection) setInternalSelectedKeys(new Set(keys));
657
- const rows = localDataRef.current.filter(
658
- (row, idx) => keys.includes(String(_nullishCoalesce(cellOf(row, rowKeyField), () => ( idx))))
659
- );
660
- _optionalChain([onSelectionChange, 'optionalCall', _16 => _16(keys, rows)]);
706
+ _optionalChain([onSelectionChange, 'optionalCall', _16 => _16(keys, rowsForKeys(keys))]);
661
707
  },
662
- [isControlledSelection, rowKeyField, onSelectionChange]
708
+ [isControlledSelection, onSelectionChange, rowsForKeys]
663
709
  );
664
710
  const toggleRow = _react.useCallback.call(void 0,
665
711
  (key) => {
@@ -668,9 +714,30 @@ function DataGridInner({
668
714
  },
669
715
  [selectedSet, commitSelection]
670
716
  );
717
+ const [isSelectingAllMatching, setIsSelectingAllMatching] = _react.useState.call(void 0, false);
718
+ const holdsEveryRow = totalItemCount <= localData.length;
719
+ const hasSelectedAllMatching = !holdsEveryRow && selectedSet.size >= totalItemCount;
720
+ const canSelectAllMatching = !!onSelectAllMatching && selectable && !holdsEveryRow && allSelected && !hasSelectedAllMatching;
721
+ const selectAllMatching = _react.useCallback.call(void 0, async () => {
722
+ if (!onSelectAllMatching) return;
723
+ setIsSelectingAllMatching(true);
724
+ try {
725
+ commitSelection(await onSelectAllMatching());
726
+ } catch (error) {
727
+ _chunkGEHL4LKKcjs.devWarn.call(void 0,
728
+ "datagrid-select-all-matching-failed",
729
+ `DataGrid: onSelectAllMatching() rejected, so the selection was left untouched. ${String(error)}`
730
+ );
731
+ } finally {
732
+ setIsSelectingAllMatching(false);
733
+ }
734
+ }, [onSelectAllMatching, commitSelection]);
671
735
  const toggleAll = _react.useCallback.call(void 0, () => {
672
- commitSelection(allSelected ? [] : allKeys);
673
- }, [allSelected, allKeys, commitSelection]);
736
+ const inScope = new Set(selectAllKeys);
737
+ commitSelection(
738
+ allSelected ? [...selectedSet].filter((key) => !inScope.has(key)) : [.../* @__PURE__ */ new Set([...selectedSet, ...selectAllKeys])]
739
+ );
740
+ }, [allSelected, selectAllKeys, selectedSet, commitSelection]);
674
741
  const clearSelection = _react.useCallback.call(void 0, () => commitSelection([]), [commitSelection]);
675
742
  const commitExpanded = _react.useCallback.call(void 0,
676
743
  (keys) => {
@@ -751,9 +818,9 @@ function DataGridInner({
751
818
  },
752
819
  [onPageChange]
753
820
  );
754
- const sensors = _chunkXVSODE4Kcjs.useSensors.call(void 0,
755
- _chunkXVSODE4Kcjs.useSensor.call(void 0, _chunkXVSODE4Kcjs.PointerSensor, { activationConstraint: { distance: 5 } }),
756
- _chunkXVSODE4Kcjs.useSensor.call(void 0, _chunkXVSODE4Kcjs.KeyboardSensor)
821
+ const sensors = _chunkLIFUHQH5cjs.useSensors.call(void 0,
822
+ _chunkLIFUHQH5cjs.useSensor.call(void 0, _chunkLIFUHQH5cjs.PointerSensor, { activationConstraint: { distance: 5 } }),
823
+ _chunkLIFUHQH5cjs.useSensor.call(void 0, _chunkLIFUHQH5cjs.KeyboardSensor)
757
824
  );
758
825
  const handleRowDragEnd = _react.useCallback.call(void 0,
759
826
  (event) => {
@@ -767,7 +834,7 @@ function DataGridInner({
767
834
  (row, i) => String(_nullishCoalesce(cellOf(row, rowKeyField), () => ( i))) === String(over.id)
768
835
  );
769
836
  if (oldIndex === -1 || newIndex === -1) return;
770
- const newData = _chunkXVSODE4Kcjs.arrayMove.call(void 0, localDataRef.current, oldIndex, newIndex);
837
+ const newData = _chunkLIFUHQH5cjs.arrayMove.call(void 0, localDataRef.current, oldIndex, newIndex);
771
838
  setLocalData(newData);
772
839
  _optionalChain([onChange, 'optionalCall', _23 => _23(newData)]);
773
840
  _optionalChain([onRowReorder, 'optionalCall', _24 => _24(newData)]);
@@ -808,7 +875,7 @@ function DataGridInner({
808
875
  switch (col.type) {
809
876
  case "number":
810
877
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
811
- _chunkG5IGADJIcjs.Input,
878
+ _chunk5VM2256Wcjs.Input,
812
879
  {
813
880
  type: "number",
814
881
  variant,
@@ -822,7 +889,7 @@ function DataGridInner({
822
889
  );
823
890
  case "date":
824
891
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
825
- _chunkG5IGADJIcjs.Input,
892
+ _chunk5VM2256Wcjs.Input,
826
893
  {
827
894
  type: "date",
828
895
  variant,
@@ -841,7 +908,7 @@ function DataGridInner({
841
908
  label: o.label
842
909
  }));
843
910
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
844
- _chunkHLNKIAE5cjs.Select,
911
+ _chunkKJZUYC4Xcjs.Select,
845
912
  {
846
913
  options: selectOptions,
847
914
  value: String(_nullishCoalesce(value, () => ( ""))),
@@ -863,7 +930,7 @@ function DataGridInner({
863
930
  }
864
931
  default:
865
932
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
866
- _chunkG5IGADJIcjs.Input,
933
+ _chunk5VM2256Wcjs.Input,
867
934
  {
868
935
  type: "text",
869
936
  variant,
@@ -936,9 +1003,9 @@ function DataGridInner({
936
1003
  });
937
1004
  if (!items.length) return null;
938
1005
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
939
- _chunkFMPXSF3Hcjs.Menu,
1006
+ _chunkDAXZRNNOcjs.Menu,
940
1007
  {
941
- trigger: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { type: "button", className: "eidos-datagrid-actions-trigger", "aria-label": "Row actions", children: actionsColumn.actionsIcon ? _chunkGOR642KKcjs.renderIcon.call(void 0, actionsColumn.actionsIcon, "eidos-datagrid-actions-trigger-icon") : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.MoreVertical, { size: 16 }) }),
1008
+ trigger: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { type: "button", className: "eidos-datagrid-actions-trigger", "aria-label": "Row actions", children: actionsColumn.actionsIcon ? _chunkGEHL4LKKcjs.renderIcon.call(void 0, actionsColumn.actionsIcon, "eidos-datagrid-actions-trigger-icon") : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.MoreVertical, { size: 16 }) }),
942
1009
  items
943
1010
  }
944
1011
  );
@@ -969,11 +1036,12 @@ function DataGridInner({
969
1036
  switch (quickFilter.type) {
970
1037
  case "segmented":
971
1038
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
972
- _chunkDKZTDYH5cjs.SegmentedControl,
1039
+ _chunkAAA6TR5Icjs.SegmentedControl,
973
1040
  {
974
1041
  size: "sm",
975
1042
  color: quickFilter.color,
976
1043
  disabled,
1044
+ fullWidth: isCompactToolbar,
977
1045
  options: [
978
1046
  { value: QUICK_FILTER_RESET_VALUE, label: _nullishCoalesce(quickFilter.allLabel, () => ( "All")) },
979
1047
  ...quickFilter.options
@@ -984,7 +1052,7 @@ function DataGridInner({
984
1052
  );
985
1053
  case "combobox":
986
1054
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
987
- _chunkHNUTV3HRcjs.Combobox,
1055
+ _chunkWUBQJVB7cjs.Combobox,
988
1056
  {
989
1057
  size: "sm",
990
1058
  fullWidth: true,
@@ -1006,7 +1074,7 @@ function DataGridInner({
1006
1074
  case "select":
1007
1075
  default:
1008
1076
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1009
- _chunkHLNKIAE5cjs.Select,
1077
+ _chunkKJZUYC4Xcjs.Select,
1010
1078
  {
1011
1079
  fullWidth: true,
1012
1080
  inputProps: { size: "sm" },
@@ -1073,17 +1141,48 @@ function DataGridInner({
1073
1141
  children: [
1074
1142
  showToolbar && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "eidos-datagrid-toolbar", children: [
1075
1143
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "eidos-datagrid-toolbar-left", children: [
1076
- showQuickFilters && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "eidos-datagrid-quick-filters", children: quickFilters.map(renderQuickFilter) }),
1144
+ selectable && isCardView && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1145
+ _chunkIJ4DXG7Dcjs.Checkbox,
1146
+ {
1147
+ size: "sm",
1148
+ checked: allSelected,
1149
+ indeterminate: someSelected,
1150
+ onChange: toggleAll,
1151
+ label: "Select all",
1152
+ "aria-label": "Select all rows"
1153
+ }
1154
+ ),
1155
+ showQuickFilters && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1156
+ "div",
1157
+ {
1158
+ className: [
1159
+ "eidos-datagrid-quick-filters",
1160
+ isCompactToolbar && "eidos-datagrid-quick-filters--compact"
1161
+ ].filter(Boolean).join(" "),
1162
+ children: quickFilters.map(renderQuickFilter)
1163
+ }
1164
+ ),
1077
1165
  selectable && hasSelection && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
1078
1166
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "eidos-datagrid-selection-count", children: [
1079
1167
  selectedSet.size,
1080
1168
  " selected"
1081
1169
  ] }),
1170
+ canSelectAllMatching && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1171
+ _chunkAPK5OQRVcjs.Button,
1172
+ {
1173
+ variant: "text",
1174
+ size: "sm",
1175
+ loading: isSelectingAllMatching,
1176
+ onClick: () => void selectAllMatching(),
1177
+ children: `Select all ${totalItemCount}`
1178
+ }
1179
+ ),
1180
+ hasSelectedAllMatching && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAPK5OQRVcjs.Button, { variant: "text", size: "sm", color: "secondary", onClick: clearSelection, children: "Clear selection" }),
1082
1181
  bulkActions && bulkActions.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "eidos-datagrid-bulk-actions", children: bulkActions.map((action) => {
1083
1182
  const isDisabled = typeof action.disabled === "function" ? action.disabled(selectedItems) : _nullishCoalesce(action.disabled, () => ( false));
1084
1183
  if (action.type === "split-button") {
1085
1184
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1086
- _chunkEQEV7GPTcjs.SplitButton,
1185
+ _chunkSKEWTQJ7cjs.SplitButton,
1087
1186
  {
1088
1187
  size: "sm",
1089
1188
  variant: _nullishCoalesce(action.variant, () => ( "outlined")),
@@ -1104,7 +1203,7 @@ function DataGridInner({
1104
1203
  );
1105
1204
  }
1106
1205
  return action.label ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1107
- _chunkA7Z2QAFZcjs.Button,
1206
+ _chunkAPK5OQRVcjs.Button,
1108
1207
  {
1109
1208
  size: "sm",
1110
1209
  variant: _nullishCoalesce(action.variant, () => ( "outlined")),
@@ -1117,7 +1216,7 @@ function DataGridInner({
1117
1216
  },
1118
1217
  action.id
1119
1218
  ) : action.icon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1120
- _chunkA7Z2QAFZcjs.Button,
1219
+ _chunkAPK5OQRVcjs.Button,
1121
1220
  {
1122
1221
  size: "sm",
1123
1222
  variant: _nullishCoalesce(action.variant, () => ( "outlined")),
@@ -1128,17 +1227,7 @@ function DataGridInner({
1128
1227
  },
1129
1228
  action.id
1130
1229
  ) : null;
1131
- }) }),
1132
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1133
- "button",
1134
- {
1135
- type: "button",
1136
- className: "eidos-datagrid-clear-selection",
1137
- onClick: clearSelection,
1138
- "aria-label": "Clear selection",
1139
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { size: 14 })
1140
- }
1141
- )
1230
+ }) })
1142
1231
  ] })
1143
1232
  ] }),
1144
1233
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "eidos-datagrid-toolbar-right", children: [
@@ -1148,7 +1237,7 @@ function DataGridInner({
1148
1237
  placement: "bottom",
1149
1238
  align: "end",
1150
1239
  autoWidth: false,
1151
- trigger: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkA7Z2QAFZcjs.Button, { variant: "text", size: "sm", preIcon: _lucidereact.AlignJustify, children: "Density" }),
1240
+ trigger: isCompactToolbar ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAPK5OQRVcjs.Button, { variant: "text", size: "sm", icon: _lucidereact.AlignJustify, tooltip: "Density" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAPK5OQRVcjs.Button, { variant: "text", size: "sm", preIcon: _lucidereact.AlignJustify, children: "Density" }),
1152
1241
  content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "eidos-table-menu-panel", children: [
1153
1242
  { value: "compact", label: "Compact" },
1154
1243
  { value: "comfortable", label: "Comfortable" },
@@ -1171,14 +1260,23 @@ function DataGridInner({
1171
1260
  }
1172
1261
  ),
1173
1262
  showFilters && filterDropdownColumns.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1174
- _chunkXVSODE4Kcjs.TableFiltersDropdown,
1263
+ _chunkLIFUHQH5cjs.TableFiltersDropdown,
1175
1264
  {
1176
1265
  columns: filterDropdownColumns,
1177
1266
  filters: dropdownFilters,
1178
1267
  onFiltersChange: handleFiltersChange
1179
1268
  }
1180
1269
  ),
1181
- onRowAdd && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkA7Z2QAFZcjs.Button, { variant: "outlined", size: "sm", preIcon: _lucidereact.Plus, onClick: handleRowAdd, children: "Add row" })
1270
+ onRowAdd && (isCompactToolbar ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1271
+ _chunkAPK5OQRVcjs.Button,
1272
+ {
1273
+ variant: "outlined",
1274
+ size: "sm",
1275
+ icon: _lucidereact.Plus,
1276
+ tooltip: "Add row",
1277
+ onClick: handleRowAdd
1278
+ }
1279
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAPK5OQRVcjs.Button, { variant: "outlined", size: "sm", preIcon: _lucidereact.Plus, onClick: handleRowAdd, children: "Add row" }))
1182
1280
  ] })
1183
1281
  ] }),
1184
1282
  isCardView ? (
@@ -1202,51 +1300,58 @@ function DataGridInner({
1202
1300
  isRowSelected && "eidos-datagrid-card--selected"
1203
1301
  ].filter(Boolean).join(" "),
1204
1302
  children: [
1205
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "eidos-datagrid-card-toolbar", onClick: (e) => e.stopPropagation(), children: [
1206
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "eidos-datagrid-card-toolbar-left", children: [
1207
- expandable && canExpandRow && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1208
- "button",
1209
- {
1210
- type: "button",
1211
- className: [
1212
- "eidos-datagrid-expand-toggle",
1213
- isRowExpanded && "eidos-datagrid-expand-toggle--open"
1214
- ].filter(Boolean).join(" "),
1215
- onClick: () => toggleExpanded(rowKeyValue),
1216
- "aria-expanded": isRowExpanded,
1217
- "aria-label": isRowExpanded ? "Collapse row" : "Expand row",
1218
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { size: 14 })
1219
- }
1220
- ),
1221
- selectable && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1222
- _chunkIJ4DXG7Dcjs.Checkbox,
1223
- {
1224
- checked: isRowSelected,
1225
- onChange: () => toggleRow(rowKeyValue),
1226
- size: "sm"
1227
- }
1228
- ),
1229
- showRowNumbers && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "eidos-datagrid-card-row-number", children: [
1230
- "#",
1231
- localIndex + 1
1232
- ] })
1233
- ] }),
1234
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "eidos-datagrid-card-heading", children: [
1235
- cardHeaderColumn && renderCardValue(
1236
- cardHeaderColumn,
1237
- row,
1238
- localIndex,
1239
- "eidos-datagrid-card-heading-title"
1240
- ),
1241
- cardSubheaderColumn && renderCardValue(
1242
- cardSubheaderColumn,
1243
- row,
1244
- localIndex,
1245
- "eidos-datagrid-card-heading-subtitle"
1246
- )
1247
- ] }),
1248
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "eidos-datagrid-card-toolbar-right", children: renderActionsMenu(row, localIndex) })
1249
- ] }),
1303
+ hasCardToolbar && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
1304
+ "div",
1305
+ {
1306
+ className: "eidos-datagrid-card-toolbar",
1307
+ onClick: (e) => e.stopPropagation(),
1308
+ children: [
1309
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "eidos-datagrid-card-toolbar-left", children: [
1310
+ expandable && canExpandRow && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1311
+ "button",
1312
+ {
1313
+ type: "button",
1314
+ className: [
1315
+ "eidos-datagrid-expand-toggle",
1316
+ isRowExpanded && "eidos-datagrid-expand-toggle--open"
1317
+ ].filter(Boolean).join(" "),
1318
+ onClick: () => toggleExpanded(rowKeyValue),
1319
+ "aria-expanded": isRowExpanded,
1320
+ "aria-label": isRowExpanded ? "Collapse row" : "Expand row",
1321
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { size: 14 })
1322
+ }
1323
+ ),
1324
+ selectable && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1325
+ _chunkIJ4DXG7Dcjs.Checkbox,
1326
+ {
1327
+ checked: isRowSelected,
1328
+ onChange: () => toggleRow(rowKeyValue),
1329
+ size: "sm"
1330
+ }
1331
+ ),
1332
+ showRowNumbers && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "eidos-datagrid-card-row-number", children: [
1333
+ "#",
1334
+ localIndex + 1
1335
+ ] })
1336
+ ] }),
1337
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "eidos-datagrid-card-heading", children: [
1338
+ cardHeaderColumn && renderCardValue(
1339
+ cardHeaderColumn,
1340
+ row,
1341
+ localIndex,
1342
+ "eidos-datagrid-card-heading-title"
1343
+ ),
1344
+ cardSubheaderColumn && renderCardValue(
1345
+ cardSubheaderColumn,
1346
+ row,
1347
+ localIndex,
1348
+ "eidos-datagrid-card-heading-subtitle"
1349
+ )
1350
+ ] }),
1351
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "eidos-datagrid-card-toolbar-right", children: renderActionsMenu(row, localIndex) })
1352
+ ]
1353
+ }
1354
+ ),
1250
1355
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "eidos-datagrid-card-fields", children: cardFieldColumns.map((col) => renderCardField(col, row, localIndex)) }),
1251
1356
  expandable && renderExpandedContent && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1252
1357
  ExpandedCardPanel,
@@ -1265,7 +1370,7 @@ function DataGridInner({
1265
1370
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.SearchX, {}),
1266
1371
  title: "No results found",
1267
1372
  description: "Try adjusting your filters or search terms.",
1268
- action: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkA7Z2QAFZcjs.Button, { size: "sm", variant: "outlined", color: "primary", onClick: clearAllFilters, children: "Clear filters" }),
1373
+ action: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAPK5OQRVcjs.Button, { size: "sm", variant: "outlined", color: "primary", onClick: clearAllFilters, children: "Clear filters" }),
1269
1374
  size: "sm"
1270
1375
  }
1271
1376
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -1280,10 +1385,10 @@ function DataGridInner({
1280
1385
  }
1281
1386
  )
1282
1387
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1283
- _chunkXVSODE4Kcjs.DndContext,
1388
+ _chunkLIFUHQH5cjs.DndContext,
1284
1389
  {
1285
1390
  sensors,
1286
- collisionDetection: _chunkXVSODE4Kcjs.closestCenter,
1391
+ collisionDetection: _chunkLIFUHQH5cjs.closestCenter,
1287
1392
  onDragEnd: handleRowDragEnd,
1288
1393
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "eidos-data-grid-scroll", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "table", { className: ["eidos-data-grid", densityClass].filter(Boolean).join(" "), children: [
1289
1394
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "thead", { ref: theadRef, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "tr", { children: [
@@ -1389,7 +1494,7 @@ function DataGridInner({
1389
1494
  }
1390
1495
  )
1391
1496
  ] }) }),
1392
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "tbody", { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXVSODE4Kcjs.SortableContext, { items: rowIds, strategy: _chunkXVSODE4Kcjs.verticalListSortingStrategy, children: displayData.length > 0 ? displayData.map((row, displayIndex) => {
1497
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "tbody", { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLIFUHQH5cjs.SortableContext, { items: rowIds, strategy: _chunkLIFUHQH5cjs.verticalListSortingStrategy, children: displayData.length > 0 ? displayData.map((row, displayIndex) => {
1393
1498
  const localIndex = localData.indexOf(row);
1394
1499
  const rowKeyValue = String(_nullishCoalesce(cellOf(row, rowKeyField), () => ( displayIndex)));
1395
1500
  const isRowSelected = selectable && selectedSet.has(rowKeyValue);
@@ -1556,7 +1661,7 @@ function DataGridInner({
1556
1661
  title: "No results found",
1557
1662
  description: "Try adjusting your filters or search terms.",
1558
1663
  action: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1559
- _chunkA7Z2QAFZcjs.Button,
1664
+ _chunkAPK5OQRVcjs.Button,
1560
1665
  {
1561
1666
  size: "sm",
1562
1667
  variant: "outlined",
@@ -1582,7 +1687,7 @@ function DataGridInner({
1582
1687
  }
1583
1688
  ) }),
1584
1689
  showPagination && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "eidos-datagrid-footer", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1585
- _chunkISABZ2VXcjs.Pagination,
1690
+ _chunkAXBYJ2OYcjs.Pagination,
1586
1691
  {
1587
1692
  page: currentPage,
1588
1693
  totalPages,
@@ -1613,4 +1718,4 @@ var DataGrid = Object.assign(DataGridInner, { displayName: "DataGrid" });
1613
1718
 
1614
1719
 
1615
1720
  exports.DataGrid = DataGrid;
1616
- //# sourceMappingURL=chunk-2ZENLZEQ.cjs.map
1721
+ //# sourceMappingURL=chunk-SKTDGCWJ.cjs.map