@rowsncolumns/spreadsheet-state 28.0.76 → 29.1.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 (633) hide show
  1. package/dist/cjs/api/anchored-objects.d.ts +122 -6
  2. package/dist/cjs/api/anchored-objects.d.ts.map +1 -1
  3. package/dist/cjs/api/anchored-objects.js +464 -43
  4. package/dist/cjs/api/copy-paste.d.ts +8 -2
  5. package/dist/cjs/api/copy-paste.d.ts.map +1 -1
  6. package/dist/cjs/api/copy-paste.js +4 -4
  7. package/dist/cjs/api/filter.d.ts +15 -1
  8. package/dist/cjs/api/filter.d.ts.map +1 -1
  9. package/dist/cjs/api/filter.js +32 -2
  10. package/dist/cjs/api/formula.d.ts +63 -0
  11. package/dist/cjs/api/formula.d.ts.map +1 -1
  12. package/dist/cjs/api/formula.js +278 -8
  13. package/dist/cjs/api/immer-utils.d.ts +11 -1
  14. package/dist/cjs/api/immer-utils.d.ts.map +1 -1
  15. package/dist/cjs/api/immer-utils.js +17 -1
  16. package/dist/cjs/api/insert-cut-cells.d.ts +35 -0
  17. package/dist/cjs/api/insert-cut-cells.d.ts.map +1 -0
  18. package/dist/cjs/api/insert-cut-cells.js +60 -0
  19. package/dist/cjs/api/merges.d.ts +8 -0
  20. package/dist/cjs/api/merges.d.ts.map +1 -1
  21. package/dist/cjs/api/merges.js +11 -0
  22. package/dist/cjs/api/paint-format.d.ts +22 -1
  23. package/dist/cjs/api/paint-format.d.ts.map +1 -1
  24. package/dist/cjs/api/paint-format.js +57 -1
  25. package/dist/cjs/api/sort.d.ts +23 -1
  26. package/dist/cjs/api/sort.d.ts.map +1 -1
  27. package/dist/cjs/api/sort.js +52 -6
  28. package/dist/cjs/api/structural-guards.d.ts +57 -0
  29. package/dist/cjs/api/structural-guards.d.ts.map +1 -1
  30. package/dist/cjs/api/structural-guards.js +93 -1
  31. package/dist/cjs/api/structural-table-refs.d.ts +58 -3
  32. package/dist/cjs/api/structural-table-refs.d.ts.map +1 -1
  33. package/dist/cjs/api/structural-table-refs.js +177 -16
  34. package/dist/cjs/api/subtotal.d.ts +20 -13
  35. package/dist/cjs/api/subtotal.d.ts.map +1 -1
  36. package/dist/cjs/api/subtotal.js +26 -19
  37. package/dist/cjs/api/table.d.ts +26 -2
  38. package/dist/cjs/api/table.d.ts.map +1 -1
  39. package/dist/cjs/api/table.js +93 -60
  40. package/dist/cjs/api/validation.d.ts.map +1 -1
  41. package/dist/cjs/api/validation.js +53 -8
  42. package/dist/cjs/atoms/creating-table.atom.d.ts +22 -0
  43. package/dist/cjs/atoms/creating-table.atom.d.ts.map +1 -0
  44. package/dist/cjs/atoms/creating-table.atom.js +4 -0
  45. package/dist/cjs/atoms/dialog-state.atom.d.ts +8 -0
  46. package/dist/cjs/atoms/dialog-state.atom.d.ts.map +1 -1
  47. package/dist/cjs/atoms/dialog-state.atom.js +28 -0
  48. package/dist/cjs/atoms/editing-slicer.atom.d.ts +9 -0
  49. package/dist/cjs/atoms/editing-slicer.atom.d.ts.map +1 -0
  50. package/dist/cjs/atoms/editing-slicer.atom.js +6 -0
  51. package/dist/cjs/atoms/index.d.ts +4 -0
  52. package/dist/cjs/atoms/index.d.ts.map +1 -1
  53. package/dist/cjs/atoms/index.js +4 -0
  54. package/dist/cjs/atoms/inserting-slicer.atom.d.ts +8 -0
  55. package/dist/cjs/atoms/inserting-slicer.atom.d.ts.map +1 -0
  56. package/dist/cjs/atoms/inserting-slicer.atom.js +5 -0
  57. package/dist/cjs/atoms/resizing-table.atom.d.ts +8 -0
  58. package/dist/cjs/atoms/resizing-table.atom.d.ts.map +1 -0
  59. package/dist/cjs/atoms/resizing-table.atom.js +5 -0
  60. package/dist/cjs/commands.d.ts +138 -2
  61. package/dist/cjs/commands.d.ts.map +1 -1
  62. package/dist/cjs/components/editors/embed-editor.d.ts +4 -2
  63. package/dist/cjs/components/editors/embed-editor.d.ts.map +1 -1
  64. package/dist/cjs/components/editors/embed-editor.js +38 -9
  65. package/dist/cjs/components/editors/slicer-editor.d.ts +15 -0
  66. package/dist/cjs/components/editors/slicer-editor.d.ts.map +1 -0
  67. package/dist/cjs/components/editors/slicer-editor.js +87 -0
  68. package/dist/cjs/components/editors/table-editor.d.ts +58 -2
  69. package/dist/cjs/components/editors/table-editor.d.ts.map +1 -1
  70. package/dist/cjs/components/editors/table-editor.js +261 -20
  71. package/dist/cjs/components/index.d.ts +1 -0
  72. package/dist/cjs/components/index.d.ts.map +1 -1
  73. package/dist/cjs/components/index.js +1 -0
  74. package/dist/cjs/constants.d.ts +9 -1
  75. package/dist/cjs/constants.d.ts.map +1 -1
  76. package/dist/cjs/constants.js +12 -0
  77. package/dist/cjs/generated-names.d.ts +13 -3
  78. package/dist/cjs/generated-names.d.ts.map +1 -1
  79. package/dist/cjs/generated-names.js +3 -1
  80. package/dist/cjs/helpers.d.ts +5 -0
  81. package/dist/cjs/helpers.d.ts.map +1 -1
  82. package/dist/cjs/helpers.js +10 -1
  83. package/dist/cjs/hooks/use-on-change-batch.d.ts +19 -2
  84. package/dist/cjs/hooks/use-on-change-batch.d.ts.map +1 -1
  85. package/dist/cjs/hooks/use-on-change-batch.js +43 -35
  86. package/dist/cjs/hooks/use-on-change-calculated-column.d.ts +10 -1
  87. package/dist/cjs/hooks/use-on-change-calculated-column.d.ts.map +1 -1
  88. package/dist/cjs/hooks/use-on-change-calculated-column.js +17 -5
  89. package/dist/cjs/hooks/use-on-change-table-column.d.ts +6 -1
  90. package/dist/cjs/hooks/use-on-change-table-column.d.ts.map +1 -1
  91. package/dist/cjs/hooks/use-on-change-table-column.js +17 -5
  92. package/dist/cjs/hooks/use-on-change.d.ts +36 -3
  93. package/dist/cjs/hooks/use-on-change.d.ts.map +1 -1
  94. package/dist/cjs/hooks/use-on-change.js +218 -136
  95. package/dist/cjs/hooks/use-on-copy.d.ts +1 -1
  96. package/dist/cjs/hooks/use-on-copy.d.ts.map +1 -1
  97. package/dist/cjs/hooks/use-on-copy.js +2 -3
  98. package/dist/cjs/hooks/use-on-create-custom-table-style.d.ts +17 -0
  99. package/dist/cjs/hooks/use-on-create-custom-table-style.d.ts.map +1 -0
  100. package/dist/cjs/hooks/use-on-create-custom-table-style.js +28 -0
  101. package/dist/cjs/hooks/use-on-create-named-range.d.ts +4 -2
  102. package/dist/cjs/hooks/use-on-create-named-range.d.ts.map +1 -1
  103. package/dist/cjs/hooks/use-on-create-named-range.js +11 -1
  104. package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts +2 -1
  105. package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
  106. package/dist/cjs/hooks/use-on-delete-cells-shift-left.js +3 -1
  107. package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts +2 -1
  108. package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
  109. package/dist/cjs/hooks/use-on-delete-cells-shift-up.js +3 -1
  110. package/dist/cjs/hooks/use-on-delete-column.d.ts +2 -1
  111. package/dist/cjs/hooks/use-on-delete-column.d.ts.map +1 -1
  112. package/dist/cjs/hooks/use-on-delete-column.js +3 -1
  113. package/dist/cjs/hooks/use-on-delete-row.d.ts +2 -1
  114. package/dist/cjs/hooks/use-on-delete-row.d.ts.map +1 -1
  115. package/dist/cjs/hooks/use-on-delete-row.js +3 -1
  116. package/dist/cjs/hooks/use-on-delete-sheet.d.ts +9 -1
  117. package/dist/cjs/hooks/use-on-delete-sheet.d.ts.map +1 -1
  118. package/dist/cjs/hooks/use-on-delete-sheet.js +17 -1
  119. package/dist/cjs/hooks/use-on-delete-table-row.d.ts +4 -1
  120. package/dist/cjs/hooks/use-on-delete-table-row.d.ts.map +1 -1
  121. package/dist/cjs/hooks/use-on-delete-table-row.js +19 -1
  122. package/dist/cjs/hooks/use-on-delete.d.ts +5 -2
  123. package/dist/cjs/hooks/use-on-delete.d.ts.map +1 -1
  124. package/dist/cjs/hooks/use-on-delete.js +5 -1
  125. package/dist/cjs/hooks/use-on-embeds.d.ts +7 -4
  126. package/dist/cjs/hooks/use-on-embeds.d.ts.map +1 -1
  127. package/dist/cjs/hooks/use-on-embeds.js +26 -24
  128. package/dist/cjs/hooks/use-on-fill.d.ts +17 -2
  129. package/dist/cjs/hooks/use-on-fill.d.ts.map +1 -1
  130. package/dist/cjs/hooks/use-on-fill.js +29 -15
  131. package/dist/cjs/hooks/use-on-filter-table.d.ts.map +1 -1
  132. package/dist/cjs/hooks/use-on-filter-table.js +209 -103
  133. package/dist/cjs/hooks/use-on-import-excel.d.ts +2 -1
  134. package/dist/cjs/hooks/use-on-import-excel.d.ts.map +1 -1
  135. package/dist/cjs/hooks/use-on-import-excel.js +22 -19
  136. package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts +2 -1
  137. package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
  138. package/dist/cjs/hooks/use-on-insert-cells-shift-down.js +3 -1
  139. package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts +2 -1
  140. package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
  141. package/dist/cjs/hooks/use-on-insert-cells-shift-right.js +3 -1
  142. package/dist/cjs/hooks/use-on-insert-column.d.ts +2 -1
  143. package/dist/cjs/hooks/use-on-insert-column.d.ts.map +1 -1
  144. package/dist/cjs/hooks/use-on-insert-column.js +3 -1
  145. package/dist/cjs/hooks/use-on-insert-row.d.ts +2 -1
  146. package/dist/cjs/hooks/use-on-insert-row.d.ts.map +1 -1
  147. package/dist/cjs/hooks/use-on-insert-row.js +3 -1
  148. package/dist/cjs/hooks/use-on-insert-table-row.d.ts +5 -2
  149. package/dist/cjs/hooks/use-on-insert-table-row.d.ts.map +1 -1
  150. package/dist/cjs/hooks/use-on-insert-table-row.js +19 -1
  151. package/dist/cjs/hooks/use-on-merge-unmerge-cells.d.ts +3 -2
  152. package/dist/cjs/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
  153. package/dist/cjs/hooks/use-on-merge-unmerge-cells.js +14 -1
  154. package/dist/cjs/hooks/use-on-move-columns.d.ts +4 -1
  155. package/dist/cjs/hooks/use-on-move-columns.d.ts.map +1 -1
  156. package/dist/cjs/hooks/use-on-move-columns.js +28 -6
  157. package/dist/cjs/hooks/use-on-move-rows.d.ts +18 -1
  158. package/dist/cjs/hooks/use-on-move-rows.d.ts.map +1 -1
  159. package/dist/cjs/hooks/use-on-move-rows.js +44 -6
  160. package/dist/cjs/hooks/use-on-move-selection.d.ts +9 -2
  161. package/dist/cjs/hooks/use-on-move-selection.d.ts.map +1 -1
  162. package/dist/cjs/hooks/use-on-move-selection.js +101 -25
  163. package/dist/cjs/hooks/use-on-paste.d.ts +33 -2
  164. package/dist/cjs/hooks/use-on-paste.d.ts.map +1 -1
  165. package/dist/cjs/hooks/use-on-paste.js +1005 -740
  166. package/dist/cjs/hooks/use-on-remove-duplicates.d.ts +5 -2
  167. package/dist/cjs/hooks/use-on-remove-duplicates.d.ts.map +1 -1
  168. package/dist/cjs/hooks/use-on-remove-duplicates.js +5 -1
  169. package/dist/cjs/hooks/use-on-request-create-table.d.ts +13 -0
  170. package/dist/cjs/hooks/use-on-request-create-table.d.ts.map +1 -0
  171. package/dist/cjs/hooks/use-on-request-create-table.js +44 -0
  172. package/dist/cjs/hooks/use-on-request-insert-slicer.d.ts +7 -0
  173. package/dist/cjs/hooks/use-on-request-insert-slicer.d.ts.map +1 -0
  174. package/dist/cjs/hooks/use-on-request-insert-slicer.js +15 -0
  175. package/dist/cjs/hooks/use-on-request-resize-table.d.ts +7 -0
  176. package/dist/cjs/hooks/use-on-request-resize-table.d.ts.map +1 -0
  177. package/dist/cjs/hooks/use-on-request-resize-table.js +15 -0
  178. package/dist/cjs/hooks/use-on-resize-table.d.ts +5 -1
  179. package/dist/cjs/hooks/use-on-resize-table.d.ts.map +1 -1
  180. package/dist/cjs/hooks/use-on-resize-table.js +110 -33
  181. package/dist/cjs/hooks/use-on-sort-column.d.ts +28 -3
  182. package/dist/cjs/hooks/use-on-sort-column.d.ts.map +1 -1
  183. package/dist/cjs/hooks/use-on-sort-column.js +136 -90
  184. package/dist/cjs/hooks/use-on-sort-range.d.ts +26 -3
  185. package/dist/cjs/hooks/use-on-sort-range.d.ts.map +1 -1
  186. package/dist/cjs/hooks/use-on-sort-range.js +113 -67
  187. package/dist/cjs/hooks/use-on-sort-table.d.ts +18 -1
  188. package/dist/cjs/hooks/use-on-sort-table.d.ts.map +1 -1
  189. package/dist/cjs/hooks/use-on-sort-table.js +128 -98
  190. package/dist/cjs/hooks/use-on-subtotal.d.ts +10 -3
  191. package/dist/cjs/hooks/use-on-subtotal.d.ts.map +1 -1
  192. package/dist/cjs/hooks/use-on-subtotal.js +13 -9
  193. package/dist/cjs/hooks/use-on-table.d.ts +39 -7
  194. package/dist/cjs/hooks/use-on-table.d.ts.map +1 -1
  195. package/dist/cjs/hooks/use-on-table.js +257 -49
  196. package/dist/cjs/hooks/use-on-undo-calculated-column.d.ts +23 -0
  197. package/dist/cjs/hooks/use-on-undo-calculated-column.d.ts.map +1 -0
  198. package/dist/cjs/hooks/use-on-undo-calculated-column.js +70 -0
  199. package/dist/cjs/hooks/use-on-undo-table-auto-expansion.d.ts +28 -0
  200. package/dist/cjs/hooks/use-on-undo-table-auto-expansion.d.ts.map +1 -0
  201. package/dist/cjs/hooks/use-on-undo-table-auto-expansion.js +96 -0
  202. package/dist/cjs/hooks/use-on-update-named-range.d.ts +4 -2
  203. package/dist/cjs/hooks/use-on-update-named-range.d.ts.map +1 -1
  204. package/dist/cjs/hooks/use-on-update-named-range.js +13 -1
  205. package/dist/cjs/hooks/use-sheet-properties.d.ts +1 -0
  206. package/dist/cjs/hooks/use-sheet-properties.d.ts.map +1 -1
  207. package/dist/cjs/hooks/use-sheet-properties.js +54 -34
  208. package/dist/cjs/hooks/use-slicers.d.ts +2 -2
  209. package/dist/cjs/hooks/use-slicers.d.ts.map +1 -1
  210. package/dist/cjs/hooks/use-slicers.js +17 -26
  211. package/dist/cjs/hooks/use-sparkline-groups.d.ts +50 -0
  212. package/dist/cjs/hooks/use-sparkline-groups.d.ts.map +1 -0
  213. package/dist/cjs/hooks/use-sparkline-groups.js +192 -0
  214. package/dist/cjs/hooks/use-spreadsheet-state.d.ts +69 -12
  215. package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
  216. package/dist/cjs/hooks/use-spreadsheet-state.js +383 -84
  217. package/dist/cjs/hooks/use-structured-reference.d.ts.map +1 -1
  218. package/dist/cjs/hooks/use-structured-reference.js +17 -0
  219. package/dist/cjs/hooks/use-undo-redo-actions.d.ts +2 -1
  220. package/dist/cjs/hooks/use-undo-redo-actions.d.ts.map +1 -1
  221. package/dist/cjs/hooks/use-undo-redo-actions.js +10 -2
  222. package/dist/cjs/hooks/use-undo-redo.d.ts +12 -0
  223. package/dist/cjs/hooks/use-undo-redo.d.ts.map +1 -1
  224. package/dist/cjs/hooks/use-undo-redo.js +169 -10
  225. package/dist/cjs/hooks/utils/sort-rows.d.ts.map +1 -1
  226. package/dist/cjs/hooks/utils/sort-rows.js +4 -3
  227. package/dist/cjs/index.d.ts +8 -0
  228. package/dist/cjs/index.d.ts.map +1 -1
  229. package/dist/cjs/index.js +9 -0
  230. package/dist/cjs/interface/apply-fill.d.ts +26 -3
  231. package/dist/cjs/interface/apply-fill.d.ts.map +1 -1
  232. package/dist/cjs/interface/apply-fill.js +207 -98
  233. package/dist/cjs/interface/change-batch.d.ts +1 -1
  234. package/dist/cjs/interface/change-batch.d.ts.map +1 -1
  235. package/dist/cjs/interface/change-batch.js +112 -15
  236. package/dist/cjs/interface/change-calculated-column.d.ts +6 -2
  237. package/dist/cjs/interface/change-calculated-column.d.ts.map +1 -1
  238. package/dist/cjs/interface/change-calculated-column.js +87 -17
  239. package/dist/cjs/interface/change-table-column.d.ts +81 -7
  240. package/dist/cjs/interface/change-table-column.d.ts.map +1 -1
  241. package/dist/cjs/interface/change-table-column.js +336 -76
  242. package/dist/cjs/interface/create-table.d.ts +15 -3
  243. package/dist/cjs/interface/create-table.d.ts.map +1 -1
  244. package/dist/cjs/interface/create-table.js +100 -25
  245. package/dist/cjs/interface/delete-cells-shift-left.d.ts +1 -1
  246. package/dist/cjs/interface/delete-cells-shift-left.d.ts.map +1 -1
  247. package/dist/cjs/interface/delete-cells-shift-left.js +10 -1
  248. package/dist/cjs/interface/delete-cells-shift-up.d.ts +1 -1
  249. package/dist/cjs/interface/delete-cells-shift-up.d.ts.map +1 -1
  250. package/dist/cjs/interface/delete-cells-shift-up.js +10 -1
  251. package/dist/cjs/interface/delete-cells.d.ts +1 -1
  252. package/dist/cjs/interface/delete-cells.d.ts.map +1 -1
  253. package/dist/cjs/interface/delete-cells.js +81 -25
  254. package/dist/cjs/interface/delete-column.d.ts +1 -1
  255. package/dist/cjs/interface/delete-column.d.ts.map +1 -1
  256. package/dist/cjs/interface/delete-column.js +29 -22
  257. package/dist/cjs/interface/delete-row.d.ts +1 -1
  258. package/dist/cjs/interface/delete-row.d.ts.map +1 -1
  259. package/dist/cjs/interface/delete-row.js +244 -39
  260. package/dist/cjs/interface/delete-sheet.d.ts +2 -2
  261. package/dist/cjs/interface/delete-sheet.d.ts.map +1 -1
  262. package/dist/cjs/interface/delete-sheet.js +118 -1
  263. package/dist/cjs/interface/delete-table-column.d.ts +1 -1
  264. package/dist/cjs/interface/delete-table-column.d.ts.map +1 -1
  265. package/dist/cjs/interface/delete-table-column.js +11 -1
  266. package/dist/cjs/interface/delete-table-row.d.ts +1 -1
  267. package/dist/cjs/interface/delete-table-row.d.ts.map +1 -1
  268. package/dist/cjs/interface/delete-table-row.js +361 -275
  269. package/dist/cjs/interface/duplicate-sheet.d.ts.map +1 -1
  270. package/dist/cjs/interface/duplicate-sheet.js +83 -31
  271. package/dist/cjs/interface/embeds.d.ts +10 -1
  272. package/dist/cjs/interface/embeds.d.ts.map +1 -1
  273. package/dist/cjs/interface/embeds.js +120 -6
  274. package/dist/cjs/interface/insert-cells-shift-down.d.ts +1 -1
  275. package/dist/cjs/interface/insert-cells-shift-down.d.ts.map +1 -1
  276. package/dist/cjs/interface/insert-cells-shift-down.js +10 -1
  277. package/dist/cjs/interface/insert-cells-shift-right.d.ts +1 -1
  278. package/dist/cjs/interface/insert-cells-shift-right.d.ts.map +1 -1
  279. package/dist/cjs/interface/insert-cells-shift-right.js +10 -1
  280. package/dist/cjs/interface/insert-column.d.ts +2 -2
  281. package/dist/cjs/interface/insert-column.d.ts.map +1 -1
  282. package/dist/cjs/interface/insert-column.js +101 -56
  283. package/dist/cjs/interface/insert-row.d.ts +1 -1
  284. package/dist/cjs/interface/insert-row.d.ts.map +1 -1
  285. package/dist/cjs/interface/insert-row.js +25 -7
  286. package/dist/cjs/interface/insert-table-row.d.ts +2 -1
  287. package/dist/cjs/interface/insert-table-row.d.ts.map +1 -1
  288. package/dist/cjs/interface/insert-table-row.js +70 -19
  289. package/dist/cjs/interface/remove-duplicates.d.ts +1 -1
  290. package/dist/cjs/interface/remove-duplicates.d.ts.map +1 -1
  291. package/dist/cjs/interface/remove-duplicates.js +46 -6
  292. package/dist/cjs/interface/remove-table.d.ts +1 -1
  293. package/dist/cjs/interface/remove-table.d.ts.map +1 -1
  294. package/dist/cjs/interface/remove-table.js +72 -16
  295. package/dist/cjs/interface/slicers.d.ts +12 -1
  296. package/dist/cjs/interface/slicers.d.ts.map +1 -1
  297. package/dist/cjs/interface/slicers.js +47 -2
  298. package/dist/cjs/interface/spreadsheet-interface.d.ts +1 -1
  299. package/dist/cjs/interface/spreadsheet-interface.d.ts.map +1 -1
  300. package/dist/cjs/interface/spreadsheet-interface.js +64 -1
  301. package/dist/cjs/interface/table-totalrow.d.ts +13 -1
  302. package/dist/cjs/interface/table-totalrow.d.ts.map +1 -1
  303. package/dist/cjs/interface/table-totalrow.js +107 -73
  304. package/dist/cjs/interface/table-utils.d.ts +59 -6
  305. package/dist/cjs/interface/table-utils.d.ts.map +1 -1
  306. package/dist/cjs/interface/table-utils.js +211 -15
  307. package/dist/cjs/interface/update-table.d.ts +16 -1
  308. package/dist/cjs/interface/update-table.d.ts.map +1 -1
  309. package/dist/cjs/interface/update-table.js +190 -44
  310. package/dist/cjs/sheet-cell.d.ts.map +1 -1
  311. package/dist/cjs/test-setup.d.ts.map +1 -1
  312. package/dist/cjs/test-setup.js +6 -0
  313. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  314. package/dist/cjs/validation-schema/table.schema.d.ts +11 -0
  315. package/dist/cjs/validation-schema/table.schema.d.ts.map +1 -1
  316. package/dist/cjs/validation-schema/table.schema.js +20 -3
  317. package/dist/esm/api/anchored-objects.d.ts +122 -6
  318. package/dist/esm/api/anchored-objects.d.ts.map +1 -1
  319. package/dist/esm/api/anchored-objects.js +375 -15
  320. package/dist/esm/api/copy-paste.d.ts +8 -2
  321. package/dist/esm/api/copy-paste.d.ts.map +1 -1
  322. package/dist/esm/api/copy-paste.js +4 -4
  323. package/dist/esm/api/filter.d.ts +15 -1
  324. package/dist/esm/api/filter.d.ts.map +1 -1
  325. package/dist/esm/api/filter.js +28 -0
  326. package/dist/esm/api/formula.d.ts +63 -0
  327. package/dist/esm/api/formula.d.ts.map +1 -1
  328. package/dist/esm/api/formula.js +235 -8
  329. package/dist/esm/api/immer-utils.d.ts +11 -1
  330. package/dist/esm/api/immer-utils.d.ts.map +1 -1
  331. package/dist/esm/api/immer-utils.js +16 -0
  332. package/dist/esm/api/insert-cut-cells.d.ts +35 -0
  333. package/dist/esm/api/insert-cut-cells.d.ts.map +1 -0
  334. package/dist/esm/api/insert-cut-cells.js +67 -0
  335. package/dist/esm/api/merges.d.ts +8 -0
  336. package/dist/esm/api/merges.d.ts.map +1 -1
  337. package/dist/esm/api/merges.js +9 -0
  338. package/dist/esm/api/paint-format.d.ts +22 -1
  339. package/dist/esm/api/paint-format.d.ts.map +1 -1
  340. package/dist/esm/api/paint-format.js +44 -1
  341. package/dist/esm/api/sort.d.ts +23 -1
  342. package/dist/esm/api/sort.d.ts.map +1 -1
  343. package/dist/esm/api/sort.js +45 -6
  344. package/dist/esm/api/structural-guards.d.ts +57 -0
  345. package/dist/esm/api/structural-guards.d.ts.map +1 -1
  346. package/dist/esm/api/structural-guards.js +85 -0
  347. package/dist/esm/api/structural-table-refs.d.ts +58 -3
  348. package/dist/esm/api/structural-table-refs.d.ts.map +1 -1
  349. package/dist/esm/api/structural-table-refs.js +126 -6
  350. package/dist/esm/api/subtotal.d.ts +20 -13
  351. package/dist/esm/api/subtotal.d.ts.map +1 -1
  352. package/dist/esm/api/subtotal.js +15 -8
  353. package/dist/esm/api/table.d.ts +26 -2
  354. package/dist/esm/api/table.d.ts.map +1 -1
  355. package/dist/esm/api/table.js +70 -48
  356. package/dist/esm/api/validation.d.ts.map +1 -1
  357. package/dist/esm/api/validation.js +53 -8
  358. package/dist/esm/atoms/creating-table.atom.d.ts +22 -0
  359. package/dist/esm/atoms/creating-table.atom.d.ts.map +1 -0
  360. package/dist/esm/atoms/creating-table.atom.js +4 -0
  361. package/dist/esm/atoms/dialog-state.atom.d.ts +8 -0
  362. package/dist/esm/atoms/dialog-state.atom.d.ts.map +1 -1
  363. package/dist/esm/atoms/dialog-state.atom.js +12 -0
  364. package/dist/esm/atoms/editing-slicer.atom.d.ts +9 -0
  365. package/dist/esm/atoms/editing-slicer.atom.d.ts.map +1 -0
  366. package/dist/esm/atoms/editing-slicer.atom.js +6 -0
  367. package/dist/esm/atoms/index.d.ts +4 -0
  368. package/dist/esm/atoms/index.d.ts.map +1 -1
  369. package/dist/esm/atoms/index.js +4 -0
  370. package/dist/esm/atoms/inserting-slicer.atom.d.ts +8 -0
  371. package/dist/esm/atoms/inserting-slicer.atom.d.ts.map +1 -0
  372. package/dist/esm/atoms/inserting-slicer.atom.js +5 -0
  373. package/dist/esm/atoms/resizing-table.atom.d.ts +8 -0
  374. package/dist/esm/atoms/resizing-table.atom.d.ts.map +1 -0
  375. package/dist/esm/atoms/resizing-table.atom.js +5 -0
  376. package/dist/esm/commands.d.ts +138 -2
  377. package/dist/esm/commands.d.ts.map +1 -1
  378. package/dist/esm/components/editors/embed-editor.d.ts +4 -2
  379. package/dist/esm/components/editors/embed-editor.d.ts.map +1 -1
  380. package/dist/esm/components/editors/embed-editor.js +40 -6
  381. package/dist/esm/components/editors/slicer-editor.d.ts +15 -0
  382. package/dist/esm/components/editors/slicer-editor.d.ts.map +1 -0
  383. package/dist/esm/components/editors/slicer-editor.js +85 -0
  384. package/dist/esm/components/editors/table-editor.d.ts +58 -2
  385. package/dist/esm/components/editors/table-editor.d.ts.map +1 -1
  386. package/dist/esm/components/editors/table-editor.js +243 -19
  387. package/dist/esm/components/index.d.ts +1 -0
  388. package/dist/esm/components/index.d.ts.map +1 -1
  389. package/dist/esm/components/index.js +1 -0
  390. package/dist/esm/constants.d.ts +9 -1
  391. package/dist/esm/constants.d.ts.map +1 -1
  392. package/dist/esm/constants.js +12 -0
  393. package/dist/esm/generated-names.d.ts +13 -3
  394. package/dist/esm/generated-names.d.ts.map +1 -1
  395. package/dist/esm/generated-names.js +3 -1
  396. package/dist/esm/helpers.d.ts +5 -0
  397. package/dist/esm/helpers.d.ts.map +1 -1
  398. package/dist/esm/helpers.js +7 -1
  399. package/dist/esm/hooks/use-on-change-batch.d.ts +19 -2
  400. package/dist/esm/hooks/use-on-change-batch.d.ts.map +1 -1
  401. package/dist/esm/hooks/use-on-change-batch.js +19 -3
  402. package/dist/esm/hooks/use-on-change-calculated-column.d.ts +10 -1
  403. package/dist/esm/hooks/use-on-change-calculated-column.d.ts.map +1 -1
  404. package/dist/esm/hooks/use-on-change-calculated-column.js +17 -5
  405. package/dist/esm/hooks/use-on-change-table-column.d.ts +6 -1
  406. package/dist/esm/hooks/use-on-change-table-column.d.ts.map +1 -1
  407. package/dist/esm/hooks/use-on-change-table-column.js +17 -5
  408. package/dist/esm/hooks/use-on-change.d.ts +36 -3
  409. package/dist/esm/hooks/use-on-change.d.ts.map +1 -1
  410. package/dist/esm/hooks/use-on-change.js +214 -124
  411. package/dist/esm/hooks/use-on-copy.d.ts +1 -1
  412. package/dist/esm/hooks/use-on-copy.d.ts.map +1 -1
  413. package/dist/esm/hooks/use-on-copy.js +2 -3
  414. package/dist/esm/hooks/use-on-create-custom-table-style.d.ts +17 -0
  415. package/dist/esm/hooks/use-on-create-custom-table-style.d.ts.map +1 -0
  416. package/dist/esm/hooks/use-on-create-custom-table-style.js +26 -0
  417. package/dist/esm/hooks/use-on-create-named-range.d.ts +4 -2
  418. package/dist/esm/hooks/use-on-create-named-range.d.ts.map +1 -1
  419. package/dist/esm/hooks/use-on-create-named-range.js +11 -1
  420. package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts +2 -1
  421. package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
  422. package/dist/esm/hooks/use-on-delete-cells-shift-left.js +3 -1
  423. package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts +2 -1
  424. package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
  425. package/dist/esm/hooks/use-on-delete-cells-shift-up.js +3 -1
  426. package/dist/esm/hooks/use-on-delete-column.d.ts +2 -1
  427. package/dist/esm/hooks/use-on-delete-column.d.ts.map +1 -1
  428. package/dist/esm/hooks/use-on-delete-column.js +3 -1
  429. package/dist/esm/hooks/use-on-delete-row.d.ts +2 -1
  430. package/dist/esm/hooks/use-on-delete-row.d.ts.map +1 -1
  431. package/dist/esm/hooks/use-on-delete-row.js +3 -1
  432. package/dist/esm/hooks/use-on-delete-sheet.d.ts +9 -1
  433. package/dist/esm/hooks/use-on-delete-sheet.d.ts.map +1 -1
  434. package/dist/esm/hooks/use-on-delete-sheet.js +17 -1
  435. package/dist/esm/hooks/use-on-delete-table-row.d.ts +4 -1
  436. package/dist/esm/hooks/use-on-delete-table-row.d.ts.map +1 -1
  437. package/dist/esm/hooks/use-on-delete-table-row.js +19 -1
  438. package/dist/esm/hooks/use-on-delete.d.ts +5 -2
  439. package/dist/esm/hooks/use-on-delete.d.ts.map +1 -1
  440. package/dist/esm/hooks/use-on-delete.js +5 -1
  441. package/dist/esm/hooks/use-on-embeds.d.ts +7 -4
  442. package/dist/esm/hooks/use-on-embeds.d.ts.map +1 -1
  443. package/dist/esm/hooks/use-on-embeds.js +23 -6
  444. package/dist/esm/hooks/use-on-fill.d.ts +17 -2
  445. package/dist/esm/hooks/use-on-fill.d.ts.map +1 -1
  446. package/dist/esm/hooks/use-on-fill.js +27 -1
  447. package/dist/esm/hooks/use-on-filter-table.d.ts.map +1 -1
  448. package/dist/esm/hooks/use-on-filter-table.js +97 -26
  449. package/dist/esm/hooks/use-on-import-excel.d.ts +2 -1
  450. package/dist/esm/hooks/use-on-import-excel.d.ts.map +1 -1
  451. package/dist/esm/hooks/use-on-import-excel.js +4 -1
  452. package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts +2 -1
  453. package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
  454. package/dist/esm/hooks/use-on-insert-cells-shift-down.js +3 -1
  455. package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts +2 -1
  456. package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
  457. package/dist/esm/hooks/use-on-insert-cells-shift-right.js +3 -1
  458. package/dist/esm/hooks/use-on-insert-column.d.ts +2 -1
  459. package/dist/esm/hooks/use-on-insert-column.d.ts.map +1 -1
  460. package/dist/esm/hooks/use-on-insert-column.js +3 -1
  461. package/dist/esm/hooks/use-on-insert-row.d.ts +2 -1
  462. package/dist/esm/hooks/use-on-insert-row.d.ts.map +1 -1
  463. package/dist/esm/hooks/use-on-insert-row.js +3 -1
  464. package/dist/esm/hooks/use-on-insert-table-row.d.ts +5 -2
  465. package/dist/esm/hooks/use-on-insert-table-row.d.ts.map +1 -1
  466. package/dist/esm/hooks/use-on-insert-table-row.js +19 -1
  467. package/dist/esm/hooks/use-on-merge-unmerge-cells.d.ts +3 -2
  468. package/dist/esm/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
  469. package/dist/esm/hooks/use-on-merge-unmerge-cells.js +12 -1
  470. package/dist/esm/hooks/use-on-move-columns.d.ts +4 -1
  471. package/dist/esm/hooks/use-on-move-columns.d.ts.map +1 -1
  472. package/dist/esm/hooks/use-on-move-columns.js +28 -6
  473. package/dist/esm/hooks/use-on-move-rows.d.ts +18 -1
  474. package/dist/esm/hooks/use-on-move-rows.d.ts.map +1 -1
  475. package/dist/esm/hooks/use-on-move-rows.js +44 -6
  476. package/dist/esm/hooks/use-on-move-selection.d.ts +9 -2
  477. package/dist/esm/hooks/use-on-move-selection.d.ts.map +1 -1
  478. package/dist/esm/hooks/use-on-move-selection.js +57 -1
  479. package/dist/esm/hooks/use-on-paste.d.ts +33 -2
  480. package/dist/esm/hooks/use-on-paste.d.ts.map +1 -1
  481. package/dist/esm/hooks/use-on-paste.js +825 -643
  482. package/dist/esm/hooks/use-on-remove-duplicates.d.ts +5 -2
  483. package/dist/esm/hooks/use-on-remove-duplicates.d.ts.map +1 -1
  484. package/dist/esm/hooks/use-on-remove-duplicates.js +5 -1
  485. package/dist/esm/hooks/use-on-request-create-table.d.ts +13 -0
  486. package/dist/esm/hooks/use-on-request-create-table.d.ts.map +1 -0
  487. package/dist/esm/hooks/use-on-request-create-table.js +43 -0
  488. package/dist/esm/hooks/use-on-request-insert-slicer.d.ts +7 -0
  489. package/dist/esm/hooks/use-on-request-insert-slicer.d.ts.map +1 -0
  490. package/dist/esm/hooks/use-on-request-insert-slicer.js +15 -0
  491. package/dist/esm/hooks/use-on-request-resize-table.d.ts +7 -0
  492. package/dist/esm/hooks/use-on-request-resize-table.d.ts.map +1 -0
  493. package/dist/esm/hooks/use-on-request-resize-table.js +15 -0
  494. package/dist/esm/hooks/use-on-resize-table.d.ts +5 -1
  495. package/dist/esm/hooks/use-on-resize-table.d.ts.map +1 -1
  496. package/dist/esm/hooks/use-on-resize-table.js +107 -27
  497. package/dist/esm/hooks/use-on-sort-column.d.ts +28 -3
  498. package/dist/esm/hooks/use-on-sort-column.d.ts.map +1 -1
  499. package/dist/esm/hooks/use-on-sort-column.js +105 -68
  500. package/dist/esm/hooks/use-on-sort-range.d.ts +26 -3
  501. package/dist/esm/hooks/use-on-sort-range.d.ts.map +1 -1
  502. package/dist/esm/hooks/use-on-sort-range.js +100 -64
  503. package/dist/esm/hooks/use-on-sort-table.d.ts +18 -1
  504. package/dist/esm/hooks/use-on-sort-table.d.ts.map +1 -1
  505. package/dist/esm/hooks/use-on-sort-table.js +107 -86
  506. package/dist/esm/hooks/use-on-subtotal.d.ts +10 -3
  507. package/dist/esm/hooks/use-on-subtotal.d.ts.map +1 -1
  508. package/dist/esm/hooks/use-on-subtotal.js +7 -5
  509. package/dist/esm/hooks/use-on-table.d.ts +39 -7
  510. package/dist/esm/hooks/use-on-table.d.ts.map +1 -1
  511. package/dist/esm/hooks/use-on-table.js +234 -26
  512. package/dist/esm/hooks/use-on-undo-calculated-column.d.ts +23 -0
  513. package/dist/esm/hooks/use-on-undo-calculated-column.d.ts.map +1 -0
  514. package/dist/esm/hooks/use-on-undo-calculated-column.js +62 -0
  515. package/dist/esm/hooks/use-on-undo-table-auto-expansion.d.ts +28 -0
  516. package/dist/esm/hooks/use-on-undo-table-auto-expansion.d.ts.map +1 -0
  517. package/dist/esm/hooks/use-on-undo-table-auto-expansion.js +75 -0
  518. package/dist/esm/hooks/use-on-update-named-range.d.ts +4 -2
  519. package/dist/esm/hooks/use-on-update-named-range.d.ts.map +1 -1
  520. package/dist/esm/hooks/use-on-update-named-range.js +13 -1
  521. package/dist/esm/hooks/use-sheet-properties.d.ts +1 -0
  522. package/dist/esm/hooks/use-sheet-properties.d.ts.map +1 -1
  523. package/dist/esm/hooks/use-sheet-properties.js +38 -19
  524. package/dist/esm/hooks/use-slicers.d.ts +2 -2
  525. package/dist/esm/hooks/use-slicers.d.ts.map +1 -1
  526. package/dist/esm/hooks/use-slicers.js +16 -8
  527. package/dist/esm/hooks/use-sparkline-groups.d.ts +50 -0
  528. package/dist/esm/hooks/use-sparkline-groups.d.ts.map +1 -0
  529. package/dist/esm/hooks/use-sparkline-groups.js +146 -0
  530. package/dist/esm/hooks/use-spreadsheet-state.d.ts +69 -12
  531. package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
  532. package/dist/esm/hooks/use-spreadsheet-state.js +321 -14
  533. package/dist/esm/hooks/use-structured-reference.d.ts.map +1 -1
  534. package/dist/esm/hooks/use-structured-reference.js +17 -0
  535. package/dist/esm/hooks/use-undo-redo-actions.d.ts +2 -1
  536. package/dist/esm/hooks/use-undo-redo-actions.d.ts.map +1 -1
  537. package/dist/esm/hooks/use-undo-redo-actions.js +8 -2
  538. package/dist/esm/hooks/use-undo-redo.d.ts +12 -0
  539. package/dist/esm/hooks/use-undo-redo.d.ts.map +1 -1
  540. package/dist/esm/hooks/use-undo-redo.js +158 -7
  541. package/dist/esm/hooks/utils/sort-rows.d.ts.map +1 -1
  542. package/dist/esm/hooks/utils/sort-rows.js +4 -3
  543. package/dist/esm/index.d.ts +8 -0
  544. package/dist/esm/index.d.ts.map +1 -1
  545. package/dist/esm/index.js +9 -0
  546. package/dist/esm/interface/apply-fill.d.ts +26 -3
  547. package/dist/esm/interface/apply-fill.d.ts.map +1 -1
  548. package/dist/esm/interface/apply-fill.js +188 -88
  549. package/dist/esm/interface/change-batch.d.ts +1 -1
  550. package/dist/esm/interface/change-batch.d.ts.map +1 -1
  551. package/dist/esm/interface/change-batch.js +89 -8
  552. package/dist/esm/interface/change-calculated-column.d.ts +6 -2
  553. package/dist/esm/interface/change-calculated-column.d.ts.map +1 -1
  554. package/dist/esm/interface/change-calculated-column.js +81 -16
  555. package/dist/esm/interface/change-table-column.d.ts +81 -7
  556. package/dist/esm/interface/change-table-column.d.ts.map +1 -1
  557. package/dist/esm/interface/change-table-column.js +295 -67
  558. package/dist/esm/interface/create-table.d.ts +15 -3
  559. package/dist/esm/interface/create-table.d.ts.map +1 -1
  560. package/dist/esm/interface/create-table.js +103 -27
  561. package/dist/esm/interface/delete-cells-shift-left.d.ts +1 -1
  562. package/dist/esm/interface/delete-cells-shift-left.d.ts.map +1 -1
  563. package/dist/esm/interface/delete-cells-shift-left.js +10 -1
  564. package/dist/esm/interface/delete-cells-shift-up.d.ts +1 -1
  565. package/dist/esm/interface/delete-cells-shift-up.d.ts.map +1 -1
  566. package/dist/esm/interface/delete-cells-shift-up.js +10 -1
  567. package/dist/esm/interface/delete-cells.d.ts +1 -1
  568. package/dist/esm/interface/delete-cells.d.ts.map +1 -1
  569. package/dist/esm/interface/delete-cells.js +47 -14
  570. package/dist/esm/interface/delete-column.d.ts +1 -1
  571. package/dist/esm/interface/delete-column.d.ts.map +1 -1
  572. package/dist/esm/interface/delete-column.js +26 -30
  573. package/dist/esm/interface/delete-row.d.ts +1 -1
  574. package/dist/esm/interface/delete-row.d.ts.map +1 -1
  575. package/dist/esm/interface/delete-row.js +191 -44
  576. package/dist/esm/interface/delete-sheet.d.ts +2 -2
  577. package/dist/esm/interface/delete-sheet.d.ts.map +1 -1
  578. package/dist/esm/interface/delete-sheet.js +113 -1
  579. package/dist/esm/interface/delete-table-column.d.ts +1 -1
  580. package/dist/esm/interface/delete-table-column.d.ts.map +1 -1
  581. package/dist/esm/interface/delete-table-column.js +11 -1
  582. package/dist/esm/interface/delete-table-row.d.ts +1 -1
  583. package/dist/esm/interface/delete-table-row.d.ts.map +1 -1
  584. package/dist/esm/interface/delete-table-row.js +312 -232
  585. package/dist/esm/interface/duplicate-sheet.d.ts.map +1 -1
  586. package/dist/esm/interface/duplicate-sheet.js +73 -26
  587. package/dist/esm/interface/embeds.d.ts +10 -1
  588. package/dist/esm/interface/embeds.d.ts.map +1 -1
  589. package/dist/esm/interface/embeds.js +84 -5
  590. package/dist/esm/interface/insert-cells-shift-down.d.ts +1 -1
  591. package/dist/esm/interface/insert-cells-shift-down.d.ts.map +1 -1
  592. package/dist/esm/interface/insert-cells-shift-down.js +10 -1
  593. package/dist/esm/interface/insert-cells-shift-right.d.ts +1 -1
  594. package/dist/esm/interface/insert-cells-shift-right.d.ts.map +1 -1
  595. package/dist/esm/interface/insert-cells-shift-right.js +10 -1
  596. package/dist/esm/interface/insert-column.d.ts +2 -2
  597. package/dist/esm/interface/insert-column.d.ts.map +1 -1
  598. package/dist/esm/interface/insert-column.js +70 -33
  599. package/dist/esm/interface/insert-row.d.ts +1 -1
  600. package/dist/esm/interface/insert-row.d.ts.map +1 -1
  601. package/dist/esm/interface/insert-row.js +22 -6
  602. package/dist/esm/interface/insert-table-row.d.ts +2 -1
  603. package/dist/esm/interface/insert-table-row.d.ts.map +1 -1
  604. package/dist/esm/interface/insert-table-row.js +67 -12
  605. package/dist/esm/interface/remove-duplicates.d.ts +1 -1
  606. package/dist/esm/interface/remove-duplicates.d.ts.map +1 -1
  607. package/dist/esm/interface/remove-duplicates.js +41 -6
  608. package/dist/esm/interface/remove-table.d.ts +1 -1
  609. package/dist/esm/interface/remove-table.d.ts.map +1 -1
  610. package/dist/esm/interface/remove-table.js +58 -10
  611. package/dist/esm/interface/slicers.d.ts +12 -1
  612. package/dist/esm/interface/slicers.d.ts.map +1 -1
  613. package/dist/esm/interface/slicers.js +44 -2
  614. package/dist/esm/interface/spreadsheet-interface.d.ts +1 -1
  615. package/dist/esm/interface/spreadsheet-interface.d.ts.map +1 -1
  616. package/dist/esm/interface/spreadsheet-interface.js +73 -1
  617. package/dist/esm/interface/table-totalrow.d.ts +13 -1
  618. package/dist/esm/interface/table-totalrow.d.ts.map +1 -1
  619. package/dist/esm/interface/table-totalrow.js +98 -68
  620. package/dist/esm/interface/table-utils.d.ts +59 -6
  621. package/dist/esm/interface/table-utils.d.ts.map +1 -1
  622. package/dist/esm/interface/table-utils.js +155 -14
  623. package/dist/esm/interface/update-table.d.ts +16 -1
  624. package/dist/esm/interface/update-table.d.ts.map +1 -1
  625. package/dist/esm/interface/update-table.js +203 -42
  626. package/dist/esm/sheet-cell.d.ts.map +1 -1
  627. package/dist/esm/test-setup.d.ts.map +1 -1
  628. package/dist/esm/test-setup.js +6 -0
  629. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  630. package/dist/esm/validation-schema/table.schema.d.ts +11 -0
  631. package/dist/esm/validation-schema/table.schema.d.ts.map +1 -1
  632. package/dist/esm/validation-schema/table.schema.js +15 -2
  633. package/package.json +25 -17
@@ -4,15 +4,20 @@ import { createNewSheet, DEFAULT_COLUMN_COUNT, DEFAULT_ROW_COUNT, useGetCellDime
4
4
  import { useFonts } from "@rowsncolumns/spreadsheet";
5
5
  import { getBandedCells } from "@rowsncolumns/spreadsheet";
6
6
  import { defaultSpreadsheetTheme, useCallbackRef, useSpreadsheetTheme, } from "@rowsncolumns/spreadsheet";
7
- import { findMatchingBandProperty, getCurrentLocale, isNil, setDefaultEnableAtFormula, uuid, } from "@rowsncolumns/utils";
7
+ import { findMatchingBandProperty, getCurrentLocale, getFormulaLocale, isNil, setDefaultEnableAtFormula, uuid, } from "@rowsncolumns/utils";
8
8
  import { enableMapSet, enablePatches, setUseStrictShallowCopy } from "immer";
9
- import { useCallback, useEffect, useMemo, useRef } from "react";
9
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
10
10
  import { getAutoFillValues as defaultGetAutoFillValues } from "../api/fill";
11
+ import { planInsertCutCells } from "../api/insert-cut-cells";
12
+ import { getMoveRangeRefusal } from "../api/structural-guards";
13
+ import { findPartiallyCoveredMerge, MERGED_CELL_MOVE_ERROR } from "../api/merges";
14
+ import { useShowError } from "../atoms/error-state.atom";
11
15
  import { getGeneratedSheetName } from "../generated-names";
12
16
  import { SheetCell } from "../sheet-cell";
13
17
  import { useCalculation } from "./use-calculation";
14
18
  import { useCalculationInitialize } from "./use-calculation-initialize";
15
19
  import { useCalculationWorker } from "./use-calculation-worker";
20
+ import { SHEET_PROTECTION_ERROR_TITLE, useCanEditCellRange, useCanPerformSheetAction, } from "./use-can-edit-cellrange";
16
21
  import { useCellXfsRegistry } from "./use-cellxfs-registry";
17
22
  import { useCitations } from "./use-citations";
18
23
  import { useComments } from "./use-comments";
@@ -31,6 +36,7 @@ import { useOnChangeBatchStream } from "./use-on-change-batch-stream";
31
36
  import { useOnChangeDecimals } from "./use-on-change-decimals";
32
37
  import { useOnChangeFormatting } from "./use-on-change-formatting";
33
38
  import { useOnChangeSheetTabcolor } from "./use-on-change-sheet-tabcolor";
39
+ import { useOnChangeTableColumn } from "./use-on-change-table-column";
34
40
  import { useOnChangeTheme } from "./use-on-change-theme";
35
41
  import { useOnClearFormatting } from "./use-on-clear-formatting";
36
42
  import { useOnCollapseColumnGroup } from "./use-on-collapse-column-group";
@@ -49,6 +55,7 @@ import { useOnDeleteTableRow } from "./use-on-delete-table-row";
49
55
  import { useOnDragnDrop } from "./use-on-drag-n-drop";
50
56
  import { useOnDuplicateSheet } from "./use-on-duplicate-sheet";
51
57
  import { useOnEmbeds } from "./use-on-embeds";
58
+ import { useSparklineGroups } from "./use-sparkline-groups";
52
59
  import { useOnExpandColumnGroup } from "./use-on-expand-column-group";
53
60
  import { useOnExpandRowGroup } from "./use-on-expand-row-group";
54
61
  import { useOnFill } from "./use-on-fill";
@@ -85,16 +92,20 @@ import { useOnMoveRows } from "./use-on-move-rows";
85
92
  import { useOnMoveSelection } from "./use-on-move-selection";
86
93
  import { useOnMoveSheet } from "./use-on-move-sheet";
87
94
  import { useOnPaste } from "./use-on-paste";
95
+ import { useOnCreateCustomTableStyle } from "./use-on-create-custom-table-style";
88
96
  import { useOnProtectRange } from "./use-on-protect-range";
89
97
  import { useOnProtectSheet } from "./use-on-protect-sheet";
90
98
  import { useOnRemoveDuplicates } from "./use-on-remove-duplicates";
91
99
  import { useOnRenameSheet } from "./use-on-rename-sheet";
92
100
  import { useOnRequestCalculateWrapper } from "./use-on-request-calculate-wrapper";
93
101
  import { useOnRequestConditionalFormat } from "./use-on-request-conditional-format";
102
+ import { useOnRequestCreateTable } from "./use-on-request-create-table";
94
103
  import { useOnRequestDataValidation } from "./use-on-request-data-validation";
95
104
  import { useOnRequestDefineNamedRange } from "./use-on-request-define-named-range";
96
105
  import { useOnRequestDeleteSheet } from "./use-on-request-delete-sheet";
97
106
  import { useOnRequestEditTable } from "./use-on-request-edit-table";
107
+ import { useOnRequestInsertSlicer } from "./use-on-request-insert-slicer";
108
+ import { useOnRequestResizeTable } from "./use-on-request-resize-table";
98
109
  import { useOnRequestFormatCells } from "./use-on-request-format-cells";
99
110
  import { useOnRequestInsertImage } from "./use-on-request-insert-image";
100
111
  import { useOnRequestInsertLink } from "./use-on-request-insert-link";
@@ -102,6 +113,9 @@ import { useOnRequestResize } from "./use-on-request-resize";
102
113
  import { useOnRequestUpdateNamedRange } from "./use-on-request-update-named-range";
103
114
  import { useOnResize } from "./use-on-resize";
104
115
  import { useOnResizeTable } from "./use-on-resize-table";
116
+ import { useOnUndoTableAutoExpansion } from "./use-on-undo-table-auto-expansion";
117
+ import { useOnUndoCalculatedColumn } from "./use-on-undo-calculated-column";
118
+ import { useOnChangeCalculatedColumn } from "./use-on-change-calculated-column";
105
119
  import { useOnSetOutlineDepth } from "./use-on-set-outline-depth";
106
120
  import { useOnShowColumn } from "./use-on-show-column";
107
121
  import { useOnShowRow } from "./use-on-show-row";
@@ -154,13 +168,20 @@ export const deriveBuiltInTableBanding = (table) => {
154
168
  return undefined;
155
169
  }
156
170
  if (!showRowStripes && banded.rowProperties) {
157
- const { headerColor, headerBorder, totalRowColor, totalRowBorder } = banded.rowProperties;
158
- if (headerColor || headerBorder || totalRowColor || totalRowBorder) {
171
+ const { headerColor, headerBorder, totalRowColor, totalRowBorder, firstColumnColor, lastColumnColor, } = banded.rowProperties;
172
+ if (headerColor ||
173
+ headerBorder ||
174
+ totalRowColor ||
175
+ totalRowBorder ||
176
+ firstColumnColor ||
177
+ lastColumnColor) {
159
178
  banded.rowProperties = {
160
179
  headerColor,
161
180
  headerBorder,
162
181
  totalRowColor,
163
182
  totalRowBorder,
183
+ firstColumnColor,
184
+ lastColumnColor,
164
185
  };
165
186
  }
166
187
  else {
@@ -175,6 +196,15 @@ export const deriveBuiltInTableBanding = (table) => {
175
196
  }
176
197
  return banded;
177
198
  };
199
+ /**
200
+ * `table` as the gallery's hovered style would leave it: the preview's theme and banding replace
201
+ * the table's own (a preview with neither paints it unstyled — the "None" style).
202
+ */
203
+ export const previewTableStyle = (table, preview) => ({
204
+ ...table,
205
+ theme: preview.theme ?? undefined,
206
+ bandedRange: preview.bandedRange ?? undefined,
207
+ });
178
208
  /**
179
209
  * Use Spreadsheet Hook
180
210
  * @param param0
@@ -206,7 +236,7 @@ onChangeHistory,
206
236
  // Semantic command stream
207
237
  onCommand: onCommandProp,
208
238
  // Theme
209
- onChangeTheme, namedCellStyles, onChangeNamedCellStyles,
239
+ onChangeTheme, namedCellStyles, onChangeNamedCellStyles, customTableStyles, onChangeCustomTableStyles,
210
240
  // error handler
211
241
  onError,
212
242
  // Get auto fill values
@@ -223,11 +253,11 @@ colorMode,
223
253
  // on-demand
224
254
  fonts,
225
255
  // Drag and drop
226
- enableDragnDrop = true,
256
+ enableDragnDrop = true, autoExpandTables = true, autoCalculatedColumns = true,
227
257
  // Enable undo/redo functionality
228
258
  enabledUndoRedo = true,
229
259
  // Current locale
230
- locale = getCurrentLocale(),
260
+ locale = getCurrentLocale(), formulaLocale: formulaLocaleProp,
231
261
  // Templates for auto-generated names (sheets, tables, table columns)
232
262
  generatedNames: generatedNamesProp, enableAtFormula = false,
233
263
  // Preserve data formatting like color, font style on paste
@@ -368,17 +398,28 @@ sanitizeHtml, }) => {
368
398
  * built-in table styles persist only the name, and the grid paints tables
369
399
  * exclusively from bandedRange, so without the fallback they render unstyled.
370
400
  */
401
+ const [tableStylePreview, setTableStylePreview] = useState(null);
402
+ // The gallery's hovered style paints over the table's own while the pointer rests on the
403
+ // swatch — UI state only, never written to the table or its history.
404
+ const onPreviewTableStyle = useCallback((preview) => setTableStylePreview(preview), []);
371
405
  const bandedRanges = useMemo(() => {
372
406
  return tables
373
407
  ?.filter(({ sheetId }) => sheetId === activeSheetId)
374
408
  .map((table) => {
375
- const banded = table.bandedRange ??
376
- deriveBuiltInTableBanding(table);
409
+ const previewed = tableStylePreview?.sheetId === table.sheetId &&
410
+ tableStylePreview.tableId === table.id
411
+ ? previewTableStyle(table, tableStylePreview)
412
+ : table;
413
+ const banded = previewed.bandedRange ??
414
+ deriveBuiltInTableBanding(previewed);
377
415
  if (isNil(banded)) {
378
416
  return undefined;
379
417
  }
380
418
  return {
381
- bandedRangeId: `${table.id}-${table.theme}`,
419
+ bandedRangeId: `${table.id}-${previewed.theme}`,
420
+ showFirstColumn: table.showFirstColumn,
421
+ showLastColumn: table.showLastColumn,
422
+ totalRow: table.totalRow ?? false,
382
423
  // Add sheet Id to range
383
424
  range: {
384
425
  ...table.range,
@@ -388,7 +429,7 @@ sanitizeHtml, }) => {
388
429
  };
389
430
  })
390
431
  .filter((band) => !isNil(band));
391
- }, [tables, activeSheetId]);
432
+ }, [tables, activeSheetId, tableStylePreview]);
392
433
  const getCellDimensions = useGetCellDimensions();
393
434
  const getCurrentRowHeight = useGetRowHeight();
394
435
  const getContentfulRangeAroundCell = useGetContentfulRangeAroundCell();
@@ -400,7 +441,7 @@ sanitizeHtml, }) => {
400
441
  const getPrecedentsRef = useRef(undefined);
401
442
  const getPrecedentsForward = useCallback((cell) => getPrecedentsRef.current?.(cell) ?? [], []);
402
443
  // Sheet properties
403
- const { getDataRowCount, getNonEmptyRowCount, getNonEmptyColumnCount, getDataColumnCount, getSheetId, getSheetName, getSheetCount, getSheetIndex, getSheetNames, getSheetProperties, getCellData, getMentionsFromCell, getTextFormatRuns, getEffectiveValue, getEffectiveValueForCalculation, getUserEnteredValue, getUserEnteredValueStable, getConditionalFormatFormula, getDataValidationFormula, getDataValidation, getDefaultHorizontalAlignment, getDataValidationById, getActiveSheetId, getUserEnteredFormat, getEffectiveFormat, getFormattedValue, getFormulaValue, getSeriesValuesFromRange, getFormattingFromRange, getUserEnteredValuesFromRange, getFormulasFromRange, getDomainValuesFromRange, getColumnarDataFromRange, isColumnHidden, isHiddenRow, isHiddenByFilterRow, getRowOutlineLevel, getSheetRowCount, getSheetColumnCount, getColumnWidth, getRowHeight, getEffectiveExtendedValue, getUserEnteredExtendedValue, getFrozenRowCount, getErrorValue, } = useSheetProperties({
444
+ const { getDataRowCount, getNonEmptyRowCount, getNonEmptyColumnCount, getDataColumnCount, getSheetId, getSheetName, getSheetCount, getSheetIndex, getSheetNames, getSheetProperties, getCellData, getMentionsFromCell, getTextFormatRuns, getEffectiveValue, getEffectiveValueForCalculation, getUserEnteredValue, getUserEnteredValueStable, getConditionalFormatFormula, getDataValidationFormula, getDataValidation, getDefaultHorizontalAlignment, getDataValidationById, getActiveSheetId, getUserEnteredFormat, getEffectiveFormat, getFormattedValue, getFormulaValue, getSeriesValuesFromRange, getFormattingFromRange, getUserEnteredValuesFromRange, getFormulasFromRange, getDomainValuesFromRange, getColumnarDataFromRange, isColumnHidden, isHiddenRow, isHiddenByFilterRow, isManuallyHiddenRow, getRowOutlineLevel, getSheetRowCount, getSheetColumnCount, getColumnWidth, getRowHeight, getEffectiveExtendedValue, getUserEnteredExtendedValue, getFrozenRowCount, getErrorValue, } = useSheetProperties({
404
445
  getEffectiveStructuredValue,
405
446
  conditionalFormats,
406
447
  sheetData,
@@ -596,6 +637,7 @@ sanitizeHtml, }) => {
596
637
  onChangeConditionalFormats,
597
638
  onChangeDataValidations,
598
639
  onChangeProtectedRanges,
640
+ onChangeCustomTableStyles,
599
641
  onChangePivotTables,
600
642
  onChangeCellXfs,
601
643
  onChangeTheme,
@@ -606,7 +648,7 @@ sanitizeHtml, }) => {
606
648
  clearRangeCache,
607
649
  });
608
650
  // Undo manager
609
- const { createHistory, createHistoryWithoutPointer, onRedo, onUndo, canUndo, canRedo, onClearHistory, } = useUndoRedo({
651
+ const { createHistory, createHistoryWithoutPointer, batchHistory, onRedo, onUndo, canUndo, canRedo, onClearHistory, } = useUndoRedo({
610
652
  isEnabled: enabledUndoRedo,
611
653
  onUndoAction,
612
654
  onRedoAction,
@@ -643,6 +685,14 @@ sanitizeHtml, }) => {
643
685
  createHistory,
644
686
  onChangeSheetData,
645
687
  onChangeSheets,
688
+ onChangeCharts,
689
+ onChangeEmbeds,
690
+ onChangeSlicers,
691
+ onChangeTables,
692
+ onChangeConditionalFormats,
693
+ onChangeDataValidations,
694
+ onChangeNamedRanges,
695
+ onChangeProtectedRanges,
646
696
  onChangeActiveSheet,
647
697
  enqueueGraphOperation,
648
698
  onCommand,
@@ -816,16 +866,22 @@ sanitizeHtml, }) => {
816
866
  isMergedCell,
817
867
  onChangeSheetData,
818
868
  onChangeTables,
869
+ onChangeCharts,
819
870
  onChangeSheets,
820
871
  enqueueCalculation,
821
872
  enqueueGraphOperation,
822
873
  createHistory,
874
+ batchHistory,
875
+ autoExpandTables,
876
+ autoCalculatedColumns,
823
877
  getDependents,
878
+ getGraphNodes,
824
879
  getUserEnteredValue: getUserEnteredValueStable,
825
880
  getTextFormatRuns,
826
881
  getSheetName,
827
882
  onCommand,
828
883
  generatedNames,
884
+ onRequestCalculate: onRequestCalculateWithoutFormatting,
829
885
  });
830
886
  // onChange batch
831
887
  const onChangeBatch = useOnChangeBatch({
@@ -841,12 +897,16 @@ sanitizeHtml, }) => {
841
897
  onChangeSheetData,
842
898
  onChangeSheets,
843
899
  onChangeTables,
900
+ onChangeCharts,
844
901
  getFormattedValue,
845
902
  getCellDimensions,
846
903
  getRowHeight: getCurrentRowHeight,
847
904
  isMergedCell,
848
905
  tables,
849
906
  createHistory,
907
+ batchHistory,
908
+ autoExpandTables,
909
+ autoCalculatedColumns,
850
910
  onChangeCitations,
851
911
  onCommand,
852
912
  generatedNames,
@@ -870,8 +930,17 @@ sanitizeHtml, }) => {
870
930
  onChangeActiveCell,
871
931
  isArrayFormula,
872
932
  getRowHeight: getCurrentRowHeight,
933
+ tables,
934
+ generatedNames,
873
935
  onCommand,
874
936
  });
937
+ // Excel sparkline groups (runs of =SPARKLINE() cells sharing one option set)
938
+ const { getSparklineGroup, getSparklineAt, onCreateSparklineGroup, onUpdateSparklineGroup, onDeleteSparklineGroup, onClearSparklines, onGroupSparklines, } = useSparklineGroups({
939
+ onChangeBatch,
940
+ onDelete,
941
+ batchHistory,
942
+ getUserEnteredValue: getUserEnteredValueStable,
943
+ });
875
944
  // Formatting change
876
945
  const { onChangeFormatting, onChangeBorder, onRepeatFormatting } = useOnChangeFormatting({
877
946
  locale,
@@ -891,6 +960,7 @@ sanitizeHtml, }) => {
891
960
  const { onMergeCells, onUnMergeCells } = useOnMergeUnMergeCells({
892
961
  locale,
893
962
  merges,
963
+ tables,
894
964
  cellXfsRegistry,
895
965
  sharedStringRegistry,
896
966
  onChangeSelections,
@@ -915,6 +985,9 @@ sanitizeHtml, }) => {
915
985
  continue;
916
986
  bands.push({
917
987
  bandedRangeId: `${table.id}-${table.theme}`,
988
+ showFirstColumn: table.showFirstColumn,
989
+ showLastColumn: table.showLastColumn,
990
+ totalRow: table.totalRow ?? false,
918
991
  range: { ...table.range, sheetId },
919
992
  ...banded,
920
993
  });
@@ -960,6 +1033,8 @@ sanitizeHtml, }) => {
960
1033
  onCommand,
961
1034
  });
962
1035
  // Locale change - regenerate formatted values and normalize validation rules
1036
+ // The formula syntax the editors speak — Excel follows the user's language, so `locale` by default.
1037
+ const formulaLocale = useMemo(() => getFormulaLocale(formulaLocaleProp ?? locale), [formulaLocaleProp, locale]);
963
1038
  const onChangeLocale = useOnLocaleChange({
964
1039
  cellXfsRegistry,
965
1040
  sharedStringRegistry,
@@ -1008,6 +1083,21 @@ sanitizeHtml, }) => {
1008
1083
  // `onMergeCells` clears the selection; the filled range stays selected like Excel.
1009
1084
  onChangeSelections?.(sheetId, [{ range: selectRange }]);
1010
1085
  }, [onUnMergeCells, onMergeCells, onChangeSelections]);
1086
+ // The expansion the fill handle triggers when dragged past a table's edge (T-11).
1087
+ const onFillChangeTableColumn = useOnChangeTableColumn({
1088
+ locale,
1089
+ cellXfsRegistry,
1090
+ sharedStringRegistry,
1091
+ onChangeSheetData,
1092
+ onChangeTables,
1093
+ getDependents,
1094
+ enqueueCalculation: enqueueGraphOperation,
1095
+ enqueueGraphOperation,
1096
+ createHistory,
1097
+ onCommand,
1098
+ generatedNames,
1099
+ tables,
1100
+ });
1011
1101
  const onFill = useOnFill({
1012
1102
  locale,
1013
1103
  cellXfsRegistry,
@@ -1026,6 +1116,11 @@ sanitizeHtml, }) => {
1026
1116
  onCommand,
1027
1117
  getMerges: getPaintMerges,
1028
1118
  onFillMerges,
1119
+ tables,
1120
+ getUserEnteredValue: getUserEnteredValueStable,
1121
+ onChangeTableColumn: onFillChangeTableColumn,
1122
+ batchHistory,
1123
+ autoExpandTables,
1029
1124
  });
1030
1125
  // Delete row
1031
1126
  const onDeleteRow = useOnDeleteRow({
@@ -1054,6 +1149,7 @@ sanitizeHtml, }) => {
1054
1149
  onChangePivotTables,
1055
1150
  onChangeNamedRanges,
1056
1151
  onChangeEmbeds,
1152
+ onChangeSlicers,
1057
1153
  onChangeCharts,
1058
1154
  onChangeProtectedRanges,
1059
1155
  getSheetName,
@@ -1088,6 +1184,7 @@ sanitizeHtml, }) => {
1088
1184
  onChangePivotTables,
1089
1185
  onChangeNamedRanges,
1090
1186
  onChangeEmbeds,
1187
+ onChangeSlicers,
1091
1188
  onChangeCharts,
1092
1189
  onChangeProtectedRanges,
1093
1190
  getSheetName,
@@ -1114,6 +1211,7 @@ sanitizeHtml, }) => {
1114
1211
  onChangeSheetData,
1115
1212
  onChangeTables,
1116
1213
  onChangeCitations,
1214
+ onChangeCharts,
1117
1215
  onCommand,
1118
1216
  sheetData,
1119
1217
  sheets,
@@ -1138,6 +1236,7 @@ sanitizeHtml, }) => {
1138
1236
  onChangeSheetData,
1139
1237
  onChangeTables,
1140
1238
  onChangeCitations,
1239
+ onChangeCharts,
1141
1240
  onCommand,
1142
1241
  sheetData,
1143
1242
  sheets,
@@ -1162,6 +1261,7 @@ sanitizeHtml, }) => {
1162
1261
  onChangeSheetData,
1163
1262
  onChangeTables,
1164
1263
  onChangeCitations,
1264
+ onChangeCharts,
1165
1265
  onCommand,
1166
1266
  sheetData,
1167
1267
  sheets,
@@ -1186,6 +1286,7 @@ sanitizeHtml, }) => {
1186
1286
  onChangeSheetData,
1187
1287
  onChangeTables,
1188
1288
  onChangeCitations,
1289
+ onChangeCharts,
1189
1290
  onCommand,
1190
1291
  sheetData,
1191
1292
  sheets,
@@ -1216,6 +1317,7 @@ sanitizeHtml, }) => {
1216
1317
  onChangePivotTables,
1217
1318
  onChangeNamedRanges,
1218
1319
  onChangeEmbeds,
1320
+ onChangeSlicers,
1219
1321
  onChangeCharts,
1220
1322
  onChangeProtectedRanges,
1221
1323
  onChangeTables,
@@ -1248,6 +1350,7 @@ sanitizeHtml, }) => {
1248
1350
  onChangePivotTables,
1249
1351
  onChangeNamedRanges,
1250
1352
  onChangeEmbeds,
1353
+ onChangeSlicers,
1251
1354
  onChangeCharts,
1252
1355
  onChangeProtectedRanges,
1253
1356
  getActiveCell,
@@ -1271,6 +1374,7 @@ sanitizeHtml, }) => {
1271
1374
  onChangeSheetData,
1272
1375
  onChangeConditionalFormats,
1273
1376
  onChangeDataValidations,
1377
+ onChangeCharts,
1274
1378
  getDependents,
1275
1379
  getDataRowCount,
1276
1380
  onCommand,
@@ -1289,6 +1393,7 @@ sanitizeHtml, }) => {
1289
1393
  onChangeSheetData,
1290
1394
  onChangeTables,
1291
1395
  onChangeNamedRanges,
1396
+ onChangeCharts,
1292
1397
  onChangeConditionalFormats,
1293
1398
  onChangeDataValidations,
1294
1399
  getDependents,
@@ -1299,6 +1404,7 @@ sanitizeHtml, }) => {
1299
1404
  const onMoveSelection = useOnMoveSelection({
1300
1405
  rowCount,
1301
1406
  columnCount,
1407
+ getSheetMerges: getPaintMerges,
1302
1408
  enqueueGraphOperation,
1303
1409
  enqueueCalculation,
1304
1410
  enqueueStructureChange,
@@ -1307,6 +1413,7 @@ sanitizeHtml, }) => {
1307
1413
  onChangeSheets,
1308
1414
  onChangeTables,
1309
1415
  onChangeNamedRanges,
1416
+ onChangeCharts,
1310
1417
  onChangeDataValidations,
1311
1418
  onChangeConditionalFormats,
1312
1419
  onChangePivotTables,
@@ -1319,6 +1426,86 @@ sanitizeHtml, }) => {
1319
1426
  sharedStringRegistry,
1320
1427
  onCommand,
1321
1428
  });
1429
+ // Excel "Insert Cut Cells" / Shift+drag for a cell range, as the three structural steps the
1430
+ // hooks above own (`planInsertCutCells`): open the destination band, move the block into the
1431
+ // opening, close the gap it left — so Shift+drag A5 to A2 over r1..r6 gives r1 r5 r2 r3 r4 r6 and
1432
+ // a forward move lands before Excel's pre-removal reference row. The refusals are decided up
1433
+ // front — a merge the block or a shifted band covers only partially, a protected range — so a
1434
+ // refused move never leaves the band opened. The three steps record ONE undo entry.
1435
+ const showError = useShowError();
1436
+ const canEditCellRange = useCanEditCellRange();
1437
+ const canPerformSheetAction = useCanPerformSheetAction();
1438
+ const onInsertCutCells = useCallback((sheetId, from, to) => {
1439
+ const plan = planInsertCutCells(from.range, to.range);
1440
+ if (!plan) {
1441
+ return;
1442
+ }
1443
+ const merges = getPaintMerges(sheetId);
1444
+ if ([from.range, to.range, ...plan.bands].some((range) => findPartiallyCoveredMerge(range, merges))) {
1445
+ showError({ message: MERGED_CELL_MOVE_ERROR });
1446
+ return;
1447
+ }
1448
+ // A block covering part of a table never moves (T-46) — refused before the band opens.
1449
+ const tableRefusal = getMoveRangeRefusal({
1450
+ sheetId,
1451
+ from: from.range,
1452
+ to: to.range,
1453
+ tables,
1454
+ });
1455
+ if (tableRefusal) {
1456
+ showError({ title: tableRefusal.title, message: tableRefusal.message });
1457
+ return;
1458
+ }
1459
+ const vertical = plan.shift === "down";
1460
+ if (!canEditCellRange(sheetId, from.range) ||
1461
+ !canEditCellRange(sheetId, to.range) ||
1462
+ !canPerformSheetAction(sheetId, vertical ? "insertRows" : "insertColumns") ||
1463
+ !canPerformSheetAction(sheetId, vertical ? "deleteRows" : "deleteColumns")) {
1464
+ showError({
1465
+ title: SHEET_PROTECTION_ERROR_TITLE,
1466
+ message: "You can't move cells on a protected sheet.",
1467
+ });
1468
+ return;
1469
+ }
1470
+ const target = {
1471
+ rowIndex: to.range.startRowIndex,
1472
+ columnIndex: to.range.startColumnIndex,
1473
+ };
1474
+ const source = {
1475
+ ...from,
1476
+ range: plan.shiftedSource,
1477
+ };
1478
+ const vacated = {
1479
+ rowIndex: plan.shiftedSource.startRowIndex,
1480
+ columnIndex: plan.shiftedSource.startColumnIndex,
1481
+ };
1482
+ batchHistory(() => {
1483
+ if (vertical) {
1484
+ onInsertCellsShiftDown(sheetId, target, [to]);
1485
+ }
1486
+ else {
1487
+ onInsertCellsShiftRight(sheetId, target, [to]);
1488
+ }
1489
+ onMoveSelection(sheetId, source, to);
1490
+ if (vertical) {
1491
+ onDeleteCellsShiftUp(sheetId, vacated, [source]);
1492
+ }
1493
+ else {
1494
+ onDeleteCellsShiftLeft(sheetId, vacated, [source]);
1495
+ }
1496
+ });
1497
+ }, [
1498
+ batchHistory,
1499
+ getPaintMerges,
1500
+ showError,
1501
+ canEditCellRange,
1502
+ canPerformSheetAction,
1503
+ onInsertCellsShiftDown,
1504
+ onInsertCellsShiftRight,
1505
+ onDeleteCellsShiftUp,
1506
+ onDeleteCellsShiftLeft,
1507
+ onMoveSelection,
1508
+ ]);
1322
1509
  // Sort column
1323
1510
  const onSortColumn = useOnSortColumn({
1324
1511
  rowCount,
@@ -1326,11 +1513,15 @@ sanitizeHtml, }) => {
1326
1513
  locale,
1327
1514
  sharedStringRegistry,
1328
1515
  onChangeSheetData,
1516
+ onChangeSheets,
1329
1517
  enqueueCalculation,
1330
1518
  enqueueStructureChange,
1331
1519
  enqueueGraphOperation,
1332
1520
  createHistory,
1521
+ getCellData,
1522
+ getDataRowCount,
1333
1523
  isHiddenRow,
1524
+ isManuallyHiddenRow,
1334
1525
  getDependents,
1335
1526
  getFrozenRowCount,
1336
1527
  getSheetName,
@@ -1346,12 +1537,14 @@ sanitizeHtml, }) => {
1346
1537
  enqueueGraphOperation,
1347
1538
  enqueueCalculation,
1348
1539
  enqueueStructureChange,
1540
+ getCellData,
1349
1541
  getDependents,
1350
1542
  createHistory,
1351
1543
  onChangeTables,
1352
1544
  onChangeSheets,
1353
1545
  getActiveCell,
1354
1546
  isHiddenRow,
1547
+ isManuallyHiddenRow,
1355
1548
  getFrozenRowCount,
1356
1549
  getSheetName,
1357
1550
  getEffectiveFormat,
@@ -1380,18 +1573,64 @@ sanitizeHtml, }) => {
1380
1573
  columnCount,
1381
1574
  locale,
1382
1575
  tables,
1576
+ merges,
1383
1577
  basicFilter,
1384
1578
  getActiveCell,
1385
1579
  createHistory,
1386
1580
  onChangeTables,
1387
1581
  onChangeSheetData,
1582
+ onChangeCharts,
1388
1583
  enqueueCalculation,
1389
1584
  enqueueGraphOperation,
1390
1585
  getFormattedValue,
1391
1586
  getDependents,
1587
+ getSheetName,
1392
1588
  onCommand,
1393
1589
  generatedNames,
1394
1590
  });
1591
+ // The AutoCorrect smart tag's "Undo Table AutoExpansion"
1592
+ const onUndoTableAutoExpansion = useOnUndoTableAutoExpansion({
1593
+ locale,
1594
+ cellXfsRegistry,
1595
+ tables,
1596
+ createHistory,
1597
+ batchHistory,
1598
+ onResizeTable,
1599
+ onChangeSheetData,
1600
+ enqueueCalculation,
1601
+ onCommand,
1602
+ });
1603
+ // The AutoCorrect smart tag's "Undo Calculated Column" / "Overwrite all cells in this column
1604
+ // with this formula"
1605
+ const onUndoCalculatedColumn = useOnUndoCalculatedColumn({
1606
+ tables,
1607
+ createHistory,
1608
+ batchHistory,
1609
+ onChangeSheetData,
1610
+ onChangeTables,
1611
+ enqueueCalculation,
1612
+ onCommand,
1613
+ });
1614
+ const onFillCalculatedColumn = useOnChangeCalculatedColumn({
1615
+ locale,
1616
+ cellXfsRegistry,
1617
+ sharedStringRegistry,
1618
+ onChangeTables,
1619
+ onChangeSheetData,
1620
+ getUserEnteredValue: getUserEnteredValueStable,
1621
+ getSheetName,
1622
+ createHistory,
1623
+ enqueueCalculation,
1624
+ onCommand,
1625
+ });
1626
+ const onOverwriteCalculatedColumn = useCallback((fill) => {
1627
+ const table = tables?.find((candidate) => candidate.id === fill.tableId && candidate.sheetId === fill.sheetId);
1628
+ if (!table)
1629
+ return;
1630
+ batchHistory(() => {
1631
+ onFillCalculatedColumn(fill.sheetId, fill.anchor, fill.formula, table, { force: true });
1632
+ });
1633
+ }, [tables, batchHistory, onFillCalculatedColumn]);
1395
1634
  // Copy
1396
1635
  const onCopy = useOnCopy({
1397
1636
  theme,
@@ -1414,6 +1653,9 @@ sanitizeHtml, }) => {
1414
1653
  columnCount,
1415
1654
  locale,
1416
1655
  sheetData,
1656
+ onChangeNamedRanges,
1657
+ onChangeCharts,
1658
+ getSheetMerges: getPaintMerges,
1417
1659
  getDataValidationById,
1418
1660
  preserveFormatting: preserveFormattingOnPaste,
1419
1661
  maxColumnCount,
@@ -1431,6 +1673,9 @@ sanitizeHtml, }) => {
1431
1673
  enqueueStructureChange,
1432
1674
  enqueueGraphOperation,
1433
1675
  createHistory,
1676
+ batchHistory,
1677
+ autoExpandTables,
1678
+ autoCalculatedColumns,
1434
1679
  onChangeSheetData,
1435
1680
  onChangeSheets,
1436
1681
  onChangeSelections,
@@ -1452,7 +1697,15 @@ sanitizeHtml, }) => {
1452
1697
  rowCount,
1453
1698
  columnCount,
1454
1699
  tables,
1700
+ namedRanges,
1455
1701
  basicFilter,
1702
+ sheetData,
1703
+ sheets,
1704
+ batchHistory,
1705
+ getActiveCell,
1706
+ getSelections,
1707
+ onChangeCitations,
1708
+ onChangeCharts,
1456
1709
  cellXfsRegistry,
1457
1710
  sharedStringRegistry,
1458
1711
  theme,
@@ -1467,11 +1720,15 @@ sanitizeHtml, }) => {
1467
1720
  getEffectiveValue,
1468
1721
  onRequestCalculate,
1469
1722
  getDependents,
1723
+ getGraphNodes,
1724
+ getBandedCells: getPaintBandedCells,
1470
1725
  enqueueGraphOperation,
1471
1726
  getContentfulRangeAroundCell,
1472
1727
  getSheetName,
1473
1728
  onCommand,
1474
1729
  generatedNames,
1730
+ onChangeDataValidations,
1731
+ onChangeConditionalFormats,
1475
1732
  });
1476
1733
  // Insert table row
1477
1734
  const onInsertTableRow = useOnInsertTableRow({
@@ -1488,10 +1745,12 @@ sanitizeHtml, }) => {
1488
1745
  onChangeSheetData,
1489
1746
  onChangeSheets,
1490
1747
  onChangeTables,
1748
+ onChangeCharts,
1491
1749
  onChangeConditionalFormats,
1492
1750
  onChangeDataValidations,
1493
1751
  getSheetName,
1494
1752
  onCommand,
1753
+ tables,
1495
1754
  });
1496
1755
  // Delete table row
1497
1756
  const onDeleteTableRow = useOnDeleteTableRow({
@@ -1507,18 +1766,21 @@ sanitizeHtml, }) => {
1507
1766
  onChangeSheetData,
1508
1767
  onChangeSheets,
1509
1768
  onChangeTables,
1769
+ onChangeCharts,
1510
1770
  onChangeConditionalFormats,
1511
1771
  onChangeDataValidations,
1512
1772
  getSheetName,
1513
1773
  onCommand,
1774
+ tables,
1514
1775
  });
1515
1776
  // Fill range
1516
1777
  const onFillRange = useOnFillRange({
1517
1778
  onFill,
1518
1779
  });
1519
1780
  // Embeds
1520
- const { onDeleteEmbed, onMoveEmbed, onResizeEmbed, onCreateEmbed, onRequestEditEmbed, } = useOnEmbeds({
1781
+ const { onDeleteEmbed, onMoveEmbed, onResizeEmbed, onCreateEmbed, onUpdateEmbed, onRequestEditEmbed, onChangeZOrder, } = useOnEmbeds({
1521
1782
  onChangeEmbeds,
1783
+ onChangeCharts,
1522
1784
  createHistory,
1523
1785
  onCommand,
1524
1786
  });
@@ -1530,6 +1792,14 @@ sanitizeHtml, }) => {
1530
1792
  });
1531
1793
  // Show modal dialog for table editor
1532
1794
  const onRequestEditTable = useOnRequestEditTable();
1795
+ // Show the Resize Table dialog (Table Design → Resize Table)
1796
+ const onRequestResizeTable = useOnRequestResizeTable();
1797
+ // Show the Insert Slicers dialog (Table Design → Insert Slicer)
1798
+ const onRequestInsertSlicer = useOnRequestInsertSlicer();
1799
+ // Show the Create Table dialog (Ctrl+T / Insert → Table / Format as Table)
1800
+ const onRequestCreateTable = useOnRequestCreateTable({
1801
+ getEffectiveExtendedValue,
1802
+ });
1533
1803
  // Show modal dialog for table editor
1534
1804
  const onRequestDefineNamedRange = useOnRequestDefineNamedRange({
1535
1805
  namedRanges,
@@ -1539,6 +1809,7 @@ sanitizeHtml, }) => {
1539
1809
  // Update named range
1540
1810
  const onUpdateNamedRange = useOnUpdateNamedRange({
1541
1811
  locale,
1812
+ tables,
1542
1813
  getDependents,
1543
1814
  getActiveCell,
1544
1815
  enqueueCalculation,
@@ -1549,6 +1820,7 @@ sanitizeHtml, }) => {
1549
1820
  });
1550
1821
  // Update named range
1551
1822
  const onCreateNamedRange = useOnCreateNamedRange({
1823
+ tables,
1552
1824
  enqueueCalculation,
1553
1825
  createHistory,
1554
1826
  onChangeNamedRanges,
@@ -1628,8 +1900,11 @@ sanitizeHtml, }) => {
1628
1900
  enqueueStructureChange,
1629
1901
  enqueueGraphOperation,
1630
1902
  onChangeSheetData,
1903
+ onChangeSheets,
1904
+ getCellData,
1631
1905
  getDependents,
1632
1906
  isHiddenRow,
1907
+ isManuallyHiddenRow,
1633
1908
  getFrozenRowCount,
1634
1909
  getSheetName,
1635
1910
  getEffectiveFormat,
@@ -1642,6 +1917,12 @@ sanitizeHtml, }) => {
1642
1917
  onChangeProtectedRanges,
1643
1918
  onCommand,
1644
1919
  });
1920
+ // Custom table styles (Excel's New Table Style)
1921
+ const onCreateCustomTableStyle = useOnCreateCustomTableStyle({
1922
+ createHistory,
1923
+ onChangeCustomTableStyles,
1924
+ onCommand,
1925
+ });
1645
1926
  // Indent
1646
1927
  const { onIncreaseIndent, onDecreaseIndent, onChangeIndent } = useIndent({
1647
1928
  locale,
@@ -1758,6 +2039,7 @@ sanitizeHtml, }) => {
1758
2039
  onCreateDataValidationRule,
1759
2040
  onChangeTheme,
1760
2041
  onChangeNamedCellStyles,
2042
+ onChangeCustomTableStyles,
1761
2043
  onClearHistory,
1762
2044
  evaluateConditionalFormatting,
1763
2045
  evaluateDataValidations,
@@ -1838,11 +2120,13 @@ sanitizeHtml, }) => {
1838
2120
  createHistory,
1839
2121
  enqueueCalculation,
1840
2122
  onChangeSheetData,
2123
+ onChangeTables,
1841
2124
  locale,
1842
2125
  cellXfsRegistry,
1843
2126
  sharedStringRegistry,
1844
2127
  getFormattedValue,
1845
2128
  onCommand,
2129
+ tables,
1846
2130
  });
1847
2131
  // Goal Seek — scratch-evaluates through the calculator, commits via onChange
1848
2132
  const onGoalSeek = useOnGoalSeek({
@@ -1863,6 +2147,7 @@ sanitizeHtml, }) => {
1863
2147
  onChangeBatch,
1864
2148
  onGroupRows,
1865
2149
  onUngroupRows,
2150
+ batchHistory,
1866
2151
  });
1867
2152
  // Data → Advanced filter (criteria range) over the hide/show/write callbacks
1868
2153
  const onAdvancedFilter = useOnAdvancedFilter({
@@ -1892,6 +2177,8 @@ sanitizeHtml, }) => {
1892
2177
  });
1893
2178
  return {
1894
2179
  namedCellStyles,
2180
+ customTableStyles,
2181
+ onCreateCustomTableStyle,
1895
2182
  activeCellBySheetId,
1896
2183
  selectionsBySheetId,
1897
2184
  activeCell,
@@ -1908,6 +2195,7 @@ sanitizeHtml, }) => {
1908
2195
  columnMetadata,
1909
2196
  merges,
1910
2197
  bandedRanges,
2198
+ onPreviewTableStyle,
1911
2199
  basicFilter,
1912
2200
  spreadsheetColors,
1913
2201
  isDarkMode,
@@ -1934,6 +2222,7 @@ sanitizeHtml, }) => {
1934
2222
  getUserEnteredValue,
1935
2223
  getFormattedValue,
1936
2224
  createHistory,
2225
+ batchHistory,
1937
2226
  onRequestCalculate,
1938
2227
  enqueueCalculation,
1939
2228
  enqueueGraphOperation,
@@ -1994,13 +2283,22 @@ sanitizeHtml, }) => {
1994
2283
  onResizeEmbed,
1995
2284
  onDeleteEmbed,
1996
2285
  onCreateEmbed,
2286
+ onUpdateEmbed,
1997
2287
  onRequestEditEmbed,
2288
+ onChangeZOrder,
1998
2289
  onMoveSlicer,
1999
2290
  onResizeSlicer,
2000
2291
  onDeleteSlicer,
2001
2292
  onCreateSlicer,
2002
2293
  onUpdateSlicer,
2003
2294
  onRequestEditSlicer,
2295
+ getSparklineGroup,
2296
+ getSparklineAt,
2297
+ onCreateSparklineGroup,
2298
+ onUpdateSparklineGroup,
2299
+ onDeleteSparklineGroup,
2300
+ onClearSparklines,
2301
+ onGroupSparklines,
2004
2302
  onDeleteRow,
2005
2303
  onDeleteColumn,
2006
2304
  onDeleteCellsShiftUp,
@@ -2012,11 +2310,15 @@ sanitizeHtml, }) => {
2012
2310
  onMoveColumns,
2013
2311
  onMoveRows,
2014
2312
  onMoveSelection,
2313
+ onInsertCutCells,
2015
2314
  onSortColumn,
2016
2315
  onSortTable,
2017
2316
  onFilterTable,
2018
2317
  onDeleteFilter,
2019
2318
  onResizeTable,
2319
+ onUndoTableAutoExpansion,
2320
+ onUndoCalculatedColumn,
2321
+ onOverwriteCalculatedColumn,
2020
2322
  onInsertTableColumn,
2021
2323
  onInsertTableRow,
2022
2324
  onDeleteTableColumn,
@@ -2025,8 +2327,11 @@ sanitizeHtml, }) => {
2025
2327
  onPaste,
2026
2328
  onCreateBasicFilter,
2027
2329
  onCreateTable,
2330
+ onRequestCreateTable,
2028
2331
  onRemoveTable,
2029
2332
  onRequestEditTable,
2333
+ onRequestResizeTable,
2334
+ onRequestInsertSlicer,
2030
2335
  onUpdateTable,
2031
2336
  onRequestDefineNamedRange,
2032
2337
  onRequestUpdateNamedRange,
@@ -2129,6 +2434,8 @@ sanitizeHtml, }) => {
2129
2434
  onClearHistory,
2130
2435
  // Locale change
2131
2436
  onChangeLocale,
2437
+ // Resolved formula syntax locale (see the `formulaLocale` option)
2438
+ formulaLocale,
2132
2439
  // Comments
2133
2440
  onInsertComment,
2134
2441
  onRemoveComment,