@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
@@ -4,11 +4,12 @@ const reactVirtual = require("@tanstack/react-virtual");
4
4
  const sortBy = require("lodash/sortBy");
5
5
  const without = require("lodash/without");
6
6
  const React = require("react");
7
+ const rows = require("../../useTableManager/util/rows.cjs");
7
8
  const SkeletonRow = require("../components/Row/BuiltIns/SkeletonRow.cjs");
8
9
  const Row = require("../components/Row/Row.cjs");
9
- const rows = require("../util/rows.cjs");
10
+ const rows$1 = require("../util/rows.cjs");
10
11
  function getScrollPaddingEndOffset(table) {
11
- const tableMeta = table.options.meta;
12
+ const tableMeta = rows.getTableMeta(table);
12
13
  let offset = 2;
13
14
  if (tableMeta.footer.isEnabled) {
14
15
  offset += 1;
@@ -16,29 +17,29 @@ function getScrollPaddingEndOffset(table) {
16
17
  if (table.getHeaderGroups().length > 1) {
17
18
  offset += table.getHeaderGroups().length - 1;
18
19
  }
19
- let height = rows.ROW_HEIGHT_ESTIMATES.medium * offset;
20
+ let height = rows$1.ROW_HEIGHT_ESTIMATES.medium * offset;
20
21
  const bottomRows = table.getBottomRows();
21
22
  if (bottomRows.length) {
22
- height += rows.ROW_HEIGHT_ESTIMATES[tableMeta.rowHeight.height] * 1.4 * bottomRows.length;
23
+ height += rows$1.ROW_HEIGHT_ESTIMATES[tableMeta.rowHeight.height] * 1.4 * bottomRows.length;
23
24
  }
24
25
  return height;
25
26
  }
26
27
  function getPaddingEndOffset(table) {
27
28
  const bottomRows = table.getBottomRows() ?? [];
28
- return rows.ROW_HEIGHT_ESTIMATES.medium * 1 * bottomRows.length;
29
+ return rows$1.ROW_HEIGHT_ESTIMATES.medium * 1 * bottomRows.length;
29
30
  }
30
31
  const OVERSCAN_ROW_COUNT = 8;
31
32
  function useTableRenderer(renderers, table, tableRef, length, defaultRowActiveIndex) {
32
- const tableMeta = table.options.meta;
33
+ const tableMeta = rows.getTableMeta(table);
33
34
  const isTableRowGrouped = !!table.getState().grouping?.length;
34
- const rows$1 = table.getCenterRows() ?? [];
35
+ const rows$2 = table.getCenterRows() ?? [];
35
36
  const rangeExtractor = useRowGroupVirtualisation(table);
36
- const scrollPaddingStart = rows.ROW_HEIGHT_ESTIMATES.medium;
37
- const count = tableMeta.server.isEnabled && tableMeta.server._experimentalDataLoader2 ? length : rows$1.length;
37
+ const scrollPaddingStart = rows$1.ROW_HEIGHT_ESTIMATES.medium;
38
+ const count = tableMeta.server.isEnabled && tableMeta.server._experimentalDataLoader2 ? length : rows$2.length;
38
39
  const virtualiser = reactVirtual.useVirtualizer({
39
40
  count,
40
41
  estimateSize: () => {
41
- return tableMeta.rowHeight.height ? rows.ROW_HEIGHT_ESTIMATES[tableMeta.rowHeight.height] : rows.ROW_HEIGHT_ESTIMATES.medium;
42
+ return tableMeta.rowHeight.height ? rows$1.ROW_HEIGHT_ESTIMATES[tableMeta.rowHeight.height] : rows$1.ROW_HEIGHT_ESTIMATES.medium;
42
43
  },
43
44
  getScrollElement: () => tableRef.current,
44
45
  overscan: tableMeta.printing.isPrinting ? count : OVERSCAN_ROW_COUNT,
@@ -102,10 +103,10 @@ function useTableRenderer(renderers, table, tableRef, length, defaultRowActiveIn
102
103
  const pagePosition = tableMeta.server.pages?.indexOf(currentPageIndex) ?? -1;
103
104
  if (pagePosition > -1) {
104
105
  const fakeIndex = pagePosition * tableMeta.server.pageSize + virtualRow.index % tableMeta.server.pageSize;
105
- row = rows$1[fakeIndex];
106
+ row = rows$2[fakeIndex];
106
107
  }
107
108
  } else {
108
- row = rows$1[virtualRow.index];
109
+ row = rows$2[virtualRow.index];
109
110
  }
110
111
  if (!row?.original) {
111
112
  const skeletonKey = `skeleton-${virtualRow.index}`;
@@ -1 +1 @@
1
- {"version":3,"file":"useTableRenderer.cjs","sources":["../../../../../src/primitives/Table/Core/features/useTableRenderer.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta, Row as ReactTableRow } from '@tanstack/react-table';\nimport type { ScrollToOptions as ReactVirtualScrollToOptions, Range } from '@tanstack/react-virtual';\nimport { useVirtualizer, defaultRangeExtractor } from '@tanstack/react-virtual';\nimport sortBy from 'lodash/sortBy';\nimport without from 'lodash/without';\nimport type { CSSProperties } from 'react';\nimport React from 'react';\n\nimport type { TableRef } from '../../types';\nimport { SkeletonRow } from '../components/Row/BuiltIns/SkeletonRow';\nimport { Row } from '../components/Row/Row';\nimport type { useTableRenderers } from '../types';\nimport { ROW_HEIGHT_ESTIMATES } from '../util/rows';\n\n// scroll padding end is designed to always show half of the next row\nfunction getScrollPaddingEndOffset<TType = unknown>(table: ReactTable<TType>) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n let offset = 2;\n\n if (tableMeta.footer.isEnabled) {\n offset += 1;\n }\n\n if (table.getHeaderGroups().length > 1) {\n offset += table.getHeaderGroups().length - 1;\n }\n\n let height = ROW_HEIGHT_ESTIMATES.medium * offset;\n\n const bottomRows = table.getBottomRows();\n\n if (bottomRows.length) {\n // 1.4 offsets for half rows and also accounts for increased row heights (which is likely in pinned rows)\n height += ROW_HEIGHT_ESTIMATES[tableMeta.rowHeight.height] * 1.4 * bottomRows.length;\n }\n\n return height;\n}\n\n// scroll padding end is designed to always show half of the next row\nfunction getPaddingEndOffset<TType = unknown>(table: ReactTable<TType>) {\n const bottomRows = table.getBottomRows() ?? [];\n return ROW_HEIGHT_ESTIMATES.medium * 1 * bottomRows.length;\n}\n\n// A higher number ensure less scroll jumping for dynamic row heights, but too high can reduce performance. 8 worked well\nconst OVERSCAN_ROW_COUNT = 8;\n\nexport function useTableRenderer<TType = unknown>(\n renderers: useTableRenderers<TType>,\n table: ReactTable<TType>,\n tableRef: React.RefObject<TableRef>,\n length: number,\n defaultRowActiveIndex?: number | undefined\n) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const isTableRowGrouped = !!table.getState().grouping?.length;\n const rows = table.getCenterRows() ?? [];\n\n // row groups\n const rangeExtractor = useRowGroupVirtualisation<TType>(table);\n\n // account for thead and tfoot in the scroll area - both are always medium row height\n const scrollPaddingStart = ROW_HEIGHT_ESTIMATES.medium;\n\n const count = tableMeta.server.isEnabled && tableMeta.server._experimentalDataLoader2 ? length : rows.length;\n\n const virtualiser = useVirtualizer({\n count,\n estimateSize: () => {\n return tableMeta.rowHeight.height ? ROW_HEIGHT_ESTIMATES[tableMeta.rowHeight.height] : ROW_HEIGHT_ESTIMATES.medium;\n },\n getScrollElement: () => tableRef.current,\n overscan: tableMeta.printing.isPrinting ? count : OVERSCAN_ROW_COUNT,\n rangeExtractor,\n // correctly sets the scroll padding offset, e.g. when keyboard navigating rows in the list\n scrollPaddingStart,\n scrollPaddingEnd: getScrollPaddingEndOffset(table),\n paddingEnd: getPaddingEndOffset(table),\n });\n\n const expandedState = table.getState().expanded;\n const previousExpandedStateRef = React.useRef(false);\n\n React.useEffect(() => {\n // only remeasure when transitioning between expand all and not expand all\n const isEmpty = JSON.stringify(expandedState) === '{}';\n\n if (expandedState === true || (isEmpty && previousExpandedStateRef.current === true)) {\n previousExpandedStateRef.current = expandedState === true;\n virtualiser.measure();\n }\n }, [expandedState]);\n\n const totalSize = virtualiser.getTotalSize();\n const virtualItems = virtualiser.getVirtualItems();\n\n const scrollToIndex = React.useCallback(\n (index: number, options: ReactVirtualScrollToOptions = { align: 'auto', behavior: 'smooth' }) => {\n const notSmooth: ReactVirtualScrollToOptions = { ...options, behavior: 'auto' };\n\n if (tableRef.current) {\n if (index === 0) {\n virtualiser.scrollToOffset(0, notSmooth);\n } else if (index === count - 1) {\n // sometimes the last row doesn't fully show, so we just force scroll to the bottom\n tableRef.current.scrollTop = tableRef.current.scrollHeight;\n } else {\n virtualiser.scrollToIndex(index, options);\n }\n }\n },\n [virtualItems.length, tableRef.current, totalSize, count]\n );\n\n // use row 1 not 0, because 0 might be sticky in grouped tables and it's start value will always be 0\n const paddingStartIndex = isTableRowGrouped && count > 1 ? 1 : 0;\n\n const startValue = isTableRowGrouped\n ? (virtualItems[paddingStartIndex]?.start ?? 0) - (virtualItems[paddingStartIndex]?.size ?? 0)\n : virtualItems[paddingStartIndex]?.start;\n\n // styling for offsetting rows - this \"is\" the virtualisation\n const [paddingTop, paddingBottom] =\n virtualItems.length > 0\n ? [Math.max(0, startValue ?? 0), Math.max(0, totalSize - (virtualItems.at(-1)?.end ?? 0))]\n : [0, 0];\n\n // ensure default active rows are scrolled to\n React.useEffect(() => {\n if (defaultRowActiveIndex) {\n scrollToIndex(defaultRowActiveIndex, { align: 'center', behavior: 'auto' });\n }\n }, []);\n\n // rendered output\n let style: CSSProperties = {};\n let content: (React.JSX.Element | null)[] | null = null;\n\n // bottom rows aren't virtualised (they're sticky) but we need to set the height\n if (count || table.getBottomRows().length) {\n style = {\n height: totalSize,\n paddingBottom: Number.isNaN(paddingBottom) ? 0 : paddingBottom,\n paddingTop: Number.isNaN(paddingTop) ? 0 : paddingTop,\n };\n }\n\n // only render non sticky rows\n if (count) {\n content = virtualItems.map(virtualRow => {\n // there appears to be a react-virtual bug where it inserts a single `undefined` item at the end of the row, which crashes here\n if (!virtualRow) {\n return null;\n }\n\n let row: ReactTableRow<TType> | undefined;\n\n if (tableMeta.server.isEnabled && tableMeta.server._experimentalDataLoader2) {\n const currentPageIndex =\n (Math.floor(virtualRow.index / tableMeta.server.pageSize) * tableMeta.server.pageSize) /\n tableMeta.server.pageSize;\n const pagePosition = tableMeta.server.pages?.indexOf(currentPageIndex) ?? -1;\n\n if (pagePosition > -1) {\n // \"flatten\" row indexes down into the dataloader2 dataset size\n // for example, with a page size of 100...\n // row index 14267 is actually one of index 67, 167, 267 etc within the dataset (depending on number of pages stored)\n const fakeIndex = pagePosition * tableMeta.server.pageSize + (virtualRow.index % tableMeta.server.pageSize);\n row = rows[fakeIndex];\n }\n } else {\n row = rows[virtualRow.index];\n }\n\n if (!row?.original) {\n // Prefix skeleton keys to prevent collision with real data row keys\n const skeletonKey = `skeleton-${virtualRow.index}`;\n return <SkeletonRow key={skeletonKey} index={virtualRow.index} table={table} />;\n }\n\n const measureRow = (rowHeight: number) => {\n virtualiser.resizeItem(virtualRow.index, rowHeight);\n };\n\n return (\n <Row\n key={row.id}\n row={row}\n index={virtualRow.index}\n table={table}\n measureRow={measureRow}\n renderer={renderers.row}\n cellRenderer={renderers.cell}\n />\n );\n });\n }\n\n return {\n rows: content,\n style,\n scrollToIndex,\n };\n}\n\n// support virtualised row groups (where the row group headers are sticky)\nfunction useRowGroupVirtualisation<TType = unknown>(table: ReactTable<TType>) {\n const rows = table.getRowModel().rows;\n const isTableGrouped = !!table.getState().grouping.length;\n\n const rowGroupIndexes = React.useMemo(() => {\n const indexes: number[] = [];\n\n if (isTableGrouped) {\n rows.forEach((row, index) => {\n if (row.getIsGrouped()) {\n indexes.push(index);\n }\n });\n }\n\n return indexes;\n }, [rows]);\n\n // this is taken from the react-virtual docs/examples\n const rangeExtractor = React.useCallback(\n (range: Range) => {\n const activeRowGroupIndex =\n rowGroupIndexes.toReversed().find(index => range.startIndex >= index) ?? rowGroupIndexes[0];\n\n return activeRowGroupIndex === undefined\n ? defaultRangeExtractor(range)\n : sortBy([activeRowGroupIndex, ...without(defaultRangeExtractor(range), activeRowGroupIndex)], a => a);\n },\n [rowGroupIndexes]\n );\n\n return isTableGrouped ? rangeExtractor : undefined;\n}\n"],"names":["ROW_HEIGHT_ESTIMATES","rows","useVirtualizer","SkeletonRow","Row","defaultRangeExtractor"],"mappings":";;;;;;;;;AAeA,SAAS,0BAA2C,OAA0B;AAC1E,QAAM,YAAY,MAAM,QAAQ;AAChC,MAAI,SAAS;AAEb,MAAI,UAAU,OAAO,WAAW;AAC5B,cAAU;AAAA,EACd;AAEA,MAAI,MAAM,kBAAkB,SAAS,GAAG;AACpC,cAAU,MAAM,gBAAA,EAAkB,SAAS;AAAA,EAC/C;AAEA,MAAI,SAASA,0BAAqB,SAAS;AAE3C,QAAM,aAAa,MAAM,cAAA;AAEzB,MAAI,WAAW,QAAQ;AAEnB,cAAUA,KAAAA,qBAAqB,UAAU,UAAU,MAAM,IAAI,MAAM,WAAW;AAAA,EAClF;AAEA,SAAO;AACX;AAGA,SAAS,oBAAqC,OAA0B;AACpE,QAAM,aAAa,MAAM,cAAA,KAAmB,CAAA;AAC5C,SAAOA,0BAAqB,SAAS,IAAI,WAAW;AACxD;AAGA,MAAM,qBAAqB;AAEpB,SAAS,iBACZ,WACA,OACA,UACA,QACA,uBACF;AACE,QAAM,YAAY,MAAM,QAAQ;AAChC,QAAM,oBAAoB,CAAC,CAAC,MAAM,SAAA,EAAW,UAAU;AACvD,QAAMC,SAAO,MAAM,cAAA,KAAmB,CAAA;AAGtC,QAAM,iBAAiB,0BAAiC,KAAK;AAG7D,QAAM,qBAAqBD,KAAAA,qBAAqB;AAEhD,QAAM,QAAQ,UAAU,OAAO,aAAa,UAAU,OAAO,2BAA2B,SAASC,OAAK;AAEtG,QAAM,cAAcC,aAAAA,eAAe;AAAA,IAC/B;AAAA,IACA,cAAc,MAAM;AAChB,aAAO,UAAU,UAAU,SAASF,KAAAA,qBAAqB,UAAU,UAAU,MAAM,IAAIA,KAAAA,qBAAqB;AAAA,IAChH;AAAA,IACA,kBAAkB,MAAM,SAAS;AAAA,IACjC,UAAU,UAAU,SAAS,aAAa,QAAQ;AAAA,IAClD;AAAA;AAAA,IAEA;AAAA,IACA,kBAAkB,0BAA0B,KAAK;AAAA,IACjD,YAAY,oBAAoB,KAAK;AAAA,EAAA,CACxC;AAED,QAAM,gBAAgB,MAAM,SAAA,EAAW;AACvC,QAAM,2BAA2B,MAAM,OAAO,KAAK;AAEnD,QAAM,UAAU,MAAM;AAElB,UAAM,UAAU,KAAK,UAAU,aAAa,MAAM;AAElD,QAAI,kBAAkB,QAAS,WAAW,yBAAyB,YAAY,MAAO;AAClF,+BAAyB,UAAU,kBAAkB;AACrD,kBAAY,QAAA;AAAA,IAChB;AAAA,EACJ,GAAG,CAAC,aAAa,CAAC;AAElB,QAAM,YAAY,YAAY,aAAA;AAC9B,QAAM,eAAe,YAAY,gBAAA;AAEjC,QAAM,gBAAgB,MAAM;AAAA,IACxB,CAAC,OAAe,UAAuC,EAAE,OAAO,QAAQ,UAAU,eAAe;AAC7F,YAAM,YAAyC,EAAE,GAAG,SAAS,UAAU,OAAA;AAEvE,UAAI,SAAS,SAAS;AAClB,YAAI,UAAU,GAAG;AACb,sBAAY,eAAe,GAAG,SAAS;AAAA,QAC3C,WAAW,UAAU,QAAQ,GAAG;AAE5B,mBAAS,QAAQ,YAAY,SAAS,QAAQ;AAAA,QAClD,OAAO;AACH,sBAAY,cAAc,OAAO,OAAO;AAAA,QAC5C;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,CAAC,aAAa,QAAQ,SAAS,SAAS,WAAW,KAAK;AAAA,EAAA;AAI5D,QAAM,oBAAoB,qBAAqB,QAAQ,IAAI,IAAI;AAE/D,QAAM,aAAa,qBACZ,aAAa,iBAAiB,GAAG,SAAS,MAAM,aAAa,iBAAiB,GAAG,QAAQ,KAC1F,aAAa,iBAAiB,GAAG;AAGvC,QAAM,CAAC,YAAY,aAAa,IAC5B,aAAa,SAAS,IAChB,CAAC,KAAK,IAAI,GAAG,cAAc,CAAC,GAAG,KAAK,IAAI,GAAG,aAAa,aAAa,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,IACvF,CAAC,GAAG,CAAC;AAGf,QAAM,UAAU,MAAM;AAClB,QAAI,uBAAuB;AACvB,oBAAc,uBAAuB,EAAE,OAAO,UAAU,UAAU,QAAQ;AAAA,IAC9E;AAAA,EACJ,GAAG,CAAA,CAAE;AAGL,MAAI,QAAuB,CAAA;AAC3B,MAAI,UAA+C;AAGnD,MAAI,SAAS,MAAM,cAAA,EAAgB,QAAQ;AACvC,YAAQ;AAAA,MACJ,QAAQ;AAAA,MACR,eAAe,OAAO,MAAM,aAAa,IAAI,IAAI;AAAA,MACjD,YAAY,OAAO,MAAM,UAAU,IAAI,IAAI;AAAA,IAAA;AAAA,EAEnD;AAGA,MAAI,OAAO;AACP,cAAU,aAAa,IAAI,CAAA,eAAc;AAErC,UAAI,CAAC,YAAY;AACb,eAAO;AAAA,MACX;AAEA,UAAI;AAEJ,UAAI,UAAU,OAAO,aAAa,UAAU,OAAO,0BAA0B;AACzE,cAAM,mBACD,KAAK,MAAM,WAAW,QAAQ,UAAU,OAAO,QAAQ,IAAI,UAAU,OAAO,WAC7E,UAAU,OAAO;AACrB,cAAM,eAAe,UAAU,OAAO,OAAO,QAAQ,gBAAgB,KAAK;AAE1E,YAAI,eAAe,IAAI;AAInB,gBAAM,YAAY,eAAe,UAAU,OAAO,WAAY,WAAW,QAAQ,UAAU,OAAO;AAClG,gBAAMC,OAAK,SAAS;AAAA,QACxB;AAAA,MACJ,OAAO;AACH,cAAMA,OAAK,WAAW,KAAK;AAAA,MAC/B;AAEA,UAAI,CAAC,KAAK,UAAU;AAEhB,cAAM,cAAc,YAAY,WAAW,KAAK;AAChD,mDAAQE,YAAAA,aAAA,EAAY,KAAK,aAAa,OAAO,WAAW,OAAO,OAAc;AAAA,MACjF;AAEA,YAAM,aAAa,CAAC,cAAsB;AACtC,oBAAY,WAAW,WAAW,OAAO,SAAS;AAAA,MACtD;AAEA,aACI,sBAAA;AAAA,QAACC,IAAAA;AAAAA,QAAA;AAAA,UACG,KAAK,IAAI;AAAA,UACT;AAAA,UACA,OAAO,WAAW;AAAA,UAClB;AAAA,UACA;AAAA,UACA,UAAU,UAAU;AAAA,UACpB,cAAc,UAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IAGpC,CAAC;AAAA,EACL;AAEA,SAAO;AAAA,IACH,MAAM;AAAA,IACN;AAAA,IACA;AAAA,EAAA;AAER;AAGA,SAAS,0BAA2C,OAA0B;AAC1E,QAAMH,QAAO,MAAM,YAAA,EAAc;AACjC,QAAM,iBAAiB,CAAC,CAAC,MAAM,SAAA,EAAW,SAAS;AAEnD,QAAM,kBAAkB,MAAM,QAAQ,MAAM;AACxC,UAAM,UAAoB,CAAA;AAE1B,QAAI,gBAAgB;AAChB,MAAAA,MAAK,QAAQ,CAAC,KAAK,UAAU;AACzB,YAAI,IAAI,gBAAgB;AACpB,kBAAQ,KAAK,KAAK;AAAA,QACtB;AAAA,MACJ,CAAC;AAAA,IACL;AAEA,WAAO;AAAA,EACX,GAAG,CAACA,KAAI,CAAC;AAGT,QAAM,iBAAiB,MAAM;AAAA,IACzB,CAAC,UAAiB;AACd,YAAM,sBACF,gBAAgB,WAAA,EAAa,KAAK,CAAA,UAAS,MAAM,cAAc,KAAK,KAAK,gBAAgB,CAAC;AAE9F,aAAO,wBAAwB,SACzBI,aAAAA,sBAAsB,KAAK,IAC3B,OAAO,CAAC,qBAAqB,GAAG,QAAQA,aAAAA,sBAAsB,KAAK,GAAG,mBAAmB,CAAC,GAAG,OAAK,CAAC;AAAA,IAC7G;AAAA,IACA,CAAC,eAAe;AAAA,EAAA;AAGpB,SAAO,iBAAiB,iBAAiB;AAC7C;;"}
1
+ {"version":3,"file":"useTableRenderer.cjs","sources":["../../../../../src/primitives/Table/Core/features/useTableRenderer.tsx"],"sourcesContent":["import type { Table as ReactTable, Row as ReactTableRow } from '@tanstack/react-table';\nimport type { ScrollToOptions as ReactVirtualScrollToOptions, Range } from '@tanstack/react-virtual';\nimport { useVirtualizer, defaultRangeExtractor } from '@tanstack/react-virtual';\nimport sortBy from 'lodash/sortBy';\nimport without from 'lodash/without';\nimport type { CSSProperties } from 'react';\nimport React from 'react';\n\nimport type { TableRef } from '../../types';\nimport { getTableMeta } from '../../useTableManager/util/rows';\nimport { SkeletonRow } from '../components/Row/BuiltIns/SkeletonRow';\nimport { Row } from '../components/Row/Row';\nimport type { useTableRenderers } from '../types';\nimport { ROW_HEIGHT_ESTIMATES } from '../util/rows';\n\n// scroll padding end is designed to always show half of the next row\nfunction getScrollPaddingEndOffset<TType = unknown>(table: ReactTable<TType>) {\n const tableMeta = getTableMeta(table);\n let offset = 2;\n\n if (tableMeta.footer.isEnabled) {\n offset += 1;\n }\n\n if (table.getHeaderGroups().length > 1) {\n offset += table.getHeaderGroups().length - 1;\n }\n\n let height = ROW_HEIGHT_ESTIMATES.medium * offset;\n\n const bottomRows = table.getBottomRows();\n\n if (bottomRows.length) {\n // 1.4 offsets for half rows and also accounts for increased row heights (which is likely in pinned rows)\n height += ROW_HEIGHT_ESTIMATES[tableMeta.rowHeight.height] * 1.4 * bottomRows.length;\n }\n\n return height;\n}\n\n// scroll padding end is designed to always show half of the next row\nfunction getPaddingEndOffset<TType = unknown>(table: ReactTable<TType>) {\n const bottomRows = table.getBottomRows() ?? [];\n return ROW_HEIGHT_ESTIMATES.medium * 1 * bottomRows.length;\n}\n\n// A higher number ensure less scroll jumping for dynamic row heights, but too high can reduce performance. 8 worked well\nconst OVERSCAN_ROW_COUNT = 8;\n\nexport function useTableRenderer<TType = unknown>(\n renderers: useTableRenderers<TType>,\n table: ReactTable<TType>,\n tableRef: React.RefObject<TableRef>,\n length: number,\n defaultRowActiveIndex?: number | undefined\n) {\n const tableMeta = getTableMeta(table);\n const isTableRowGrouped = !!table.getState().grouping?.length;\n const rows = table.getCenterRows() ?? [];\n\n // row groups\n const rangeExtractor = useRowGroupVirtualisation<TType>(table);\n\n // account for thead and tfoot in the scroll area - both are always medium row height\n const scrollPaddingStart = ROW_HEIGHT_ESTIMATES.medium;\n\n const count = tableMeta.server.isEnabled && tableMeta.server._experimentalDataLoader2 ? length : rows.length;\n\n const virtualiser = useVirtualizer({\n count,\n estimateSize: () => {\n return tableMeta.rowHeight.height ? ROW_HEIGHT_ESTIMATES[tableMeta.rowHeight.height] : ROW_HEIGHT_ESTIMATES.medium;\n },\n getScrollElement: () => tableRef.current,\n overscan: tableMeta.printing.isPrinting ? count : OVERSCAN_ROW_COUNT,\n rangeExtractor,\n // correctly sets the scroll padding offset, e.g. when keyboard navigating rows in the list\n scrollPaddingStart,\n scrollPaddingEnd: getScrollPaddingEndOffset(table),\n paddingEnd: getPaddingEndOffset(table),\n });\n\n const expandedState = table.getState().expanded;\n const previousExpandedStateRef = React.useRef(false);\n\n React.useEffect(() => {\n // only remeasure when transitioning between expand all and not expand all\n const isEmpty = JSON.stringify(expandedState) === '{}';\n\n if (expandedState === true || (isEmpty && previousExpandedStateRef.current === true)) {\n previousExpandedStateRef.current = expandedState === true;\n virtualiser.measure();\n }\n }, [expandedState]);\n\n const totalSize = virtualiser.getTotalSize();\n const virtualItems = virtualiser.getVirtualItems();\n\n const scrollToIndex = React.useCallback(\n (index: number, options: ReactVirtualScrollToOptions = { align: 'auto', behavior: 'smooth' }) => {\n const notSmooth: ReactVirtualScrollToOptions = { ...options, behavior: 'auto' };\n\n if (tableRef.current) {\n if (index === 0) {\n virtualiser.scrollToOffset(0, notSmooth);\n } else if (index === count - 1) {\n // sometimes the last row doesn't fully show, so we just force scroll to the bottom\n tableRef.current.scrollTop = tableRef.current.scrollHeight;\n } else {\n virtualiser.scrollToIndex(index, options);\n }\n }\n },\n [virtualItems.length, tableRef.current, totalSize, count]\n );\n\n // use row 1 not 0, because 0 might be sticky in grouped tables and it's start value will always be 0\n const paddingStartIndex = isTableRowGrouped && count > 1 ? 1 : 0;\n\n const startValue = isTableRowGrouped\n ? (virtualItems[paddingStartIndex]?.start ?? 0) - (virtualItems[paddingStartIndex]?.size ?? 0)\n : virtualItems[paddingStartIndex]?.start;\n\n // styling for offsetting rows - this \"is\" the virtualisation\n const [paddingTop, paddingBottom] =\n virtualItems.length > 0\n ? [Math.max(0, startValue ?? 0), Math.max(0, totalSize - (virtualItems.at(-1)?.end ?? 0))]\n : [0, 0];\n\n // ensure default active rows are scrolled to\n React.useEffect(() => {\n if (defaultRowActiveIndex) {\n scrollToIndex(defaultRowActiveIndex, { align: 'center', behavior: 'auto' });\n }\n }, []);\n\n // rendered output\n let style: CSSProperties = {};\n let content: (React.JSX.Element | null)[] | null = null;\n\n // bottom rows aren't virtualised (they're sticky) but we need to set the height\n if (count || table.getBottomRows().length) {\n style = {\n height: totalSize,\n paddingBottom: Number.isNaN(paddingBottom) ? 0 : paddingBottom,\n paddingTop: Number.isNaN(paddingTop) ? 0 : paddingTop,\n };\n }\n\n // only render non sticky rows\n if (count) {\n content = virtualItems.map(virtualRow => {\n // there appears to be a react-virtual bug where it inserts a single `undefined` item at the end of the row, which crashes here\n if (!virtualRow) {\n return null;\n }\n\n let row: ReactTableRow<TType> | undefined;\n\n if (tableMeta.server.isEnabled && tableMeta.server._experimentalDataLoader2) {\n const currentPageIndex =\n (Math.floor(virtualRow.index / tableMeta.server.pageSize) * tableMeta.server.pageSize) /\n tableMeta.server.pageSize;\n const pagePosition = tableMeta.server.pages?.indexOf(currentPageIndex) ?? -1;\n\n if (pagePosition > -1) {\n // \"flatten\" row indexes down into the dataloader2 dataset size\n // for example, with a page size of 100...\n // row index 14267 is actually one of index 67, 167, 267 etc within the dataset (depending on number of pages stored)\n const fakeIndex = pagePosition * tableMeta.server.pageSize + (virtualRow.index % tableMeta.server.pageSize);\n row = rows[fakeIndex];\n }\n } else {\n row = rows[virtualRow.index];\n }\n\n if (!row?.original) {\n // Prefix skeleton keys to prevent collision with real data row keys\n const skeletonKey = `skeleton-${virtualRow.index}`;\n return <SkeletonRow key={skeletonKey} index={virtualRow.index} table={table} />;\n }\n\n const measureRow = (rowHeight: number) => {\n virtualiser.resizeItem(virtualRow.index, rowHeight);\n };\n\n return (\n <Row\n key={row.id}\n row={row}\n index={virtualRow.index}\n table={table}\n measureRow={measureRow}\n renderer={renderers.row}\n cellRenderer={renderers.cell}\n />\n );\n });\n }\n\n return {\n rows: content,\n style,\n scrollToIndex,\n };\n}\n\n// support virtualised row groups (where the row group headers are sticky)\nfunction useRowGroupVirtualisation<TType = unknown>(table: ReactTable<TType>) {\n const rows = table.getRowModel().rows;\n const isTableGrouped = !!table.getState().grouping.length;\n\n const rowGroupIndexes = React.useMemo(() => {\n const indexes: number[] = [];\n\n if (isTableGrouped) {\n rows.forEach((row, index) => {\n if (row.getIsGrouped()) {\n indexes.push(index);\n }\n });\n }\n\n return indexes;\n }, [rows]);\n\n // this is taken from the react-virtual docs/examples\n const rangeExtractor = React.useCallback(\n (range: Range) => {\n const activeRowGroupIndex =\n rowGroupIndexes.toReversed().find(index => range.startIndex >= index) ?? rowGroupIndexes[0];\n\n return activeRowGroupIndex === undefined\n ? defaultRangeExtractor(range)\n : sortBy([activeRowGroupIndex, ...without(defaultRangeExtractor(range), activeRowGroupIndex)], a => a);\n },\n [rowGroupIndexes]\n );\n\n return isTableGrouped ? rangeExtractor : undefined;\n}\n"],"names":["getTableMeta","ROW_HEIGHT_ESTIMATES","rows","useVirtualizer","SkeletonRow","Row","defaultRangeExtractor"],"mappings":";;;;;;;;;;AAgBA,SAAS,0BAA2C,OAA0B;AAC1E,QAAM,YAAYA,KAAAA,aAAa,KAAK;AACpC,MAAI,SAAS;AAEb,MAAI,UAAU,OAAO,WAAW;AAC5B,cAAU;AAAA,EACd;AAEA,MAAI,MAAM,kBAAkB,SAAS,GAAG;AACpC,cAAU,MAAM,gBAAA,EAAkB,SAAS;AAAA,EAC/C;AAEA,MAAI,SAASC,4BAAqB,SAAS;AAE3C,QAAM,aAAa,MAAM,cAAA;AAEzB,MAAI,WAAW,QAAQ;AAEnB,cAAUA,OAAAA,qBAAqB,UAAU,UAAU,MAAM,IAAI,MAAM,WAAW;AAAA,EAClF;AAEA,SAAO;AACX;AAGA,SAAS,oBAAqC,OAA0B;AACpE,QAAM,aAAa,MAAM,cAAA,KAAmB,CAAA;AAC5C,SAAOA,4BAAqB,SAAS,IAAI,WAAW;AACxD;AAGA,MAAM,qBAAqB;AAEpB,SAAS,iBACZ,WACA,OACA,UACA,QACA,uBACF;AACE,QAAM,YAAYD,KAAAA,aAAa,KAAK;AACpC,QAAM,oBAAoB,CAAC,CAAC,MAAM,SAAA,EAAW,UAAU;AACvD,QAAME,SAAO,MAAM,cAAA,KAAmB,CAAA;AAGtC,QAAM,iBAAiB,0BAAiC,KAAK;AAG7D,QAAM,qBAAqBD,OAAAA,qBAAqB;AAEhD,QAAM,QAAQ,UAAU,OAAO,aAAa,UAAU,OAAO,2BAA2B,SAASC,OAAK;AAEtG,QAAM,cAAcC,aAAAA,eAAe;AAAA,IAC/B;AAAA,IACA,cAAc,MAAM;AAChB,aAAO,UAAU,UAAU,SAASF,OAAAA,qBAAqB,UAAU,UAAU,MAAM,IAAIA,OAAAA,qBAAqB;AAAA,IAChH;AAAA,IACA,kBAAkB,MAAM,SAAS;AAAA,IACjC,UAAU,UAAU,SAAS,aAAa,QAAQ;AAAA,IAClD;AAAA;AAAA,IAEA;AAAA,IACA,kBAAkB,0BAA0B,KAAK;AAAA,IACjD,YAAY,oBAAoB,KAAK;AAAA,EAAA,CACxC;AAED,QAAM,gBAAgB,MAAM,SAAA,EAAW;AACvC,QAAM,2BAA2B,MAAM,OAAO,KAAK;AAEnD,QAAM,UAAU,MAAM;AAElB,UAAM,UAAU,KAAK,UAAU,aAAa,MAAM;AAElD,QAAI,kBAAkB,QAAS,WAAW,yBAAyB,YAAY,MAAO;AAClF,+BAAyB,UAAU,kBAAkB;AACrD,kBAAY,QAAA;AAAA,IAChB;AAAA,EACJ,GAAG,CAAC,aAAa,CAAC;AAElB,QAAM,YAAY,YAAY,aAAA;AAC9B,QAAM,eAAe,YAAY,gBAAA;AAEjC,QAAM,gBAAgB,MAAM;AAAA,IACxB,CAAC,OAAe,UAAuC,EAAE,OAAO,QAAQ,UAAU,eAAe;AAC7F,YAAM,YAAyC,EAAE,GAAG,SAAS,UAAU,OAAA;AAEvE,UAAI,SAAS,SAAS;AAClB,YAAI,UAAU,GAAG;AACb,sBAAY,eAAe,GAAG,SAAS;AAAA,QAC3C,WAAW,UAAU,QAAQ,GAAG;AAE5B,mBAAS,QAAQ,YAAY,SAAS,QAAQ;AAAA,QAClD,OAAO;AACH,sBAAY,cAAc,OAAO,OAAO;AAAA,QAC5C;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,CAAC,aAAa,QAAQ,SAAS,SAAS,WAAW,KAAK;AAAA,EAAA;AAI5D,QAAM,oBAAoB,qBAAqB,QAAQ,IAAI,IAAI;AAE/D,QAAM,aAAa,qBACZ,aAAa,iBAAiB,GAAG,SAAS,MAAM,aAAa,iBAAiB,GAAG,QAAQ,KAC1F,aAAa,iBAAiB,GAAG;AAGvC,QAAM,CAAC,YAAY,aAAa,IAC5B,aAAa,SAAS,IAChB,CAAC,KAAK,IAAI,GAAG,cAAc,CAAC,GAAG,KAAK,IAAI,GAAG,aAAa,aAAa,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,IACvF,CAAC,GAAG,CAAC;AAGf,QAAM,UAAU,MAAM;AAClB,QAAI,uBAAuB;AACvB,oBAAc,uBAAuB,EAAE,OAAO,UAAU,UAAU,QAAQ;AAAA,IAC9E;AAAA,EACJ,GAAG,CAAA,CAAE;AAGL,MAAI,QAAuB,CAAA;AAC3B,MAAI,UAA+C;AAGnD,MAAI,SAAS,MAAM,cAAA,EAAgB,QAAQ;AACvC,YAAQ;AAAA,MACJ,QAAQ;AAAA,MACR,eAAe,OAAO,MAAM,aAAa,IAAI,IAAI;AAAA,MACjD,YAAY,OAAO,MAAM,UAAU,IAAI,IAAI;AAAA,IAAA;AAAA,EAEnD;AAGA,MAAI,OAAO;AACP,cAAU,aAAa,IAAI,CAAA,eAAc;AAErC,UAAI,CAAC,YAAY;AACb,eAAO;AAAA,MACX;AAEA,UAAI;AAEJ,UAAI,UAAU,OAAO,aAAa,UAAU,OAAO,0BAA0B;AACzE,cAAM,mBACD,KAAK,MAAM,WAAW,QAAQ,UAAU,OAAO,QAAQ,IAAI,UAAU,OAAO,WAC7E,UAAU,OAAO;AACrB,cAAM,eAAe,UAAU,OAAO,OAAO,QAAQ,gBAAgB,KAAK;AAE1E,YAAI,eAAe,IAAI;AAInB,gBAAM,YAAY,eAAe,UAAU,OAAO,WAAY,WAAW,QAAQ,UAAU,OAAO;AAClG,gBAAMC,OAAK,SAAS;AAAA,QACxB;AAAA,MACJ,OAAO;AACH,cAAMA,OAAK,WAAW,KAAK;AAAA,MAC/B;AAEA,UAAI,CAAC,KAAK,UAAU;AAEhB,cAAM,cAAc,YAAY,WAAW,KAAK;AAChD,mDAAQE,YAAAA,aAAA,EAAY,KAAK,aAAa,OAAO,WAAW,OAAO,OAAc;AAAA,MACjF;AAEA,YAAM,aAAa,CAAC,cAAsB;AACtC,oBAAY,WAAW,WAAW,OAAO,SAAS;AAAA,MACtD;AAEA,aACI,sBAAA;AAAA,QAACC,IAAAA;AAAAA,QAAA;AAAA,UACG,KAAK,IAAI;AAAA,UACT;AAAA,UACA,OAAO,WAAW;AAAA,UAClB;AAAA,UACA;AAAA,UACA,UAAU,UAAU;AAAA,UACpB,cAAc,UAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IAGpC,CAAC;AAAA,EACL;AAEA,SAAO;AAAA,IACH,MAAM;AAAA,IACN;AAAA,IACA;AAAA,EAAA;AAER;AAGA,SAAS,0BAA2C,OAA0B;AAC1E,QAAMH,QAAO,MAAM,YAAA,EAAc;AACjC,QAAM,iBAAiB,CAAC,CAAC,MAAM,SAAA,EAAW,SAAS;AAEnD,QAAM,kBAAkB,MAAM,QAAQ,MAAM;AACxC,UAAM,UAAoB,CAAA;AAE1B,QAAI,gBAAgB;AAChB,MAAAA,MAAK,QAAQ,CAAC,KAAK,UAAU;AACzB,YAAI,IAAI,gBAAgB;AACpB,kBAAQ,KAAK,KAAK;AAAA,QACtB;AAAA,MACJ,CAAC;AAAA,IACL;AAEA,WAAO;AAAA,EACX,GAAG,CAACA,KAAI,CAAC;AAGT,QAAM,iBAAiB,MAAM;AAAA,IACzB,CAAC,UAAiB;AACd,YAAM,sBACF,gBAAgB,WAAA,EAAa,KAAK,CAAA,UAAS,MAAM,cAAc,KAAK,KAAK,gBAAgB,CAAC;AAE9F,aAAO,wBAAwB,SACzBI,aAAAA,sBAAsB,KAAK,IAC3B,OAAO,CAAC,qBAAqB,GAAG,QAAQA,aAAAA,sBAAsB,KAAK,GAAG,mBAAmB,CAAC,GAAG,OAAK,CAAC;AAAA,IAC7G;AAAA,IACA,CAAC,eAAe;AAAA,EAAA;AAGpB,SAAO,iBAAiB,iBAAiB;AAC7C;;"}
@@ -2,11 +2,12 @@ import { useVirtualizer, defaultRangeExtractor } from "@tanstack/react-virtual";
2
2
  import sortBy from "lodash/sortBy";
3
3
  import without from "lodash/without";
4
4
  import React__default from "react";
5
+ import { getTableMeta } from "../../useTableManager/util/rows.js";
5
6
  import { SkeletonRow } from "../components/Row/BuiltIns/SkeletonRow.js";
6
7
  import { Row } from "../components/Row/Row.js";
7
8
  import { ROW_HEIGHT_ESTIMATES } from "../util/rows.js";
8
9
  function getScrollPaddingEndOffset(table) {
9
- const tableMeta = table.options.meta;
10
+ const tableMeta = getTableMeta(table);
10
11
  let offset = 2;
11
12
  if (tableMeta.footer.isEnabled) {
12
13
  offset += 1;
@@ -27,7 +28,7 @@ function getPaddingEndOffset(table) {
27
28
  }
28
29
  const OVERSCAN_ROW_COUNT = 8;
29
30
  function useTableRenderer(renderers, table, tableRef, length, defaultRowActiveIndex) {
30
- const tableMeta = table.options.meta;
31
+ const tableMeta = getTableMeta(table);
31
32
  const isTableRowGrouped = !!table.getState().grouping?.length;
32
33
  const rows = table.getCenterRows() ?? [];
33
34
  const rangeExtractor = useRowGroupVirtualisation(table);
@@ -1 +1 @@
1
- {"version":3,"file":"useTableRenderer.js","sources":["../../../../../src/primitives/Table/Core/features/useTableRenderer.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta, Row as ReactTableRow } from '@tanstack/react-table';\nimport type { ScrollToOptions as ReactVirtualScrollToOptions, Range } from '@tanstack/react-virtual';\nimport { useVirtualizer, defaultRangeExtractor } from '@tanstack/react-virtual';\nimport sortBy from 'lodash/sortBy';\nimport without from 'lodash/without';\nimport type { CSSProperties } from 'react';\nimport React from 'react';\n\nimport type { TableRef } from '../../types';\nimport { SkeletonRow } from '../components/Row/BuiltIns/SkeletonRow';\nimport { Row } from '../components/Row/Row';\nimport type { useTableRenderers } from '../types';\nimport { ROW_HEIGHT_ESTIMATES } from '../util/rows';\n\n// scroll padding end is designed to always show half of the next row\nfunction getScrollPaddingEndOffset<TType = unknown>(table: ReactTable<TType>) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n let offset = 2;\n\n if (tableMeta.footer.isEnabled) {\n offset += 1;\n }\n\n if (table.getHeaderGroups().length > 1) {\n offset += table.getHeaderGroups().length - 1;\n }\n\n let height = ROW_HEIGHT_ESTIMATES.medium * offset;\n\n const bottomRows = table.getBottomRows();\n\n if (bottomRows.length) {\n // 1.4 offsets for half rows and also accounts for increased row heights (which is likely in pinned rows)\n height += ROW_HEIGHT_ESTIMATES[tableMeta.rowHeight.height] * 1.4 * bottomRows.length;\n }\n\n return height;\n}\n\n// scroll padding end is designed to always show half of the next row\nfunction getPaddingEndOffset<TType = unknown>(table: ReactTable<TType>) {\n const bottomRows = table.getBottomRows() ?? [];\n return ROW_HEIGHT_ESTIMATES.medium * 1 * bottomRows.length;\n}\n\n// A higher number ensure less scroll jumping for dynamic row heights, but too high can reduce performance. 8 worked well\nconst OVERSCAN_ROW_COUNT = 8;\n\nexport function useTableRenderer<TType = unknown>(\n renderers: useTableRenderers<TType>,\n table: ReactTable<TType>,\n tableRef: React.RefObject<TableRef>,\n length: number,\n defaultRowActiveIndex?: number | undefined\n) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const isTableRowGrouped = !!table.getState().grouping?.length;\n const rows = table.getCenterRows() ?? [];\n\n // row groups\n const rangeExtractor = useRowGroupVirtualisation<TType>(table);\n\n // account for thead and tfoot in the scroll area - both are always medium row height\n const scrollPaddingStart = ROW_HEIGHT_ESTIMATES.medium;\n\n const count = tableMeta.server.isEnabled && tableMeta.server._experimentalDataLoader2 ? length : rows.length;\n\n const virtualiser = useVirtualizer({\n count,\n estimateSize: () => {\n return tableMeta.rowHeight.height ? ROW_HEIGHT_ESTIMATES[tableMeta.rowHeight.height] : ROW_HEIGHT_ESTIMATES.medium;\n },\n getScrollElement: () => tableRef.current,\n overscan: tableMeta.printing.isPrinting ? count : OVERSCAN_ROW_COUNT,\n rangeExtractor,\n // correctly sets the scroll padding offset, e.g. when keyboard navigating rows in the list\n scrollPaddingStart,\n scrollPaddingEnd: getScrollPaddingEndOffset(table),\n paddingEnd: getPaddingEndOffset(table),\n });\n\n const expandedState = table.getState().expanded;\n const previousExpandedStateRef = React.useRef(false);\n\n React.useEffect(() => {\n // only remeasure when transitioning between expand all and not expand all\n const isEmpty = JSON.stringify(expandedState) === '{}';\n\n if (expandedState === true || (isEmpty && previousExpandedStateRef.current === true)) {\n previousExpandedStateRef.current = expandedState === true;\n virtualiser.measure();\n }\n }, [expandedState]);\n\n const totalSize = virtualiser.getTotalSize();\n const virtualItems = virtualiser.getVirtualItems();\n\n const scrollToIndex = React.useCallback(\n (index: number, options: ReactVirtualScrollToOptions = { align: 'auto', behavior: 'smooth' }) => {\n const notSmooth: ReactVirtualScrollToOptions = { ...options, behavior: 'auto' };\n\n if (tableRef.current) {\n if (index === 0) {\n virtualiser.scrollToOffset(0, notSmooth);\n } else if (index === count - 1) {\n // sometimes the last row doesn't fully show, so we just force scroll to the bottom\n tableRef.current.scrollTop = tableRef.current.scrollHeight;\n } else {\n virtualiser.scrollToIndex(index, options);\n }\n }\n },\n [virtualItems.length, tableRef.current, totalSize, count]\n );\n\n // use row 1 not 0, because 0 might be sticky in grouped tables and it's start value will always be 0\n const paddingStartIndex = isTableRowGrouped && count > 1 ? 1 : 0;\n\n const startValue = isTableRowGrouped\n ? (virtualItems[paddingStartIndex]?.start ?? 0) - (virtualItems[paddingStartIndex]?.size ?? 0)\n : virtualItems[paddingStartIndex]?.start;\n\n // styling for offsetting rows - this \"is\" the virtualisation\n const [paddingTop, paddingBottom] =\n virtualItems.length > 0\n ? [Math.max(0, startValue ?? 0), Math.max(0, totalSize - (virtualItems.at(-1)?.end ?? 0))]\n : [0, 0];\n\n // ensure default active rows are scrolled to\n React.useEffect(() => {\n if (defaultRowActiveIndex) {\n scrollToIndex(defaultRowActiveIndex, { align: 'center', behavior: 'auto' });\n }\n }, []);\n\n // rendered output\n let style: CSSProperties = {};\n let content: (React.JSX.Element | null)[] | null = null;\n\n // bottom rows aren't virtualised (they're sticky) but we need to set the height\n if (count || table.getBottomRows().length) {\n style = {\n height: totalSize,\n paddingBottom: Number.isNaN(paddingBottom) ? 0 : paddingBottom,\n paddingTop: Number.isNaN(paddingTop) ? 0 : paddingTop,\n };\n }\n\n // only render non sticky rows\n if (count) {\n content = virtualItems.map(virtualRow => {\n // there appears to be a react-virtual bug where it inserts a single `undefined` item at the end of the row, which crashes here\n if (!virtualRow) {\n return null;\n }\n\n let row: ReactTableRow<TType> | undefined;\n\n if (tableMeta.server.isEnabled && tableMeta.server._experimentalDataLoader2) {\n const currentPageIndex =\n (Math.floor(virtualRow.index / tableMeta.server.pageSize) * tableMeta.server.pageSize) /\n tableMeta.server.pageSize;\n const pagePosition = tableMeta.server.pages?.indexOf(currentPageIndex) ?? -1;\n\n if (pagePosition > -1) {\n // \"flatten\" row indexes down into the dataloader2 dataset size\n // for example, with a page size of 100...\n // row index 14267 is actually one of index 67, 167, 267 etc within the dataset (depending on number of pages stored)\n const fakeIndex = pagePosition * tableMeta.server.pageSize + (virtualRow.index % tableMeta.server.pageSize);\n row = rows[fakeIndex];\n }\n } else {\n row = rows[virtualRow.index];\n }\n\n if (!row?.original) {\n // Prefix skeleton keys to prevent collision with real data row keys\n const skeletonKey = `skeleton-${virtualRow.index}`;\n return <SkeletonRow key={skeletonKey} index={virtualRow.index} table={table} />;\n }\n\n const measureRow = (rowHeight: number) => {\n virtualiser.resizeItem(virtualRow.index, rowHeight);\n };\n\n return (\n <Row\n key={row.id}\n row={row}\n index={virtualRow.index}\n table={table}\n measureRow={measureRow}\n renderer={renderers.row}\n cellRenderer={renderers.cell}\n />\n );\n });\n }\n\n return {\n rows: content,\n style,\n scrollToIndex,\n };\n}\n\n// support virtualised row groups (where the row group headers are sticky)\nfunction useRowGroupVirtualisation<TType = unknown>(table: ReactTable<TType>) {\n const rows = table.getRowModel().rows;\n const isTableGrouped = !!table.getState().grouping.length;\n\n const rowGroupIndexes = React.useMemo(() => {\n const indexes: number[] = [];\n\n if (isTableGrouped) {\n rows.forEach((row, index) => {\n if (row.getIsGrouped()) {\n indexes.push(index);\n }\n });\n }\n\n return indexes;\n }, [rows]);\n\n // this is taken from the react-virtual docs/examples\n const rangeExtractor = React.useCallback(\n (range: Range) => {\n const activeRowGroupIndex =\n rowGroupIndexes.toReversed().find(index => range.startIndex >= index) ?? rowGroupIndexes[0];\n\n return activeRowGroupIndex === undefined\n ? defaultRangeExtractor(range)\n : sortBy([activeRowGroupIndex, ...without(defaultRangeExtractor(range), activeRowGroupIndex)], a => a);\n },\n [rowGroupIndexes]\n );\n\n return isTableGrouped ? rangeExtractor : undefined;\n}\n"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"useTableRenderer.js","sources":["../../../../../src/primitives/Table/Core/features/useTableRenderer.tsx"],"sourcesContent":["import type { Table as ReactTable, Row as ReactTableRow } from '@tanstack/react-table';\nimport type { ScrollToOptions as ReactVirtualScrollToOptions, Range } from '@tanstack/react-virtual';\nimport { useVirtualizer, defaultRangeExtractor } from '@tanstack/react-virtual';\nimport sortBy from 'lodash/sortBy';\nimport without from 'lodash/without';\nimport type { CSSProperties } from 'react';\nimport React from 'react';\n\nimport type { TableRef } from '../../types';\nimport { getTableMeta } from '../../useTableManager/util/rows';\nimport { SkeletonRow } from '../components/Row/BuiltIns/SkeletonRow';\nimport { Row } from '../components/Row/Row';\nimport type { useTableRenderers } from '../types';\nimport { ROW_HEIGHT_ESTIMATES } from '../util/rows';\n\n// scroll padding end is designed to always show half of the next row\nfunction getScrollPaddingEndOffset<TType = unknown>(table: ReactTable<TType>) {\n const tableMeta = getTableMeta(table);\n let offset = 2;\n\n if (tableMeta.footer.isEnabled) {\n offset += 1;\n }\n\n if (table.getHeaderGroups().length > 1) {\n offset += table.getHeaderGroups().length - 1;\n }\n\n let height = ROW_HEIGHT_ESTIMATES.medium * offset;\n\n const bottomRows = table.getBottomRows();\n\n if (bottomRows.length) {\n // 1.4 offsets for half rows and also accounts for increased row heights (which is likely in pinned rows)\n height += ROW_HEIGHT_ESTIMATES[tableMeta.rowHeight.height] * 1.4 * bottomRows.length;\n }\n\n return height;\n}\n\n// scroll padding end is designed to always show half of the next row\nfunction getPaddingEndOffset<TType = unknown>(table: ReactTable<TType>) {\n const bottomRows = table.getBottomRows() ?? [];\n return ROW_HEIGHT_ESTIMATES.medium * 1 * bottomRows.length;\n}\n\n// A higher number ensure less scroll jumping for dynamic row heights, but too high can reduce performance. 8 worked well\nconst OVERSCAN_ROW_COUNT = 8;\n\nexport function useTableRenderer<TType = unknown>(\n renderers: useTableRenderers<TType>,\n table: ReactTable<TType>,\n tableRef: React.RefObject<TableRef>,\n length: number,\n defaultRowActiveIndex?: number | undefined\n) {\n const tableMeta = getTableMeta(table);\n const isTableRowGrouped = !!table.getState().grouping?.length;\n const rows = table.getCenterRows() ?? [];\n\n // row groups\n const rangeExtractor = useRowGroupVirtualisation<TType>(table);\n\n // account for thead and tfoot in the scroll area - both are always medium row height\n const scrollPaddingStart = ROW_HEIGHT_ESTIMATES.medium;\n\n const count = tableMeta.server.isEnabled && tableMeta.server._experimentalDataLoader2 ? length : rows.length;\n\n const virtualiser = useVirtualizer({\n count,\n estimateSize: () => {\n return tableMeta.rowHeight.height ? ROW_HEIGHT_ESTIMATES[tableMeta.rowHeight.height] : ROW_HEIGHT_ESTIMATES.medium;\n },\n getScrollElement: () => tableRef.current,\n overscan: tableMeta.printing.isPrinting ? count : OVERSCAN_ROW_COUNT,\n rangeExtractor,\n // correctly sets the scroll padding offset, e.g. when keyboard navigating rows in the list\n scrollPaddingStart,\n scrollPaddingEnd: getScrollPaddingEndOffset(table),\n paddingEnd: getPaddingEndOffset(table),\n });\n\n const expandedState = table.getState().expanded;\n const previousExpandedStateRef = React.useRef(false);\n\n React.useEffect(() => {\n // only remeasure when transitioning between expand all and not expand all\n const isEmpty = JSON.stringify(expandedState) === '{}';\n\n if (expandedState === true || (isEmpty && previousExpandedStateRef.current === true)) {\n previousExpandedStateRef.current = expandedState === true;\n virtualiser.measure();\n }\n }, [expandedState]);\n\n const totalSize = virtualiser.getTotalSize();\n const virtualItems = virtualiser.getVirtualItems();\n\n const scrollToIndex = React.useCallback(\n (index: number, options: ReactVirtualScrollToOptions = { align: 'auto', behavior: 'smooth' }) => {\n const notSmooth: ReactVirtualScrollToOptions = { ...options, behavior: 'auto' };\n\n if (tableRef.current) {\n if (index === 0) {\n virtualiser.scrollToOffset(0, notSmooth);\n } else if (index === count - 1) {\n // sometimes the last row doesn't fully show, so we just force scroll to the bottom\n tableRef.current.scrollTop = tableRef.current.scrollHeight;\n } else {\n virtualiser.scrollToIndex(index, options);\n }\n }\n },\n [virtualItems.length, tableRef.current, totalSize, count]\n );\n\n // use row 1 not 0, because 0 might be sticky in grouped tables and it's start value will always be 0\n const paddingStartIndex = isTableRowGrouped && count > 1 ? 1 : 0;\n\n const startValue = isTableRowGrouped\n ? (virtualItems[paddingStartIndex]?.start ?? 0) - (virtualItems[paddingStartIndex]?.size ?? 0)\n : virtualItems[paddingStartIndex]?.start;\n\n // styling for offsetting rows - this \"is\" the virtualisation\n const [paddingTop, paddingBottom] =\n virtualItems.length > 0\n ? [Math.max(0, startValue ?? 0), Math.max(0, totalSize - (virtualItems.at(-1)?.end ?? 0))]\n : [0, 0];\n\n // ensure default active rows are scrolled to\n React.useEffect(() => {\n if (defaultRowActiveIndex) {\n scrollToIndex(defaultRowActiveIndex, { align: 'center', behavior: 'auto' });\n }\n }, []);\n\n // rendered output\n let style: CSSProperties = {};\n let content: (React.JSX.Element | null)[] | null = null;\n\n // bottom rows aren't virtualised (they're sticky) but we need to set the height\n if (count || table.getBottomRows().length) {\n style = {\n height: totalSize,\n paddingBottom: Number.isNaN(paddingBottom) ? 0 : paddingBottom,\n paddingTop: Number.isNaN(paddingTop) ? 0 : paddingTop,\n };\n }\n\n // only render non sticky rows\n if (count) {\n content = virtualItems.map(virtualRow => {\n // there appears to be a react-virtual bug where it inserts a single `undefined` item at the end of the row, which crashes here\n if (!virtualRow) {\n return null;\n }\n\n let row: ReactTableRow<TType> | undefined;\n\n if (tableMeta.server.isEnabled && tableMeta.server._experimentalDataLoader2) {\n const currentPageIndex =\n (Math.floor(virtualRow.index / tableMeta.server.pageSize) * tableMeta.server.pageSize) /\n tableMeta.server.pageSize;\n const pagePosition = tableMeta.server.pages?.indexOf(currentPageIndex) ?? -1;\n\n if (pagePosition > -1) {\n // \"flatten\" row indexes down into the dataloader2 dataset size\n // for example, with a page size of 100...\n // row index 14267 is actually one of index 67, 167, 267 etc within the dataset (depending on number of pages stored)\n const fakeIndex = pagePosition * tableMeta.server.pageSize + (virtualRow.index % tableMeta.server.pageSize);\n row = rows[fakeIndex];\n }\n } else {\n row = rows[virtualRow.index];\n }\n\n if (!row?.original) {\n // Prefix skeleton keys to prevent collision with real data row keys\n const skeletonKey = `skeleton-${virtualRow.index}`;\n return <SkeletonRow key={skeletonKey} index={virtualRow.index} table={table} />;\n }\n\n const measureRow = (rowHeight: number) => {\n virtualiser.resizeItem(virtualRow.index, rowHeight);\n };\n\n return (\n <Row\n key={row.id}\n row={row}\n index={virtualRow.index}\n table={table}\n measureRow={measureRow}\n renderer={renderers.row}\n cellRenderer={renderers.cell}\n />\n );\n });\n }\n\n return {\n rows: content,\n style,\n scrollToIndex,\n };\n}\n\n// support virtualised row groups (where the row group headers are sticky)\nfunction useRowGroupVirtualisation<TType = unknown>(table: ReactTable<TType>) {\n const rows = table.getRowModel().rows;\n const isTableGrouped = !!table.getState().grouping.length;\n\n const rowGroupIndexes = React.useMemo(() => {\n const indexes: number[] = [];\n\n if (isTableGrouped) {\n rows.forEach((row, index) => {\n if (row.getIsGrouped()) {\n indexes.push(index);\n }\n });\n }\n\n return indexes;\n }, [rows]);\n\n // this is taken from the react-virtual docs/examples\n const rangeExtractor = React.useCallback(\n (range: Range) => {\n const activeRowGroupIndex =\n rowGroupIndexes.toReversed().find(index => range.startIndex >= index) ?? rowGroupIndexes[0];\n\n return activeRowGroupIndex === undefined\n ? defaultRangeExtractor(range)\n : sortBy([activeRowGroupIndex, ...without(defaultRangeExtractor(range), activeRowGroupIndex)], a => a);\n },\n [rowGroupIndexes]\n );\n\n return isTableGrouped ? rangeExtractor : undefined;\n}\n"],"names":["React"],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const rows = require("../../useTableManager/util/rows.cjs");
3
4
  const useTableStyleColumnFreezing = require("./useTableStyleColumnFreezing.cjs");
4
5
  const useTableStyleGrid = require("./useTableStyleGrid.cjs");
5
6
  function useTableStyle(tableId, table) {
6
- const tableMeta = table.options.meta;
7
+ const tableMeta = rows.getTableMeta(table);
7
8
  const { style: cssGridStyle, stylesheet: cssGridStylesheet } = useTableStyleGrid.useTableStyleGrid(
8
9
  tableId,
9
10
  table,
@@ -1 +1 @@
1
- {"version":3,"file":"useTableStyle.cjs","sources":["../../../../../src/primitives/Table/Core/features/useTableStyle.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\n\nimport type { TableFontSize, TableRowHeight } from '../../types';\n\nimport { useTableStyleColumnFreezing } from './useTableStyleColumnFreezing';\nimport { useTableStyleGrid } from './useTableStyleGrid';\n\nexport function useTableStyle<TType = unknown>(tableId: string, table: ReactTable<TType>) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const { style: cssGridStyle, stylesheet: cssGridStylesheet } = useTableStyleGrid<TType>(\n tableId,\n table,\n tableMeta.fontSize.size\n );\n const { stylesheet: columnFreezingStylesheet } = useTableStyleColumnFreezing(tableId, table);\n\n // persisted settings can contain out-of-union values, so fall back like the old switch defaults did\n const heightPadding = CELL_HEIGHT_PADDING[tableMeta.rowHeight.height] ?? CELL_HEIGHT_PADDING.medium;\n\n const style = {\n // css vars required by children of table\n '--table-header-group-depth': table.getHeaderGroups().length,\n '--table-cell-padding-x': CELL_WIDTH_PADDING[tableMeta.fontSize.size] ?? CELL_WIDTH_PADDING.large,\n '--table-cell-padding-y': heightPadding[tableMeta.fontSize.size] ?? heightPadding.medium,\n ...cssGridStyle,\n };\n\n const stylesheet = [cssGridStylesheet, columnFreezingStylesheet].filter(s => !!s).join('\\n');\n\n return { style, stylesheet };\n}\n\n// we cannot just use a fixed height because our rows need to grow in height (images, edit mode validation etc)\n// TODO: can we get the rem values from tailwind\nconst CELL_HEIGHT_PADDING: Record<TableRowHeight, Record<TableFontSize, string>> = {\n short: { small: '8px', medium: '6px', large: '6px' },\n medium: { small: '12px', medium: '10px', large: '8px' },\n tall: { small: '16px', medium: '14px', large: '12px' },\n 'extra-tall': { small: '22px', medium: '20px', large: '18px' },\n};\n\nconst CELL_WIDTH_PADDING: Record<TableFontSize, string> = {\n small: '8px',\n medium: '12px',\n large: '16px',\n};\n"],"names":["useTableStyleGrid","useTableStyleColumnFreezing"],"mappings":";;;;AAOO,SAAS,cAA+B,SAAiB,OAA0B;AACtF,QAAM,YAAY,MAAM,QAAQ;AAChC,QAAM,EAAE,OAAO,cAAc,YAAY,sBAAsBA,kBAAAA;AAAAA,IAC3D;AAAA,IACA;AAAA,IACA,UAAU,SAAS;AAAA,EAAA;AAEvB,QAAM,EAAE,YAAY,yBAAA,IAA6BC,4BAAAA,4BAA4B,SAAS,KAAK;AAG3F,QAAM,gBAAgB,oBAAoB,UAAU,UAAU,MAAM,KAAK,oBAAoB;AAE7F,QAAM,QAAQ;AAAA;AAAA,IAEV,8BAA8B,MAAM,gBAAA,EAAkB;AAAA,IACtD,0BAA0B,mBAAmB,UAAU,SAAS,IAAI,KAAK,mBAAmB;AAAA,IAC5F,0BAA0B,cAAc,UAAU,SAAS,IAAI,KAAK,cAAc;AAAA,IAClF,GAAG;AAAA,EAAA;AAGP,QAAM,aAAa,CAAC,mBAAmB,wBAAwB,EAAE,OAAO,CAAA,MAAK,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI;AAE3F,SAAO,EAAE,OAAO,WAAA;AACpB;AAIA,MAAM,sBAA6E;AAAA,EAC/E,OAAO,EAAE,OAAO,OAAO,QAAQ,OAAO,OAAO,MAAA;AAAA,EAC7C,QAAQ,EAAE,OAAO,QAAQ,QAAQ,QAAQ,OAAO,MAAA;AAAA,EAChD,MAAM,EAAE,OAAO,QAAQ,QAAQ,QAAQ,OAAO,OAAA;AAAA,EAC9C,cAAc,EAAE,OAAO,QAAQ,QAAQ,QAAQ,OAAO,OAAA;AAC1D;AAEA,MAAM,qBAAoD;AAAA,EACtD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACX;;"}
1
+ {"version":3,"file":"useTableStyle.cjs","sources":["../../../../../src/primitives/Table/Core/features/useTableStyle.tsx"],"sourcesContent":["import type { Table as ReactTable } from '@tanstack/react-table';\n\nimport type { TableFontSize, TableRowHeight } from '../../types';\nimport { getTableMeta } from '../../useTableManager/util/rows';\n\nimport { useTableStyleColumnFreezing } from './useTableStyleColumnFreezing';\nimport { useTableStyleGrid } from './useTableStyleGrid';\n\nexport function useTableStyle<TType = unknown>(tableId: string, table: ReactTable<TType>) {\n const tableMeta = getTableMeta(table);\n const { style: cssGridStyle, stylesheet: cssGridStylesheet } = useTableStyleGrid<TType>(\n tableId,\n table,\n tableMeta.fontSize.size\n );\n const { stylesheet: columnFreezingStylesheet } = useTableStyleColumnFreezing(tableId, table);\n\n // persisted settings can contain out-of-union values, so fall back like the old switch defaults did\n const heightPadding = CELL_HEIGHT_PADDING[tableMeta.rowHeight.height] ?? CELL_HEIGHT_PADDING.medium;\n\n const style = {\n // css vars required by children of table\n '--table-header-group-depth': table.getHeaderGroups().length,\n '--table-cell-padding-x': CELL_WIDTH_PADDING[tableMeta.fontSize.size] ?? CELL_WIDTH_PADDING.large,\n '--table-cell-padding-y': heightPadding[tableMeta.fontSize.size] ?? heightPadding.medium,\n ...cssGridStyle,\n };\n\n const stylesheet = [cssGridStylesheet, columnFreezingStylesheet].filter(s => !!s).join('\\n');\n\n return { style, stylesheet };\n}\n\n// we cannot just use a fixed height because our rows need to grow in height (images, edit mode validation etc)\n// TODO: can we get the rem values from tailwind\nconst CELL_HEIGHT_PADDING: Record<TableRowHeight, Record<TableFontSize, string>> = {\n short: { small: '8px', medium: '6px', large: '6px' },\n medium: { small: '12px', medium: '10px', large: '8px' },\n tall: { small: '16px', medium: '14px', large: '12px' },\n 'extra-tall': { small: '22px', medium: '20px', large: '18px' },\n};\n\nconst CELL_WIDTH_PADDING: Record<TableFontSize, string> = {\n small: '8px',\n medium: '12px',\n large: '16px',\n};\n"],"names":["getTableMeta","useTableStyleGrid","useTableStyleColumnFreezing"],"mappings":";;;;;AAQO,SAAS,cAA+B,SAAiB,OAA0B;AACtF,QAAM,YAAYA,KAAAA,aAAa,KAAK;AACpC,QAAM,EAAE,OAAO,cAAc,YAAY,sBAAsBC,kBAAAA;AAAAA,IAC3D;AAAA,IACA;AAAA,IACA,UAAU,SAAS;AAAA,EAAA;AAEvB,QAAM,EAAE,YAAY,yBAAA,IAA6BC,4BAAAA,4BAA4B,SAAS,KAAK;AAG3F,QAAM,gBAAgB,oBAAoB,UAAU,UAAU,MAAM,KAAK,oBAAoB;AAE7F,QAAM,QAAQ;AAAA;AAAA,IAEV,8BAA8B,MAAM,gBAAA,EAAkB;AAAA,IACtD,0BAA0B,mBAAmB,UAAU,SAAS,IAAI,KAAK,mBAAmB;AAAA,IAC5F,0BAA0B,cAAc,UAAU,SAAS,IAAI,KAAK,cAAc;AAAA,IAClF,GAAG;AAAA,EAAA;AAGP,QAAM,aAAa,CAAC,mBAAmB,wBAAwB,EAAE,OAAO,CAAA,MAAK,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI;AAE3F,SAAO,EAAE,OAAO,WAAA;AACpB;AAIA,MAAM,sBAA6E;AAAA,EAC/E,OAAO,EAAE,OAAO,OAAO,QAAQ,OAAO,OAAO,MAAA;AAAA,EAC7C,QAAQ,EAAE,OAAO,QAAQ,QAAQ,QAAQ,OAAO,MAAA;AAAA,EAChD,MAAM,EAAE,OAAO,QAAQ,QAAQ,QAAQ,OAAO,OAAA;AAAA,EAC9C,cAAc,EAAE,OAAO,QAAQ,QAAQ,QAAQ,OAAO,OAAA;AAC1D;AAEA,MAAM,qBAAoD;AAAA,EACtD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACX;;"}