@dxos/plugin-sheet 0.8.4-main.c85a9c8dae → 0.8.4-main.dfabb4ec29

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 (299) hide show
  1. package/dist/lib/{browser/RangeList-S3SHV7T6.mjs → neutral/RangeList-HYB5S6KQ.mjs} +21 -28
  2. package/dist/lib/neutral/RangeList-HYB5S6KQ.mjs.map +7 -0
  3. package/dist/lib/neutral/SheetContainer-ZOVKGHLT.mjs +33 -0
  4. package/dist/lib/neutral/SheetContainer-ZOVKGHLT.mjs.map +7 -0
  5. package/dist/lib/neutral/SheetPlugin.mjs +48 -0
  6. package/dist/lib/neutral/SheetPlugin.mjs.map +7 -0
  7. package/dist/lib/neutral/SheetPlugin.node.mjs +27 -0
  8. package/dist/lib/neutral/SheetPlugin.node.mjs.map +7 -0
  9. package/dist/lib/{browser/anchor-sort-DZ3IHHJJ.mjs → neutral/anchor-sort-TTCKGX7V.mjs} +5 -7
  10. package/dist/lib/neutral/anchor-sort-TTCKGX7V.mjs.map +7 -0
  11. package/dist/lib/neutral/capabilities/index.mjs +25 -0
  12. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  13. package/dist/lib/neutral/chunk-4GWJDLTH.mjs +83 -0
  14. package/dist/lib/neutral/chunk-4GWJDLTH.mjs.map +7 -0
  15. package/dist/lib/{browser/chunk-NNWF7EKC.mjs → neutral/chunk-4SBAIU6F.mjs} +3 -3
  16. package/dist/lib/neutral/chunk-4SBAIU6F.mjs.map +7 -0
  17. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  18. package/dist/lib/{browser/chunk-S445OQGW.mjs → neutral/chunk-KC2SMDNF.mjs} +167 -191
  19. package/dist/lib/neutral/chunk-KC2SMDNF.mjs.map +7 -0
  20. package/dist/lib/neutral/chunk-YFHTB6MX.mjs +8 -0
  21. package/dist/lib/neutral/chunk-YFHTB6MX.mjs.map +7 -0
  22. package/dist/lib/neutral/chunk-ZWOQCLH7.mjs +21 -0
  23. package/dist/lib/neutral/chunk-ZWOQCLH7.mjs.map +7 -0
  24. package/dist/lib/neutral/comment-config-ZBWNCJMZ.mjs +20 -0
  25. package/dist/lib/neutral/comment-config-ZBWNCJMZ.mjs.map +7 -0
  26. package/dist/lib/{browser/SheetContainer-I3NFVVDQ.mjs → neutral/components/index.mjs} +160 -414
  27. package/dist/lib/neutral/components/index.mjs.map +7 -0
  28. package/dist/lib/{browser/compute-graph-registry-W6HO2G3P.mjs → neutral/compute-graph-registry-IEQBF5XZ.mjs} +5 -6
  29. package/dist/lib/neutral/compute-graph-registry-IEQBF5XZ.mjs.map +7 -0
  30. package/dist/lib/neutral/containers/index.mjs +11 -0
  31. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  32. package/dist/lib/neutral/create-object-OKQAXJCW.mjs +27 -0
  33. package/dist/lib/neutral/create-object-OKQAXJCW.mjs.map +7 -0
  34. package/dist/lib/neutral/drop-axis-G6UOXG54.mjs +23 -0
  35. package/dist/lib/neutral/drop-axis-G6UOXG54.mjs.map +7 -0
  36. package/dist/lib/{browser/types → neutral}/index.mjs +14 -5
  37. package/dist/lib/neutral/insert-axis-ZFFNG22G.mjs +16 -0
  38. package/dist/lib/neutral/insert-axis-ZFFNG22G.mjs.map +7 -0
  39. package/dist/lib/{browser/markdown-S6GVLHB4.mjs → neutral/markdown-I2AKJYPF.mjs} +5 -6
  40. package/dist/lib/neutral/markdown-I2AKJYPF.mjs.map +7 -0
  41. package/dist/lib/neutral/meta.json +1 -0
  42. package/dist/lib/neutral/meta.mjs +8 -0
  43. package/dist/lib/neutral/meta.mjs.map +7 -0
  44. package/dist/lib/neutral/operation-handler-TB6LFV2H.mjs +13 -0
  45. package/dist/lib/neutral/operation-handler-TB6LFV2H.mjs.map +7 -0
  46. package/dist/lib/neutral/operations/index.mjs +8 -0
  47. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  48. package/dist/lib/neutral/plugin.mjs +16 -0
  49. package/dist/lib/neutral/plugin.mjs.map +7 -0
  50. package/dist/lib/{browser/react-surface-KIU6DGKW.mjs → neutral/react-surface-ID4JCAFR.mjs} +12 -19
  51. package/dist/lib/neutral/react-surface-ID4JCAFR.mjs.map +7 -0
  52. package/dist/lib/neutral/restore-axis-44DM6N54.mjs +16 -0
  53. package/dist/lib/neutral/restore-axis-44DM6N54.mjs.map +7 -0
  54. package/dist/lib/neutral/scroll-to-anchor-WHX3HJC7.mjs +33 -0
  55. package/dist/lib/neutral/scroll-to-anchor-WHX3HJC7.mjs.map +7 -0
  56. package/dist/lib/neutral/state-HPA27MX2.mjs +29 -0
  57. package/dist/lib/neutral/state-HPA27MX2.mjs.map +7 -0
  58. package/dist/lib/neutral/testing/index.mjs +103 -0
  59. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  60. package/dist/lib/neutral/translations.mjs +55 -0
  61. package/dist/lib/neutral/translations.mjs.map +7 -0
  62. package/dist/lib/{node-esm → neutral}/types/index.mjs +6 -6
  63. package/dist/lib/neutral/types/index.mjs.map +7 -0
  64. package/dist/lib/neutral/undo-mappings-3FQLSTCZ.mjs +31 -0
  65. package/dist/lib/neutral/undo-mappings-3FQLSTCZ.mjs.map +7 -0
  66. package/dist/types/src/SheetPlugin.d.ts +1 -0
  67. package/dist/types/src/SheetPlugin.d.ts.map +1 -1
  68. package/dist/types/src/SheetPlugin.node.d.ts +4 -0
  69. package/dist/types/src/SheetPlugin.node.d.ts.map +1 -0
  70. package/dist/types/src/SheetPlugin.test.d.ts +2 -0
  71. package/dist/types/src/SheetPlugin.test.d.ts.map +1 -0
  72. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -0
  73. package/dist/types/src/capabilities/comment-config.d.ts +12 -0
  74. package/dist/types/src/capabilities/comment-config.d.ts.map +1 -0
  75. package/dist/types/src/capabilities/compute-graph-registry.d.ts +5 -0
  76. package/dist/types/src/capabilities/compute-graph-registry.d.ts.map +1 -0
  77. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  78. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  79. package/dist/types/src/capabilities/index.d.ts +23 -5
  80. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  81. package/dist/types/src/capabilities/markdown.d.ts.map +1 -0
  82. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  83. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  84. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  85. package/dist/types/src/capabilities/{compute-graph-registry/compute-graph-registry.d.ts → state.d.ts} +3 -2
  86. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  87. package/dist/types/src/capabilities/undo-mappings.d.ts +5 -0
  88. package/dist/types/src/capabilities/undo-mappings.d.ts.map +1 -0
  89. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts +1 -1
  90. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts.map +1 -1
  91. package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts.map +1 -1
  92. package/dist/types/src/components/Sheet/Sheet.d.ts +10 -4
  93. package/dist/types/src/components/Sheet/Sheet.d.ts.map +1 -1
  94. package/dist/types/src/components/SheetContent/SheetCellEditor.stories.d.ts.map +1 -1
  95. package/dist/types/src/components/SheetContent/SheetContent.d.ts +4 -3
  96. package/dist/types/src/components/SheetContent/SheetContent.d.ts.map +1 -1
  97. package/dist/types/src/components/SheetContent/SheetContent.stories.d.ts +77 -39
  98. package/dist/types/src/components/SheetContent/SheetContent.stories.d.ts.map +1 -1
  99. package/dist/types/src/components/SheetContent/util.d.ts +1 -1
  100. package/dist/types/src/components/SheetContent/util.d.ts.map +1 -1
  101. package/dist/types/src/components/SheetRoot/SheetRoot.d.ts +5 -3
  102. package/dist/types/src/components/SheetRoot/SheetRoot.d.ts.map +1 -1
  103. package/dist/types/src/components/SheetStatusbar/SheetStatusbar.d.ts +4 -3
  104. package/dist/types/src/components/SheetStatusbar/SheetStatusbar.d.ts.map +1 -1
  105. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts +5 -8
  106. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -1
  107. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +72 -68
  108. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -1
  109. package/dist/types/src/components/SheetToolbar/align.d.ts +2 -2
  110. package/dist/types/src/components/SheetToolbar/align.d.ts.map +1 -1
  111. package/dist/types/src/components/SheetToolbar/style.d.ts +2 -2
  112. package/dist/types/src/components/SheetToolbar/style.d.ts.map +1 -1
  113. package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts.map +1 -1
  114. package/dist/types/src/containers/RangeList/RangeList.d.ts +2 -2
  115. package/dist/types/src/containers/RangeList/RangeList.d.ts.map +1 -1
  116. package/dist/types/src/containers/RangeList/index.d.ts +1 -2
  117. package/dist/types/src/containers/RangeList/index.d.ts.map +1 -1
  118. package/dist/types/src/containers/SheetContainer/SheetContainer.d.ts +4 -4
  119. package/dist/types/src/containers/SheetContainer/SheetContainer.d.ts.map +1 -1
  120. package/dist/types/src/containers/SheetContainer/SheetContainer.stories.d.ts +74 -38
  121. package/dist/types/src/containers/SheetContainer/SheetContainer.stories.d.ts.map +1 -1
  122. package/dist/types/src/containers/SheetContainer/index.d.ts +1 -2
  123. package/dist/types/src/containers/SheetContainer/index.d.ts.map +1 -1
  124. package/dist/types/src/extensions/compute.d.ts +1 -1
  125. package/dist/types/src/extensions/compute.d.ts.map +1 -1
  126. package/dist/types/src/extensions/compute.stories.d.ts.map +1 -1
  127. package/dist/types/src/extensions/editor/sheet-extension.d.ts +1 -1
  128. package/dist/types/src/extensions/editor/sheet-extension.d.ts.map +1 -1
  129. package/dist/types/src/index.d.ts +2 -2
  130. package/dist/types/src/index.d.ts.map +1 -1
  131. package/dist/types/src/integrations/thread-ranges.d.ts +1 -3
  132. package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
  133. package/dist/types/src/model/sheet-model.d.ts +2 -2
  134. package/dist/types/src/model/sheet-model.d.ts.map +1 -1
  135. package/dist/types/src/model/testing.d.ts +1 -1
  136. package/dist/types/src/model/testing.d.ts.map +1 -1
  137. package/dist/types/src/model/useSheetModel.d.ts +2 -2
  138. package/dist/types/src/model/useSheetModel.d.ts.map +1 -1
  139. package/dist/types/src/operations/drop-axis.d.ts +5 -0
  140. package/dist/types/src/operations/drop-axis.d.ts.map +1 -0
  141. package/dist/types/src/operations/index.d.ts +3 -0
  142. package/dist/types/src/operations/index.d.ts.map +1 -0
  143. package/dist/types/src/operations/insert-axis.d.ts +5 -0
  144. package/dist/types/src/operations/insert-axis.d.ts.map +1 -0
  145. package/dist/types/src/operations/restore-axis.d.ts +5 -0
  146. package/dist/types/src/operations/restore-axis.d.ts.map +1 -0
  147. package/dist/types/src/operations/scroll-to-anchor.d.ts +5 -0
  148. package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -0
  149. package/dist/types/src/playwright/playwright.config.d.ts.map +1 -1
  150. package/dist/types/src/playwright/sheet-manager.d.ts.map +1 -1
  151. package/dist/types/src/plugin.d.ts +4 -0
  152. package/dist/types/src/plugin.d.ts.map +1 -0
  153. package/dist/types/src/serializer.d.ts +2 -2
  154. package/dist/types/src/serializer.d.ts.map +1 -1
  155. package/dist/types/src/testing/data.d.ts +1 -1
  156. package/dist/types/src/testing/data.d.ts.map +1 -1
  157. package/dist/types/src/testing/testing.d.ts +3 -3
  158. package/dist/types/src/testing/testing.d.ts.map +1 -1
  159. package/dist/types/src/translations.d.ts +74 -39
  160. package/dist/types/src/translations.d.ts.map +1 -1
  161. package/dist/types/src/types/Sheet.d.ts +2 -2
  162. package/dist/types/src/types/Sheet.d.ts.map +1 -1
  163. package/dist/types/src/types/SheetCapabilities.d.ts +16 -0
  164. package/dist/types/src/types/SheetCapabilities.d.ts.map +1 -0
  165. package/dist/types/src/types/SheetOperation.d.ts +45 -0
  166. package/dist/types/src/types/SheetOperation.d.ts.map +1 -0
  167. package/dist/types/src/types/index.d.ts +3 -2
  168. package/dist/types/src/types/index.d.ts.map +1 -1
  169. package/dist/types/src/types/sheet-range-types.d.ts +1 -1
  170. package/dist/types/src/types/sheet-range-types.d.ts.map +1 -1
  171. package/dist/types/src/types/types.d.ts +0 -92
  172. package/dist/types/src/types/types.d.ts.map +1 -1
  173. package/dist/types/src/types/util.d.ts +1 -1
  174. package/dist/types/src/types/util.d.ts.map +1 -1
  175. package/dist/types/tsconfig.tsbuildinfo +1 -1
  176. package/package.json +116 -73
  177. package/src/SheetPlugin.node.ts +21 -0
  178. package/src/SheetPlugin.test.ts +30 -0
  179. package/src/SheetPlugin.tsx +25 -35
  180. package/src/capabilities/{anchor-sort/anchor-sort.ts → anchor-sort.ts} +1 -1
  181. package/src/capabilities/comment-config.ts +24 -0
  182. package/src/capabilities/{compute-graph-registry/compute-graph-registry.ts → compute-graph-registry.ts} +4 -2
  183. package/src/capabilities/create-object.ts +30 -0
  184. package/src/capabilities/index.ts +17 -5
  185. package/src/capabilities/{markdown/markdown.ts → markdown.ts} +3 -2
  186. package/src/capabilities/operation-handler.ts +16 -0
  187. package/src/capabilities/{react-surface/react-surface.tsx → react-surface.tsx} +12 -9
  188. package/src/capabilities/state.ts +29 -0
  189. package/src/capabilities/undo-mappings.ts +30 -0
  190. package/src/components/ComputeGraph/ComputeGraphContextProvider.tsx +1 -1
  191. package/src/components/ComputeGraph/compute-graph.stories.tsx +17 -14
  192. package/src/components/SheetContent/SheetCellEditor.stories.tsx +8 -7
  193. package/src/components/SheetContent/SheetContent.stories.tsx +10 -10
  194. package/src/components/SheetContent/SheetContent.tsx +40 -23
  195. package/src/components/SheetContent/util.ts +3 -2
  196. package/src/components/SheetRoot/SheetRoot.tsx +18 -7
  197. package/src/components/SheetStatusbar/SheetStatusbar.tsx +15 -8
  198. package/src/components/SheetToolbar/SheetToolbar.stories.tsx +1 -1
  199. package/src/components/SheetToolbar/SheetToolbar.tsx +15 -20
  200. package/src/components/SheetToolbar/align.ts +9 -9
  201. package/src/components/SheetToolbar/style.ts +7 -7
  202. package/src/containers/RangeList/RangeList.tsx +17 -17
  203. package/src/containers/RangeList/index.ts +1 -3
  204. package/src/containers/SheetContainer/SheetContainer.stories.tsx +36 -20
  205. package/src/containers/SheetContainer/SheetContainer.tsx +8 -8
  206. package/src/containers/SheetContainer/index.ts +1 -3
  207. package/src/extensions/compute.stories.tsx +9 -9
  208. package/src/extensions/compute.ts +1 -1
  209. package/src/extensions/editor/sheet-extension.test.ts +1 -1
  210. package/src/extensions/editor/sheet-extension.ts +2 -2
  211. package/src/index.ts +2 -2
  212. package/src/integrations/thread-ranges.ts +7 -39
  213. package/src/meta.ts +1 -1
  214. package/src/model/sheet-model.test.ts +5 -5
  215. package/src/model/sheet-model.ts +17 -17
  216. package/src/model/testing.ts +2 -2
  217. package/src/model/useSheetModel.ts +3 -2
  218. package/src/operations/drop-axis.ts +26 -0
  219. package/src/operations/index.ts +12 -0
  220. package/src/operations/insert-axis.ts +19 -0
  221. package/src/operations/restore-axis.ts +19 -0
  222. package/src/operations/scroll-to-anchor.ts +30 -0
  223. package/src/playwright/sheet.spec.ts +2 -2
  224. package/src/plugin.ts +11 -0
  225. package/src/sanity.test.ts +6 -3
  226. package/src/serializer.ts +2 -2
  227. package/src/testing/data.ts +1 -1
  228. package/src/testing/testing.tsx +4 -4
  229. package/src/translations.ts +41 -36
  230. package/src/types/Sheet.ts +15 -9
  231. package/src/types/SheetCapabilities.ts +26 -0
  232. package/src/types/SheetOperation.ts +75 -0
  233. package/src/types/index.ts +4 -2
  234. package/src/types/types.ts +0 -80
  235. package/src/types/util.ts +1 -1
  236. package/dist/lib/browser/RangeList-S3SHV7T6.mjs.map +0 -7
  237. package/dist/lib/browser/SheetContainer-I3NFVVDQ.mjs.map +0 -7
  238. package/dist/lib/browser/anchor-sort-DZ3IHHJJ.mjs.map +0 -7
  239. package/dist/lib/browser/chunk-NNWF7EKC.mjs.map +0 -7
  240. package/dist/lib/browser/chunk-S445OQGW.mjs.map +0 -7
  241. package/dist/lib/browser/compute-graph-registry-W6HO2G3P.mjs.map +0 -7
  242. package/dist/lib/browser/index.mjs +0 -145
  243. package/dist/lib/browser/index.mjs.map +0 -7
  244. package/dist/lib/browser/markdown-S6GVLHB4.mjs.map +0 -7
  245. package/dist/lib/browser/meta.json +0 -1
  246. package/dist/lib/browser/operation-resolver-Z4X4UWNR.mjs +0 -79
  247. package/dist/lib/browser/operation-resolver-Z4X4UWNR.mjs.map +0 -7
  248. package/dist/lib/browser/react-surface-KIU6DGKW.mjs.map +0 -7
  249. package/dist/lib/node-esm/RangeList-IB23OJK2.mjs +0 -54
  250. package/dist/lib/node-esm/RangeList-IB23OJK2.mjs.map +0 -7
  251. package/dist/lib/node-esm/SheetContainer-KUXNCSFP.mjs +0 -1806
  252. package/dist/lib/node-esm/SheetContainer-KUXNCSFP.mjs.map +0 -7
  253. package/dist/lib/node-esm/anchor-sort-24OXMOSX.mjs +0 -25
  254. package/dist/lib/node-esm/anchor-sort-24OXMOSX.mjs.map +0 -7
  255. package/dist/lib/node-esm/chunk-M52YLLWU.mjs +0 -236
  256. package/dist/lib/node-esm/chunk-M52YLLWU.mjs.map +0 -7
  257. package/dist/lib/node-esm/chunk-NKZ3O4OR.mjs +0 -398
  258. package/dist/lib/node-esm/chunk-NKZ3O4OR.mjs.map +0 -7
  259. package/dist/lib/node-esm/compute-graph-registry-2C3Y2RPQ.mjs +0 -22
  260. package/dist/lib/node-esm/compute-graph-registry-2C3Y2RPQ.mjs.map +0 -7
  261. package/dist/lib/node-esm/index.mjs +0 -146
  262. package/dist/lib/node-esm/index.mjs.map +0 -7
  263. package/dist/lib/node-esm/markdown-YT5KJTQT.mjs +0 -30
  264. package/dist/lib/node-esm/markdown-YT5KJTQT.mjs.map +0 -7
  265. package/dist/lib/node-esm/meta.json +0 -1
  266. package/dist/lib/node-esm/operation-resolver-7VD2YXSQ.mjs +0 -80
  267. package/dist/lib/node-esm/operation-resolver-7VD2YXSQ.mjs.map +0 -7
  268. package/dist/lib/node-esm/react-surface-7FZAE3S7.mjs +0 -52
  269. package/dist/lib/node-esm/react-surface-7FZAE3S7.mjs.map +0 -7
  270. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts.map +0 -1
  271. package/dist/types/src/capabilities/anchor-sort/index.d.ts +0 -3
  272. package/dist/types/src/capabilities/anchor-sort/index.d.ts.map +0 -1
  273. package/dist/types/src/capabilities/compute-graph-registry/compute-graph-registry.d.ts.map +0 -1
  274. package/dist/types/src/capabilities/compute-graph-registry/index.d.ts +0 -3
  275. package/dist/types/src/capabilities/compute-graph-registry/index.d.ts.map +0 -1
  276. package/dist/types/src/capabilities/markdown/index.d.ts +0 -3
  277. package/dist/types/src/capabilities/markdown/index.d.ts.map +0 -1
  278. package/dist/types/src/capabilities/markdown/markdown.d.ts.map +0 -1
  279. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -3
  280. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  281. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  282. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  283. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  284. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  285. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  286. package/dist/types/src/types/capabilities.d.ts +0 -6
  287. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  288. package/src/capabilities/anchor-sort/index.ts +0 -7
  289. package/src/capabilities/compute-graph-registry/index.ts +0 -7
  290. package/src/capabilities/markdown/index.ts +0 -7
  291. package/src/capabilities/operation-resolver/index.ts +0 -7
  292. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -77
  293. package/src/capabilities/react-surface/index.ts +0 -7
  294. package/src/types/capabilities.ts +0 -14
  295. /package/dist/lib/{browser/types/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  296. /package/dist/lib/{node-esm/types → neutral}/index.mjs.map +0 -0
  297. /package/dist/types/src/capabilities/{anchor-sort/anchor-sort.d.ts → anchor-sort.d.ts} +0 -0
  298. /package/dist/types/src/capabilities/{markdown/markdown.d.ts → markdown.d.ts} +0 -0
  299. /package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +0 -0
@@ -5,53 +5,53 @@
5
5
  import * as Schema from 'effect/Schema';
6
6
  import React, { useCallback } from 'react';
7
7
 
8
- import { rangeToA1Notation } from '@dxos/compute';
9
- import { Obj } from '@dxos/echo';
8
+ import { rangeToA1Notation } from '@dxos/compute-hyperformula';
9
+ import { useObject } from '@dxos/echo-react';
10
10
  import { Input, Message, useTranslation } from '@dxos/react-ui';
11
11
  import { List } from '@dxos/react-ui-list';
12
- import { ghostHover } from '@dxos/ui-theme';
13
12
 
14
- import { meta } from '../../meta';
15
- import { rangeFromIndex } from '../../types';
16
- import { Sheet } from '../../types';
13
+ import { meta } from '#meta';
14
+ import { rangeFromIndex } from '#types';
15
+ import { Sheet } from '#types';
17
16
 
18
17
  export type RangeListProps = {
19
18
  sheet: Sheet.Sheet;
20
19
  };
21
20
 
22
- export const RangeList = ({ sheet }: RangeListProps) => {
21
+ export const RangeList = ({ sheet: sheetProp }: RangeListProps) => {
23
22
  const { t } = useTranslation(meta.id);
23
+ const [sheet, updateSheet] = useObject(sheetProp);
24
24
  // TODO(thure): Implement similar to comments, #8121
25
25
  const handleSelectRange = (range: Sheet.Range) => {};
26
26
  const handleDeleteRange = useCallback(
27
27
  (range: Sheet.Range) => {
28
28
  const index = sheet.ranges.findIndex((sheetRange) => sheetRange === range);
29
- Obj.change(sheet, (obj) => {
30
- obj.ranges.splice(index, 1);
29
+ updateSheet((sheet) => {
30
+ sheet.ranges.splice(index, 1);
31
31
  });
32
32
  },
33
- [sheet],
33
+ [sheet, updateSheet],
34
34
  );
35
35
  return (
36
36
  <>
37
37
  <Input.Root>
38
- <Input.Label>{t('range list heading')}</Input.Label>
38
+ <Input.Label>{t('range-list.heading')}</Input.Label>
39
39
  </Input.Root>
40
40
  {sheet.ranges.length < 1 ? (
41
41
  <Message.Root>
42
- <Message.Title>{t('no ranges message')}</Message.Title>
42
+ <Message.Title>{t('no-ranges.message')}</Message.Title>
43
43
  </Message.Root>
44
44
  ) : (
45
45
  <List.Root<Sheet.Range> items={sheet.ranges} isItem={Schema.is(Sheet.Range)}>
46
46
  {({ items: ranges }) =>
47
47
  ranges.map((range, i) => (
48
- <List.Item key={i} item={range} classNames={['p-2', ghostHover]}>
48
+ <List.Item key={i} item={range}>
49
49
  <List.ItemDragHandle />
50
50
  <List.ItemTitle onClick={() => handleSelectRange(range)}>
51
- {t('range title', {
52
- position: rangeToA1Notation(rangeFromIndex(sheet, range.range)),
53
- key: t(`range key ${range.key} label`),
54
- value: t(`range value ${range.value} label`),
51
+ {t('range.title', {
52
+ position: rangeToA1Notation(rangeFromIndex(sheetProp, range.range)),
53
+ key: t(`range-key.${range.key}.label`),
54
+ value: t(`range-value.${range.value}.label`),
55
55
  })}
56
56
  </List.ItemTitle>
57
57
  <List.ItemDeleteButton onClick={() => handleDeleteRange(range)} />
@@ -2,6 +2,4 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { RangeList } from './RangeList';
6
-
7
- export default RangeList;
5
+ export { RangeList as default } from './RangeList';
@@ -8,20 +8,21 @@ import React, { useContext } from 'react';
8
8
 
9
9
  import { Capabilities, Capability } from '@dxos/app-framework';
10
10
  import { withPluginManager } from '@dxos/app-framework/testing';
11
+ import { Operation, OperationHandlerSet } from '@dxos/compute';
11
12
  import { Obj } from '@dxos/echo';
12
- import { OperationResolver } from '@dxos/operation';
13
13
  import { corePlugins } from '@dxos/plugin-testing';
14
- import { useSpace } from '@dxos/react-client/echo';
14
+ import { useSpaces } from '@dxos/react-client/echo';
15
15
  import { withClientProvider } from '@dxos/react-client/testing';
16
- import { withLayout, withTheme } from '@dxos/react-ui/testing';
17
16
  import { AttendableContainer } from '@dxos/react-ui-attention';
17
+ import { withLayout, withTheme } from '@dxos/react-ui/testing';
18
18
 
19
- import { ComputeGraphContext, useComputeGraph } from '../../components';
20
- import { createTestCells, useTestSheet, withComputeGraphDecorator } from '../../testing';
21
- import { translations } from '../../translations';
22
- import { Sheet, SheetOperation } from '../../types';
23
- import RangeList from '../RangeList';
19
+ import { ComputeGraphContext, useComputeGraph } from '#components';
20
+ import { createTestCells, useTestSheet, withComputeGraphDecorator } from '#testing';
21
+ import { translations } from '#translations';
22
+ import { SheetOperation } from '#types';
23
+ import { Sheet } from '#types';
24
24
 
25
+ import RangeList from '../RangeList';
25
26
  import { SheetContainer } from './SheetContainer';
26
27
 
27
28
  const meta = {
@@ -35,16 +36,17 @@ const meta = {
35
36
  withPluginManager({
36
37
  plugins: [...corePlugins()],
37
38
  capabilities: [
38
- Capability.contributes(Capabilities.OperationResolver, [
39
- OperationResolver.make({
40
- operation: SheetOperation.DropAxis,
41
- handler: ({ model, axis, axisIndex }) =>
39
+ Capability.contributes(
40
+ Capabilities.OperationHandler,
41
+ OperationHandlerSet.make(
42
+ Operation.withHandler(SheetOperation.DropAxis, ({ model, axis, axisIndex }) =>
42
43
  Effect.sync(() => {
43
44
  model[axis === 'col' ? 'dropColumn' : 'dropRow'](axisIndex);
44
45
  return { axis, axisIndex, index: 0, axisMeta: null, values: [] };
45
46
  }),
46
- }),
47
- ]),
47
+ ),
48
+ ),
49
+ ),
48
50
  ],
49
51
  }),
50
52
  ],
@@ -57,7 +59,7 @@ const meta = {
57
59
  export default meta;
58
60
 
59
61
  export const Default = () => {
60
- const space = useSpace();
62
+ const [space] = useSpaces();
61
63
  const graph = useComputeGraph(space);
62
64
  const { registry } = useContext(ComputeGraphContext) ?? {};
63
65
  const sheet = useTestSheet(space, graph, { cells: createTestCells() });
@@ -67,13 +69,20 @@ export const Default = () => {
67
69
 
68
70
  return (
69
71
  <AttendableContainer id={Obj.getDXN(sheet).toString()} classNames='contents'>
70
- <SheetContainer role='article' space={space} subject={sheet} registry={registry} ignoreAttention />
72
+ <SheetContainer
73
+ role='article'
74
+ space={space}
75
+ subject={sheet}
76
+ attendableId='test'
77
+ registry={registry}
78
+ ignoreAttention
79
+ />
71
80
  </AttendableContainer>
72
81
  );
73
82
  };
74
83
 
75
84
  export const Spec = () => {
76
- const space = useSpace();
85
+ const [space] = useSpaces();
77
86
  const graph = useComputeGraph(space);
78
87
  const { registry } = useContext(ComputeGraphContext) ?? {};
79
88
  const sheet = useTestSheet(space, graph, { cells: { A1: { value: 'Ready' } } });
@@ -83,9 +92,16 @@ export const Spec = () => {
83
92
 
84
93
  return (
85
94
  <AttendableContainer id={Obj.getDXN(sheet).toString()} classNames='contents'>
86
- <div role='none' className='w-full grid grid-cols-[1fr_20rem]'>
87
- <SheetContainer role='article' space={space} subject={sheet} registry={registry} ignoreAttention />
88
- <div role='none' data-testid='grid.range-list'>
95
+ <div className='w-full grid grid-cols-[1fr_20rem]'>
96
+ <SheetContainer
97
+ role='article'
98
+ space={space}
99
+ subject={sheet}
100
+ attendableId='test'
101
+ registry={registry}
102
+ ignoreAttention
103
+ />
104
+ <div data-testid='grid.range-list'>
89
105
  <RangeList sheet={sheet} />
90
106
  </div>
91
107
  </div>
@@ -4,16 +4,15 @@
4
4
 
5
5
  import React from 'react';
6
6
 
7
- import { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';
8
- import { type ComputeGraphRegistry } from '@dxos/compute';
9
- import { Obj } from '@dxos/echo';
7
+ import { type AppSurface } from '@dxos/app-toolkit/ui';
8
+ import { type ComputeGraphRegistry } from '@dxos/compute-hyperformula';
10
9
  import { type Space } from '@dxos/react-client/echo';
11
10
  import { Panel } from '@dxos/react-ui';
12
11
 
13
- import { ComputeGraphContextProvider, Sheet, useComputeGraph } from '../../components';
14
- import { type Sheet as SheetType } from '../../types';
12
+ import { ComputeGraphContextProvider, Sheet, useComputeGraph } from '#components';
13
+ import { type Sheet as SheetType } from '#types';
15
14
 
16
- export type SheetContainerProps = SurfaceComponentProps<
15
+ export type SheetContainerProps = AppSurface.ObjectArticleProps<
17
16
  SheetType.Sheet,
18
17
  {
19
18
  space: Space;
@@ -31,6 +30,7 @@ export const SheetContainer = ({ registry, ...props }: SheetContainerProps) => (
31
30
  const SheetContainerInner = ({
32
31
  role,
33
32
  subject: sheet,
33
+ attendableId,
34
34
  space,
35
35
  ignoreAttention,
36
36
  }: Omit<SheetContainerProps, 'registry'>) => {
@@ -40,10 +40,10 @@ const SheetContainerInner = ({
40
40
  }
41
41
 
42
42
  return (
43
- <Sheet.Root graph={graph} sheet={sheet} ignoreAttention={ignoreAttention}>
43
+ <Sheet.Root graph={graph} sheet={sheet} attendableId={attendableId!} ignoreAttention={ignoreAttention}>
44
44
  <Panel.Root classNames={role === 'section' && 'aspect-aquare'}>
45
45
  <Panel.Toolbar asChild>
46
- <Sheet.Toolbar id={Obj.getDXN(sheet).toString()} />
46
+ <Sheet.Toolbar />
47
47
  </Panel.Toolbar>
48
48
  <Panel.Content asChild>
49
49
  <Sheet.Content />
@@ -2,6 +2,4 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { SheetContainer } from './SheetContainer';
6
-
7
- export default SheetContainer;
5
+ export { SheetContainer as default } from './SheetContainer';
@@ -8,11 +8,11 @@ import React, { useEffect, useMemo } from 'react';
8
8
  import { OperationPlugin, RuntimePlugin } from '@dxos/app-framework';
9
9
  import { withPluginManager } from '@dxos/app-framework/testing';
10
10
  import { PublicKey } from '@dxos/keys';
11
- import { useSpace } from '@dxos/react-client/echo';
11
+ import { useSpaces } from '@dxos/react-client/echo';
12
12
  import { withClientProvider } from '@dxos/react-client/testing';
13
13
  import { useThemeContext } from '@dxos/react-ui';
14
- import { withLayout, withTheme } from '@dxos/react-ui/testing';
15
14
  import { useTextEditor } from '@dxos/react-ui-editor';
15
+ import { withLayout, withTheme } from '@dxos/react-ui/testing';
16
16
  import {
17
17
  createBasicExtensions,
18
18
  createMarkdownExtensions,
@@ -22,11 +22,11 @@ import {
22
22
  } from '@dxos/ui-editor';
23
23
  import { isNonNullable } from '@dxos/util';
24
24
 
25
- import { Sheet, useComputeGraph } from '../components';
26
- import { useSheetModel } from '../model';
27
- import { useTestSheet, withComputeGraphDecorator } from '../testing';
28
- import { Sheet as SheetType } from '../types';
25
+ import { Sheet, useComputeGraph } from '#components';
26
+ import { useTestSheet, withComputeGraphDecorator } from '#testing';
27
+ import { Sheet as SheetType } from '#types';
29
28
 
29
+ import { useSheetModel } from '../model';
30
30
  import { compute, computeGraphFacet } from './compute';
31
31
 
32
32
  const str = (...lines: string[]) => lines.join('\n');
@@ -45,7 +45,7 @@ const SHEET_NAME = 'Test Sheet';
45
45
  const DefaultStory = ({ text }: EditorProps) => {
46
46
  const id = useMemo(() => PublicKey.random(), []);
47
47
  const { themeMode } = useThemeContext();
48
- const space = useSpace();
48
+ const [space] = useSpaces();
49
49
  const computeGraph = useComputeGraph(space);
50
50
  const { parentRef, focusAttributes } = useTextEditor(
51
51
  () => ({
@@ -67,7 +67,7 @@ const DefaultStory = ({ text }: EditorProps) => {
67
67
  };
68
68
 
69
69
  const Grid = () => {
70
- const space = useSpace();
70
+ const [space] = useSpaces();
71
71
  const graph = useComputeGraph(space);
72
72
  const sheet = useTestSheet(space, graph, { name: SHEET_NAME });
73
73
  const model = useSheetModel(graph, sheet);
@@ -88,7 +88,7 @@ const Grid = () => {
88
88
 
89
89
  return (
90
90
  <div className='flex w-[40rem] overflow-hidden'>
91
- <Sheet.Root graph={graph} sheet={sheet}>
91
+ <Sheet.Root graph={graph} sheet={sheet} attendableId='test'>
92
92
  <Sheet.Content />
93
93
  </Sheet.Root>
94
94
  </div>
@@ -21,7 +21,7 @@ import {
21
21
  type ComputeGraph,
22
22
  type ComputeNode,
23
23
  createSheetName,
24
- } from '@dxos/compute';
24
+ } from '@dxos/compute-hyperformula';
25
25
  import { invariant } from '@dxos/invariant';
26
26
  import { documentId, singleValueFacet } from '@dxos/ui-editor';
27
27
 
@@ -8,7 +8,7 @@ import { testTree } from '@lezer/generator/test';
8
8
  import { spreadsheet } from 'codemirror-lang-spreadsheet';
9
9
  import { describe, expect, test } from 'vitest';
10
10
 
11
- import { defaultFunctions } from '@dxos/compute';
11
+ import { defaultFunctions } from '@dxos/compute-hyperformula';
12
12
 
13
13
  import { sheetExtension } from './sheet-extension';
14
14
 
@@ -18,8 +18,8 @@ import { type SyntaxNode } from '@lezer/common';
18
18
  import { tags } from '@lezer/highlight';
19
19
  import { spreadsheet } from 'codemirror-lang-spreadsheet';
20
20
 
21
- import { type FunctionDefinition } from '@dxos/compute';
22
- import { RANGE_NOTATION } from '@dxos/compute';
21
+ import { type FunctionDefinition } from '@dxos/compute-hyperformula';
22
+ import { RANGE_NOTATION } from '@dxos/compute-hyperformula';
23
23
  import { singleValueFacet } from '@dxos/ui-editor';
24
24
  import { mx } from '@dxos/ui-theme';
25
25
 
package/src/index.ts CHANGED
@@ -2,6 +2,6 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- export { SheetCapabilities } from './types';
6
5
  export * from './meta';
7
- export * from './SheetPlugin';
6
+ export * from './operations';
7
+ export * from './types';
@@ -2,23 +2,19 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import * as Effect from 'effect/Effect';
6
5
  import { useCallback, useEffect, useMemo } from 'react';
7
6
 
8
- import { useOperationInvoker, useOperationResolver } from '@dxos/app-framework/ui';
7
+ import { useOperationInvoker } from '@dxos/app-framework/ui';
9
8
  import { LayoutOperation } from '@dxos/app-toolkit';
10
9
  import { debounce } from '@dxos/async';
11
- import { type CellAddress, type CompleteCellRange, inRange } from '@dxos/compute';
10
+ import { type CellAddress, type CompleteCellRange, inRange } from '@dxos/compute-hyperformula';
12
11
  import { Obj, Relation } from '@dxos/echo';
13
- import { OperationResolver } from '@dxos/operation';
14
- import { ATTENDABLE_PATH_SEPARATOR, DeckOperation } from '@dxos/plugin-deck/types';
15
- import { ThreadOperation } from '@dxos/plugin-thread/types';
12
+ import { ThreadOperation } from '@dxos/plugin-thread';
16
13
  import { Filter, Query, useQuery } from '@dxos/react-client/echo';
17
- import { type DxGridElement, type GridContentProps } from '@dxos/react-ui-grid';
14
+ import { linkedSegment } from '@dxos/react-ui-attention';
18
15
  import { AnchoredTo, Thread } from '@dxos/types';
19
16
 
20
- import { useSheetContext } from '../components';
21
- import { meta } from '../meta';
17
+ import { useSheetContext } from '#components';
22
18
 
23
19
  export const completeCellRangeToThreadCursor = (range: CompleteCellRange): string => {
24
20
  return `${range.from.col},${range.from.row},${range.to.col},${range.to.row}`;
@@ -37,33 +33,6 @@ export const parseThreadAnchorAsCellRange = (cursor: string): CompleteCellRange
37
33
  }
38
34
  };
39
35
 
40
- export const useUpdateFocusedCellOnThreadSelection = (grid: DxGridElement | null) => {
41
- const { model, setActiveRefs } = useSheetContext();
42
- const sheetId = Obj.getDXN(model.sheet).toString();
43
-
44
- const scrollIntoViewHandler = useMemo(
45
- () =>
46
- OperationResolver.make({
47
- operation: LayoutOperation.ScrollIntoView,
48
- position: 'hoist',
49
- filter: (input) => input.subject === sheetId && !!input.cursor,
50
- handler: (input) =>
51
- Effect.sync(() => {
52
- const { cursor, ref } = input;
53
- if (cursor) {
54
- setActiveRefs(ref as GridContentProps['activeRefs']);
55
- // TODO(Zan): Everywhere we refer to the cursor in a thread context should change to `anchor`.
56
- const range = parseThreadAnchorAsCellRange(cursor);
57
- range && grid?.setFocus({ ...range.to, plane: 'grid' }, true);
58
- }
59
- }),
60
- }),
61
- [sheetId, setActiveRefs, grid],
62
- );
63
-
64
- useOperationResolver(meta.id, scrollIntoViewHandler);
65
- };
66
-
67
36
  export const useSelectThreadOnCellFocus = () => {
68
37
  const { model, cursor } = useSheetContext();
69
38
  const { invokePromise } = useOperationInvoker();
@@ -88,11 +57,10 @@ export const useSelectThreadOnCellFocus = () => {
88
57
  });
89
58
 
90
59
  if (closestThread) {
91
- const primary = Obj.getDXN(model.sheet).toString();
92
60
  void (async () => {
93
61
  await invokePromise(ThreadOperation.Select, { current: Relation.getDXN(closestThread).toString() });
94
- await invokePromise(DeckOperation.ChangeCompanion, {
95
- companion: `${primary}${ATTENDABLE_PATH_SEPARATOR}comments`,
62
+ await invokePromise(LayoutOperation.UpdateCompanion, {
63
+ subject: linkedSegment('comments'),
96
64
  });
97
65
  })();
98
66
  }
package/src/meta.ts CHANGED
@@ -6,7 +6,7 @@ import { type Plugin } from '@dxos/app-framework';
6
6
  import { trim } from '@dxos/util';
7
7
 
8
8
  export const meta: Plugin.Meta = {
9
- id: 'dxos.org/plugin/sheet',
9
+ id: 'org.dxos.plugin.sheet',
10
10
  name: 'Sheet',
11
11
  description: trim`
12
12
  Full-featured spreadsheet application with over 400 built-in formulas for calculations and data analysis.
@@ -5,12 +5,12 @@
5
5
  import { afterEach, beforeEach, describe, expect, onTestFinished, test } from 'vitest';
6
6
 
7
7
  import { Trigger } from '@dxos/async';
8
- import { type CellScalarValue, addressFromA1Notation, isFormula } from '@dxos/compute';
9
- import { TestBuilder, testFunctionPlugins } from '@dxos/compute/testing';
10
- import { Function } from '@dxos/functions';
8
+ import { Operation } from '@dxos/compute';
9
+ import { type CellScalarValue, addressFromA1Notation, isFormula } from '@dxos/compute-hyperformula';
10
+ import { TestBuilder, testFunctionPlugins } from '@dxos/compute-hyperformula/testing';
11
11
  import { log } from '@dxos/log';
12
12
 
13
- import { Sheet, mapFormulaIndicesToRefs, mapFormulaRefsToIndices } from '../types';
13
+ import { Sheet, mapFormulaIndicesToRefs, mapFormulaRefsToIndices } from '#types';
14
14
 
15
15
  import { SheetModel } from './sheet-model';
16
16
  import { createTestGrid } from './testing';
@@ -18,7 +18,7 @@ import { createTestGrid } from './testing';
18
18
  describe('SheetModel', () => {
19
19
  let testBuilder: TestBuilder;
20
20
  beforeEach(async () => {
21
- testBuilder = new TestBuilder({ types: [Function.Function], plugins: testFunctionPlugins });
21
+ testBuilder = new TestBuilder({ types: [Operation.PersistentOperation], plugins: testFunctionPlugins });
22
22
  await testBuilder.open();
23
23
  });
24
24
  afterEach(async () => {
@@ -20,7 +20,7 @@ import {
20
20
  addressToA1Notation,
21
21
  createSheetName,
22
22
  isFormula,
23
- } from '@dxos/compute';
23
+ } from '@dxos/compute-hyperformula';
24
24
  import { Resource } from '@dxos/context';
25
25
  import { Obj } from '@dxos/echo';
26
26
  import { Format, TypeEnum } from '@dxos/echo/internal';
@@ -38,8 +38,8 @@ import {
38
38
  insertIndices,
39
39
  mapFormulaIndicesToRefs,
40
40
  mapFormulaRefsToIndices,
41
- } from '../types';
42
- import { type Sheet, type SheetAction } from '../types';
41
+ } from '#types';
42
+ import { type Sheet, type SheetAction } from '#types';
43
43
 
44
44
  // TODO(burdon): Move to compute.
45
45
  // Map sheet types to system types.
@@ -122,7 +122,7 @@ export class SheetModel extends Resource {
122
122
  */
123
123
  protected override async _open(): Promise<void> {
124
124
  log('initialize', { id: this.id });
125
- Obj.change(this._sheet, (obj) => {
125
+ Obj.update(this._sheet, (obj) => {
126
126
  initialize(obj);
127
127
  });
128
128
 
@@ -184,7 +184,7 @@ export class SheetModel extends Resource {
184
184
 
185
185
  insertRows(i: number, n = 1): string[] {
186
186
  let idx: string[] = [];
187
- Obj.change(this._sheet, (obj) => {
187
+ Obj.update(this._sheet, (obj) => {
188
188
  idx = insertIndices(obj.rows, i, n, MAX_ROWS);
189
189
  });
190
190
  this.reset();
@@ -193,7 +193,7 @@ export class SheetModel extends Resource {
193
193
 
194
194
  insertColumns(i: number, n = 1): string[] {
195
195
  let idx: string[] = [];
196
- Obj.change(this._sheet, (obj) => {
196
+ Obj.update(this._sheet, (obj) => {
197
197
  idx = insertIndices(obj.columns, i, n, MAX_COLS);
198
198
  });
199
199
  this.reset();
@@ -208,7 +208,7 @@ export class SheetModel extends Resource {
208
208
  const values = this.getCellValues(range).flat();
209
209
  const index = this._sheet.rows.indexOf(rowIndex);
210
210
  this.clear(range);
211
- Obj.change(this._sheet, (obj) => {
211
+ Obj.update(this._sheet, (obj) => {
212
212
  obj.rows.splice(index, 1);
213
213
  delete obj.rowMeta[rowIndex];
214
214
  });
@@ -224,7 +224,7 @@ export class SheetModel extends Resource {
224
224
  const values = this.getCellValues(range).flat();
225
225
  const index = this._sheet.columns.indexOf(colIndex);
226
226
  this.clear(range);
227
- Obj.change(this._sheet, (obj) => {
227
+ Obj.update(this._sheet, (obj) => {
228
228
  obj.columns.splice(index, 1);
229
229
  delete obj.columnMeta[colIndex];
230
230
  });
@@ -233,7 +233,7 @@ export class SheetModel extends Resource {
233
233
  }
234
234
 
235
235
  restoreRow({ index, axisIndex, axisMeta, values }: SheetAction.RestoreAxis): void {
236
- Obj.change(this._sheet, (obj) => {
236
+ Obj.update(this._sheet, (obj) => {
237
237
  obj.rows.splice(index, 0, axisIndex);
238
238
  values.forEach((value, col) => {
239
239
  if (value) {
@@ -249,7 +249,7 @@ export class SheetModel extends Resource {
249
249
  }
250
250
 
251
251
  restoreColumn({ index, axisIndex, axisMeta, values }: SheetAction.RestoreAxis): void {
252
- Obj.change(this._sheet, (obj) => {
252
+ Obj.update(this._sheet, (obj) => {
253
253
  obj.columns.splice(index, 0, axisIndex);
254
254
  values.forEach((value, row) => {
255
255
  if (value) {
@@ -277,7 +277,7 @@ export class SheetModel extends Resource {
277
277
  const topLeft = getTopLeft(range);
278
278
  const values = this._iterRange(range, () => null);
279
279
  this._node.graph.hf.setCellContents(toSimpleCellAddress(this._node.sheetId, topLeft), values);
280
- Obj.change(this._sheet, (obj) => {
280
+ Obj.update(this._sheet, (obj) => {
281
281
  this._iterRange(range, (cell) => {
282
282
  const idx = addressToIndex(this._sheet, cell);
283
283
  delete obj.cells[idx];
@@ -288,7 +288,7 @@ export class SheetModel extends Resource {
288
288
  cut(range: CellRange): void {
289
289
  invariant(this._node);
290
290
  this._node.graph.hf.cut(toModelRange(this._node.sheetId, range));
291
- Obj.change(this._sheet, (obj) => {
291
+ Obj.update(this._sheet, (obj) => {
292
292
  this._iterRange(range, (cell) => {
293
293
  const idx = addressToIndex(this._sheet, cell);
294
294
  delete obj.cells[idx];
@@ -305,7 +305,7 @@ export class SheetModel extends Resource {
305
305
  invariant(this._node);
306
306
  if (!this._node.graph.hf.isClipboardEmpty()) {
307
307
  const changes = this._node.graph.hf.paste(toSimpleCellAddress(this._node.sheetId, cell));
308
- Obj.change(this._sheet, (obj) => {
308
+ Obj.update(this._sheet, (obj) => {
309
309
  for (const change of changes) {
310
310
  if (change instanceof ExportedCellChange) {
311
311
  const { address, newValue } = change;
@@ -404,13 +404,13 @@ export class SheetModel extends Resource {
404
404
  // Reallocate if > current bounds.
405
405
  let refresh = false;
406
406
  if (cell.row >= this._sheet.rows.length) {
407
- Obj.change(this._sheet, (obj) => {
407
+ Obj.update(this._sheet, (obj) => {
408
408
  insertIndices(obj.rows, cell.row, 1, MAX_ROWS);
409
409
  });
410
410
  refresh = true;
411
411
  }
412
412
  if (cell.col >= this._sheet.columns.length) {
413
- Obj.change(this._sheet, (obj) => {
413
+ Obj.update(this._sheet, (obj) => {
414
414
  insertIndices(obj.columns, cell.col, 1, MAX_COLS);
415
415
  });
416
416
  refresh = true;
@@ -429,7 +429,7 @@ export class SheetModel extends Resource {
429
429
  // Insert into sheet.
430
430
  const idx = addressToIndex(this._sheet, cell);
431
431
  if (value === undefined || value === null) {
432
- Obj.change(this._sheet, (obj) => {
432
+ Obj.update(this._sheet, (obj) => {
433
433
  delete obj.cells[idx];
434
434
  });
435
435
  } else {
@@ -437,7 +437,7 @@ export class SheetModel extends Resource {
437
437
  value = this._graph.mapFunctionBindingToId(mapFormulaRefsToIndices(this._sheet, value));
438
438
  }
439
439
 
440
- Obj.change(this._sheet, (obj) => {
440
+ Obj.update(this._sheet, (obj) => {
441
441
  obj.cells[idx] = { value };
442
442
  });
443
443
  }
@@ -2,9 +2,9 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { addressToA1Notation } from '@dxos/compute';
5
+ import { addressToA1Notation } from '@dxos/compute-hyperformula';
6
6
 
7
- import { Sheet } from '../types';
7
+ import { Sheet } from '#types';
8
8
 
9
9
  // TODO(burdon): Create testing endpoint.
10
10
  // TODO(burdon): Move to react-ui-sheet.
@@ -4,10 +4,11 @@
4
4
 
5
5
  import { useEffect, useState } from 'react';
6
6
 
7
- import { type ComputeGraph } from '@dxos/compute';
7
+ import { type ComputeGraph } from '@dxos/compute-hyperformula';
8
+
9
+ import { type Sheet } from '#types';
8
10
 
9
11
  import { SheetModel } from '../model';
10
- import { type Sheet } from '../types';
11
12
 
12
13
  export type UseSheetModelOptions = {
13
14
  readonly?: boolean;
@@ -0,0 +1,26 @@
1
+ //
2
+
3
+ import * as Effect from 'effect/Effect';
4
+ // Copyright 2025 DXOS.org
5
+ //
6
+
7
+ import { Operation } from '@dxos/compute';
8
+
9
+ import { SheetOperation } from '../types';
10
+
11
+ const handler: Operation.WithHandler<typeof SheetOperation.DropAxis> = SheetOperation.DropAxis.pipe(
12
+ Operation.withHandler(({ model, axis, axisIndex }) =>
13
+ Effect.sync(() => {
14
+ const undoData = model[axis === 'col' ? 'dropColumn' : 'dropRow'](axisIndex);
15
+ return {
16
+ axis: undoData.axis,
17
+ axisIndex: undoData.axisIndex,
18
+ index: undoData.index,
19
+ axisMeta: undoData.axisMeta,
20
+ values: undoData.values,
21
+ };
22
+ }),
23
+ ),
24
+ );
25
+
26
+ export default handler;
@@ -0,0 +1,12 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { OperationHandlerSet } from '@dxos/compute';
6
+
7
+ export const SheetOperationHandlerSet = OperationHandlerSet.lazy(
8
+ () => import('./drop-axis'),
9
+ () => import('./insert-axis'),
10
+ () => import('./restore-axis'),
11
+ () => import('./scroll-to-anchor'),
12
+ );