@multiplatform.one/table 6.1.0 → 6.4.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 (1104) hide show
  1. package/README.md +125 -65
  2. package/dist/cjs/components/ChildTable/index.cjs +44 -9
  3. package/dist/cjs/components/ChildTable/index.native.js +56 -13
  4. package/dist/cjs/components/ChildTable/index.native.js.map +1 -1
  5. package/dist/cjs/components/ColumnHeaderFilter/index.cjs +27 -110
  6. package/dist/cjs/components/ColumnHeaderFilter/index.native.js +27 -119
  7. package/dist/cjs/components/ColumnHeaderFilter/index.native.js.map +1 -1
  8. package/dist/cjs/components/DataTable/DataTableCardControls.cjs +133 -0
  9. package/dist/cjs/components/DataTable/DataTableCardControls.native.js +140 -0
  10. package/dist/cjs/components/DataTable/DataTableCardControls.native.js.map +1 -0
  11. package/dist/cjs/components/DataTable/DataTableMobileCards.cjs +125 -59
  12. package/dist/cjs/components/DataTable/DataTableMobileCards.native.js +114 -49
  13. package/dist/cjs/components/DataTable/DataTableMobileCards.native.js.map +1 -1
  14. package/dist/cjs/components/DataTable/DataTableRoot.cjs +574 -170
  15. package/dist/cjs/components/DataTable/DataTableRoot.native.js +699 -178
  16. package/dist/cjs/components/DataTable/DataTableRoot.native.js.map +1 -1
  17. package/dist/cjs/components/DataTable/DataTableStateContext.native.js.map +1 -1
  18. package/dist/cjs/components/DataTable/DataTableVirtualized.cjs +78 -3
  19. package/dist/cjs/components/DataTable/DataTableVirtualized.native.js +86 -3
  20. package/dist/cjs/components/DataTable/DataTableVirtualized.native.js.map +1 -1
  21. package/dist/cjs/components/DataTable/index.cjs +2 -0
  22. package/dist/cjs/components/DataTable/index.native.js +170 -72
  23. package/dist/cjs/components/DataTable/index.native.js.map +1 -1
  24. package/dist/cjs/components/DataTableBulkActions/index.cjs +62 -146
  25. package/dist/cjs/components/DataTableBulkActions/index.native.js +77 -153
  26. package/dist/cjs/components/DataTableBulkActions/index.native.js.map +1 -1
  27. package/dist/cjs/components/DataTableCell/CellModalEditor.cjs +61 -8
  28. package/dist/cjs/components/DataTableCell/CellModalEditor.native.js +73 -66
  29. package/dist/cjs/components/DataTableCell/CellModalEditor.native.js.map +1 -1
  30. package/dist/cjs/components/DataTableCell/CellOptionsEditor.cjs +87 -0
  31. package/dist/cjs/components/DataTableCell/CellOptionsEditor.native.js +100 -0
  32. package/dist/cjs/components/DataTableCell/CellOptionsEditor.native.js.map +1 -0
  33. package/dist/cjs/components/DataTableCell/index.cjs +524 -147
  34. package/dist/cjs/components/DataTableCell/index.native.js +666 -210
  35. package/dist/cjs/components/DataTableCell/index.native.js.map +1 -1
  36. package/dist/cjs/components/DataTableColumnPinning/index.cjs +95 -24
  37. package/dist/cjs/components/DataTableColumnPinning/index.native.js +101 -25
  38. package/dist/cjs/components/DataTableColumnPinning/index.native.js.map +1 -1
  39. package/dist/cjs/components/DataTableDateFilter/index.cjs +385 -197
  40. package/dist/cjs/components/DataTableDateFilter/index.native.js +414 -213
  41. package/dist/cjs/components/DataTableDateFilter/index.native.js.map +1 -1
  42. package/dist/cjs/components/DataTableExport/index.cjs +223 -195
  43. package/dist/cjs/components/DataTableExport/index.native.js +318 -217
  44. package/dist/cjs/components/DataTableExport/index.native.js.map +1 -1
  45. package/dist/cjs/components/DataTableFilterButton/index.cjs +349 -0
  46. package/dist/cjs/components/DataTableFilterButton/index.native.js +402 -0
  47. package/dist/cjs/components/DataTableFilterButton/index.native.js.map +1 -0
  48. package/dist/cjs/components/DataTableFilterChips/index.cjs +120 -0
  49. package/dist/cjs/components/DataTableFilterChips/index.native.js +187 -0
  50. package/dist/cjs/components/DataTableFilterChips/index.native.js.map +1 -0
  51. package/dist/cjs/components/DataTableFilters/index.cjs +36 -31
  52. package/dist/cjs/components/DataTableFilters/index.native.js +36 -31
  53. package/dist/cjs/components/DataTableFilters/index.native.js.map +1 -1
  54. package/dist/cjs/components/DataTableGrouping/index.cjs +246 -189
  55. package/dist/cjs/components/DataTableGrouping/index.native.js +283 -203
  56. package/dist/cjs/components/DataTableGrouping/index.native.js.map +1 -1
  57. package/dist/cjs/components/DataTablePagination/index.cjs +103 -329
  58. package/dist/cjs/components/DataTablePagination/index.native.js +115 -377
  59. package/dist/cjs/components/DataTablePagination/index.native.js.map +1 -1
  60. package/dist/cjs/components/DataTableSearch/index.cjs +132 -155
  61. package/dist/cjs/components/DataTableSearch/index.native.js +164 -170
  62. package/dist/cjs/components/DataTableSearch/index.native.js.map +1 -1
  63. package/dist/cjs/components/DataTableToolbar/index.cjs +71 -116
  64. package/dist/cjs/components/DataTableToolbar/index.native.js +98 -123
  65. package/dist/cjs/components/DataTableToolbar/index.native.js.map +1 -1
  66. package/dist/cjs/components/DataTableViewOptions/index.cjs +73 -169
  67. package/dist/cjs/components/DataTableViewOptions/index.native.js +88 -184
  68. package/dist/cjs/components/DataTableViewOptions/index.native.js.map +1 -1
  69. package/dist/cjs/components/FilterManager.cjs +7 -5
  70. package/dist/cjs/components/FilterManager.native.js +21 -8
  71. package/dist/cjs/components/FilterManager.native.js.map +1 -1
  72. package/dist/cjs/components/FilterOperatorValueEditor/index.cjs +109 -0
  73. package/dist/cjs/components/FilterOperatorValueEditor/index.native.js +121 -0
  74. package/dist/cjs/components/FilterOperatorValueEditor/index.native.js.map +1 -0
  75. package/dist/cjs/components/SavedFilterDropdown.cjs +3 -3
  76. package/dist/cjs/components/SavedFilterDropdown.native.js +3 -3
  77. package/dist/cjs/components/SavedFilterDropdown.native.js.map +1 -1
  78. package/dist/cjs/components/SimpleTable/index.cjs +22 -15
  79. package/dist/cjs/components/SimpleTable/index.native.js +31 -19
  80. package/dist/cjs/components/SimpleTable/index.native.js.map +1 -1
  81. package/dist/cjs/components/TableInput/index.cjs +149 -49
  82. package/dist/cjs/components/TableInput/index.native.js +181 -71
  83. package/dist/cjs/components/TableInput/index.native.js.map +1 -1
  84. package/dist/cjs/components/TableInput/shared.cjs +36 -0
  85. package/dist/cjs/components/TableInput/shared.native.js +41 -0
  86. package/dist/cjs/components/TableInput/shared.native.js.map +1 -0
  87. package/dist/cjs/hooks/useDataTable.cjs +114 -21
  88. package/dist/cjs/hooks/useDataTable.native.js +126 -25
  89. package/dist/cjs/hooks/useDataTable.native.js.map +1 -1
  90. package/dist/cjs/hooks/useInfiniteRows.cjs +193 -0
  91. package/dist/cjs/hooks/useInfiniteRows.native.js +203 -0
  92. package/dist/cjs/hooks/useInfiniteRows.native.js.map +1 -0
  93. package/dist/cjs/hooks/useTableFiltering.cjs +14 -18
  94. package/dist/cjs/hooks/useTableFiltering.native.js +17 -23
  95. package/dist/cjs/hooks/useTableFiltering.native.js.map +1 -1
  96. package/dist/cjs/hooks/useTablePagination.cjs +2 -2
  97. package/dist/cjs/hooks/useTablePagination.native.js +2 -2
  98. package/dist/cjs/hooks/useTablePagination.native.js.map +1 -1
  99. package/dist/cjs/index.cjs +26 -1
  100. package/dist/cjs/index.native.js +25 -0
  101. package/dist/cjs/index.native.js.map +1 -1
  102. package/dist/cjs/shared/t.cjs +50 -0
  103. package/dist/cjs/shared/t.native.js +55 -0
  104. package/dist/cjs/shared/t.native.js.map +1 -0
  105. package/dist/cjs/utils/columnAlign.cjs +60 -0
  106. package/dist/cjs/utils/columnAlign.native.js +67 -0
  107. package/dist/cjs/utils/columnAlign.native.js.map +1 -0
  108. package/dist/cjs/utils/filterFields.cjs +185 -0
  109. package/dist/cjs/utils/filterFields.native.js +247 -0
  110. package/dist/cjs/utils/filterFields.native.js.map +1 -0
  111. package/dist/cjs/utils/filterUtils.cjs +39 -20
  112. package/dist/cjs/utils/filterUtils.native.js +39 -20
  113. package/dist/cjs/utils/filterUtils.native.js.map +1 -1
  114. package/dist/cjs/utils/paginationDefaults.cjs +32 -0
  115. package/dist/cjs/utils/paginationDefaults.native.js +35 -0
  116. package/dist/cjs/utils/paginationDefaults.native.js.map +1 -0
  117. package/dist/cjs/utils/urlStateUtils.cjs +2 -1
  118. package/dist/cjs/utils/urlStateUtils.native.js +2 -1
  119. package/dist/cjs/utils/urlStateUtils.native.js.map +1 -1
  120. package/dist/cjs/utils/viewData.cjs +45 -0
  121. package/dist/cjs/utils/viewData.native.js +69 -0
  122. package/dist/cjs/utils/viewData.native.js.map +1 -0
  123. package/dist/cjs/utils/withInterp.cjs +39 -0
  124. package/dist/cjs/utils/withInterp.native.js +42 -0
  125. package/dist/cjs/utils/withInterp.native.js.map +1 -0
  126. package/dist/esm/components/ChildTable/index.mjs +45 -10
  127. package/dist/esm/components/ChildTable/index.mjs.map +1 -1
  128. package/dist/esm/components/ChildTable/index.native.js +57 -14
  129. package/dist/esm/components/ChildTable/index.native.js.map +1 -1
  130. package/dist/esm/components/ColumnHeaderFilter/index.mjs +29 -111
  131. package/dist/esm/components/ColumnHeaderFilter/index.mjs.map +1 -1
  132. package/dist/esm/components/ColumnHeaderFilter/index.native.js +30 -121
  133. package/dist/esm/components/ColumnHeaderFilter/index.native.js.map +1 -1
  134. package/dist/esm/components/DataTable/DataTableCardControls.mjs +108 -0
  135. package/dist/esm/components/DataTable/DataTableCardControls.mjs.map +1 -0
  136. package/dist/esm/components/DataTable/DataTableCardControls.native.js +112 -0
  137. package/dist/esm/components/DataTable/DataTableCardControls.native.js.map +1 -0
  138. package/dist/esm/components/DataTable/DataTableMobileCards.mjs +128 -62
  139. package/dist/esm/components/DataTable/DataTableMobileCards.mjs.map +1 -1
  140. package/dist/esm/components/DataTable/DataTableMobileCards.native.js +117 -52
  141. package/dist/esm/components/DataTable/DataTableMobileCards.native.js.map +1 -1
  142. package/dist/esm/components/DataTable/DataTableRoot.mjs +578 -174
  143. package/dist/esm/components/DataTable/DataTableRoot.mjs.map +1 -1
  144. package/dist/esm/components/DataTable/DataTableRoot.native.js +703 -182
  145. package/dist/esm/components/DataTable/DataTableRoot.native.js.map +1 -1
  146. package/dist/esm/components/DataTable/DataTableStateContext.mjs.map +1 -1
  147. package/dist/esm/components/DataTable/DataTableStateContext.native.js.map +1 -1
  148. package/dist/esm/components/DataTable/DataTableVirtualized.mjs +79 -4
  149. package/dist/esm/components/DataTable/DataTableVirtualized.mjs.map +1 -1
  150. package/dist/esm/components/DataTable/DataTableVirtualized.native.js +87 -4
  151. package/dist/esm/components/DataTable/DataTableVirtualized.native.js.map +1 -1
  152. package/dist/esm/components/DataTable/index.mjs +2 -0
  153. package/dist/esm/components/DataTable/index.mjs.map +1 -1
  154. package/dist/esm/components/DataTable/index.native.js +172 -74
  155. package/dist/esm/components/DataTable/index.native.js.map +1 -1
  156. package/dist/esm/components/DataTableBulkActions/index.mjs +65 -147
  157. package/dist/esm/components/DataTableBulkActions/index.mjs.map +1 -1
  158. package/dist/esm/components/DataTableBulkActions/index.native.js +80 -154
  159. package/dist/esm/components/DataTableBulkActions/index.native.js.map +1 -1
  160. package/dist/esm/components/DataTableCell/CellModalEditor.mjs +62 -9
  161. package/dist/esm/components/DataTableCell/CellModalEditor.mjs.map +1 -1
  162. package/dist/esm/components/DataTableCell/CellModalEditor.native.js +74 -67
  163. package/dist/esm/components/DataTableCell/CellModalEditor.native.js.map +1 -1
  164. package/dist/esm/components/DataTableCell/CellOptionsEditor.mjs +62 -0
  165. package/dist/esm/components/DataTableCell/CellOptionsEditor.mjs.map +1 -0
  166. package/dist/esm/components/DataTableCell/CellOptionsEditor.native.js +72 -0
  167. package/dist/esm/components/DataTableCell/CellOptionsEditor.native.js.map +1 -0
  168. package/dist/esm/components/DataTableCell/index.mjs +527 -149
  169. package/dist/esm/components/DataTableCell/index.mjs.map +1 -1
  170. package/dist/esm/components/DataTableCell/index.native.js +670 -213
  171. package/dist/esm/components/DataTableCell/index.native.js.map +1 -1
  172. package/dist/esm/components/DataTableColumnPinning/index.mjs +99 -28
  173. package/dist/esm/components/DataTableColumnPinning/index.mjs.map +1 -1
  174. package/dist/esm/components/DataTableColumnPinning/index.native.js +105 -29
  175. package/dist/esm/components/DataTableColumnPinning/index.native.js.map +1 -1
  176. package/dist/esm/components/DataTableDateFilter/index.mjs +387 -200
  177. package/dist/esm/components/DataTableDateFilter/index.mjs.map +1 -1
  178. package/dist/esm/components/DataTableDateFilter/index.native.js +416 -216
  179. package/dist/esm/components/DataTableDateFilter/index.native.js.map +1 -1
  180. package/dist/esm/components/DataTableExport/index.mjs +223 -195
  181. package/dist/esm/components/DataTableExport/index.mjs.map +1 -1
  182. package/dist/esm/components/DataTableExport/index.native.js +318 -217
  183. package/dist/esm/components/DataTableExport/index.native.js.map +1 -1
  184. package/dist/esm/components/DataTableFilterButton/index.mjs +324 -0
  185. package/dist/esm/components/DataTableFilterButton/index.mjs.map +1 -0
  186. package/dist/esm/components/DataTableFilterButton/index.native.js +374 -0
  187. package/dist/esm/components/DataTableFilterButton/index.native.js.map +1 -0
  188. package/dist/esm/components/DataTableFilterChips/index.mjs +95 -0
  189. package/dist/esm/components/DataTableFilterChips/index.mjs.map +1 -0
  190. package/dist/esm/components/DataTableFilterChips/index.native.js +159 -0
  191. package/dist/esm/components/DataTableFilterChips/index.native.js.map +1 -0
  192. package/dist/esm/components/DataTableFilters/index.mjs +36 -31
  193. package/dist/esm/components/DataTableFilters/index.mjs.map +1 -1
  194. package/dist/esm/components/DataTableFilters/index.native.js +36 -31
  195. package/dist/esm/components/DataTableFilters/index.native.js.map +1 -1
  196. package/dist/esm/components/DataTableGrouping/index.mjs +248 -191
  197. package/dist/esm/components/DataTableGrouping/index.mjs.map +1 -1
  198. package/dist/esm/components/DataTableGrouping/index.native.js +285 -205
  199. package/dist/esm/components/DataTableGrouping/index.native.js.map +1 -1
  200. package/dist/esm/components/DataTablePagination/index.mjs +105 -329
  201. package/dist/esm/components/DataTablePagination/index.mjs.map +1 -1
  202. package/dist/esm/components/DataTablePagination/index.native.js +117 -366
  203. package/dist/esm/components/DataTablePagination/index.native.js.map +1 -1
  204. package/dist/esm/components/DataTableSearch/index.mjs +135 -156
  205. package/dist/esm/components/DataTableSearch/index.mjs.map +1 -1
  206. package/dist/esm/components/DataTableSearch/index.native.js +167 -171
  207. package/dist/esm/components/DataTableSearch/index.native.js.map +1 -1
  208. package/dist/esm/components/DataTableToolbar/index.mjs +75 -118
  209. package/dist/esm/components/DataTableToolbar/index.mjs.map +1 -1
  210. package/dist/esm/components/DataTableToolbar/index.native.js +102 -125
  211. package/dist/esm/components/DataTableToolbar/index.native.js.map +1 -1
  212. package/dist/esm/components/DataTableViewOptions/index.mjs +75 -171
  213. package/dist/esm/components/DataTableViewOptions/index.mjs.map +1 -1
  214. package/dist/esm/components/DataTableViewOptions/index.native.js +90 -186
  215. package/dist/esm/components/DataTableViewOptions/index.native.js.map +1 -1
  216. package/dist/esm/components/FilterManager.mjs +7 -5
  217. package/dist/esm/components/FilterManager.mjs.map +1 -1
  218. package/dist/esm/components/FilterManager.native.js +21 -8
  219. package/dist/esm/components/FilterManager.native.js.map +1 -1
  220. package/dist/esm/components/FilterOperatorValueEditor/index.mjs +84 -0
  221. package/dist/esm/components/FilterOperatorValueEditor/index.mjs.map +1 -0
  222. package/dist/esm/components/FilterOperatorValueEditor/index.native.js +93 -0
  223. package/dist/esm/components/FilterOperatorValueEditor/index.native.js.map +1 -0
  224. package/dist/esm/components/SavedFilterDropdown.mjs +3 -3
  225. package/dist/esm/components/SavedFilterDropdown.mjs.map +1 -1
  226. package/dist/esm/components/SavedFilterDropdown.native.js +3 -3
  227. package/dist/esm/components/SavedFilterDropdown.native.js.map +1 -1
  228. package/dist/esm/components/SimpleTable/index.mjs +22 -15
  229. package/dist/esm/components/SimpleTable/index.mjs.map +1 -1
  230. package/dist/esm/components/SimpleTable/index.native.js +31 -19
  231. package/dist/esm/components/SimpleTable/index.native.js.map +1 -1
  232. package/dist/esm/components/TableInput/index.mjs +149 -49
  233. package/dist/esm/components/TableInput/index.mjs.map +1 -1
  234. package/dist/esm/components/TableInput/index.native.js +181 -71
  235. package/dist/esm/components/TableInput/index.native.js.map +1 -1
  236. package/dist/esm/components/TableInput/shared.mjs +9 -0
  237. package/dist/esm/components/TableInput/shared.mjs.map +1 -0
  238. package/dist/esm/components/TableInput/shared.native.js +11 -0
  239. package/dist/esm/components/TableInput/shared.native.js.map +1 -0
  240. package/dist/esm/hooks/useDataTable.mjs +115 -22
  241. package/dist/esm/hooks/useDataTable.mjs.map +1 -1
  242. package/dist/esm/hooks/useDataTable.native.js +127 -26
  243. package/dist/esm/hooks/useDataTable.native.js.map +1 -1
  244. package/dist/esm/hooks/useInfiniteRows.mjs +168 -0
  245. package/dist/esm/hooks/useInfiniteRows.mjs.map +1 -0
  246. package/dist/esm/hooks/useInfiniteRows.native.js +175 -0
  247. package/dist/esm/hooks/useInfiniteRows.native.js.map +1 -0
  248. package/dist/esm/hooks/useTableFiltering.mjs +14 -18
  249. package/dist/esm/hooks/useTableFiltering.mjs.map +1 -1
  250. package/dist/esm/hooks/useTableFiltering.native.js +17 -23
  251. package/dist/esm/hooks/useTableFiltering.native.js.map +1 -1
  252. package/dist/esm/hooks/useTablePagination.mjs +2 -2
  253. package/dist/esm/hooks/useTablePagination.mjs.map +1 -1
  254. package/dist/esm/hooks/useTablePagination.native.js +2 -2
  255. package/dist/esm/hooks/useTablePagination.native.js.map +1 -1
  256. package/dist/esm/index.mjs +8 -1
  257. package/dist/esm/index.mjs.map +1 -1
  258. package/dist/esm/index.native.js +8 -1
  259. package/dist/esm/index.native.js.map +1 -1
  260. package/dist/esm/shared/t.mjs +14 -0
  261. package/dist/esm/shared/t.mjs.map +1 -0
  262. package/dist/esm/shared/t.native.js +16 -0
  263. package/dist/esm/shared/t.native.js.map +1 -0
  264. package/dist/esm/utils/columnAlign.mjs +34 -0
  265. package/dist/esm/utils/columnAlign.mjs.map +1 -0
  266. package/dist/esm/utils/columnAlign.native.js +38 -0
  267. package/dist/esm/utils/columnAlign.native.js.map +1 -0
  268. package/dist/esm/utils/filterFields.mjs +149 -0
  269. package/dist/esm/utils/filterFields.mjs.map +1 -0
  270. package/dist/esm/utils/filterFields.native.js +208 -0
  271. package/dist/esm/utils/filterFields.native.js.map +1 -0
  272. package/dist/esm/utils/filterUtils.mjs +39 -20
  273. package/dist/esm/utils/filterUtils.mjs.map +1 -1
  274. package/dist/esm/utils/filterUtils.native.js +39 -20
  275. package/dist/esm/utils/filterUtils.native.js.map +1 -1
  276. package/dist/esm/utils/paginationDefaults.mjs +5 -0
  277. package/dist/esm/utils/paginationDefaults.mjs.map +1 -0
  278. package/dist/esm/utils/paginationDefaults.native.js +5 -0
  279. package/dist/esm/utils/paginationDefaults.native.js.map +1 -0
  280. package/dist/esm/utils/urlStateUtils.mjs +2 -1
  281. package/dist/esm/utils/urlStateUtils.mjs.map +1 -1
  282. package/dist/esm/utils/urlStateUtils.native.js +2 -1
  283. package/dist/esm/utils/urlStateUtils.native.js.map +1 -1
  284. package/dist/esm/utils/viewData.mjs +20 -0
  285. package/dist/esm/utils/viewData.mjs.map +1 -0
  286. package/dist/esm/utils/viewData.native.js +41 -0
  287. package/dist/esm/utils/viewData.native.js.map +1 -0
  288. package/dist/esm/utils/withInterp.mjs +13 -0
  289. package/dist/esm/utils/withInterp.mjs.map +1 -0
  290. package/dist/esm/utils/withInterp.native.js +13 -0
  291. package/dist/esm/utils/withInterp.native.js.map +1 -0
  292. package/dist/jsx/components/ChildTable/index.mjs +45 -10
  293. package/dist/jsx/components/ChildTable/index.mjs.map +1 -1
  294. package/dist/jsx/components/ChildTable/index.native.js +56 -13
  295. package/dist/jsx/components/ChildTable/index.native.js.map +1 -1
  296. package/dist/jsx/components/ColumnHeaderFilter/index.mjs +29 -111
  297. package/dist/jsx/components/ColumnHeaderFilter/index.mjs.map +1 -1
  298. package/dist/jsx/components/ColumnHeaderFilter/index.native.js +27 -119
  299. package/dist/jsx/components/ColumnHeaderFilter/index.native.js.map +1 -1
  300. package/dist/jsx/components/DataTable/DataTableCardControls.mjs +108 -0
  301. package/dist/jsx/components/DataTable/DataTableCardControls.mjs.map +1 -0
  302. package/dist/jsx/components/DataTable/DataTableCardControls.native.js +140 -0
  303. package/dist/jsx/components/DataTable/DataTableCardControls.native.js.map +1 -0
  304. package/dist/jsx/components/DataTable/DataTableMobileCards.mjs +128 -62
  305. package/dist/jsx/components/DataTable/DataTableMobileCards.mjs.map +1 -1
  306. package/dist/jsx/components/DataTable/DataTableMobileCards.native.js +114 -49
  307. package/dist/jsx/components/DataTable/DataTableMobileCards.native.js.map +1 -1
  308. package/dist/jsx/components/DataTable/DataTableRoot.mjs +578 -174
  309. package/dist/jsx/components/DataTable/DataTableRoot.mjs.map +1 -1
  310. package/dist/jsx/components/DataTable/DataTableRoot.native.js +699 -178
  311. package/dist/jsx/components/DataTable/DataTableRoot.native.js.map +1 -1
  312. package/dist/jsx/components/DataTable/DataTableStateContext.mjs.map +1 -1
  313. package/dist/jsx/components/DataTable/DataTableStateContext.native.js.map +1 -1
  314. package/dist/jsx/components/DataTable/DataTableVirtualized.mjs +79 -4
  315. package/dist/jsx/components/DataTable/DataTableVirtualized.mjs.map +1 -1
  316. package/dist/jsx/components/DataTable/DataTableVirtualized.native.js +86 -3
  317. package/dist/jsx/components/DataTable/DataTableVirtualized.native.js.map +1 -1
  318. package/dist/jsx/components/DataTable/index.mjs +2 -0
  319. package/dist/jsx/components/DataTable/index.mjs.map +1 -1
  320. package/dist/jsx/components/DataTable/index.native.js +170 -72
  321. package/dist/jsx/components/DataTable/index.native.js.map +1 -1
  322. package/dist/jsx/components/DataTableBulkActions/index.mjs +65 -147
  323. package/dist/jsx/components/DataTableBulkActions/index.mjs.map +1 -1
  324. package/dist/jsx/components/DataTableBulkActions/index.native.js +77 -153
  325. package/dist/jsx/components/DataTableBulkActions/index.native.js.map +1 -1
  326. package/dist/jsx/components/DataTableCell/CellModalEditor.mjs +62 -9
  327. package/dist/jsx/components/DataTableCell/CellModalEditor.mjs.map +1 -1
  328. package/dist/jsx/components/DataTableCell/CellModalEditor.native.js +73 -66
  329. package/dist/jsx/components/DataTableCell/CellModalEditor.native.js.map +1 -1
  330. package/dist/jsx/components/DataTableCell/CellOptionsEditor.mjs +62 -0
  331. package/dist/jsx/components/DataTableCell/CellOptionsEditor.mjs.map +1 -0
  332. package/dist/jsx/components/DataTableCell/CellOptionsEditor.native.js +100 -0
  333. package/dist/jsx/components/DataTableCell/CellOptionsEditor.native.js.map +1 -0
  334. package/dist/jsx/components/DataTableCell/index.mjs +527 -149
  335. package/dist/jsx/components/DataTableCell/index.mjs.map +1 -1
  336. package/dist/jsx/components/DataTableCell/index.native.js +666 -210
  337. package/dist/jsx/components/DataTableCell/index.native.js.map +1 -1
  338. package/dist/jsx/components/DataTableColumnPinning/index.mjs +99 -28
  339. package/dist/jsx/components/DataTableColumnPinning/index.mjs.map +1 -1
  340. package/dist/jsx/components/DataTableColumnPinning/index.native.js +101 -25
  341. package/dist/jsx/components/DataTableColumnPinning/index.native.js.map +1 -1
  342. package/dist/jsx/components/DataTableDateFilter/index.mjs +387 -200
  343. package/dist/jsx/components/DataTableDateFilter/index.mjs.map +1 -1
  344. package/dist/jsx/components/DataTableDateFilter/index.native.js +414 -213
  345. package/dist/jsx/components/DataTableDateFilter/index.native.js.map +1 -1
  346. package/dist/jsx/components/DataTableExport/index.mjs +223 -195
  347. package/dist/jsx/components/DataTableExport/index.mjs.map +1 -1
  348. package/dist/jsx/components/DataTableExport/index.native.js +318 -217
  349. package/dist/jsx/components/DataTableExport/index.native.js.map +1 -1
  350. package/dist/jsx/components/DataTableFilterButton/index.mjs +324 -0
  351. package/dist/jsx/components/DataTableFilterButton/index.mjs.map +1 -0
  352. package/dist/jsx/components/DataTableFilterButton/index.native.js +402 -0
  353. package/dist/jsx/components/DataTableFilterButton/index.native.js.map +1 -0
  354. package/dist/jsx/components/DataTableFilterChips/index.mjs +95 -0
  355. package/dist/jsx/components/DataTableFilterChips/index.mjs.map +1 -0
  356. package/dist/jsx/components/DataTableFilterChips/index.native.js +187 -0
  357. package/dist/jsx/components/DataTableFilterChips/index.native.js.map +1 -0
  358. package/dist/jsx/components/DataTableFilters/index.mjs +36 -31
  359. package/dist/jsx/components/DataTableFilters/index.mjs.map +1 -1
  360. package/dist/jsx/components/DataTableFilters/index.native.js +36 -31
  361. package/dist/jsx/components/DataTableFilters/index.native.js.map +1 -1
  362. package/dist/jsx/components/DataTableGrouping/index.mjs +248 -191
  363. package/dist/jsx/components/DataTableGrouping/index.mjs.map +1 -1
  364. package/dist/jsx/components/DataTableGrouping/index.native.js +283 -203
  365. package/dist/jsx/components/DataTableGrouping/index.native.js.map +1 -1
  366. package/dist/jsx/components/DataTablePagination/index.mjs +105 -329
  367. package/dist/jsx/components/DataTablePagination/index.mjs.map +1 -1
  368. package/dist/jsx/components/DataTablePagination/index.native.js +115 -377
  369. package/dist/jsx/components/DataTablePagination/index.native.js.map +1 -1
  370. package/dist/jsx/components/DataTableSearch/index.mjs +135 -156
  371. package/dist/jsx/components/DataTableSearch/index.mjs.map +1 -1
  372. package/dist/jsx/components/DataTableSearch/index.native.js +164 -170
  373. package/dist/jsx/components/DataTableSearch/index.native.js.map +1 -1
  374. package/dist/jsx/components/DataTableToolbar/index.mjs +75 -118
  375. package/dist/jsx/components/DataTableToolbar/index.mjs.map +1 -1
  376. package/dist/jsx/components/DataTableToolbar/index.native.js +98 -123
  377. package/dist/jsx/components/DataTableToolbar/index.native.js.map +1 -1
  378. package/dist/jsx/components/DataTableViewOptions/index.mjs +75 -171
  379. package/dist/jsx/components/DataTableViewOptions/index.mjs.map +1 -1
  380. package/dist/jsx/components/DataTableViewOptions/index.native.js +88 -184
  381. package/dist/jsx/components/DataTableViewOptions/index.native.js.map +1 -1
  382. package/dist/jsx/components/FilterManager.mjs +7 -5
  383. package/dist/jsx/components/FilterManager.mjs.map +1 -1
  384. package/dist/jsx/components/FilterManager.native.js +21 -8
  385. package/dist/jsx/components/FilterManager.native.js.map +1 -1
  386. package/dist/jsx/components/FilterOperatorValueEditor/index.mjs +84 -0
  387. package/dist/jsx/components/FilterOperatorValueEditor/index.mjs.map +1 -0
  388. package/dist/jsx/components/FilterOperatorValueEditor/index.native.js +121 -0
  389. package/dist/jsx/components/FilterOperatorValueEditor/index.native.js.map +1 -0
  390. package/dist/jsx/components/SavedFilterDropdown.mjs +3 -3
  391. package/dist/jsx/components/SavedFilterDropdown.mjs.map +1 -1
  392. package/dist/jsx/components/SavedFilterDropdown.native.js +3 -3
  393. package/dist/jsx/components/SavedFilterDropdown.native.js.map +1 -1
  394. package/dist/jsx/components/SimpleTable/index.mjs +22 -15
  395. package/dist/jsx/components/SimpleTable/index.mjs.map +1 -1
  396. package/dist/jsx/components/SimpleTable/index.native.js +31 -19
  397. package/dist/jsx/components/SimpleTable/index.native.js.map +1 -1
  398. package/dist/jsx/components/TableInput/index.mjs +149 -49
  399. package/dist/jsx/components/TableInput/index.mjs.map +1 -1
  400. package/dist/jsx/components/TableInput/index.native.js +181 -71
  401. package/dist/jsx/components/TableInput/index.native.js.map +1 -1
  402. package/dist/jsx/components/TableInput/shared.mjs +9 -0
  403. package/dist/jsx/components/TableInput/shared.mjs.map +1 -0
  404. package/dist/jsx/components/TableInput/shared.native.js +41 -0
  405. package/dist/jsx/components/TableInput/shared.native.js.map +1 -0
  406. package/dist/jsx/hooks/useDataTable.mjs +115 -22
  407. package/dist/jsx/hooks/useDataTable.mjs.map +1 -1
  408. package/dist/jsx/hooks/useDataTable.native.js +126 -25
  409. package/dist/jsx/hooks/useDataTable.native.js.map +1 -1
  410. package/dist/jsx/hooks/useInfiniteRows.mjs +168 -0
  411. package/dist/jsx/hooks/useInfiniteRows.mjs.map +1 -0
  412. package/dist/jsx/hooks/useInfiniteRows.native.js +203 -0
  413. package/dist/jsx/hooks/useInfiniteRows.native.js.map +1 -0
  414. package/dist/jsx/hooks/useTableFiltering.mjs +14 -18
  415. package/dist/jsx/hooks/useTableFiltering.mjs.map +1 -1
  416. package/dist/jsx/hooks/useTableFiltering.native.js +17 -23
  417. package/dist/jsx/hooks/useTableFiltering.native.js.map +1 -1
  418. package/dist/jsx/hooks/useTablePagination.mjs +2 -2
  419. package/dist/jsx/hooks/useTablePagination.mjs.map +1 -1
  420. package/dist/jsx/hooks/useTablePagination.native.js +2 -2
  421. package/dist/jsx/hooks/useTablePagination.native.js.map +1 -1
  422. package/dist/jsx/index.js +8 -1
  423. package/dist/jsx/index.js.map +1 -1
  424. package/dist/jsx/index.mjs +8 -1
  425. package/dist/jsx/index.mjs.map +1 -1
  426. package/dist/jsx/index.native.js +25 -0
  427. package/dist/jsx/index.native.js.map +1 -1
  428. package/dist/jsx/shared/t.mjs +14 -0
  429. package/dist/jsx/shared/t.mjs.map +1 -0
  430. package/dist/jsx/shared/t.native.js +55 -0
  431. package/dist/jsx/shared/t.native.js.map +1 -0
  432. package/dist/jsx/utils/columnAlign.mjs +34 -0
  433. package/dist/jsx/utils/columnAlign.mjs.map +1 -0
  434. package/dist/jsx/utils/columnAlign.native.js +67 -0
  435. package/dist/jsx/utils/columnAlign.native.js.map +1 -0
  436. package/dist/jsx/utils/filterFields.mjs +149 -0
  437. package/dist/jsx/utils/filterFields.mjs.map +1 -0
  438. package/dist/jsx/utils/filterFields.native.js +247 -0
  439. package/dist/jsx/utils/filterFields.native.js.map +1 -0
  440. package/dist/jsx/utils/filterUtils.mjs +39 -20
  441. package/dist/jsx/utils/filterUtils.mjs.map +1 -1
  442. package/dist/jsx/utils/filterUtils.native.js +39 -20
  443. package/dist/jsx/utils/filterUtils.native.js.map +1 -1
  444. package/dist/jsx/utils/paginationDefaults.mjs +5 -0
  445. package/dist/jsx/utils/paginationDefaults.mjs.map +1 -0
  446. package/dist/jsx/utils/paginationDefaults.native.js +35 -0
  447. package/dist/jsx/utils/paginationDefaults.native.js.map +1 -0
  448. package/dist/jsx/utils/urlStateUtils.mjs +2 -1
  449. package/dist/jsx/utils/urlStateUtils.mjs.map +1 -1
  450. package/dist/jsx/utils/urlStateUtils.native.js +2 -1
  451. package/dist/jsx/utils/urlStateUtils.native.js.map +1 -1
  452. package/dist/jsx/utils/viewData.mjs +20 -0
  453. package/dist/jsx/utils/viewData.mjs.map +1 -0
  454. package/dist/jsx/utils/viewData.native.js +69 -0
  455. package/dist/jsx/utils/viewData.native.js.map +1 -0
  456. package/dist/jsx/utils/withInterp.mjs +13 -0
  457. package/dist/jsx/utils/withInterp.mjs.map +1 -0
  458. package/dist/jsx/utils/withInterp.native.js +42 -0
  459. package/dist/jsx/utils/withInterp.native.js.map +1 -0
  460. package/package.json +29 -19
  461. package/src/components/ChildTable/index.tsx +70 -9
  462. package/src/components/ColumnHeaderFilter/index.tsx +43 -161
  463. package/src/components/DataTable/DataTable.spec.tsx +347 -0
  464. package/src/components/DataTable/DataTable.stories.tsx +363 -9
  465. package/src/components/DataTable/DataTableCardControls.tsx +148 -0
  466. package/src/components/DataTable/DataTableMobileCards.tsx +153 -80
  467. package/src/components/DataTable/DataTableRoot.tsx +847 -181
  468. package/src/components/DataTable/DataTableStateContext.ts +24 -1
  469. package/src/components/DataTable/DataTableVirtualized.tsx +98 -4
  470. package/src/components/DataTable/FieldsInCells.stories.tsx +296 -6
  471. package/src/components/DataTable/cardLayout.spec.tsx +294 -0
  472. package/src/components/DataTable/chromeInterplay.spec.tsx +282 -0
  473. package/src/components/DataTable/compoundComponent.spec.tsx +6 -1
  474. package/src/components/DataTable/disabledContract.spec.tsx +242 -0
  475. package/src/components/DataTable/expandCaretRtl.spec.tsx +80 -0
  476. package/src/components/DataTable/headerSorting.spec.tsx +155 -0
  477. package/src/components/DataTable/index.native.tsx +220 -77
  478. package/src/components/DataTable/index.tsx +2 -0
  479. package/src/components/DataTable/infiniteMode.spec.tsx +118 -0
  480. package/src/components/DataTable/pinningGeometry.spec.tsx +144 -0
  481. package/src/components/DataTable/rowActionLabels.spec.tsx +97 -0
  482. package/src/components/DataTable/virtualizedGrouping.spec.tsx +99 -0
  483. package/src/components/DataTableBulkActions/DataTableBulkActions.spec.tsx +276 -3
  484. package/src/components/DataTableBulkActions/DataTableBulkActions.stories.tsx +1 -0
  485. package/src/components/DataTableBulkActions/index.tsx +119 -184
  486. package/src/components/DataTableCell/CellModalEditor.native.tsx +116 -0
  487. package/src/components/DataTableCell/CellModalEditor.tsx +83 -11
  488. package/src/components/DataTableCell/CellOptionsEditor.tsx +91 -0
  489. package/src/components/DataTableCell/DataTableCell.stories.tsx +514 -9
  490. package/src/components/DataTableCell/cellDraftPolicy.spec.tsx +638 -0
  491. package/src/components/DataTableCell/dataTableCell.spec.tsx +174 -26
  492. package/src/components/DataTableCell/index.tsx +730 -191
  493. package/src/components/DataTableColumnPinning/DataTableColumnPinning.stories.tsx +14 -0
  494. package/src/components/DataTableColumnPinning/index.tsx +130 -36
  495. package/src/components/DataTableDateFilter/DataTableDateFilter.spec.tsx +234 -80
  496. package/src/components/DataTableDateFilter/DataTableDateFilter.stories.tsx +7 -32
  497. package/src/components/DataTableDateFilter/index.tsx +357 -160
  498. package/src/components/DataTableExport/DataTableExport.spec.tsx +225 -8
  499. package/src/components/DataTableExport/index.tsx +241 -186
  500. package/src/components/DataTableFilterButton/index.tsx +406 -0
  501. package/src/components/DataTableFilterChips/DataTableFilterChips.spec.tsx +190 -0
  502. package/src/components/DataTableFilterChips/index.tsx +127 -0
  503. package/src/components/DataTableFilters/index.tsx +39 -31
  504. package/src/components/DataTableGrouping/DataTableGrouping.spec.tsx +173 -1
  505. package/src/components/DataTableGrouping/index.tsx +233 -140
  506. package/src/components/DataTablePagination/DataTablePagination.spec.tsx +91 -12
  507. package/src/components/DataTablePagination/DataTablePagination.stories.tsx +182 -6
  508. package/src/components/DataTablePagination/index.tsx +97 -324
  509. package/src/components/DataTableSearch/DataTableSearch.spec.tsx +14 -14
  510. package/src/components/DataTableSearch/index.tsx +106 -118
  511. package/src/components/DataTableToolbar/DataTableToolbar.spec.tsx +51 -11
  512. package/src/components/DataTableToolbar/DataTableToolbar.stories.tsx +205 -8
  513. package/src/components/DataTableToolbar/index.tsx +86 -123
  514. package/src/components/DataTableViewOptions/DataTableViewOptions.spec.tsx +5 -5
  515. package/src/components/DataTableViewOptions/DataTableViewOptions.stories.tsx +41 -3
  516. package/src/components/DataTableViewOptions/index.tsx +89 -183
  517. package/src/components/FilterManager.spec.tsx +7 -4
  518. package/src/components/FilterManager.tsx +25 -5
  519. package/src/components/FilterOperatorValueEditor/index.tsx +124 -0
  520. package/src/components/SavedFilterDropdown.tsx +7 -5
  521. package/src/components/SimpleTable/SimpleTable.stories.tsx +114 -0
  522. package/src/components/SimpleTable/index.tsx +35 -17
  523. package/src/components/SimpleTable/simpleTable.spec.tsx +25 -5
  524. package/src/components/Table/Table.stories.tsx +105 -0
  525. package/src/components/Table/accessibility.spec.tsx +24 -8
  526. package/src/components/TableInput/TableInput.stories.tsx +266 -8
  527. package/src/components/TableInput/index.native.tsx +202 -51
  528. package/src/components/TableInput/index.tsx +236 -56
  529. package/src/components/TableInput/shared.ts +20 -0
  530. package/src/components/TableInput/tableInput.spec.tsx +458 -0
  531. package/src/components/componentConsistency.spec.tsx +19 -13
  532. package/src/hooks/hookDecomposition.spec.ts +35 -1
  533. package/src/hooks/useDataTable.ts +169 -24
  534. package/src/hooks/useInfiniteRows.spec.tsx +215 -0
  535. package/src/hooks/useInfiniteRows.ts +242 -0
  536. package/src/hooks/useTableFiltering.ts +22 -21
  537. package/src/hooks/useTablePagination.ts +2 -3
  538. package/src/index.ts +37 -1
  539. package/src/shared/t.ts +24 -0
  540. package/src/types.ts +217 -5
  541. package/src/utils/columnAlign.spec.ts +53 -0
  542. package/src/utils/columnAlign.ts +60 -0
  543. package/src/utils/filterFields.spec.ts +237 -0
  544. package/src/utils/filterFields.ts +273 -0
  545. package/src/utils/filterUtils.ts +34 -24
  546. package/src/utils/filterUtilsContracts.spec.ts +190 -0
  547. package/src/utils/paginationDefaults.spec.ts +43 -0
  548. package/src/utils/paginationDefaults.ts +21 -0
  549. package/src/utils/urlStateUtils.spec.ts +2 -2
  550. package/src/utils/urlStateUtils.ts +2 -1
  551. package/src/utils/viewData.ts +27 -0
  552. package/src/utils/withInterp.spec.ts +30 -0
  553. package/src/utils/withInterp.ts +31 -0
  554. package/types/components/ChildTable/index.d.ts +28 -0
  555. package/types/components/ChildTable/index.d.ts.map +1 -0
  556. package/types/components/ColumnHeaderFilter/index.d.ts +23 -0
  557. package/types/components/ColumnHeaderFilter/index.d.ts.map +1 -0
  558. package/types/components/DataTable/DataTableCardControls.d.ts +30 -0
  559. package/types/components/DataTable/DataTableCardControls.d.ts.map +1 -0
  560. package/types/components/DataTable/DataTableContext.d.ts +11 -0
  561. package/types/components/DataTable/DataTableContext.d.ts.map +1 -0
  562. package/types/components/DataTable/DataTableMobileCards.d.ts +37 -0
  563. package/types/components/DataTable/DataTableMobileCards.d.ts.map +1 -0
  564. package/types/components/DataTable/DataTableRoot.d.ts +22 -0
  565. package/types/components/DataTable/DataTableRoot.d.ts.map +1 -0
  566. package/types/components/DataTable/DataTableStateContext.d.ts +77 -0
  567. package/types/components/DataTable/DataTableStateContext.d.ts.map +1 -0
  568. package/types/components/DataTable/DataTableVirtualized.d.ts +36 -0
  569. package/types/components/DataTable/DataTableVirtualized.d.ts.map +1 -0
  570. package/types/components/DataTable/index.d.ts +42 -0
  571. package/types/components/DataTable/index.d.ts.map +1 -0
  572. package/types/components/DataTable/index.native.d.ts +33 -0
  573. package/types/components/DataTable/index.native.d.ts.map +1 -0
  574. package/types/components/DataTableBulkActions/index.d.ts +33 -0
  575. package/types/components/DataTableBulkActions/index.d.ts.map +1 -0
  576. package/types/components/DataTableCell/CellModalEditor.d.ts +34 -0
  577. package/types/components/DataTableCell/CellModalEditor.d.ts.map +1 -0
  578. package/types/components/DataTableCell/CellModalEditor.native.d.ts +20 -0
  579. package/types/components/DataTableCell/CellModalEditor.native.d.ts.map +1 -0
  580. package/types/components/DataTableCell/CellOptionsEditor.d.ts +30 -0
  581. package/types/components/DataTableCell/CellOptionsEditor.d.ts.map +1 -0
  582. package/types/components/DataTableCell/index.d.ts +51 -0
  583. package/types/components/DataTableCell/index.d.ts.map +1 -0
  584. package/types/components/DataTableColumnPinning/index.d.ts +53 -0
  585. package/types/components/DataTableColumnPinning/index.d.ts.map +1 -0
  586. package/types/components/DataTableDateFilter/index.d.ts +54 -0
  587. package/types/components/DataTableDateFilter/index.d.ts.map +1 -0
  588. package/types/components/DataTableExport/index.d.ts +37 -0
  589. package/types/components/DataTableExport/index.d.ts.map +1 -0
  590. package/types/components/DataTableFilterButton/index.d.ts +16 -0
  591. package/types/components/DataTableFilterButton/index.d.ts.map +1 -0
  592. package/types/components/DataTableFilterChips/index.d.ts +12 -0
  593. package/types/components/DataTableFilterChips/index.d.ts.map +1 -0
  594. package/types/components/DataTableFilters/index.d.ts +19 -0
  595. package/types/components/DataTableFilters/index.d.ts.map +1 -0
  596. package/types/components/DataTableGrouping/index.d.ts +79 -0
  597. package/types/components/DataTableGrouping/index.d.ts.map +1 -0
  598. package/types/components/DataTablePagination/index.d.ts +23 -0
  599. package/types/components/DataTablePagination/index.d.ts.map +1 -0
  600. package/types/components/DataTableSearch/index.d.ts +57 -0
  601. package/types/components/DataTableSearch/index.d.ts.map +1 -0
  602. package/types/components/DataTableToolbar/index.d.ts +23 -0
  603. package/types/components/DataTableToolbar/index.d.ts.map +1 -0
  604. package/types/components/DataTableViewOptions/index.d.ts +28 -0
  605. package/types/components/DataTableViewOptions/index.d.ts.map +1 -0
  606. package/types/components/FilterManager.d.ts +16 -0
  607. package/types/components/FilterManager.d.ts.map +1 -0
  608. package/types/components/FilterOperatorValueEditor/index.d.ts +23 -0
  609. package/types/components/FilterOperatorValueEditor/index.d.ts.map +1 -0
  610. package/types/components/KnobDialog.d.ts +57 -0
  611. package/types/components/KnobDialog.d.ts.map +1 -0
  612. package/types/components/SavedFilterDropdown.d.ts +11 -0
  613. package/types/components/SavedFilterDropdown.d.ts.map +1 -0
  614. package/types/components/SimpleTable/index.d.ts +45 -0
  615. package/types/components/SimpleTable/index.d.ts.map +1 -0
  616. package/types/components/TableInput/index.d.ts +66 -0
  617. package/types/components/TableInput/index.d.ts.map +1 -0
  618. package/types/components/TableInput/index.native.d.ts +55 -0
  619. package/types/components/TableInput/index.native.d.ts.map +1 -0
  620. package/types/components/TableInput/shared.d.ts +12 -0
  621. package/types/components/TableInput/shared.d.ts.map +1 -0
  622. package/types/hooks/useDataTable.d.ts +16 -0
  623. package/types/hooks/useDataTable.d.ts.map +1 -0
  624. package/types/hooks/useDataTableKeyboard.d.ts +22 -0
  625. package/types/hooks/useDataTableKeyboard.d.ts.map +1 -0
  626. package/types/hooks/useDragScroll.d.ts +10 -0
  627. package/types/hooks/useDragScroll.d.ts.map +1 -0
  628. package/types/hooks/useInfiniteRows.d.ts +57 -0
  629. package/types/hooks/useInfiniteRows.d.ts.map +1 -0
  630. package/types/hooks/useSavedFilters.d.ts +78 -0
  631. package/types/hooks/useSavedFilters.d.ts.map +1 -0
  632. package/types/hooks/useTableColumnPinning.d.ts +12 -0
  633. package/types/hooks/useTableColumnPinning.d.ts.map +1 -0
  634. package/types/hooks/useTableFiltering.d.ts +27 -0
  635. package/types/hooks/useTableFiltering.d.ts.map +1 -0
  636. package/types/hooks/useTableGrouping.d.ts +33 -0
  637. package/types/hooks/useTableGrouping.d.ts.map +1 -0
  638. package/types/hooks/useTableKeyboard.d.ts +24 -0
  639. package/types/hooks/useTableKeyboard.d.ts.map +1 -0
  640. package/types/hooks/useTablePagination.d.ts +17 -0
  641. package/types/hooks/useTablePagination.d.ts.map +1 -0
  642. package/types/hooks/useTableSearch.d.ts +27 -0
  643. package/types/hooks/useTableSearch.d.ts.map +1 -0
  644. package/types/hooks/useTableSelection.d.ts +14 -0
  645. package/types/hooks/useTableSelection.d.ts.map +1 -0
  646. package/types/hooks/useTableSorting.d.ts +12 -0
  647. package/types/hooks/useTableSorting.d.ts.map +1 -0
  648. package/types/hooks/useTableUrlSync.d.ts +15 -0
  649. package/types/hooks/useTableUrlSync.d.ts.map +1 -0
  650. package/types/hooks/useTableViews.d.ts +26 -0
  651. package/types/hooks/useTableViews.d.ts.map +1 -0
  652. package/types/index.d.ts +68 -0
  653. package/types/index.d.ts.map +1 -0
  654. package/types/shared/t.d.ts +10 -0
  655. package/types/shared/t.d.ts.map +1 -0
  656. package/types/shims/primitives.d.ts +3 -0
  657. package/types/shims/primitives.d.ts.map +1 -0
  658. package/types/shims/tableCellContext.d.ts +3 -0
  659. package/types/shims/tableCellContext.d.ts.map +1 -0
  660. package/types/types.d.ts +525 -0
  661. package/types/types.d.ts.map +1 -0
  662. package/types/utils/columnAlign.d.ts +23 -0
  663. package/types/utils/columnAlign.d.ts.map +1 -0
  664. package/types/utils/filterFields.d.ts +57 -0
  665. package/types/utils/filterFields.d.ts.map +1 -0
  666. package/types/utils/filterUtils.d.ts +24 -0
  667. package/types/utils/filterUtils.d.ts.map +1 -0
  668. package/types/utils/paginationDefaults.d.ts +18 -0
  669. package/types/utils/paginationDefaults.d.ts.map +1 -0
  670. package/types/utils/urlStateUtils.d.ts +8 -0
  671. package/types/utils/urlStateUtils.d.ts.map +1 -0
  672. package/types/utils/viewData.d.ts +11 -0
  673. package/types/utils/viewData.d.ts.map +1 -0
  674. package/types/utils/withInterp.d.ts +19 -0
  675. package/types/utils/withInterp.d.ts.map +1 -0
  676. package/dist/cjs/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.cjs +0 -50
  677. package/dist/cjs/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.native.js +0 -55
  678. package/dist/cjs/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.native.js.map +0 -1
  679. package/dist/cjs/components/DataTable/DataTable.spec.cjs +0 -516
  680. package/dist/cjs/components/DataTable/DataTable.spec.native.js +0 -539
  681. package/dist/cjs/components/DataTable/DataTable.spec.native.js.map +0 -1
  682. package/dist/cjs/components/DataTable/DataTable.stories.cjs +0 -2779
  683. package/dist/cjs/components/DataTable/DataTable.stories.native.js +0 -2912
  684. package/dist/cjs/components/DataTable/DataTable.stories.native.js.map +0 -1
  685. package/dist/cjs/components/DataTable/FieldsInCells.stories.cjs +0 -244
  686. package/dist/cjs/components/DataTable/FieldsInCells.stories.native.js +0 -265
  687. package/dist/cjs/components/DataTable/FieldsInCells.stories.native.js.map +0 -1
  688. package/dist/cjs/components/DataTable/compoundComponent.spec.cjs +0 -334
  689. package/dist/cjs/components/DataTable/compoundComponent.spec.native.js +0 -348
  690. package/dist/cjs/components/DataTable/compoundComponent.spec.native.js.map +0 -1
  691. package/dist/cjs/components/DataTableBulkActions/DataTableBulkActions.spec.cjs +0 -305
  692. package/dist/cjs/components/DataTableBulkActions/DataTableBulkActions.spec.native.js +0 -340
  693. package/dist/cjs/components/DataTableBulkActions/DataTableBulkActions.spec.native.js.map +0 -1
  694. package/dist/cjs/components/DataTableBulkActions/DataTableBulkActions.stories.cjs +0 -347
  695. package/dist/cjs/components/DataTableBulkActions/DataTableBulkActions.stories.native.js +0 -372
  696. package/dist/cjs/components/DataTableBulkActions/DataTableBulkActions.stories.native.js.map +0 -1
  697. package/dist/cjs/components/DataTableCell/DataTableCell.stories.cjs +0 -50
  698. package/dist/cjs/components/DataTableCell/DataTableCell.stories.native.js +0 -55
  699. package/dist/cjs/components/DataTableCell/DataTableCell.stories.native.js.map +0 -1
  700. package/dist/cjs/components/DataTableCell/dataTableCell.spec.cjs +0 -203
  701. package/dist/cjs/components/DataTableCell/dataTableCell.spec.native.js +0 -220
  702. package/dist/cjs/components/DataTableCell/dataTableCell.spec.native.js.map +0 -1
  703. package/dist/cjs/components/DataTableColumnPinning/DataTableColumnPinning.spec.cjs +0 -287
  704. package/dist/cjs/components/DataTableColumnPinning/DataTableColumnPinning.spec.native.js +0 -315
  705. package/dist/cjs/components/DataTableColumnPinning/DataTableColumnPinning.spec.native.js.map +0 -1
  706. package/dist/cjs/components/DataTableColumnPinning/DataTableColumnPinning.stories.cjs +0 -486
  707. package/dist/cjs/components/DataTableColumnPinning/DataTableColumnPinning.stories.native.js +0 -541
  708. package/dist/cjs/components/DataTableColumnPinning/DataTableColumnPinning.stories.native.js.map +0 -1
  709. package/dist/cjs/components/DataTableDateFilter/DataTableDateFilter.spec.cjs +0 -409
  710. package/dist/cjs/components/DataTableDateFilter/DataTableDateFilter.spec.native.js +0 -459
  711. package/dist/cjs/components/DataTableDateFilter/DataTableDateFilter.spec.native.js.map +0 -1
  712. package/dist/cjs/components/DataTableDateFilter/DataTableDateFilter.stories.cjs +0 -368
  713. package/dist/cjs/components/DataTableDateFilter/DataTableDateFilter.stories.native.js +0 -375
  714. package/dist/cjs/components/DataTableDateFilter/DataTableDateFilter.stories.native.js.map +0 -1
  715. package/dist/cjs/components/DataTableExport/DataTableExport.spec.cjs +0 -334
  716. package/dist/cjs/components/DataTableExport/DataTableExport.spec.native.js +0 -349
  717. package/dist/cjs/components/DataTableExport/DataTableExport.spec.native.js.map +0 -1
  718. package/dist/cjs/components/DataTableExport/DataTableExport.stories.cjs +0 -452
  719. package/dist/cjs/components/DataTableExport/DataTableExport.stories.native.js +0 -479
  720. package/dist/cjs/components/DataTableExport/DataTableExport.stories.native.js.map +0 -1
  721. package/dist/cjs/components/DataTableFilters/DataTableFilters.spec.cjs +0 -687
  722. package/dist/cjs/components/DataTableFilters/DataTableFilters.spec.native.js +0 -698
  723. package/dist/cjs/components/DataTableFilters/DataTableFilters.spec.native.js.map +0 -1
  724. package/dist/cjs/components/DataTableFilters/DataTableFilters.stories.cjs +0 -551
  725. package/dist/cjs/components/DataTableFilters/DataTableFilters.stories.native.js +0 -564
  726. package/dist/cjs/components/DataTableFilters/DataTableFilters.stories.native.js.map +0 -1
  727. package/dist/cjs/components/DataTableGrouping/DataTableGrouping.spec.cjs +0 -249
  728. package/dist/cjs/components/DataTableGrouping/DataTableGrouping.spec.native.js +0 -284
  729. package/dist/cjs/components/DataTableGrouping/DataTableGrouping.spec.native.js.map +0 -1
  730. package/dist/cjs/components/DataTableGrouping/DataTableGrouping.stories.cjs +0 -523
  731. package/dist/cjs/components/DataTableGrouping/DataTableGrouping.stories.native.js +0 -545
  732. package/dist/cjs/components/DataTableGrouping/DataTableGrouping.stories.native.js.map +0 -1
  733. package/dist/cjs/components/DataTablePagination/DataTablePagination.spec.cjs +0 -386
  734. package/dist/cjs/components/DataTablePagination/DataTablePagination.spec.native.js +0 -389
  735. package/dist/cjs/components/DataTablePagination/DataTablePagination.spec.native.js.map +0 -1
  736. package/dist/cjs/components/DataTablePagination/DataTablePagination.stories.cjs +0 -604
  737. package/dist/cjs/components/DataTablePagination/DataTablePagination.stories.native.js +0 -627
  738. package/dist/cjs/components/DataTablePagination/DataTablePagination.stories.native.js.map +0 -1
  739. package/dist/cjs/components/DataTableSearch/DataTableSearch.spec.cjs +0 -469
  740. package/dist/cjs/components/DataTableSearch/DataTableSearch.spec.native.js +0 -472
  741. package/dist/cjs/components/DataTableSearch/DataTableSearch.spec.native.js.map +0 -1
  742. package/dist/cjs/components/DataTableSearch/DataTableSearch.stories.cjs +0 -82
  743. package/dist/cjs/components/DataTableSearch/DataTableSearch.stories.native.js +0 -89
  744. package/dist/cjs/components/DataTableSearch/DataTableSearch.stories.native.js.map +0 -1
  745. package/dist/cjs/components/DataTableToolbar/DataTableToolbar.spec.cjs +0 -572
  746. package/dist/cjs/components/DataTableToolbar/DataTableToolbar.spec.native.js +0 -575
  747. package/dist/cjs/components/DataTableToolbar/DataTableToolbar.spec.native.js.map +0 -1
  748. package/dist/cjs/components/DataTableToolbar/DataTableToolbar.stories.cjs +0 -51
  749. package/dist/cjs/components/DataTableToolbar/DataTableToolbar.stories.native.js +0 -56
  750. package/dist/cjs/components/DataTableToolbar/DataTableToolbar.stories.native.js.map +0 -1
  751. package/dist/cjs/components/DataTableViewOptions/DataTableViewOptions.spec.cjs +0 -126
  752. package/dist/cjs/components/DataTableViewOptions/DataTableViewOptions.spec.native.js +0 -129
  753. package/dist/cjs/components/DataTableViewOptions/DataTableViewOptions.spec.native.js.map +0 -1
  754. package/dist/cjs/components/DataTableViewOptions/DataTableViewOptions.stories.cjs +0 -436
  755. package/dist/cjs/components/DataTableViewOptions/DataTableViewOptions.stories.native.js +0 -458
  756. package/dist/cjs/components/DataTableViewOptions/DataTableViewOptions.stories.native.js.map +0 -1
  757. package/dist/cjs/components/FilterManager.spec.cjs +0 -52
  758. package/dist/cjs/components/FilterManager.spec.native.js +0 -55
  759. package/dist/cjs/components/FilterManager.spec.native.js.map +0 -1
  760. package/dist/cjs/components/SavedFilterDropdown.spec.cjs +0 -83
  761. package/dist/cjs/components/SavedFilterDropdown.spec.native.js +0 -86
  762. package/dist/cjs/components/SavedFilterDropdown.spec.native.js.map +0 -1
  763. package/dist/cjs/components/SimpleTable/simpleTable.spec.cjs +0 -162
  764. package/dist/cjs/components/SimpleTable/simpleTable.spec.native.js +0 -165
  765. package/dist/cjs/components/SimpleTable/simpleTable.spec.native.js.map +0 -1
  766. package/dist/cjs/components/Table/Table.stories.cjs +0 -196
  767. package/dist/cjs/components/Table/Table.stories.native.js +0 -207
  768. package/dist/cjs/components/Table/Table.stories.native.js.map +0 -1
  769. package/dist/cjs/components/Table/accessibility.spec.cjs +0 -186
  770. package/dist/cjs/components/Table/accessibility.spec.native.js +0 -216
  771. package/dist/cjs/components/Table/accessibility.spec.native.js.map +0 -1
  772. package/dist/cjs/components/TableInput/TableInput.stories.cjs +0 -50
  773. package/dist/cjs/components/TableInput/TableInput.stories.native.js +0 -55
  774. package/dist/cjs/components/TableInput/TableInput.stories.native.js.map +0 -1
  775. package/dist/cjs/components/componentConsistency.spec.cjs +0 -37
  776. package/dist/cjs/components/componentConsistency.spec.native.js +0 -48
  777. package/dist/cjs/components/componentConsistency.spec.native.js.map +0 -1
  778. package/dist/cjs/hooks/hookDecomposition.spec.cjs +0 -326
  779. package/dist/cjs/hooks/hookDecomposition.spec.native.js +0 -351
  780. package/dist/cjs/hooks/hookDecomposition.spec.native.js.map +0 -1
  781. package/dist/cjs/hooks/useDataTable.spec.cjs +0 -10
  782. package/dist/cjs/hooks/useDataTable.spec.native.js +0 -13
  783. package/dist/cjs/hooks/useDataTable.spec.native.js.map +0 -1
  784. package/dist/cjs/hooks/useSavedFilters.spec.cjs +0 -212
  785. package/dist/cjs/hooks/useSavedFilters.spec.native.js +0 -240
  786. package/dist/cjs/hooks/useSavedFilters.spec.native.js.map +0 -1
  787. package/dist/cjs/utils/filterUtils.spec.cjs +0 -350
  788. package/dist/cjs/utils/filterUtils.spec.native.js +0 -353
  789. package/dist/cjs/utils/filterUtils.spec.native.js.map +0 -1
  790. package/dist/cjs/utils/urlStateUtils.spec.cjs +0 -234
  791. package/dist/cjs/utils/urlStateUtils.spec.native.js +0 -239
  792. package/dist/cjs/utils/urlStateUtils.spec.native.js.map +0 -1
  793. package/dist/esm/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.mjs +0 -24
  794. package/dist/esm/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.mjs.map +0 -1
  795. package/dist/esm/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.native.js +0 -26
  796. package/dist/esm/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.native.js.map +0 -1
  797. package/dist/esm/components/DataTable/DataTable.spec.mjs +0 -517
  798. package/dist/esm/components/DataTable/DataTable.spec.mjs.map +0 -1
  799. package/dist/esm/components/DataTable/DataTable.spec.native.js +0 -537
  800. package/dist/esm/components/DataTable/DataTable.spec.native.js.map +0 -1
  801. package/dist/esm/components/DataTable/DataTable.stories.mjs +0 -2672
  802. package/dist/esm/components/DataTable/DataTable.stories.mjs.map +0 -1
  803. package/dist/esm/components/DataTable/DataTable.stories.native.js +0 -2802
  804. package/dist/esm/components/DataTable/DataTable.stories.native.js.map +0 -1
  805. package/dist/esm/components/DataTable/FieldsInCells.stories.mjs +0 -217
  806. package/dist/esm/components/DataTable/FieldsInCells.stories.mjs.map +0 -1
  807. package/dist/esm/components/DataTable/FieldsInCells.stories.native.js +0 -224
  808. package/dist/esm/components/DataTable/FieldsInCells.stories.native.js.map +0 -1
  809. package/dist/esm/components/DataTable/compoundComponent.spec.mjs +0 -335
  810. package/dist/esm/components/DataTable/compoundComponent.spec.mjs.map +0 -1
  811. package/dist/esm/components/DataTable/compoundComponent.spec.native.js +0 -346
  812. package/dist/esm/components/DataTable/compoundComponent.spec.native.js.map +0 -1
  813. package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.spec.mjs +0 -306
  814. package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.spec.mjs.map +0 -1
  815. package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.spec.native.js +0 -338
  816. package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.spec.native.js.map +0 -1
  817. package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.stories.mjs +0 -304
  818. package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.stories.mjs.map +0 -1
  819. package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.stories.native.js +0 -326
  820. package/dist/esm/components/DataTableBulkActions/DataTableBulkActions.stories.native.js.map +0 -1
  821. package/dist/esm/components/DataTableCell/DataTableCell.stories.mjs +0 -24
  822. package/dist/esm/components/DataTableCell/DataTableCell.stories.mjs.map +0 -1
  823. package/dist/esm/components/DataTableCell/DataTableCell.stories.native.js +0 -26
  824. package/dist/esm/components/DataTableCell/DataTableCell.stories.native.js.map +0 -1
  825. package/dist/esm/components/DataTableCell/dataTableCell.spec.mjs +0 -180
  826. package/dist/esm/components/DataTableCell/dataTableCell.spec.mjs.map +0 -1
  827. package/dist/esm/components/DataTableCell/dataTableCell.spec.native.js +0 -194
  828. package/dist/esm/components/DataTableCell/dataTableCell.spec.native.js.map +0 -1
  829. package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.spec.mjs +0 -264
  830. package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.spec.mjs.map +0 -1
  831. package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.spec.native.js +0 -289
  832. package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.spec.native.js.map +0 -1
  833. package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.stories.mjs +0 -457
  834. package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.stories.mjs.map +0 -1
  835. package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.stories.native.js +0 -509
  836. package/dist/esm/components/DataTableColumnPinning/DataTableColumnPinning.stories.native.js.map +0 -1
  837. package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.spec.mjs +0 -386
  838. package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.spec.mjs.map +0 -1
  839. package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.spec.native.js +0 -433
  840. package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.spec.native.js.map +0 -1
  841. package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.stories.mjs +0 -325
  842. package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.stories.mjs.map +0 -1
  843. package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.stories.native.js +0 -329
  844. package/dist/esm/components/DataTableDateFilter/DataTableDateFilter.stories.native.js.map +0 -1
  845. package/dist/esm/components/DataTableExport/DataTableExport.spec.mjs +0 -335
  846. package/dist/esm/components/DataTableExport/DataTableExport.spec.mjs.map +0 -1
  847. package/dist/esm/components/DataTableExport/DataTableExport.spec.native.js +0 -347
  848. package/dist/esm/components/DataTableExport/DataTableExport.spec.native.js.map +0 -1
  849. package/dist/esm/components/DataTableExport/DataTableExport.stories.mjs +0 -419
  850. package/dist/esm/components/DataTableExport/DataTableExport.stories.mjs.map +0 -1
  851. package/dist/esm/components/DataTableExport/DataTableExport.stories.native.js +0 -443
  852. package/dist/esm/components/DataTableExport/DataTableExport.stories.native.js.map +0 -1
  853. package/dist/esm/components/DataTableFilters/DataTableFilters.spec.mjs +0 -688
  854. package/dist/esm/components/DataTableFilters/DataTableFilters.spec.mjs.map +0 -1
  855. package/dist/esm/components/DataTableFilters/DataTableFilters.spec.native.js +0 -696
  856. package/dist/esm/components/DataTableFilters/DataTableFilters.spec.native.js.map +0 -1
  857. package/dist/esm/components/DataTableFilters/DataTableFilters.stories.mjs +0 -499
  858. package/dist/esm/components/DataTableFilters/DataTableFilters.stories.mjs.map +0 -1
  859. package/dist/esm/components/DataTableFilters/DataTableFilters.stories.native.js +0 -509
  860. package/dist/esm/components/DataTableFilters/DataTableFilters.stories.native.js.map +0 -1
  861. package/dist/esm/components/DataTableGrouping/DataTableGrouping.spec.mjs +0 -249
  862. package/dist/esm/components/DataTableGrouping/DataTableGrouping.spec.mjs.map +0 -1
  863. package/dist/esm/components/DataTableGrouping/DataTableGrouping.spec.native.js +0 -281
  864. package/dist/esm/components/DataTableGrouping/DataTableGrouping.spec.native.js.map +0 -1
  865. package/dist/esm/components/DataTableGrouping/DataTableGrouping.stories.mjs +0 -479
  866. package/dist/esm/components/DataTableGrouping/DataTableGrouping.stories.mjs.map +0 -1
  867. package/dist/esm/components/DataTableGrouping/DataTableGrouping.stories.native.js +0 -498
  868. package/dist/esm/components/DataTableGrouping/DataTableGrouping.stories.native.js.map +0 -1
  869. package/dist/esm/components/DataTablePagination/DataTablePagination.spec.mjs +0 -387
  870. package/dist/esm/components/DataTablePagination/DataTablePagination.spec.mjs.map +0 -1
  871. package/dist/esm/components/DataTablePagination/DataTablePagination.spec.native.js +0 -387
  872. package/dist/esm/components/DataTablePagination/DataTablePagination.spec.native.js.map +0 -1
  873. package/dist/esm/components/DataTablePagination/DataTablePagination.stories.mjs +0 -546
  874. package/dist/esm/components/DataTablePagination/DataTablePagination.stories.mjs.map +0 -1
  875. package/dist/esm/components/DataTablePagination/DataTablePagination.stories.native.js +0 -566
  876. package/dist/esm/components/DataTablePagination/DataTablePagination.stories.native.js.map +0 -1
  877. package/dist/esm/components/DataTableSearch/DataTableSearch.spec.mjs +0 -470
  878. package/dist/esm/components/DataTableSearch/DataTableSearch.spec.mjs.map +0 -1
  879. package/dist/esm/components/DataTableSearch/DataTableSearch.spec.native.js +0 -470
  880. package/dist/esm/components/DataTableSearch/DataTableSearch.spec.native.js.map +0 -1
  881. package/dist/esm/components/DataTableSearch/DataTableSearch.stories.mjs +0 -56
  882. package/dist/esm/components/DataTableSearch/DataTableSearch.stories.mjs.map +0 -1
  883. package/dist/esm/components/DataTableSearch/DataTableSearch.stories.native.js +0 -60
  884. package/dist/esm/components/DataTableSearch/DataTableSearch.stories.native.js.map +0 -1
  885. package/dist/esm/components/DataTableToolbar/DataTableToolbar.spec.mjs +0 -573
  886. package/dist/esm/components/DataTableToolbar/DataTableToolbar.spec.mjs.map +0 -1
  887. package/dist/esm/components/DataTableToolbar/DataTableToolbar.spec.native.js +0 -573
  888. package/dist/esm/components/DataTableToolbar/DataTableToolbar.spec.native.js.map +0 -1
  889. package/dist/esm/components/DataTableToolbar/DataTableToolbar.stories.mjs +0 -25
  890. package/dist/esm/components/DataTableToolbar/DataTableToolbar.stories.mjs.map +0 -1
  891. package/dist/esm/components/DataTableToolbar/DataTableToolbar.stories.native.js +0 -27
  892. package/dist/esm/components/DataTableToolbar/DataTableToolbar.stories.native.js.map +0 -1
  893. package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.spec.mjs +0 -126
  894. package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.spec.mjs.map +0 -1
  895. package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.spec.native.js +0 -126
  896. package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.spec.native.js.map +0 -1
  897. package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.stories.mjs +0 -393
  898. package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.stories.mjs.map +0 -1
  899. package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.stories.native.js +0 -412
  900. package/dist/esm/components/DataTableViewOptions/DataTableViewOptions.stories.native.js.map +0 -1
  901. package/dist/esm/components/FilterManager.spec.mjs +0 -53
  902. package/dist/esm/components/FilterManager.spec.mjs.map +0 -1
  903. package/dist/esm/components/FilterManager.spec.native.js +0 -53
  904. package/dist/esm/components/FilterManager.spec.native.js.map +0 -1
  905. package/dist/esm/components/SavedFilterDropdown.spec.mjs +0 -84
  906. package/dist/esm/components/SavedFilterDropdown.spec.mjs.map +0 -1
  907. package/dist/esm/components/SavedFilterDropdown.spec.native.js +0 -84
  908. package/dist/esm/components/SavedFilterDropdown.spec.native.js.map +0 -1
  909. package/dist/esm/components/SimpleTable/simpleTable.spec.mjs +0 -163
  910. package/dist/esm/components/SimpleTable/simpleTable.spec.mjs.map +0 -1
  911. package/dist/esm/components/SimpleTable/simpleTable.spec.native.js +0 -163
  912. package/dist/esm/components/SimpleTable/simpleTable.spec.native.js.map +0 -1
  913. package/dist/esm/components/Table/Table.stories.mjs +0 -167
  914. package/dist/esm/components/Table/Table.stories.mjs.map +0 -1
  915. package/dist/esm/components/Table/Table.stories.native.js +0 -175
  916. package/dist/esm/components/Table/Table.stories.native.js.map +0 -1
  917. package/dist/esm/components/Table/accessibility.spec.mjs +0 -187
  918. package/dist/esm/components/Table/accessibility.spec.mjs.map +0 -1
  919. package/dist/esm/components/Table/accessibility.spec.native.js +0 -214
  920. package/dist/esm/components/Table/accessibility.spec.native.js.map +0 -1
  921. package/dist/esm/components/TableInput/TableInput.stories.mjs +0 -24
  922. package/dist/esm/components/TableInput/TableInput.stories.mjs.map +0 -1
  923. package/dist/esm/components/TableInput/TableInput.stories.native.js +0 -26
  924. package/dist/esm/components/TableInput/TableInput.stories.native.js.map +0 -1
  925. package/dist/esm/components/componentConsistency.spec.mjs +0 -38
  926. package/dist/esm/components/componentConsistency.spec.mjs.map +0 -1
  927. package/dist/esm/components/componentConsistency.spec.native.js +0 -46
  928. package/dist/esm/components/componentConsistency.spec.native.js.map +0 -1
  929. package/dist/esm/hooks/hookDecomposition.spec.mjs +0 -327
  930. package/dist/esm/hooks/hookDecomposition.spec.mjs.map +0 -1
  931. package/dist/esm/hooks/hookDecomposition.spec.native.js +0 -349
  932. package/dist/esm/hooks/hookDecomposition.spec.native.js.map +0 -1
  933. package/dist/esm/hooks/useDataTable.spec.mjs +0 -11
  934. package/dist/esm/hooks/useDataTable.spec.mjs.map +0 -1
  935. package/dist/esm/hooks/useDataTable.spec.native.js +0 -11
  936. package/dist/esm/hooks/useDataTable.spec.native.js.map +0 -1
  937. package/dist/esm/hooks/useSavedFilters.spec.mjs +0 -213
  938. package/dist/esm/hooks/useSavedFilters.spec.mjs.map +0 -1
  939. package/dist/esm/hooks/useSavedFilters.spec.native.js +0 -238
  940. package/dist/esm/hooks/useSavedFilters.spec.native.js.map +0 -1
  941. package/dist/esm/utils/filterUtils.spec.mjs +0 -351
  942. package/dist/esm/utils/filterUtils.spec.mjs.map +0 -1
  943. package/dist/esm/utils/filterUtils.spec.native.js +0 -351
  944. package/dist/esm/utils/filterUtils.spec.native.js.map +0 -1
  945. package/dist/esm/utils/urlStateUtils.spec.mjs +0 -235
  946. package/dist/esm/utils/urlStateUtils.spec.mjs.map +0 -1
  947. package/dist/esm/utils/urlStateUtils.spec.native.js +0 -237
  948. package/dist/esm/utils/urlStateUtils.spec.native.js.map +0 -1
  949. package/dist/jsx/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.mjs +0 -24
  950. package/dist/jsx/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.mjs.map +0 -1
  951. package/dist/jsx/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.native.js +0 -55
  952. package/dist/jsx/components/ColumnHeaderFilter/ColumnHeaderFilter.stories.native.js.map +0 -1
  953. package/dist/jsx/components/DataTable/DataTable.spec.mjs +0 -517
  954. package/dist/jsx/components/DataTable/DataTable.spec.mjs.map +0 -1
  955. package/dist/jsx/components/DataTable/DataTable.spec.native.js +0 -539
  956. package/dist/jsx/components/DataTable/DataTable.spec.native.js.map +0 -1
  957. package/dist/jsx/components/DataTable/DataTable.stories.mjs +0 -2672
  958. package/dist/jsx/components/DataTable/DataTable.stories.mjs.map +0 -1
  959. package/dist/jsx/components/DataTable/DataTable.stories.native.js +0 -2912
  960. package/dist/jsx/components/DataTable/DataTable.stories.native.js.map +0 -1
  961. package/dist/jsx/components/DataTable/FieldsInCells.stories.mjs +0 -217
  962. package/dist/jsx/components/DataTable/FieldsInCells.stories.mjs.map +0 -1
  963. package/dist/jsx/components/DataTable/FieldsInCells.stories.native.js +0 -265
  964. package/dist/jsx/components/DataTable/FieldsInCells.stories.native.js.map +0 -1
  965. package/dist/jsx/components/DataTable/compoundComponent.spec.mjs +0 -335
  966. package/dist/jsx/components/DataTable/compoundComponent.spec.mjs.map +0 -1
  967. package/dist/jsx/components/DataTable/compoundComponent.spec.native.js +0 -348
  968. package/dist/jsx/components/DataTable/compoundComponent.spec.native.js.map +0 -1
  969. package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.spec.mjs +0 -306
  970. package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.spec.mjs.map +0 -1
  971. package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.spec.native.js +0 -340
  972. package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.spec.native.js.map +0 -1
  973. package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.stories.mjs +0 -304
  974. package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.stories.mjs.map +0 -1
  975. package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.stories.native.js +0 -372
  976. package/dist/jsx/components/DataTableBulkActions/DataTableBulkActions.stories.native.js.map +0 -1
  977. package/dist/jsx/components/DataTableCell/DataTableCell.stories.mjs +0 -24
  978. package/dist/jsx/components/DataTableCell/DataTableCell.stories.mjs.map +0 -1
  979. package/dist/jsx/components/DataTableCell/DataTableCell.stories.native.js +0 -55
  980. package/dist/jsx/components/DataTableCell/DataTableCell.stories.native.js.map +0 -1
  981. package/dist/jsx/components/DataTableCell/dataTableCell.spec.mjs +0 -180
  982. package/dist/jsx/components/DataTableCell/dataTableCell.spec.mjs.map +0 -1
  983. package/dist/jsx/components/DataTableCell/dataTableCell.spec.native.js +0 -220
  984. package/dist/jsx/components/DataTableCell/dataTableCell.spec.native.js.map +0 -1
  985. package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.spec.mjs +0 -264
  986. package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.spec.mjs.map +0 -1
  987. package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.spec.native.js +0 -315
  988. package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.spec.native.js.map +0 -1
  989. package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.stories.mjs +0 -457
  990. package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.stories.mjs.map +0 -1
  991. package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.stories.native.js +0 -541
  992. package/dist/jsx/components/DataTableColumnPinning/DataTableColumnPinning.stories.native.js.map +0 -1
  993. package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.spec.mjs +0 -386
  994. package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.spec.mjs.map +0 -1
  995. package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.spec.native.js +0 -459
  996. package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.spec.native.js.map +0 -1
  997. package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.stories.mjs +0 -325
  998. package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.stories.mjs.map +0 -1
  999. package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.stories.native.js +0 -375
  1000. package/dist/jsx/components/DataTableDateFilter/DataTableDateFilter.stories.native.js.map +0 -1
  1001. package/dist/jsx/components/DataTableExport/DataTableExport.spec.mjs +0 -335
  1002. package/dist/jsx/components/DataTableExport/DataTableExport.spec.mjs.map +0 -1
  1003. package/dist/jsx/components/DataTableExport/DataTableExport.spec.native.js +0 -349
  1004. package/dist/jsx/components/DataTableExport/DataTableExport.spec.native.js.map +0 -1
  1005. package/dist/jsx/components/DataTableExport/DataTableExport.stories.mjs +0 -419
  1006. package/dist/jsx/components/DataTableExport/DataTableExport.stories.mjs.map +0 -1
  1007. package/dist/jsx/components/DataTableExport/DataTableExport.stories.native.js +0 -479
  1008. package/dist/jsx/components/DataTableExport/DataTableExport.stories.native.js.map +0 -1
  1009. package/dist/jsx/components/DataTableFilters/DataTableFilters.spec.mjs +0 -688
  1010. package/dist/jsx/components/DataTableFilters/DataTableFilters.spec.mjs.map +0 -1
  1011. package/dist/jsx/components/DataTableFilters/DataTableFilters.spec.native.js +0 -698
  1012. package/dist/jsx/components/DataTableFilters/DataTableFilters.spec.native.js.map +0 -1
  1013. package/dist/jsx/components/DataTableFilters/DataTableFilters.stories.mjs +0 -499
  1014. package/dist/jsx/components/DataTableFilters/DataTableFilters.stories.mjs.map +0 -1
  1015. package/dist/jsx/components/DataTableFilters/DataTableFilters.stories.native.js +0 -564
  1016. package/dist/jsx/components/DataTableFilters/DataTableFilters.stories.native.js.map +0 -1
  1017. package/dist/jsx/components/DataTableGrouping/DataTableGrouping.spec.mjs +0 -249
  1018. package/dist/jsx/components/DataTableGrouping/DataTableGrouping.spec.mjs.map +0 -1
  1019. package/dist/jsx/components/DataTableGrouping/DataTableGrouping.spec.native.js +0 -284
  1020. package/dist/jsx/components/DataTableGrouping/DataTableGrouping.spec.native.js.map +0 -1
  1021. package/dist/jsx/components/DataTableGrouping/DataTableGrouping.stories.mjs +0 -479
  1022. package/dist/jsx/components/DataTableGrouping/DataTableGrouping.stories.mjs.map +0 -1
  1023. package/dist/jsx/components/DataTableGrouping/DataTableGrouping.stories.native.js +0 -545
  1024. package/dist/jsx/components/DataTableGrouping/DataTableGrouping.stories.native.js.map +0 -1
  1025. package/dist/jsx/components/DataTablePagination/DataTablePagination.spec.mjs +0 -387
  1026. package/dist/jsx/components/DataTablePagination/DataTablePagination.spec.mjs.map +0 -1
  1027. package/dist/jsx/components/DataTablePagination/DataTablePagination.spec.native.js +0 -389
  1028. package/dist/jsx/components/DataTablePagination/DataTablePagination.spec.native.js.map +0 -1
  1029. package/dist/jsx/components/DataTablePagination/DataTablePagination.stories.mjs +0 -546
  1030. package/dist/jsx/components/DataTablePagination/DataTablePagination.stories.mjs.map +0 -1
  1031. package/dist/jsx/components/DataTablePagination/DataTablePagination.stories.native.js +0 -627
  1032. package/dist/jsx/components/DataTablePagination/DataTablePagination.stories.native.js.map +0 -1
  1033. package/dist/jsx/components/DataTableSearch/DataTableSearch.spec.mjs +0 -470
  1034. package/dist/jsx/components/DataTableSearch/DataTableSearch.spec.mjs.map +0 -1
  1035. package/dist/jsx/components/DataTableSearch/DataTableSearch.spec.native.js +0 -472
  1036. package/dist/jsx/components/DataTableSearch/DataTableSearch.spec.native.js.map +0 -1
  1037. package/dist/jsx/components/DataTableSearch/DataTableSearch.stories.mjs +0 -56
  1038. package/dist/jsx/components/DataTableSearch/DataTableSearch.stories.mjs.map +0 -1
  1039. package/dist/jsx/components/DataTableSearch/DataTableSearch.stories.native.js +0 -89
  1040. package/dist/jsx/components/DataTableSearch/DataTableSearch.stories.native.js.map +0 -1
  1041. package/dist/jsx/components/DataTableToolbar/DataTableToolbar.spec.mjs +0 -573
  1042. package/dist/jsx/components/DataTableToolbar/DataTableToolbar.spec.mjs.map +0 -1
  1043. package/dist/jsx/components/DataTableToolbar/DataTableToolbar.spec.native.js +0 -575
  1044. package/dist/jsx/components/DataTableToolbar/DataTableToolbar.spec.native.js.map +0 -1
  1045. package/dist/jsx/components/DataTableToolbar/DataTableToolbar.stories.mjs +0 -25
  1046. package/dist/jsx/components/DataTableToolbar/DataTableToolbar.stories.mjs.map +0 -1
  1047. package/dist/jsx/components/DataTableToolbar/DataTableToolbar.stories.native.js +0 -56
  1048. package/dist/jsx/components/DataTableToolbar/DataTableToolbar.stories.native.js.map +0 -1
  1049. package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.spec.mjs +0 -126
  1050. package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.spec.mjs.map +0 -1
  1051. package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.spec.native.js +0 -129
  1052. package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.spec.native.js.map +0 -1
  1053. package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.stories.mjs +0 -393
  1054. package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.stories.mjs.map +0 -1
  1055. package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.stories.native.js +0 -458
  1056. package/dist/jsx/components/DataTableViewOptions/DataTableViewOptions.stories.native.js.map +0 -1
  1057. package/dist/jsx/components/FilterManager.spec.mjs +0 -53
  1058. package/dist/jsx/components/FilterManager.spec.mjs.map +0 -1
  1059. package/dist/jsx/components/FilterManager.spec.native.js +0 -55
  1060. package/dist/jsx/components/FilterManager.spec.native.js.map +0 -1
  1061. package/dist/jsx/components/SavedFilterDropdown.spec.mjs +0 -84
  1062. package/dist/jsx/components/SavedFilterDropdown.spec.mjs.map +0 -1
  1063. package/dist/jsx/components/SavedFilterDropdown.spec.native.js +0 -86
  1064. package/dist/jsx/components/SavedFilterDropdown.spec.native.js.map +0 -1
  1065. package/dist/jsx/components/SimpleTable/simpleTable.spec.mjs +0 -163
  1066. package/dist/jsx/components/SimpleTable/simpleTable.spec.mjs.map +0 -1
  1067. package/dist/jsx/components/SimpleTable/simpleTable.spec.native.js +0 -165
  1068. package/dist/jsx/components/SimpleTable/simpleTable.spec.native.js.map +0 -1
  1069. package/dist/jsx/components/Table/Table.stories.mjs +0 -167
  1070. package/dist/jsx/components/Table/Table.stories.mjs.map +0 -1
  1071. package/dist/jsx/components/Table/Table.stories.native.js +0 -207
  1072. package/dist/jsx/components/Table/Table.stories.native.js.map +0 -1
  1073. package/dist/jsx/components/Table/accessibility.spec.mjs +0 -187
  1074. package/dist/jsx/components/Table/accessibility.spec.mjs.map +0 -1
  1075. package/dist/jsx/components/Table/accessibility.spec.native.js +0 -216
  1076. package/dist/jsx/components/Table/accessibility.spec.native.js.map +0 -1
  1077. package/dist/jsx/components/TableInput/TableInput.stories.mjs +0 -24
  1078. package/dist/jsx/components/TableInput/TableInput.stories.mjs.map +0 -1
  1079. package/dist/jsx/components/TableInput/TableInput.stories.native.js +0 -55
  1080. package/dist/jsx/components/TableInput/TableInput.stories.native.js.map +0 -1
  1081. package/dist/jsx/components/componentConsistency.spec.mjs +0 -38
  1082. package/dist/jsx/components/componentConsistency.spec.mjs.map +0 -1
  1083. package/dist/jsx/components/componentConsistency.spec.native.js +0 -48
  1084. package/dist/jsx/components/componentConsistency.spec.native.js.map +0 -1
  1085. package/dist/jsx/hooks/hookDecomposition.spec.mjs +0 -327
  1086. package/dist/jsx/hooks/hookDecomposition.spec.mjs.map +0 -1
  1087. package/dist/jsx/hooks/hookDecomposition.spec.native.js +0 -351
  1088. package/dist/jsx/hooks/hookDecomposition.spec.native.js.map +0 -1
  1089. package/dist/jsx/hooks/useDataTable.spec.mjs +0 -11
  1090. package/dist/jsx/hooks/useDataTable.spec.mjs.map +0 -1
  1091. package/dist/jsx/hooks/useDataTable.spec.native.js +0 -13
  1092. package/dist/jsx/hooks/useDataTable.spec.native.js.map +0 -1
  1093. package/dist/jsx/hooks/useSavedFilters.spec.mjs +0 -213
  1094. package/dist/jsx/hooks/useSavedFilters.spec.mjs.map +0 -1
  1095. package/dist/jsx/hooks/useSavedFilters.spec.native.js +0 -240
  1096. package/dist/jsx/hooks/useSavedFilters.spec.native.js.map +0 -1
  1097. package/dist/jsx/utils/filterUtils.spec.mjs +0 -351
  1098. package/dist/jsx/utils/filterUtils.spec.mjs.map +0 -1
  1099. package/dist/jsx/utils/filterUtils.spec.native.js +0 -353
  1100. package/dist/jsx/utils/filterUtils.spec.native.js.map +0 -1
  1101. package/dist/jsx/utils/urlStateUtils.spec.mjs +0 -235
  1102. package/dist/jsx/utils/urlStateUtils.spec.mjs.map +0 -1
  1103. package/dist/jsx/utils/urlStateUtils.spec.native.js +0 -239
  1104. package/dist/jsx/utils/urlStateUtils.spec.native.js.map +0 -1
@@ -32,6 +32,7 @@ import {
32
32
  Duration,
33
33
  PhoneInput,
34
34
  Barcode,
35
+ BarcodePreview,
35
36
  MentionInput,
36
37
  OTPInput,
37
38
  // Visual/feedback
@@ -47,12 +48,15 @@ import {
47
48
  FieldDisplay,
48
49
  } from "@multiplatform.one/forms";
49
50
  import { CellModalEditor } from "./CellModalEditor";
51
+ import { CellOptionsEditor } from "./CellOptionsEditor";
50
52
  import { Star } from "@phosphor-icons/react";
51
53
  import { RichTextEditor } from "@multiplatform.one/rich-text";
52
54
  import { useResolvedKnobs } from "@multiplatform.one/theme";
53
- import React, { useCallback } from "react";
54
- import { View } from "tamagui";
55
+ import React, { useCallback, useEffect, useRef, useState } from "react";
56
+ import { View, isWeb } from "tamagui";
55
57
  import type { DataTableFieldProps, DataTableField } from "../../types";
58
+ import { alignToFlex, getDefaultColumnAlign } from "../../utils/columnAlign";
59
+ import { t } from "../../shared/t";
56
60
 
57
61
  export interface DataTableCellProps {
58
62
  /** Current cell value */
@@ -69,6 +73,12 @@ export interface DataTableCellProps {
69
73
  disabled?: boolean;
70
74
  /** Column ID for accessibility */
71
75
  columnId: string;
76
+ /**
77
+ * Human-readable column header text. Chromeless in-cell fields have no
78
+ * field label, so sheet/popover triggers (select, combobox) use this as
79
+ * their accessible name instead of the technical columnId.
80
+ */
81
+ columnLabel?: string;
72
82
  /** Row index for accessibility */
73
83
  rowIndex: number;
74
84
  /** Row data for custom render */
@@ -95,7 +105,8 @@ export function DataTableCell({
95
105
  onChange,
96
106
  readOnly = false,
97
107
  disabled = false,
98
- columnId: _columnId,
108
+ columnId,
109
+ columnLabel,
99
110
  rowIndex: _rowIndex,
100
111
  rowData,
101
112
  size,
@@ -129,17 +140,34 @@ export function DataTableCell({
129
140
  ...restProps
130
141
  } = fieldProps;
131
142
 
143
+ // Keep onChange behind a ref so handleChange's identity stays stable across
144
+ // parent re-renders. WiredTable/DataTable pass a fresh inline onChange every
145
+ // render; fields that sync via useEffect([onChange]) (OTP, Phone, …) would
146
+ // otherwise re-emit and loop (SB-T2-10).
147
+ const onChangeRef = useRef(onChange);
148
+ onChangeRef.current = onChange;
132
149
  const handleChange = useCallback(
133
150
  (newValue: any) => {
134
151
  if (readOnly || disabled) return;
135
- onChange(newValue);
152
+ onChangeRef.current(newValue);
136
153
  },
137
- [onChange, readOnly, disabled],
154
+ [readOnly, disabled],
138
155
  );
139
156
 
140
- // Custom render function
157
+ // DG-TBL-01: default cell justification from field/data type (overridable via align).
158
+ const cellJustify = alignToFlex(getDefaultColumnAlign({ id: columnId, field, fieldProps }));
159
+
160
+ // Custom render function. This branch intentionally precedes the read-only
161
+ // branch (the renderer owns the cell's presentation in both modes), so the
162
+ // cell's honest state travels as the render context: commits are already
163
+ // blocked while readOnly/disabled (handleChange no-ops), and the renderer
164
+ // must mirror that by going non-interactive (D-18.4 — Axiom 6).
141
165
  if (field === "custom" && render) {
142
- return <CellWrapper>{render(value, rowData, handleChange)}</CellWrapper>;
166
+ return (
167
+ <CellWrapper justify={cellJustify}>
168
+ {render(value, rowData, handleChange, { readOnly, disabled })}
169
+ </CellWrapper>
170
+ );
143
171
  }
144
172
 
145
173
  // Read-only cells route through FieldDisplay (lightweight, view-only) rather
@@ -147,12 +175,19 @@ export function DataTableCell({
147
175
  // large tables performant and gives heavy fields a purpose-built compact
148
176
  // representation. Edit-mode (below) still mounts the full field component.
149
177
  if (readOnly) {
178
+ // FieldDisplay formats currency via Intl.NumberFormat, which requires an
179
+ // ISO-4217 code — a raw symbol ("$") throws RangeError and crashes the
180
+ // whole table. Normalize symbols to codes and drop anything still invalid.
181
+ const displayFieldProps =
182
+ fieldProps.currency != null
183
+ ? { ...fieldProps, currency: normalizeCurrencyCode(fieldProps.currency) }
184
+ : fieldProps;
150
185
  return (
151
- <CellWrapper justify={field === "stepper" || field === "slider" ? "flex-end" : "flex-start"}>
186
+ <CellWrapper justify={cellJustify}>
152
187
  <FieldDisplay
153
188
  field={field}
154
189
  value={value}
155
- fieldProps={fieldProps}
190
+ fieldProps={displayFieldProps}
156
191
  linkedValue={_linkedValue}
157
192
  />
158
193
  </CellWrapper>
@@ -170,6 +205,12 @@ export function DataTableCell({
170
205
  onCheckedChange={handleChange}
171
206
  disabled={disabled || readOnly}
172
207
  {...restProps}
208
+ // Chromeless in-cell control has no field label — name it from
209
+ // the column header (same fallback chain as select/combobox).
210
+ checkboxProps={{
211
+ "aria-label": (restProps as any)["aria-label"] ?? columnLabel ?? columnId,
212
+ ...(restProps as any).checkboxProps,
213
+ }}
173
214
  />
174
215
  </CellWrapper>
175
216
  );
@@ -182,6 +223,12 @@ export function DataTableCell({
182
223
  onCheckedChange={handleChange}
183
224
  disabled={disabled || readOnly}
184
225
  {...restProps}
226
+ // Chromeless in-cell control has no field label — name it from
227
+ // the column header (same fallback chain as select/combobox).
228
+ switchProps={{
229
+ "aria-label": (restProps as any)["aria-label"] ?? columnLabel ?? columnId,
230
+ ...(restProps as any).switchProps,
231
+ }}
185
232
  />
186
233
  </CellWrapper>
187
234
  );
@@ -199,6 +246,7 @@ export function DataTableCell({
199
246
  placeholder={placeholder}
200
247
  size={knobProps.sizeToken}
201
248
  {...restProps}
249
+ aria-label={(restProps as any)["aria-label"] ?? columnLabel ?? columnId}
202
250
  />
203
251
  </CellWrapper>
204
252
  );
@@ -215,22 +263,42 @@ export function DataTableCell({
215
263
  placeholder={placeholder}
216
264
  size={knobProps.sizeToken}
217
265
  {...restProps}
266
+ aria-label={(restProps as any)["aria-label"] ?? columnLabel ?? columnId}
218
267
  />
219
268
  </CellWrapper>
220
269
  );
221
270
 
222
271
  case "radiogroup":
272
+ // UX-022 / LC-06 OVERSIZED-EDIT: a horizontal radio row is wider than
273
+ // narrow columns and the cell's overflow guard makes the clipped
274
+ // options unreachable. The editor escapes the anchor: the cell face is
275
+ // the current option label; options open in a popover (web) / sheet
276
+ // (native), seeded at the current value. A pick commits and closes
277
+ // (LC-21 COMMIT class — one value completes the contract).
223
278
  return (
224
279
  <CellWrapper>
225
- <RadioGroup
226
- value={value != null ? String(value) : ""}
227
- onValueChange={handleChange}
228
- options={options ?? []}
280
+ <CellOptionsEditor
281
+ field="radiogroup"
282
+ value={value}
283
+ fieldProps={fieldProps}
229
284
  disabled={disabled || readOnly}
230
- size={knobProps.sizeToken}
231
- orientation="horizontal"
232
- {...restProps}
233
- />
285
+ label={(restProps as any)["aria-label"] ?? columnLabel ?? columnId}
286
+ >
287
+ {(close) => (
288
+ <RadioGroup
289
+ value={value != null ? String(value) : ""}
290
+ onValueChange={(next: string) => {
291
+ handleChange(next);
292
+ close();
293
+ }}
294
+ options={options ?? []}
295
+ disabled={disabled || readOnly}
296
+ size={knobProps.sizeToken}
297
+ orientation="vertical"
298
+ {...restProps}
299
+ />
300
+ )}
301
+ </CellOptionsEditor>
234
302
  </CellWrapper>
235
303
  );
236
304
 
@@ -251,30 +319,51 @@ export function DataTableCell({
251
319
 
252
320
  // ─── Numeric inputs ───────────────────────────────────────
253
321
  case "stepper":
322
+ // Free-entry numeric editor: buffer as a draft; commit on Enter/blur,
323
+ // Escape reverts (wheel/arrow ticks also stay in the draft until blur).
254
324
  return (
255
- <CellWrapper>
256
- <Stepper
257
- defaultValue={value != null ? Number(value) : undefined}
258
- onChange={(v: any) => handleChange(v)}
259
- min={min}
260
- max={max}
261
- step={step ?? 1}
262
- precision={precision ?? 0}
263
- disabled={disabled}
264
- readOnly={readOnly}
265
- placeholder={placeholder || "0"}
266
- size={knobProps.sizeToken}
267
- // In-cell stepper renders as plain numeric input — full +/- buttons
268
- // overflow narrow columns. Wheel and keyboard arrows still work.
269
- showButtons={false}
270
- {...restProps}
271
- />
325
+ // Native keeps stretch (like the Slider fill-type opt-out below): RN
326
+ // TextInput has no intrinsic width, so the end-aligned (non-stretch)
327
+ // numeric column collapses the chromeless input to 0pt — invisible
328
+ // AND culled from the a11y tree (iOS strips zero-rect subtrees). Web
329
+ // inputs carry an intrinsic width, so numeric end-alignment stays.
330
+ <CellWrapper justify={isWeb ? cellJustify : "flex-start"}>
331
+ <DraftFieldEditor committed={value} onCommit={handleChange}>
332
+ {(draftValue, onDraftChange) => (
333
+ <Stepper
334
+ defaultValue={draftValue != null ? Number(draftValue) : undefined}
335
+ onChange={onDraftChange}
336
+ min={min}
337
+ max={max}
338
+ step={step ?? 1}
339
+ precision={precision ?? 0}
340
+ disabled={disabled}
341
+ readOnly={readOnly}
342
+ placeholder={placeholder || "0"}
343
+ size={knobProps.sizeToken}
344
+ // In-cell stepper renders as plain numeric input — full +/- buttons
345
+ // overflow narrow columns. Wheel and keyboard arrows still work.
346
+ showButtons={false}
347
+ {...restProps}
348
+ // Chromeless in-cell control has no field label — name it from
349
+ // the column header (same fallback chain as checkbox/select).
350
+ inputProps={{
351
+ "aria-label": (restProps as any)["aria-label"] ?? columnLabel ?? columnId,
352
+ ...(restProps as any).inputProps,
353
+ }}
354
+ />
355
+ )}
356
+ </DraftFieldEditor>
272
357
  </CellWrapper>
273
358
  );
274
359
 
275
360
  case "slider":
276
361
  return (
277
- <CellWrapper minWidth={120}>
362
+ // Fill-type control: number columns justify flex-end, but flex-end
363
+ // kills cross-axis stretch and a Slider has no intrinsic width — the
364
+ // whole track collapses to 0. Sliders fill the cell instead of
365
+ // aligning (align-by-type governs content, not fill controls).
366
+ <CellWrapper justify="flex-start" minWidth={120}>
278
367
  <Slider
279
368
  value={[value != null ? Number(value) : (min ?? 0)]}
280
369
  onValueChange={readOnly ? undefined : (values) => handleChange(values[0])}
@@ -290,11 +379,16 @@ export function DataTableCell({
290
379
 
291
380
  case "progress":
292
381
  return (
293
- <CellWrapper minWidth={120}>
382
+ <CellWrapper justify={cellJustify} minWidth={120}>
294
383
  <Progress
295
384
  value={value != null ? Number(value) : 0}
296
385
  size={knobProps.sizeToken}
297
386
  {...restProps}
387
+ // Tamagui Progress's size variant pins width/minWidth (~220px),
388
+ // overriding the frame's width="100%" and overflowing narrow
389
+ // columns. progressProps spreads after the size variant, so it
390
+ // wins and the bar adopts the cell width.
391
+ progressProps={{ width: "100%", minWidth: 0, ...restProps.progressProps }}
298
392
  />
299
393
  </CellWrapper>
300
394
  );
@@ -311,8 +405,9 @@ export function DataTableCell({
311
405
  onChange={(v: number) => handleChange(Math.round(v * stars))}
312
406
  disabled={disabled || readOnly}
313
407
  maxStars={stars}
314
- starIcon={restProps.starIcon ?? Star}
408
+ starIcon={restProps.starIcon ?? CellStar}
315
409
  size={knobProps.sizeToken}
410
+ compact
316
411
  />
317
412
  </CellWrapper>
318
413
  );
@@ -327,7 +422,7 @@ export function DataTableCell({
327
422
  onValueChange={handleChange}
328
423
  disabled={disabled}
329
424
  readOnly={readOnly}
330
- placeholder={placeholder || "Select date"}
425
+ placeholder={placeholder || t("Select date")}
331
426
  minDate={minDate}
332
427
  maxDate={maxDate}
333
428
  size={knobProps.sizeToken}
@@ -344,7 +439,7 @@ export function DataTableCell({
344
439
  onValueChange={handleChange}
345
440
  disabled={disabled}
346
441
  readOnly={readOnly}
347
- placeholder={placeholder || "Select date & time"}
442
+ placeholder={placeholder || t("Select date & time")}
348
443
  minDate={minDate}
349
444
  maxDate={maxDate}
350
445
  timeFormat={timeFormat}
@@ -361,7 +456,7 @@ export function DataTableCell({
361
456
  value={value ?? ""}
362
457
  onChange={handleChange}
363
458
  disabled={disabled}
364
- placeholder={placeholder || "Select time"}
459
+ placeholder={placeholder || t("Select time")}
365
460
  timeFormat={timeFormat}
366
461
  size={knobProps.sizeToken}
367
462
  {...restProps}
@@ -370,43 +465,59 @@ export function DataTableCell({
370
465
  );
371
466
 
372
467
  case "daterangepicker":
468
+ // The picker only emits complete {start,end} ranges (or null on clear),
469
+ // and completing a range closes the popover — those are the confirm
470
+ // gestures, so commits pass straight through. Escape remounts the
471
+ // picker to discard a half-picked range (start chosen, end pending).
373
472
  return (
374
473
  <CellWrapper>
375
- <DateRangePicker
376
- defaultValue={value}
377
- disabled={disabled}
378
- placeholder={placeholder || "Select range"}
379
- minDate={minDate}
380
- maxDate={maxDate}
381
- size={knobProps.sizeToken}
382
- {...restProps}
383
- />
474
+ <DraftFieldEditor committed={value} onCommit={handleChange} mode="change">
475
+ {(draftValue, onDraftChange) => (
476
+ <DateRangePicker
477
+ value={draftValue}
478
+ onChange={onDraftChange}
479
+ disabled={disabled}
480
+ placeholder={placeholder || t("Select range")}
481
+ minDate={minDate}
482
+ maxDate={maxDate}
483
+ size={knobProps.sizeToken}
484
+ {...restProps}
485
+ />
486
+ )}
487
+ </DraftFieldEditor>
384
488
  </CellWrapper>
385
489
  );
386
490
 
387
491
  case "multidatepicker":
492
+ // Accumulating editor: day toggles build a draft; one commit fires when
493
+ // the cell is left/closed (blur or outside click), Escape discards.
388
494
  return (
389
495
  <CellWrapper>
390
- <MultiDatePicker
391
- defaultValue={value}
392
- disabled={disabled}
393
- placeholder={placeholder || "Select dates"}
394
- minDate={minDate}
395
- maxDate={maxDate}
396
- size={knobProps.sizeToken}
397
- {...restProps}
398
- />
496
+ <DraftFieldEditor committed={value} onCommit={handleChange}>
497
+ {(draftValue, onDraftChange) => (
498
+ <MultiDatePicker
499
+ value={draftValue}
500
+ onChange={onDraftChange}
501
+ disabled={disabled}
502
+ placeholder={placeholder || t("Select dates")}
503
+ minDate={minDate}
504
+ maxDate={maxDate}
505
+ size={knobProps.sizeToken}
506
+ {...restProps}
507
+ />
508
+ )}
509
+ </DraftFieldEditor>
399
510
  </CellWrapper>
400
511
  );
401
512
 
402
513
  case "duration":
403
514
  return (
404
- <CellWrapper>
515
+ <CellWrapper justify={cellJustify}>
405
516
  <Duration
406
517
  value={value != null ? Number(value) : 0}
407
518
  onChange={handleChange}
408
519
  disabled={disabled}
409
- placeholder={placeholder || "Select duration"}
520
+ placeholder={placeholder || t("Select duration")}
410
521
  size={knobProps.sizeToken}
411
522
  {...restProps}
412
523
  />
@@ -430,31 +541,51 @@ export function DataTableCell({
430
541
  );
431
542
 
432
543
  case "phoneinput":
544
+ // Free-entry editor emitting per keystroke: buffer as a draft; commit
545
+ // on Enter/blur, Escape reverts.
433
546
  return (
434
547
  <CellWrapper>
435
- <PhoneInput
436
- defaultValue={value ?? ""}
437
- disabled={disabled}
438
- readOnly={readOnly}
439
- placeholder={placeholder || "Phone number"}
440
- defaultCountry={defaultCountry}
441
- size={knobProps.sizeToken}
442
- {...restProps}
443
- />
548
+ <DraftFieldEditor committed={value} onCommit={handleChange}>
549
+ {(draftValue, onDraftChange) => (
550
+ <PhoneInput
551
+ defaultValue={draftValue ?? ""}
552
+ onChange={onDraftChange}
553
+ disabled={disabled}
554
+ readOnly={readOnly}
555
+ placeholder={placeholder || t("Phone number")}
556
+ defaultCountry={defaultCountry}
557
+ size={knobProps.sizeToken}
558
+ {...restProps}
559
+ />
560
+ )}
561
+ </DraftFieldEditor>
444
562
  </CellWrapper>
445
563
  );
446
564
 
447
565
  case "otp":
566
+ // Multi-digit accumulation: digits build a draft; commit on Enter or
567
+ // when focus leaves the cell (auto-advance between digit inputs stays
568
+ // inside), Escape reverts.
448
569
  return (
449
- <CellWrapper justify="center">
450
- <OTPInput
451
- value={value ?? ""}
452
- onChange={handleChange}
453
- disabled={disabled || readOnly}
454
- length={otpLength ?? 6}
455
- size={knobProps.sizeToken}
456
- {...restProps}
457
- />
570
+ // Native start-aligns: the digit row is physically wider than narrow
571
+ // cells (4 tap targets), and center-justification overflows it
572
+ // symmetrically — the first digit lands off-cell/off-screen. Start
573
+ // alignment keeps digit 1 anchored; overflow spills toward the
574
+ // trailing edge where RN leaves it visible. Web keeps center (its
575
+ // CellWrapper clips overflow-x at the cell edge instead).
576
+ <CellWrapper justify={isWeb ? "center" : "flex-start"}>
577
+ <DraftFieldEditor committed={value} onCommit={handleChange}>
578
+ {(draftValue, onDraftChange) => (
579
+ <OTPInput
580
+ value={draftValue ?? ""}
581
+ onChange={onDraftChange}
582
+ disabled={disabled || readOnly}
583
+ length={otpLength ?? 6}
584
+ size={knobProps.sizeToken}
585
+ {...restProps}
586
+ />
587
+ )}
588
+ </DraftFieldEditor>
458
589
  </CellWrapper>
459
590
  );
460
591
 
@@ -466,34 +597,63 @@ export function DataTableCell({
466
597
  fieldProps={fieldProps}
467
598
  disabled={disabled}
468
599
  readOnly={readOnly}
469
- title="Edit text"
600
+ onCommit={handleChange}
601
+ title={t("Edit text")}
470
602
  >
471
- <MentionInput
472
- defaultValue={value ?? ""}
473
- disabled={disabled}
474
- readOnly={readOnly}
475
- placeholder={placeholder || "Enter text..."}
476
- mentions={mentions ? [{ trigger: "@", data: mentions }] : [{ trigger: "@", data: [] }]}
477
- size={knobProps.sizeToken}
478
- {...restProps}
479
- />
603
+ {(draftValue, onDraftChange) => (
604
+ <MentionInput
605
+ defaultValue={draftValue ?? ""}
606
+ onTextChange={onDraftChange}
607
+ disabled={disabled}
608
+ readOnly={readOnly}
609
+ placeholder={placeholder || t("Enter text...")}
610
+ mentions={
611
+ mentions ? [{ trigger: "@", data: mentions }] : [{ trigger: "@", data: [] }]
612
+ }
613
+ size={knobProps.sizeToken}
614
+ {...restProps}
615
+ />
616
+ )}
480
617
  </CellModalEditor>
481
618
  );
482
619
 
483
620
  case "barcode":
621
+ // LC-06: the full editor (input + scan button + camera scanner surface)
622
+ // is far larger than the cell anchor, so it opens in the modal editor
623
+ // like other heavy fields — never inline where the scanner would grow
624
+ // the row. The cell face is FieldDisplay's compact drawn-barcode preview.
484
625
  return (
485
- <CellWrapper>
486
- <Barcode
487
- value={value ?? ""}
488
- onChange={handleChange}
489
- disabled={disabled}
490
- size={knobProps.sizeToken}
491
- barcodeIcon={restProps.barcodeIcon}
492
- scanIcon={restProps.scanIcon}
493
- stopIcon={restProps.stopIcon}
494
- {...restProps}
495
- />
496
- </CellWrapper>
626
+ <CellModalEditor
627
+ field="barcode"
628
+ value={value}
629
+ fieldProps={fieldProps}
630
+ disabled={disabled}
631
+ readOnly={readOnly}
632
+ onCommit={handleChange}
633
+ title={t("Barcode")}
634
+ >
635
+ {(draftValue, onDraftChange) => (
636
+ <View flexDirection="column" {...knobProps.gap}>
637
+ <Barcode
638
+ value={String(draftValue ?? "")}
639
+ onChange={onDraftChange}
640
+ disabled={disabled}
641
+ readOnly={readOnly}
642
+ size={knobProps.sizeToken}
643
+ barcodeIcon={restProps.barcodeIcon}
644
+ scanIcon={restProps.scanIcon}
645
+ stopIcon={restProps.stopIcon}
646
+ {...restProps}
647
+ />
648
+ <BarcodePreview
649
+ value={String(draftValue ?? "")}
650
+ height={64}
651
+ moduleWidth={2}
652
+ showText
653
+ />
654
+ </View>
655
+ )}
656
+ </CellModalEditor>
497
657
  );
498
658
 
499
659
  // ─── File/media inputs ────────────────────────────────────
@@ -505,17 +665,21 @@ export function DataTableCell({
505
665
  fieldProps={fieldProps}
506
666
  disabled={disabled}
507
667
  readOnly={readOnly}
508
- title="Upload file"
668
+ onCommit={handleChange}
669
+ title={t("Upload file")}
509
670
  >
510
- <FileUpload
511
- defaultValue={value}
512
- disabled={disabled}
513
- readOnly={readOnly}
514
- placeholder={placeholder || "Upload file"}
515
- accept={restProps.accept}
516
- size={knobProps.sizeToken}
517
- {...restProps}
518
- />
671
+ {(draftValue, onDraftChange) => (
672
+ <FileUpload
673
+ defaultValue={draftValue}
674
+ onValueChange={onDraftChange}
675
+ disabled={disabled}
676
+ readOnly={readOnly}
677
+ placeholder={placeholder || t("Upload file")}
678
+ accept={restProps.accept}
679
+ size={knobProps.sizeToken}
680
+ {...restProps}
681
+ />
682
+ )}
519
683
  </CellModalEditor>
520
684
  );
521
685
 
@@ -527,18 +691,21 @@ export function DataTableCell({
527
691
  fieldProps={fieldProps}
528
692
  disabled={disabled}
529
693
  readOnly={readOnly}
530
- title="Image"
694
+ onCommit={handleChange}
695
+ title={t("Image")}
531
696
  >
532
- <ImageField
533
- value={value}
534
- onValueChange={handleChange}
535
- disabled={disabled}
536
- readOnly={readOnly}
537
- imageWidth={200}
538
- imageHeight={200}
539
- showRemove={!readOnly}
540
- {...restProps}
541
- />
697
+ {(draftValue, onDraftChange) => (
698
+ <ImageField
699
+ value={draftValue}
700
+ onValueChange={onDraftChange}
701
+ disabled={disabled}
702
+ readOnly={readOnly}
703
+ imageWidth={200}
704
+ imageHeight={200}
705
+ showRemove={!readOnly}
706
+ {...restProps}
707
+ />
708
+ )}
542
709
  </CellModalEditor>
543
710
  );
544
711
 
@@ -550,18 +717,21 @@ export function DataTableCell({
550
717
  fieldProps={fieldProps}
551
718
  disabled={disabled}
552
719
  readOnly={readOnly}
553
- title="Signature"
720
+ onCommit={handleChange}
721
+ title={t("Signature")}
554
722
  >
555
- <Signature
556
- value={value ?? ""}
557
- onChange={handleChange}
558
- disabled={disabled}
559
- size={knobProps.sizeToken}
560
- width={restProps.width ?? 600}
561
- height={restProps.height ?? 240}
562
- clearIcon={restProps.clearIcon}
563
- {...restProps}
564
- />
723
+ {(draftValue, onDraftChange) => (
724
+ <Signature
725
+ value={draftValue ?? ""}
726
+ onChange={onDraftChange}
727
+ disabled={disabled}
728
+ size={knobProps.sizeToken}
729
+ width={restProps.width ?? 600}
730
+ height={restProps.height ?? 240}
731
+ clearIcon={restProps.clearIcon}
732
+ {...restProps}
733
+ />
734
+ )}
565
735
  </CellModalEditor>
566
736
  );
567
737
 
@@ -573,18 +743,27 @@ export function DataTableCell({
573
743
  fieldProps={fieldProps}
574
744
  disabled={disabled}
575
745
  readOnly={readOnly}
576
- title="Location"
746
+ onCommit={handleChange}
747
+ title={t("Location")}
577
748
  >
578
- <Geolocation
579
- value={typeof value === "string" ? value : value ? JSON.stringify(value) : ""}
580
- onChange={handleChange}
581
- disabled={disabled}
582
- size={knobProps.sizeToken}
583
- locationIcon={restProps.locationIcon}
584
- expandIcon={restProps.expandIcon}
585
- renderMap={restProps.renderMap}
586
- {...restProps}
587
- />
749
+ {(draftValue, onDraftChange) => (
750
+ <Geolocation
751
+ value={
752
+ typeof draftValue === "string"
753
+ ? draftValue
754
+ : draftValue
755
+ ? JSON.stringify(draftValue)
756
+ : ""
757
+ }
758
+ onChange={onDraftChange}
759
+ disabled={disabled}
760
+ size={knobProps.sizeToken}
761
+ locationIcon={restProps.locationIcon}
762
+ expandIcon={restProps.expandIcon}
763
+ renderMap={restProps.renderMap}
764
+ {...restProps}
765
+ />
766
+ )}
588
767
  </CellModalEditor>
589
768
  );
590
769
 
@@ -597,18 +776,21 @@ export function DataTableCell({
597
776
  fieldProps={fieldProps}
598
777
  disabled={disabled}
599
778
  readOnly={readOnly}
600
- title="Edit"
779
+ onCommit={handleChange}
780
+ title={t("Edit")}
601
781
  >
602
- <RichTextEditor
603
- value={value ?? ""}
604
- onChange={handleChange}
605
- disabled={disabled}
606
- readOnly={readOnly}
607
- placeholder={placeholder || "Write something..."}
608
- minHeight={restProps.minHeight ?? 240}
609
- size={knobProps.sizeToken}
610
- {...restProps}
611
- />
782
+ {(draftValue, onDraftChange) => (
783
+ <RichTextEditor
784
+ value={draftValue ?? ""}
785
+ onChange={onDraftChange}
786
+ disabled={disabled}
787
+ readOnly={readOnly}
788
+ placeholder={placeholder || t("Write something...")}
789
+ minHeight={restProps.minHeight ?? 240}
790
+ size={knobProps.sizeToken}
791
+ {...restProps}
792
+ />
793
+ )}
612
794
  </CellModalEditor>
613
795
  );
614
796
 
@@ -620,17 +802,20 @@ export function DataTableCell({
620
802
  fieldProps={fieldProps}
621
803
  disabled={disabled}
622
804
  readOnly={readOnly}
623
- title="Edit markdown"
805
+ onCommit={handleChange}
806
+ title={t("Edit markdown")}
624
807
  >
625
- <TextArea
626
- value={value != null ? String(value) : ""}
627
- onChangeText={handleChange}
628
- placeholder={placeholder || "Markdown..."}
629
- disabled={disabled}
630
- readOnly={readOnly}
631
- size={knobProps.sizeToken}
632
- {...restProps}
633
- />
808
+ {(draftValue, onDraftChange) => (
809
+ <TextArea
810
+ value={draftValue != null ? String(draftValue) : ""}
811
+ onChangeText={onDraftChange}
812
+ placeholder={placeholder || t("Markdown...")}
813
+ disabled={disabled}
814
+ readOnly={readOnly}
815
+ size={knobProps.sizeToken}
816
+ {...restProps}
817
+ />
818
+ )}
634
819
  </CellModalEditor>
635
820
  );
636
821
 
@@ -642,17 +827,20 @@ export function DataTableCell({
642
827
  fieldProps={fieldProps}
643
828
  disabled={disabled}
644
829
  readOnly={readOnly}
645
- title="Edit code"
830
+ onCommit={handleChange}
831
+ title={t("Edit code")}
646
832
  >
647
- <TextArea
648
- value={value != null ? String(value) : ""}
649
- onChangeText={handleChange}
650
- placeholder={placeholder || "Code..."}
651
- disabled={disabled}
652
- readOnly={readOnly}
653
- size={knobProps.sizeToken}
654
- {...restProps}
655
- />
833
+ {(draftValue, onDraftChange) => (
834
+ <TextArea
835
+ value={draftValue != null ? String(draftValue) : ""}
836
+ onChangeText={onDraftChange}
837
+ placeholder={placeholder || t("Code...")}
838
+ disabled={disabled}
839
+ readOnly={readOnly}
840
+ size={knobProps.sizeToken}
841
+ {...restProps}
842
+ />
843
+ )}
656
844
  </CellModalEditor>
657
845
  );
658
846
 
@@ -660,14 +848,16 @@ export function DataTableCell({
660
848
  case "textarea":
661
849
  return (
662
850
  <CellWrapper>
663
- <TextArea
664
- value={value != null ? String(value) : ""}
665
- onChangeText={handleChange}
851
+ <InlineTextEditor
852
+ value={value}
853
+ onCommit={handleChange}
854
+ multiline
666
855
  placeholder={placeholder}
667
856
  disabled={disabled}
668
857
  readOnly={readOnly}
669
- size={knobProps.sizeToken}
670
- {...restProps}
858
+ sizeToken={knobProps.sizeToken}
859
+ ariaLabel={(restProps as any)["aria-label"] ?? columnLabel ?? columnId}
860
+ restProps={restProps}
671
861
  />
672
862
  </CellWrapper>
673
863
  );
@@ -675,22 +865,350 @@ export function DataTableCell({
675
865
  case "input":
676
866
  default:
677
867
  return (
678
- <CellWrapper>
679
- <Input
680
- value={value != null ? String(value) : ""}
681
- onChangeText={handleChange}
868
+ <CellWrapper justify={cellJustify}>
869
+ <InlineTextEditor
870
+ value={value}
871
+ onCommit={handleChange}
682
872
  placeholder={placeholder}
683
873
  disabled={disabled}
684
874
  readOnly={readOnly}
685
- size={knobProps.sizeToken}
686
- {...restProps}
875
+ sizeToken={knobProps.sizeToken}
876
+ ariaLabel={(restProps as any)["aria-label"] ?? columnLabel ?? columnId}
877
+ restProps={restProps}
687
878
  />
688
879
  </CellWrapper>
689
880
  );
690
881
  }
691
882
  }
692
883
 
693
- // ─── Internal helper ──────────────────────────────────────────
884
+ // ─── Internal helpers ─────────────────────────────────────────
885
+
886
+ // Rating renders 24px stars (~160px for 5 incl gaps) which overlap neighbor
887
+ // columns at typical ~130px cell widths. 16px stars fit.
888
+ function CellStar(props: { size: number; weight: "fill" | "regular"; color: string }) {
889
+ return <Star {...props} size={16} />;
890
+ }
891
+
892
+ /**
893
+ * Draft-until-commit wrapper for inline text editors (input, textarea).
894
+ * Typing edits a local draft; Enter (single-line) or blur commits it via
895
+ * onCommit; Escape restores the pre-edit value without committing.
896
+ */
897
+ function InlineTextEditor({
898
+ value,
899
+ onCommit,
900
+ multiline,
901
+ placeholder,
902
+ disabled,
903
+ readOnly,
904
+ sizeToken,
905
+ ariaLabel,
906
+ restProps,
907
+ }: {
908
+ value: any;
909
+ onCommit: (value: string) => void;
910
+ multiline?: boolean;
911
+ placeholder?: string;
912
+ disabled?: boolean;
913
+ readOnly?: boolean;
914
+ sizeToken?: string;
915
+ /** Accessible name for the chromeless in-cell editor (column header). */
916
+ ariaLabel?: string;
917
+ restProps: Record<string, any>;
918
+ }) {
919
+ const committed = value != null ? String(value) : "";
920
+ const [draft, setDraft] = useState(committed);
921
+ const [prevCommitted, setPrevCommitted] = useState(committed);
922
+ // The Input field is uncontrolled (value maps to defaultValue), so Escape
923
+ // has to remount it to push the reverted draft back into the DOM.
924
+ const [resetKey, setResetKey] = useState(0);
925
+ const draftRef = useRef(draft);
926
+ draftRef.current = draft;
927
+ const committedRef = useRef(committed);
928
+ committedRef.current = committed;
929
+
930
+ // External value updates (row edits, story controls) reset the draft.
931
+ if (prevCommitted !== committed) {
932
+ setPrevCommitted(committed);
933
+ setDraft(committed);
934
+ }
935
+
936
+ const commit = useCallback(() => {
937
+ if (draftRef.current !== committedRef.current) {
938
+ // Optimistically mark the draft committed so the paired web keydown +
939
+ // native keypress handlers don't double-fire onCommit for one Enter.
940
+ committedRef.current = draftRef.current;
941
+ onCommit(draftRef.current);
942
+ }
943
+ }, [onCommit]);
944
+
945
+ const cancel = useCallback(() => {
946
+ if (draftRef.current === committedRef.current) return;
947
+ setDraft(committedRef.current);
948
+ setResetKey((key) => key + 1);
949
+ }, []);
950
+
951
+ const handleKeyPress = useCallback(
952
+ (event: any) => {
953
+ const key = event?.nativeEvent?.key ?? event?.key;
954
+ if (key === "Escape") cancel();
955
+ else if (key === "Enter" && !multiline) commit();
956
+ },
957
+ [cancel, commit, multiline],
958
+ );
959
+
960
+ const { inputProps: userInputProps, textAreaProps: userTextAreaProps, ...fieldRest } = restProps;
961
+
962
+ if (multiline) {
963
+ return (
964
+ <TextArea
965
+ key={resetKey}
966
+ value={draft}
967
+ onChangeText={setDraft}
968
+ onBlur={commit}
969
+ placeholder={placeholder}
970
+ disabled={disabled}
971
+ readOnly={readOnly}
972
+ size={sizeToken}
973
+ {...fieldRest}
974
+ textAreaProps={{
975
+ ...(ariaLabel !== undefined ? { "aria-label": ariaLabel } : undefined),
976
+ ...userTextAreaProps,
977
+ // Native fires onKeyPress; the DOM keypress event never fires for
978
+ // Escape, so web needs onKeyDown to see it.
979
+ onKeyPress: handleKeyPress,
980
+ onKeyDown: handleKeyPress,
981
+ onBlur: commit,
982
+ }}
983
+ />
984
+ );
985
+ }
986
+
987
+ return (
988
+ <Input
989
+ key={resetKey}
990
+ value={draft}
991
+ onChangeText={setDraft}
992
+ onBlur={commit}
993
+ placeholder={placeholder}
994
+ disabled={disabled}
995
+ readOnly={readOnly}
996
+ size={sizeToken}
997
+ {...fieldRest}
998
+ inputProps={{
999
+ ...(ariaLabel !== undefined ? { "aria-label": ariaLabel } : undefined),
1000
+ ...userInputProps,
1001
+ // Native fires onKeyPress; the DOM keypress event never fires for
1002
+ // Escape, so web needs onKeyDown to see it.
1003
+ onKeyPress: handleKeyPress,
1004
+ onKeyDown: handleKeyPress,
1005
+ onBlur: commit,
1006
+ }}
1007
+ />
1008
+ );
1009
+ }
1010
+
1011
+ /**
1012
+ * Draft-until-commit wrapper for multi-step / free-entry picker editors
1013
+ * (Stepper, PhoneInput, OTP, MultiDatePicker). The wrapped field
1014
+ * edits a local draft; the draft only reaches the table's commit when the
1015
+ * user confirms — Enter inside a text input, or focus leaving the cell
1016
+ * (which includes dismissing a picker popover by clicking elsewhere).
1017
+ * Escape discards the draft and remounts the field so uncontrolled editors
1018
+ * (Stepper, PhoneInput) and popover-internal state reset to the committed
1019
+ * value.
1020
+ *
1021
+ * mode="change" (DateRangePicker) passes changes straight through to the
1022
+ * table — that picker only emits complete ranges, which are themselves the
1023
+ * confirm gesture — but keeps Escape-remount so a half-picked range (start
1024
+ * chosen, end pending) is discarded instead of lingering in the trigger.
1025
+ *
1026
+ * The picker popovers/panels render inline (CSS position:fixed, no React
1027
+ * portal), so their key and focus events bubble through this wrapper.
1028
+ * Native has no Escape/focus-out vocabulary; changes pass straight through
1029
+ * (previous behavior).
1030
+ */
1031
+ function DraftFieldEditor({
1032
+ committed,
1033
+ onCommit,
1034
+ mode = "confirm",
1035
+ children,
1036
+ }: {
1037
+ committed: any;
1038
+ onCommit: (value: any) => void;
1039
+ mode?: "confirm" | "change";
1040
+ children: (value: any, onChange: (value: any) => void) => React.ReactNode;
1041
+ }) {
1042
+ const [draft, setDraft] = useState<{ value: any } | null>(null);
1043
+ const [resetKey, setResetKey] = useState(0);
1044
+ const [prevCommitted, setPrevCommitted] = useState(committed);
1045
+ // An interaction "session" starts on pointer-down inside the cell (or on
1046
+ // the first draft change) and installs document-level listeners: Escape
1047
+ // cancels, pointer-down outside the cell subtree commits. This is needed
1048
+ // because picker popovers close via floating-ui's own document Escape
1049
+ // listener while focus sits on document.body (day buttons aren't focus
1050
+ // targets), so React-tree keydown/blur handlers alone never see those
1051
+ // gestures.
1052
+ const [sessionActive, setSessionActive] = useState(false);
1053
+ const containerRef = useRef<HTMLDivElement | null>(null);
1054
+ const draftRef = useRef(draft);
1055
+ draftRef.current = draft;
1056
+ const committedRef = useRef(committed);
1057
+ committedRef.current = committed;
1058
+ const onCommitRef = useRef(onCommit);
1059
+ onCommitRef.current = onCommit;
1060
+ const blurTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);
1061
+
1062
+ // External value updates (a commit landing, row edits) clear the draft so
1063
+ // the field tracks the new committed value.
1064
+ if (!Object.is(prevCommitted, committed)) {
1065
+ setPrevCommitted(committed);
1066
+ if (draft) setDraft(null);
1067
+ }
1068
+
1069
+ const clearBlurTimer = useCallback(() => {
1070
+ if (blurTimerRef.current) {
1071
+ clearTimeout(blurTimerRef.current);
1072
+ blurTimerRef.current = null;
1073
+ }
1074
+ }, []);
1075
+
1076
+ useEffect(() => clearBlurTimer, [clearBlurTimer]);
1077
+
1078
+ const commitDraft = useCallback(() => {
1079
+ clearBlurTimer();
1080
+ const active = draftRef.current;
1081
+ if (!active) return;
1082
+ if (!Object.is(active.value, committedRef.current)) {
1083
+ // Optimistically mark the draft committed so the Enter path and the
1084
+ // trailing focus-out timer can't double-fire onCommit for one confirm.
1085
+ committedRef.current = active.value;
1086
+ onCommitRef.current(active.value);
1087
+ }
1088
+ // The draft object itself stays until the committed prop catches up (see
1089
+ // render adjustment above) so controlled fields don't flash the stale
1090
+ // value between the commit and the parent's data update.
1091
+ }, [clearBlurTimer]);
1092
+
1093
+ const cancelDraft = useCallback(() => {
1094
+ clearBlurTimer();
1095
+ setSessionActive(false);
1096
+ draftRef.current = null;
1097
+ setDraft(null);
1098
+ // Remount the field: uncontrolled editors and popover-internal state
1099
+ // (DateRange mid-pick) hold edits that no prop change can reset.
1100
+ setResetKey((key) => key + 1);
1101
+ }, [clearBlurTimer]);
1102
+
1103
+ const handleDraftChange = useCallback(
1104
+ (value: any) => {
1105
+ if (mode === "change") {
1106
+ onCommitRef.current(value);
1107
+ return;
1108
+ }
1109
+ draftRef.current = { value };
1110
+ setDraft(draftRef.current);
1111
+ // Wheel/keyboard edits can create a draft without a pointer-down;
1112
+ // make sure the document listeners are active for it.
1113
+ setSessionActive(true);
1114
+ },
1115
+ [mode],
1116
+ );
1117
+
1118
+ useEffect(() => {
1119
+ if (!isWeb || !sessionActive) return undefined;
1120
+ const handleDocKeyDown = (event: KeyboardEvent) => {
1121
+ if (event.key === "Escape") cancelDraft();
1122
+ };
1123
+ const handleDocPointerDown = (event: PointerEvent) => {
1124
+ const node = containerRef.current;
1125
+ if (node && event.target instanceof Node && node.contains(event.target)) return;
1126
+ setSessionActive(false);
1127
+ commitDraft();
1128
+ };
1129
+ document.addEventListener("keydown", handleDocKeyDown, true);
1130
+ document.addEventListener("pointerdown", handleDocPointerDown, true);
1131
+ return () => {
1132
+ document.removeEventListener("keydown", handleDocKeyDown, true);
1133
+ document.removeEventListener("pointerdown", handleDocPointerDown, true);
1134
+ };
1135
+ }, [sessionActive, cancelDraft, commitDraft]);
1136
+
1137
+ if (!isWeb) {
1138
+ return <>{children(committed, (value: any) => onCommitRef.current(value))}</>;
1139
+ }
1140
+
1141
+ const handleKeyDown = (event: React.KeyboardEvent) => {
1142
+ if (event.key === "Escape") {
1143
+ cancelDraft();
1144
+ return;
1145
+ }
1146
+ if (event.key === "Enter" && mode === "confirm") {
1147
+ const target = event.target as HTMLElement | null;
1148
+ // Only confirm from text inputs — Enter on a popover day button is the
1149
+ // button's activation (toggle), not a confirm.
1150
+ if (target && (target.tagName === "INPUT" || target.tagName === "TEXTAREA")) {
1151
+ // Blur first so uncontrolled editors (Stepper) flush their typed
1152
+ // text through onChange before the draft is committed.
1153
+ target.blur?.();
1154
+ commitDraft();
1155
+ }
1156
+ }
1157
+ };
1158
+
1159
+ // A focus-out schedules the commit; a focus-in landing back inside the
1160
+ // cell (popover day buttons, OTP auto-advance, country combobox) cancels
1161
+ // it — so the draft only commits when focus fully leaves the cell.
1162
+ const handleBlur = () => {
1163
+ clearBlurTimer();
1164
+ blurTimerRef.current = setTimeout(() => {
1165
+ blurTimerRef.current = null;
1166
+ commitDraft();
1167
+ }, 0);
1168
+ };
1169
+
1170
+ return (
1171
+ <div
1172
+ key={resetKey}
1173
+ ref={containerRef}
1174
+ style={{ display: "contents" }}
1175
+ onKeyDown={handleKeyDown}
1176
+ onPointerDownCapture={() => setSessionActive(true)}
1177
+ onFocus={mode === "confirm" ? clearBlurTimer : undefined}
1178
+ onBlur={mode === "confirm" ? handleBlur : undefined}
1179
+ >
1180
+ {children(draft ? draft.value : committed, handleDraftChange)}
1181
+ </div>
1182
+ );
1183
+ }
1184
+
1185
+ const CURRENCY_SYMBOL_TO_CODE: Record<string, string> = {
1186
+ $: "USD",
1187
+ "€": "EUR",
1188
+ "£": "GBP",
1189
+ "¥": "JPY",
1190
+ "₹": "INR",
1191
+ "₩": "KRW",
1192
+ "₽": "RUB",
1193
+ R$: "BRL",
1194
+ };
1195
+
1196
+ const currencyCodeCache = new Map<string, string | undefined>();
1197
+
1198
+ function normalizeCurrencyCode(currency: unknown): string | undefined {
1199
+ if (typeof currency !== "string" || !currency) return undefined;
1200
+ if (currencyCodeCache.has(currency)) return currencyCodeCache.get(currency);
1201
+ const mapped = CURRENCY_SYMBOL_TO_CODE[currency] ?? currency;
1202
+ let resolved: string | undefined;
1203
+ try {
1204
+ new Intl.NumberFormat(undefined, { style: "currency", currency: mapped });
1205
+ resolved = mapped;
1206
+ } catch {
1207
+ resolved = undefined;
1208
+ }
1209
+ currencyCodeCache.set(currency, resolved);
1210
+ return resolved;
1211
+ }
694
1212
 
695
1213
  function CellWrapper({
696
1214
  children,
@@ -703,18 +1221,39 @@ function CellWrapper({
703
1221
  gap?: string;
704
1222
  minWidth?: number;
705
1223
  }) {
1224
+ // Fields render chromeless inside cells (useIsInTableCell strips the input
1225
+ // frame), so the cell chrome owns the focus affordance: the knob recipe's
1226
+ // focus-visible ring shows on the cell whenever focus is inside it
1227
+ // (DG-A11Y-01 / Axiom 12 — recipe ring, not a hand-rolled outline).
1228
+ const { control } = useResolvedKnobs();
1229
+ // Column + stretch layout so field roots adopt the cell width (input frames
1230
+ // carry minWidth 0 and shrink to fit); maxWidth + a horizontal-only clip
1231
+ // (overflow-x: clip pairs with overflow-y: visible, unlike hidden) catch
1232
+ // anything that still refuses to shrink, so in-cell editors never overlap
1233
+ // neighbor columns. The vertical axis stays visible because several forms
1234
+ // field frames resolve to 0-height boxes and center their content on the
1235
+ // wrapper's midline — a vertical clip would swallow them. flexGrow fills
1236
+ // the TableCell's height so that midline sits at the row center. Popover
1237
+ // and modal editors position with strategy "fixed", which escapes this
1238
+ // clip and keeps their natural width.
706
1239
  return (
707
1240
  <View
708
- flexDirection="row"
709
- alignItems="center"
710
- justifyContent={justify}
1241
+ flexDirection="column"
1242
+ flexGrow={1}
1243
+ justifyContent="center"
1244
+ alignItems={justify === "flex-start" ? "stretch" : justify}
711
1245
  width="100%"
1246
+ maxWidth="100%"
1247
+ // Per-axis overflow is web-only CSS; RN styles know only `overflow`.
1248
+ {...(isWeb ? { overflowX: "clip" as any, overflowY: "visible" as any } : undefined)}
712
1249
  gap={gap as any}
713
1250
  minWidth={minWidth}
1251
+ // focus-within is a web-only concept; on native the style prop makes the
1252
+ // wrapper claim the responder and Tamagui-driven presses inside the cell
1253
+ // (Checkbox/Switch frames) never fire.
1254
+ {...(isWeb ? { focusWithinStyle: { ...control.focusVisibleKnobProps } } : undefined)}
714
1255
  >
715
1256
  {children}
716
1257
  </View>
717
1258
  );
718
1259
  }
719
-
720
- export default DataTableCell;