@multiplatform.one/table 7.11.0 → 7.16.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 (277) hide show
  1. package/README.md +1 -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/DataTableRoot.cjs +17 -1
  9. package/dist/cjs/components/DataTable/DataTableRoot.native.js +25 -2
  10. package/dist/cjs/components/DataTable/DataTableRoot.native.js.map +1 -1
  11. package/dist/cjs/components/DataTableBulkActions/index.cjs +1 -1
  12. package/dist/cjs/components/DataTableBulkActions/index.native.js +1 -1
  13. package/dist/cjs/components/DataTableBulkActions/index.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/DataTableGrouping/index.cjs +192 -212
  25. package/dist/cjs/components/DataTableGrouping/index.native.js +209 -230
  26. package/dist/cjs/components/DataTableGrouping/index.native.js.map +1 -1
  27. package/dist/cjs/components/DataTableSearch/index.cjs +103 -115
  28. package/dist/cjs/components/DataTableSearch/index.native.js +111 -123
  29. package/dist/cjs/components/DataTableSearch/index.native.js.map +1 -1
  30. package/dist/cjs/components/DataTableToolbar/index.cjs +44 -61
  31. package/dist/cjs/components/DataTableToolbar/index.native.js +46 -65
  32. package/dist/cjs/components/DataTableToolbar/index.native.js.map +1 -1
  33. package/dist/cjs/components/DataTableViewOptions/index.cjs +38 -54
  34. package/dist/cjs/components/DataTableViewOptions/index.native.js +40 -56
  35. package/dist/cjs/components/DataTableViewOptions/index.native.js.map +1 -1
  36. package/dist/cjs/components/FilterOperatorValueEditor/index.cjs +3 -11
  37. package/dist/cjs/components/FilterOperatorValueEditor/index.native.js +3 -11
  38. package/dist/cjs/components/FilterOperatorValueEditor/index.native.js.map +1 -1
  39. package/dist/cjs/components/SimpleTable/index.cjs +2 -6
  40. package/dist/cjs/components/SimpleTable/index.native.js +2 -6
  41. package/dist/cjs/components/SimpleTable/index.native.js.map +1 -1
  42. package/dist/cjs/components/TableInput/RowDetailEditor.cjs +190 -0
  43. package/dist/cjs/components/TableInput/RowDetailEditor.native.js +172 -0
  44. package/dist/cjs/components/TableInput/RowDetailEditor.native.js.map +1 -0
  45. package/dist/cjs/components/TableInput/index.cjs +42 -5
  46. package/dist/cjs/components/TableInput/index.native.js +64 -1
  47. package/dist/cjs/components/TableInput/index.native.js.map +1 -1
  48. package/dist/cjs/components/TableInput/shared.cjs +8 -0
  49. package/dist/cjs/components/TableInput/shared.native.js +10 -0
  50. package/dist/cjs/components/TableInput/shared.native.js.map +1 -1
  51. package/dist/cjs/hooks/useDataTable.cjs +11 -1
  52. package/dist/cjs/hooks/useDataTable.native.js +12 -2
  53. package/dist/cjs/hooks/useDataTable.native.js.map +1 -1
  54. package/dist/cjs/index.native.js.map +1 -1
  55. package/dist/cjs/utils/rowPress.cjs +4 -1
  56. package/dist/cjs/utils/rowPress.native.js +4 -1
  57. package/dist/cjs/utils/rowPress.native.js.map +1 -1
  58. package/dist/esm/components/ChildTable/index.mjs +8 -2
  59. package/dist/esm/components/ChildTable/index.mjs.map +1 -1
  60. package/dist/esm/components/ChildTable/index.native.js +8 -2
  61. package/dist/esm/components/ChildTable/index.native.js.map +1 -1
  62. package/dist/esm/components/ColumnHeaderFilter/index.mjs +80 -114
  63. package/dist/esm/components/ColumnHeaderFilter/index.mjs.map +1 -1
  64. package/dist/esm/components/ColumnHeaderFilter/index.native.js +92 -132
  65. package/dist/esm/components/ColumnHeaderFilter/index.native.js.map +1 -1
  66. package/dist/esm/components/DataTable/DataTableRoot.mjs +17 -1
  67. package/dist/esm/components/DataTable/DataTableRoot.mjs.map +1 -1
  68. package/dist/esm/components/DataTable/DataTableRoot.native.js +25 -2
  69. package/dist/esm/components/DataTable/DataTableRoot.native.js.map +1 -1
  70. package/dist/esm/components/DataTableBulkActions/index.mjs +1 -1
  71. package/dist/esm/components/DataTableBulkActions/index.mjs.map +1 -1
  72. package/dist/esm/components/DataTableBulkActions/index.native.js +1 -1
  73. package/dist/esm/components/DataTableBulkActions/index.native.js.map +1 -1
  74. package/dist/esm/components/DataTableCell/CellModalEditor.mjs +76 -74
  75. package/dist/esm/components/DataTableCell/CellModalEditor.mjs.map +1 -1
  76. package/dist/esm/components/DataTableCell/index.mjs +3 -3
  77. package/dist/esm/components/DataTableCell/index.mjs.map +1 -1
  78. package/dist/esm/components/DataTableCell/index.native.js +3 -12
  79. package/dist/esm/components/DataTableCell/index.native.js.map +1 -1
  80. package/dist/esm/components/DataTableDateFilter/index.mjs +137 -160
  81. package/dist/esm/components/DataTableDateFilter/index.mjs.map +1 -1
  82. package/dist/esm/components/DataTableDateFilter/index.native.js +155 -185
  83. package/dist/esm/components/DataTableDateFilter/index.native.js.map +1 -1
  84. package/dist/esm/components/DataTableExport/index.mjs +124 -141
  85. package/dist/esm/components/DataTableExport/index.mjs.map +1 -1
  86. package/dist/esm/components/DataTableExport/index.native.js +137 -159
  87. package/dist/esm/components/DataTableExport/index.native.js.map +1 -1
  88. package/dist/esm/components/DataTableGrouping/index.mjs +194 -214
  89. package/dist/esm/components/DataTableGrouping/index.mjs.map +1 -1
  90. package/dist/esm/components/DataTableGrouping/index.native.js +211 -232
  91. package/dist/esm/components/DataTableGrouping/index.native.js.map +1 -1
  92. package/dist/esm/components/DataTableSearch/index.mjs +105 -117
  93. package/dist/esm/components/DataTableSearch/index.mjs.map +1 -1
  94. package/dist/esm/components/DataTableSearch/index.native.js +113 -125
  95. package/dist/esm/components/DataTableSearch/index.native.js.map +1 -1
  96. package/dist/esm/components/DataTableToolbar/index.mjs +46 -63
  97. package/dist/esm/components/DataTableToolbar/index.mjs.map +1 -1
  98. package/dist/esm/components/DataTableToolbar/index.native.js +48 -67
  99. package/dist/esm/components/DataTableToolbar/index.native.js.map +1 -1
  100. package/dist/esm/components/DataTableViewOptions/index.mjs +40 -56
  101. package/dist/esm/components/DataTableViewOptions/index.mjs.map +1 -1
  102. package/dist/esm/components/DataTableViewOptions/index.native.js +42 -58
  103. package/dist/esm/components/DataTableViewOptions/index.native.js.map +1 -1
  104. package/dist/esm/components/FilterOperatorValueEditor/index.mjs +3 -11
  105. package/dist/esm/components/FilterOperatorValueEditor/index.mjs.map +1 -1
  106. package/dist/esm/components/FilterOperatorValueEditor/index.native.js +3 -11
  107. package/dist/esm/components/FilterOperatorValueEditor/index.native.js.map +1 -1
  108. package/dist/esm/components/SimpleTable/index.mjs +3 -7
  109. package/dist/esm/components/SimpleTable/index.mjs.map +1 -1
  110. package/dist/esm/components/SimpleTable/index.native.js +3 -7
  111. package/dist/esm/components/SimpleTable/index.native.js.map +1 -1
  112. package/dist/esm/components/TableInput/RowDetailEditor.mjs +165 -0
  113. package/dist/esm/components/TableInput/RowDetailEditor.mjs.map +1 -0
  114. package/dist/esm/components/TableInput/RowDetailEditor.native.js +144 -0
  115. package/dist/esm/components/TableInput/RowDetailEditor.native.js.map +1 -0
  116. package/dist/esm/components/TableInput/index.mjs +42 -5
  117. package/dist/esm/components/TableInput/index.mjs.map +1 -1
  118. package/dist/esm/components/TableInput/index.native.js +64 -1
  119. package/dist/esm/components/TableInput/index.native.js.map +1 -1
  120. package/dist/esm/components/TableInput/shared.mjs +7 -1
  121. package/dist/esm/components/TableInput/shared.mjs.map +1 -1
  122. package/dist/esm/components/TableInput/shared.native.js +9 -1
  123. package/dist/esm/components/TableInput/shared.native.js.map +1 -1
  124. package/dist/esm/hooks/useDataTable.mjs +11 -1
  125. package/dist/esm/hooks/useDataTable.mjs.map +1 -1
  126. package/dist/esm/hooks/useDataTable.native.js +12 -2
  127. package/dist/esm/hooks/useDataTable.native.js.map +1 -1
  128. package/dist/esm/index.mjs.map +1 -1
  129. package/dist/esm/index.native.js.map +1 -1
  130. package/dist/esm/utils/rowPress.mjs +4 -1
  131. package/dist/esm/utils/rowPress.mjs.map +1 -1
  132. package/dist/esm/utils/rowPress.native.js +4 -1
  133. package/dist/esm/utils/rowPress.native.js.map +1 -1
  134. package/dist/jsx/components/ChildTable/index.mjs +8 -2
  135. package/dist/jsx/components/ChildTable/index.mjs.map +1 -1
  136. package/dist/jsx/components/ChildTable/index.native.js +8 -2
  137. package/dist/jsx/components/ChildTable/index.native.js.map +1 -1
  138. package/dist/jsx/components/ColumnHeaderFilter/index.mjs +80 -114
  139. package/dist/jsx/components/ColumnHeaderFilter/index.mjs.map +1 -1
  140. package/dist/jsx/components/ColumnHeaderFilter/index.native.js +89 -129
  141. package/dist/jsx/components/ColumnHeaderFilter/index.native.js.map +1 -1
  142. package/dist/jsx/components/DataTable/DataTableRoot.mjs +17 -1
  143. package/dist/jsx/components/DataTable/DataTableRoot.mjs.map +1 -1
  144. package/dist/jsx/components/DataTable/DataTableRoot.native.js +25 -2
  145. package/dist/jsx/components/DataTable/DataTableRoot.native.js.map +1 -1
  146. package/dist/jsx/components/DataTableBulkActions/index.mjs +1 -1
  147. package/dist/jsx/components/DataTableBulkActions/index.mjs.map +1 -1
  148. package/dist/jsx/components/DataTableBulkActions/index.native.js +1 -1
  149. package/dist/jsx/components/DataTableBulkActions/index.native.js.map +1 -1
  150. package/dist/jsx/components/DataTableCell/CellModalEditor.mjs +76 -74
  151. package/dist/jsx/components/DataTableCell/CellModalEditor.mjs.map +1 -1
  152. package/dist/jsx/components/DataTableCell/index.mjs +3 -3
  153. package/dist/jsx/components/DataTableCell/index.mjs.map +1 -1
  154. package/dist/jsx/components/DataTableCell/index.native.js +2 -11
  155. package/dist/jsx/components/DataTableCell/index.native.js.map +1 -1
  156. package/dist/jsx/components/DataTableDateFilter/index.mjs +137 -160
  157. package/dist/jsx/components/DataTableDateFilter/index.mjs.map +1 -1
  158. package/dist/jsx/components/DataTableDateFilter/index.native.js +153 -183
  159. package/dist/jsx/components/DataTableDateFilter/index.native.js.map +1 -1
  160. package/dist/jsx/components/DataTableExport/index.mjs +124 -141
  161. package/dist/jsx/components/DataTableExport/index.mjs.map +1 -1
  162. package/dist/jsx/components/DataTableExport/index.native.js +135 -157
  163. package/dist/jsx/components/DataTableExport/index.native.js.map +1 -1
  164. package/dist/jsx/components/DataTableGrouping/index.mjs +194 -214
  165. package/dist/jsx/components/DataTableGrouping/index.mjs.map +1 -1
  166. package/dist/jsx/components/DataTableGrouping/index.native.js +209 -230
  167. package/dist/jsx/components/DataTableGrouping/index.native.js.map +1 -1
  168. package/dist/jsx/components/DataTableSearch/index.mjs +105 -117
  169. package/dist/jsx/components/DataTableSearch/index.mjs.map +1 -1
  170. package/dist/jsx/components/DataTableSearch/index.native.js +111 -123
  171. package/dist/jsx/components/DataTableSearch/index.native.js.map +1 -1
  172. package/dist/jsx/components/DataTableToolbar/index.mjs +46 -63
  173. package/dist/jsx/components/DataTableToolbar/index.mjs.map +1 -1
  174. package/dist/jsx/components/DataTableToolbar/index.native.js +46 -65
  175. package/dist/jsx/components/DataTableToolbar/index.native.js.map +1 -1
  176. package/dist/jsx/components/DataTableViewOptions/index.mjs +40 -56
  177. package/dist/jsx/components/DataTableViewOptions/index.mjs.map +1 -1
  178. package/dist/jsx/components/DataTableViewOptions/index.native.js +40 -56
  179. package/dist/jsx/components/DataTableViewOptions/index.native.js.map +1 -1
  180. package/dist/jsx/components/FilterOperatorValueEditor/index.mjs +3 -11
  181. package/dist/jsx/components/FilterOperatorValueEditor/index.mjs.map +1 -1
  182. package/dist/jsx/components/FilterOperatorValueEditor/index.native.js +3 -11
  183. package/dist/jsx/components/FilterOperatorValueEditor/index.native.js.map +1 -1
  184. package/dist/jsx/components/SimpleTable/index.mjs +3 -7
  185. package/dist/jsx/components/SimpleTable/index.mjs.map +1 -1
  186. package/dist/jsx/components/SimpleTable/index.native.js +2 -6
  187. package/dist/jsx/components/SimpleTable/index.native.js.map +1 -1
  188. package/dist/jsx/components/TableInput/RowDetailEditor.mjs +165 -0
  189. package/dist/jsx/components/TableInput/RowDetailEditor.mjs.map +1 -0
  190. package/dist/jsx/components/TableInput/RowDetailEditor.native.js +172 -0
  191. package/dist/jsx/components/TableInput/RowDetailEditor.native.js.map +1 -0
  192. package/dist/jsx/components/TableInput/index.mjs +42 -5
  193. package/dist/jsx/components/TableInput/index.mjs.map +1 -1
  194. package/dist/jsx/components/TableInput/index.native.js +64 -1
  195. package/dist/jsx/components/TableInput/index.native.js.map +1 -1
  196. package/dist/jsx/components/TableInput/shared.mjs +7 -1
  197. package/dist/jsx/components/TableInput/shared.mjs.map +1 -1
  198. package/dist/jsx/components/TableInput/shared.native.js +10 -0
  199. package/dist/jsx/components/TableInput/shared.native.js.map +1 -1
  200. package/dist/jsx/hooks/useDataTable.mjs +11 -1
  201. package/dist/jsx/hooks/useDataTable.mjs.map +1 -1
  202. package/dist/jsx/hooks/useDataTable.native.js +12 -2
  203. package/dist/jsx/hooks/useDataTable.native.js.map +1 -1
  204. package/dist/jsx/index.js.map +1 -1
  205. package/dist/jsx/index.mjs.map +1 -1
  206. package/dist/jsx/index.native.js.map +1 -1
  207. package/dist/jsx/utils/rowPress.mjs +4 -1
  208. package/dist/jsx/utils/rowPress.mjs.map +1 -1
  209. package/dist/jsx/utils/rowPress.native.js +4 -1
  210. package/dist/jsx/utils/rowPress.native.js.map +1 -1
  211. package/package.json +14 -14
  212. package/src/components/ChildTable/childTable.cellHidden.spec.tsx +57 -0
  213. package/src/components/ChildTable/childTable.rowDetail.spec.tsx +120 -0
  214. package/src/components/ChildTable/index.tsx +16 -0
  215. package/src/components/ColumnHeaderFilter/index.tsx +89 -116
  216. package/src/components/DataTable/DataTable.stories.tsx +71 -6
  217. package/src/components/DataTable/DataTableRoot.tsx +27 -4
  218. package/src/components/DataTable/dataTableMobileCards.spec.tsx +1 -4
  219. package/src/components/DataTable/headerContainment.spec.tsx +91 -0
  220. package/src/components/DataTable/rowPress.spec.tsx +2 -6
  221. package/src/components/DataTableBulkActions/DataTableBulkActions.stories.tsx +5 -4
  222. package/src/components/DataTableBulkActions/index.tsx +1 -1
  223. package/src/components/DataTableCell/CellModalEditor.tsx +95 -75
  224. package/src/components/DataTableCell/cellDraftPolicy.spec.tsx +12 -2
  225. package/src/components/DataTableCell/cellModalEditor.spec.tsx +75 -49
  226. package/src/components/DataTableCell/dataTableCell.spec.tsx +31 -14
  227. package/src/components/DataTableCell/index.tsx +3 -2
  228. package/src/components/DataTableDateFilter/DataTableDateFilter.spec.tsx +6 -3
  229. package/src/components/DataTableDateFilter/index.tsx +151 -180
  230. package/src/components/DataTableExport/index.tsx +135 -142
  231. package/src/components/DataTableGrouping/index.tsx +193 -195
  232. package/src/components/DataTableSearch/index.tsx +111 -109
  233. package/src/components/DataTableToolbar/index.tsx +39 -46
  234. package/src/components/DataTableViewOptions/DataTableViewOptions.stories.tsx +52 -0
  235. package/src/components/DataTableViewOptions/index.tsx +32 -40
  236. package/src/components/FilterOperatorValueEditor/FilterOperatorValueEditor.spec.tsx +64 -2
  237. package/src/components/FilterOperatorValueEditor/index.tsx +0 -8
  238. package/src/components/SimpleTable/index.tsx +3 -2
  239. package/src/components/SimpleTable/simpleTable.spec.tsx +15 -0
  240. package/src/components/Table/accessibility.spec.tsx +7 -19
  241. package/src/components/TableInput/RowDetailEditor.native.tsx +134 -0
  242. package/src/components/TableInput/RowDetailEditor.tsx +173 -0
  243. package/src/components/TableInput/index.native.tsx +49 -1
  244. package/src/components/TableInput/index.tsx +65 -10
  245. package/src/components/TableInput/shared.ts +29 -0
  246. package/src/components/tableDropdowns.spec.tsx +172 -0
  247. package/src/hooks/useDataTable.spec.ts +39 -0
  248. package/src/hooks/useDataTable.ts +15 -1
  249. package/src/index.ts +1 -0
  250. package/src/utils/rowPress.ts +3 -0
  251. package/types/components/ChildTable/index.d.ts +10 -0
  252. package/types/components/ChildTable/index.d.ts.map +1 -1
  253. package/types/components/ColumnHeaderFilter/index.d.ts +1 -1
  254. package/types/components/ColumnHeaderFilter/index.d.ts.map +1 -1
  255. package/types/components/DataTable/DataTableRoot.d.ts.map +1 -1
  256. package/types/components/DataTableCell/CellModalEditor.d.ts +10 -7
  257. package/types/components/DataTableCell/CellModalEditor.d.ts.map +1 -1
  258. package/types/components/DataTableCell/index.d.ts.map +1 -1
  259. package/types/components/DataTableDateFilter/index.d.ts.map +1 -1
  260. package/types/components/DataTableGrouping/index.d.ts.map +1 -1
  261. package/types/components/DataTableSearch/index.d.ts.map +1 -1
  262. package/types/components/FilterOperatorValueEditor/index.d.ts.map +1 -1
  263. package/types/components/SimpleTable/index.d.ts.map +1 -1
  264. package/types/components/TableInput/RowDetailEditor.d.ts +24 -0
  265. package/types/components/TableInput/RowDetailEditor.d.ts.map +1 -0
  266. package/types/components/TableInput/RowDetailEditor.native.d.ts +11 -0
  267. package/types/components/TableInput/RowDetailEditor.native.d.ts.map +1 -0
  268. package/types/components/TableInput/index.d.ts +11 -2
  269. package/types/components/TableInput/index.d.ts.map +1 -1
  270. package/types/components/TableInput/index.native.d.ts +8 -1
  271. package/types/components/TableInput/index.native.d.ts.map +1 -1
  272. package/types/components/TableInput/shared.d.ts +11 -0
  273. package/types/components/TableInput/shared.d.ts.map +1 -1
  274. package/types/hooks/useDataTable.d.ts.map +1 -1
  275. package/types/index.d.ts +1 -0
  276. package/types/index.d.ts.map +1 -1
  277. package/types/utils/rowPress.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__reExport","mod","secondTarget","__toCommonJS","value","index_exports","ChildTable","import_ChildTable","DEFAULT_PAGE_SIZE","import_paginationDefaults","DEFAULT_PAGE_SIZE_OPTIONS","DataTable","import_DataTable","DataTableBulkActions","import_DataTableBulkActions2","DataTableCell","import_DataTableCell","DataTableColumnPinning","import_DataTableColumnPinning","DataTableContext","import_DataTableContext","DataTableDateFilter","import_DataTableDateFilter","DataTableExport","import_DataTableExport","DataTableFacetMenu","import_DataTableFacetMenu","DataTableFilterButton","import_DataTableFilterButton","DataTableFilterChips","import_DataTableFilterChips","DataTableFilters","import_DataTableFilters","DataTableGrouping","import_DataTableGrouping","DataTableGroupingConfig","DataTablePagination","import_DataTablePagination","DataTableSearch","import_DataTableSearch","DataTableStateContext","import_DataTableStateContext","DataTableToolbar","import_DataTableToolbar","DataTableViewOptions","import_DataTableViewOptions","DataTableVirtualized","import_DataTableVirtualized","FilterManager","import_FilterManager","FilterOperatorValueEditor","import_FilterOperatorValueEditor","SavedFilterDropdown","import_SavedFilterDropdown","SimpleTable","import_SimpleTable","Table","import_table_primitives","TableCellContext","TableInput","import_TableInput","accumulateRows","import_rowAccumulator","addMoney","import_money","alignToFlex","import_columnAlign","applyFiltersToData","import_filterFields","compareMoney","createUrlStrategy","import_useDataTable","defaultOperatorForFilterType","filterOperatorLabel","formatMoney","getDefaultColumnAlign","getFilterChipLabel","getFilterFieldType","groupData","isFilterValueShape","isMoneyString","isNegativeMoney","mapFieldToFilterType","moneyComparator","operatorNeedsNoValue","operatorsForFilterType","resolveFilterFields","subtractMoney","sumMoney","sumMoneyByCurrency","useColumnPinning","useDataTable","useDataTableState","useDateFilter","useDragScroll","import_useDragScroll","useFullTextSearch","useGrouping","useInfiniteRows","import_useInfiniteRows","useIsInTableCell","useRowSelection","import_DataTableBulkActions","useSavedFilters","import_useSavedFilters","useTableCellContext","useTableColumnPinning","import_useTableColumnPinning","useTableFiltering","import_useTableFiltering","useTableGrouping","import_useTableGrouping","useTableKeyboard","import_useTableKeyboard","useTablePagination","import_useTablePagination","useTableSearch","import_useTableSearch","useTableSelection","import_useTableSelection","useTableSorting","import_useTableSorting","useTableUrlSync","import_useTableUrlSync","useTableViews","import_useTableViews","module","exports","require"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__reExport","mod","secondTarget","__toCommonJS","value","index_exports","ChildTable","import_ChildTable","DEFAULT_PAGE_SIZE","import_paginationDefaults","DEFAULT_PAGE_SIZE_OPTIONS","DataTable","import_DataTable","DataTableBulkActions","import_DataTableBulkActions2","DataTableCell","import_DataTableCell","DataTableColumnPinning","import_DataTableColumnPinning","DataTableContext","import_DataTableContext","DataTableDateFilter","import_DataTableDateFilter","DataTableExport","import_DataTableExport","DataTableFacetMenu","import_DataTableFacetMenu","DataTableFilterButton","import_DataTableFilterButton","DataTableFilterChips","import_DataTableFilterChips","DataTableFilters","import_DataTableFilters","DataTableGrouping","import_DataTableGrouping","DataTableGroupingConfig","DataTablePagination","import_DataTablePagination","DataTableSearch","import_DataTableSearch","DataTableStateContext","import_DataTableStateContext","DataTableToolbar","import_DataTableToolbar","DataTableViewOptions","import_DataTableViewOptions","DataTableVirtualized","import_DataTableVirtualized","FilterManager","import_FilterManager","FilterOperatorValueEditor","import_FilterOperatorValueEditor","SavedFilterDropdown","import_SavedFilterDropdown","SimpleTable","import_SimpleTable","Table","import_table_primitives","TableCellContext","TableInput","import_TableInput","accumulateRows","import_rowAccumulator","addMoney","import_money","alignToFlex","import_columnAlign","applyFiltersToData","import_filterFields","compareMoney","createUrlStrategy","import_useDataTable","defaultOperatorForFilterType","filterOperatorLabel","formatMoney","getDefaultColumnAlign","getFilterChipLabel","getFilterFieldType","groupData","isFilterValueShape","isMoneyString","isNegativeMoney","mapFieldToFilterType","moneyComparator","operatorNeedsNoValue","operatorsForFilterType","resolveFilterFields","subtractMoney","sumMoney","sumMoneyByCurrency","useColumnPinning","useDataTable","useDataTableState","useDateFilter","useDragScroll","import_useDragScroll","useFullTextSearch","useGrouping","useInfiniteRows","import_useInfiniteRows","useIsInTableCell","useRowSelection","import_DataTableBulkActions","useSavedFilters","import_useSavedFilters","useTableCellContext","useTableColumnPinning","import_useTableColumnPinning","useTableFiltering","import_useTableFiltering","useTableGrouping","import_useTableGrouping","useTableKeyboard","import_useTableKeyboard","useTablePagination","import_useTablePagination","useTableSearch","import_useTableSearch","useTableSelection","import_useTableSelection","useTableSorting","import_useTableSorting","useTableUrlSync","import_useTableUrlSync","useTableViews","import_useTableViews","module","exports","require"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,10 @@
1
1
  const INTERACTIVE_SELECTOR = ["a[href]", "button", "input", "select", "textarea", "label", '[contenteditable="true"]', '[role="button"]', '[role="checkbox"]', '[role="combobox"]', '[role="link"]', '[role="menuitem"]', '[role="option"]', '[role="radio"]', '[role="slider"]', '[role="spinbutton"]', '[role="switch"]', '[role="textbox"]',
2
2
  // Expand/collapse toggles (the row-expansion caret) predate a role — the
3
3
  // expanded-state attribute is their detectable interactivity signal.
4
- "[aria-expanded]"].join(", ");
4
+ "[aria-expanded]",
5
+ // A cell editor's floating panel is portaled out of the row (MPO-335), and
6
+ // React still bubbles its presses to the row: all of it is inner control.
7
+ "[data-fp-portal]"].join(", ");
5
8
  function isInteractiveInnerTarget(target, boundary) {
6
9
  if (typeof Element === "undefined") return false;
7
10
  if (!(target instanceof Element)) return false;
@@ -1 +1 @@
1
- {"version":3,"names":["INTERACTIVE_SELECTOR","join","isInteractiveInnerTarget","target","boundary","Element","boundaryEl","node","matches","tabIndex","getAttribute","Number","parentElement"],"sources":["../../../src/utils/rowPress.ts"],"sourcesContent":[null],"mappings":"AAaA,MAAMA,oBAAA,GAAuB,CAC3B,WACA,UACA,SACA,UACA,YACA,SACA,4BACA,mBACA,qBACA,qBACA,iBACA,qBACA,mBACA,kBACA,mBACA,uBACA,mBACA;AAAA;AAAA;AAGA,kBACF,CAAEC,IAAA,CAAK,IAAI;AAQJ,SAASC,yBAAyBC,MAAA,EAAiBC,QAAA,EAA4B;EACpF,IAAI,OAAOC,OAAA,KAAY,aAAa,OAAO;EAC3C,IAAI,EAAEF,MAAA,YAAkBE,OAAA,GAAU,OAAO;EACzC,MAAMC,UAAA,GAAaF,QAAA,YAAoBC,OAAA,GAAUD,QAAA,GAAW;EAC5D,IAAIG,IAAA,GAAuBJ,MAAA;EAC3B,OAAOI,IAAA,IAAQA,IAAA,KAASD,UAAA,EAAY;IAClC,IAAIC,IAAA,CAAKC,OAAA,CAAQR,oBAAoB,GAAG,OAAO;IAC/C,MAAMS,QAAA,GAAWF,IAAA,CAAKG,YAAA,CAAa,UAAU;IAG7C,IAAID,QAAA,IAAY,QAAQE,MAAA,CAAOF,QAAQ,KAAK,GAAG,OAAO;IACtDF,IAAA,GAAOA,IAAA,CAAKK,aAAA;EACd;EACA,OAAO;AACT","ignoreList":[]}
1
+ {"version":3,"names":["INTERACTIVE_SELECTOR","join","isInteractiveInnerTarget","target","boundary","Element","boundaryEl","node","matches","tabIndex","getAttribute","Number","parentElement"],"sources":["../../../src/utils/rowPress.ts"],"sourcesContent":[null],"mappings":"AAaA,MAAMA,oBAAA,GAAuB,CAC3B,WACA,UACA,SACA,UACA,YACA,SACA,4BACA,mBACA,qBACA,qBACA,iBACA,qBACA,mBACA,kBACA,mBACA,uBACA,mBACA;AAAA;AAAA;AAGA;AAAA;AAAA;AAGA,mBACF,CAAEC,IAAA,CAAK,IAAI;AAQJ,SAASC,yBAAyBC,MAAA,EAAiBC,QAAA,EAA4B;EACpF,IAAI,OAAOC,OAAA,KAAY,aAAa,OAAO;EAC3C,IAAI,EAAEF,MAAA,YAAkBE,OAAA,GAAU,OAAO;EACzC,MAAMC,UAAA,GAAaF,QAAA,YAAoBC,OAAA,GAAUD,QAAA,GAAW;EAC5D,IAAIG,IAAA,GAAuBJ,MAAA;EAC3B,OAAOI,IAAA,IAAQA,IAAA,KAASD,UAAA,EAAY;IAClC,IAAIC,IAAA,CAAKC,OAAA,CAAQR,oBAAoB,GAAG,OAAO;IAC/C,MAAMS,QAAA,GAAWF,IAAA,CAAKG,YAAA,CAAa,UAAU;IAG7C,IAAID,QAAA,IAAY,QAAQE,MAAA,CAAOF,QAAQ,KAAK,GAAG,OAAO;IACtDF,IAAA,GAAOA,IAAA,CAAKK,aAAA;EACd;EACA,OAAO;AACT","ignoreList":[]}
@@ -39,7 +39,10 @@ function _instanceof(left, right) {
39
39
  var INTERACTIVE_SELECTOR = ["a[href]", "button", "input", "select", "textarea", "label", '[contenteditable="true"]', '[role="button"]', '[role="checkbox"]', '[role="combobox"]', '[role="link"]', '[role="menuitem"]', '[role="option"]', '[role="radio"]', '[role="slider"]', '[role="spinbutton"]', '[role="switch"]', '[role="textbox"]',
40
40
  // Expand/collapse toggles (the row-expansion caret) predate a role — the
41
41
  // expanded-state attribute is their detectable interactivity signal.
42
- "[aria-expanded]"].join(", ");
42
+ "[aria-expanded]",
43
+ // A cell editor's floating panel is portaled out of the row (MPO-335), and
44
+ // React still bubbles its presses to the row: all of it is inner control.
45
+ "[data-fp-portal]"].join(", ");
43
46
  function isInteractiveInnerTarget(target, boundary) {
44
47
  if (typeof Element === "undefined") return false;
45
48
  if (!_instanceof(target, Element)) return false;
@@ -1 +1 @@
1
- {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","rowPress_exports","isInteractiveInnerTarget","module","exports","_instanceof","left","right","Symbol","hasInstance","INTERACTIVE_SELECTOR"],"sources":["../../../src/utils/rowPress.ts"],"sourcesContent":[null],"mappings":"AAaA,YAAM;;AAAuB,IAC3BA,SAAA,GAAAC,MAAA,CAAAC,cAAA;AAAA,IACAC,gBAAA,GAAAF,MAAA,CAAAG,wBAAA;AAAA,IACAC,iBAAA,GAAAJ,MAAA,CAAAK,mBAAA;AAAA,IACAC,YAAA,GAAAN,MAAA,CAAAO,SAAA,CAAAC,cAAA;AAAA,IACAC,QAAA,GAAAA,CAAAC,MAAA,EAAAC,GAAA;EACA,SAAAC,IAAA,IAAAD,GAAA,EACAZ,SAAA,CAAAW,MAAA,EAAAE,IAAA;IAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAAA;AACA,IACAC,WAAA,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EACA,IAAAF,IAAA,WAAAA,IAAA,wBAAAA,IAAA;IACA,SAAAG,GAAA,IAAAhB,iBAAA,CAAAa,IAAA,GACA,KAAAX,YAAA,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EACAnB,SAAA,CAAAiB,EAAA,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EACA;EACA,OAAAE,EAAA;AAAA;AACA,IACAM,YAAA,GAAAC,GAAA,IAAAR,WAAA,CAAAhB,SAAA;EAAAyB,KAAA;AAAA,IAAAD,GAAA;AAAA,IACAE,gBAAA;AAAAhB,QAAA,CAAAgB,gBAAA;EAAAC,wBAAA,EAAAA,CAAA,KAAAA;AAAA,EAGA;AACFC,MAAE,CAAKC,OAAI,GAAAN,YAAA,CAAAG,gBAAA;AAQJ,SAASI,YAAAC,IAAA,EAAAC,KAAA,EAAyB;EACvC,2BAAuB;;EACvB,IAAIA,KAAE,mBAAkBC,MAAU,gBAAO,IAAAD,KAAA,CAAAC,MAAA,CAAAC,WAAA;IACzC,OAAM,EAAAF,KAAA,CAAAC,MAAa,CAAAC,WAAA,EAAAH,IAAoB;EACvC,OAAI;IACJ,OAAOA,IAAA,YAAiBC,KAAA;EACtB;AACA;AAGA,IAAAG,oBAAgB,IAChB,SAAO,EACT,UACA,OAAO,EACT,U","ignoreList":[]}
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","rowPress_exports","isInteractiveInnerTarget","module","exports","_instanceof","left","right","Symbol","hasInstance","INTERACTIVE_SELECTOR"],"sources":["../../../src/utils/rowPress.ts"],"sourcesContent":[null],"mappings":"AAaA,YAAM;;AAAuB,IAC3BA,SAAA,GAAAC,MAAA,CAAAC,cAAA;AAAA,IACAC,gBAAA,GAAAF,MAAA,CAAAG,wBAAA;AAAA,IACAC,iBAAA,GAAAJ,MAAA,CAAAK,mBAAA;AAAA,IACAC,YAAA,GAAAN,MAAA,CAAAO,SAAA,CAAAC,cAAA;AAAA,IACAC,QAAA,GAAAA,CAAAC,MAAA,EAAAC,GAAA;EACA,SAAAC,IAAA,IAAAD,GAAA,EACAZ,SAAA,CAAAW,MAAA,EAAAE,IAAA;IAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAAA;AACA,IACAC,WAAA,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EACA,IAAAF,IAAA,WAAAA,IAAA,wBAAAA,IAAA;IACA,SAAAG,GAAA,IAAAhB,iBAAA,CAAAa,IAAA,GACA,KAAAX,YAAA,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EACAnB,SAAA,CAAAiB,EAAA,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EACA;EACA,OAAAE,EAAA;AAAA;AACA,IACAM,YAAA,GAAAC,GAAA,IAAAR,WAAA,CAAAhB,SAAA;EAAAyB,KAAA;AAAA,IAAAD,GAAA;AAAA,IACAE,gBAAA;AAAAhB,QAAA,CAAAgB,gBAAA;EAAAC,wBAAA,EAAAA,CAAA,KAAAA;AAAA,EAGA;AAAAC,MAAA,CAAAC,OAAA,GAAAN,YAAA,CAAAG,gBAAA;AAAA,SAAAI,YAAAC,IAAA,EAAAC,KAAA;EAGA;;EACA,IAAAA,KAAS,mBAAAC,MAAA,oBAAAD,KAAA,CAAAC,MAAA,CAAAC,WAAA;IAQJ,OAAS,EAAAF,KAAA,CAAAC,MAAA,CAAAC,WAAyB,EAAAH,IAAiB;EACxD,OAAI;IACJ,OAAMA,IAAA,YAAkBC,KAAA;EACxB;AACA;AACA,IAAAG,oBAAe,GAAS,CACtB,SAAI,EACJ,QAAM,EAGN,OAAI,EACJ,UACF,YACA,OAAO,EACT,4B","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multiplatform.one/table",
3
- "version": "7.11.0",
3
+ "version": "7.16.0",
4
4
  "description": "Advanced table components with filtering, pagination, sorting, and URL state management",
5
5
  "keywords": [
6
6
  "cross-platform",
@@ -18,14 +18,14 @@
18
18
  ],
19
19
  "homepage": "https://multiplatform.one",
20
20
  "bugs": {
21
- "url": "https://gitlab.com/bitspur/multiplatform.one/multiplatform.one/issues",
21
+ "url": "https://projects.corp.bitspur.com/tracker/MPO",
22
22
  "email": "support@risserlabs.com"
23
23
  },
24
24
  "license": "Apache-2.0",
25
25
  "author": "BitSpur <support@risserlabs.com> (https://risserlabs.com)",
26
26
  "repository": {
27
27
  "type": "git",
28
- "url": "git+https://gitlab.com/bitspur/frappe/multiplatform.one.git",
28
+ "url": "git+https://git.corp.bitspur.com/multiplatform.one/mpo.git",
29
29
  "directory": "public/table"
30
30
  },
31
31
  "source": "src/index.ts",
@@ -74,13 +74,13 @@
74
74
  "access": "public"
75
75
  },
76
76
  "dependencies": {
77
- "@multiplatform.one/components": "7.11.0",
78
- "@multiplatform.one/forms": "7.11.0",
79
- "@multiplatform.one/platform": "7.11.0",
80
- "@multiplatform.one/rich-text": "7.11.0",
81
- "@multiplatform.one/router": "7.11.0",
82
- "@multiplatform.one/table-primitives": "7.11.0",
83
- "@multiplatform.one/theme": "7.11.0",
77
+ "@multiplatform.one/components": "7.16.0",
78
+ "@multiplatform.one/forms": "7.16.0",
79
+ "@multiplatform.one/platform": "7.16.0",
80
+ "@multiplatform.one/rich-text": "7.16.0",
81
+ "@multiplatform.one/router": "7.16.0",
82
+ "@multiplatform.one/table-primitives": "7.16.0",
83
+ "@multiplatform.one/theme": "7.16.0",
84
84
  "@phosphor-icons/react": "^2.1.10",
85
85
  "@shopify/flash-list": "^2.3.1",
86
86
  "@tamagui/roving-focus": "2.7.6",
@@ -89,10 +89,10 @@
89
89
  "tamagui": "2.7.6"
90
90
  },
91
91
  "devDependencies": {
92
- "@multiplatform.one/config": "7.11.0",
93
- "@multiplatform.one/router": "7.11.0",
94
- "@multiplatform.one/storybook": "7.11.0",
95
- "@multiplatform.one/test-utils": "7.11.0",
92
+ "@multiplatform.one/config": "7.16.0",
93
+ "@multiplatform.one/router": "7.16.0",
94
+ "@multiplatform.one/storybook": "7.16.0",
95
+ "@multiplatform.one/test-utils": "7.16.0",
96
96
  "@tamagui/build": "2.7.6",
97
97
  "@testing-library/react": "^16.3.2",
98
98
  "@types/react-dom": "^19.2.3",
@@ -0,0 +1,57 @@
1
+ import React from "react";
2
+ import { fireEvent, screen, waitFor, within } from "@testing-library/react";
3
+ import { renderWithProviders } from "@multiplatform.one/test-utils";
4
+ import { describe, expect, it, vi } from "vitest";
5
+ import { ChildTable } from "./index";
6
+ import type { DataTableColumn, DataTableData } from "../../types";
7
+
8
+ interface SerialRow extends DataTableData {
9
+ id: string;
10
+ item: string;
11
+ serial: string;
12
+ tracked: boolean;
13
+ }
14
+
15
+ const columns: DataTableColumn<SerialRow>[] = [
16
+ { accessorKey: "item", header: "Item", field: "input" },
17
+ { accessorKey: "serial", header: "Serial", field: "input" },
18
+ ];
19
+
20
+ const rows: SerialRow[] = [
21
+ { id: "a", item: "Drill", serial: "SN-1", tracked: true },
22
+ { id: "b", item: "Screws", serial: "SN-2", tracked: false },
23
+ ];
24
+
25
+ const isCellHidden = (row: SerialRow, columnId: string) => columnId === "serial" && !row.tracked;
26
+
27
+ describe("ChildTable isCellHidden (MPO-22)", () => {
28
+ it("blanks the cell on the rows it names and nowhere else", () => {
29
+ renderWithProviders(
30
+ <ChildTable<SerialRow>
31
+ value={rows}
32
+ columns={columns}
33
+ isCellHidden={isCellHidden}
34
+ onChange={vi.fn()}
35
+ />,
36
+ );
37
+ const serials = screen.getAllByLabelText("Serial") as HTMLInputElement[];
38
+ expect(serials.map((input) => input.value)).toEqual(["SN-1"]);
39
+ expect(screen.getAllByLabelText("Item")).toHaveLength(2);
40
+ });
41
+
42
+ it("drops the same field from that row's detail editor", async () => {
43
+ renderWithProviders(
44
+ <ChildTable<SerialRow>
45
+ value={rows}
46
+ columns={columns}
47
+ rowDetail
48
+ isCellHidden={isCellHidden}
49
+ onChange={vi.fn()}
50
+ />,
51
+ );
52
+ fireEvent.click(screen.getByRole("button", { name: "Edit row 2" }));
53
+ const dialog = await waitFor(() => screen.getByRole("dialog", { name: "Row 2" }));
54
+ expect(within(dialog).getByLabelText("Item")).toBeTruthy();
55
+ expect(within(dialog).queryByLabelText("Serial")).toBeNull();
56
+ });
57
+ });
@@ -0,0 +1,120 @@
1
+ import React from "react";
2
+ import { fireEvent, screen, waitFor, within } from "@testing-library/react";
3
+ import { renderWithProviders } from "@multiplatform.one/test-utils";
4
+ import { describe, expect, it, vi } from "vitest";
5
+ import { ChildTable } from "./index";
6
+ import type { DataTableColumn, DataTableData } from "../../types";
7
+
8
+ interface ItemRow extends DataTableData {
9
+ id: string;
10
+ item: string;
11
+ notes: string;
12
+ uom: string;
13
+ }
14
+
15
+ const columns: DataTableColumn<ItemRow>[] = [
16
+ { accessorKey: "item", header: "Item", field: "input" },
17
+ ];
18
+
19
+ const detailColumns: DataTableColumn<ItemRow>[] = [
20
+ { accessorKey: "item", header: "Item", field: "input" },
21
+ { accessorKey: "uom", header: "UOM", field: "input" },
22
+ ];
23
+
24
+ const initial: ItemRow[] = [
25
+ { id: "a", item: "Bracket", notes: "", uom: "Nos" },
26
+ { id: "b", item: "Bolts", notes: "", uom: "Box" },
27
+ ];
28
+
29
+ function Harness({ onChange }: { onChange: (rows: ItemRow[]) => void }) {
30
+ const [value, setValue] = React.useState(initial);
31
+ return (
32
+ <ChildTable<ItemRow>
33
+ value={value}
34
+ columns={columns}
35
+ detailColumns={detailColumns}
36
+ rowDetail
37
+ onChange={(rows) => {
38
+ setValue(rows);
39
+ onChange(rows);
40
+ }}
41
+ />
42
+ );
43
+ }
44
+
45
+ async function openRow(trigger: string, row: number) {
46
+ fireEvent.click(screen.getByRole("button", { name: trigger }));
47
+ return waitFor(() => screen.getByRole("dialog", { name: `Row ${row}` }));
48
+ }
49
+
50
+ function editText(dialog: HTMLElement, label: string, value: string) {
51
+ const input = within(dialog).getByLabelText(label) as HTMLInputElement;
52
+ fireEvent.focus(input);
53
+ fireEvent.change(input, { target: { value } });
54
+ fireEvent.blur(input);
55
+ }
56
+
57
+ describe("ChildTable row detail editor (MPO-22)", () => {
58
+ it("opens a row in a detail editor with fields the grid does not show", async () => {
59
+ renderWithProviders(<Harness onChange={vi.fn()} />);
60
+ expect(screen.queryByLabelText("UOM")).toBeNull();
61
+
62
+ const dialog = await openRow("Edit row 2", 2);
63
+ expect((within(dialog).getByLabelText("Item") as HTMLInputElement).value).toBe("Bolts");
64
+ expect((within(dialog).getByLabelText("UOM") as HTMLInputElement).value).toBe("Box");
65
+ });
66
+
67
+ it("Done writes the edited row back once, other rows untouched", async () => {
68
+ const onChange = vi.fn();
69
+ renderWithProviders(<Harness onChange={onChange} />);
70
+
71
+ const dialog = await openRow("Edit row 2", 2);
72
+ editText(dialog, "UOM", "Pair");
73
+ expect(onChange).not.toHaveBeenCalled();
74
+ fireEvent.click(within(dialog).getByRole("button", { name: "Done" }));
75
+
76
+ expect(onChange).toHaveBeenCalledTimes(1);
77
+ expect(onChange.mock.calls[0][0]).toEqual([
78
+ initial[0],
79
+ { id: "b", item: "Bolts", notes: "", uom: "Pair" },
80
+ ]);
81
+ });
82
+
83
+ it("Cancel discards the draft", async () => {
84
+ const onChange = vi.fn();
85
+ renderWithProviders(<Harness onChange={onChange} />);
86
+
87
+ const dialog = await openRow("Edit row 1", 1);
88
+ editText(dialog, "Item", "Hinge");
89
+ fireEvent.click(within(dialog).getByRole("button", { name: "Cancel" }));
90
+
91
+ await waitFor(() => expect(screen.queryByRole("dialog", { name: "Row 1" })).toBeNull());
92
+ expect(onChange).not.toHaveBeenCalled();
93
+ });
94
+
95
+ it("a read-only table opens the row for viewing with Close only", async () => {
96
+ renderWithProviders(
97
+ <ChildTable<ItemRow>
98
+ value={initial}
99
+ columns={columns}
100
+ detailColumns={detailColumns}
101
+ rowDetail
102
+ readOnly
103
+ onChange={vi.fn()}
104
+ />,
105
+ );
106
+ expect(screen.queryByRole("button", { name: /Edit row/ })).toBeNull();
107
+
108
+ const dialog = await openRow("View row 1", 1);
109
+ expect(within(dialog).getByText("Nos")).toBeTruthy();
110
+ expect(within(dialog).queryByRole("button", { name: "Done" })).toBeNull();
111
+ expect(within(dialog).getByRole("button", { name: "Close" })).toBeTruthy();
112
+ });
113
+
114
+ it("is opt-in: no detail button without rowDetail", () => {
115
+ renderWithProviders(
116
+ <ChildTable<ItemRow> value={initial} columns={columns} onChange={vi.fn()} />,
117
+ );
118
+ expect(screen.queryByRole("button", { name: /Edit row/ })).toBeNull();
119
+ });
120
+ });
@@ -3,6 +3,7 @@ import { renumberIdx } from "@multiplatform.one/components";
3
3
  import { FieldLayout, useFormField, type AnyFormApi } from "@multiplatform.one/forms";
4
4
  import { useProps, YStack } from "tamagui";
5
5
  import { TableInput } from "../TableInput";
6
+ import type { ChildCellHidden } from "../TableInput/shared";
6
7
  import type { DataTableColumn, DataTableData } from "../../types";
7
8
 
8
9
  export type ChildTableProps<TRow extends DataTableData = DataTableData> = {
@@ -32,6 +33,15 @@ export type ChildTableProps<TRow extends DataTableData = DataTableData> = {
32
33
  * read-only or disabled. A committed drop rewrites `idx` 1..n (MPO-22).
33
34
  */
34
35
  enableReorder?: boolean;
36
+ /**
37
+ * Per-row button that opens the row in a detail editor over
38
+ * `detailColumns` (default `columns`). Opt-in; a read-only table opens
39
+ * the row for viewing (MPO-22).
40
+ */
41
+ rowDetail?: boolean;
42
+ detailColumns?: DataTableColumn<TRow>[];
43
+ /** Hides one row's cell, in the grid and in the detail editor (MPO-22). */
44
+ isCellHidden?: ChildCellHidden<TRow>;
35
45
  };
36
46
 
37
47
  /**
@@ -84,6 +94,9 @@ export function ChildTable<TRow extends DataTableData = DataTableData>(
84
94
  required,
85
95
  id: idProp,
86
96
  enableReorder: enableReorderProp,
97
+ rowDetail,
98
+ detailColumns,
99
+ isCellHidden,
87
100
  } = useProps(props);
88
101
 
89
102
  const { knobProps, id, resolvedForm } = useFormField({ form, id: idProp, compact });
@@ -124,6 +137,9 @@ export function ChildTable<TRow extends DataTableData = DataTableData>(
124
137
  showDeleteRow={showDeleteRow && !readOnly && !disabled}
125
138
  compact={compact}
126
139
  enableReorder={enableReorder && !readOnly && !disabled}
140
+ rowDetail={rowDetail}
141
+ detailColumns={detailColumns}
142
+ isCellHidden={isCellHidden}
127
143
  />
128
144
  );
129
145
 
@@ -1,10 +1,10 @@
1
1
  /**
2
- * ColumnHeaderFilter - Filter popover for individual column headers
2
+ * ColumnHeaderFilter - Filter panel for individual column headers
3
3
  * AG Grid style column filtering with operators and value inputs
4
4
  */
5
5
 
6
6
  import { FunnelIcon } from "@phosphor-icons/react";
7
- import { Button } from "@multiplatform.one/forms";
7
+ import { Button, FloatingPanel } from "@multiplatform.one/forms";
8
8
  import {
9
9
  ensureCompositeFocusRing,
10
10
  MIN_PRESS_TARGET,
@@ -14,9 +14,9 @@ import {
14
14
  useResolvedKnobs,
15
15
  useGlyphColor,
16
16
  } from "@multiplatform.one/theme";
17
- import { useId, useRef, useState } from "react";
17
+ import { useState } from "react";
18
18
  import { Tooltip } from "@multiplatform.one/components";
19
- import { Popover, Text, View, XStack, YStack, isWeb, type TamaguiElement } from "tamagui";
19
+ import { Text, View, XStack, YStack } from "tamagui";
20
20
  import { t } from "../../shared/t";
21
21
  import type { DataTableColumnType, FilterOperator } from "../../types";
22
22
  import { iconSizeForToken } from "../../utils/chromeIcons";
@@ -67,11 +67,6 @@ export function ColumnHeaderFilter({
67
67
  const idleColor = useGlyphColor("$color11");
68
68
  const activeColor = useAccentOnSurface();
69
69
  const glyphColor = isFiltered ? activeColor : idleColor;
70
- // The nested Tooltip has its own Popper context. Keep this trigger and
71
- // editor anchored to the same instance rather than its nearest overlay.
72
- const popoverScope = useId();
73
- const triggerRef = useRef<TamaguiElement | null>(null);
74
- const returnFocusRef = useRef(true);
75
70
  ensureCompositeFocusRing();
76
71
  const iconPx = iconSizeForToken(String(knobProps.sizeToken));
77
72
  const [open, setOpen] = useState(false);
@@ -110,118 +105,96 @@ export function ColumnHeaderFilter({
110
105
  onFilterChange(undefined);
111
106
  };
112
107
 
113
- return (
114
- <Popover scope={popoverScope} open={open} onOpenChange={handleOpenChange} disableFocus>
115
- {/* Inherit the nearest Popover before entering Tooltip. An explicit
116
- scope makes Tamagui register web anchors only on mouse hover,
117
- leaving keyboard opens without a reference. */}
118
- <Popover.Anchor>
119
- <Tooltip content={isFiltered ? t("Edit filter") : t("Filter this column")}>
120
- <Popover.Trigger scope={popoverScope} asChild>
121
- {/* LC-54 amendment (2026-08-13): the grown press target NEVER
122
- paints — hover/press fills on this box spread across the full
123
- 44px floor and bled into the neighboring header rows via the
124
- negative outsets. Painted hover and keyboard focus feedback
125
- ride the glyph-scale ring inside
126
- (Chip dismiss anatomy). */}
127
- <View
128
- ref={triggerRef}
129
- cursor="pointer"
130
- {...pressTargetStyle()}
131
- alignItems="center"
132
- justifyContent="center"
133
- marginVertical={-FILTER_TRIGGER_OUTSET}
134
- marginHorizontal={-FILTER_TRIGGER_OUTSET}
135
- hitSlop={pressTargetHitSlop(FILTER_TRIGGER_VISUAL)}
136
- // Enabled glyphs keep readable ink; hue and weight distinguish
137
- // an applied filter from the secondary-color idle affordance.
138
- // Shared unpainted press-floor / painted glyph-ring anatomy.
139
- className="mp-chip-dismiss"
140
- tabIndex={0}
141
- onKeyDown={
142
- ((event: { key?: string; preventDefault(): void; stopPropagation(): void }) => {
143
- if (event.key !== "Enter" && event.key !== " ") return;
144
- event.preventDefault();
145
- event.stopPropagation();
146
- handleOpenChange(true);
147
- }) as unknown as () => void
148
- }
149
- onPress={(e) => {
150
- e.stopPropagation();
151
- handleOpenChange(true);
152
- }}
153
- role="button"
154
- aria-label={`Filter column ${columnLabel}`}
155
- >
156
- <View
157
- className="mp-chip-dismiss-ring"
158
- padding="$1"
159
- borderRadius="$2"
160
- alignItems="center"
161
- justifyContent="center"
162
- hoverStyle={{ backgroundColor: "$color4" }}
163
- pressStyle={{ backgroundColor: "$color5" }}
164
- >
165
- <FunnelIcon
166
- size={iconPx}
167
- color={glyphColor}
168
- weight={isFiltered ? "fill" : "regular"}
169
- />
170
- </View>
171
- </View>
172
- </Popover.Trigger>
173
- </Tooltip>
174
- </Popover.Anchor>
175
-
176
- <Popover.Content
177
- scope={popoverScope}
178
- onPointerDownOutside={() => {
179
- returnFocusRef.current = false;
180
- }}
181
- onCloseAutoFocus={(event) => {
182
- event.preventDefault();
183
- if (isWeb && returnFocusRef.current) {
184
- (triggerRef.current as HTMLElement | null)?.focus();
185
- }
186
- returnFocusRef.current = true;
108
+ // The panel owns the pointer toggle (mousedown) and the keyboard-synthesized
109
+ // click. The trigger only stops the click reaching the header's sort press
110
+ // and opens on Enter/Space, which a role=button div does not synthesize.
111
+ const trigger = (
112
+ <Tooltip content={isFiltered ? t("Edit filter") : t("Filter this column")}>
113
+ {/* LC-54 amendment (2026-08-13): the grown press target NEVER
114
+ paints — hover/press fills on this box spread across the full
115
+ 44px floor and bled into the neighboring header rows via the
116
+ negative outsets. Painted hover and keyboard focus feedback
117
+ ride the glyph-scale ring inside
118
+ (Chip dismiss anatomy). */}
119
+ <View
120
+ cursor="pointer"
121
+ {...pressTargetStyle()}
122
+ alignItems="center"
123
+ justifyContent="center"
124
+ marginVertical={-FILTER_TRIGGER_OUTSET}
125
+ marginHorizontal={-FILTER_TRIGGER_OUTSET}
126
+ hitSlop={pressTargetHitSlop(FILTER_TRIGGER_VISUAL)}
127
+ // Enabled glyphs keep readable ink; hue and weight distinguish
128
+ // an applied filter from the secondary-color idle affordance.
129
+ // Shared unpainted press-floor / painted glyph-ring anatomy.
130
+ className="mp-chip-dismiss"
131
+ tabIndex={0}
132
+ onKeyDown={
133
+ ((event: { key?: string; preventDefault(): void; stopPropagation(): void }) => {
134
+ if (event.key !== "Enter" && event.key !== " ") return;
135
+ event.preventDefault();
136
+ event.stopPropagation();
137
+ handleOpenChange(true);
138
+ }) as unknown as () => void
139
+ }
140
+ onPress={(e) => {
141
+ e.stopPropagation();
187
142
  }}
188
- {...knobProps.elevatedSurface}
189
- {...knobProps.panelPadding}
190
- minWidth={240}
191
- transition={knobProps.transition}
192
- enterStyle={{ y: -5, opacity: 0 }}
193
- exitStyle={{ y: -5, opacity: 0 }}
143
+ role="button"
144
+ aria-label={`Filter column ${columnLabel}`}
145
+ aria-haspopup="dialog"
146
+ aria-expanded={open}
194
147
  >
195
- <Popover.Arrow scope={popoverScope} borderColor="$borderColor" backgroundColor="$color1" />
148
+ <View
149
+ className="mp-chip-dismiss-ring"
150
+ padding="$1"
151
+ borderRadius="$2"
152
+ alignItems="center"
153
+ justifyContent="center"
154
+ hoverStyle={{ backgroundColor: "$color4" }}
155
+ pressStyle={{ backgroundColor: "$color5" }}
156
+ >
157
+ <FunnelIcon size={iconPx} color={glyphColor} weight={isFiltered ? "fill" : "regular"} />
158
+ </View>
159
+ </View>
160
+ </Tooltip>
161
+ );
196
162
 
197
- <YStack {...knobProps.gap}>
198
- <Text {...knobProps.label} fontWeight="400" color="$color11">
199
- {t("Filter: {{column}}", { column: columnLabel })}
200
- </Text>
163
+ return (
164
+ <FloatingPanel
165
+ open={open}
166
+ onOpenChange={handleOpenChange}
167
+ trigger={trigger}
168
+ triggerSizing="content"
169
+ widthMode="fit-content"
170
+ >
171
+ <YStack {...knobProps.gap} minWidth={240} data-dismiss-class="compose">
172
+ <Text {...knobProps.label} fontWeight="400" color="$color11">
173
+ {t("Filter: {{column}}", { column: columnLabel })}
174
+ </Text>
201
175
 
202
- {/* Shared operator/value editor (LC-16 — same one the toolbar filter uses) */}
203
- <FilterOperatorValueEditor
204
- fieldType={columnType}
205
- operator={operator}
206
- value={value}
207
- onOperatorChange={setOperator}
208
- onValueChange={setValue}
209
- options={options}
210
- />
176
+ {/* Shared operator/value editor (LC-16 — same one the toolbar filter uses) */}
177
+ <FilterOperatorValueEditor
178
+ fieldType={columnType}
179
+ operator={operator}
180
+ value={value}
181
+ onOperatorChange={setOperator}
182
+ onValueChange={setValue}
183
+ options={options}
184
+ />
211
185
 
212
- {/* Actions */}
213
- <XStack {...knobProps.gap} justifyContent="flex-end">
214
- {isFiltered && (
215
- <Button size={knobProps.sizeToken} onPress={handleClear}>
216
- {t("Clear")}
217
- </Button>
218
- )}
219
- <Button size={knobProps.sizeToken} onPress={handleApply}>
220
- {t("Apply")}
186
+ {/* Actions */}
187
+ <XStack {...knobProps.gap} justifyContent="flex-end">
188
+ {isFiltered && (
189
+ <Button size={knobProps.sizeToken} onPress={handleClear}>
190
+ {t("Clear")}
221
191
  </Button>
222
- </XStack>
223
- </YStack>
224
- </Popover.Content>
225
- </Popover>
192
+ )}
193
+ <Button size={knobProps.sizeToken} onPress={handleApply}>
194
+ {t("Apply")}
195
+ </Button>
196
+ </XStack>
197
+ </YStack>
198
+ </FloatingPanel>
226
199
  );
227
200
  }