@toolbox-web/grid 1.24.1 → 1.25.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 (422) hide show
  1. package/all.d.ts +0 -1
  2. package/all.js +2 -2
  3. package/all.js.map +1 -1
  4. package/index.d.ts +0 -1
  5. package/index.js +1 -1
  6. package/index.js.map +1 -1
  7. package/lib/core/constants.d.ts +0 -1
  8. package/lib/core/grid.d.ts +145 -33
  9. package/lib/core/internal/aggregators.d.ts +0 -1
  10. package/lib/core/internal/aria.d.ts +8 -1
  11. package/lib/core/internal/columns.d.ts +3 -4
  12. package/lib/core/internal/config-manager.d.ts +2 -54
  13. package/lib/core/internal/dom-builder.d.ts +0 -1
  14. package/lib/core/internal/event-delegation.d.ts +3 -4
  15. package/lib/core/internal/feature-hook.d.ts +0 -1
  16. package/lib/core/internal/focus-manager.d.ts +49 -0
  17. package/lib/core/internal/header.d.ts +2 -3
  18. package/lib/core/internal/idle-scheduler.d.ts +0 -1
  19. package/lib/core/internal/inference.d.ts +0 -1
  20. package/lib/core/internal/keyboard.d.ts +3 -4
  21. package/lib/core/internal/loading.d.ts +0 -1
  22. package/lib/core/internal/render-scheduler.d.ts +3 -66
  23. package/lib/core/internal/resize.d.ts +2 -3
  24. package/lib/core/internal/row-animation.d.ts +0 -1
  25. package/lib/core/internal/row-manager.d.ts +31 -0
  26. package/lib/core/internal/rows.d.ts +4 -5
  27. package/lib/core/internal/sanitize.d.ts +0 -1
  28. package/lib/core/internal/shell.d.ts +7 -25
  29. package/lib/core/internal/sorting.d.ts +3 -4
  30. package/lib/core/internal/style-injector.d.ts +0 -1
  31. package/lib/core/internal/touch-scroll.d.ts +31 -12
  32. package/lib/core/internal/utils.d.ts +8 -1
  33. package/lib/core/internal/validate-config.d.ts +4 -5
  34. package/lib/core/internal/virtualization-manager.d.ts +48 -0
  35. package/lib/core/internal/virtualization.d.ts +0 -1
  36. package/lib/core/plugin/base-plugin.d.ts +2 -3
  37. package/lib/core/plugin/expander-column.d.ts +0 -1
  38. package/lib/core/plugin/index.d.ts +0 -1
  39. package/lib/core/plugin/plugin-manager.d.ts +2 -1
  40. package/lib/core/plugin/types.d.ts +7 -2
  41. package/lib/core/styles/index.d.ts +0 -1
  42. package/lib/core/types.d.ts +364 -54
  43. package/lib/features/clipboard.d.ts +0 -1
  44. package/lib/features/column-virtualization.d.ts +0 -1
  45. package/lib/features/context-menu.d.ts +0 -1
  46. package/lib/features/editing.d.ts +0 -1
  47. package/lib/features/export.d.ts +0 -1
  48. package/lib/features/filtering.d.ts +0 -1
  49. package/lib/features/grouping-columns.d.ts +0 -1
  50. package/lib/features/grouping-rows.d.ts +0 -1
  51. package/lib/features/master-detail.d.ts +0 -1
  52. package/lib/features/multi-sort.d.ts +1 -2
  53. package/lib/features/multi-sort.js.map +1 -1
  54. package/lib/features/pinned-columns.d.ts +0 -1
  55. package/lib/features/pinned-rows.d.ts +0 -1
  56. package/lib/features/pivot.d.ts +0 -1
  57. package/lib/features/print.d.ts +0 -1
  58. package/lib/features/registry.d.ts +0 -1
  59. package/lib/features/reorder-columns.d.ts +1 -2
  60. package/lib/features/reorder-columns.js.map +1 -1
  61. package/lib/features/reorder-rows.d.ts +1 -2
  62. package/lib/features/reorder-rows.js.map +1 -1
  63. package/lib/features/responsive.d.ts +0 -1
  64. package/lib/features/selection.d.ts +0 -1
  65. package/lib/features/server-side.d.ts +0 -1
  66. package/lib/features/tree.d.ts +0 -1
  67. package/lib/features/undo-redo.d.ts +0 -1
  68. package/lib/features/visibility.d.ts +0 -1
  69. package/lib/plugins/clipboard/ClipboardPlugin.d.ts +0 -1
  70. package/lib/plugins/clipboard/copy.d.ts +0 -1
  71. package/lib/plugins/clipboard/index.d.ts +0 -1
  72. package/lib/plugins/clipboard/index.js +1 -1
  73. package/lib/plugins/clipboard/index.js.map +1 -1
  74. package/lib/plugins/clipboard/paste.d.ts +0 -1
  75. package/lib/plugins/clipboard/types.d.ts +6 -1
  76. package/lib/plugins/column-virtualization/ColumnVirtualizationPlugin.d.ts +0 -1
  77. package/lib/plugins/column-virtualization/column-virtualization.d.ts +0 -1
  78. package/lib/plugins/column-virtualization/index.d.ts +0 -1
  79. package/lib/plugins/column-virtualization/index.js +1 -1
  80. package/lib/plugins/column-virtualization/index.js.map +1 -1
  81. package/lib/plugins/column-virtualization/types.d.ts +0 -1
  82. package/lib/plugins/context-menu/ContextMenuPlugin.d.ts +16 -1
  83. package/lib/plugins/context-menu/index.d.ts +1 -2
  84. package/lib/plugins/context-menu/index.js +1 -1
  85. package/lib/plugins/context-menu/index.js.map +1 -1
  86. package/lib/plugins/context-menu/menu.d.ts +14 -1
  87. package/lib/plugins/context-menu/types.d.ts +13 -3
  88. package/lib/plugins/editing/EditingPlugin.d.ts +4 -6
  89. package/lib/plugins/editing/editors.d.ts +0 -1
  90. package/lib/plugins/editing/index.d.ts +0 -1
  91. package/lib/plugins/editing/index.js +1 -1
  92. package/lib/plugins/editing/index.js.map +1 -1
  93. package/lib/plugins/editing/internal/cell-validation.d.ts +0 -1
  94. package/lib/plugins/editing/internal/dirty-tracking-manager.d.ts +0 -1
  95. package/lib/plugins/editing/internal/dirty-tracking.d.ts +2 -2
  96. package/lib/plugins/editing/internal/editor-injection.d.ts +3 -4
  97. package/lib/plugins/editing/internal/helpers.d.ts +0 -1
  98. package/lib/plugins/editing/types.d.ts +15 -14
  99. package/lib/plugins/export/ExportPlugin.d.ts +0 -1
  100. package/lib/plugins/export/csv.d.ts +0 -1
  101. package/lib/plugins/export/excel.d.ts +0 -1
  102. package/lib/plugins/export/index.d.ts +0 -1
  103. package/lib/plugins/export/index.js +1 -1
  104. package/lib/plugins/export/index.js.map +1 -1
  105. package/lib/plugins/export/types.d.ts +4 -1
  106. package/lib/plugins/filtering/FilteringPlugin.d.ts +0 -1
  107. package/lib/plugins/filtering/filter-model.d.ts +0 -1
  108. package/lib/plugins/filtering/filter-panel-date.d.ts +0 -1
  109. package/lib/plugins/filtering/filter-panel-default.d.ts +0 -1
  110. package/lib/plugins/filtering/filter-panel-number.d.ts +0 -1
  111. package/lib/plugins/filtering/index.d.ts +0 -1
  112. package/lib/plugins/filtering/index.js +1 -1
  113. package/lib/plugins/filtering/index.js.map +1 -1
  114. package/lib/plugins/filtering/types.d.ts +4 -1
  115. package/lib/plugins/grouping-columns/GroupingColumnsPlugin.d.ts +0 -1
  116. package/lib/plugins/grouping-columns/grouping-columns.d.ts +2 -3
  117. package/lib/plugins/grouping-columns/index.d.ts +1 -2
  118. package/lib/plugins/grouping-columns/index.js +1 -1
  119. package/lib/plugins/grouping-columns/index.js.map +1 -1
  120. package/lib/plugins/grouping-columns/types.d.ts +33 -7
  121. package/lib/plugins/grouping-rows/GroupingRowsPlugin.d.ts +0 -1
  122. package/lib/plugins/grouping-rows/grouping-rows.d.ts +0 -1
  123. package/lib/plugins/grouping-rows/index.d.ts +0 -1
  124. package/lib/plugins/grouping-rows/index.js +1 -1
  125. package/lib/plugins/grouping-rows/index.js.map +1 -1
  126. package/lib/plugins/grouping-rows/types.d.ts +4 -1
  127. package/lib/plugins/master-detail/MasterDetailPlugin.d.ts +0 -1
  128. package/lib/plugins/master-detail/index.d.ts +0 -1
  129. package/lib/plugins/master-detail/index.js +1 -1
  130. package/lib/plugins/master-detail/index.js.map +1 -1
  131. package/lib/plugins/master-detail/master-detail.d.ts +0 -1
  132. package/lib/plugins/master-detail/types.d.ts +4 -1
  133. package/lib/plugins/multi-sort/MultiSortPlugin.d.ts +3 -3
  134. package/lib/plugins/multi-sort/index.d.ts +1 -2
  135. package/lib/plugins/multi-sort/index.js +1 -1
  136. package/lib/plugins/multi-sort/index.js.map +1 -1
  137. package/lib/plugins/multi-sort/multi-sort.d.ts +0 -1
  138. package/lib/plugins/multi-sort/types.d.ts +5 -1
  139. package/lib/plugins/pinned-columns/PinnedColumnsPlugin.d.ts +0 -1
  140. package/lib/plugins/pinned-columns/index.d.ts +0 -1
  141. package/lib/plugins/pinned-columns/index.js +1 -1
  142. package/lib/plugins/pinned-columns/index.js.map +1 -1
  143. package/lib/plugins/pinned-columns/pinned-columns.d.ts +0 -1
  144. package/lib/plugins/pinned-columns/types.d.ts +0 -1
  145. package/lib/plugins/pinned-rows/PinnedRowsPlugin.d.ts +0 -1
  146. package/lib/plugins/pinned-rows/index.d.ts +0 -1
  147. package/lib/plugins/pinned-rows/index.js +1 -1
  148. package/lib/plugins/pinned-rows/index.js.map +1 -1
  149. package/lib/plugins/pinned-rows/pinned-rows.d.ts +0 -1
  150. package/lib/plugins/pinned-rows/types.d.ts +0 -1
  151. package/lib/plugins/pivot/PivotPlugin.d.ts +0 -1
  152. package/lib/plugins/pivot/index.d.ts +0 -1
  153. package/lib/plugins/pivot/index.js +1 -1
  154. package/lib/plugins/pivot/index.js.map +1 -1
  155. package/lib/plugins/pivot/pivot-engine.d.ts +0 -1
  156. package/lib/plugins/pivot/pivot-model.d.ts +0 -1
  157. package/lib/plugins/pivot/pivot-panel.d.ts +0 -1
  158. package/lib/plugins/pivot/pivot-rows.d.ts +0 -1
  159. package/lib/plugins/pivot/types.d.ts +0 -1
  160. package/lib/plugins/print/PrintPlugin.d.ts +0 -1
  161. package/lib/plugins/print/index.d.ts +0 -1
  162. package/lib/plugins/print/index.js +1 -1
  163. package/lib/plugins/print/index.js.map +1 -1
  164. package/lib/plugins/print/print-isolated.d.ts +0 -1
  165. package/lib/plugins/print/types.d.ts +6 -1
  166. package/lib/plugins/reorder-columns/ReorderPlugin.d.ts +5 -5
  167. package/lib/plugins/reorder-columns/column-drag.d.ts +3 -2
  168. package/lib/plugins/reorder-columns/index.d.ts +0 -1
  169. package/lib/plugins/reorder-columns/index.js +1 -1
  170. package/lib/plugins/reorder-columns/index.js.map +1 -1
  171. package/lib/plugins/reorder-columns/types.d.ts +4 -1
  172. package/lib/plugins/reorder-rows/RowReorderPlugin.d.ts +3 -3
  173. package/lib/plugins/reorder-rows/index.d.ts +0 -1
  174. package/lib/plugins/reorder-rows/index.js +1 -1
  175. package/lib/plugins/reorder-rows/index.js.map +1 -1
  176. package/lib/plugins/reorder-rows/types.d.ts +4 -1
  177. package/lib/plugins/responsive/ResponsivePlugin.d.ts +0 -1
  178. package/lib/plugins/responsive/index.d.ts +0 -1
  179. package/lib/plugins/responsive/index.js +1 -1
  180. package/lib/plugins/responsive/index.js.map +1 -1
  181. package/lib/plugins/responsive/types.d.ts +4 -1
  182. package/lib/plugins/selection/SelectionPlugin.d.ts +1 -3
  183. package/lib/plugins/selection/index.d.ts +0 -1
  184. package/lib/plugins/selection/index.js +1 -1
  185. package/lib/plugins/selection/index.js.map +1 -1
  186. package/lib/plugins/selection/range-selection.d.ts +0 -1
  187. package/lib/plugins/selection/row-selection.d.ts +0 -1
  188. package/lib/plugins/selection/types.d.ts +4 -1
  189. package/lib/plugins/server-side/ServerSidePlugin.d.ts +0 -1
  190. package/lib/plugins/server-side/cache.d.ts +0 -1
  191. package/lib/plugins/server-side/datasource.d.ts +0 -1
  192. package/lib/plugins/server-side/index.d.ts +0 -1
  193. package/lib/plugins/server-side/index.js +1 -1
  194. package/lib/plugins/server-side/index.js.map +1 -1
  195. package/lib/plugins/server-side/types.d.ts +0 -1
  196. package/lib/plugins/shared/data-collection.d.ts +0 -1
  197. package/lib/plugins/tree/TreePlugin.d.ts +0 -1
  198. package/lib/plugins/tree/index.d.ts +0 -1
  199. package/lib/plugins/tree/index.js +1 -1
  200. package/lib/plugins/tree/index.js.map +1 -1
  201. package/lib/plugins/tree/tree-data.d.ts +0 -1
  202. package/lib/plugins/tree/tree-detect.d.ts +0 -1
  203. package/lib/plugins/tree/types.d.ts +4 -1
  204. package/lib/plugins/undo-redo/UndoRedoPlugin.d.ts +1 -2
  205. package/lib/plugins/undo-redo/history.d.ts +0 -1
  206. package/lib/plugins/undo-redo/index.d.ts +0 -1
  207. package/lib/plugins/undo-redo/index.js +1 -1
  208. package/lib/plugins/undo-redo/index.js.map +1 -1
  209. package/lib/plugins/undo-redo/types.d.ts +6 -1
  210. package/lib/plugins/visibility/VisibilityPlugin.d.ts +0 -1
  211. package/lib/plugins/visibility/index.d.ts +0 -1
  212. package/lib/plugins/visibility/index.js +1 -1
  213. package/lib/plugins/visibility/index.js.map +1 -1
  214. package/lib/plugins/visibility/types.d.ts +0 -1
  215. package/lib/plugins/visibility/visibility.d.ts +0 -1
  216. package/package.json +1 -1
  217. package/public.d.ts +31 -12
  218. package/umd/grid.all.umd.js +1 -1
  219. package/umd/grid.all.umd.js.map +1 -1
  220. package/umd/grid.umd.js +1 -1
  221. package/umd/grid.umd.js.map +1 -1
  222. package/umd/plugins/clipboard.umd.js +1 -1
  223. package/umd/plugins/clipboard.umd.js.map +1 -1
  224. package/umd/plugins/column-virtualization.umd.js +1 -1
  225. package/umd/plugins/column-virtualization.umd.js.map +1 -1
  226. package/umd/plugins/context-menu.umd.js +1 -1
  227. package/umd/plugins/context-menu.umd.js.map +1 -1
  228. package/umd/plugins/editing.umd.js +1 -1
  229. package/umd/plugins/editing.umd.js.map +1 -1
  230. package/umd/plugins/filtering.umd.js +1 -1
  231. package/umd/plugins/filtering.umd.js.map +1 -1
  232. package/umd/plugins/grouping-columns.umd.js +1 -1
  233. package/umd/plugins/grouping-columns.umd.js.map +1 -1
  234. package/umd/plugins/master-detail.umd.js +1 -1
  235. package/umd/plugins/master-detail.umd.js.map +1 -1
  236. package/umd/plugins/multi-sort.umd.js +1 -1
  237. package/umd/plugins/multi-sort.umd.js.map +1 -1
  238. package/umd/plugins/pinned-columns.umd.js +1 -1
  239. package/umd/plugins/pinned-columns.umd.js.map +1 -1
  240. package/umd/plugins/pinned-rows.umd.js +1 -1
  241. package/umd/plugins/pinned-rows.umd.js.map +1 -1
  242. package/umd/plugins/print.umd.js +1 -1
  243. package/umd/plugins/print.umd.js.map +1 -1
  244. package/umd/plugins/reorder-columns.umd.js +1 -1
  245. package/umd/plugins/reorder-columns.umd.js.map +1 -1
  246. package/umd/plugins/reorder-rows.umd.js +1 -1
  247. package/umd/plugins/reorder-rows.umd.js.map +1 -1
  248. package/umd/plugins/responsive.umd.js +1 -1
  249. package/umd/plugins/responsive.umd.js.map +1 -1
  250. package/umd/plugins/selection.umd.js +1 -1
  251. package/umd/plugins/selection.umd.js.map +1 -1
  252. package/umd/plugins/server-side.umd.js.map +1 -1
  253. package/umd/plugins/tree.umd.js +1 -1
  254. package/umd/plugins/tree.umd.js.map +1 -1
  255. package/umd/plugins/undo-redo.umd.js.map +1 -1
  256. package/umd/plugins/visibility.umd.js +1 -1
  257. package/umd/plugins/visibility.umd.js.map +1 -1
  258. package/all.d.ts.map +0 -1
  259. package/index.d.ts.map +0 -1
  260. package/lib/core/constants.d.ts.map +0 -1
  261. package/lib/core/grid.d.ts.map +0 -1
  262. package/lib/core/internal/aggregators.d.ts.map +0 -1
  263. package/lib/core/internal/aria.d.ts.map +0 -1
  264. package/lib/core/internal/columns.d.ts.map +0 -1
  265. package/lib/core/internal/config-manager.d.ts.map +0 -1
  266. package/lib/core/internal/dom-builder.d.ts.map +0 -1
  267. package/lib/core/internal/event-delegation.d.ts.map +0 -1
  268. package/lib/core/internal/feature-hook.d.ts.map +0 -1
  269. package/lib/core/internal/header.d.ts.map +0 -1
  270. package/lib/core/internal/idle-scheduler.d.ts.map +0 -1
  271. package/lib/core/internal/inference.d.ts.map +0 -1
  272. package/lib/core/internal/keyboard.d.ts.map +0 -1
  273. package/lib/core/internal/loading.d.ts.map +0 -1
  274. package/lib/core/internal/render-scheduler.d.ts.map +0 -1
  275. package/lib/core/internal/resize.d.ts.map +0 -1
  276. package/lib/core/internal/row-animation.d.ts.map +0 -1
  277. package/lib/core/internal/rows.d.ts.map +0 -1
  278. package/lib/core/internal/sanitize.d.ts.map +0 -1
  279. package/lib/core/internal/shell.d.ts.map +0 -1
  280. package/lib/core/internal/sorting.d.ts.map +0 -1
  281. package/lib/core/internal/style-injector.d.ts.map +0 -1
  282. package/lib/core/internal/touch-scroll.d.ts.map +0 -1
  283. package/lib/core/internal/utils.d.ts.map +0 -1
  284. package/lib/core/internal/validate-config.d.ts.map +0 -1
  285. package/lib/core/internal/virtualization.d.ts.map +0 -1
  286. package/lib/core/plugin/base-plugin.d.ts.map +0 -1
  287. package/lib/core/plugin/expander-column.d.ts.map +0 -1
  288. package/lib/core/plugin/index.d.ts.map +0 -1
  289. package/lib/core/plugin/plugin-manager.d.ts.map +0 -1
  290. package/lib/core/plugin/types.d.ts.map +0 -1
  291. package/lib/core/styles/index.d.ts.map +0 -1
  292. package/lib/core/types.d.ts.map +0 -1
  293. package/lib/features/clipboard.d.ts.map +0 -1
  294. package/lib/features/column-virtualization.d.ts.map +0 -1
  295. package/lib/features/context-menu.d.ts.map +0 -1
  296. package/lib/features/editing.d.ts.map +0 -1
  297. package/lib/features/export.d.ts.map +0 -1
  298. package/lib/features/filtering.d.ts.map +0 -1
  299. package/lib/features/grouping-columns.d.ts.map +0 -1
  300. package/lib/features/grouping-rows.d.ts.map +0 -1
  301. package/lib/features/magic-string.es-CkyDP9Ir.mjs.map +0 -1
  302. package/lib/features/master-detail.d.ts.map +0 -1
  303. package/lib/features/multi-sort.d.ts.map +0 -1
  304. package/lib/features/pinned-columns.d.ts.map +0 -1
  305. package/lib/features/pinned-rows.d.ts.map +0 -1
  306. package/lib/features/pivot.d.ts.map +0 -1
  307. package/lib/features/print.d.ts.map +0 -1
  308. package/lib/features/registry.d.ts.map +0 -1
  309. package/lib/features/registry.spec.js +0 -5
  310. package/lib/features/registry.spec.js.map +0 -1
  311. package/lib/features/reorder-columns.d.ts.map +0 -1
  312. package/lib/features/reorder-rows.d.ts.map +0 -1
  313. package/lib/features/responsive.d.ts.map +0 -1
  314. package/lib/features/selection.d.ts.map +0 -1
  315. package/lib/features/server-side.d.ts.map +0 -1
  316. package/lib/features/tree.d.ts.map +0 -1
  317. package/lib/features/undo-redo.d.ts.map +0 -1
  318. package/lib/features/visibility.d.ts.map +0 -1
  319. package/lib/plugins/clipboard/ClipboardPlugin.d.ts.map +0 -1
  320. package/lib/plugins/clipboard/copy.d.ts.map +0 -1
  321. package/lib/plugins/clipboard/index.d.ts.map +0 -1
  322. package/lib/plugins/clipboard/paste.d.ts.map +0 -1
  323. package/lib/plugins/clipboard/types.d.ts.map +0 -1
  324. package/lib/plugins/column-virtualization/ColumnVirtualizationPlugin.d.ts.map +0 -1
  325. package/lib/plugins/column-virtualization/column-virtualization.d.ts.map +0 -1
  326. package/lib/plugins/column-virtualization/index.d.ts.map +0 -1
  327. package/lib/plugins/column-virtualization/types.d.ts.map +0 -1
  328. package/lib/plugins/context-menu/ContextMenuPlugin.d.ts.map +0 -1
  329. package/lib/plugins/context-menu/index.d.ts.map +0 -1
  330. package/lib/plugins/context-menu/menu.d.ts.map +0 -1
  331. package/lib/plugins/context-menu/types.d.ts.map +0 -1
  332. package/lib/plugins/editing/EditingPlugin.d.ts.map +0 -1
  333. package/lib/plugins/editing/editors.d.ts.map +0 -1
  334. package/lib/plugins/editing/index.d.ts.map +0 -1
  335. package/lib/plugins/editing/internal/cell-validation.d.ts.map +0 -1
  336. package/lib/plugins/editing/internal/dirty-tracking-manager.d.ts.map +0 -1
  337. package/lib/plugins/editing/internal/dirty-tracking.d.ts.map +0 -1
  338. package/lib/plugins/editing/internal/editor-injection.d.ts.map +0 -1
  339. package/lib/plugins/editing/internal/helpers.d.ts.map +0 -1
  340. package/lib/plugins/editing/types.d.ts.map +0 -1
  341. package/lib/plugins/export/ExportPlugin.d.ts.map +0 -1
  342. package/lib/plugins/export/csv.d.ts.map +0 -1
  343. package/lib/plugins/export/excel.d.ts.map +0 -1
  344. package/lib/plugins/export/index.d.ts.map +0 -1
  345. package/lib/plugins/export/types.d.ts.map +0 -1
  346. package/lib/plugins/filtering/FilteringPlugin.d.ts.map +0 -1
  347. package/lib/plugins/filtering/filter-model.d.ts.map +0 -1
  348. package/lib/plugins/filtering/filter-panel-date.d.ts.map +0 -1
  349. package/lib/plugins/filtering/filter-panel-default.d.ts.map +0 -1
  350. package/lib/plugins/filtering/filter-panel-number.d.ts.map +0 -1
  351. package/lib/plugins/filtering/index.d.ts.map +0 -1
  352. package/lib/plugins/filtering/types.d.ts.map +0 -1
  353. package/lib/plugins/grouping-columns/GroupingColumnsPlugin.d.ts.map +0 -1
  354. package/lib/plugins/grouping-columns/grouping-columns.d.ts.map +0 -1
  355. package/lib/plugins/grouping-columns/index.d.ts.map +0 -1
  356. package/lib/plugins/grouping-columns/types.d.ts.map +0 -1
  357. package/lib/plugins/grouping-rows/GroupingRowsPlugin.d.ts.map +0 -1
  358. package/lib/plugins/grouping-rows/grouping-rows.d.ts.map +0 -1
  359. package/lib/plugins/grouping-rows/index.d.ts.map +0 -1
  360. package/lib/plugins/grouping-rows/types.d.ts.map +0 -1
  361. package/lib/plugins/master-detail/MasterDetailPlugin.d.ts.map +0 -1
  362. package/lib/plugins/master-detail/index.d.ts.map +0 -1
  363. package/lib/plugins/master-detail/master-detail.d.ts.map +0 -1
  364. package/lib/plugins/master-detail/types.d.ts.map +0 -1
  365. package/lib/plugins/multi-sort/MultiSortPlugin.d.ts.map +0 -1
  366. package/lib/plugins/multi-sort/index.d.ts.map +0 -1
  367. package/lib/plugins/multi-sort/multi-sort.d.ts.map +0 -1
  368. package/lib/plugins/multi-sort/types.d.ts.map +0 -1
  369. package/lib/plugins/pinned-columns/PinnedColumnsPlugin.d.ts.map +0 -1
  370. package/lib/plugins/pinned-columns/index.d.ts.map +0 -1
  371. package/lib/plugins/pinned-columns/pinned-columns.d.ts.map +0 -1
  372. package/lib/plugins/pinned-columns/types.d.ts.map +0 -1
  373. package/lib/plugins/pinned-rows/PinnedRowsPlugin.d.ts.map +0 -1
  374. package/lib/plugins/pinned-rows/index.d.ts.map +0 -1
  375. package/lib/plugins/pinned-rows/pinned-rows.d.ts.map +0 -1
  376. package/lib/plugins/pinned-rows/types.d.ts.map +0 -1
  377. package/lib/plugins/pivot/PivotPlugin.d.ts.map +0 -1
  378. package/lib/plugins/pivot/index.d.ts.map +0 -1
  379. package/lib/plugins/pivot/pivot-engine.d.ts.map +0 -1
  380. package/lib/plugins/pivot/pivot-model.d.ts.map +0 -1
  381. package/lib/plugins/pivot/pivot-panel.d.ts.map +0 -1
  382. package/lib/plugins/pivot/pivot-rows.d.ts.map +0 -1
  383. package/lib/plugins/pivot/types.d.ts.map +0 -1
  384. package/lib/plugins/print/PrintPlugin.d.ts.map +0 -1
  385. package/lib/plugins/print/index.d.ts.map +0 -1
  386. package/lib/plugins/print/print-isolated.d.ts.map +0 -1
  387. package/lib/plugins/print/types.d.ts.map +0 -1
  388. package/lib/plugins/reorder-columns/ReorderPlugin.d.ts.map +0 -1
  389. package/lib/plugins/reorder-columns/column-drag.d.ts.map +0 -1
  390. package/lib/plugins/reorder-columns/index.d.ts.map +0 -1
  391. package/lib/plugins/reorder-columns/types.d.ts.map +0 -1
  392. package/lib/plugins/reorder-rows/RowReorderPlugin.d.ts.map +0 -1
  393. package/lib/plugins/reorder-rows/index.d.ts.map +0 -1
  394. package/lib/plugins/reorder-rows/types.d.ts.map +0 -1
  395. package/lib/plugins/responsive/ResponsivePlugin.d.ts.map +0 -1
  396. package/lib/plugins/responsive/index.d.ts.map +0 -1
  397. package/lib/plugins/responsive/types.d.ts.map +0 -1
  398. package/lib/plugins/selection/SelectionPlugin.d.ts.map +0 -1
  399. package/lib/plugins/selection/index.d.ts.map +0 -1
  400. package/lib/plugins/selection/range-selection.d.ts.map +0 -1
  401. package/lib/plugins/selection/row-selection.d.ts.map +0 -1
  402. package/lib/plugins/selection/types.d.ts.map +0 -1
  403. package/lib/plugins/server-side/ServerSidePlugin.d.ts.map +0 -1
  404. package/lib/plugins/server-side/cache.d.ts.map +0 -1
  405. package/lib/plugins/server-side/datasource.d.ts.map +0 -1
  406. package/lib/plugins/server-side/index.d.ts.map +0 -1
  407. package/lib/plugins/server-side/types.d.ts.map +0 -1
  408. package/lib/plugins/shared/data-collection.d.ts.map +0 -1
  409. package/lib/plugins/tree/TreePlugin.d.ts.map +0 -1
  410. package/lib/plugins/tree/index.d.ts.map +0 -1
  411. package/lib/plugins/tree/tree-data.d.ts.map +0 -1
  412. package/lib/plugins/tree/tree-detect.d.ts.map +0 -1
  413. package/lib/plugins/tree/types.d.ts.map +0 -1
  414. package/lib/plugins/undo-redo/UndoRedoPlugin.d.ts.map +0 -1
  415. package/lib/plugins/undo-redo/history.d.ts.map +0 -1
  416. package/lib/plugins/undo-redo/index.d.ts.map +0 -1
  417. package/lib/plugins/undo-redo/types.d.ts.map +0 -1
  418. package/lib/plugins/visibility/VisibilityPlugin.d.ts.map +0 -1
  419. package/lib/plugins/visibility/index.d.ts.map +0 -1
  420. package/lib/plugins/visibility/types.d.ts.map +0 -1
  421. package/lib/plugins/visibility/visibility.d.ts.map +0 -1
  422. package/public.d.ts.map +0 -1
@@ -119,4 +119,3 @@ export declare const GridCSSVars: {
119
119
  export type GridClassName = (typeof GridClasses)[keyof typeof GridClasses];
120
120
  export type GridDataAttr = (typeof GridDataAttrs)[keyof typeof GridDataAttrs];
121
121
  export type GridCSSVar = (typeof GridCSSVars)[keyof typeof GridCSSVars];
122
- //# sourceMappingURL=constants.d.ts.map
@@ -1,7 +1,8 @@
1
+ import { ShellState } from './internal/shell';
1
2
  import { AfterCellRenderContext, AfterRowRenderContext, CellMouseEvent } from './plugin';
2
3
  import { BaseGridPlugin, PluginQuery } from './plugin/base-plugin';
3
4
  import { PluginManager } from './plugin/plugin-manager';
4
- import { ColumnConfig, ColumnConfigMap, ColumnInternal, DataGridEventMap, FitMode, FrameworkAdapter, GridColumnState, GridConfig, HeaderContentDefinition, InternalGrid, PluginNameMap, ResizeController, RowAnimationType, ScrollToRowOptions, ToolbarContentDefinition, ToolPanelDefinition, UpdateSource, VirtualState } from './types';
5
+ import { ColumnConfig, ColumnConfigMap, ColumnInternal, DataGridEventMap, FitMode, FrameworkAdapter, GridColumnState, GridConfig, HeaderContentDefinition, IconValue, InternalGrid, PluginNameMap, ResizeController, RowAnimationType, RowElementInternal, ScrollToRowOptions, ToolbarContentDefinition, ToolPanelDefinition, UpdateSource, VirtualState } from './types';
5
6
  export declare class DataGridElement<T = any> extends HTMLElement implements InternalGrid<T> {
6
7
  #private;
7
8
  static readonly tagName = "tbw-grid";
@@ -39,6 +40,7 @@ export declare class DataGridElement<T = any> extends HTMLElement implements Int
39
40
  * @category Framework Adapters
40
41
  */
41
42
  static clearAdapters(): void;
43
+ /** @internal Web component lifecycle - not part of public API */
42
44
  static get observedAttributes(): string[];
43
45
  /**
44
46
  * Exposes plugin manager for event bus operations (subscribe/unsubscribe/emit).
@@ -52,9 +54,10 @@ export declare class DataGridElement<T = any> extends HTMLElement implements Int
52
54
  get _visibleColumns(): ColumnInternal<T>[];
53
55
  _headerRowEl: HTMLElement;
54
56
  _bodyEl: HTMLElement;
55
- _rowPool: HTMLElement[];
57
+ _rowPool: RowElementInternal[];
56
58
  _resizeController: ResizeController;
57
- _virtualization: VirtualState;
59
+ get _virtualization(): VirtualState;
60
+ set _virtualization(value: VirtualState);
58
61
  _focusRow: number;
59
62
  _focusCol: number;
60
63
  /** Flag to restore focus styling after next render. @internal */
@@ -119,6 +122,8 @@ export declare class DataGridElement<T = any> extends HTMLElement implements Int
119
122
  * ```
120
123
  */
121
124
  get sourceRows(): T[];
125
+ /** @internal Used by RowManager for insertRow/removeRow mutations. */
126
+ set sourceRows(rows: T[]);
122
127
  /**
123
128
  * Get or set the column configurations.
124
129
  *
@@ -374,17 +379,30 @@ export declare class DataGridElement<T = any> extends HTMLElement implements Int
374
379
  * This override provides type-safe event handling for DataGrid-specific events.
375
380
  * The event detail is automatically typed based on the event name.
376
381
  *
382
+ * **Prefer {@link on | grid.on()}** for most use cases — it auto-unwraps the
383
+ * detail payload and returns an unsubscribe function for easy cleanup.
384
+ *
385
+ * Use `addEventListener` when you need standard DOM options like `once`,
386
+ * `capture`, `passive`, or `signal` (AbortController).
387
+ *
377
388
  * @example
378
389
  * ```typescript
379
- * // Type-safe: detail is CellClickDetail<Employee>
380
- * grid.addEventListener('cell-click', (e) => {
381
- * console.log(e.detail.field, e.detail.value);
390
+ * // Recommended: use grid.on() instead
391
+ * const off = grid.on('cell-click', (detail) => {
392
+ * console.log(detail.field, detail.value);
382
393
  * });
383
394
  *
384
- * // Works with editing events when EditingPlugin is imported
385
- * grid.addEventListener('cell-commit', (e) => {
386
- * console.log(e.detail.oldValue, '→', e.detail.value);
387
- * });
395
+ * // addEventListener is useful when you need DOM listener options
396
+ * grid.addEventListener('cell-click', (e) => {
397
+ * console.log(e.detail.field, e.detail.value);
398
+ * }, { once: true });
399
+ *
400
+ * // Or with AbortController for batch cleanup
401
+ * const controller = new AbortController();
402
+ * grid.addEventListener('sort-change', (e) => {
403
+ * fetchData({ sortBy: e.detail.field });
404
+ * }, { signal: controller.signal });
405
+ * controller.abort(); // removes all listeners tied to this signal
388
406
  * ```
389
407
  *
390
408
  * @category Events
@@ -399,26 +417,123 @@ export declare class DataGridElement<T = any> extends HTMLElement implements Int
399
417
  removeEventListener<K extends keyof DataGridEventMap<T>>(type: K, listener: (this: DataGridElement<T>, ev: CustomEvent<DataGridEventMap<T>[K]>) => void, options?: boolean | EventListenerOptions): void;
400
418
  removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
401
419
  /**
402
- * Subscribe to a typed grid event with automatic detail unwrapping.
403
- * Returns an unsubscribe function for easy cleanup.
420
+ * Subscribe to a typed grid event. **Recommended** over `addEventListener`.
421
+ *
422
+ * Returns an unsubscribe function — call it to remove the listener.
423
+ * The listener receives the event **detail** as its first argument
424
+ * (no need to dig into `e.detail`), and the raw `CustomEvent` as
425
+ * the second argument when you need `preventDefault()` or `stopPropagation()`.
404
426
  *
405
- * The listener receives the event detail as the first argument and the
406
- * raw `CustomEvent` as the second (useful for `preventDefault()`,
407
- * `stopPropagation()`, etc.).
427
+ * @remarks
428
+ * Advantages over `addEventListener`:
429
+ * - Auto-unwraps `event.detail` — your callback receives the payload directly
430
+ * - Returns an unsubscribe function — no need to keep a reference to the handler
431
+ * - Fully typed — event name → detail type is inferred automatically
432
+ *
433
+ * Use `addEventListener` instead when you need DOM listener options
434
+ * like `once`, `capture`, `passive`, or `signal` (AbortController).
408
435
  *
409
436
  * @example
410
437
  * ```typescript
411
- * const off = grid.on('cell-click', (detail) => {
412
- * console.log(detail.row, detail.field);
438
+ * // Basic usage detail is auto-unwrapped
439
+ * const off = grid.on('cell-click', ({ row, field, value }) => {
440
+ * console.log(`Clicked ${field} = ${value}`);
413
441
  * });
414
442
  *
415
- * // Later: clean up
443
+ * // Clean up when done
416
444
  * off();
417
445
  * ```
418
446
  *
447
+ * @example
448
+ * ```typescript
449
+ * // Access the raw event for preventDefault/stopPropagation
450
+ * grid.on('cell-activate', (detail, event) => {
451
+ * if (detail.field === 'notes') {
452
+ * event.preventDefault(); // suppress default editing
453
+ * openRichTextEditor(detail.row, detail.cellEl);
454
+ * }
455
+ * });
456
+ * ```
457
+ *
458
+ * @example
459
+ * ```typescript
460
+ * // Multiple subscriptions with easy teardown
461
+ * const unsubs = [
462
+ * grid.on('sort-change', ({ field, direction }) => {
463
+ * console.log(`Sorted by ${field} ${direction === 1 ? 'ASC' : 'DESC'}`);
464
+ * }),
465
+ * grid.on('column-resize', ({ field, width }) => {
466
+ * saveColumnWidth(field, width);
467
+ * }),
468
+ * grid.on('data-change', ({ rowCount }) => {
469
+ * statusBar.textContent = `${rowCount} rows`;
470
+ * }),
471
+ * ];
472
+ *
473
+ * // Teardown all at once
474
+ * unsubs.forEach((off) => off());
475
+ * ```
476
+ *
419
477
  * @category Events
420
478
  */
421
479
  on<K extends keyof DataGridEventMap<T>>(type: K, listener: (detail: DataGridEventMap<T>[K], event: CustomEvent<DataGridEventMap<T>[K]>) => void): () => void;
480
+ on(type: string, listener: (detail: unknown, event: CustomEvent) => void): () => void;
481
+ _emitDataChange(): void;
482
+ /**
483
+ * Rebuild the row ID map for O(1) lookups.
484
+ * Called when rows array changes.
485
+ */
486
+ _rebuildRowIdMap(): void;
487
+ _renderVisibleRows(start: number, end: number, epoch?: number): void;
488
+ /** Updates ARIA row/col counts. Delegates to aria.ts module. */
489
+ _updateAriaCounts(rowCount: number, colCount: number): void;
490
+ /** @internal Request a render at the given phase through the scheduler. */
491
+ _requestSchedulerPhase(phase: number, source: string): void;
492
+ /** @internal Plugin extra height for spacer calculation. */
493
+ _getPluginExtraHeight(): number;
494
+ /** @internal Plugin-specific row height override. */
495
+ _getPluginRowHeight(row: T, index: number): number | undefined;
496
+ /** @internal Plugin extra height before a given row index. */
497
+ _getPluginExtraHeightBefore(start: number): number;
498
+ /** @internal Let plugins adjust the virtual start index backwards. */
499
+ _adjustPluginVirtualStart(start: number, scrollTop: number, rowHeight: number): number | undefined;
500
+ /** @internal Run plugin afterRender hooks. */
501
+ _afterPluginRender(): void;
502
+ /** @internal Emit a plugin event through the plugin manager. */
503
+ _emitPluginEvent(event: string, detail: unknown): void;
504
+ /** @internal Merge effective config (FULL/COLUMNS phase). */
505
+ _schedulerMergeConfig(): void;
506
+ /** @internal Process columns through plugins (COLUMNS phase). */
507
+ _schedulerProcessColumns(): void;
508
+ /** @internal Rebuild row model through plugins (ROWS phase). */
509
+ _schedulerProcessRows(): void;
510
+ /** @internal Render header DOM (HEADER phase). */
511
+ _schedulerRenderHeader(): void;
512
+ /** @internal Update CSS grid template (COLUMNS phase). */
513
+ _schedulerUpdateTemplate(): void;
514
+ /** @internal Run afterRender hooks and post-render bookkeeping (STYLE phase). */
515
+ _schedulerAfterRender(): void;
516
+ /** @internal Whether the grid is fully connected (scheduler guard). */
517
+ get _schedulerIsConnected(): boolean;
518
+ /** @internal The grid's host HTMLElement. Use instead of casting `grid as unknown as HTMLElement`. */
519
+ get _hostElement(): HTMLElement;
520
+ /** @internal The grid's render root element for DOM queries. */
521
+ get _renderRoot(): HTMLElement;
522
+ /** @internal Emit a custom event from the grid. */
523
+ _emit(eventName: string, detail: unknown): void;
524
+ /** @internal Get accordion expand/collapse icons from effective config. */
525
+ get _accordionIcons(): {
526
+ expand: IconValue;
527
+ collapse: IconValue;
528
+ };
529
+ /** @internal Shell state for config manager shell merging. */
530
+ get _shellState(): ShellState;
531
+ /** @internal Clear the row pool and body element. */
532
+ _clearRowPool(): void;
533
+ /** @internal Run grid setup (DOM rebuild). */
534
+ _setup(): void;
535
+ /** @internal Apply animation configuration to host element. */
536
+ _applyAnimationConfig(config: GridConfig<T>): void;
422
537
  /**
423
538
  * Find the header row element in the shadow DOM.
424
539
  * Used by plugins that need to access header cells for styling or measurement.
@@ -458,7 +573,7 @@ export declare class DataGridElement<T = any> extends HTMLElement implements Int
458
573
  * Dispatch a header click event to the plugin system.
459
574
  * Returns true if any plugin handled the event.
460
575
  */
461
- _dispatchHeaderClick(event: MouseEvent, col: ColumnConfig, headerEl: HTMLElement): boolean;
576
+ _dispatchHeaderClick(event: MouseEvent | KeyboardEvent, col: ColumnConfig, headerEl: HTMLElement): boolean;
462
577
  /**
463
578
  * Dispatch a keyboard event to the plugin system.
464
579
  * Returns true if any plugin handled the event.
@@ -485,7 +600,7 @@ export declare class DataGridElement<T = any> extends HTMLElement implements Int
485
600
  * const responses = grid.queryPlugins<boolean>({ type: 'canMoveColumn', context: column });
486
601
  * const canMove = !responses.includes(false);
487
602
  *
488
- * @deprecated Use the simplified `query<T>(type, context)` method instead.
603
+ * @deprecated Use the simplified `query<T>(type, context)` method instead. Will be removed in v2.
489
604
  */
490
605
  queryPlugins<T>(query: PluginQuery): T[];
491
606
  /**
@@ -823,7 +938,7 @@ export declare class DataGridElement<T = any> extends HTMLElement implements Int
823
938
  *
824
939
  * @deprecated This method is a no-op. Use {@link insertRow} or {@link removeRow}
825
940
  * instead, which correctly preserve the current sort/filter view while adding
826
- * or removing individual rows.
941
+ * or removing individual rows. Will be removed in v2.
827
942
  *
828
943
  * @group Lifecycle
829
944
  */
@@ -1503,27 +1618,24 @@ export declare class DataGridElement<T = any> extends HTMLElement implements Int
1503
1618
  */
1504
1619
  refreshColumns(): void;
1505
1620
  /**
1506
- * Invalidate a row's height in the position cache.
1507
- * Call this when a plugin changes a row's height (e.g., expanding/collapsing a detail panel).
1508
- * Updates the position cache incrementally O(1) + offset recalc O(k) without a full rebuild.
1509
- *
1510
- * @param rowIndex - Index of the row whose height changed
1511
- * @param newHeight - Optional new height. If not provided, queries plugins for height.
1512
- */
1513
- invalidateRowHeight(rowIndex: number, newHeight?: number): void;
1514
- /**
1515
- * Core virtualization routine. Chooses between bypass (small datasets), grouped window rendering,
1516
- * or standard row window rendering.
1621
+ * Core virtualization routine. Delegates to VirtualizationManager.
1517
1622
  * @param force - Whether to force a full refresh (not just scroll update)
1518
1623
  * @param skipAfterRender - When true, skip calling afterRender (used by scheduler which calls it separately)
1519
1624
  * @returns Whether the visible row window changed (start/end differ from previous)
1520
1625
  * @internal Plugin API
1521
1626
  */
1522
1627
  refreshVirtualWindow(force?: boolean, skipAfterRender?: boolean): boolean;
1628
+ /**
1629
+ * Invalidate a row's height in the position cache.
1630
+ * Call this when a plugin changes a row's height (e.g., expanding/collapsing a detail panel).
1631
+ * @param rowIndex - Index of the row whose height changed
1632
+ * @param newHeight - Optional new height. If not provided, queries plugins for height.
1633
+ */
1634
+ invalidateRowHeight(rowIndex: number, newHeight?: number): void;
1523
1635
  }
1524
1636
  declare global {
1637
+ var DataGridElement: typeof import('./grid').DataGridElement;
1525
1638
  interface HTMLElementTagNameMap {
1526
1639
  'tbw-grid': DataGridElement;
1527
1640
  }
1528
1641
  }
1529
- //# sourceMappingURL=grid.d.ts.map
@@ -64,4 +64,3 @@ export declare const unregisterAggregator: (name: string) => void;
64
64
  export declare const getAggregator: (ref: AggregatorRef | undefined) => AggregatorFn | undefined;
65
65
  export declare const runAggregator: (ref: AggregatorRef | undefined, rows: any[], field: string, column?: any) => any;
66
66
  export declare const listAggregators: () => string[];
67
- //# sourceMappingURL=aggregators.d.ts.map
@@ -49,4 +49,11 @@ export declare function getEffectiveAriaLabel<T>(config: GridConfig<T> | undefin
49
49
  * @returns true if anything was updated
50
50
  */
51
51
  export declare function updateAriaLabels<T>(state: AriaState, rowsBodyEl: HTMLElement | null, config: GridConfig<T> | undefined, shellState: ShellState | undefined): boolean;
52
- //# sourceMappingURL=aria.d.ts.map
52
+ /**
53
+ * Announce a message to screen readers via the grid's aria-live region.
54
+ * Clears then sets text to ensure repeated messages are re-announced.
55
+ *
56
+ * @param gridEl - The grid host element (or any ancestor containing `.tbw-sr-only`)
57
+ * @param message - The message to announce
58
+ */
59
+ export declare function announce(gridEl: HTMLElement, message: string): void;
@@ -1,4 +1,4 @@
1
- import { ColumnConfig, ColumnInternal, InternalGrid } from '../types';
1
+ import { ColumnConfig, ColumnInternal, GridHost } from '../types';
2
2
  /**
3
3
  * Parse `<tbw-grid-column>` elements from the host light DOM into column config objects,
4
4
  * capturing template elements for later cloning / compilation.
@@ -21,6 +21,5 @@ export declare function addPart(el: HTMLElement, token: string): void;
21
21
  * Measure rendered header + visible cell content to assign initial pixel widths
22
22
  * to columns when in `content` fit mode. Runs only once unless fit mode changes.
23
23
  */
24
- export declare function autoSizeColumns(grid: InternalGrid): void;
25
- export declare function updateTemplate(grid: InternalGrid): void;
26
- //# sourceMappingURL=columns.d.ts.map
24
+ export declare function autoSizeColumns(grid: GridHost): void;
25
+ export declare function updateTemplate(grid: GridHost): void;
@@ -1,56 +1,5 @@
1
1
  import { BaseGridPlugin } from '../plugin';
2
- import { ColumnConfig, ColumnConfigMap, ColumnInternal, FitMode, GridColumnState, GridConfig, HeaderContentDefinition, ToolbarContentDefinition, ToolPanelDefinition } from '../types';
3
- /**
4
- * Callbacks for ConfigManager to notify the grid of changes.
5
- */
6
- export interface ConfigManagerCallbacks<T> {
7
- /** Get current rows for column inference */
8
- getRows: () => T[];
9
- /** Get current sort state */
10
- getSortState: () => {
11
- field: string;
12
- direction: 1 | -1;
13
- } | null;
14
- /** Set sort state */
15
- setSortState: (state: {
16
- field: string;
17
- direction: 1 | -1;
18
- } | null) => void;
19
- /** Notify that config changed and re-render is needed */
20
- onConfigChange: () => void;
21
- /** Emit a custom event */
22
- emit: (eventName: string, detail: unknown) => void;
23
- /** Clear row pool for visibility changes */
24
- clearRowPool: () => void;
25
- /** Run setup after state changes */
26
- setup: () => void;
27
- /** Render header */
28
- renderHeader: () => void;
29
- /** Update column template */
30
- updateTemplate: () => void;
31
- /** Refresh virtual window */
32
- refreshVirtualWindow: () => void;
33
- /** Get virtualization state for row height application */
34
- getVirtualization: () => {
35
- rowHeight: number;
36
- };
37
- /** Set row height on virtualization state */
38
- setRowHeight: (height: number) => void;
39
- /** Apply animation config to host element */
40
- applyAnimationConfig: (config: GridConfig<T>) => void;
41
- /** Get light DOM title from shell state (synced from parseLightDomShell) */
42
- getShellLightDomTitle: () => string | null;
43
- /** Get registered tool panels from shell state */
44
- getShellToolPanels: () => Map<string, ToolPanelDefinition>;
45
- /** Get registered header contents from shell state */
46
- getShellHeaderContents: () => Map<string, HeaderContentDefinition>;
47
- /** Get registered toolbar contents from shell state */
48
- getShellToolbarContents: () => Map<string, ToolbarContentDefinition>;
49
- /** Get light DOM header content elements */
50
- getShellLightDomHeaderContent: () => HTMLElement[];
51
- /** Get whether a tool buttons container was found in light DOM */
52
- getShellHasToolButtonsContainer: () => boolean;
53
- }
2
+ import { ColumnConfig, ColumnConfigMap, ColumnInternal, FitMode, GridColumnState, GridConfig, GridHost } from '../types';
54
3
  /**
55
4
  * ConfigManager handles all configuration lifecycle for the grid.
56
5
  *
@@ -62,7 +11,7 @@ export interface ConfigManagerCallbacks<T> {
62
11
  */
63
12
  export declare class ConfigManager<T = unknown> {
64
13
  #private;
65
- constructor(callbacks: ConfigManagerCallbacks<T>);
14
+ constructor(grid: GridHost<T>);
66
15
  /** Get the frozen original config (compiled from sources, immutable) */
67
16
  get original(): GridConfig<T>;
68
17
  /** Get the mutable effective config (current runtime state) */
@@ -230,4 +179,3 @@ export declare class ConfigManager<T = unknown> {
230
179
  */
231
180
  dispose(): void;
232
181
  }
233
- //# sourceMappingURL=config-manager.d.ts.map
@@ -102,4 +102,3 @@ export interface ShellBodyOptions {
102
102
  * Build shell body element directly without innerHTML.
103
103
  */
104
104
  export declare function buildShellBody(options: ShellBodyOptions): HTMLDivElement;
105
- //# sourceMappingURL=dom-builder.d.ts.map
@@ -1,4 +1,4 @@
1
- import { InternalGrid } from '../types';
1
+ import { GridHost } from '../types';
2
2
  /**
3
3
  * Set up delegated event listeners on the grid body.
4
4
  * Consolidates all row/cell mouse event handling into a single set of listeners.
@@ -13,7 +13,7 @@ import { InternalGrid } from '../types';
13
13
  * @param bodyEl - The .rows element containing all data rows
14
14
  * @param signal - AbortSignal for cleanup
15
15
  */
16
- export declare function setupCellEventDelegation(grid: InternalGrid, bodyEl: HTMLElement, signal: AbortSignal): void;
16
+ export declare function setupCellEventDelegation(grid: GridHost, bodyEl: HTMLElement, signal: AbortSignal): void;
17
17
  /**
18
18
  * Set up root-level and document-level event listeners.
19
19
  * These are added once per grid lifetime (not re-attached on DOM recreation).
@@ -28,5 +28,4 @@ export declare function setupCellEventDelegation(grid: InternalGrid, bodyEl: HTM
28
28
  * @param renderRoot - The render root element (for mousedown)
29
29
  * @param signal - AbortSignal for cleanup
30
30
  */
31
- export declare function setupRootEventDelegation(grid: InternalGrid, gridElement: HTMLElement, renderRoot: HTMLElement, signal: AbortSignal): void;
32
- //# sourceMappingURL=event-delegation.d.ts.map
31
+ export declare function setupRootEventDelegation(grid: GridHost, gridElement: HTMLElement, renderRoot: HTMLElement, signal: AbortSignal): void;
@@ -5,4 +5,3 @@ export type FeatureResolverFn = (features: Record<string, unknown>) => GridPlugi
5
5
  export declare let resolveFeatures: FeatureResolverFn | undefined;
6
6
  /** Called by `features/registry.ts` at module evaluation time. @internal */
7
7
  export declare function setFeatureResolver(fn: FeatureResolverFn): void;
8
- //# sourceMappingURL=feature-hook.d.ts.map
@@ -0,0 +1,49 @@
1
+ import { GridHost, ScrollToRowOptions } from '../types';
2
+ export declare class FocusManager<T = any> {
3
+ #private;
4
+ constructor(grid: GridHost<T>);
5
+ /**
6
+ * Move focus to a specific cell.
7
+ * Accepts a column index or field name.
8
+ */
9
+ focusCell(rowIndex: number, column: number | string): void;
10
+ /**
11
+ * The currently focused cell position, or `null` if no rows are loaded.
12
+ */
13
+ get focusedCell(): {
14
+ rowIndex: number;
15
+ colIndex: number;
16
+ field: string;
17
+ } | null;
18
+ /**
19
+ * Scroll the viewport so a row is visible.
20
+ */
21
+ scrollToRow(rowIndex: number, options?: ScrollToRowOptions): void;
22
+ /**
23
+ * Scroll the viewport so a row is visible, identified by its unique ID.
24
+ */
25
+ scrollToRowById(rowId: string, options?: ScrollToRowOptions): void;
26
+ /**
27
+ * Register an external DOM element as a logical focus container of this grid.
28
+ * Focus moving into a registered container is treated as if it stayed inside the grid.
29
+ */
30
+ registerExternalFocusContainer(el: Element): void;
31
+ /**
32
+ * Unregister a previously registered external focus container.
33
+ */
34
+ unregisterExternalFocusContainer(el: Element): void;
35
+ /**
36
+ * Check whether focus is logically inside this grid.
37
+ * Returns `true` when the node is inside the grid's DOM or any external container.
38
+ */
39
+ containsFocus(node?: Node | null): boolean;
40
+ /**
41
+ * Check whether a node is inside any registered external focus container.
42
+ */
43
+ isInExternalFocusContainer(node: Node): boolean;
44
+ /**
45
+ * Clean up all external focus container listeners.
46
+ * Called when the grid disconnects.
47
+ */
48
+ destroy(): void;
49
+ }
@@ -1,4 +1,4 @@
1
- import { InternalGrid } from '../types';
1
+ import { GridHost } from '../types';
2
2
  /**
3
3
  * Rebuild the header row DOM based on current column configuration, attaching
4
4
  * sorting and resize affordances where enabled.
@@ -10,5 +10,4 @@ import { InternalGrid } from '../types';
10
10
  * 4. `header` property - Plain text header
11
11
  * 5. `field` - Fallback to field name
12
12
  */
13
- export declare function renderHeader(grid: InternalGrid): void;
14
- //# sourceMappingURL=header.d.ts.map
13
+ export declare function renderHeader(grid: GridHost): void;
@@ -27,4 +27,3 @@ export declare function scheduleIdle(callback: (deadline: IdleDeadlineLike) => v
27
27
  */
28
28
  export declare function cancelIdle(handle: number): void;
29
29
  export {};
30
- //# sourceMappingURL=idle-scheduler.d.ts.map
@@ -9,4 +9,3 @@ declare function inferType(value: any): PrimitiveColumnType;
9
9
  */
10
10
  export declare function inferColumns<TRow extends Record<string, unknown>>(rows: TRow[], provided?: ColumnConfigMap<TRow>): InferredColumnResult<TRow>;
11
11
  export { inferType };
12
- //# sourceMappingURL=inference.d.ts.map
@@ -1,5 +1,5 @@
1
- import { InternalGrid } from '../types';
2
- export declare function handleGridKeyDown(grid: InternalGrid, e: KeyboardEvent): void;
1
+ import { GridHost } from '../types';
2
+ export declare function handleGridKeyDown(grid: GridHost, e: KeyboardEvent): void;
3
3
  /**
4
4
  * Options for ensureCellVisible to control scroll behavior.
5
5
  */
@@ -15,6 +15,5 @@ interface EnsureCellVisibleOptions {
15
15
  * Scroll the viewport (virtualized or static) so the focused cell's row is visible
16
16
  * and apply visual focus styling / tabindex management.
17
17
  */
18
- export declare function ensureCellVisible(grid: InternalGrid, options?: EnsureCellVisibleOptions): void;
18
+ export declare function ensureCellVisible(grid: GridHost, options?: EnsureCellVisibleOptions): void;
19
19
  export {};
20
- //# sourceMappingURL=keyboard.d.ts.map
@@ -40,4 +40,3 @@ export declare function setRowLoadingState(rowEl: HTMLElement, loading: boolean)
40
40
  * @param loading - Whether the cell is loading
41
41
  */
42
42
  export declare function setCellLoadingState(cellEl: HTMLElement, loading: boolean): void;
43
- //# sourceMappingURL=loading.d.ts.map
@@ -1,46 +1,4 @@
1
- /**
2
- * Centralized Render Scheduler for the Grid component.
3
- *
4
- * This scheduler batches all rendering work into a single requestAnimationFrame,
5
- * eliminating race conditions between different parts of the grid (ResizeObserver,
6
- * framework adapters, virtualization, etc.) that previously scheduled independent RAFs.
7
- *
8
- * ## Design Principles
9
- *
10
- * 1. **Single RAF per frame**: All render requests are batched into one RAF callback
11
- * 2. **Phase-based execution**: Work is organized into ordered phases that run sequentially
12
- * 3. **Highest-phase wins**: Multiple requests merge to the highest requested phase
13
- * 4. **Framework-agnostic timing**: Eliminates need for "double RAF" hacks
14
- *
15
- * ## Render Phases (execute in order)
16
- *
17
- * - STYLE (1): Lightweight style/class updates, plugin afterRender hooks
18
- * - VIRTUALIZATION (2): Virtual window recalculation (scroll, resize)
19
- * - HEADER (3): Header re-render only
20
- * - ROWS (4): Row model rebuild + header + template + virtual window
21
- * - COLUMNS (5): Column processing + rows phase work
22
- * - FULL (6): Complete render including config merge
23
- *
24
- * @example
25
- * ```typescript
26
- * const scheduler = new RenderScheduler({
27
- * mergeConfig: () => this.#mergeEffectiveConfig(),
28
- * processColumns: () => this.#processColumns(),
29
- * processRows: () => this.#rebuildRowModel(),
30
- * renderHeader: () => renderHeader(this),
31
- * updateTemplate: () => updateTemplate(this),
32
- * renderVirtualWindow: () => this.refreshVirtualWindow(true),
33
- * afterRender: () => this.#pluginManager?.afterRender(),
34
- * isConnected: () => this.isConnected && this.#connected,
35
- * });
36
- *
37
- * // Request a full render
38
- * scheduler.requestPhase(RenderPhase.FULL, 'initial-setup');
39
- *
40
- * // Wait for render to complete
41
- * await scheduler.whenReady();
42
- * ```
43
- */
1
+ import { InternalGrid } from '../types';
44
2
  /**
45
3
  * Render phases in order of execution.
46
4
  * Higher phases include all lower phase work.
@@ -62,34 +20,14 @@ export declare enum RenderPhase {
62
20
  FULL = 6
63
21
  }
64
22
  /**
65
- /**
66
- * Callbacks that the scheduler invokes during flush.
67
- * Each callback corresponds to work done in a specific phase.
23
+ * @internal Scheduler now takes InternalGrid directly — no callback interface needed.
68
24
  */
69
- export interface RenderCallbacks {
70
- /** Merge effective config (FULL phase) */
71
- mergeConfig: () => void;
72
- /** Process columns through plugins (COLUMNS phase) */
73
- processColumns: () => void;
74
- /** Rebuild row model through plugins (ROWS phase) */
75
- processRows: () => void;
76
- /** Render header DOM (HEADER phase) */
77
- renderHeader: () => void;
78
- /** Update CSS grid template (ROWS phase) */
79
- updateTemplate: () => void;
80
- /** Recalculate virtual window (VIRTUALIZATION phase) */
81
- renderVirtualWindow: () => void;
82
- /** Run plugin afterRender hooks (STYLE phase) */
83
- afterRender: () => void;
84
- /** Check if grid is still connected to DOM */
85
- isConnected: () => boolean;
86
- }
87
25
  /**
88
26
  * Centralized render scheduler that batches all grid rendering into single RAF.
89
27
  */
90
28
  export declare class RenderScheduler {
91
29
  #private;
92
- constructor(callbacks: RenderCallbacks);
30
+ constructor(grid: InternalGrid);
93
31
  /**
94
32
  * Request a render at the specified phase.
95
33
  * Multiple requests are batched - the highest phase wins.
@@ -122,4 +60,3 @@ export declare class RenderScheduler {
122
60
  */
123
61
  get pendingPhase(): RenderPhase | 0;
124
62
  }
125
- //# sourceMappingURL=render-scheduler.d.ts.map
@@ -1,3 +1,2 @@
1
- import { InternalGrid, ResizeController } from '../types';
2
- export declare function createResizeController(grid: InternalGrid): ResizeController;
3
- //# sourceMappingURL=resize.d.ts.map
1
+ import { GridHost, ResizeController } from '../types';
2
+ export declare function createResizeController(grid: GridHost): ResizeController;
@@ -34,4 +34,3 @@ export declare function animateRows<T>(grid: InternalGrid<T>, rowIndices: number
34
34
  * @returns Promise resolving to `true` if the row was found and animated, `false` otherwise
35
35
  */
36
36
  export declare function animateRowById<T>(grid: InternalGrid<T>, rowId: string, animationType: RowAnimationType): Promise<boolean>;
37
- //# sourceMappingURL=row-animation.d.ts.map
@@ -0,0 +1,31 @@
1
+ import { GridHost, UpdateSource } from '../types';
2
+ /**
3
+ * Try to resolve the ID for a row using a configured getRowId or fallback.
4
+ * Returns undefined if no ID can be determined (non-throwing).
5
+ *
6
+ * Exported so grid.ts can use it in `#rebuildRowIdMap` without going
7
+ * through the RowManager instance.
8
+ */
9
+ export declare function tryResolveRowId<T>(row: T, getRowId?: (row: T) => string): string | undefined;
10
+ /**
11
+ * Resolve the ID for a row, throwing if not found.
12
+ * Exported so grid.ts `getRowId()` can call it without the RowManager.
13
+ */
14
+ export declare function resolveRowIdOrThrow<T>(row: T, gridId: string, getRowId?: (row: T) => string): string;
15
+ export declare class RowManager<T = any> {
16
+ #private;
17
+ constructor(grid: GridHost<T>);
18
+ resolveRowId(row: T): string;
19
+ getRow(id: string): T | undefined;
20
+ getRowEntry(id: string): {
21
+ row: T;
22
+ index: number;
23
+ } | undefined;
24
+ updateRow(id: string, changes: Partial<T>, source?: UpdateSource): void;
25
+ updateRows(updates: Array<{
26
+ id: string;
27
+ changes: Partial<T>;
28
+ }>, source?: UpdateSource): void;
29
+ insertRow(index: number, row: T, animate?: boolean): Promise<void>;
30
+ removeRow(index: number, animate?: boolean): Promise<T | undefined>;
31
+ }