@multiplatform.one/table 7.10.0 → 7.15.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 (307) hide show
  1. package/README.md +61 -1
  2. package/dist/cjs/components/ChildTable/index.cjs +8 -2
  3. package/dist/cjs/components/ChildTable/index.native.js +8 -2
  4. package/dist/cjs/components/ChildTable/index.native.js.map +1 -1
  5. package/dist/cjs/components/ColumnHeaderFilter/index.cjs +77 -111
  6. package/dist/cjs/components/ColumnHeaderFilter/index.native.js +89 -129
  7. package/dist/cjs/components/ColumnHeaderFilter/index.native.js.map +1 -1
  8. package/dist/cjs/components/DataTable/DataTableCardControls.cjs +90 -54
  9. package/dist/cjs/components/DataTable/DataTableCardControls.native.js +93 -56
  10. package/dist/cjs/components/DataTable/DataTableCardControls.native.js.map +1 -1
  11. package/dist/cjs/components/DataTable/DataTableRoot.cjs +68 -9
  12. package/dist/cjs/components/DataTable/DataTableRoot.native.js +78 -11
  13. package/dist/cjs/components/DataTable/DataTableRoot.native.js.map +1 -1
  14. package/dist/cjs/components/DataTableCell/CellModalEditor.cjs +72 -70
  15. package/dist/cjs/components/DataTableCell/index.cjs +2 -2
  16. package/dist/cjs/components/DataTableCell/index.native.js +2 -11
  17. package/dist/cjs/components/DataTableCell/index.native.js.map +1 -1
  18. package/dist/cjs/components/DataTableDateFilter/index.cjs +135 -158
  19. package/dist/cjs/components/DataTableDateFilter/index.native.js +153 -183
  20. package/dist/cjs/components/DataTableDateFilter/index.native.js.map +1 -1
  21. package/dist/cjs/components/DataTableExport/index.cjs +122 -139
  22. package/dist/cjs/components/DataTableExport/index.native.js +135 -157
  23. package/dist/cjs/components/DataTableExport/index.native.js.map +1 -1
  24. package/dist/cjs/components/DataTableFilterButton/index.cjs +14 -0
  25. package/dist/cjs/components/DataTableFilterButton/index.native.js +15 -0
  26. package/dist/cjs/components/DataTableFilterButton/index.native.js.map +1 -1
  27. package/dist/cjs/components/DataTableGrouping/index.cjs +192 -212
  28. package/dist/cjs/components/DataTableGrouping/index.native.js +209 -230
  29. package/dist/cjs/components/DataTableGrouping/index.native.js.map +1 -1
  30. package/dist/cjs/components/DataTableSearch/index.cjs +103 -115
  31. package/dist/cjs/components/DataTableSearch/index.native.js +111 -123
  32. package/dist/cjs/components/DataTableSearch/index.native.js.map +1 -1
  33. package/dist/cjs/components/DataTableToolbar/index.cjs +161 -101
  34. package/dist/cjs/components/DataTableToolbar/index.native.js +168 -109
  35. package/dist/cjs/components/DataTableToolbar/index.native.js.map +1 -1
  36. package/dist/cjs/components/DataTableViewOptions/index.cjs +38 -54
  37. package/dist/cjs/components/DataTableViewOptions/index.native.js +40 -56
  38. package/dist/cjs/components/DataTableViewOptions/index.native.js.map +1 -1
  39. package/dist/cjs/components/FilterOperatorValueEditor/index.cjs +3 -11
  40. package/dist/cjs/components/FilterOperatorValueEditor/index.native.js +3 -11
  41. package/dist/cjs/components/FilterOperatorValueEditor/index.native.js.map +1 -1
  42. package/dist/cjs/components/SimpleTable/index.cjs +2 -6
  43. package/dist/cjs/components/SimpleTable/index.native.js +2 -6
  44. package/dist/cjs/components/SimpleTable/index.native.js.map +1 -1
  45. package/dist/cjs/components/TableInput/RowDetailEditor.cjs +190 -0
  46. package/dist/cjs/components/TableInput/RowDetailEditor.native.js +172 -0
  47. package/dist/cjs/components/TableInput/RowDetailEditor.native.js.map +1 -0
  48. package/dist/cjs/components/TableInput/index.cjs +42 -5
  49. package/dist/cjs/components/TableInput/index.native.js +64 -1
  50. package/dist/cjs/components/TableInput/index.native.js.map +1 -1
  51. package/dist/cjs/components/TableInput/shared.cjs +8 -0
  52. package/dist/cjs/components/TableInput/shared.native.js +10 -0
  53. package/dist/cjs/components/TableInput/shared.native.js.map +1 -1
  54. package/dist/cjs/hooks/useDataTable.cjs +43 -2
  55. package/dist/cjs/hooks/useDataTable.native.js +49 -3
  56. package/dist/cjs/hooks/useDataTable.native.js.map +1 -1
  57. package/dist/cjs/index.native.js.map +1 -1
  58. package/dist/cjs/utils/rowPress.cjs +4 -1
  59. package/dist/cjs/utils/rowPress.native.js +4 -1
  60. package/dist/cjs/utils/rowPress.native.js.map +1 -1
  61. package/dist/esm/components/ChildTable/index.mjs +8 -2
  62. package/dist/esm/components/ChildTable/index.mjs.map +1 -1
  63. package/dist/esm/components/ChildTable/index.native.js +8 -2
  64. package/dist/esm/components/ChildTable/index.native.js.map +1 -1
  65. package/dist/esm/components/ColumnHeaderFilter/index.mjs +80 -114
  66. package/dist/esm/components/ColumnHeaderFilter/index.mjs.map +1 -1
  67. package/dist/esm/components/ColumnHeaderFilter/index.native.js +92 -132
  68. package/dist/esm/components/ColumnHeaderFilter/index.native.js.map +1 -1
  69. package/dist/esm/components/DataTable/DataTableCardControls.mjs +89 -54
  70. package/dist/esm/components/DataTable/DataTableCardControls.mjs.map +1 -1
  71. package/dist/esm/components/DataTable/DataTableCardControls.native.js +92 -56
  72. package/dist/esm/components/DataTable/DataTableCardControls.native.js.map +1 -1
  73. package/dist/esm/components/DataTable/DataTableRoot.mjs +70 -11
  74. package/dist/esm/components/DataTable/DataTableRoot.mjs.map +1 -1
  75. package/dist/esm/components/DataTable/DataTableRoot.native.js +80 -13
  76. package/dist/esm/components/DataTable/DataTableRoot.native.js.map +1 -1
  77. package/dist/esm/components/DataTableCell/CellModalEditor.mjs +76 -74
  78. package/dist/esm/components/DataTableCell/CellModalEditor.mjs.map +1 -1
  79. package/dist/esm/components/DataTableCell/index.mjs +3 -3
  80. package/dist/esm/components/DataTableCell/index.mjs.map +1 -1
  81. package/dist/esm/components/DataTableCell/index.native.js +3 -12
  82. package/dist/esm/components/DataTableCell/index.native.js.map +1 -1
  83. package/dist/esm/components/DataTableDateFilter/index.mjs +137 -160
  84. package/dist/esm/components/DataTableDateFilter/index.mjs.map +1 -1
  85. package/dist/esm/components/DataTableDateFilter/index.native.js +155 -185
  86. package/dist/esm/components/DataTableDateFilter/index.native.js.map +1 -1
  87. package/dist/esm/components/DataTableExport/index.mjs +124 -141
  88. package/dist/esm/components/DataTableExport/index.mjs.map +1 -1
  89. package/dist/esm/components/DataTableExport/index.native.js +137 -159
  90. package/dist/esm/components/DataTableExport/index.native.js.map +1 -1
  91. package/dist/esm/components/DataTableFilterButton/index.mjs +14 -1
  92. package/dist/esm/components/DataTableFilterButton/index.mjs.map +1 -1
  93. package/dist/esm/components/DataTableFilterButton/index.native.js +15 -1
  94. package/dist/esm/components/DataTableFilterButton/index.native.js.map +1 -1
  95. package/dist/esm/components/DataTableGrouping/index.mjs +194 -214
  96. package/dist/esm/components/DataTableGrouping/index.mjs.map +1 -1
  97. package/dist/esm/components/DataTableGrouping/index.native.js +211 -232
  98. package/dist/esm/components/DataTableGrouping/index.native.js.map +1 -1
  99. package/dist/esm/components/DataTableSearch/index.mjs +105 -117
  100. package/dist/esm/components/DataTableSearch/index.mjs.map +1 -1
  101. package/dist/esm/components/DataTableSearch/index.native.js +113 -125
  102. package/dist/esm/components/DataTableSearch/index.native.js.map +1 -1
  103. package/dist/esm/components/DataTableToolbar/index.mjs +165 -106
  104. package/dist/esm/components/DataTableToolbar/index.mjs.map +1 -1
  105. package/dist/esm/components/DataTableToolbar/index.native.js +172 -114
  106. package/dist/esm/components/DataTableToolbar/index.native.js.map +1 -1
  107. package/dist/esm/components/DataTableViewOptions/index.mjs +40 -56
  108. package/dist/esm/components/DataTableViewOptions/index.mjs.map +1 -1
  109. package/dist/esm/components/DataTableViewOptions/index.native.js +42 -58
  110. package/dist/esm/components/DataTableViewOptions/index.native.js.map +1 -1
  111. package/dist/esm/components/FilterOperatorValueEditor/index.mjs +3 -11
  112. package/dist/esm/components/FilterOperatorValueEditor/index.mjs.map +1 -1
  113. package/dist/esm/components/FilterOperatorValueEditor/index.native.js +3 -11
  114. package/dist/esm/components/FilterOperatorValueEditor/index.native.js.map +1 -1
  115. package/dist/esm/components/SimpleTable/index.mjs +3 -7
  116. package/dist/esm/components/SimpleTable/index.mjs.map +1 -1
  117. package/dist/esm/components/SimpleTable/index.native.js +3 -7
  118. package/dist/esm/components/SimpleTable/index.native.js.map +1 -1
  119. package/dist/esm/components/TableInput/RowDetailEditor.mjs +165 -0
  120. package/dist/esm/components/TableInput/RowDetailEditor.mjs.map +1 -0
  121. package/dist/esm/components/TableInput/RowDetailEditor.native.js +144 -0
  122. package/dist/esm/components/TableInput/RowDetailEditor.native.js.map +1 -0
  123. package/dist/esm/components/TableInput/index.mjs +42 -5
  124. package/dist/esm/components/TableInput/index.mjs.map +1 -1
  125. package/dist/esm/components/TableInput/index.native.js +64 -1
  126. package/dist/esm/components/TableInput/index.native.js.map +1 -1
  127. package/dist/esm/components/TableInput/shared.mjs +7 -1
  128. package/dist/esm/components/TableInput/shared.mjs.map +1 -1
  129. package/dist/esm/components/TableInput/shared.native.js +9 -1
  130. package/dist/esm/components/TableInput/shared.native.js.map +1 -1
  131. package/dist/esm/hooks/useDataTable.mjs +43 -2
  132. package/dist/esm/hooks/useDataTable.mjs.map +1 -1
  133. package/dist/esm/hooks/useDataTable.native.js +49 -3
  134. package/dist/esm/hooks/useDataTable.native.js.map +1 -1
  135. package/dist/esm/index.mjs.map +1 -1
  136. package/dist/esm/index.native.js.map +1 -1
  137. package/dist/esm/utils/rowPress.mjs +4 -1
  138. package/dist/esm/utils/rowPress.mjs.map +1 -1
  139. package/dist/esm/utils/rowPress.native.js +4 -1
  140. package/dist/esm/utils/rowPress.native.js.map +1 -1
  141. package/dist/jsx/components/ChildTable/index.mjs +8 -2
  142. package/dist/jsx/components/ChildTable/index.mjs.map +1 -1
  143. package/dist/jsx/components/ChildTable/index.native.js +8 -2
  144. package/dist/jsx/components/ChildTable/index.native.js.map +1 -1
  145. package/dist/jsx/components/ColumnHeaderFilter/index.mjs +80 -114
  146. package/dist/jsx/components/ColumnHeaderFilter/index.mjs.map +1 -1
  147. package/dist/jsx/components/ColumnHeaderFilter/index.native.js +89 -129
  148. package/dist/jsx/components/ColumnHeaderFilter/index.native.js.map +1 -1
  149. package/dist/jsx/components/DataTable/DataTableCardControls.mjs +89 -54
  150. package/dist/jsx/components/DataTable/DataTableCardControls.mjs.map +1 -1
  151. package/dist/jsx/components/DataTable/DataTableCardControls.native.js +93 -56
  152. package/dist/jsx/components/DataTable/DataTableCardControls.native.js.map +1 -1
  153. package/dist/jsx/components/DataTable/DataTableRoot.mjs +70 -11
  154. package/dist/jsx/components/DataTable/DataTableRoot.mjs.map +1 -1
  155. package/dist/jsx/components/DataTable/DataTableRoot.native.js +78 -11
  156. package/dist/jsx/components/DataTable/DataTableRoot.native.js.map +1 -1
  157. package/dist/jsx/components/DataTableCell/CellModalEditor.mjs +76 -74
  158. package/dist/jsx/components/DataTableCell/CellModalEditor.mjs.map +1 -1
  159. package/dist/jsx/components/DataTableCell/index.mjs +3 -3
  160. package/dist/jsx/components/DataTableCell/index.mjs.map +1 -1
  161. package/dist/jsx/components/DataTableCell/index.native.js +2 -11
  162. package/dist/jsx/components/DataTableCell/index.native.js.map +1 -1
  163. package/dist/jsx/components/DataTableDateFilter/index.mjs +137 -160
  164. package/dist/jsx/components/DataTableDateFilter/index.mjs.map +1 -1
  165. package/dist/jsx/components/DataTableDateFilter/index.native.js +153 -183
  166. package/dist/jsx/components/DataTableDateFilter/index.native.js.map +1 -1
  167. package/dist/jsx/components/DataTableExport/index.mjs +124 -141
  168. package/dist/jsx/components/DataTableExport/index.mjs.map +1 -1
  169. package/dist/jsx/components/DataTableExport/index.native.js +135 -157
  170. package/dist/jsx/components/DataTableExport/index.native.js.map +1 -1
  171. package/dist/jsx/components/DataTableFilterButton/index.mjs +14 -1
  172. package/dist/jsx/components/DataTableFilterButton/index.mjs.map +1 -1
  173. package/dist/jsx/components/DataTableFilterButton/index.native.js +15 -0
  174. package/dist/jsx/components/DataTableFilterButton/index.native.js.map +1 -1
  175. package/dist/jsx/components/DataTableGrouping/index.mjs +194 -214
  176. package/dist/jsx/components/DataTableGrouping/index.mjs.map +1 -1
  177. package/dist/jsx/components/DataTableGrouping/index.native.js +209 -230
  178. package/dist/jsx/components/DataTableGrouping/index.native.js.map +1 -1
  179. package/dist/jsx/components/DataTableSearch/index.mjs +105 -117
  180. package/dist/jsx/components/DataTableSearch/index.mjs.map +1 -1
  181. package/dist/jsx/components/DataTableSearch/index.native.js +111 -123
  182. package/dist/jsx/components/DataTableSearch/index.native.js.map +1 -1
  183. package/dist/jsx/components/DataTableToolbar/index.mjs +165 -106
  184. package/dist/jsx/components/DataTableToolbar/index.mjs.map +1 -1
  185. package/dist/jsx/components/DataTableToolbar/index.native.js +168 -109
  186. package/dist/jsx/components/DataTableToolbar/index.native.js.map +1 -1
  187. package/dist/jsx/components/DataTableViewOptions/index.mjs +40 -56
  188. package/dist/jsx/components/DataTableViewOptions/index.mjs.map +1 -1
  189. package/dist/jsx/components/DataTableViewOptions/index.native.js +40 -56
  190. package/dist/jsx/components/DataTableViewOptions/index.native.js.map +1 -1
  191. package/dist/jsx/components/FilterOperatorValueEditor/index.mjs +3 -11
  192. package/dist/jsx/components/FilterOperatorValueEditor/index.mjs.map +1 -1
  193. package/dist/jsx/components/FilterOperatorValueEditor/index.native.js +3 -11
  194. package/dist/jsx/components/FilterOperatorValueEditor/index.native.js.map +1 -1
  195. package/dist/jsx/components/SimpleTable/index.mjs +3 -7
  196. package/dist/jsx/components/SimpleTable/index.mjs.map +1 -1
  197. package/dist/jsx/components/SimpleTable/index.native.js +2 -6
  198. package/dist/jsx/components/SimpleTable/index.native.js.map +1 -1
  199. package/dist/jsx/components/TableInput/RowDetailEditor.mjs +165 -0
  200. package/dist/jsx/components/TableInput/RowDetailEditor.mjs.map +1 -0
  201. package/dist/jsx/components/TableInput/RowDetailEditor.native.js +172 -0
  202. package/dist/jsx/components/TableInput/RowDetailEditor.native.js.map +1 -0
  203. package/dist/jsx/components/TableInput/index.mjs +42 -5
  204. package/dist/jsx/components/TableInput/index.mjs.map +1 -1
  205. package/dist/jsx/components/TableInput/index.native.js +64 -1
  206. package/dist/jsx/components/TableInput/index.native.js.map +1 -1
  207. package/dist/jsx/components/TableInput/shared.mjs +7 -1
  208. package/dist/jsx/components/TableInput/shared.mjs.map +1 -1
  209. package/dist/jsx/components/TableInput/shared.native.js +10 -0
  210. package/dist/jsx/components/TableInput/shared.native.js.map +1 -1
  211. package/dist/jsx/hooks/useDataTable.mjs +43 -2
  212. package/dist/jsx/hooks/useDataTable.mjs.map +1 -1
  213. package/dist/jsx/hooks/useDataTable.native.js +49 -3
  214. package/dist/jsx/hooks/useDataTable.native.js.map +1 -1
  215. package/dist/jsx/index.js.map +1 -1
  216. package/dist/jsx/index.mjs.map +1 -1
  217. package/dist/jsx/index.native.js.map +1 -1
  218. package/dist/jsx/utils/rowPress.mjs +4 -1
  219. package/dist/jsx/utils/rowPress.mjs.map +1 -1
  220. package/dist/jsx/utils/rowPress.native.js +4 -1
  221. package/dist/jsx/utils/rowPress.native.js.map +1 -1
  222. package/package.json +16 -16
  223. package/src/components/ChildTable/childTable.cellHidden.spec.tsx +57 -0
  224. package/src/components/ChildTable/childTable.rowDetail.spec.tsx +120 -0
  225. package/src/components/ChildTable/index.tsx +16 -0
  226. package/src/components/ColumnHeaderFilter/index.tsx +89 -116
  227. package/src/components/DataTable/DataTable.stories.tsx +130 -6
  228. package/src/components/DataTable/DataTableCardControls.stories.tsx +61 -2
  229. package/src/components/DataTable/DataTableCardControls.tsx +92 -66
  230. package/src/components/DataTable/DataTableRoot.tsx +109 -18
  231. package/src/components/DataTable/cardLayout.spec.tsx +4 -3
  232. package/src/components/DataTable/cardToolbar.spec.tsx +238 -0
  233. package/src/components/DataTable/chromeInterplay.spec.tsx +7 -5
  234. package/src/components/DataTable/columnWidthLayout.spec.tsx +189 -0
  235. package/src/components/DataTable/dataTableCardControls.spec.tsx +3 -2
  236. package/src/components/DataTable/dataTableMobileCards.spec.tsx +1 -4
  237. package/src/components/DataTable/footerLayout.spec.tsx +250 -0
  238. package/src/components/DataTable/headerContainment.spec.tsx +91 -0
  239. package/src/components/DataTable/pinningGeometry.spec.tsx +66 -1
  240. package/src/components/DataTable/rowPress.spec.tsx +2 -6
  241. package/src/components/DataTableBulkActions/DataTableBulkActions.stories.tsx +5 -4
  242. package/src/components/DataTableCell/CellModalEditor.tsx +95 -75
  243. package/src/components/DataTableCell/cellDraftPolicy.spec.tsx +12 -2
  244. package/src/components/DataTableCell/cellModalEditor.spec.tsx +75 -49
  245. package/src/components/DataTableCell/dataTableCell.spec.tsx +31 -14
  246. package/src/components/DataTableCell/index.tsx +3 -2
  247. package/src/components/DataTableDateFilter/DataTableDateFilter.spec.tsx +6 -3
  248. package/src/components/DataTableDateFilter/index.tsx +151 -180
  249. package/src/components/DataTableExport/DataTableExport.spec.tsx +42 -18
  250. package/src/components/DataTableExport/index.tsx +135 -142
  251. package/src/components/DataTableFilterButton/index.tsx +9 -0
  252. package/src/components/DataTableGrouping/index.tsx +193 -195
  253. package/src/components/DataTableSearch/index.tsx +111 -109
  254. package/src/components/DataTableToolbar/index.tsx +179 -107
  255. package/src/components/DataTableViewOptions/DataTableViewOptions.stories.tsx +52 -0
  256. package/src/components/DataTableViewOptions/index.tsx +32 -40
  257. package/src/components/FilterOperatorValueEditor/FilterOperatorValueEditor.spec.tsx +64 -2
  258. package/src/components/FilterOperatorValueEditor/index.tsx +0 -8
  259. package/src/components/SimpleTable/index.tsx +3 -2
  260. package/src/components/SimpleTable/simpleTable.spec.tsx +15 -0
  261. package/src/components/Table/accessibility.spec.tsx +7 -19
  262. package/src/components/TableInput/RowDetailEditor.native.tsx +134 -0
  263. package/src/components/TableInput/RowDetailEditor.tsx +173 -0
  264. package/src/components/TableInput/index.native.tsx +49 -1
  265. package/src/components/TableInput/index.tsx +65 -10
  266. package/src/components/TableInput/shared.ts +29 -0
  267. package/src/components/tableDropdowns.spec.tsx +172 -0
  268. package/src/hooks/useDataTable.spec.ts +153 -0
  269. package/src/hooks/useDataTable.ts +38 -2
  270. package/src/index.ts +1 -0
  271. package/src/types.ts +14 -12
  272. package/src/utils/rowPress.ts +3 -0
  273. package/types/components/ChildTable/index.d.ts +10 -0
  274. package/types/components/ChildTable/index.d.ts.map +1 -1
  275. package/types/components/ColumnHeaderFilter/index.d.ts +1 -1
  276. package/types/components/ColumnHeaderFilter/index.d.ts.map +1 -1
  277. package/types/components/DataTable/DataTableCardControls.d.ts +3 -0
  278. package/types/components/DataTable/DataTableCardControls.d.ts.map +1 -1
  279. package/types/components/DataTable/DataTableRoot.d.ts.map +1 -1
  280. package/types/components/DataTableCell/CellModalEditor.d.ts +10 -7
  281. package/types/components/DataTableCell/CellModalEditor.d.ts.map +1 -1
  282. package/types/components/DataTableCell/index.d.ts.map +1 -1
  283. package/types/components/DataTableDateFilter/index.d.ts.map +1 -1
  284. package/types/components/DataTableFilterButton/index.d.ts +2 -1
  285. package/types/components/DataTableFilterButton/index.d.ts.map +1 -1
  286. package/types/components/DataTableGrouping/index.d.ts.map +1 -1
  287. package/types/components/DataTableSearch/index.d.ts.map +1 -1
  288. package/types/components/DataTableToolbar/index.d.ts +1 -0
  289. package/types/components/DataTableToolbar/index.d.ts.map +1 -1
  290. package/types/components/FilterOperatorValueEditor/index.d.ts.map +1 -1
  291. package/types/components/SimpleTable/index.d.ts.map +1 -1
  292. package/types/components/TableInput/RowDetailEditor.d.ts +24 -0
  293. package/types/components/TableInput/RowDetailEditor.d.ts.map +1 -0
  294. package/types/components/TableInput/RowDetailEditor.native.d.ts +11 -0
  295. package/types/components/TableInput/RowDetailEditor.native.d.ts.map +1 -0
  296. package/types/components/TableInput/index.d.ts +11 -2
  297. package/types/components/TableInput/index.d.ts.map +1 -1
  298. package/types/components/TableInput/index.native.d.ts +8 -1
  299. package/types/components/TableInput/index.native.d.ts.map +1 -1
  300. package/types/components/TableInput/shared.d.ts +11 -0
  301. package/types/components/TableInput/shared.d.ts.map +1 -1
  302. package/types/hooks/useDataTable.d.ts.map +1 -1
  303. package/types/index.d.ts +1 -0
  304. package/types/index.d.ts.map +1 -1
  305. package/types/types.d.ts +14 -12
  306. package/types/types.d.ts.map +1 -1
  307. package/types/utils/rowPress.d.ts.map +1 -1
@@ -22,6 +22,7 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
22
22
  }), mod);
23
23
  var DataTableToolbar_exports = {};
24
24
  __export(DataTableToolbar_exports, {
25
+ DataTableCardToolbar: () => DataTableCardToolbar,
25
26
  DataTableToolbar: () => DataTableToolbar
26
27
  });
27
28
  module.exports = __toCommonJS(DataTableToolbar_exports);
@@ -39,6 +40,20 @@ var import_DataTableExport = require("../DataTableExport/index.cjs");
39
40
  var import_DataTableFilterButton = require("../DataTableFilterButton/index.cjs");
40
41
  var import_jsx_runtime = require("react/jsx-runtime");
41
42
  function DataTableToolbar(props) {
43
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(ToolbarLayout, {
44
+ ...props
45
+ });
46
+ }
47
+ function DataTableCardToolbar(props) {
48
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(ToolbarLayout, {
49
+ ...props,
50
+ cardLayout: true
51
+ });
52
+ }
53
+ function ToolbarLayout({
54
+ cardLayout = false,
55
+ ...props
56
+ }) {
42
57
  const ctx = (0, import_DataTableStateContext.useDataTableState)();
43
58
  const globalFilter = props.globalFilter ?? ctx?.state.globalFilter ?? "";
44
59
  const onGlobalFilterChange = props.onGlobalFilterChange ?? ctx?.actions.setGlobalFilter ?? (() => {});
@@ -86,8 +101,106 @@ function DataTableToolbar(props) {
86
101
  const showSave = enableViews && showViewSelector;
87
102
  const showActionCluster = Boolean(customActions || showFilterButton || showViewPicker || showSave || enableExport);
88
103
  const hasTrailing = showActionCluster || isFetching;
104
+ const viewPickerContent = showViewPicker && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.DropdownMenu, {
105
+ closeOnSelect: true,
106
+ placement: "bottom-end",
107
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.DropdownMenu.Trigger, {
108
+ asChild: true,
109
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_roving_focus.RovingFocusGroup.Item, {
110
+ focusable: true,
111
+ asChild: true,
112
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
113
+ chromeless: true,
114
+ size: controlSize,
115
+ iconAfter: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.CaretDownIcon, {
116
+ size: iconPx
117
+ }),
118
+ "aria-label": (0, import_t.t)("Saved views"),
119
+ ...(cardLayout ? {
120
+ minWidth: 0,
121
+ maxWidth: "100%"
122
+ } : {}),
123
+ "aria-haspopup": "menu",
124
+ children: activeView?.name ?? (0, import_t.t)("Views")
125
+ })
126
+ })
127
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.DropdownMenu.Content, {
128
+ children: views.map(view => /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.DropdownMenu.CheckboxItem, {
129
+ checked: view.id === activeViewId,
130
+ closeOnSelect: true,
131
+ onSelect: () => onLoadView(view.id),
132
+ children: view.name
133
+ }, view.id))
134
+ })]
135
+ });
136
+ const viewPicker = cardLayout && showViewPicker ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
137
+ minWidth: 0,
138
+ maxWidth: "100%",
139
+ flexBasis: "auto",
140
+ flexGrow: 0,
141
+ flexShrink: 1,
142
+ children: viewPickerContent
143
+ }) : viewPickerContent;
144
+ const saveView = showSave && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.FloatingPanel, {
145
+ open: showSaveViewDialog,
146
+ onOpenChange: setShowSaveViewDialog,
147
+ triggerSizing: "content",
148
+ widthMode: "fit-content",
149
+ trigger: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_roving_focus.RovingFocusGroup.Item, {
150
+ focusable: true,
151
+ asChild: true,
152
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
153
+ chromeless: true,
154
+ size: controlSize,
155
+ icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.FloppyDiskIcon, {
156
+ size: iconPx
157
+ }),
158
+ "aria-label": (0, import_t.t)("Save view")
159
+ })
160
+ }),
161
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
162
+ ...knobProps.gap,
163
+ minWidth: 240,
164
+ "data-dismiss-class": "compose",
165
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Input, {
166
+ placeholder: (0, import_t.t)("View name"),
167
+ value: newViewName,
168
+ onChangeText: setNewViewName,
169
+ size: searchSize,
170
+ ...(compact === void 0 ? {} : {
171
+ compact
172
+ }),
173
+ inputProps: {
174
+ "aria-label": (0, import_t.t)("View name"),
175
+ onKeyDown: e => {
176
+ if (e.key === "Enter") handleSaveView();
177
+ }
178
+ }
179
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
180
+ ...knobProps.gap,
181
+ justifyContent: "flex-end",
182
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
183
+ size: controlSize,
184
+ onPress: () => setShowSaveViewDialog(false),
185
+ children: (0, import_t.t)("Cancel")
186
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
187
+ size: controlSize,
188
+ onPress: handleSaveView,
189
+ disabled: !newViewName.trim(),
190
+ disabledReason: (0, import_t.t)("Enter a view name"),
191
+ children: (0, import_t.t)("Save")
192
+ })]
193
+ })]
194
+ })
195
+ });
196
+ const showSecondary = showViewPicker || showSave || enableExport || isFetching;
89
197
  return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
90
- alignItems: "center",
198
+ alignItems: cardLayout ? "stretch" : "center",
199
+ flexDirection: cardLayout ? "column" : "row",
200
+ ...(cardLayout ? {
201
+ width: "100%",
202
+ minWidth: 0
203
+ } : {}),
91
204
  paddingVertical: knobProps.panelPadding.padding,
92
205
  paddingHorizontal: 0,
93
206
  ...knobProps.gap,
@@ -99,9 +212,9 @@ function DataTableToolbar(props) {
99
212
  "aria-label": (0, import_t.t)("Table toolbar"),
100
213
  "aria-busy": isFetching || void 0,
101
214
  children: [enableGlobalSearch && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
102
- flex: 1,
103
- minWidth: 160,
104
- maxWidth: searchMaxWidth,
215
+ flex: cardLayout ? void 0 : 1,
216
+ minWidth: cardLayout ? 0 : 160,
217
+ maxWidth: cardLayout ? void 0 : searchMaxWidth,
105
218
  flexShrink: 1,
106
219
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.SearchInput, {
107
220
  value: globalFilter,
@@ -114,7 +227,49 @@ function DataTableToolbar(props) {
114
227
  }),
115
228
  size: searchSize
116
229
  })
117
- }), hasTrailing && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
230
+ }), cardLayout ? /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
231
+ children: [(showFilterButton || customActions) && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_roving_focus.RovingFocusGroup, {
232
+ orientation: "horizontal",
233
+ loop: true,
234
+ asChild: true,
235
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
236
+ "data-table-card-primary": "",
237
+ width: "100%",
238
+ minWidth: 0,
239
+ alignItems: "center",
240
+ flexWrap: "nowrap",
241
+ ...knobProps.gap,
242
+ children: [showFilterButton && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
243
+ flexShrink: 0,
244
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableFilterButton.DataTableCardFilterButton, {})
245
+ }), customActions]
246
+ })
247
+ }), showSecondary && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_roving_focus.RovingFocusGroup, {
248
+ orientation: "horizontal",
249
+ loop: true,
250
+ asChild: true,
251
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
252
+ "data-table-card-secondary": "",
253
+ width: "100%",
254
+ minWidth: 0,
255
+ flexWrap: "wrap",
256
+ alignItems: "center",
257
+ ...knobProps.gap,
258
+ children: [enableExport && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
259
+ maxWidth: "100%",
260
+ minWidth: 0,
261
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableExport.DataTableExport, {})
262
+ }), viewPicker, saveView, isFetching && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
263
+ alignItems: "center",
264
+ "aria-live": "polite",
265
+ "data-table-fetching": "true",
266
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Spinner, {
267
+ size: "small"
268
+ })
269
+ })]
270
+ })
271
+ })]
272
+ }) : hasTrailing && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
118
273
  alignItems: "center",
119
274
  ...knobProps.gap,
120
275
  flexShrink: 0,
@@ -126,102 +281,7 @@ function DataTableToolbar(props) {
126
281
  children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
127
282
  alignItems: "center",
128
283
  ...knobProps.gap,
129
- children: [showFilterButton && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableFilterButton.DataTableFilterButton, {}), enableExport && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableExport.DataTableExport, {}), customActions, showViewPicker && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.DropdownMenu, {
130
- closeOnSelect: true,
131
- placement: "bottom-end",
132
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.DropdownMenu.Trigger, {
133
- asChild: true,
134
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_roving_focus.RovingFocusGroup.Item, {
135
- focusable: true,
136
- asChild: true,
137
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
138
- chromeless: true,
139
- size: controlSize,
140
- iconAfter: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.CaretDownIcon, {
141
- size: iconPx
142
- }),
143
- "aria-label": (0, import_t.t)("Saved views"),
144
- "aria-haspopup": "menu",
145
- children: activeView?.name ?? (0, import_t.t)("Views")
146
- })
147
- })
148
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.DropdownMenu.Content, {
149
- children: views.map(view => /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.DropdownMenu.CheckboxItem, {
150
- checked: view.id === activeViewId,
151
- closeOnSelect: true,
152
- onSelect: () => onLoadView(view.id),
153
- children: view.name
154
- }, view.id))
155
- })]
156
- }), showSave && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Popover, {
157
- open: showSaveViewDialog,
158
- onOpenChange: setShowSaveViewDialog,
159
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Popover.Trigger, {
160
- asChild: true,
161
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_roving_focus.RovingFocusGroup.Item, {
162
- focusable: true,
163
- asChild: true,
164
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
165
- chromeless: true,
166
- size: controlSize,
167
- icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.FloppyDiskIcon, {
168
- size: iconPx
169
- }),
170
- "aria-label": (0, import_t.t)("Save view")
171
- })
172
- })
173
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Popover.Content, {
174
- ...knobProps.elevatedSurface,
175
- ...knobProps.borderRadius,
176
- borderColor: "$color6",
177
- transition: knobProps.transition,
178
- enterStyle: {
179
- x: 0,
180
- y: -10,
181
- opacity: 0
182
- },
183
- exitStyle: {
184
- x: 0,
185
- y: -10,
186
- opacity: 0
187
- },
188
- "data-dismiss-class": "compose",
189
- children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
190
- ...knobProps.gap,
191
- ...knobProps.panelPadding,
192
- minWidth: 240,
193
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Input, {
194
- placeholder: (0, import_t.t)("View name"),
195
- value: newViewName,
196
- onChangeText: setNewViewName,
197
- size: searchSize,
198
- ...(compact === void 0 ? {} : {
199
- compact
200
- }),
201
- inputProps: {
202
- "aria-label": (0, import_t.t)("View name"),
203
- onKeyDown: e => {
204
- if (e.key === "Enter") handleSaveView();
205
- }
206
- }
207
- }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
208
- ...knobProps.gap,
209
- justifyContent: "flex-end",
210
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
211
- size: controlSize,
212
- onPress: () => setShowSaveViewDialog(false),
213
- children: (0, import_t.t)("Cancel")
214
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
215
- size: controlSize,
216
- onPress: handleSaveView,
217
- disabled: !newViewName.trim(),
218
- disabledReason: (0, import_t.t)("Enter a view name"),
219
- children: (0, import_t.t)("Save")
220
- })]
221
- })]
222
- })
223
- })]
224
- })]
284
+ children: [showFilterButton && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableFilterButton.DataTableFilterButton, {}), enableExport && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableExport.DataTableExport, {}), customActions, viewPicker, saveView]
225
285
  })
226
286
  }), isFetching && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
227
287
  alignItems: "center",
@@ -24,6 +24,7 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
24
24
  }), mod);
25
25
  var DataTableToolbar_exports = {};
26
26
  __export(DataTableToolbar_exports, {
27
+ DataTableCardToolbar: () => DataTableCardToolbar,
27
28
  DataTableToolbar: () => DataTableToolbar
28
29
  });
29
30
  module.exports = __toCommonJS(DataTableToolbar_exports);
@@ -41,6 +42,21 @@ var import_DataTableStateContext = require("../DataTable/DataTableStateContext.n
41
42
  var import_DataTableExport = require("../DataTableExport/index.native.js");
42
43
  var import_DataTableFilterButton = require("../DataTableFilterButton/index.native.js");
43
44
  function DataTableToolbar(props) {
45
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(ToolbarLayout, {
46
+ ...props
47
+ });
48
+ }
49
+ function DataTableCardToolbar(props) {
50
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(ToolbarLayout, {
51
+ ...props,
52
+ cardLayout: true
53
+ });
54
+ }
55
+ function ToolbarLayout(param) {
56
+ var {
57
+ cardLayout = false,
58
+ ...props
59
+ } = param;
44
60
  var _ref, _props_globalFilter, _ref1, _props_onGlobalFilterChange, _ref2, _props_onClearFilters, _ref3, _props_onSaveView, _ref4, _props_onLoadView, _ref5, _props_views, _props_activeViewId, _ref6, _ref7, _ref8;
45
61
  var _ctx_computed_filterFields, _ctx_computed;
46
62
  var ctx = (0, import_DataTableStateContext.useDataTableState)();
@@ -92,8 +108,112 @@ function DataTableToolbar(props) {
92
108
  var showSave = enableViews && showViewSelector;
93
109
  var showActionCluster = Boolean(customActions || showFilterButton || showViewPicker || showSave || enableExport);
94
110
  var hasTrailing = showActionCluster || isFetching;
111
+ var viewPickerContent = showViewPicker && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.DropdownMenu, {
112
+ closeOnSelect: true,
113
+ placement: "bottom-end",
114
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.DropdownMenu.Trigger, {
115
+ asChild: true,
116
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_roving_focus.RovingFocusGroup.Item, {
117
+ focusable: true,
118
+ asChild: true,
119
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
120
+ chromeless: true,
121
+ size: controlSize,
122
+ iconAfter: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.CaretDownIcon, {
123
+ size: iconPx
124
+ }),
125
+ "aria-label": (0, import_t.t)("Saved views"),
126
+ ...(cardLayout ? {
127
+ minWidth: 0,
128
+ maxWidth: "100%"
129
+ } : {}),
130
+ "aria-haspopup": "menu",
131
+ children: (_ref8 = activeView === null || activeView === void 0 ? void 0 : activeView.name) !== null && _ref8 !== void 0 ? _ref8 : (0, import_t.t)("Views")
132
+ })
133
+ })
134
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.DropdownMenu.Content, {
135
+ children: views.map(function (view) {
136
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.DropdownMenu.CheckboxItem, {
137
+ checked: view.id === activeViewId,
138
+ closeOnSelect: true,
139
+ onSelect: function onSelect() {
140
+ return onLoadView(view.id);
141
+ },
142
+ children: view.name
143
+ }, view.id);
144
+ })
145
+ })]
146
+ });
147
+ var viewPicker = cardLayout && showViewPicker ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
148
+ minWidth: 0,
149
+ maxWidth: "100%",
150
+ flexBasis: "auto",
151
+ flexGrow: 0,
152
+ flexShrink: 1,
153
+ children: viewPickerContent
154
+ }) : viewPickerContent;
155
+ var saveView = showSave && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.FloatingPanel, {
156
+ open: showSaveViewDialog,
157
+ onOpenChange: setShowSaveViewDialog,
158
+ triggerSizing: "content",
159
+ widthMode: "fit-content",
160
+ trigger: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_roving_focus.RovingFocusGroup.Item, {
161
+ focusable: true,
162
+ asChild: true,
163
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
164
+ chromeless: true,
165
+ size: controlSize,
166
+ icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.FloppyDiskIcon, {
167
+ size: iconPx
168
+ }),
169
+ "aria-label": (0, import_t.t)("Save view")
170
+ })
171
+ }),
172
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
173
+ ...knobProps.gap,
174
+ minWidth: 240,
175
+ "data-dismiss-class": "compose",
176
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Input, {
177
+ placeholder: (0, import_t.t)("View name"),
178
+ value: newViewName,
179
+ onChangeText: setNewViewName,
180
+ size: searchSize,
181
+ ...(compact === void 0 ? {} : {
182
+ compact
183
+ }),
184
+ inputProps: {
185
+ "aria-label": (0, import_t.t)("View name"),
186
+ onKeyDown: function onKeyDown(e) {
187
+ if (e.key === "Enter") handleSaveView();
188
+ }
189
+ }
190
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
191
+ ...knobProps.gap,
192
+ justifyContent: "flex-end",
193
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
194
+ size: controlSize,
195
+ onPress: function onPress() {
196
+ return setShowSaveViewDialog(false);
197
+ },
198
+ children: (0, import_t.t)("Cancel")
199
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
200
+ size: controlSize,
201
+ onPress: handleSaveView,
202
+ disabled: !newViewName.trim(),
203
+ disabledReason: (0, import_t.t)("Enter a view name"),
204
+ children: (0, import_t.t)("Save")
205
+ })]
206
+ })]
207
+ })
208
+ });
209
+ var showSecondary = showViewPicker || showSave || enableExport || isFetching;
95
210
  return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
96
- alignItems: "center",
211
+ alignItems: cardLayout ? "stretch" : "center",
212
+ flexDirection: cardLayout ? "column" : "row",
213
+ ...(cardLayout ? {
214
+ width: "100%",
215
+ minWidth: 0
216
+ } : {}),
97
217
  // LC-39: flush band — no painted panel, so no horizontal inset.
98
218
  paddingVertical: knobProps.panelPadding.padding,
99
219
  paddingHorizontal: 0,
@@ -106,9 +226,9 @@ function DataTableToolbar(props) {
106
226
  "aria-label": (0, import_t.t)("Table toolbar"),
107
227
  "aria-busy": isFetching || void 0,
108
228
  children: [enableGlobalSearch && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
109
- flex: 1,
110
- minWidth: 160,
111
- maxWidth: searchMaxWidth,
229
+ flex: cardLayout ? void 0 : 1,
230
+ minWidth: cardLayout ? 0 : 160,
231
+ maxWidth: cardLayout ? void 0 : searchMaxWidth,
112
232
  flexShrink: 1,
113
233
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.SearchInput, {
114
234
  value: globalFilter,
@@ -128,7 +248,49 @@ function DataTableToolbar(props) {
128
248
  }),
129
249
  size: searchSize
130
250
  })
131
- }), hasTrailing && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
251
+ }), cardLayout ? /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
252
+ children: [(showFilterButton || customActions) && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_roving_focus.RovingFocusGroup, {
253
+ orientation: "horizontal",
254
+ loop: true,
255
+ asChild: true,
256
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
257
+ "data-table-card-primary": "",
258
+ width: "100%",
259
+ minWidth: 0,
260
+ alignItems: "center",
261
+ flexWrap: "nowrap",
262
+ ...knobProps.gap,
263
+ children: [showFilterButton && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
264
+ flexShrink: 0,
265
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableFilterButton.DataTableCardFilterButton, {})
266
+ }), customActions]
267
+ })
268
+ }), showSecondary && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_roving_focus.RovingFocusGroup, {
269
+ orientation: "horizontal",
270
+ loop: true,
271
+ asChild: true,
272
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
273
+ "data-table-card-secondary": "",
274
+ width: "100%",
275
+ minWidth: 0,
276
+ flexWrap: "wrap",
277
+ alignItems: "center",
278
+ ...knobProps.gap,
279
+ children: [enableExport && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
280
+ maxWidth: "100%",
281
+ minWidth: 0,
282
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableExport.DataTableExport, {})
283
+ }), viewPicker, saveView, isFetching && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
284
+ alignItems: "center",
285
+ "aria-live": "polite",
286
+ "data-table-fetching": "true",
287
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Spinner, {
288
+ size: "small"
289
+ })
290
+ })]
291
+ })
292
+ })]
293
+ }) : hasTrailing && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
132
294
  alignItems: "center",
133
295
  ...knobProps.gap,
134
296
  flexShrink: 0,
@@ -140,110 +302,7 @@ function DataTableToolbar(props) {
140
302
  children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
141
303
  alignItems: "center",
142
304
  ...knobProps.gap,
143
- children: [showFilterButton && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableFilterButton.DataTableFilterButton, {}), enableExport && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableExport.DataTableExport, {}), customActions, showViewPicker && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.DropdownMenu, {
144
- closeOnSelect: true,
145
- placement: "bottom-end",
146
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.DropdownMenu.Trigger, {
147
- asChild: true,
148
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_roving_focus.RovingFocusGroup.Item, {
149
- focusable: true,
150
- asChild: true,
151
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
152
- chromeless: true,
153
- size: controlSize,
154
- iconAfter: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.CaretDownIcon, {
155
- size: iconPx
156
- }),
157
- "aria-label": (0, import_t.t)("Saved views"),
158
- "aria-haspopup": "menu",
159
- children: (_ref8 = activeView === null || activeView === void 0 ? void 0 : activeView.name) !== null && _ref8 !== void 0 ? _ref8 : (0, import_t.t)("Views")
160
- })
161
- })
162
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.DropdownMenu.Content, {
163
- children: views.map(function (view) {
164
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.DropdownMenu.CheckboxItem, {
165
- checked: view.id === activeViewId,
166
- closeOnSelect: true,
167
- onSelect: function onSelect() {
168
- return onLoadView(view.id);
169
- },
170
- children: view.name
171
- }, view.id);
172
- })
173
- })]
174
- }), showSave && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Popover, {
175
- open: showSaveViewDialog,
176
- onOpenChange: setShowSaveViewDialog,
177
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Popover.Trigger, {
178
- asChild: true,
179
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_roving_focus.RovingFocusGroup.Item, {
180
- focusable: true,
181
- asChild: true,
182
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
183
- chromeless: true,
184
- size: controlSize,
185
- icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.FloppyDiskIcon, {
186
- size: iconPx
187
- }),
188
- "aria-label": (0, import_t.t)("Save view")
189
- })
190
- })
191
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Popover.Content, {
192
- ...knobProps.elevatedSurface,
193
- ...knobProps.borderRadius,
194
- borderColor: "$color6",
195
- // LC-24: enter/exitStyle need a `transition` driver on the
196
- // same element ({...string} spread set nothing).
197
- transition: knobProps.transition,
198
- enterStyle: {
199
- x: 0,
200
- y: -10,
201
- opacity: 0
202
- },
203
- exitStyle: {
204
- x: 0,
205
- y: -10,
206
- opacity: 0
207
- },
208
- "data-dismiss-class": "compose",
209
- children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
210
- ...knobProps.gap,
211
- ...knobProps.panelPadding,
212
- minWidth: 240,
213
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Input, {
214
- placeholder: (0, import_t.t)("View name"),
215
- value: newViewName,
216
- onChangeText: setNewViewName,
217
- size: searchSize,
218
- ...(compact === void 0 ? {} : {
219
- compact
220
- }),
221
- inputProps: {
222
- "aria-label": (0, import_t.t)("View name"),
223
- onKeyDown: function onKeyDown(e) {
224
- if (e.key === "Enter") handleSaveView();
225
- }
226
- }
227
- }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
228
- ...knobProps.gap,
229
- justifyContent: "flex-end",
230
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
231
- size: controlSize,
232
- onPress: function onPress() {
233
- return setShowSaveViewDialog(false);
234
- },
235
- children: (0, import_t.t)("Cancel")
236
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
237
- size: controlSize,
238
- onPress: handleSaveView,
239
- disabled: !newViewName.trim(),
240
- disabledReason: (0, import_t.t)("Enter a view name"),
241
- children: (0, import_t.t)("Save")
242
- })]
243
- })]
244
- })
245
- })]
246
- })]
305
+ children: [showFilterButton && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableFilterButton.DataTableFilterButton, {}), enableExport && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DataTableExport.DataTableExport, {}), customActions, viewPicker, saveView]
247
306
  })
248
307
  }), isFetching && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
249
308
  alignItems: "center",