@dxos/plugin-sheet 0.8.4-main.3eb6e50203 → 0.8.4-main.3fbcb4aa9b

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 (355) hide show
  1. package/dist/lib/neutral/RangeList-HYB5S6KQ.mjs +46 -0
  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-AMMLA66W.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-IFLWVS2V.mjs → neutral/chunk-4SBAIU6F.mjs} +12 -12
  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-KE3AKN5W.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/chunk-EDWHV64N.mjs → neutral/components/index.mjs} +552 -474
  27. package/dist/lib/neutral/components/index.mjs.map +7 -0
  28. package/dist/lib/{browser/compute-graph-registry-RC5L7RE4.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/{node-esm/types → neutral}/index.mjs +14 -6
  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-D2T2DOVX.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-45CRAB5G.mjs → neutral/react-surface-ID4JCAFR.mjs} +16 -23
  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/{browser → neutral}/types/index.mjs +6 -5
  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 +6 -0
  73. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -0
  74. package/dist/types/src/capabilities/comment-config.d.ts +12 -0
  75. package/dist/types/src/capabilities/comment-config.d.ts.map +1 -0
  76. package/dist/types/src/capabilities/compute-graph-registry.d.ts +5 -0
  77. package/dist/types/src/capabilities/compute-graph-registry.d.ts.map +1 -0
  78. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  79. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  80. package/dist/types/src/capabilities/index.d.ts +23 -5
  81. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  82. package/dist/types/src/capabilities/markdown.d.ts +5 -0
  83. package/dist/types/src/capabilities/markdown.d.ts.map +1 -0
  84. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  85. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  86. package/dist/types/src/capabilities/react-surface.d.ts +5 -0
  87. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  88. package/dist/types/src/capabilities/state.d.ts +6 -0
  89. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  90. package/dist/types/src/capabilities/undo-mappings.d.ts +5 -0
  91. package/dist/types/src/capabilities/undo-mappings.d.ts.map +1 -0
  92. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts +1 -1
  93. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts.map +1 -1
  94. package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts.map +1 -1
  95. package/dist/types/src/components/Sheet/Sheet.d.ts +17 -0
  96. package/dist/types/src/components/Sheet/Sheet.d.ts.map +1 -0
  97. package/dist/types/src/components/Sheet/index.d.ts +2 -0
  98. package/dist/types/src/components/Sheet/index.d.ts.map +1 -0
  99. package/dist/types/src/components/SheetContent/SheetCellEditor.stories.d.ts.map +1 -0
  100. package/dist/types/src/components/SheetContent/SheetContent.d.ts +6 -0
  101. package/dist/types/src/components/SheetContent/SheetContent.d.ts.map +1 -0
  102. package/dist/types/src/components/SheetContent/SheetContent.stories.d.ts +93 -0
  103. package/dist/types/src/components/SheetContent/SheetContent.stories.d.ts.map +1 -0
  104. package/dist/types/src/components/SheetContent/index.d.ts +2 -0
  105. package/dist/types/src/components/SheetContent/index.d.ts.map +1 -0
  106. package/dist/types/src/components/{GridSheet → SheetContent}/util.d.ts +1 -1
  107. package/dist/types/src/components/SheetContent/util.d.ts.map +1 -0
  108. package/dist/types/src/components/{SheetContext/SheetContext.d.ts → SheetRoot/SheetRoot.d.ts} +8 -6
  109. package/dist/types/src/components/SheetRoot/SheetRoot.d.ts.map +1 -0
  110. package/dist/types/src/components/SheetRoot/index.d.ts +2 -0
  111. package/dist/types/src/components/SheetRoot/index.d.ts.map +1 -0
  112. package/dist/types/src/components/SheetStatusbar/SheetStatusbar.d.ts +6 -0
  113. package/dist/types/src/components/SheetStatusbar/SheetStatusbar.d.ts.map +1 -0
  114. package/dist/types/src/components/SheetStatusbar/index.d.ts +2 -0
  115. package/dist/types/src/components/SheetStatusbar/index.d.ts.map +1 -0
  116. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts +5 -5
  117. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -1
  118. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +72 -68
  119. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -1
  120. package/dist/types/src/components/SheetToolbar/align.d.ts +2 -2
  121. package/dist/types/src/components/SheetToolbar/align.d.ts.map +1 -1
  122. package/dist/types/src/components/SheetToolbar/style.d.ts +2 -2
  123. package/dist/types/src/components/SheetToolbar/style.d.ts.map +1 -1
  124. package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts.map +1 -1
  125. package/dist/types/src/components/index.d.ts +1 -4
  126. package/dist/types/src/components/index.d.ts.map +1 -1
  127. package/dist/types/src/containers/RangeList/RangeList.d.ts +7 -0
  128. package/dist/types/src/containers/RangeList/RangeList.d.ts.map +1 -0
  129. package/dist/types/src/containers/RangeList/index.d.ts +2 -0
  130. package/dist/types/src/containers/RangeList/index.d.ts.map +1 -0
  131. package/dist/types/src/containers/SheetContainer/SheetContainer.d.ts +12 -0
  132. package/dist/types/src/containers/SheetContainer/SheetContainer.d.ts.map +1 -0
  133. package/dist/types/src/containers/SheetContainer/SheetContainer.stories.d.ts +92 -0
  134. package/dist/types/src/containers/SheetContainer/SheetContainer.stories.d.ts.map +1 -0
  135. package/dist/types/src/containers/SheetContainer/index.d.ts +2 -0
  136. package/dist/types/src/containers/SheetContainer/index.d.ts.map +1 -0
  137. package/dist/types/src/containers/index.d.ts +4 -0
  138. package/dist/types/src/containers/index.d.ts.map +1 -0
  139. package/dist/types/src/extensions/compute.d.ts +1 -1
  140. package/dist/types/src/extensions/compute.d.ts.map +1 -1
  141. package/dist/types/src/extensions/compute.stories.d.ts.map +1 -1
  142. package/dist/types/src/extensions/editor/sheet-extension.d.ts +1 -1
  143. package/dist/types/src/extensions/editor/sheet-extension.d.ts.map +1 -1
  144. package/dist/types/src/index.d.ts +2 -2
  145. package/dist/types/src/index.d.ts.map +1 -1
  146. package/dist/types/src/integrations/thread-ranges.d.ts +1 -3
  147. package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
  148. package/dist/types/src/model/sheet-model.d.ts +2 -2
  149. package/dist/types/src/model/sheet-model.d.ts.map +1 -1
  150. package/dist/types/src/model/testing.d.ts +1 -1
  151. package/dist/types/src/model/testing.d.ts.map +1 -1
  152. package/dist/types/src/model/useSheetModel.d.ts +2 -2
  153. package/dist/types/src/model/useSheetModel.d.ts.map +1 -1
  154. package/dist/types/src/operations/drop-axis.d.ts +5 -0
  155. package/dist/types/src/operations/drop-axis.d.ts.map +1 -0
  156. package/dist/types/src/operations/index.d.ts +3 -0
  157. package/dist/types/src/operations/index.d.ts.map +1 -0
  158. package/dist/types/src/operations/insert-axis.d.ts +5 -0
  159. package/dist/types/src/operations/insert-axis.d.ts.map +1 -0
  160. package/dist/types/src/operations/restore-axis.d.ts +5 -0
  161. package/dist/types/src/operations/restore-axis.d.ts.map +1 -0
  162. package/dist/types/src/operations/scroll-to-anchor.d.ts +5 -0
  163. package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -0
  164. package/dist/types/src/playwright/playwright.config.d.ts.map +1 -1
  165. package/dist/types/src/playwright/sheet-manager.d.ts.map +1 -1
  166. package/dist/types/src/plugin.d.ts +4 -0
  167. package/dist/types/src/plugin.d.ts.map +1 -0
  168. package/dist/types/src/serializer.d.ts +2 -2
  169. package/dist/types/src/serializer.d.ts.map +1 -1
  170. package/dist/types/src/testing/data.d.ts +1 -1
  171. package/dist/types/src/testing/data.d.ts.map +1 -1
  172. package/dist/types/src/testing/testing.d.ts +4 -4
  173. package/dist/types/src/testing/testing.d.ts.map +1 -1
  174. package/dist/types/src/translations.d.ts +74 -39
  175. package/dist/types/src/translations.d.ts.map +1 -1
  176. package/dist/types/src/types/Sheet.d.ts +3 -3
  177. package/dist/types/src/types/Sheet.d.ts.map +1 -1
  178. package/dist/types/src/types/SheetCapabilities.d.ts +16 -0
  179. package/dist/types/src/types/SheetCapabilities.d.ts.map +1 -0
  180. package/dist/types/src/types/SheetOperation.d.ts +45 -0
  181. package/dist/types/src/types/SheetOperation.d.ts.map +1 -0
  182. package/dist/types/src/types/index.d.ts +3 -2
  183. package/dist/types/src/types/index.d.ts.map +1 -1
  184. package/dist/types/src/types/sheet-range-types.d.ts +1 -1
  185. package/dist/types/src/types/sheet-range-types.d.ts.map +1 -1
  186. package/dist/types/src/types/types.d.ts +0 -92
  187. package/dist/types/src/types/types.d.ts.map +1 -1
  188. package/dist/types/src/types/util.d.ts +1 -1
  189. package/dist/types/src/types/util.d.ts.map +1 -1
  190. package/dist/types/tsconfig.tsbuildinfo +1 -1
  191. package/package.json +116 -74
  192. package/src/SheetPlugin.node.ts +21 -0
  193. package/src/SheetPlugin.test.ts +30 -0
  194. package/src/SheetPlugin.tsx +25 -35
  195. package/src/capabilities/{anchor-sort/anchor-sort.ts → anchor-sort.ts} +1 -1
  196. package/src/capabilities/comment-config.ts +24 -0
  197. package/src/capabilities/{compute-graph-registry/compute-graph-registry.ts → compute-graph-registry.ts} +4 -2
  198. package/src/capabilities/create-object.ts +30 -0
  199. package/src/capabilities/index.ts +17 -5
  200. package/src/capabilities/{markdown/markdown.ts → markdown.ts} +3 -2
  201. package/src/capabilities/operation-handler.ts +16 -0
  202. package/src/capabilities/react-surface.tsx +49 -0
  203. package/src/capabilities/state.ts +29 -0
  204. package/src/capabilities/undo-mappings.ts +30 -0
  205. package/src/components/ComputeGraph/ComputeGraphContextProvider.tsx +1 -1
  206. package/src/components/ComputeGraph/compute-graph.stories.tsx +18 -15
  207. package/src/components/Sheet/Sheet.tsx +20 -0
  208. package/src/components/Sheet/index.ts +5 -0
  209. package/src/components/{GridSheet → SheetContent}/SheetCellEditor.stories.tsx +9 -8
  210. package/src/components/{GridSheet/GridSheet.stories.tsx → SheetContent/SheetContent.stories.tsx} +19 -18
  211. package/src/components/{GridSheet/GridSheet.tsx → SheetContent/SheetContent.tsx} +45 -25
  212. package/src/components/{RangeList → SheetContent}/index.ts +1 -1
  213. package/src/components/{GridSheet → SheetContent}/util.ts +6 -5
  214. package/src/components/{SheetContext/SheetContext.tsx → SheetRoot/SheetRoot.tsx} +52 -39
  215. package/src/components/{GridSheet → SheetRoot}/index.ts +1 -1
  216. package/src/components/{FunctionEditor/FunctionEditor.tsx → SheetStatusbar/SheetStatusbar.tsx} +20 -8
  217. package/src/components/{FunctionEditor → SheetStatusbar}/index.ts +1 -1
  218. package/src/components/SheetToolbar/SheetToolbar.stories.tsx +5 -5
  219. package/src/components/SheetToolbar/SheetToolbar.tsx +18 -22
  220. package/src/components/SheetToolbar/align.ts +12 -12
  221. package/src/components/SheetToolbar/style.ts +10 -10
  222. package/src/components/index.ts +1 -7
  223. package/src/{components → containers}/RangeList/RangeList.tsx +22 -20
  224. package/src/containers/RangeList/index.ts +5 -0
  225. package/src/{components → containers}/SheetContainer/SheetContainer.stories.tsx +42 -45
  226. package/src/containers/SheetContainer/SheetContainer.tsx +57 -0
  227. package/src/containers/SheetContainer/index.ts +5 -0
  228. package/src/containers/index.ts +8 -0
  229. package/src/extensions/compute.stories.tsx +16 -15
  230. package/src/extensions/compute.ts +1 -1
  231. package/src/extensions/editor/sheet-extension.test.ts +1 -1
  232. package/src/extensions/editor/sheet-extension.ts +12 -12
  233. package/src/index.ts +2 -2
  234. package/src/integrations/thread-ranges.ts +7 -40
  235. package/src/meta.ts +1 -1
  236. package/src/model/sheet-model.test.ts +5 -5
  237. package/src/model/sheet-model.ts +17 -17
  238. package/src/model/testing.ts +2 -2
  239. package/src/model/useSheetModel.ts +3 -2
  240. package/src/operations/drop-axis.ts +26 -0
  241. package/src/operations/index.ts +12 -0
  242. package/src/operations/insert-axis.ts +19 -0
  243. package/src/operations/restore-axis.ts +19 -0
  244. package/src/operations/scroll-to-anchor.ts +30 -0
  245. package/src/playwright/playwright.config.ts +1 -1
  246. package/src/playwright/sheet.spec.ts +3 -3
  247. package/src/plugin.ts +11 -0
  248. package/src/sanity.test.ts +6 -3
  249. package/src/serializer.ts +2 -2
  250. package/src/testing/data.ts +1 -1
  251. package/src/testing/testing.tsx +4 -4
  252. package/src/translations.ts +41 -36
  253. package/src/types/Sheet.ts +15 -9
  254. package/src/types/SheetCapabilities.ts +26 -0
  255. package/src/types/SheetOperation.ts +75 -0
  256. package/src/types/index.ts +4 -2
  257. package/src/types/sheet-range-types.ts +3 -3
  258. package/src/types/types.ts +0 -80
  259. package/src/types/util.ts +1 -1
  260. package/dist/lib/browser/SheetContainer-6DNFC4TY.mjs +0 -397
  261. package/dist/lib/browser/SheetContainer-6DNFC4TY.mjs.map +0 -7
  262. package/dist/lib/browser/anchor-sort-AMMLA66W.mjs.map +0 -7
  263. package/dist/lib/browser/chunk-EDWHV64N.mjs.map +0 -7
  264. package/dist/lib/browser/chunk-IFLWVS2V.mjs.map +0 -7
  265. package/dist/lib/browser/chunk-KE3AKN5W.mjs.map +0 -7
  266. package/dist/lib/browser/compute-graph-registry-RC5L7RE4.mjs.map +0 -7
  267. package/dist/lib/browser/index.mjs +0 -145
  268. package/dist/lib/browser/index.mjs.map +0 -7
  269. package/dist/lib/browser/markdown-D2T2DOVX.mjs.map +0 -7
  270. package/dist/lib/browser/meta.json +0 -1
  271. package/dist/lib/browser/operation-resolver-P2RX75DA.mjs +0 -79
  272. package/dist/lib/browser/operation-resolver-P2RX75DA.mjs.map +0 -7
  273. package/dist/lib/browser/react-surface-45CRAB5G.mjs.map +0 -7
  274. package/dist/lib/node-esm/SheetContainer-7H5R7M54.mjs +0 -398
  275. package/dist/lib/node-esm/SheetContainer-7H5R7M54.mjs.map +0 -7
  276. package/dist/lib/node-esm/anchor-sort-VHMBRX2E.mjs +0 -25
  277. package/dist/lib/node-esm/anchor-sort-VHMBRX2E.mjs.map +0 -7
  278. package/dist/lib/node-esm/chunk-6J5L47IB.mjs +0 -398
  279. package/dist/lib/node-esm/chunk-6J5L47IB.mjs.map +0 -7
  280. package/dist/lib/node-esm/chunk-AYSEWH7N.mjs +0 -1474
  281. package/dist/lib/node-esm/chunk-AYSEWH7N.mjs.map +0 -7
  282. package/dist/lib/node-esm/chunk-PPOYR7DK.mjs +0 -236
  283. package/dist/lib/node-esm/chunk-PPOYR7DK.mjs.map +0 -7
  284. package/dist/lib/node-esm/compute-graph-registry-ZGXVLVGD.mjs +0 -22
  285. package/dist/lib/node-esm/compute-graph-registry-ZGXVLVGD.mjs.map +0 -7
  286. package/dist/lib/node-esm/index.mjs +0 -146
  287. package/dist/lib/node-esm/index.mjs.map +0 -7
  288. package/dist/lib/node-esm/markdown-PTV72DLO.mjs +0 -30
  289. package/dist/lib/node-esm/markdown-PTV72DLO.mjs.map +0 -7
  290. package/dist/lib/node-esm/meta.json +0 -1
  291. package/dist/lib/node-esm/operation-resolver-WPIWQ5IO.mjs +0 -80
  292. package/dist/lib/node-esm/operation-resolver-WPIWQ5IO.mjs.map +0 -7
  293. package/dist/lib/node-esm/react-surface-ITV2L6HK.mjs +0 -52
  294. package/dist/lib/node-esm/react-surface-ITV2L6HK.mjs.map +0 -7
  295. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts +0 -6
  296. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts.map +0 -1
  297. package/dist/types/src/capabilities/anchor-sort/index.d.ts +0 -3
  298. package/dist/types/src/capabilities/anchor-sort/index.d.ts.map +0 -1
  299. package/dist/types/src/capabilities/compute-graph-registry/compute-graph-registry.d.ts +0 -5
  300. package/dist/types/src/capabilities/compute-graph-registry/compute-graph-registry.d.ts.map +0 -1
  301. package/dist/types/src/capabilities/compute-graph-registry/index.d.ts +0 -3
  302. package/dist/types/src/capabilities/compute-graph-registry/index.d.ts.map +0 -1
  303. package/dist/types/src/capabilities/markdown/index.d.ts +0 -3
  304. package/dist/types/src/capabilities/markdown/index.d.ts.map +0 -1
  305. package/dist/types/src/capabilities/markdown/markdown.d.ts +0 -5
  306. package/dist/types/src/capabilities/markdown/markdown.d.ts.map +0 -1
  307. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -3
  308. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  309. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  310. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  311. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  312. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  313. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +0 -5
  314. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  315. package/dist/types/src/components/FunctionEditor/FunctionEditor.d.ts +0 -3
  316. package/dist/types/src/components/FunctionEditor/FunctionEditor.d.ts.map +0 -1
  317. package/dist/types/src/components/FunctionEditor/index.d.ts +0 -2
  318. package/dist/types/src/components/FunctionEditor/index.d.ts.map +0 -1
  319. package/dist/types/src/components/GridSheet/GridSheet.d.ts +0 -3
  320. package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +0 -1
  321. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts +0 -55
  322. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +0 -1
  323. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts.map +0 -1
  324. package/dist/types/src/components/GridSheet/index.d.ts +0 -2
  325. package/dist/types/src/components/GridSheet/index.d.ts.map +0 -1
  326. package/dist/types/src/components/GridSheet/util.d.ts.map +0 -1
  327. package/dist/types/src/components/RangeList/RangeList.d.ts +0 -7
  328. package/dist/types/src/components/RangeList/RangeList.d.ts.map +0 -1
  329. package/dist/types/src/components/RangeList/index.d.ts +0 -2
  330. package/dist/types/src/components/RangeList/index.d.ts.map +0 -1
  331. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts +0 -10
  332. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +0 -1
  333. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts +0 -57
  334. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +0 -1
  335. package/dist/types/src/components/SheetContainer/index.d.ts +0 -3
  336. package/dist/types/src/components/SheetContainer/index.d.ts.map +0 -1
  337. package/dist/types/src/components/SheetContext/SheetContext.d.ts.map +0 -1
  338. package/dist/types/src/components/SheetContext/index.d.ts +0 -2
  339. package/dist/types/src/components/SheetContext/index.d.ts.map +0 -1
  340. package/dist/types/src/types/capabilities.d.ts +0 -6
  341. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  342. package/src/capabilities/anchor-sort/index.ts +0 -7
  343. package/src/capabilities/compute-graph-registry/index.ts +0 -7
  344. package/src/capabilities/markdown/index.ts +0 -7
  345. package/src/capabilities/operation-resolver/index.ts +0 -7
  346. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -77
  347. package/src/capabilities/react-surface/index.ts +0 -7
  348. package/src/capabilities/react-surface/react-surface.tsx +0 -43
  349. package/src/components/SheetContainer/SheetContainer.tsx +0 -48
  350. package/src/components/SheetContainer/index.ts +0 -7
  351. package/src/components/SheetContext/index.ts +0 -5
  352. package/src/types/capabilities.ts +0 -14
  353. /package/dist/lib/{browser/types/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  354. /package/dist/lib/{node-esm/types → neutral}/index.mjs.map +0 -0
  355. /package/dist/types/src/components/{GridSheet → SheetContent}/SheetCellEditor.stories.d.ts +0 -0
@@ -5,23 +5,23 @@
5
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
6
6
  import React from 'react';
7
7
 
8
- import { withTheme } from '@dxos/react-ui/testing';
8
+ import { withLayout, withTheme } from '@dxos/react-ui/testing';
9
9
 
10
- import { translations } from '../../translations';
10
+ import { translations } from '#translations';
11
11
 
12
12
  import { SheetToolbar } from './SheetToolbar';
13
13
 
14
14
  const DefaultStory = () => {
15
- // TODO(wittjosiah): Depends on SheetProvider.
15
+ // TODO(wittjosiah): Depends on SheetRoot.
16
16
  // return <SheetToolbar id='test' />;
17
17
  return <>TODO</>;
18
18
  };
19
19
 
20
20
  const meta = {
21
- title: 'plugins/plugin-sheet/Toolbar',
21
+ title: 'plugins/plugin-sheet/components/Toolbar',
22
22
  component: SheetToolbar as any,
23
23
  render: DefaultStory,
24
- decorators: [withTheme()],
24
+ decorators: [withTheme(), withLayout({ layout: 'fullscreen' })],
25
25
  parameters: {
26
26
  layout: 'fullscreen',
27
27
  translations,
@@ -3,21 +3,15 @@
3
3
  //
4
4
 
5
5
  import { Atom, type Registry, RegistryContext } from '@effect-atom/atom-react';
6
- import React, { type PropsWithChildren, useContext, useMemo } from 'react';
6
+ import React, { useContext, useMemo } from 'react';
7
7
 
8
8
  import { useAppGraph } from '@dxos/app-toolkit/ui';
9
- import { type CompleteCellRange } from '@dxos/compute';
10
- import {
11
- type ActionGraphProps,
12
- MenuProvider,
13
- ToolbarMenu,
14
- createGapSeparator,
15
- useMenuActions,
16
- } from '@dxos/react-ui-menu';
9
+ import { type CompleteCellRange } from '@dxos/compute-hyperformula';
10
+ import { type ActionGraphProps, Menu, createGapSeparator, useMenuActions } from '@dxos/react-ui-menu';
11
+ import { composable, composableProps } from '@dxos/ui-theme';
17
12
 
18
13
  import { type SheetModel } from '../../model';
19
- import { useSheetContext } from '../SheetContext';
20
-
14
+ import { useSheetContext } from '../SheetRoot';
21
15
  import { createAlign, useAlignState } from './align';
22
16
  import { createStyle, useStyleState } from './style';
23
17
  import { type ToolbarStateAtom, useToolbarState } from './useToolbarState';
@@ -59,10 +53,10 @@ const createToolbarActions = ({
59
53
  });
60
54
  };
61
55
 
62
- export type SheetToolbarProps = PropsWithChildren<{ id: string }>;
56
+ export type SheetToolbarProps = {};
63
57
 
64
- export const SheetToolbar = ({ id }: SheetToolbarProps) => {
65
- const { model, cursorFallbackRange } = useSheetContext();
58
+ export const SheetToolbar = composable<HTMLDivElement, SheetToolbarProps>((props, forwardedRef) => {
59
+ const { attendableId, model, cursorFallbackRange } = useSheetContext();
66
60
  const stateAtom = useToolbarState({});
67
61
  const registry = useContext(RegistryContext);
68
62
  useAlignState(stateAtom);
@@ -71,24 +65,26 @@ export const SheetToolbar = ({ id }: SheetToolbarProps) => {
71
65
  const { graph } = useAppGraph();
72
66
  const customActions = useMemo(() => {
73
67
  return Atom.make((get) => {
74
- const actions = get(graph.actions(id));
68
+ const actions = get(graph.actions(attendableId));
75
69
  const nodes = actions.filter((action) => action.properties.disposition === 'toolbar');
76
70
  return {
77
71
  nodes,
78
- edges: nodes.map((node) => ({ source: 'root', target: node.id })),
72
+ edges: nodes.map((node) => ({ source: 'root', target: node.id, relation: 'child' })),
79
73
  };
80
74
  });
81
- }, [graph, id]);
75
+ }, [graph, attendableId]);
82
76
 
83
77
  const actionsCreator = useMemo(
84
78
  () => createToolbarActions({ model, stateAtom, registry, cursorFallbackRange, customActions }),
85
79
  [model, stateAtom, registry, cursorFallbackRange, customActions],
86
80
  );
87
- const menu = useMenuActions(actionsCreator);
81
+ const menuActions = useMenuActions(actionsCreator);
88
82
 
89
83
  return (
90
- <MenuProvider {...menu} attendableId={id}>
91
- <ToolbarMenu />
92
- </MenuProvider>
84
+ <Menu.Root {...menuActions} attendableId={attendableId}>
85
+ <Menu.Toolbar {...composableProps(props)} ref={forwardedRef} />
86
+ </Menu.Root>
93
87
  );
94
- };
88
+ });
89
+
90
+ SheetToolbar.displayName = 'SheetToolbar';
@@ -5,7 +5,7 @@
5
5
  import { type Registry, RegistryContext } from '@effect-atom/atom-react';
6
6
  import { useContext, useEffect } from 'react';
7
7
 
8
- import { type CompleteCellRange, inRange } from '@dxos/compute';
8
+ import { type CompleteCellRange, inRange } from '@dxos/compute-hyperformula';
9
9
  import { Obj } from '@dxos/echo';
10
10
  import {
11
11
  type ActionGraphProps,
@@ -14,11 +14,11 @@ import {
14
14
  createMenuItemGroup,
15
15
  } from '@dxos/react-ui-menu';
16
16
 
17
- import { meta } from '../../meta';
18
- import { type SheetModel } from '../../model';
19
- import { type AlignKey, type AlignValue, alignKey, rangeFromIndex, rangeToIndex } from '../../types';
20
- import { useSheetContext } from '../SheetContext';
17
+ import { meta } from '#meta';
18
+ import { type AlignKey, type AlignValue, alignKey, rangeFromIndex, rangeToIndex } from '#types';
21
19
 
20
+ import { type SheetModel } from '../../model';
21
+ import { useSheetContext } from '../SheetRoot';
22
22
  import { type ToolbarState, type ToolbarStateAtom } from './useToolbarState';
23
23
 
24
24
  export type AlignAction = { key: AlignKey; value: AlignValue };
@@ -50,7 +50,7 @@ export const useAlignState = (stateAtom: ToolbarStateAtom) => {
50
50
 
51
51
  const createAlignGroupAction = (value?: AlignValue) =>
52
52
  createMenuItemGroup('align', {
53
- label: ['align label', { ns: meta.id }],
53
+ label: ['align.label', { ns: meta.id }],
54
54
  variant: 'toggleGroup',
55
55
  selectCardinality: 'single',
56
56
  value: `${alignKey}--${value}`,
@@ -84,17 +84,17 @@ const createAlignActions = ({ model, state, stateAtom, registry, cursorFallbackR
84
84
  };
85
85
  const currentState = registry.get(stateAtom);
86
86
  if (index < 0) {
87
- Obj.change(model.sheet, (obj) => {
87
+ Obj.update(model.sheet, (obj) => {
88
88
  obj.ranges?.push(nextRangeEntity);
89
89
  });
90
90
  registry.set(stateAtom, { ...currentState, [alignKey]: nextRangeEntity.value });
91
91
  } else if (model.sheet.ranges![index].value === nextRangeEntity.value) {
92
- Obj.change(model.sheet, (obj) => {
92
+ Obj.update(model.sheet, (obj) => {
93
93
  obj.ranges?.splice(index, 1);
94
94
  });
95
95
  registry.set(stateAtom, { ...currentState, [alignKey]: undefined });
96
96
  } else {
97
- Obj.change(model.sheet, (obj) => {
97
+ Obj.update(model.sheet, (obj) => {
98
98
  obj.ranges?.splice(index, 1, nextRangeEntity);
99
99
  });
100
100
  registry.set(stateAtom, { ...currentState, [alignKey]: nextRangeEntity.value });
@@ -104,7 +104,7 @@ const createAlignActions = ({ model, state, stateAtom, registry, cursorFallbackR
104
104
  key: alignKey,
105
105
  value: alignValue as AlignValue,
106
106
  checked: state[alignKey] === alignValue,
107
- label: [`range value ${alignValue} label`, { ns: meta.id }],
107
+ label: [`range-value.${alignValue}.label`, { ns: meta.id }],
108
108
  icon,
109
109
  testId: `grid.toolbar.${alignKey}.${alignValue}`,
110
110
  },
@@ -117,8 +117,8 @@ export const createAlign = (context: AlignActionsContext): ActionGraphProps => {
117
117
  return {
118
118
  nodes: [alignGroup, ...alignActions],
119
119
  edges: [
120
- { source: 'root', target: 'align' },
121
- ...alignActions.map(({ id }) => ({ source: alignGroup.id, target: id })),
120
+ { source: 'root', target: 'align', relation: 'child' },
121
+ ...alignActions.map(({ id }) => ({ source: alignGroup.id, target: id, relation: 'child' })),
122
122
  ],
123
123
  };
124
124
  };
@@ -5,7 +5,7 @@
5
5
  import { type Registry, RegistryContext } from '@effect-atom/atom-react';
6
6
  import { useContext, useEffect } from 'react';
7
7
 
8
- import { type CompleteCellRange, inRange } from '@dxos/compute';
8
+ import { type CompleteCellRange, inRange } from '@dxos/compute-hyperformula';
9
9
  import { Obj } from '@dxos/echo';
10
10
  import {
11
11
  type ActionGraphProps,
@@ -14,11 +14,11 @@ import {
14
14
  createMenuItemGroup,
15
15
  } from '@dxos/react-ui-menu';
16
16
 
17
- import { meta } from '../../meta';
18
- import { type SheetModel } from '../../model';
19
- import { type StyleKey, type StyleValue, rangeFromIndex, rangeToIndex } from '../../types';
20
- import { useSheetContext } from '../SheetContext';
17
+ import { meta } from '#meta';
18
+ import { type StyleKey, type StyleValue, rangeFromIndex, rangeToIndex } from '#types';
21
19
 
20
+ import { type SheetModel } from '../../model';
21
+ import { useSheetContext } from '../SheetRoot';
22
22
  import { type ToolbarState, type ToolbarStateAtom } from './useToolbarState';
23
23
 
24
24
  export type StyleState = Partial<Record<StyleValue, boolean>>;
@@ -103,13 +103,13 @@ const createStyleActions = ({ model, state, stateAtom, registry, cursorFallbackR
103
103
  ) {
104
104
  // this value should be unset
105
105
  if (index >= 0) {
106
- Obj.change(model.sheet, (obj) => {
106
+ Obj.update(model.sheet, (obj) => {
107
107
  obj.ranges?.splice(index, 1);
108
108
  });
109
109
  }
110
110
  registry.set(stateAtom, { ...currentState, [nextRangeEntity.value]: false });
111
111
  } else {
112
- Obj.change(model.sheet, (obj) => {
112
+ Obj.update(model.sheet, (obj) => {
113
113
  obj.ranges?.push(nextRangeEntity);
114
114
  });
115
115
  registry.set(stateAtom, { ...currentState, [nextRangeEntity.value]: true });
@@ -119,7 +119,7 @@ const createStyleActions = ({ model, state, stateAtom, registry, cursorFallbackR
119
119
  key: 'style',
120
120
  value: styleValue as StyleValue,
121
121
  icon,
122
- label: [`range value ${styleValue} label`, { ns: meta.id }],
122
+ label: [`range-value.${styleValue}.label`, { ns: meta.id }],
123
123
  checked: !!state[styleValue as StyleValue],
124
124
  },
125
125
  );
@@ -131,8 +131,8 @@ export const createStyle = (context: StyleActionsContext): ActionGraphProps => {
131
131
  return {
132
132
  nodes: [styleGroupAction, ...styleActions],
133
133
  edges: [
134
- { source: 'root', target: 'style' },
135
- ...styleActions.map(({ id }) => ({ source: styleGroupAction.id, target: id })),
134
+ { source: 'root', target: 'style', relation: 'child' },
135
+ ...styleActions.map(({ id }) => ({ source: styleGroupAction.id, target: id, relation: 'child' })),
136
136
  ],
137
137
  };
138
138
  };
@@ -2,11 +2,5 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { lazy } from 'react';
6
-
7
5
  export * from './ComputeGraph';
8
- export * from './GridSheet';
9
- export * from './RangeList';
10
- export * from './SheetContext';
11
-
12
- export const SheetContainer = lazy(() => import('./SheetContainer'));
6
+ export * from './Sheet';
@@ -5,51 +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';
10
- import { Callout, useTranslation } from '@dxos/react-ui';
8
+ import { rangeToA1Notation } from '@dxos/compute-hyperformula';
9
+ import { useObject } from '@dxos/echo-react';
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
- <h2 className='mbs-cardSpacingBlock mbe-labelSpacingBlock text-sm font-semibold'>{t('range list heading')}</h2>
37
+ <Input.Root>
38
+ <Input.Label>{t('range-list.heading')}</Input.Label>
39
+ </Input.Root>
38
40
  {sheet.ranges.length < 1 ? (
39
- <Callout.Root>
40
- <Callout.Title>{t('no ranges message')}</Callout.Title>
41
- </Callout.Root>
41
+ <Message.Root>
42
+ <Message.Title>{t('no-ranges.message')}</Message.Title>
43
+ </Message.Root>
42
44
  ) : (
43
45
  <List.Root<Sheet.Range> items={sheet.ranges} isItem={Schema.is(Sheet.Range)}>
44
46
  {({ items: ranges }) =>
45
47
  ranges.map((range, i) => (
46
- <List.Item key={i} item={range} classNames={['p-2', ghostHover]}>
48
+ <List.Item key={i} item={range}>
47
49
  <List.ItemDragHandle />
48
50
  <List.ItemTitle onClick={() => handleSelectRange(range)}>
49
- {t('range title', {
50
- position: rangeToA1Notation(rangeFromIndex(sheet, range.range)),
51
- key: t(`range key ${range.key} label`),
52
- 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`),
53
55
  })}
54
56
  </List.ItemTitle>
55
57
  <List.ItemDeleteButton onClick={() => handleDeleteRange(range)} />
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ export { RangeList as default } from './RangeList';
@@ -4,49 +4,49 @@
4
4
 
5
5
  import { type Meta } from '@storybook/react-vite';
6
6
  import * as Effect from 'effect/Effect';
7
- import React from 'react';
7
+ 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 { createTestCells, useTestSheet, withComputeGraphDecorator } from '../../testing';
20
- import { translations } from '../../translations';
21
- import { Sheet, SheetOperation } from '../../types';
22
- import { useComputeGraph } from '../ComputeGraph';
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 = {
28
- title: 'plugins/plugin-sheet/SheetContainer',
29
+ title: 'plugins/plugin-sheet/containers/SheetContainer',
29
30
  component: SheetContainer,
30
31
  decorators: [
31
32
  withTheme(),
32
33
  withLayout({ layout: 'fullscreen' }),
33
34
  withClientProvider({ types: [Sheet.Sheet], createSpace: true }),
34
35
  withComputeGraphDecorator(),
35
- // TODO(wittjosiah): Consider whether we should refactor component so story doesn't need to depend on intents.
36
36
  withPluginManager({
37
37
  plugins: [...corePlugins()],
38
38
  capabilities: [
39
- Capability.contributes(Capabilities.OperationResolver, [
40
- OperationResolver.make({
41
- operation: SheetOperation.DropAxis,
42
- handler: ({ model, axis, axisIndex }) =>
39
+ Capability.contributes(
40
+ Capabilities.OperationHandler,
41
+ OperationHandlerSet.make(
42
+ Operation.withHandler(SheetOperation.DropAxis, ({ model, axis, axisIndex }) =>
43
43
  Effect.sync(() => {
44
44
  model[axis === 'col' ? 'dropColumn' : 'dropRow'](axisIndex);
45
- // Return stub output for story purposes.
46
45
  return { axis, axisIndex, index: 0, axisMeta: null, values: [] };
47
46
  }),
48
- }),
49
- ]),
47
+ ),
48
+ ),
49
+ ),
50
50
  ],
51
51
  }),
52
52
  ],
@@ -59,52 +59,49 @@ const meta = {
59
59
  export default meta;
60
60
 
61
61
  export const Default = () => {
62
- const space = useSpace();
62
+ const [space] = useSpaces();
63
63
  const graph = useComputeGraph(space);
64
+ const { registry } = useContext(ComputeGraphContext) ?? {};
64
65
  const sheet = useTestSheet(space, graph, { cells: createTestCells() });
65
- if (!sheet || !space) {
66
+ if (!sheet || !space || !registry) {
66
67
  return null;
67
68
  }
68
69
 
69
70
  return (
70
71
  <AttendableContainer id={Obj.getDXN(sheet).toString()} classNames='contents'>
71
- <SheetContainer role='article' space={space} subject={sheet} ignoreAttention />
72
+ <SheetContainer
73
+ role='article'
74
+ space={space}
75
+ subject={sheet}
76
+ attendableId='test'
77
+ registry={registry}
78
+ ignoreAttention
79
+ />
72
80
  </AttendableContainer>
73
81
  );
74
82
  };
75
83
 
76
- export const Section = () => {
77
- const space = useSpace();
78
- const graph = useComputeGraph(space);
79
- const sheet = useTestSheet(space, graph, { cells: createTestCells() });
80
- if (!sheet || !space) {
81
- return null;
82
- }
83
-
84
- return (
85
- <div className='is-full flex justify-center'>
86
- <div className='is-[40rem]'>
87
- <AttendableContainer id={Obj.getDXN(sheet).toString()} classNames='contents'>
88
- <SheetContainer role='section' space={space} subject={sheet} ignoreAttention />
89
- </AttendableContainer>
90
- </div>
91
- </div>
92
- );
93
- };
94
-
95
84
  export const Spec = () => {
96
- const space = useSpace();
85
+ const [space] = useSpaces();
97
86
  const graph = useComputeGraph(space);
87
+ const { registry } = useContext(ComputeGraphContext) ?? {};
98
88
  const sheet = useTestSheet(space, graph, { cells: { A1: { value: 'Ready' } } });
99
- if (!sheet || !space) {
89
+ if (!sheet || !space || !registry) {
100
90
  return null;
101
91
  }
102
92
 
103
93
  return (
104
94
  <AttendableContainer id={Obj.getDXN(sheet).toString()} classNames='contents'>
105
- <div role='none' className='is-full grid grid-cols-[1fr_20rem]'>
106
- <SheetContainer role='article' space={space} subject={sheet} ignoreAttention />
107
- <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'>
108
105
  <RangeList sheet={sheet} />
109
106
  </div>
110
107
  </div>
@@ -0,0 +1,57 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import React from 'react';
6
+
7
+ import { type AppSurface } from '@dxos/app-toolkit/ui';
8
+ import { type ComputeGraphRegistry } from '@dxos/compute-hyperformula';
9
+ import { type Space } from '@dxos/react-client/echo';
10
+ import { Panel } from '@dxos/react-ui';
11
+
12
+ import { ComputeGraphContextProvider, Sheet, useComputeGraph } from '#components';
13
+ import { type Sheet as SheetType } from '#types';
14
+
15
+ export type SheetContainerProps = AppSurface.ObjectArticleProps<
16
+ SheetType.Sheet,
17
+ {
18
+ space: Space;
19
+ registry: ComputeGraphRegistry;
20
+ ignoreAttention?: boolean;
21
+ }
22
+ >;
23
+
24
+ export const SheetContainer = ({ registry, ...props }: SheetContainerProps) => (
25
+ <ComputeGraphContextProvider registry={registry}>
26
+ <SheetContainerInner {...props} />
27
+ </ComputeGraphContextProvider>
28
+ );
29
+
30
+ const SheetContainerInner = ({
31
+ role,
32
+ subject: sheet,
33
+ attendableId,
34
+ space,
35
+ ignoreAttention,
36
+ }: Omit<SheetContainerProps, 'registry'>) => {
37
+ const graph = useComputeGraph(space);
38
+ if (!graph) {
39
+ return null;
40
+ }
41
+
42
+ return (
43
+ <Sheet.Root graph={graph} sheet={sheet} attendableId={attendableId!} ignoreAttention={ignoreAttention}>
44
+ <Panel.Root classNames={role === 'section' && 'aspect-aquare'}>
45
+ <Panel.Toolbar asChild>
46
+ <Sheet.Toolbar />
47
+ </Panel.Toolbar>
48
+ <Panel.Content asChild>
49
+ <Sheet.Content />
50
+ </Panel.Content>
51
+ <Panel.Statusbar asChild>
52
+ <Sheet.Statusbar />
53
+ </Panel.Statusbar>
54
+ </Panel.Root>
55
+ </Sheet.Root>
56
+ );
57
+ };
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ export { SheetContainer as default } from './SheetContainer';
@@ -0,0 +1,8 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { type ComponentType, lazy } from 'react';
6
+
7
+ export const RangeList: ComponentType<any> = lazy(() => import('./RangeList'));
8
+ export const SheetContainer: ComponentType<any> = lazy(() => import('./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 { 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 { GridSheet, SheetProvider, useComputeGraph } from '../components';
26
- import { useSheetModel } from '../model';
27
- import { useTestSheet, withComputeGraphDecorator } from '../testing';
28
- import { Sheet } 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
  () => ({
@@ -63,11 +63,11 @@ const DefaultStory = ({ text }: EditorProps) => {
63
63
  [computeGraph, themeMode],
64
64
  );
65
65
 
66
- return <div className='is-[40rem] overflow-hidden' ref={parentRef} {...focusAttributes} />;
66
+ return <div className='w-[40rem] overflow-hidden' ref={parentRef} {...focusAttributes} />;
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);
@@ -87,10 +87,10 @@ const Grid = () => {
87
87
  }
88
88
 
89
89
  return (
90
- <div className='flex is-[40rem] overflow-hidden'>
91
- <SheetProvider graph={graph} sheet={sheet}>
92
- <GridSheet />
93
- </SheetProvider>
90
+ <div className='flex w-[40rem] overflow-hidden'>
91
+ <Sheet.Root graph={graph} sheet={sheet} attendableId='test'>
92
+ <Sheet.Content />
93
+ </Sheet.Root>
94
94
  </div>
95
95
  );
96
96
  };
@@ -105,11 +105,12 @@ const GraphStory = (props: EditorProps) => {
105
105
  };
106
106
 
107
107
  const meta = {
108
- title: 'plugins/plugin-sheet/extensions',
108
+ title: 'plugins/plugin-sheet/extensions/compute',
109
109
  decorators: [
110
110
  withTheme(),
111
+ withLayout({ layout: 'fullscreen' }),
111
112
  withClientProvider({
112
- types: [Sheet.Sheet],
113
+ types: [SheetType.Sheet],
113
114
  createIdentity: true,
114
115
  createSpace: true,
115
116
  }),
@@ -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