@economic/taco 14.1.1 → 14.2.0-tanstack-virtual-update.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 (279) hide show
  1. package/dist/charts/components/Area/AreaChart.cjs +2 -2
  2. package/dist/charts/components/Area/AreaChart.cjs.map +1 -1
  3. package/dist/charts/components/Area/AreaChart.js +2 -2
  4. package/dist/charts/components/Area/AreaChart.js.map +1 -1
  5. package/dist/charts/components/Bar/BarChart.cjs +1 -1
  6. package/dist/charts/components/Bar/BarChart.cjs.map +1 -1
  7. package/dist/charts/components/Bar/BarChart.js +1 -1
  8. package/dist/charts/components/Bar/BarChart.js.map +1 -1
  9. package/dist/charts/components/Line/LineChart.cjs +1 -1
  10. package/dist/charts/components/Line/LineChart.cjs.map +1 -1
  11. package/dist/charts/components/Line/LineChart.js +1 -1
  12. package/dist/charts/components/Line/LineChart.js.map +1 -1
  13. package/dist/components/Datepicker/Datepicker.cjs +4 -14
  14. package/dist/components/Datepicker/Datepicker.cjs.map +1 -1
  15. package/dist/components/Datepicker/Datepicker.js +4 -14
  16. package/dist/components/Datepicker/Datepicker.js.map +1 -1
  17. package/dist/components/HoverCard/HoverCard.cjs +4 -20
  18. package/dist/components/HoverCard/HoverCard.cjs.map +1 -1
  19. package/dist/components/HoverCard/HoverCard.js +5 -21
  20. package/dist/components/HoverCard/HoverCard.js.map +1 -1
  21. package/dist/components/Popover/Popover.cjs +12 -3
  22. package/dist/components/Popover/Popover.cjs.map +1 -1
  23. package/dist/components/Popover/Popover.d.ts +1 -0
  24. package/dist/components/Popover/Popover.js +14 -5
  25. package/dist/components/Popover/Popover.js.map +1 -1
  26. package/dist/components/Popover/util.cjs +2 -2
  27. package/dist/components/Popover/util.cjs.map +1 -1
  28. package/dist/components/Popover/util.d.ts +1 -1
  29. package/dist/components/Popover/util.js +2 -2
  30. package/dist/components/Popover/util.js.map +1 -1
  31. package/dist/components/Provider/Localization.cjs +3 -0
  32. package/dist/components/Provider/Localization.cjs.map +1 -1
  33. package/dist/components/Provider/Localization.d.ts +6 -0
  34. package/dist/components/Provider/Localization.js +3 -0
  35. package/dist/components/Provider/Localization.js.map +1 -1
  36. package/dist/components/Table3/components/Columns/Cell/Cell.cjs +3 -2
  37. package/dist/components/Table3/components/Columns/Cell/Cell.cjs.map +1 -1
  38. package/dist/components/Table3/components/Columns/Cell/Cell.js +3 -2
  39. package/dist/components/Table3/components/Columns/Cell/Cell.js.map +1 -1
  40. package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.cjs +6 -5
  41. package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.cjs.map +1 -1
  42. package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.js +6 -5
  43. package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.js.map +1 -1
  44. package/dist/components/Table3/components/Columns/Cell/EditingControlCell.cjs +9 -8
  45. package/dist/components/Table3/components/Columns/Cell/EditingControlCell.cjs.map +1 -1
  46. package/dist/components/Table3/components/Columns/Cell/EditingControlCell.js +9 -8
  47. package/dist/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
  48. package/dist/components/Table3/components/Columns/Cell/util.cjs +2 -1
  49. package/dist/components/Table3/components/Columns/Cell/util.cjs.map +1 -1
  50. package/dist/components/Table3/components/Columns/Cell/util.js +2 -1
  51. package/dist/components/Table3/components/Columns/Cell/util.js.map +1 -1
  52. package/dist/components/Table3/components/Editing/Alert.cjs +2 -1
  53. package/dist/components/Table3/components/Editing/Alert.cjs.map +1 -1
  54. package/dist/components/Table3/components/Editing/Alert.js +2 -1
  55. package/dist/components/Table3/components/Editing/Alert.js.map +1 -1
  56. package/dist/components/Table3/components/Row/Editing/SaveStatus.cjs +2 -1
  57. package/dist/components/Table3/components/Row/Editing/SaveStatus.cjs.map +1 -1
  58. package/dist/components/Table3/components/Row/Editing/SaveStatus.js +2 -1
  59. package/dist/components/Table3/components/Row/Editing/SaveStatus.js.map +1 -1
  60. package/dist/components/Table3/components/Row/Row.cjs +2 -1
  61. package/dist/components/Table3/components/Row/Row.cjs.map +1 -1
  62. package/dist/components/Table3/components/Row/Row.js +2 -1
  63. package/dist/components/Table3/components/Row/Row.js.map +1 -1
  64. package/dist/components/Table3/components/Toolbar/Editing/Editing.cjs +2 -1
  65. package/dist/components/Table3/components/Toolbar/Editing/Editing.cjs.map +1 -1
  66. package/dist/components/Table3/components/Toolbar/Editing/Editing.js +2 -1
  67. package/dist/components/Table3/components/Toolbar/Editing/Editing.js.map +1 -1
  68. package/dist/components/Table3/features/useEditingState.cjs +3 -2
  69. package/dist/components/Table3/features/useEditingState.cjs.map +1 -1
  70. package/dist/components/Table3/features/useEditingState.js +3 -2
  71. package/dist/components/Table3/features/useEditingState.js.map +1 -1
  72. package/dist/components/Table3/features/useTableEditing.cjs +4 -3
  73. package/dist/components/Table3/features/useTableEditing.cjs.map +1 -1
  74. package/dist/components/Table3/features/useTableEditing.js +4 -3
  75. package/dist/components/Table3/features/useTableEditing.js.map +1 -1
  76. package/dist/components/Table3/listeners/useTableEditingListener.cjs +2 -1
  77. package/dist/components/Table3/listeners/useTableEditingListener.cjs.map +1 -1
  78. package/dist/components/Table3/listeners/useTableEditingListener.js +2 -1
  79. package/dist/components/Table3/listeners/useTableEditingListener.js.map +1 -1
  80. package/dist/components/Toggletip/Toggletip.cjs +85 -0
  81. package/dist/components/Toggletip/Toggletip.cjs.map +1 -0
  82. package/dist/components/Toggletip/Toggletip.d.ts +13 -0
  83. package/dist/components/Toggletip/Toggletip.js +68 -0
  84. package/dist/components/Toggletip/Toggletip.js.map +1 -0
  85. package/dist/components/Tooltip/Tooltip.cjs +3 -19
  86. package/dist/components/Tooltip/Tooltip.cjs.map +1 -1
  87. package/dist/components/Tooltip/Tooltip.js +3 -19
  88. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  89. package/dist/components/index.d.ts +1 -0
  90. package/dist/index.cjs +3 -0
  91. package/dist/index.cjs.map +1 -1
  92. package/dist/index.js +4 -1
  93. package/dist/index.js.map +1 -1
  94. package/dist/primitives/ArrowTip/ArrowTip.cjs +43 -0
  95. package/dist/primitives/ArrowTip/ArrowTip.cjs.map +1 -0
  96. package/dist/primitives/ArrowTip/ArrowTip.d.ts +10 -0
  97. package/dist/primitives/ArrowTip/ArrowTip.js +26 -0
  98. package/dist/primitives/ArrowTip/ArrowTip.js.map +1 -0
  99. package/dist/primitives/BareButton/BareButton.cjs +28 -0
  100. package/dist/primitives/BareButton/BareButton.cjs.map +1 -0
  101. package/dist/primitives/BareButton/BareButton.d.ts +7 -0
  102. package/dist/primitives/BareButton/BareButton.js +11 -0
  103. package/dist/primitives/BareButton/BareButton.js.map +1 -0
  104. package/dist/primitives/Table/Core/components/Body/Body.cjs +5 -5
  105. package/dist/primitives/Table/Core/components/Body/Body.cjs.map +1 -1
  106. package/dist/primitives/Table/Core/components/Body/Body.js +6 -6
  107. package/dist/primitives/Table/Core/components/Body/Body.js.map +1 -1
  108. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.cjs +2 -2
  109. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.cjs.map +1 -1
  110. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.js +2 -2
  111. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.js.map +1 -1
  112. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.cjs +2 -1
  113. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.cjs.map +1 -1
  114. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.js +2 -1
  115. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.js.map +1 -1
  116. package/dist/primitives/Table/Core/components/Columns/Cell/util.cjs +6 -5
  117. package/dist/primitives/Table/Core/components/Columns/Cell/util.cjs.map +1 -1
  118. package/dist/primitives/Table/Core/components/Columns/Cell/util.js +6 -5
  119. package/dist/primitives/Table/Core/components/Columns/Cell/util.js.map +1 -1
  120. package/dist/primitives/Table/Core/components/Columns/Internal/Actions.cjs +3 -2
  121. package/dist/primitives/Table/Core/components/Columns/Internal/Actions.cjs.map +1 -1
  122. package/dist/primitives/Table/Core/components/Columns/Internal/Actions.js +3 -2
  123. package/dist/primitives/Table/Core/components/Columns/Internal/Actions.js.map +1 -1
  124. package/dist/primitives/Table/Core/components/Columns/Internal/Expansion.cjs +3 -2
  125. package/dist/primitives/Table/Core/components/Columns/Internal/Expansion.cjs.map +1 -1
  126. package/dist/primitives/Table/Core/components/Columns/Internal/Expansion.js +3 -2
  127. package/dist/primitives/Table/Core/components/Columns/Internal/Expansion.js.map +1 -1
  128. package/dist/primitives/Table/Core/components/Columns/Internal/Selection.cjs +3 -2
  129. package/dist/primitives/Table/Core/components/Columns/Internal/Selection.cjs.map +1 -1
  130. package/dist/primitives/Table/Core/components/Columns/Internal/Selection.js +3 -2
  131. package/dist/primitives/Table/Core/components/Columns/Internal/Selection.js.map +1 -1
  132. package/dist/primitives/Table/Core/components/Footer/Footer.cjs +3 -2
  133. package/dist/primitives/Table/Core/components/Footer/Footer.cjs.map +1 -1
  134. package/dist/primitives/Table/Core/components/Footer/Footer.js +3 -2
  135. package/dist/primitives/Table/Core/components/Footer/Footer.js.map +1 -1
  136. package/dist/primitives/Table/Core/components/Footer/Summary.cjs +2 -1
  137. package/dist/primitives/Table/Core/components/Footer/Summary.cjs.map +1 -1
  138. package/dist/primitives/Table/Core/components/Footer/Summary.js +2 -1
  139. package/dist/primitives/Table/Core/components/Footer/Summary.js.map +1 -1
  140. package/dist/primitives/Table/Core/components/Header/Header.cjs +9 -8
  141. package/dist/primitives/Table/Core/components/Header/Header.cjs.map +1 -1
  142. package/dist/primitives/Table/Core/components/Header/Header.js +9 -8
  143. package/dist/primitives/Table/Core/components/Header/Header.js.map +1 -1
  144. package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.cjs +6 -5
  145. package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.cjs.map +1 -1
  146. package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.js +2 -1
  147. package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.js.map +1 -1
  148. package/dist/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.cjs +3 -2
  149. package/dist/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.cjs.map +1 -1
  150. package/dist/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.js +3 -2
  151. package/dist/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.js.map +1 -1
  152. package/dist/primitives/Table/Core/components/Row/Row.cjs +2 -2
  153. package/dist/primitives/Table/Core/components/Row/Row.cjs.map +1 -1
  154. package/dist/primitives/Table/Core/components/Row/Row.js +2 -2
  155. package/dist/primitives/Table/Core/components/Row/Row.js.map +1 -1
  156. package/dist/primitives/Table/Core/components/Toolbar/Toolbar.cjs +2 -1
  157. package/dist/primitives/Table/Core/components/Toolbar/Toolbar.cjs.map +1 -1
  158. package/dist/primitives/Table/Core/components/Toolbar/Toolbar.js +2 -1
  159. package/dist/primitives/Table/Core/components/Toolbar/Toolbar.js.map +1 -1
  160. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.cjs +2 -1
  161. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.cjs.map +1 -1
  162. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js +2 -1
  163. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js.map +1 -1
  164. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/util.cjs +6 -6
  165. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/util.cjs.map +1 -1
  166. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/util.js +6 -6
  167. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/util.js.map +1 -1
  168. package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.cjs +2 -1
  169. package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.cjs.map +1 -1
  170. package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.js +2 -1
  171. package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.js.map +1 -1
  172. package/dist/primitives/Table/Core/components/Toolbar/components/Search/Search.cjs +2 -1
  173. package/dist/primitives/Table/Core/components/Toolbar/components/Search/Search.cjs.map +1 -1
  174. package/dist/primitives/Table/Core/components/Toolbar/components/Search/Search.js +2 -1
  175. package/dist/primitives/Table/Core/components/Toolbar/components/Search/Search.js.map +1 -1
  176. package/dist/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.cjs +2 -1
  177. package/dist/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.cjs.map +1 -1
  178. package/dist/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.js +2 -1
  179. package/dist/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.js.map +1 -1
  180. package/dist/primitives/Table/Core/components/Toolbar/components/Settings/Settings.cjs +2 -1
  181. package/dist/primitives/Table/Core/components/Toolbar/components/Settings/Settings.cjs.map +1 -1
  182. package/dist/primitives/Table/Core/components/Toolbar/components/Settings/Settings.js +2 -1
  183. package/dist/primitives/Table/Core/components/Toolbar/components/Settings/Settings.js.map +1 -1
  184. package/dist/primitives/Table/Core/features/useTableGlobalShortcuts.cjs +1 -1
  185. package/dist/primitives/Table/Core/features/useTableGlobalShortcuts.cjs.map +1 -1
  186. package/dist/primitives/Table/Core/features/useTableGlobalShortcuts.js +2 -2
  187. package/dist/primitives/Table/Core/features/useTableGlobalShortcuts.js.map +1 -1
  188. package/dist/primitives/Table/Core/features/useTableRef.cjs +3 -2
  189. package/dist/primitives/Table/Core/features/useTableRef.cjs.map +1 -1
  190. package/dist/primitives/Table/Core/features/useTableRef.js +3 -2
  191. package/dist/primitives/Table/Core/features/useTableRef.js.map +1 -1
  192. package/dist/primitives/Table/Core/features/useTableRenderer.cjs +13 -12
  193. package/dist/primitives/Table/Core/features/useTableRenderer.cjs.map +1 -1
  194. package/dist/primitives/Table/Core/features/useTableRenderer.js +3 -2
  195. package/dist/primitives/Table/Core/features/useTableRenderer.js.map +1 -1
  196. package/dist/primitives/Table/Core/features/useTableStyle.cjs +2 -1
  197. package/dist/primitives/Table/Core/features/useTableStyle.cjs.map +1 -1
  198. package/dist/primitives/Table/Core/features/useTableStyle.d.ts +857 -857
  199. package/dist/primitives/Table/Core/features/useTableStyle.js +2 -1
  200. package/dist/primitives/Table/Core/features/useTableStyle.js.map +1 -1
  201. package/dist/primitives/Table/Core/features/useTableStyleGrid.cjs +2 -1
  202. package/dist/primitives/Table/Core/features/useTableStyleGrid.cjs.map +1 -1
  203. package/dist/primitives/Table/Core/features/useTableStyleGrid.js +2 -1
  204. package/dist/primitives/Table/Core/features/useTableStyleGrid.js.map +1 -1
  205. package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.cjs +2 -1
  206. package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.cjs.map +1 -1
  207. package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.js +2 -1
  208. package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.js.map +1 -1
  209. package/dist/primitives/Table/useTableManager/features/useTableRowSelection.cjs +5 -5
  210. package/dist/primitives/Table/useTableManager/features/useTableRowSelection.cjs.map +1 -1
  211. package/dist/primitives/Table/useTableManager/features/useTableRowSelection.js +2 -2
  212. package/dist/primitives/Table/useTableManager/features/useTableRowSelection.js.map +1 -1
  213. package/dist/primitives/Table/useTableManager/listeners/useTableDataListener.cjs +2 -1
  214. package/dist/primitives/Table/useTableManager/listeners/useTableDataListener.cjs.map +1 -1
  215. package/dist/primitives/Table/useTableManager/listeners/useTableDataListener.js +2 -1
  216. package/dist/primitives/Table/useTableManager/listeners/useTableDataListener.js.map +1 -1
  217. package/dist/primitives/Table/useTableManager/listeners/useTableFontSizeListener.cjs +2 -1
  218. package/dist/primitives/Table/useTableManager/listeners/useTableFontSizeListener.cjs.map +1 -1
  219. package/dist/primitives/Table/useTableManager/listeners/useTableFontSizeListener.js +2 -1
  220. package/dist/primitives/Table/useTableManager/listeners/useTableFontSizeListener.js.map +1 -1
  221. package/dist/primitives/Table/useTableManager/listeners/useTableRowActiveListener.cjs +4 -3
  222. package/dist/primitives/Table/useTableManager/listeners/useTableRowActiveListener.cjs.map +1 -1
  223. package/dist/primitives/Table/useTableManager/listeners/useTableRowActiveListener.js +2 -1
  224. package/dist/primitives/Table/useTableManager/listeners/useTableRowActiveListener.js.map +1 -1
  225. package/dist/primitives/Table/useTableManager/listeners/useTableRowHeightListener.cjs +2 -1
  226. package/dist/primitives/Table/useTableManager/listeners/useTableRowHeightListener.cjs.map +1 -1
  227. package/dist/primitives/Table/useTableManager/listeners/useTableRowHeightListener.js +2 -1
  228. package/dist/primitives/Table/useTableManager/listeners/useTableRowHeightListener.js.map +1 -1
  229. package/dist/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.cjs +4 -4
  230. package/dist/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.cjs.map +1 -1
  231. package/dist/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.js +2 -2
  232. package/dist/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.js.map +1 -1
  233. package/dist/primitives/Table/useTableManager/listeners/useTableSearchListener.cjs +2 -1
  234. package/dist/primitives/Table/useTableManager/listeners/useTableSearchListener.cjs.map +1 -1
  235. package/dist/primitives/Table/useTableManager/listeners/useTableSearchListener.js +2 -1
  236. package/dist/primitives/Table/useTableManager/listeners/useTableSearchListener.js.map +1 -1
  237. package/dist/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.cjs +2 -1
  238. package/dist/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.cjs.map +1 -1
  239. package/dist/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.js +2 -1
  240. package/dist/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.js.map +1 -1
  241. package/dist/primitives/Table/useTableManager/listeners/useTableSettingsListener.cjs +2 -1
  242. package/dist/primitives/Table/useTableManager/listeners/useTableSettingsListener.cjs.map +1 -1
  243. package/dist/primitives/Table/useTableManager/listeners/useTableSettingsListener.js +2 -1
  244. package/dist/primitives/Table/useTableManager/listeners/useTableSettingsListener.js.map +1 -1
  245. package/dist/primitives/Table/useTableManager/listeners/useTableShortcutsListener.cjs +5 -4
  246. package/dist/primitives/Table/useTableManager/listeners/useTableShortcutsListener.cjs.map +1 -1
  247. package/dist/primitives/Table/useTableManager/listeners/useTableShortcutsListener.js +2 -1
  248. package/dist/primitives/Table/useTableManager/listeners/useTableShortcutsListener.js.map +1 -1
  249. package/dist/primitives/Table/useTableManager/useTableManager.cjs +3 -1
  250. package/dist/primitives/Table/useTableManager/useTableManager.cjs.map +1 -1
  251. package/dist/primitives/Table/useTableManager/useTableManager.js +3 -1
  252. package/dist/primitives/Table/useTableManager/useTableManager.js.map +1 -1
  253. package/dist/primitives/Table/useTableManager/util/rows.cjs +8 -1
  254. package/dist/primitives/Table/useTableManager/util/rows.cjs.map +1 -1
  255. package/dist/primitives/Table/useTableManager/util/rows.d.ts +2 -1
  256. package/dist/primitives/Table/useTableManager/util/rows.js +9 -2
  257. package/dist/primitives/Table/useTableManager/util/rows.js.map +1 -1
  258. package/dist/primitives/Table/useTableManager/util/search.cjs +2 -1
  259. package/dist/primitives/Table/useTableManager/util/search.cjs.map +1 -1
  260. package/dist/primitives/Table/useTableManager/util/search.js +2 -1
  261. package/dist/primitives/Table/useTableManager/util/search.js.map +1 -1
  262. package/dist/primitives/Table/useTableManager/util/settings.cjs +2 -1
  263. package/dist/primitives/Table/useTableManager/util/settings.cjs.map +1 -1
  264. package/dist/primitives/Table/useTableManager/util/settings.js +2 -1
  265. package/dist/primitives/Table/useTableManager/util/settings.js.map +1 -1
  266. package/dist/utils/tailwind.cjs +4 -0
  267. package/dist/utils/tailwind.cjs.map +1 -1
  268. package/dist/utils/tailwind.d.ts +4 -0
  269. package/dist/utils/tailwind.js +4 -0
  270. package/dist/utils/tailwind.js.map +1 -1
  271. package/package.json +6 -6
  272. package/dist/components/Popover/Primitives.cjs +0 -44
  273. package/dist/components/Popover/Primitives.cjs.map +0 -1
  274. package/dist/components/Popover/Primitives.d.ts +0 -2
  275. package/dist/components/Popover/Primitives.js +0 -27
  276. package/dist/components/Popover/Primitives.js.map +0 -1
  277. /package/dist/components/Icon/config/{index-template.d.cts → index-template.d.ts} +0 -0
  278. /package/dist/components/Icon/config/{svgr.config.d.cts → svgr.config.d.ts} +0 -0
  279. /package/dist/components/Icon/config/{template.d.cts → template.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sources":["../../../../../../src/components/Table3/components/Columns/Cell/util.ts"],"sourcesContent":["import type { TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { useAugmentedFocusManager } from '@/primitives/Table/Core/components/Body/util';\nimport { RowContext } from '@/primitives/Table/Core/components/Row/RowContext';\nimport type { TableCellRendererProps } from '@/primitives/Table/Core/types';\nimport { hasFocusableElement } from '@/utils/dom';\n\nexport function useEditingCellAutofocus<TType = unknown>(props: TableCellRendererProps<TType>) {\n const focusManager = useAugmentedFocusManager();\n const { rowIndex } = React.useContext(RowContext);\n const table = props.cell.getContext().table;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const isActiveRow = tableMeta.rowActive.rowActiveIndex === rowIndex;\n const autoFocus = props.index === tableMeta.editing.lastFocusedCellIndex && isActiveRow;\n\n // focus the cell so that we trigger it's handle focus\n React.useEffect(() => {\n if (props.cellRef.current) {\n const isFocusedElementInCurrentRow = props.cellRef.current.closest('tr')?.contains(document.activeElement);\n const isFocusedElementSearch = document.activeElement?.getAttribute('name') === 'table-search';\n const isFocusedElementMenu = document.activeElement?.getAttribute('role') === 'menu';\n\n if (autoFocus && !isFocusedElementInCurrentRow && !isFocusedElementSearch && !isFocusedElementMenu) {\n props.cellRef.current?.focus();\n }\n }\n }, [tableMeta.rowActive.rowActiveIndex]);\n\n // when the cell receives focus we actually want to focus the control inside it...\n const handleFocus = (event: React.FocusEvent<HTMLTableCellElement>) => {\n const tableElement = props.cellRef.current?.closest('table');\n\n if (tableElement && table.getIsSomeColumnsPinned() && !props.cell.column.getIsPinned()) {\n const columnFreezingOffset = table.getLeftTotalSize();\n const targetRect = event.currentTarget.getBoundingClientRect();\n const tableRect = tableElement.getBoundingClientRect();\n const leftOffsetFromScrollContainer = targetRect.left - tableRect.left;\n // the width of table vertical scrollbar\n const scrollbarWidth = tableElement.offsetWidth - tableElement.clientWidth;\n const isFocusedElementMenu = event.currentTarget.getAttribute('data-cell-id') === '__actions';\n\n if (\n // When pinned column overlaps the focused cell\n (leftOffsetFromScrollContainer < columnFreezingOffset ||\n // When focused cell goes behidn the edge of the table\n leftOffsetFromScrollContainer + targetRect.width > tableRect.width - scrollbarWidth) &&\n !isFocusedElementMenu\n ) {\n tableElement.scrollTo(props.cell.column.getStart() - columnFreezingOffset, tableElement.scrollTop);\n }\n }\n\n if (event.target === event.currentTarget && hasFocusableElement(event.currentTarget)) {\n focusManager.focusNext();\n }\n };\n\n return handleFocus;\n}\n"],"names":["React"],"mappings":";;;;AAQO,SAAS,wBAAyC,OAAsC;AAC3F,QAAM,eAAe,yBAAA;AACrB,QAAM,EAAE,SAAA,IAAaA,eAAM,WAAW,UAAU;AAChD,QAAM,QAAQ,MAAM,KAAK,WAAA,EAAa;AACtC,QAAM,YAAY,MAAM,QAAQ;AAChC,QAAM,cAAc,UAAU,UAAU,mBAAmB;AAC3D,QAAM,YAAY,MAAM,UAAU,UAAU,QAAQ,wBAAwB;AAG5EA,iBAAM,UAAU,MAAM;AAClB,QAAI,MAAM,QAAQ,SAAS;AACvB,YAAM,+BAA+B,MAAM,QAAQ,QAAQ,QAAQ,IAAI,GAAG,SAAS,SAAS,aAAa;AACzG,YAAM,yBAAyB,SAAS,eAAe,aAAa,MAAM,MAAM;AAChF,YAAM,uBAAuB,SAAS,eAAe,aAAa,MAAM,MAAM;AAE9E,UAAI,aAAa,CAAC,gCAAgC,CAAC,0BAA0B,CAAC,sBAAsB;AAChG,cAAM,QAAQ,SAAS,MAAA;AAAA,MAC3B;AAAA,IACJ;AAAA,EACJ,GAAG,CAAC,UAAU,UAAU,cAAc,CAAC;AAGvC,QAAM,cAAc,CAAC,UAAkD;AACnE,UAAM,eAAe,MAAM,QAAQ,SAAS,QAAQ,OAAO;AAE3D,QAAI,gBAAgB,MAAM,uBAAA,KAA4B,CAAC,MAAM,KAAK,OAAO,eAAe;AACpF,YAAM,uBAAuB,MAAM,iBAAA;AACnC,YAAM,aAAa,MAAM,cAAc,sBAAA;AACvC,YAAM,YAAY,aAAa,sBAAA;AAC/B,YAAM,gCAAgC,WAAW,OAAO,UAAU;AAElE,YAAM,iBAAiB,aAAa,cAAc,aAAa;AAC/D,YAAM,uBAAuB,MAAM,cAAc,aAAa,cAAc,MAAM;AAElF;AAAA;AAAA,SAEK,gCAAgC;AAAA,QAE7B,gCAAgC,WAAW,QAAQ,UAAU,QAAQ,mBACzE,CAAC;AAAA,QACH;AACE,qBAAa,SAAS,MAAM,KAAK,OAAO,aAAa,sBAAsB,aAAa,SAAS;AAAA,MACrG;AAAA,IACJ;AAEA,QAAI,MAAM,WAAW,MAAM,iBAAiB,oBAAoB,MAAM,aAAa,GAAG;AAClF,mBAAa,UAAA;AAAA,IACjB;AAAA,EACJ;AAEA,SAAO;AACX;"}
1
+ {"version":3,"file":"util.js","sources":["../../../../../../src/components/Table3/components/Columns/Cell/util.ts"],"sourcesContent":["import React from 'react';\n\nimport { useAugmentedFocusManager } from '@/primitives/Table/Core/components/Body/util';\nimport { RowContext } from '@/primitives/Table/Core/components/Row/RowContext';\nimport type { TableCellRendererProps } from '@/primitives/Table/Core/types';\nimport { getTableMeta } from '@/primitives/Table/useTableManager/util/rows';\nimport { hasFocusableElement } from '@/utils/dom';\n\nexport function useEditingCellAutofocus<TType = unknown>(props: TableCellRendererProps<TType>) {\n const focusManager = useAugmentedFocusManager();\n const { rowIndex } = React.useContext(RowContext);\n const table = props.cell.getContext().table;\n const tableMeta = getTableMeta(table);\n const isActiveRow = tableMeta.rowActive.rowActiveIndex === rowIndex;\n const autoFocus = props.index === tableMeta.editing.lastFocusedCellIndex && isActiveRow;\n\n // focus the cell so that we trigger it's handle focus\n React.useEffect(() => {\n if (props.cellRef.current) {\n const isFocusedElementInCurrentRow = props.cellRef.current.closest('tr')?.contains(document.activeElement);\n const isFocusedElementSearch = document.activeElement?.getAttribute('name') === 'table-search';\n const isFocusedElementMenu = document.activeElement?.getAttribute('role') === 'menu';\n\n if (autoFocus && !isFocusedElementInCurrentRow && !isFocusedElementSearch && !isFocusedElementMenu) {\n props.cellRef.current?.focus();\n }\n }\n }, [tableMeta.rowActive.rowActiveIndex]);\n\n // when the cell receives focus we actually want to focus the control inside it...\n const handleFocus = (event: React.FocusEvent<HTMLTableCellElement>) => {\n const tableElement = props.cellRef.current?.closest('table');\n\n if (tableElement && table.getIsSomeColumnsPinned() && !props.cell.column.getIsPinned()) {\n const columnFreezingOffset = table.getLeftTotalSize();\n const targetRect = event.currentTarget.getBoundingClientRect();\n const tableRect = tableElement.getBoundingClientRect();\n const leftOffsetFromScrollContainer = targetRect.left - tableRect.left;\n // the width of table vertical scrollbar\n const scrollbarWidth = tableElement.offsetWidth - tableElement.clientWidth;\n const isFocusedElementMenu = event.currentTarget.getAttribute('data-cell-id') === '__actions';\n\n if (\n // When pinned column overlaps the focused cell\n (leftOffsetFromScrollContainer < columnFreezingOffset ||\n // When focused cell goes behidn the edge of the table\n leftOffsetFromScrollContainer + targetRect.width > tableRect.width - scrollbarWidth) &&\n !isFocusedElementMenu\n ) {\n tableElement.scrollTo(props.cell.column.getStart() - columnFreezingOffset, tableElement.scrollTop);\n }\n }\n\n if (event.target === event.currentTarget && hasFocusableElement(event.currentTarget)) {\n focusManager.focusNext();\n }\n };\n\n return handleFocus;\n}\n"],"names":["React"],"mappings":";;;;;AAQO,SAAS,wBAAyC,OAAsC;AAC3F,QAAM,eAAe,yBAAA;AACrB,QAAM,EAAE,SAAA,IAAaA,eAAM,WAAW,UAAU;AAChD,QAAM,QAAQ,MAAM,KAAK,WAAA,EAAa;AACtC,QAAM,YAAY,aAAa,KAAK;AACpC,QAAM,cAAc,UAAU,UAAU,mBAAmB;AAC3D,QAAM,YAAY,MAAM,UAAU,UAAU,QAAQ,wBAAwB;AAG5EA,iBAAM,UAAU,MAAM;AAClB,QAAI,MAAM,QAAQ,SAAS;AACvB,YAAM,+BAA+B,MAAM,QAAQ,QAAQ,QAAQ,IAAI,GAAG,SAAS,SAAS,aAAa;AACzG,YAAM,yBAAyB,SAAS,eAAe,aAAa,MAAM,MAAM;AAChF,YAAM,uBAAuB,SAAS,eAAe,aAAa,MAAM,MAAM;AAE9E,UAAI,aAAa,CAAC,gCAAgC,CAAC,0BAA0B,CAAC,sBAAsB;AAChG,cAAM,QAAQ,SAAS,MAAA;AAAA,MAC3B;AAAA,IACJ;AAAA,EACJ,GAAG,CAAC,UAAU,UAAU,cAAc,CAAC;AAGvC,QAAM,cAAc,CAAC,UAAkD;AACnE,UAAM,eAAe,MAAM,QAAQ,SAAS,QAAQ,OAAO;AAE3D,QAAI,gBAAgB,MAAM,uBAAA,KAA4B,CAAC,MAAM,KAAK,OAAO,eAAe;AACpF,YAAM,uBAAuB,MAAM,iBAAA;AACnC,YAAM,aAAa,MAAM,cAAc,sBAAA;AACvC,YAAM,YAAY,aAAa,sBAAA;AAC/B,YAAM,gCAAgC,WAAW,OAAO,UAAU;AAElE,YAAM,iBAAiB,aAAa,cAAc,aAAa;AAC/D,YAAM,uBAAuB,MAAM,cAAc,aAAa,cAAc,MAAM;AAElF;AAAA;AAAA,SAEK,gCAAgC;AAAA,QAE7B,gCAAgC,WAAW,QAAQ,UAAU,QAAQ,mBACzE,CAAC;AAAA,QACH;AACE,qBAAa,SAAS,MAAM,KAAK,OAAO,aAAa,sBAAsB,aAAa,SAAS;AAAA,MACrG;AAAA,IACJ;AAEA,QAAI,MAAM,WAAW,MAAM,iBAAiB,oBAAoB,MAAM,aAAa,GAAG;AAClF,mBAAa,UAAA;AAAA,IACjB;AAAA,EACJ;AAEA,SAAO;AACX;"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const React = require("react");
4
+ const rows = require("../../../../primitives/Table/useTableManager/util/rows.cjs");
4
5
  const Localization = require("../../../Provider/Localization.cjs");
5
6
  const Tooltip = require("../../../Tooltip/Tooltip.cjs");
6
7
  const Alert$1 = require("../../../Alert/Alert.cjs");
@@ -11,7 +12,7 @@ function Alert(props) {
11
12
  const { scrollToIndex, table, tableRef, ...attributes } = props;
12
13
  const { texts } = Localization.useLocalization();
13
14
  const validationTexts = texts.table3.editing.validation;
14
- const tableMeta = table.options.meta;
15
+ const tableMeta = rows.getTableMeta(table);
15
16
  const [showFilterResetDialog, setShowFilterResetDialog] = React.useState(false);
16
17
  const [pendingFocusRowId, setPendingFocusRowId] = React.useState(null);
17
18
  const pendingChangesWithErrors = tableMeta.editing.getErrorsShownInAlert();
@@ -1 +1 @@
1
- {"version":3,"file":"Alert.cjs","sources":["../../../../../src/components/Table3/components/Editing/Alert.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport type { ScrollToOptions as ReactVirtualScrollToOptions } from '@tanstack/react-virtual';\nimport React from 'react';\n\nimport type { AlertProps as BaseAlertProps, DialogProps } from '@/components';\nimport { Alert as BaseAlert, Button, Dialog, Inline, Tooltip, useLocalization } from '@/components';\nimport type { TableRef } from '@/primitives/Table/types';\n\ntype AlertProps<TType = unknown> = Omit<BaseAlertProps, 'children'> & {\n scrollToIndex: (index: number, options: ReactVirtualScrollToOptions) => void;\n table: ReactTable<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function Alert<TType = unknown>(props: AlertProps<TType>) {\n const { scrollToIndex, table, tableRef, ...attributes } = props;\n const { texts } = useLocalization();\n const validationTexts = texts.table3.editing.validation;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const [showFilterResetDialog, setShowFilterResetDialog] = React.useState<string | false>(false);\n // row to scroll to and focus once the filters have been reset and it becomes visible again\n const [pendingFocusRowId, setPendingFocusRowId] = React.useState<string | null>(null);\n const pendingChangesWithErrors = tableMeta.editing.getErrorsShownInAlert<TType>();\n\n const visibleRows = table.getRowModel().rows;\n\n function getVisibleRowIndex(rowId: string) {\n return visibleRows.findIndex(row => row.id === rowId);\n }\n\n function scrollToRow(rowIndex: number) {\n tableMeta.rowActive.setRowActiveIndex(rowIndex);\n scrollToIndex(rowIndex, { align: 'center' });\n\n requestAnimationFrame(() => {\n const cell = tableRef.current?.querySelector(\n 'tbody > tr[data-row-active=\"true\"] > td[data-cell-editing-invalid=\"true\"]'\n );\n\n if (cell) {\n (cell as HTMLElement).focus?.();\n }\n });\n }\n\n // generate the \"N unsaved entries\" title\n const title = (\n pendingChangesWithErrors.length === 1 ? validationTexts.alert.titleOne : validationTexts.alert.titlePlural\n ).replace('[COUNT]', String(pendingChangesWithErrors.length));\n\n // generate links to each invalid row, to go into the error message\n const links: React.ReactNode[] = [];\n const visibleColumns = table.getVisibleFlatColumns().map(c => c.id);\n const rowIdentityColumn =\n // table.getColumn(columName) throw error in strict dev mode. Related thread: https://github.com/TanStack/table/discussions/5505\n tableMeta.rowIdentityAccessor && visibleColumns.includes(String(tableMeta.rowIdentityAccessor))\n ? table.getAllColumns().find(x => x.id === String(tableMeta.rowIdentityAccessor))\n : undefined;\n\n pendingChangesWithErrors.forEach((pendingChangeWithError, index) => {\n // if appropriate, concatenate the item with the text \"and\"\n if (pendingChangesWithErrors.length > 1 && index === pendingChangesWithErrors.length - 1) {\n // Add space before and after `messageAnd` text\n links.push(` ${validationTexts.alert.messageAnd} `);\n }\n\n const handleClick = () => {\n const visibleIndex = getVisibleRowIndex(pendingChangeWithError.rowId);\n\n if (visibleIndex > -1) {\n scrollToRow(visibleIndex);\n } else {\n setShowFilterResetDialog(pendingChangeWithError.rowId);\n }\n };\n\n let tooltip;\n\n if (pendingChangeWithError.errors.row) {\n tooltip = pendingChangeWithError.errors.row;\n } else {\n const firstCellErrorColumnId = Object.keys(pendingChangeWithError.errors.cells)[0];\n const columnName = table.getAllColumns().find(column => column.id === firstCellErrorColumnId)?.columnDef.meta?.header;\n\n if (columnName && firstCellErrorColumnId) {\n tooltip = `${columnName}: ${pendingChangeWithError.errors.cells[firstCellErrorColumnId]}`;\n }\n }\n\n let row;\n try {\n row = table.getRow(pendingChangeWithError.rowId).original;\n } catch {\n // because of server loading, some rows may not be accessible\n }\n\n // the row identity when there is one, otherwise the 1-based position, which server loading can leave unknown\n let label = '';\n\n const rowIdentity = rowIdentityColumn ? row?.[rowIdentityColumn.id as keyof TType] : undefined;\n\n if (rowIdentity !== null && rowIdentity !== undefined) {\n label = String(rowIdentity);\n } else if (pendingChangeWithError.index !== undefined) {\n label = String(pendingChangeWithError.index + 1);\n }\n\n links.push(\n <Tooltip key={pendingChangeWithError.rowId} title={tooltip ?? ''}>\n <span className=\"text-blue\" onClick={handleClick} role=\"button\">\n {label}\n </span>\n </Tooltip>\n );\n\n // if appropriate, concatenate the item with the text \",\"\n if (pendingChangesWithErrors.length > 2 && index < pendingChangesWithErrors.length - 2) {\n links.push(', ');\n }\n });\n\n // generate the \"Row N is incomplete and hasn't been saved\" error message\n const message = (links.length === 1 ? validationTexts.alert.messageOne : validationTexts.alert.messagePlural)\n .split(/(\\[\\w+\\])/u)\n .map(part => {\n if (part === '[COLUMN]') {\n return rowIdentityColumn?.columnDef.meta?.header ?? validationTexts.alert.messageRow;\n }\n\n if (part === '[ROW]') {\n return links;\n }\n\n return part;\n });\n\n const handleResetFilters = () => {\n const rowId = showFilterResetDialog;\n\n table.resetGlobalFilter();\n table.resetColumnFilters();\n\n // defer focusing until the row model has re-rendered with the filters cleared,\n // otherwise the row isn't in the model/DOM yet\n if (typeof rowId === 'string') {\n setPendingFocusRowId(rowId);\n }\n\n setShowFilterResetDialog(false);\n };\n\n // once the filters are reset and the previously hidden row is visible again, scroll to and focus it\n React.useEffect(() => {\n if (pendingFocusRowId === null) {\n return;\n }\n\n const visibleIndex = getVisibleRowIndex(pendingFocusRowId);\n\n if (visibleIndex > -1) {\n scrollToRow(visibleIndex);\n setPendingFocusRowId(null);\n }\n }, [pendingFocusRowId, visibleRows]);\n\n return (\n <>\n <BaseAlert {...attributes} state=\"error\">\n <span className=\"font-bold\">{title}</span>&nbsp;{message}\n </BaseAlert>\n <FilterResetDialog\n open={showFilterResetDialog !== false}\n onChange={() => setShowFilterResetDialog(false)}\n onSubmit={handleResetFilters}\n />\n </>\n );\n}\n\ntype FilterResetDialogProps = Omit<DialogProps, 'children'> & {\n onSubmit: () => void;\n};\n\nfunction FilterResetDialog(props: FilterResetDialogProps) {\n const { onSubmit: handleSubmit, ...dialogProps } = props;\n const { texts } = useLocalization();\n\n return (\n <Dialog {...dialogProps} size=\"xs\">\n <Dialog.Content aria-label={texts.table3.editing.validation.resetFiltersDialog.title}>\n <Dialog.Title>{texts.table3.editing.validation.resetFiltersDialog.title}</Dialog.Title>\n <p>{texts.table3.editing.validation.resetFiltersDialog.description}</p>\n <Dialog.Footer>\n <Inline spacing={8} alignInline=\"end\">\n <Dialog.Close>\n <Button>{texts.table3.editing.validation.resetFiltersDialog.cancel}</Button>\n </Dialog.Close>\n <Button variant=\"primary\" onClick={handleSubmit}>\n {texts.table3.editing.validation.resetFiltersDialog.confirm}\n </Button>\n </Inline>\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog>\n );\n}\n"],"names":["useLocalization","Tooltip","BaseAlert","Dialog","Inline","Button"],"mappings":"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"}
1
+ {"version":3,"file":"Alert.cjs","sources":["../../../../../src/components/Table3/components/Editing/Alert.tsx"],"sourcesContent":["import type { Table as ReactTable } from '@tanstack/react-table';\nimport type { ScrollToOptions as ReactVirtualScrollToOptions } from '@tanstack/react-virtual';\nimport React from 'react';\n\nimport type { AlertProps as BaseAlertProps, DialogProps } from '@/components';\nimport { Alert as BaseAlert, Button, Dialog, Inline, Tooltip, useLocalization } from '@/components';\nimport type { TableRef } from '@/primitives/Table/types';\nimport { getTableMeta } from '@/primitives/Table/useTableManager/util/rows';\n\ntype AlertProps<TType = unknown> = Omit<BaseAlertProps, 'children'> & {\n scrollToIndex: (index: number, options: ReactVirtualScrollToOptions) => void;\n table: ReactTable<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function Alert<TType = unknown>(props: AlertProps<TType>) {\n const { scrollToIndex, table, tableRef, ...attributes } = props;\n const { texts } = useLocalization();\n const validationTexts = texts.table3.editing.validation;\n const tableMeta = getTableMeta(table);\n const [showFilterResetDialog, setShowFilterResetDialog] = React.useState<string | false>(false);\n // row to scroll to and focus once the filters have been reset and it becomes visible again\n const [pendingFocusRowId, setPendingFocusRowId] = React.useState<string | null>(null);\n const pendingChangesWithErrors = tableMeta.editing.getErrorsShownInAlert<TType>();\n\n const visibleRows = table.getRowModel().rows;\n\n function getVisibleRowIndex(rowId: string) {\n return visibleRows.findIndex(row => row.id === rowId);\n }\n\n function scrollToRow(rowIndex: number) {\n tableMeta.rowActive.setRowActiveIndex(rowIndex);\n scrollToIndex(rowIndex, { align: 'center' });\n\n requestAnimationFrame(() => {\n const cell = tableRef.current?.querySelector(\n 'tbody > tr[data-row-active=\"true\"] > td[data-cell-editing-invalid=\"true\"]'\n );\n\n if (cell) {\n (cell as HTMLElement).focus?.();\n }\n });\n }\n\n // generate the \"N unsaved entries\" title\n const title = (\n pendingChangesWithErrors.length === 1 ? validationTexts.alert.titleOne : validationTexts.alert.titlePlural\n ).replace('[COUNT]', String(pendingChangesWithErrors.length));\n\n // generate links to each invalid row, to go into the error message\n const links: React.ReactNode[] = [];\n const visibleColumns = table.getVisibleFlatColumns().map(c => c.id);\n const rowIdentityColumn =\n // table.getColumn(columName) throw error in strict dev mode. Related thread: https://github.com/TanStack/table/discussions/5505\n tableMeta.rowIdentityAccessor && visibleColumns.includes(String(tableMeta.rowIdentityAccessor))\n ? table.getAllColumns().find(x => x.id === String(tableMeta.rowIdentityAccessor))\n : undefined;\n\n pendingChangesWithErrors.forEach((pendingChangeWithError, index) => {\n // if appropriate, concatenate the item with the text \"and\"\n if (pendingChangesWithErrors.length > 1 && index === pendingChangesWithErrors.length - 1) {\n // Add space before and after `messageAnd` text\n links.push(` ${validationTexts.alert.messageAnd} `);\n }\n\n const handleClick = () => {\n const visibleIndex = getVisibleRowIndex(pendingChangeWithError.rowId);\n\n if (visibleIndex > -1) {\n scrollToRow(visibleIndex);\n } else {\n setShowFilterResetDialog(pendingChangeWithError.rowId);\n }\n };\n\n let tooltip;\n\n if (pendingChangeWithError.errors.row) {\n tooltip = pendingChangeWithError.errors.row;\n } else {\n const firstCellErrorColumnId = Object.keys(pendingChangeWithError.errors.cells)[0];\n const columnName = table.getAllColumns().find(column => column.id === firstCellErrorColumnId)?.columnDef.meta?.header;\n\n if (columnName && firstCellErrorColumnId) {\n tooltip = `${columnName}: ${pendingChangeWithError.errors.cells[firstCellErrorColumnId]}`;\n }\n }\n\n let row;\n try {\n row = table.getRow(pendingChangeWithError.rowId).original;\n } catch {\n // because of server loading, some rows may not be accessible\n }\n\n // the row identity when there is one, otherwise the 1-based position, which server loading can leave unknown\n let label = '';\n\n const rowIdentity = rowIdentityColumn ? row?.[rowIdentityColumn.id as keyof TType] : undefined;\n\n if (rowIdentity !== null && rowIdentity !== undefined) {\n label = String(rowIdentity);\n } else if (pendingChangeWithError.index !== undefined) {\n label = String(pendingChangeWithError.index + 1);\n }\n\n links.push(\n <Tooltip key={pendingChangeWithError.rowId} title={tooltip ?? ''}>\n <span className=\"text-blue\" onClick={handleClick} role=\"button\">\n {label}\n </span>\n </Tooltip>\n );\n\n // if appropriate, concatenate the item with the text \",\"\n if (pendingChangesWithErrors.length > 2 && index < pendingChangesWithErrors.length - 2) {\n links.push(', ');\n }\n });\n\n // generate the \"Row N is incomplete and hasn't been saved\" error message\n const message = (links.length === 1 ? validationTexts.alert.messageOne : validationTexts.alert.messagePlural)\n .split(/(\\[\\w+\\])/u)\n .map(part => {\n if (part === '[COLUMN]') {\n return rowIdentityColumn?.columnDef.meta?.header ?? validationTexts.alert.messageRow;\n }\n\n if (part === '[ROW]') {\n return links;\n }\n\n return part;\n });\n\n const handleResetFilters = () => {\n const rowId = showFilterResetDialog;\n\n table.resetGlobalFilter();\n table.resetColumnFilters();\n\n // defer focusing until the row model has re-rendered with the filters cleared,\n // otherwise the row isn't in the model/DOM yet\n if (typeof rowId === 'string') {\n setPendingFocusRowId(rowId);\n }\n\n setShowFilterResetDialog(false);\n };\n\n // once the filters are reset and the previously hidden row is visible again, scroll to and focus it\n React.useEffect(() => {\n if (pendingFocusRowId === null) {\n return;\n }\n\n const visibleIndex = getVisibleRowIndex(pendingFocusRowId);\n\n if (visibleIndex > -1) {\n scrollToRow(visibleIndex);\n setPendingFocusRowId(null);\n }\n }, [pendingFocusRowId, visibleRows]);\n\n return (\n <>\n <BaseAlert {...attributes} state=\"error\">\n <span className=\"font-bold\">{title}</span>&nbsp;{message}\n </BaseAlert>\n <FilterResetDialog\n open={showFilterResetDialog !== false}\n onChange={() => setShowFilterResetDialog(false)}\n onSubmit={handleResetFilters}\n />\n </>\n );\n}\n\ntype FilterResetDialogProps = Omit<DialogProps, 'children'> & {\n onSubmit: () => void;\n};\n\nfunction FilterResetDialog(props: FilterResetDialogProps) {\n const { onSubmit: handleSubmit, ...dialogProps } = props;\n const { texts } = useLocalization();\n\n return (\n <Dialog {...dialogProps} size=\"xs\">\n <Dialog.Content aria-label={texts.table3.editing.validation.resetFiltersDialog.title}>\n <Dialog.Title>{texts.table3.editing.validation.resetFiltersDialog.title}</Dialog.Title>\n <p>{texts.table3.editing.validation.resetFiltersDialog.description}</p>\n <Dialog.Footer>\n <Inline spacing={8} alignInline=\"end\">\n <Dialog.Close>\n <Button>{texts.table3.editing.validation.resetFiltersDialog.cancel}</Button>\n </Dialog.Close>\n <Button variant=\"primary\" onClick={handleSubmit}>\n {texts.table3.editing.validation.resetFiltersDialog.confirm}\n </Button>\n </Inline>\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog>\n );\n}\n"],"names":["useLocalization","getTableMeta","Tooltip","BaseAlert","Dialog","Inline","Button"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import React__default from "react";
2
+ import { getTableMeta } from "../../../../primitives/Table/useTableManager/util/rows.js";
2
3
  import { useLocalization } from "../../../Provider/Localization.js";
3
4
  import { Tooltip } from "../../../Tooltip/Tooltip.js";
4
5
  import { Alert as Alert$1 } from "../../../Alert/Alert.js";
@@ -9,7 +10,7 @@ function Alert(props) {
9
10
  const { scrollToIndex, table, tableRef, ...attributes } = props;
10
11
  const { texts } = useLocalization();
11
12
  const validationTexts = texts.table3.editing.validation;
12
- const tableMeta = table.options.meta;
13
+ const tableMeta = getTableMeta(table);
13
14
  const [showFilterResetDialog, setShowFilterResetDialog] = React__default.useState(false);
14
15
  const [pendingFocusRowId, setPendingFocusRowId] = React__default.useState(null);
15
16
  const pendingChangesWithErrors = tableMeta.editing.getErrorsShownInAlert();
@@ -1 +1 @@
1
- {"version":3,"file":"Alert.js","sources":["../../../../../src/components/Table3/components/Editing/Alert.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport type { ScrollToOptions as ReactVirtualScrollToOptions } from '@tanstack/react-virtual';\nimport React from 'react';\n\nimport type { AlertProps as BaseAlertProps, DialogProps } from '@/components';\nimport { Alert as BaseAlert, Button, Dialog, Inline, Tooltip, useLocalization } from '@/components';\nimport type { TableRef } from '@/primitives/Table/types';\n\ntype AlertProps<TType = unknown> = Omit<BaseAlertProps, 'children'> & {\n scrollToIndex: (index: number, options: ReactVirtualScrollToOptions) => void;\n table: ReactTable<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function Alert<TType = unknown>(props: AlertProps<TType>) {\n const { scrollToIndex, table, tableRef, ...attributes } = props;\n const { texts } = useLocalization();\n const validationTexts = texts.table3.editing.validation;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const [showFilterResetDialog, setShowFilterResetDialog] = React.useState<string | false>(false);\n // row to scroll to and focus once the filters have been reset and it becomes visible again\n const [pendingFocusRowId, setPendingFocusRowId] = React.useState<string | null>(null);\n const pendingChangesWithErrors = tableMeta.editing.getErrorsShownInAlert<TType>();\n\n const visibleRows = table.getRowModel().rows;\n\n function getVisibleRowIndex(rowId: string) {\n return visibleRows.findIndex(row => row.id === rowId);\n }\n\n function scrollToRow(rowIndex: number) {\n tableMeta.rowActive.setRowActiveIndex(rowIndex);\n scrollToIndex(rowIndex, { align: 'center' });\n\n requestAnimationFrame(() => {\n const cell = tableRef.current?.querySelector(\n 'tbody > tr[data-row-active=\"true\"] > td[data-cell-editing-invalid=\"true\"]'\n );\n\n if (cell) {\n (cell as HTMLElement).focus?.();\n }\n });\n }\n\n // generate the \"N unsaved entries\" title\n const title = (\n pendingChangesWithErrors.length === 1 ? validationTexts.alert.titleOne : validationTexts.alert.titlePlural\n ).replace('[COUNT]', String(pendingChangesWithErrors.length));\n\n // generate links to each invalid row, to go into the error message\n const links: React.ReactNode[] = [];\n const visibleColumns = table.getVisibleFlatColumns().map(c => c.id);\n const rowIdentityColumn =\n // table.getColumn(columName) throw error in strict dev mode. Related thread: https://github.com/TanStack/table/discussions/5505\n tableMeta.rowIdentityAccessor && visibleColumns.includes(String(tableMeta.rowIdentityAccessor))\n ? table.getAllColumns().find(x => x.id === String(tableMeta.rowIdentityAccessor))\n : undefined;\n\n pendingChangesWithErrors.forEach((pendingChangeWithError, index) => {\n // if appropriate, concatenate the item with the text \"and\"\n if (pendingChangesWithErrors.length > 1 && index === pendingChangesWithErrors.length - 1) {\n // Add space before and after `messageAnd` text\n links.push(` ${validationTexts.alert.messageAnd} `);\n }\n\n const handleClick = () => {\n const visibleIndex = getVisibleRowIndex(pendingChangeWithError.rowId);\n\n if (visibleIndex > -1) {\n scrollToRow(visibleIndex);\n } else {\n setShowFilterResetDialog(pendingChangeWithError.rowId);\n }\n };\n\n let tooltip;\n\n if (pendingChangeWithError.errors.row) {\n tooltip = pendingChangeWithError.errors.row;\n } else {\n const firstCellErrorColumnId = Object.keys(pendingChangeWithError.errors.cells)[0];\n const columnName = table.getAllColumns().find(column => column.id === firstCellErrorColumnId)?.columnDef.meta?.header;\n\n if (columnName && firstCellErrorColumnId) {\n tooltip = `${columnName}: ${pendingChangeWithError.errors.cells[firstCellErrorColumnId]}`;\n }\n }\n\n let row;\n try {\n row = table.getRow(pendingChangeWithError.rowId).original;\n } catch {\n // because of server loading, some rows may not be accessible\n }\n\n // the row identity when there is one, otherwise the 1-based position, which server loading can leave unknown\n let label = '';\n\n const rowIdentity = rowIdentityColumn ? row?.[rowIdentityColumn.id as keyof TType] : undefined;\n\n if (rowIdentity !== null && rowIdentity !== undefined) {\n label = String(rowIdentity);\n } else if (pendingChangeWithError.index !== undefined) {\n label = String(pendingChangeWithError.index + 1);\n }\n\n links.push(\n <Tooltip key={pendingChangeWithError.rowId} title={tooltip ?? ''}>\n <span className=\"text-blue\" onClick={handleClick} role=\"button\">\n {label}\n </span>\n </Tooltip>\n );\n\n // if appropriate, concatenate the item with the text \",\"\n if (pendingChangesWithErrors.length > 2 && index < pendingChangesWithErrors.length - 2) {\n links.push(', ');\n }\n });\n\n // generate the \"Row N is incomplete and hasn't been saved\" error message\n const message = (links.length === 1 ? validationTexts.alert.messageOne : validationTexts.alert.messagePlural)\n .split(/(\\[\\w+\\])/u)\n .map(part => {\n if (part === '[COLUMN]') {\n return rowIdentityColumn?.columnDef.meta?.header ?? validationTexts.alert.messageRow;\n }\n\n if (part === '[ROW]') {\n return links;\n }\n\n return part;\n });\n\n const handleResetFilters = () => {\n const rowId = showFilterResetDialog;\n\n table.resetGlobalFilter();\n table.resetColumnFilters();\n\n // defer focusing until the row model has re-rendered with the filters cleared,\n // otherwise the row isn't in the model/DOM yet\n if (typeof rowId === 'string') {\n setPendingFocusRowId(rowId);\n }\n\n setShowFilterResetDialog(false);\n };\n\n // once the filters are reset and the previously hidden row is visible again, scroll to and focus it\n React.useEffect(() => {\n if (pendingFocusRowId === null) {\n return;\n }\n\n const visibleIndex = getVisibleRowIndex(pendingFocusRowId);\n\n if (visibleIndex > -1) {\n scrollToRow(visibleIndex);\n setPendingFocusRowId(null);\n }\n }, [pendingFocusRowId, visibleRows]);\n\n return (\n <>\n <BaseAlert {...attributes} state=\"error\">\n <span className=\"font-bold\">{title}</span>&nbsp;{message}\n </BaseAlert>\n <FilterResetDialog\n open={showFilterResetDialog !== false}\n onChange={() => setShowFilterResetDialog(false)}\n onSubmit={handleResetFilters}\n />\n </>\n );\n}\n\ntype FilterResetDialogProps = Omit<DialogProps, 'children'> & {\n onSubmit: () => void;\n};\n\nfunction FilterResetDialog(props: FilterResetDialogProps) {\n const { onSubmit: handleSubmit, ...dialogProps } = props;\n const { texts } = useLocalization();\n\n return (\n <Dialog {...dialogProps} size=\"xs\">\n <Dialog.Content aria-label={texts.table3.editing.validation.resetFiltersDialog.title}>\n <Dialog.Title>{texts.table3.editing.validation.resetFiltersDialog.title}</Dialog.Title>\n <p>{texts.table3.editing.validation.resetFiltersDialog.description}</p>\n <Dialog.Footer>\n <Inline spacing={8} alignInline=\"end\">\n <Dialog.Close>\n <Button>{texts.table3.editing.validation.resetFiltersDialog.cancel}</Button>\n </Dialog.Close>\n <Button variant=\"primary\" onClick={handleSubmit}>\n {texts.table3.editing.validation.resetFiltersDialog.confirm}\n </Button>\n </Inline>\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog>\n );\n}\n"],"names":["React","BaseAlert"],"mappings":"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"}
1
+ {"version":3,"file":"Alert.js","sources":["../../../../../src/components/Table3/components/Editing/Alert.tsx"],"sourcesContent":["import type { Table as ReactTable } from '@tanstack/react-table';\nimport type { ScrollToOptions as ReactVirtualScrollToOptions } from '@tanstack/react-virtual';\nimport React from 'react';\n\nimport type { AlertProps as BaseAlertProps, DialogProps } from '@/components';\nimport { Alert as BaseAlert, Button, Dialog, Inline, Tooltip, useLocalization } from '@/components';\nimport type { TableRef } from '@/primitives/Table/types';\nimport { getTableMeta } from '@/primitives/Table/useTableManager/util/rows';\n\ntype AlertProps<TType = unknown> = Omit<BaseAlertProps, 'children'> & {\n scrollToIndex: (index: number, options: ReactVirtualScrollToOptions) => void;\n table: ReactTable<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function Alert<TType = unknown>(props: AlertProps<TType>) {\n const { scrollToIndex, table, tableRef, ...attributes } = props;\n const { texts } = useLocalization();\n const validationTexts = texts.table3.editing.validation;\n const tableMeta = getTableMeta(table);\n const [showFilterResetDialog, setShowFilterResetDialog] = React.useState<string | false>(false);\n // row to scroll to and focus once the filters have been reset and it becomes visible again\n const [pendingFocusRowId, setPendingFocusRowId] = React.useState<string | null>(null);\n const pendingChangesWithErrors = tableMeta.editing.getErrorsShownInAlert<TType>();\n\n const visibleRows = table.getRowModel().rows;\n\n function getVisibleRowIndex(rowId: string) {\n return visibleRows.findIndex(row => row.id === rowId);\n }\n\n function scrollToRow(rowIndex: number) {\n tableMeta.rowActive.setRowActiveIndex(rowIndex);\n scrollToIndex(rowIndex, { align: 'center' });\n\n requestAnimationFrame(() => {\n const cell = tableRef.current?.querySelector(\n 'tbody > tr[data-row-active=\"true\"] > td[data-cell-editing-invalid=\"true\"]'\n );\n\n if (cell) {\n (cell as HTMLElement).focus?.();\n }\n });\n }\n\n // generate the \"N unsaved entries\" title\n const title = (\n pendingChangesWithErrors.length === 1 ? validationTexts.alert.titleOne : validationTexts.alert.titlePlural\n ).replace('[COUNT]', String(pendingChangesWithErrors.length));\n\n // generate links to each invalid row, to go into the error message\n const links: React.ReactNode[] = [];\n const visibleColumns = table.getVisibleFlatColumns().map(c => c.id);\n const rowIdentityColumn =\n // table.getColumn(columName) throw error in strict dev mode. Related thread: https://github.com/TanStack/table/discussions/5505\n tableMeta.rowIdentityAccessor && visibleColumns.includes(String(tableMeta.rowIdentityAccessor))\n ? table.getAllColumns().find(x => x.id === String(tableMeta.rowIdentityAccessor))\n : undefined;\n\n pendingChangesWithErrors.forEach((pendingChangeWithError, index) => {\n // if appropriate, concatenate the item with the text \"and\"\n if (pendingChangesWithErrors.length > 1 && index === pendingChangesWithErrors.length - 1) {\n // Add space before and after `messageAnd` text\n links.push(` ${validationTexts.alert.messageAnd} `);\n }\n\n const handleClick = () => {\n const visibleIndex = getVisibleRowIndex(pendingChangeWithError.rowId);\n\n if (visibleIndex > -1) {\n scrollToRow(visibleIndex);\n } else {\n setShowFilterResetDialog(pendingChangeWithError.rowId);\n }\n };\n\n let tooltip;\n\n if (pendingChangeWithError.errors.row) {\n tooltip = pendingChangeWithError.errors.row;\n } else {\n const firstCellErrorColumnId = Object.keys(pendingChangeWithError.errors.cells)[0];\n const columnName = table.getAllColumns().find(column => column.id === firstCellErrorColumnId)?.columnDef.meta?.header;\n\n if (columnName && firstCellErrorColumnId) {\n tooltip = `${columnName}: ${pendingChangeWithError.errors.cells[firstCellErrorColumnId]}`;\n }\n }\n\n let row;\n try {\n row = table.getRow(pendingChangeWithError.rowId).original;\n } catch {\n // because of server loading, some rows may not be accessible\n }\n\n // the row identity when there is one, otherwise the 1-based position, which server loading can leave unknown\n let label = '';\n\n const rowIdentity = rowIdentityColumn ? row?.[rowIdentityColumn.id as keyof TType] : undefined;\n\n if (rowIdentity !== null && rowIdentity !== undefined) {\n label = String(rowIdentity);\n } else if (pendingChangeWithError.index !== undefined) {\n label = String(pendingChangeWithError.index + 1);\n }\n\n links.push(\n <Tooltip key={pendingChangeWithError.rowId} title={tooltip ?? ''}>\n <span className=\"text-blue\" onClick={handleClick} role=\"button\">\n {label}\n </span>\n </Tooltip>\n );\n\n // if appropriate, concatenate the item with the text \",\"\n if (pendingChangesWithErrors.length > 2 && index < pendingChangesWithErrors.length - 2) {\n links.push(', ');\n }\n });\n\n // generate the \"Row N is incomplete and hasn't been saved\" error message\n const message = (links.length === 1 ? validationTexts.alert.messageOne : validationTexts.alert.messagePlural)\n .split(/(\\[\\w+\\])/u)\n .map(part => {\n if (part === '[COLUMN]') {\n return rowIdentityColumn?.columnDef.meta?.header ?? validationTexts.alert.messageRow;\n }\n\n if (part === '[ROW]') {\n return links;\n }\n\n return part;\n });\n\n const handleResetFilters = () => {\n const rowId = showFilterResetDialog;\n\n table.resetGlobalFilter();\n table.resetColumnFilters();\n\n // defer focusing until the row model has re-rendered with the filters cleared,\n // otherwise the row isn't in the model/DOM yet\n if (typeof rowId === 'string') {\n setPendingFocusRowId(rowId);\n }\n\n setShowFilterResetDialog(false);\n };\n\n // once the filters are reset and the previously hidden row is visible again, scroll to and focus it\n React.useEffect(() => {\n if (pendingFocusRowId === null) {\n return;\n }\n\n const visibleIndex = getVisibleRowIndex(pendingFocusRowId);\n\n if (visibleIndex > -1) {\n scrollToRow(visibleIndex);\n setPendingFocusRowId(null);\n }\n }, [pendingFocusRowId, visibleRows]);\n\n return (\n <>\n <BaseAlert {...attributes} state=\"error\">\n <span className=\"font-bold\">{title}</span>&nbsp;{message}\n </BaseAlert>\n <FilterResetDialog\n open={showFilterResetDialog !== false}\n onChange={() => setShowFilterResetDialog(false)}\n onSubmit={handleResetFilters}\n />\n </>\n );\n}\n\ntype FilterResetDialogProps = Omit<DialogProps, 'children'> & {\n onSubmit: () => void;\n};\n\nfunction FilterResetDialog(props: FilterResetDialogProps) {\n const { onSubmit: handleSubmit, ...dialogProps } = props;\n const { texts } = useLocalization();\n\n return (\n <Dialog {...dialogProps} size=\"xs\">\n <Dialog.Content aria-label={texts.table3.editing.validation.resetFiltersDialog.title}>\n <Dialog.Title>{texts.table3.editing.validation.resetFiltersDialog.title}</Dialog.Title>\n <p>{texts.table3.editing.validation.resetFiltersDialog.description}</p>\n <Dialog.Footer>\n <Inline spacing={8} alignInline=\"end\">\n <Dialog.Close>\n <Button>{texts.table3.editing.validation.resetFiltersDialog.cancel}</Button>\n </Dialog.Close>\n <Button variant=\"primary\" onClick={handleSubmit}>\n {texts.table3.editing.validation.resetFiltersDialog.confirm}\n </Button>\n </Inline>\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog>\n );\n}\n"],"names":["React","BaseAlert"],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const cn = require("clsx");
4
4
  const React = require("react");
5
+ const rows = require("../../../../../primitives/Table/useTableManager/util/rows.cjs");
5
6
  const Localization = require("../../../../Provider/Localization.cjs");
6
7
  const Tooltip = require("../../../../Tooltip/Tooltip.cjs");
7
8
  const Spinner = require("../../../../Spinner/Spinner.cjs");
@@ -9,7 +10,7 @@ const BadgeIcon = require("../../../../BadgeIcon/BadgeIcon.cjs");
9
10
  function SaveStatus(props) {
10
11
  const { rowId, table } = props;
11
12
  const { texts } = Localization.useLocalization();
12
- const tableMeta = table.options.meta;
13
+ const tableMeta = rows.getTableMeta(table);
13
14
  const status = tableMeta.editing.getRowStatus(rowId);
14
15
  const className = cn(
15
16
  // oxlint-disable-next-line taco/no-disallowed-shadow-classes -- scroll-edge indicator driven by a CSS variable, not a design-token elevation shadow
@@ -1 +1 @@
1
- {"version":3,"file":"SaveStatus.cjs","sources":["../../../../../../src/components/Table3/components/Row/Editing/SaveStatus.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport cn from 'clsx';\nimport React from 'react';\n\nimport { BadgeIcon, Spinner, Tooltip, useLocalization } from '@/components';\n\ntype SaveStatusProps<TType = unknown> = {\n rowId: string;\n table: ReactTable<TType>;\n};\n\nexport function SaveStatus<TType = unknown>(props: SaveStatusProps<TType>) {\n const { rowId, table } = props;\n const { texts } = useLocalization();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const status = tableMeta.editing.getRowStatus(rowId);\n\n const className = cn(\n // oxlint-disable-next-line taco/no-disallowed-shadow-classes -- scroll-edge indicator driven by a CSS variable, not a design-token elevation shadow\n 'sticky right-0 top-0 z-10 col-span-full -mb-[100%] ml-auto flex h-8 items-center bg-[inherit] px-1.5 shadow-[-6px_0px_6px_var(--table-row-actions-shadow)]',\n {\n 'mt-0': tableMeta.rowHeight.height === 'short',\n 'mt-1': tableMeta.rowHeight.height === 'medium',\n 'mt-1.5': tableMeta.rowHeight.height === 'tall',\n 'mt-2': tableMeta.rowHeight.height === 'extra-tall',\n }\n );\n\n return (\n <td className=\"!contents\" data-taco=\"save-status\">\n <span className={className}>\n {status === 'saving' ? (\n <Tooltip title={texts.table3.editing.saving.progress}>\n <Spinner delay={0} className=\"mr-1 !h-5 !w-5\" />\n </Tooltip>\n ) : (\n <Tooltip title={texts.table3.editing.saving.complete}>\n <BadgeIcon icon=\"tick\" color=\"green\" subtle className=\"mr-1\" />\n </Tooltip>\n )}\n </span>\n </td>\n );\n}\n"],"names":["useLocalization","Tooltip","Spinner","BadgeIcon"],"mappings":";;;;;;;;AAWO,SAAS,WAA4B,OAA+B;AACvE,QAAM,EAAE,OAAO,MAAA,IAAU;AACzB,QAAM,EAAE,MAAA,IAAUA,6BAAA;AAClB,QAAM,YAAY,MAAM,QAAQ;AAChC,QAAM,SAAS,UAAU,QAAQ,aAAa,KAAK;AAEnD,QAAM,YAAY;AAAA;AAAA,IAEd;AAAA,IACA;AAAA,MACI,QAAQ,UAAU,UAAU,WAAW;AAAA,MACvC,QAAQ,UAAU,UAAU,WAAW;AAAA,MACvC,UAAU,UAAU,UAAU,WAAW;AAAA,MACzC,QAAQ,UAAU,UAAU,WAAW;AAAA,IAAA;AAAA,EAC3C;AAGJ,SACI,sBAAA,cAAC,QAAG,WAAU,aAAY,aAAU,cAAA,GAChC,sBAAA,cAAC,UAAK,UAAA,GACD,WAAW,WACR,sBAAA,cAACC,QAAAA,SAAA,EAAQ,OAAO,MAAM,OAAO,QAAQ,OAAO,SAAA,GACxC,sBAAA,cAACC,QAAAA,SAAA,EAAQ,OAAO,GAAG,WAAU,iBAAA,CAAiB,CAClD,IAEA,sBAAA,cAACD,QAAAA,SAAA,EAAQ,OAAO,MAAM,OAAO,QAAQ,OAAO,YACxC,sBAAA,cAACE,UAAAA,aAAU,MAAK,QAAO,OAAM,SAAQ,QAAM,MAAC,WAAU,OAAA,CAAO,CACjE,CAER,CACJ;AAER;;"}
1
+ {"version":3,"file":"SaveStatus.cjs","sources":["../../../../../../src/components/Table3/components/Row/Editing/SaveStatus.tsx"],"sourcesContent":["import type { Table as ReactTable } from '@tanstack/react-table';\nimport cn from 'clsx';\nimport React from 'react';\n\nimport { BadgeIcon, Spinner, Tooltip, useLocalization } from '@/components';\nimport { getTableMeta } from '@/primitives/Table/useTableManager/util/rows';\n\ntype SaveStatusProps<TType = unknown> = {\n rowId: string;\n table: ReactTable<TType>;\n};\n\nexport function SaveStatus<TType = unknown>(props: SaveStatusProps<TType>) {\n const { rowId, table } = props;\n const { texts } = useLocalization();\n const tableMeta = getTableMeta(table);\n const status = tableMeta.editing.getRowStatus(rowId);\n\n const className = cn(\n // oxlint-disable-next-line taco/no-disallowed-shadow-classes -- scroll-edge indicator driven by a CSS variable, not a design-token elevation shadow\n 'sticky right-0 top-0 z-10 col-span-full -mb-[100%] ml-auto flex h-8 items-center bg-[inherit] px-1.5 shadow-[-6px_0px_6px_var(--table-row-actions-shadow)]',\n {\n 'mt-0': tableMeta.rowHeight.height === 'short',\n 'mt-1': tableMeta.rowHeight.height === 'medium',\n 'mt-1.5': tableMeta.rowHeight.height === 'tall',\n 'mt-2': tableMeta.rowHeight.height === 'extra-tall',\n }\n );\n\n return (\n <td className=\"!contents\" data-taco=\"save-status\">\n <span className={className}>\n {status === 'saving' ? (\n <Tooltip title={texts.table3.editing.saving.progress}>\n <Spinner delay={0} className=\"mr-1 !h-5 !w-5\" />\n </Tooltip>\n ) : (\n <Tooltip title={texts.table3.editing.saving.complete}>\n <BadgeIcon icon=\"tick\" color=\"green\" subtle className=\"mr-1\" />\n </Tooltip>\n )}\n </span>\n </td>\n );\n}\n"],"names":["useLocalization","getTableMeta","Tooltip","Spinner","BadgeIcon"],"mappings":";;;;;;;;;AAYO,SAAS,WAA4B,OAA+B;AACvE,QAAM,EAAE,OAAO,MAAA,IAAU;AACzB,QAAM,EAAE,MAAA,IAAUA,6BAAA;AAClB,QAAM,YAAYC,KAAAA,aAAa,KAAK;AACpC,QAAM,SAAS,UAAU,QAAQ,aAAa,KAAK;AAEnD,QAAM,YAAY;AAAA;AAAA,IAEd;AAAA,IACA;AAAA,MACI,QAAQ,UAAU,UAAU,WAAW;AAAA,MACvC,QAAQ,UAAU,UAAU,WAAW;AAAA,MACvC,UAAU,UAAU,UAAU,WAAW;AAAA,MACzC,QAAQ,UAAU,UAAU,WAAW;AAAA,IAAA;AAAA,EAC3C;AAGJ,SACI,sBAAA,cAAC,QAAG,WAAU,aAAY,aAAU,cAAA,GAChC,sBAAA,cAAC,UAAK,UAAA,GACD,WAAW,WACR,sBAAA,cAACC,QAAAA,SAAA,EAAQ,OAAO,MAAM,OAAO,QAAQ,OAAO,SAAA,GACxC,sBAAA,cAACC,QAAAA,SAAA,EAAQ,OAAO,GAAG,WAAU,iBAAA,CAAiB,CAClD,IAEA,sBAAA,cAACD,QAAAA,SAAA,EAAQ,OAAO,MAAM,OAAO,QAAQ,OAAO,YACxC,sBAAA,cAACE,UAAAA,aAAU,MAAK,QAAO,OAAM,SAAQ,QAAM,MAAC,WAAU,OAAA,CAAO,CACjE,CAER,CACJ;AAER;;"}
@@ -1,5 +1,6 @@
1
1
  import cn from "clsx";
2
2
  import React__default from "react";
3
+ import { getTableMeta } from "../../../../../primitives/Table/useTableManager/util/rows.js";
3
4
  import { useLocalization } from "../../../../Provider/Localization.js";
4
5
  import { Tooltip } from "../../../../Tooltip/Tooltip.js";
5
6
  import { Spinner } from "../../../../Spinner/Spinner.js";
@@ -7,7 +8,7 @@ import { BadgeIcon } from "../../../../BadgeIcon/BadgeIcon.js";
7
8
  function SaveStatus(props) {
8
9
  const { rowId, table } = props;
9
10
  const { texts } = useLocalization();
10
- const tableMeta = table.options.meta;
11
+ const tableMeta = getTableMeta(table);
11
12
  const status = tableMeta.editing.getRowStatus(rowId);
12
13
  const className = cn(
13
14
  // oxlint-disable-next-line taco/no-disallowed-shadow-classes -- scroll-edge indicator driven by a CSS variable, not a design-token elevation shadow
@@ -1 +1 @@
1
- {"version":3,"file":"SaveStatus.js","sources":["../../../../../../src/components/Table3/components/Row/Editing/SaveStatus.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport cn from 'clsx';\nimport React from 'react';\n\nimport { BadgeIcon, Spinner, Tooltip, useLocalization } from '@/components';\n\ntype SaveStatusProps<TType = unknown> = {\n rowId: string;\n table: ReactTable<TType>;\n};\n\nexport function SaveStatus<TType = unknown>(props: SaveStatusProps<TType>) {\n const { rowId, table } = props;\n const { texts } = useLocalization();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const status = tableMeta.editing.getRowStatus(rowId);\n\n const className = cn(\n // oxlint-disable-next-line taco/no-disallowed-shadow-classes -- scroll-edge indicator driven by a CSS variable, not a design-token elevation shadow\n 'sticky right-0 top-0 z-10 col-span-full -mb-[100%] ml-auto flex h-8 items-center bg-[inherit] px-1.5 shadow-[-6px_0px_6px_var(--table-row-actions-shadow)]',\n {\n 'mt-0': tableMeta.rowHeight.height === 'short',\n 'mt-1': tableMeta.rowHeight.height === 'medium',\n 'mt-1.5': tableMeta.rowHeight.height === 'tall',\n 'mt-2': tableMeta.rowHeight.height === 'extra-tall',\n }\n );\n\n return (\n <td className=\"!contents\" data-taco=\"save-status\">\n <span className={className}>\n {status === 'saving' ? (\n <Tooltip title={texts.table3.editing.saving.progress}>\n <Spinner delay={0} className=\"mr-1 !h-5 !w-5\" />\n </Tooltip>\n ) : (\n <Tooltip title={texts.table3.editing.saving.complete}>\n <BadgeIcon icon=\"tick\" color=\"green\" subtle className=\"mr-1\" />\n </Tooltip>\n )}\n </span>\n </td>\n );\n}\n"],"names":["React"],"mappings":";;;;;;AAWO,SAAS,WAA4B,OAA+B;AACvE,QAAM,EAAE,OAAO,MAAA,IAAU;AACzB,QAAM,EAAE,MAAA,IAAU,gBAAA;AAClB,QAAM,YAAY,MAAM,QAAQ;AAChC,QAAM,SAAS,UAAU,QAAQ,aAAa,KAAK;AAEnD,QAAM,YAAY;AAAA;AAAA,IAEd;AAAA,IACA;AAAA,MACI,QAAQ,UAAU,UAAU,WAAW;AAAA,MACvC,QAAQ,UAAU,UAAU,WAAW;AAAA,MACvC,UAAU,UAAU,UAAU,WAAW;AAAA,MACzC,QAAQ,UAAU,UAAU,WAAW;AAAA,IAAA;AAAA,EAC3C;AAGJ,SACIA,+BAAA,cAAC,QAAG,WAAU,aAAY,aAAU,cAAA,GAChCA,+BAAA,cAAC,UAAK,UAAA,GACD,WAAW,WACRA,+BAAA,cAAC,SAAA,EAAQ,OAAO,MAAM,OAAO,QAAQ,OAAO,SAAA,GACxCA,+BAAA,cAAC,SAAA,EAAQ,OAAO,GAAG,WAAU,iBAAA,CAAiB,CAClD,IAEAA,+BAAA,cAAC,SAAA,EAAQ,OAAO,MAAM,OAAO,QAAQ,OAAO,YACxCA,+BAAA,cAAC,aAAU,MAAK,QAAO,OAAM,SAAQ,QAAM,MAAC,WAAU,OAAA,CAAO,CACjE,CAER,CACJ;AAER;"}
1
+ {"version":3,"file":"SaveStatus.js","sources":["../../../../../../src/components/Table3/components/Row/Editing/SaveStatus.tsx"],"sourcesContent":["import type { Table as ReactTable } from '@tanstack/react-table';\nimport cn from 'clsx';\nimport React from 'react';\n\nimport { BadgeIcon, Spinner, Tooltip, useLocalization } from '@/components';\nimport { getTableMeta } from '@/primitives/Table/useTableManager/util/rows';\n\ntype SaveStatusProps<TType = unknown> = {\n rowId: string;\n table: ReactTable<TType>;\n};\n\nexport function SaveStatus<TType = unknown>(props: SaveStatusProps<TType>) {\n const { rowId, table } = props;\n const { texts } = useLocalization();\n const tableMeta = getTableMeta(table);\n const status = tableMeta.editing.getRowStatus(rowId);\n\n const className = cn(\n // oxlint-disable-next-line taco/no-disallowed-shadow-classes -- scroll-edge indicator driven by a CSS variable, not a design-token elevation shadow\n 'sticky right-0 top-0 z-10 col-span-full -mb-[100%] ml-auto flex h-8 items-center bg-[inherit] px-1.5 shadow-[-6px_0px_6px_var(--table-row-actions-shadow)]',\n {\n 'mt-0': tableMeta.rowHeight.height === 'short',\n 'mt-1': tableMeta.rowHeight.height === 'medium',\n 'mt-1.5': tableMeta.rowHeight.height === 'tall',\n 'mt-2': tableMeta.rowHeight.height === 'extra-tall',\n }\n );\n\n return (\n <td className=\"!contents\" data-taco=\"save-status\">\n <span className={className}>\n {status === 'saving' ? (\n <Tooltip title={texts.table3.editing.saving.progress}>\n <Spinner delay={0} className=\"mr-1 !h-5 !w-5\" />\n </Tooltip>\n ) : (\n <Tooltip title={texts.table3.editing.saving.complete}>\n <BadgeIcon icon=\"tick\" color=\"green\" subtle className=\"mr-1\" />\n </Tooltip>\n )}\n </span>\n </td>\n );\n}\n"],"names":["React"],"mappings":";;;;;;;AAYO,SAAS,WAA4B,OAA+B;AACvE,QAAM,EAAE,OAAO,MAAA,IAAU;AACzB,QAAM,EAAE,MAAA,IAAU,gBAAA;AAClB,QAAM,YAAY,aAAa,KAAK;AACpC,QAAM,SAAS,UAAU,QAAQ,aAAa,KAAK;AAEnD,QAAM,YAAY;AAAA;AAAA,IAEd;AAAA,IACA;AAAA,MACI,QAAQ,UAAU,UAAU,WAAW;AAAA,MACvC,QAAQ,UAAU,UAAU,WAAW;AAAA,MACvC,UAAU,UAAU,UAAU,WAAW;AAAA,MACzC,QAAQ,UAAU,UAAU,WAAW;AAAA,IAAA;AAAA,EAC3C;AAGJ,SACIA,+BAAA,cAAC,QAAG,WAAU,aAAY,aAAU,cAAA,GAChCA,+BAAA,cAAC,UAAK,UAAA,GACD,WAAW,WACRA,+BAAA,cAAC,SAAA,EAAQ,OAAO,MAAM,OAAO,QAAQ,OAAO,SAAA,GACxCA,+BAAA,cAAC,SAAA,EAAQ,OAAO,GAAG,WAAU,iBAAA,CAAiB,CAClD,IAEAA,+BAAA,cAAC,SAAA,EAAQ,OAAO,MAAM,OAAO,QAAQ,OAAO,YACxCA,+BAAA,cAAC,aAAU,MAAK,QAAO,OAAM,SAAQ,QAAM,MAAC,WAAU,OAAA,CAAO,CACjE,CAER,CACJ;AAER;"}
@@ -5,6 +5,7 @@ const useLazyEffect = require("../../../../hooks/useLazyEffect.cjs");
5
5
  const util = require("../../../../primitives/Table/Core/components/Body/util.cjs");
6
6
  const DisplayRow = require("../../../../primitives/Table/Core/components/Row/BuiltIns/DisplayRow.cjs");
7
7
  const columns = require("../../../../primitives/Table/useTableManager/util/columns.cjs");
8
+ const rows = require("../../../../primitives/Table/useTableManager/util/rows.cjs");
8
9
  const dom = require("../../../../utils/dom.cjs");
9
10
  const editing = require("../../util/editing.cjs");
10
11
  const DiscardChangesConfirmationDialog = require("../Editing/DiscardChangesConfirmationDialog.cjs");
@@ -12,7 +13,7 @@ const SaveStatus = require("./Editing/SaveStatus.cjs");
12
13
  function Row(props) {
13
14
  const { row, index, table } = props;
14
15
  const focusManager = util.useAugmentedFocusManager();
15
- const tableMeta = table.options.meta;
16
+ const tableMeta = rows.getTableMeta(table);
16
17
  const isActiveRow = tableMeta.rowActive.rowActiveIndex === index;
17
18
  const hasErrors = tableMeta.editing.hasRowErrors(row.id);
18
19
  React.useEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"Row.cjs","sources":["../../../../../src/components/Table3/components/Row/Row.tsx"],"sourcesContent":["import type { TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { useLazyEffect } from '@/hooks/useLazyEffect';\nimport { useAugmentedFocusManager } from '@/primitives/Table/Core/components/Body/util';\nimport type { DisplayRowProps } from '@/primitives/Table/Core/components/Row/BuiltIns/DisplayRow';\nimport { DisplayRow } from '@/primitives/Table/Core/components/Row/BuiltIns/DisplayRow';\nimport { isInternalColumn } from '@/primitives/Table/useTableManager/util/columns';\nimport { isElementInsideOverlay, setDataFocusAttribute } from '@/utils/dom';\n\nimport { isTemporaryRow } from '../../util/editing';\nimport { DiscardChangesConfirmationDialog } from '../Editing/DiscardChangesConfirmationDialog';\n\nimport { SaveStatus } from './Editing/SaveStatus';\n\nexport function Row<TType = unknown>(props: DisplayRowProps<TType>) {\n const { row, index, table } = props;\n const focusManager = useAugmentedFocusManager();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const isActiveRow = tableMeta.rowActive.rowActiveIndex === index;\n\n // Track validation errors to trigger re-measurement when they change\n const hasErrors = tableMeta.editing.hasRowErrors(row.id);\n\n React.useEffect(() => {\n if (tableMeta.editing.isEditing && isActiveRow && tableMeta.editing.lastFocusedCellIndex === undefined) {\n const element = focusManager.focusFirst();\n if (element) {\n setDataFocusAttribute(element);\n }\n }\n }, [tableMeta.editing.isEditing, tableMeta.rowActive.rowActiveIndex, tableMeta.editing.lastFocusedCellIndex]);\n\n useLazyEffect(() => {\n // this saves any pending changes when a row's active state changes from active to inactive.\n if (tableMeta.editing.isEditing && !isActiveRow) {\n tableMeta.editing.saveChanges(table, row.id);\n }\n }, [isActiveRow]);\n\n const handleFocus = React.useCallback(\n (event: React.FocusEvent<HTMLTableRowElement>) => {\n if (tableMeta.editing.isEditing) {\n const cellElement = event.target.closest('td');\n const cellIndex = Number(cellElement?.getAttribute('data-cell-index') ?? undefined);\n\n // ignore internal cells (e.g. row actions): the last focused data cell must survive clicking\n // a row action, so actions can target the user's position in the row (helpers.editing.lastFocusedCellId)\n if (!Number.isNaN(cellIndex) && !isInternalColumn(cellElement?.getAttribute('data-cell-id') ?? '')) {\n tableMeta.editing.setLastFocusedCellIndex(cellIndex);\n }\n }\n },\n [tableMeta.editing.isEditing, isActiveRow]\n );\n\n const rowStatus = tableMeta.editing.getRowStatus(row.id);\n\n // discard new row\n const [showDiscardDialog, setShowDiscardDialog] = React.useState(false);\n\n function handleDiscard() {\n tableMeta.editing.discardChanges(row.id, table);\n requestAnimationFrame(() => {\n if (isTemporaryRow(row.id)) {\n tableMeta.editing.createRowButtonRef.current?.focus();\n } else {\n focusManager.focusFirst();\n }\n });\n }\n\n function handleKeyDown(event: React.KeyboardEvent<HTMLTableRowElement>) {\n if (props.onKeyDown) {\n props.onKeyDown(event);\n }\n\n if (event.isDefaultPrevented() || event.isPropagationStopped()) {\n return;\n }\n\n if (\n event.key === 'Escape' &&\n tableMeta.editing.hasChanges(row.id) &&\n !isElementInsideOverlay(event.target as HTMLElement)\n ) {\n event.preventDefault();\n event.stopPropagation();\n setShowDiscardDialog(true);\n }\n }\n\n const attributes = {\n 'data-row-editing-invalid': tableMeta.editing.hasRowErrors(row.id)\n ? tableMeta.editing.hasRowErrorsShownInAlert(row.id)\n ? true\n : 'unseen'\n : undefined,\n 'data-row-editing-status': rowStatus,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n };\n\n return (\n <>\n <DisplayRow<TType> {...props} {...attributes} remeasureDependencies={[hasErrors]}>\n {rowStatus === 'saving' || rowStatus === 'saved' ? <SaveStatus rowId={row.id} table={table} /> : null}\n </DisplayRow>\n <DiscardChangesConfirmationDialog\n open={showDiscardDialog}\n onChange={setShowDiscardDialog}\n onDiscard={handleDiscard}\n />\n </>\n );\n}\n"],"names":["useAugmentedFocusManager","setDataFocusAttribute","useLazyEffect","isInternalColumn","isTemporaryRow","isElementInsideOverlay","DisplayRow","SaveStatus","DiscardChangesConfirmationDialog"],"mappings":";;;;;;;;;;;AAeO,SAAS,IAAqB,OAA+B;AAChE,QAAM,EAAE,KAAK,OAAO,MAAA,IAAU;AAC9B,QAAM,eAAeA,KAAAA,yBAAA;AACrB,QAAM,YAAY,MAAM,QAAQ;AAChC,QAAM,cAAc,UAAU,UAAU,mBAAmB;AAG3D,QAAM,YAAY,UAAU,QAAQ,aAAa,IAAI,EAAE;AAEvD,QAAM,UAAU,MAAM;AAClB,QAAI,UAAU,QAAQ,aAAa,eAAe,UAAU,QAAQ,yBAAyB,QAAW;AACpG,YAAM,UAAU,aAAa,WAAA;AAC7B,UAAI,SAAS;AACTC,YAAAA,sBAAsB,OAAO;AAAA,MACjC;AAAA,IACJ;AAAA,EACJ,GAAG,CAAC,UAAU,QAAQ,WAAW,UAAU,UAAU,gBAAgB,UAAU,QAAQ,oBAAoB,CAAC;AAE5GC,gBAAAA,cAAc,MAAM;AAEhB,QAAI,UAAU,QAAQ,aAAa,CAAC,aAAa;AAC7C,gBAAU,QAAQ,YAAY,OAAO,IAAI,EAAE;AAAA,IAC/C;AAAA,EACJ,GAAG,CAAC,WAAW,CAAC;AAEhB,QAAM,cAAc,MAAM;AAAA,IACtB,CAAC,UAAiD;AAC9C,UAAI,UAAU,QAAQ,WAAW;AAC7B,cAAM,cAAc,MAAM,OAAO,QAAQ,IAAI;AAC7C,cAAM,YAAY,OAAO,aAAa,aAAa,iBAAiB,KAAK,MAAS;AAIlF,YAAI,CAAC,OAAO,MAAM,SAAS,KAAK,CAACC,yBAAiB,aAAa,aAAa,cAAc,KAAK,EAAE,GAAG;AAChG,oBAAU,QAAQ,wBAAwB,SAAS;AAAA,QACvD;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,CAAC,UAAU,QAAQ,WAAW,WAAW;AAAA,EAAA;AAG7C,QAAM,YAAY,UAAU,QAAQ,aAAa,IAAI,EAAE;AAGvD,QAAM,CAAC,mBAAmB,oBAAoB,IAAI,MAAM,SAAS,KAAK;AAEtE,WAAS,gBAAgB;AACrB,cAAU,QAAQ,eAAe,IAAI,IAAI,KAAK;AAC9C,0BAAsB,MAAM;AACxB,UAAIC,QAAAA,eAAe,IAAI,EAAE,GAAG;AACxB,kBAAU,QAAQ,mBAAmB,SAAS,MAAA;AAAA,MAClD,OAAO;AACH,qBAAa,WAAA;AAAA,MACjB;AAAA,IACJ,CAAC;AAAA,EACL;AAEA,WAAS,cAAc,OAAiD;AACpE,QAAI,MAAM,WAAW;AACjB,YAAM,UAAU,KAAK;AAAA,IACzB;AAEA,QAAI,MAAM,mBAAA,KAAwB,MAAM,wBAAwB;AAC5D;AAAA,IACJ;AAEA,QACI,MAAM,QAAQ,YACd,UAAU,QAAQ,WAAW,IAAI,EAAE,KACnC,CAACC,IAAAA,uBAAuB,MAAM,MAAqB,GACrD;AACE,YAAM,eAAA;AACN,YAAM,gBAAA;AACN,2BAAqB,IAAI;AAAA,IAC7B;AAAA,EACJ;AAEA,QAAM,aAAa;AAAA,IACf,4BAA4B,UAAU,QAAQ,aAAa,IAAI,EAAE,IAC3D,UAAU,QAAQ,yBAAyB,IAAI,EAAE,IAC7C,OACA,WACJ;AAAA,IACN,2BAA2B;AAAA,IAC3B,SAAS;AAAA,IACT,WAAW;AAAA,EAAA;AAGf,SACI,sBAAA,cAAA,MAAA,UAAA,0CACKC,WAAAA,YAAA,EAAmB,GAAG,OAAQ,GAAG,YAAY,uBAAuB,CAAC,SAAS,EAAA,GAC1E,cAAc,YAAY,cAAc,UAAU,sBAAA,cAACC,WAAAA,YAAA,EAAW,OAAO,IAAI,IAAI,MAAA,CAAc,IAAK,IACrG,GACA,sBAAA;AAAA,IAACC,iCAAAA;AAAAA,IAAA;AAAA,MACG,MAAM;AAAA,MACN,UAAU;AAAA,MACV,WAAW;AAAA,IAAA;AAAA,EAAA,CAEnB;AAER;;"}
1
+ {"version":3,"file":"Row.cjs","sources":["../../../../../src/components/Table3/components/Row/Row.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useLazyEffect } from '@/hooks/useLazyEffect';\nimport { useAugmentedFocusManager } from '@/primitives/Table/Core/components/Body/util';\nimport type { DisplayRowProps } from '@/primitives/Table/Core/components/Row/BuiltIns/DisplayRow';\nimport { DisplayRow } from '@/primitives/Table/Core/components/Row/BuiltIns/DisplayRow';\nimport { isInternalColumn } from '@/primitives/Table/useTableManager/util/columns';\nimport { getTableMeta } from '@/primitives/Table/useTableManager/util/rows';\nimport { isElementInsideOverlay, setDataFocusAttribute } from '@/utils/dom';\n\nimport { isTemporaryRow } from '../../util/editing';\nimport { DiscardChangesConfirmationDialog } from '../Editing/DiscardChangesConfirmationDialog';\n\nimport { SaveStatus } from './Editing/SaveStatus';\n\nexport function Row<TType = unknown>(props: DisplayRowProps<TType>) {\n const { row, index, table } = props;\n const focusManager = useAugmentedFocusManager();\n const tableMeta = getTableMeta(table);\n const isActiveRow = tableMeta.rowActive.rowActiveIndex === index;\n\n // Track validation errors to trigger re-measurement when they change\n const hasErrors = tableMeta.editing.hasRowErrors(row.id);\n\n React.useEffect(() => {\n if (tableMeta.editing.isEditing && isActiveRow && tableMeta.editing.lastFocusedCellIndex === undefined) {\n const element = focusManager.focusFirst();\n if (element) {\n setDataFocusAttribute(element);\n }\n }\n }, [tableMeta.editing.isEditing, tableMeta.rowActive.rowActiveIndex, tableMeta.editing.lastFocusedCellIndex]);\n\n useLazyEffect(() => {\n // this saves any pending changes when a row's active state changes from active to inactive.\n if (tableMeta.editing.isEditing && !isActiveRow) {\n tableMeta.editing.saveChanges(table, row.id);\n }\n }, [isActiveRow]);\n\n const handleFocus = React.useCallback(\n (event: React.FocusEvent<HTMLTableRowElement>) => {\n if (tableMeta.editing.isEditing) {\n const cellElement = event.target.closest('td');\n const cellIndex = Number(cellElement?.getAttribute('data-cell-index') ?? undefined);\n\n // ignore internal cells (e.g. row actions): the last focused data cell must survive clicking\n // a row action, so actions can target the user's position in the row (helpers.editing.lastFocusedCellId)\n if (!Number.isNaN(cellIndex) && !isInternalColumn(cellElement?.getAttribute('data-cell-id') ?? '')) {\n tableMeta.editing.setLastFocusedCellIndex(cellIndex);\n }\n }\n },\n [tableMeta.editing.isEditing, isActiveRow]\n );\n\n const rowStatus = tableMeta.editing.getRowStatus(row.id);\n\n // discard new row\n const [showDiscardDialog, setShowDiscardDialog] = React.useState(false);\n\n function handleDiscard() {\n tableMeta.editing.discardChanges(row.id, table);\n requestAnimationFrame(() => {\n if (isTemporaryRow(row.id)) {\n tableMeta.editing.createRowButtonRef.current?.focus();\n } else {\n focusManager.focusFirst();\n }\n });\n }\n\n function handleKeyDown(event: React.KeyboardEvent<HTMLTableRowElement>) {\n if (props.onKeyDown) {\n props.onKeyDown(event);\n }\n\n if (event.isDefaultPrevented() || event.isPropagationStopped()) {\n return;\n }\n\n if (\n event.key === 'Escape' &&\n tableMeta.editing.hasChanges(row.id) &&\n !isElementInsideOverlay(event.target as HTMLElement)\n ) {\n event.preventDefault();\n event.stopPropagation();\n setShowDiscardDialog(true);\n }\n }\n\n const attributes = {\n 'data-row-editing-invalid': tableMeta.editing.hasRowErrors(row.id)\n ? tableMeta.editing.hasRowErrorsShownInAlert(row.id)\n ? true\n : 'unseen'\n : undefined,\n 'data-row-editing-status': rowStatus,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n };\n\n return (\n <>\n <DisplayRow<TType> {...props} {...attributes} remeasureDependencies={[hasErrors]}>\n {rowStatus === 'saving' || rowStatus === 'saved' ? <SaveStatus rowId={row.id} table={table} /> : null}\n </DisplayRow>\n <DiscardChangesConfirmationDialog\n open={showDiscardDialog}\n onChange={setShowDiscardDialog}\n onDiscard={handleDiscard}\n />\n </>\n );\n}\n"],"names":["useAugmentedFocusManager","getTableMeta","setDataFocusAttribute","useLazyEffect","isInternalColumn","isTemporaryRow","isElementInsideOverlay","DisplayRow","SaveStatus","DiscardChangesConfirmationDialog"],"mappings":";;;;;;;;;;;;AAeO,SAAS,IAAqB,OAA+B;AAChE,QAAM,EAAE,KAAK,OAAO,MAAA,IAAU;AAC9B,QAAM,eAAeA,KAAAA,yBAAA;AACrB,QAAM,YAAYC,KAAAA,aAAa,KAAK;AACpC,QAAM,cAAc,UAAU,UAAU,mBAAmB;AAG3D,QAAM,YAAY,UAAU,QAAQ,aAAa,IAAI,EAAE;AAEvD,QAAM,UAAU,MAAM;AAClB,QAAI,UAAU,QAAQ,aAAa,eAAe,UAAU,QAAQ,yBAAyB,QAAW;AACpG,YAAM,UAAU,aAAa,WAAA;AAC7B,UAAI,SAAS;AACTC,YAAAA,sBAAsB,OAAO;AAAA,MACjC;AAAA,IACJ;AAAA,EACJ,GAAG,CAAC,UAAU,QAAQ,WAAW,UAAU,UAAU,gBAAgB,UAAU,QAAQ,oBAAoB,CAAC;AAE5GC,gBAAAA,cAAc,MAAM;AAEhB,QAAI,UAAU,QAAQ,aAAa,CAAC,aAAa;AAC7C,gBAAU,QAAQ,YAAY,OAAO,IAAI,EAAE;AAAA,IAC/C;AAAA,EACJ,GAAG,CAAC,WAAW,CAAC;AAEhB,QAAM,cAAc,MAAM;AAAA,IACtB,CAAC,UAAiD;AAC9C,UAAI,UAAU,QAAQ,WAAW;AAC7B,cAAM,cAAc,MAAM,OAAO,QAAQ,IAAI;AAC7C,cAAM,YAAY,OAAO,aAAa,aAAa,iBAAiB,KAAK,MAAS;AAIlF,YAAI,CAAC,OAAO,MAAM,SAAS,KAAK,CAACC,yBAAiB,aAAa,aAAa,cAAc,KAAK,EAAE,GAAG;AAChG,oBAAU,QAAQ,wBAAwB,SAAS;AAAA,QACvD;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,CAAC,UAAU,QAAQ,WAAW,WAAW;AAAA,EAAA;AAG7C,QAAM,YAAY,UAAU,QAAQ,aAAa,IAAI,EAAE;AAGvD,QAAM,CAAC,mBAAmB,oBAAoB,IAAI,MAAM,SAAS,KAAK;AAEtE,WAAS,gBAAgB;AACrB,cAAU,QAAQ,eAAe,IAAI,IAAI,KAAK;AAC9C,0BAAsB,MAAM;AACxB,UAAIC,QAAAA,eAAe,IAAI,EAAE,GAAG;AACxB,kBAAU,QAAQ,mBAAmB,SAAS,MAAA;AAAA,MAClD,OAAO;AACH,qBAAa,WAAA;AAAA,MACjB;AAAA,IACJ,CAAC;AAAA,EACL;AAEA,WAAS,cAAc,OAAiD;AACpE,QAAI,MAAM,WAAW;AACjB,YAAM,UAAU,KAAK;AAAA,IACzB;AAEA,QAAI,MAAM,mBAAA,KAAwB,MAAM,wBAAwB;AAC5D;AAAA,IACJ;AAEA,QACI,MAAM,QAAQ,YACd,UAAU,QAAQ,WAAW,IAAI,EAAE,KACnC,CAACC,IAAAA,uBAAuB,MAAM,MAAqB,GACrD;AACE,YAAM,eAAA;AACN,YAAM,gBAAA;AACN,2BAAqB,IAAI;AAAA,IAC7B;AAAA,EACJ;AAEA,QAAM,aAAa;AAAA,IACf,4BAA4B,UAAU,QAAQ,aAAa,IAAI,EAAE,IAC3D,UAAU,QAAQ,yBAAyB,IAAI,EAAE,IAC7C,OACA,WACJ;AAAA,IACN,2BAA2B;AAAA,IAC3B,SAAS;AAAA,IACT,WAAW;AAAA,EAAA;AAGf,SACI,sBAAA,cAAA,MAAA,UAAA,0CACKC,WAAAA,YAAA,EAAmB,GAAG,OAAQ,GAAG,YAAY,uBAAuB,CAAC,SAAS,EAAA,GAC1E,cAAc,YAAY,cAAc,UAAU,sBAAA,cAACC,WAAAA,YAAA,EAAW,OAAO,IAAI,IAAI,MAAA,CAAc,IAAK,IACrG,GACA,sBAAA;AAAA,IAACC,iCAAAA;AAAAA,IAAA;AAAA,MACG,MAAM;AAAA,MACN,UAAU;AAAA,MACV,WAAW;AAAA,IAAA;AAAA,EAAA,CAEnB;AAER;;"}
@@ -3,6 +3,7 @@ import { useLazyEffect } from "../../../../hooks/useLazyEffect.js";
3
3
  import { useAugmentedFocusManager } from "../../../../primitives/Table/Core/components/Body/util.js";
4
4
  import { DisplayRow } from "../../../../primitives/Table/Core/components/Row/BuiltIns/DisplayRow.js";
5
5
  import { isInternalColumn } from "../../../../primitives/Table/useTableManager/util/columns.js";
6
+ import { getTableMeta } from "../../../../primitives/Table/useTableManager/util/rows.js";
6
7
  import { setDataFocusAttribute, isElementInsideOverlay } from "../../../../utils/dom.js";
7
8
  import { isTemporaryRow } from "../../util/editing.js";
8
9
  import { DiscardChangesConfirmationDialog } from "../Editing/DiscardChangesConfirmationDialog.js";
@@ -10,7 +11,7 @@ import { SaveStatus } from "./Editing/SaveStatus.js";
10
11
  function Row(props) {
11
12
  const { row, index, table } = props;
12
13
  const focusManager = useAugmentedFocusManager();
13
- const tableMeta = table.options.meta;
14
+ const tableMeta = getTableMeta(table);
14
15
  const isActiveRow = tableMeta.rowActive.rowActiveIndex === index;
15
16
  const hasErrors = tableMeta.editing.hasRowErrors(row.id);
16
17
  React__default.useEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"Row.js","sources":["../../../../../src/components/Table3/components/Row/Row.tsx"],"sourcesContent":["import type { TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { useLazyEffect } from '@/hooks/useLazyEffect';\nimport { useAugmentedFocusManager } from '@/primitives/Table/Core/components/Body/util';\nimport type { DisplayRowProps } from '@/primitives/Table/Core/components/Row/BuiltIns/DisplayRow';\nimport { DisplayRow } from '@/primitives/Table/Core/components/Row/BuiltIns/DisplayRow';\nimport { isInternalColumn } from '@/primitives/Table/useTableManager/util/columns';\nimport { isElementInsideOverlay, setDataFocusAttribute } from '@/utils/dom';\n\nimport { isTemporaryRow } from '../../util/editing';\nimport { DiscardChangesConfirmationDialog } from '../Editing/DiscardChangesConfirmationDialog';\n\nimport { SaveStatus } from './Editing/SaveStatus';\n\nexport function Row<TType = unknown>(props: DisplayRowProps<TType>) {\n const { row, index, table } = props;\n const focusManager = useAugmentedFocusManager();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const isActiveRow = tableMeta.rowActive.rowActiveIndex === index;\n\n // Track validation errors to trigger re-measurement when they change\n const hasErrors = tableMeta.editing.hasRowErrors(row.id);\n\n React.useEffect(() => {\n if (tableMeta.editing.isEditing && isActiveRow && tableMeta.editing.lastFocusedCellIndex === undefined) {\n const element = focusManager.focusFirst();\n if (element) {\n setDataFocusAttribute(element);\n }\n }\n }, [tableMeta.editing.isEditing, tableMeta.rowActive.rowActiveIndex, tableMeta.editing.lastFocusedCellIndex]);\n\n useLazyEffect(() => {\n // this saves any pending changes when a row's active state changes from active to inactive.\n if (tableMeta.editing.isEditing && !isActiveRow) {\n tableMeta.editing.saveChanges(table, row.id);\n }\n }, [isActiveRow]);\n\n const handleFocus = React.useCallback(\n (event: React.FocusEvent<HTMLTableRowElement>) => {\n if (tableMeta.editing.isEditing) {\n const cellElement = event.target.closest('td');\n const cellIndex = Number(cellElement?.getAttribute('data-cell-index') ?? undefined);\n\n // ignore internal cells (e.g. row actions): the last focused data cell must survive clicking\n // a row action, so actions can target the user's position in the row (helpers.editing.lastFocusedCellId)\n if (!Number.isNaN(cellIndex) && !isInternalColumn(cellElement?.getAttribute('data-cell-id') ?? '')) {\n tableMeta.editing.setLastFocusedCellIndex(cellIndex);\n }\n }\n },\n [tableMeta.editing.isEditing, isActiveRow]\n );\n\n const rowStatus = tableMeta.editing.getRowStatus(row.id);\n\n // discard new row\n const [showDiscardDialog, setShowDiscardDialog] = React.useState(false);\n\n function handleDiscard() {\n tableMeta.editing.discardChanges(row.id, table);\n requestAnimationFrame(() => {\n if (isTemporaryRow(row.id)) {\n tableMeta.editing.createRowButtonRef.current?.focus();\n } else {\n focusManager.focusFirst();\n }\n });\n }\n\n function handleKeyDown(event: React.KeyboardEvent<HTMLTableRowElement>) {\n if (props.onKeyDown) {\n props.onKeyDown(event);\n }\n\n if (event.isDefaultPrevented() || event.isPropagationStopped()) {\n return;\n }\n\n if (\n event.key === 'Escape' &&\n tableMeta.editing.hasChanges(row.id) &&\n !isElementInsideOverlay(event.target as HTMLElement)\n ) {\n event.preventDefault();\n event.stopPropagation();\n setShowDiscardDialog(true);\n }\n }\n\n const attributes = {\n 'data-row-editing-invalid': tableMeta.editing.hasRowErrors(row.id)\n ? tableMeta.editing.hasRowErrorsShownInAlert(row.id)\n ? true\n : 'unseen'\n : undefined,\n 'data-row-editing-status': rowStatus,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n };\n\n return (\n <>\n <DisplayRow<TType> {...props} {...attributes} remeasureDependencies={[hasErrors]}>\n {rowStatus === 'saving' || rowStatus === 'saved' ? <SaveStatus rowId={row.id} table={table} /> : null}\n </DisplayRow>\n <DiscardChangesConfirmationDialog\n open={showDiscardDialog}\n onChange={setShowDiscardDialog}\n onDiscard={handleDiscard}\n />\n </>\n );\n}\n"],"names":["React"],"mappings":";;;;;;;;;AAeO,SAAS,IAAqB,OAA+B;AAChE,QAAM,EAAE,KAAK,OAAO,MAAA,IAAU;AAC9B,QAAM,eAAe,yBAAA;AACrB,QAAM,YAAY,MAAM,QAAQ;AAChC,QAAM,cAAc,UAAU,UAAU,mBAAmB;AAG3D,QAAM,YAAY,UAAU,QAAQ,aAAa,IAAI,EAAE;AAEvDA,iBAAM,UAAU,MAAM;AAClB,QAAI,UAAU,QAAQ,aAAa,eAAe,UAAU,QAAQ,yBAAyB,QAAW;AACpG,YAAM,UAAU,aAAa,WAAA;AAC7B,UAAI,SAAS;AACT,8BAAsB,OAAO;AAAA,MACjC;AAAA,IACJ;AAAA,EACJ,GAAG,CAAC,UAAU,QAAQ,WAAW,UAAU,UAAU,gBAAgB,UAAU,QAAQ,oBAAoB,CAAC;AAE5G,gBAAc,MAAM;AAEhB,QAAI,UAAU,QAAQ,aAAa,CAAC,aAAa;AAC7C,gBAAU,QAAQ,YAAY,OAAO,IAAI,EAAE;AAAA,IAC/C;AAAA,EACJ,GAAG,CAAC,WAAW,CAAC;AAEhB,QAAM,cAAcA,eAAM;AAAA,IACtB,CAAC,UAAiD;AAC9C,UAAI,UAAU,QAAQ,WAAW;AAC7B,cAAM,cAAc,MAAM,OAAO,QAAQ,IAAI;AAC7C,cAAM,YAAY,OAAO,aAAa,aAAa,iBAAiB,KAAK,MAAS;AAIlF,YAAI,CAAC,OAAO,MAAM,SAAS,KAAK,CAAC,iBAAiB,aAAa,aAAa,cAAc,KAAK,EAAE,GAAG;AAChG,oBAAU,QAAQ,wBAAwB,SAAS;AAAA,QACvD;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,CAAC,UAAU,QAAQ,WAAW,WAAW;AAAA,EAAA;AAG7C,QAAM,YAAY,UAAU,QAAQ,aAAa,IAAI,EAAE;AAGvD,QAAM,CAAC,mBAAmB,oBAAoB,IAAIA,eAAM,SAAS,KAAK;AAEtE,WAAS,gBAAgB;AACrB,cAAU,QAAQ,eAAe,IAAI,IAAI,KAAK;AAC9C,0BAAsB,MAAM;AACxB,UAAI,eAAe,IAAI,EAAE,GAAG;AACxB,kBAAU,QAAQ,mBAAmB,SAAS,MAAA;AAAA,MAClD,OAAO;AACH,qBAAa,WAAA;AAAA,MACjB;AAAA,IACJ,CAAC;AAAA,EACL;AAEA,WAAS,cAAc,OAAiD;AACpE,QAAI,MAAM,WAAW;AACjB,YAAM,UAAU,KAAK;AAAA,IACzB;AAEA,QAAI,MAAM,mBAAA,KAAwB,MAAM,wBAAwB;AAC5D;AAAA,IACJ;AAEA,QACI,MAAM,QAAQ,YACd,UAAU,QAAQ,WAAW,IAAI,EAAE,KACnC,CAAC,uBAAuB,MAAM,MAAqB,GACrD;AACE,YAAM,eAAA;AACN,YAAM,gBAAA;AACN,2BAAqB,IAAI;AAAA,IAC7B;AAAA,EACJ;AAEA,QAAM,aAAa;AAAA,IACf,4BAA4B,UAAU,QAAQ,aAAa,IAAI,EAAE,IAC3D,UAAU,QAAQ,yBAAyB,IAAI,EAAE,IAC7C,OACA,WACJ;AAAA,IACN,2BAA2B;AAAA,IAC3B,SAAS;AAAA,IACT,WAAW;AAAA,EAAA;AAGf,SACIA,+BAAA,cAAAA,eAAA,UAAA,mDACK,YAAA,EAAmB,GAAG,OAAQ,GAAG,YAAY,uBAAuB,CAAC,SAAS,EAAA,GAC1E,cAAc,YAAY,cAAc,UAAUA,+BAAA,cAAC,YAAA,EAAW,OAAO,IAAI,IAAI,MAAA,CAAc,IAAK,IACrG,GACAA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,MAAM;AAAA,MACN,UAAU;AAAA,MACV,WAAW;AAAA,IAAA;AAAA,EAAA,CAEnB;AAER;"}
1
+ {"version":3,"file":"Row.js","sources":["../../../../../src/components/Table3/components/Row/Row.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useLazyEffect } from '@/hooks/useLazyEffect';\nimport { useAugmentedFocusManager } from '@/primitives/Table/Core/components/Body/util';\nimport type { DisplayRowProps } from '@/primitives/Table/Core/components/Row/BuiltIns/DisplayRow';\nimport { DisplayRow } from '@/primitives/Table/Core/components/Row/BuiltIns/DisplayRow';\nimport { isInternalColumn } from '@/primitives/Table/useTableManager/util/columns';\nimport { getTableMeta } from '@/primitives/Table/useTableManager/util/rows';\nimport { isElementInsideOverlay, setDataFocusAttribute } from '@/utils/dom';\n\nimport { isTemporaryRow } from '../../util/editing';\nimport { DiscardChangesConfirmationDialog } from '../Editing/DiscardChangesConfirmationDialog';\n\nimport { SaveStatus } from './Editing/SaveStatus';\n\nexport function Row<TType = unknown>(props: DisplayRowProps<TType>) {\n const { row, index, table } = props;\n const focusManager = useAugmentedFocusManager();\n const tableMeta = getTableMeta(table);\n const isActiveRow = tableMeta.rowActive.rowActiveIndex === index;\n\n // Track validation errors to trigger re-measurement when they change\n const hasErrors = tableMeta.editing.hasRowErrors(row.id);\n\n React.useEffect(() => {\n if (tableMeta.editing.isEditing && isActiveRow && tableMeta.editing.lastFocusedCellIndex === undefined) {\n const element = focusManager.focusFirst();\n if (element) {\n setDataFocusAttribute(element);\n }\n }\n }, [tableMeta.editing.isEditing, tableMeta.rowActive.rowActiveIndex, tableMeta.editing.lastFocusedCellIndex]);\n\n useLazyEffect(() => {\n // this saves any pending changes when a row's active state changes from active to inactive.\n if (tableMeta.editing.isEditing && !isActiveRow) {\n tableMeta.editing.saveChanges(table, row.id);\n }\n }, [isActiveRow]);\n\n const handleFocus = React.useCallback(\n (event: React.FocusEvent<HTMLTableRowElement>) => {\n if (tableMeta.editing.isEditing) {\n const cellElement = event.target.closest('td');\n const cellIndex = Number(cellElement?.getAttribute('data-cell-index') ?? undefined);\n\n // ignore internal cells (e.g. row actions): the last focused data cell must survive clicking\n // a row action, so actions can target the user's position in the row (helpers.editing.lastFocusedCellId)\n if (!Number.isNaN(cellIndex) && !isInternalColumn(cellElement?.getAttribute('data-cell-id') ?? '')) {\n tableMeta.editing.setLastFocusedCellIndex(cellIndex);\n }\n }\n },\n [tableMeta.editing.isEditing, isActiveRow]\n );\n\n const rowStatus = tableMeta.editing.getRowStatus(row.id);\n\n // discard new row\n const [showDiscardDialog, setShowDiscardDialog] = React.useState(false);\n\n function handleDiscard() {\n tableMeta.editing.discardChanges(row.id, table);\n requestAnimationFrame(() => {\n if (isTemporaryRow(row.id)) {\n tableMeta.editing.createRowButtonRef.current?.focus();\n } else {\n focusManager.focusFirst();\n }\n });\n }\n\n function handleKeyDown(event: React.KeyboardEvent<HTMLTableRowElement>) {\n if (props.onKeyDown) {\n props.onKeyDown(event);\n }\n\n if (event.isDefaultPrevented() || event.isPropagationStopped()) {\n return;\n }\n\n if (\n event.key === 'Escape' &&\n tableMeta.editing.hasChanges(row.id) &&\n !isElementInsideOverlay(event.target as HTMLElement)\n ) {\n event.preventDefault();\n event.stopPropagation();\n setShowDiscardDialog(true);\n }\n }\n\n const attributes = {\n 'data-row-editing-invalid': tableMeta.editing.hasRowErrors(row.id)\n ? tableMeta.editing.hasRowErrorsShownInAlert(row.id)\n ? true\n : 'unseen'\n : undefined,\n 'data-row-editing-status': rowStatus,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n };\n\n return (\n <>\n <DisplayRow<TType> {...props} {...attributes} remeasureDependencies={[hasErrors]}>\n {rowStatus === 'saving' || rowStatus === 'saved' ? <SaveStatus rowId={row.id} table={table} /> : null}\n </DisplayRow>\n <DiscardChangesConfirmationDialog\n open={showDiscardDialog}\n onChange={setShowDiscardDialog}\n onDiscard={handleDiscard}\n />\n </>\n );\n}\n"],"names":["React"],"mappings":";;;;;;;;;;AAeO,SAAS,IAAqB,OAA+B;AAChE,QAAM,EAAE,KAAK,OAAO,MAAA,IAAU;AAC9B,QAAM,eAAe,yBAAA;AACrB,QAAM,YAAY,aAAa,KAAK;AACpC,QAAM,cAAc,UAAU,UAAU,mBAAmB;AAG3D,QAAM,YAAY,UAAU,QAAQ,aAAa,IAAI,EAAE;AAEvDA,iBAAM,UAAU,MAAM;AAClB,QAAI,UAAU,QAAQ,aAAa,eAAe,UAAU,QAAQ,yBAAyB,QAAW;AACpG,YAAM,UAAU,aAAa,WAAA;AAC7B,UAAI,SAAS;AACT,8BAAsB,OAAO;AAAA,MACjC;AAAA,IACJ;AAAA,EACJ,GAAG,CAAC,UAAU,QAAQ,WAAW,UAAU,UAAU,gBAAgB,UAAU,QAAQ,oBAAoB,CAAC;AAE5G,gBAAc,MAAM;AAEhB,QAAI,UAAU,QAAQ,aAAa,CAAC,aAAa;AAC7C,gBAAU,QAAQ,YAAY,OAAO,IAAI,EAAE;AAAA,IAC/C;AAAA,EACJ,GAAG,CAAC,WAAW,CAAC;AAEhB,QAAM,cAAcA,eAAM;AAAA,IACtB,CAAC,UAAiD;AAC9C,UAAI,UAAU,QAAQ,WAAW;AAC7B,cAAM,cAAc,MAAM,OAAO,QAAQ,IAAI;AAC7C,cAAM,YAAY,OAAO,aAAa,aAAa,iBAAiB,KAAK,MAAS;AAIlF,YAAI,CAAC,OAAO,MAAM,SAAS,KAAK,CAAC,iBAAiB,aAAa,aAAa,cAAc,KAAK,EAAE,GAAG;AAChG,oBAAU,QAAQ,wBAAwB,SAAS;AAAA,QACvD;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,CAAC,UAAU,QAAQ,WAAW,WAAW;AAAA,EAAA;AAG7C,QAAM,YAAY,UAAU,QAAQ,aAAa,IAAI,EAAE;AAGvD,QAAM,CAAC,mBAAmB,oBAAoB,IAAIA,eAAM,SAAS,KAAK;AAEtE,WAAS,gBAAgB;AACrB,cAAU,QAAQ,eAAe,IAAI,IAAI,KAAK;AAC9C,0BAAsB,MAAM;AACxB,UAAI,eAAe,IAAI,EAAE,GAAG;AACxB,kBAAU,QAAQ,mBAAmB,SAAS,MAAA;AAAA,MAClD,OAAO;AACH,qBAAa,WAAA;AAAA,MACjB;AAAA,IACJ,CAAC;AAAA,EACL;AAEA,WAAS,cAAc,OAAiD;AACpE,QAAI,MAAM,WAAW;AACjB,YAAM,UAAU,KAAK;AAAA,IACzB;AAEA,QAAI,MAAM,mBAAA,KAAwB,MAAM,wBAAwB;AAC5D;AAAA,IACJ;AAEA,QACI,MAAM,QAAQ,YACd,UAAU,QAAQ,WAAW,IAAI,EAAE,KACnC,CAAC,uBAAuB,MAAM,MAAqB,GACrD;AACE,YAAM,eAAA;AACN,YAAM,gBAAA;AACN,2BAAqB,IAAI;AAAA,IAC7B;AAAA,EACJ;AAEA,QAAM,aAAa;AAAA,IACf,4BAA4B,UAAU,QAAQ,aAAa,IAAI,EAAE,IAC3D,UAAU,QAAQ,yBAAyB,IAAI,EAAE,IAC7C,OACA,WACJ;AAAA,IACN,2BAA2B;AAAA,IAC3B,SAAS;AAAA,IACT,WAAW;AAAA,EAAA;AAGf,SACIA,+BAAA,cAAAA,eAAA,UAAA,mDACK,YAAA,EAAmB,GAAG,OAAQ,GAAG,YAAY,uBAAuB,CAAC,SAAS,EAAA,GAC1E,cAAc,YAAY,cAAc,UAAUA,+BAAA,cAAC,YAAA,EAAW,OAAO,IAAI,IAAI,MAAA,CAAc,IAAK,IACrG,GACAA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,MAAM;AAAA,MACN,UAAU;AAAA,MACV,WAAW;AAAA,IAAA;AAAA,EAAA,CAEnB;AAER;"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const React = require("react");
4
+ const rows = require("../../../../../primitives/Table/useTableManager/util/rows.cjs");
4
5
  const editing = require("../../../util/editing.cjs");
5
6
  const Localization = require("../../../../Provider/Localization.cjs");
6
7
  const Shortcut = require("../../../../Shortcut/Shortcut.cjs");
@@ -9,7 +10,7 @@ const Icon = require("../../../../Icon/Icon.cjs");
9
10
  function Editing(props) {
10
11
  const { scrollToIndex, table } = props;
11
12
  const { texts } = Localization.useLocalization();
12
- const tableMeta = table.options.meta;
13
+ const tableMeta = rows.getTableMeta(table);
13
14
  const handleClick = () => {
14
15
  tableMeta.editing.toggleEditing(!tableMeta.editing.isEditing, table, scrollToIndex);
15
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Editing.cjs","sources":["../../../../../../src/components/Table3/components/Toolbar/Editing/Editing.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { Icon, Shortcut, Tooltip, useLocalization } from '@/components';\n\nimport { shortcut } from '../../../util/editing';\n\ntype EditingProps<TType = unknown> = React.HTMLAttributes<HTMLButtonElement> & {\n scrollToIndex: any;\n table: ReactTable<TType>;\n};\n\nexport function Editing<TType = unknown>(props: EditingProps<TType>) {\n const { scrollToIndex, table } = props;\n const { texts } = useLocalization();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const handleClick = () => {\n tableMeta.editing.toggleEditing(!tableMeta.editing.isEditing, table, scrollToIndex);\n };\n\n const tooltip = (\n <>\n {texts.table3.editing.buttons.edit.tooltip}\n <Shortcut className=\"ml-2\" keys={shortcut} />\n </>\n );\n\n return (\n <Tooltip title={tooltip}>\n <button\n aria-checked={tableMeta.editing.isEditing}\n className={\n 'group inline-flex h-8 w-14 flex-shrink-0 rounded-full bg-gray-200 p-1 hover:bg-gray-300 focus-visible:yt-focus aria-checked:bg-blue-500 aria-checked:hover:bg-blue-700'\n }\n data-table=\"editing-toggle\"\n data-taco=\"mode\"\n onClick={handleClick}\n role=\"switch\"\n type=\"button\">\n <span className=\"pointer-events-none flex h-6 w-6 items-center justify-center rounded-full bg-white transition-transform will-change-transform group-disabled:opacity-50 group-aria-checked:translate-x-[100%]\">\n <Icon name=\"edit-simple\" className=\"pointer-events-none !h-5 !w-5\" />\n </span>\n </button>\n </Tooltip>\n );\n}\n"],"names":["useLocalization","Shortcut","shortcut","Tooltip","Icon"],"mappings":";;;;;;;;AAYO,SAAS,QAAyB,OAA4B;AACjE,QAAM,EAAE,eAAe,MAAA,IAAU;AACjC,QAAM,EAAE,MAAA,IAAUA,6BAAA;AAClB,QAAM,YAAY,MAAM,QAAQ;AAEhC,QAAM,cAAc,MAAM;AACtB,cAAU,QAAQ,cAAc,CAAC,UAAU,QAAQ,WAAW,OAAO,aAAa;AAAA,EACtF;AAEA,QAAM,UACF,sBAAA,cAAA,MAAA,UAAA,MACK,MAAM,OAAO,QAAQ,QAAQ,KAAK,SACnC,sBAAA,cAACC,SAAAA,UAAA,EAAS,WAAU,QAAO,MAAMC,QAAAA,UAAU,CAC/C;AAGJ,SACI,sBAAA,cAACC,QAAAA,SAAA,EAAQ,OAAO,QAAA,GACZ,sBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,gBAAc,UAAU,QAAQ;AAAA,MAChC,WACI;AAAA,MAEJ,cAAW;AAAA,MACX,aAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAK;AAAA,MACL,MAAK;AAAA,IAAA;AAAA,IACL,sBAAA,cAAC,QAAA,EAAK,WAAU,gMAAA,GACZ,sBAAA,cAACC,KAAAA,QAAK,MAAK,eAAc,WAAU,gCAAA,CAAgC,CACvE;AAAA,EAAA,CAER;AAER;;"}
1
+ {"version":3,"file":"Editing.cjs","sources":["../../../../../../src/components/Table3/components/Toolbar/Editing/Editing.tsx"],"sourcesContent":["import type { Table as ReactTable } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { Icon, Shortcut, Tooltip, useLocalization } from '@/components';\nimport { getTableMeta } from '@/primitives/Table/useTableManager/util/rows';\n\nimport { shortcut } from '../../../util/editing';\n\ntype EditingProps<TType = unknown> = React.HTMLAttributes<HTMLButtonElement> & {\n scrollToIndex: any;\n table: ReactTable<TType>;\n};\n\nexport function Editing<TType = unknown>(props: EditingProps<TType>) {\n const { scrollToIndex, table } = props;\n const { texts } = useLocalization();\n const tableMeta = getTableMeta(table);\n\n const handleClick = () => {\n tableMeta.editing.toggleEditing(!tableMeta.editing.isEditing, table, scrollToIndex);\n };\n\n const tooltip = (\n <>\n {texts.table3.editing.buttons.edit.tooltip}\n <Shortcut className=\"ml-2\" keys={shortcut} />\n </>\n );\n\n return (\n <Tooltip title={tooltip}>\n <button\n aria-checked={tableMeta.editing.isEditing}\n className={\n 'group inline-flex h-8 w-14 flex-shrink-0 rounded-full bg-gray-200 p-1 hover:bg-gray-300 focus-visible:yt-focus aria-checked:bg-blue-500 aria-checked:hover:bg-blue-700'\n }\n data-table=\"editing-toggle\"\n data-taco=\"mode\"\n onClick={handleClick}\n role=\"switch\"\n type=\"button\">\n <span className=\"pointer-events-none flex h-6 w-6 items-center justify-center rounded-full bg-white transition-transform will-change-transform group-disabled:opacity-50 group-aria-checked:translate-x-[100%]\">\n <Icon name=\"edit-simple\" className=\"pointer-events-none !h-5 !w-5\" />\n </span>\n </button>\n </Tooltip>\n );\n}\n"],"names":["useLocalization","getTableMeta","Shortcut","shortcut","Tooltip","Icon"],"mappings":";;;;;;;;;AAaO,SAAS,QAAyB,OAA4B;AACjE,QAAM,EAAE,eAAe,MAAA,IAAU;AACjC,QAAM,EAAE,MAAA,IAAUA,6BAAA;AAClB,QAAM,YAAYC,KAAAA,aAAa,KAAK;AAEpC,QAAM,cAAc,MAAM;AACtB,cAAU,QAAQ,cAAc,CAAC,UAAU,QAAQ,WAAW,OAAO,aAAa;AAAA,EACtF;AAEA,QAAM,UACF,sBAAA,cAAA,MAAA,UAAA,MACK,MAAM,OAAO,QAAQ,QAAQ,KAAK,SACnC,sBAAA,cAACC,SAAAA,UAAA,EAAS,WAAU,QAAO,MAAMC,QAAAA,UAAU,CAC/C;AAGJ,SACI,sBAAA,cAACC,QAAAA,SAAA,EAAQ,OAAO,QAAA,GACZ,sBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,gBAAc,UAAU,QAAQ;AAAA,MAChC,WACI;AAAA,MAEJ,cAAW;AAAA,MACX,aAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAK;AAAA,MACL,MAAK;AAAA,IAAA;AAAA,IACL,sBAAA,cAAC,QAAA,EAAK,WAAU,gMAAA,GACZ,sBAAA,cAACC,KAAAA,QAAK,MAAK,eAAc,WAAU,gCAAA,CAAgC,CACvE;AAAA,EAAA,CAER;AAER;;"}
@@ -1,4 +1,5 @@
1
1
  import React__default from "react";
2
+ import { getTableMeta } from "../../../../../primitives/Table/useTableManager/util/rows.js";
2
3
  import { shortcut } from "../../../util/editing.js";
3
4
  import { useLocalization } from "../../../../Provider/Localization.js";
4
5
  import { Shortcut } from "../../../../Shortcut/Shortcut.js";
@@ -7,7 +8,7 @@ import { Icon } from "../../../../Icon/Icon.js";
7
8
  function Editing(props) {
8
9
  const { scrollToIndex, table } = props;
9
10
  const { texts } = useLocalization();
10
- const tableMeta = table.options.meta;
11
+ const tableMeta = getTableMeta(table);
11
12
  const handleClick = () => {
12
13
  tableMeta.editing.toggleEditing(!tableMeta.editing.isEditing, table, scrollToIndex);
13
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Editing.js","sources":["../../../../../../src/components/Table3/components/Toolbar/Editing/Editing.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { Icon, Shortcut, Tooltip, useLocalization } from '@/components';\n\nimport { shortcut } from '../../../util/editing';\n\ntype EditingProps<TType = unknown> = React.HTMLAttributes<HTMLButtonElement> & {\n scrollToIndex: any;\n table: ReactTable<TType>;\n};\n\nexport function Editing<TType = unknown>(props: EditingProps<TType>) {\n const { scrollToIndex, table } = props;\n const { texts } = useLocalization();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const handleClick = () => {\n tableMeta.editing.toggleEditing(!tableMeta.editing.isEditing, table, scrollToIndex);\n };\n\n const tooltip = (\n <>\n {texts.table3.editing.buttons.edit.tooltip}\n <Shortcut className=\"ml-2\" keys={shortcut} />\n </>\n );\n\n return (\n <Tooltip title={tooltip}>\n <button\n aria-checked={tableMeta.editing.isEditing}\n className={\n 'group inline-flex h-8 w-14 flex-shrink-0 rounded-full bg-gray-200 p-1 hover:bg-gray-300 focus-visible:yt-focus aria-checked:bg-blue-500 aria-checked:hover:bg-blue-700'\n }\n data-table=\"editing-toggle\"\n data-taco=\"mode\"\n onClick={handleClick}\n role=\"switch\"\n type=\"button\">\n <span className=\"pointer-events-none flex h-6 w-6 items-center justify-center rounded-full bg-white transition-transform will-change-transform group-disabled:opacity-50 group-aria-checked:translate-x-[100%]\">\n <Icon name=\"edit-simple\" className=\"pointer-events-none !h-5 !w-5\" />\n </span>\n </button>\n </Tooltip>\n );\n}\n"],"names":["React"],"mappings":";;;;;;AAYO,SAAS,QAAyB,OAA4B;AACjE,QAAM,EAAE,eAAe,MAAA,IAAU;AACjC,QAAM,EAAE,MAAA,IAAU,gBAAA;AAClB,QAAM,YAAY,MAAM,QAAQ;AAEhC,QAAM,cAAc,MAAM;AACtB,cAAU,QAAQ,cAAc,CAAC,UAAU,QAAQ,WAAW,OAAO,aAAa;AAAA,EACtF;AAEA,QAAM,UACFA,+BAAA,cAAAA,eAAA,UAAA,MACK,MAAM,OAAO,QAAQ,QAAQ,KAAK,SACnCA,+BAAA,cAAC,UAAA,EAAS,WAAU,QAAO,MAAM,UAAU,CAC/C;AAGJ,SACIA,+BAAA,cAAC,SAAA,EAAQ,OAAO,QAAA,GACZA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,gBAAc,UAAU,QAAQ;AAAA,MAChC,WACI;AAAA,MAEJ,cAAW;AAAA,MACX,aAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAK;AAAA,MACL,MAAK;AAAA,IAAA;AAAA,IACLA,+BAAA,cAAC,QAAA,EAAK,WAAU,gMAAA,GACZA,+BAAA,cAAC,QAAK,MAAK,eAAc,WAAU,gCAAA,CAAgC,CACvE;AAAA,EAAA,CAER;AAER;"}
1
+ {"version":3,"file":"Editing.js","sources":["../../../../../../src/components/Table3/components/Toolbar/Editing/Editing.tsx"],"sourcesContent":["import type { Table as ReactTable } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { Icon, Shortcut, Tooltip, useLocalization } from '@/components';\nimport { getTableMeta } from '@/primitives/Table/useTableManager/util/rows';\n\nimport { shortcut } from '../../../util/editing';\n\ntype EditingProps<TType = unknown> = React.HTMLAttributes<HTMLButtonElement> & {\n scrollToIndex: any;\n table: ReactTable<TType>;\n};\n\nexport function Editing<TType = unknown>(props: EditingProps<TType>) {\n const { scrollToIndex, table } = props;\n const { texts } = useLocalization();\n const tableMeta = getTableMeta(table);\n\n const handleClick = () => {\n tableMeta.editing.toggleEditing(!tableMeta.editing.isEditing, table, scrollToIndex);\n };\n\n const tooltip = (\n <>\n {texts.table3.editing.buttons.edit.tooltip}\n <Shortcut className=\"ml-2\" keys={shortcut} />\n </>\n );\n\n return (\n <Tooltip title={tooltip}>\n <button\n aria-checked={tableMeta.editing.isEditing}\n className={\n 'group inline-flex h-8 w-14 flex-shrink-0 rounded-full bg-gray-200 p-1 hover:bg-gray-300 focus-visible:yt-focus aria-checked:bg-blue-500 aria-checked:hover:bg-blue-700'\n }\n data-table=\"editing-toggle\"\n data-taco=\"mode\"\n onClick={handleClick}\n role=\"switch\"\n type=\"button\">\n <span className=\"pointer-events-none flex h-6 w-6 items-center justify-center rounded-full bg-white transition-transform will-change-transform group-disabled:opacity-50 group-aria-checked:translate-x-[100%]\">\n <Icon name=\"edit-simple\" className=\"pointer-events-none !h-5 !w-5\" />\n </span>\n </button>\n </Tooltip>\n );\n}\n"],"names":["React"],"mappings":";;;;;;;AAaO,SAAS,QAAyB,OAA4B;AACjE,QAAM,EAAE,eAAe,MAAA,IAAU;AACjC,QAAM,EAAE,MAAA,IAAU,gBAAA;AAClB,QAAM,YAAY,aAAa,KAAK;AAEpC,QAAM,cAAc,MAAM;AACtB,cAAU,QAAQ,cAAc,CAAC,UAAU,QAAQ,WAAW,OAAO,aAAa;AAAA,EACtF;AAEA,QAAM,UACFA,+BAAA,cAAAA,eAAA,UAAA,MACK,MAAM,OAAO,QAAQ,QAAQ,KAAK,SACnCA,+BAAA,cAAC,UAAA,EAAS,WAAU,QAAO,MAAM,UAAU,CAC/C;AAGJ,SACIA,+BAAA,cAAC,SAAA,EAAQ,OAAO,QAAA,GACZA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,gBAAc,UAAU,QAAQ;AAAA,MAChC,WACI;AAAA,MAEJ,cAAW;AAAA,MACX,aAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAK;AAAA,MACL,MAAK;AAAA,IAAA;AAAA,IACLA,+BAAA,cAAC,QAAA,EAAK,WAAU,gMAAA,GACZA,+BAAA,cAAC,QAAK,MAAK,eAAc,WAAU,gCAAA,CAAgC,CACvE;AAAA,EAAA,CAER;AAER;"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const omit = require("lodash/omit");
4
4
  const setWith = require("lodash/setWith");
5
5
  const React = require("react");
6
+ const rows = require("../../../primitives/Table/useTableManager/util/rows.cjs");
6
7
  const generateId = require("../../../utils/generateId.cjs");
7
8
  const editing = require("../util/editing.cjs");
8
9
  const Localization = require("../../Provider/Localization.cjs");
@@ -245,7 +246,7 @@ function usePendingChangesState(handleSave, handleChange, handleDiscard, rowIden
245
246
  return state.changes.errors?.[cell.row.id]?.cells?.[cell.column.id];
246
247
  }
247
248
  async function onCellChanged(cell, rowIndex, nextValue, shouldRunUpdaters = true, shouldRunValidation = true) {
248
- const tableMeta = cell.getContext().table.options.meta;
249
+ const tableMeta = rows.getTableMeta(cell.getContext().table);
249
250
  const state2 = tableMeta.editing.getState();
250
251
  const changes = nextValue === void 0 ? { ...state2.changes.rows[cell.row.id] } : { ...state2.changes.rows[cell.row.id], [cell.column.id]: nextValue };
251
252
  const original = cell.row.original;
@@ -372,7 +373,7 @@ function usePendingChangesState(handleSave, handleChange, handleDiscard, rowIden
372
373
  return rowId ? !!state.changes.rows[rowId] : !!Object.keys(state.changes.rows).length;
373
374
  }
374
375
  async function saveChanges(table, rowId = void 0) {
375
- const tableMeta = table.options.meta;
376
+ const tableMeta = rows.getTableMeta(table);
376
377
  const state2 = tableMeta.editing.getState();
377
378
  if (!handleSave) {
378
379
  console.warn("Tried to save, but Table has no onEditingSave handler");