@dxos/plugin-sheet 0.8.3 → 0.8.4-main.1c7ec43d41

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 (375) hide show
  1. package/dist/lib/browser/SheetPlugin-ANKNNNUM.mjs +48 -0
  2. package/dist/lib/browser/SheetPlugin-ANKNNNUM.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-5TXOUIGZ.mjs +118 -0
  4. package/dist/lib/browser/chunk-5TXOUIGZ.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  6. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-SVGX3MWY.mjs +262 -0
  8. package/dist/lib/browser/chunk-SVGX3MWY.mjs.map +7 -0
  9. package/dist/lib/browser/drop-axis-ZLERPPPH.mjs +23 -0
  10. package/dist/lib/browser/drop-axis-ZLERPPPH.mjs.map +7 -0
  11. package/dist/lib/browser/index.mjs +21 -142
  12. package/dist/lib/browser/index.mjs.map +4 -4
  13. package/dist/lib/browser/insert-axis-WTRA3HE7.mjs +16 -0
  14. package/dist/lib/browser/insert-axis-WTRA3HE7.mjs.map +7 -0
  15. package/dist/lib/browser/meta.json +1 -1
  16. package/dist/lib/browser/operations/index.mjs +13 -0
  17. package/dist/lib/browser/operations/index.mjs.map +7 -0
  18. package/dist/lib/browser/restore-axis-PYGPW2TB.mjs +16 -0
  19. package/dist/lib/browser/restore-axis-PYGPW2TB.mjs.map +7 -0
  20. package/dist/lib/browser/scroll-to-anchor-6I4DNKBW.mjs +65 -0
  21. package/dist/lib/browser/scroll-to-anchor-6I4DNKBW.mjs.map +7 -0
  22. package/dist/lib/browser/translations.mjs +55 -0
  23. package/dist/lib/browser/translations.mjs.map +7 -0
  24. package/dist/lib/browser/types/index.mjs +6 -12
  25. package/dist/lib/node-esm/SheetPlugin-JMR3XCIU.mjs +49 -0
  26. package/dist/lib/node-esm/SheetPlugin-JMR3XCIU.mjs.map +7 -0
  27. package/dist/lib/node-esm/chunk-4A2KAXTF.mjs +263 -0
  28. package/dist/lib/node-esm/chunk-4A2KAXTF.mjs.map +7 -0
  29. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  30. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  31. package/dist/lib/node-esm/chunk-MCZFRYOP.mjs +119 -0
  32. package/dist/lib/node-esm/chunk-MCZFRYOP.mjs.map +7 -0
  33. package/dist/lib/node-esm/drop-axis-FV2GXSZP.mjs +24 -0
  34. package/dist/lib/node-esm/drop-axis-FV2GXSZP.mjs.map +7 -0
  35. package/dist/lib/node-esm/index.mjs +21 -142
  36. package/dist/lib/node-esm/index.mjs.map +4 -4
  37. package/dist/lib/node-esm/insert-axis-THXK6DCC.mjs +17 -0
  38. package/dist/lib/node-esm/insert-axis-THXK6DCC.mjs.map +7 -0
  39. package/dist/lib/node-esm/meta.json +1 -1
  40. package/dist/lib/node-esm/operations/index.mjs +14 -0
  41. package/dist/lib/node-esm/operations/index.mjs.map +7 -0
  42. package/dist/lib/node-esm/restore-axis-JIFT3Q7Z.mjs +17 -0
  43. package/dist/lib/node-esm/restore-axis-JIFT3Q7Z.mjs.map +7 -0
  44. package/dist/lib/node-esm/scroll-to-anchor-JRDC5KK2.mjs +66 -0
  45. package/dist/lib/node-esm/scroll-to-anchor-JRDC5KK2.mjs.map +7 -0
  46. package/dist/lib/node-esm/translations.mjs +56 -0
  47. package/dist/lib/node-esm/translations.mjs.map +7 -0
  48. package/dist/lib/node-esm/types/index.mjs +6 -12
  49. package/dist/types/src/SheetPlugin.d.ts +3 -1
  50. package/dist/types/src/SheetPlugin.d.ts.map +1 -1
  51. package/dist/types/src/SheetPlugin.node.d.ts +4 -0
  52. package/dist/types/src/SheetPlugin.node.d.ts.map +1 -0
  53. package/dist/types/src/SheetPlugin.test.d.ts +2 -0
  54. package/dist/types/src/SheetPlugin.test.d.ts.map +1 -0
  55. package/dist/types/src/capabilities/anchor-sort.d.ts +4 -4
  56. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
  57. package/dist/types/src/capabilities/comment-config.d.ts +12 -0
  58. package/dist/types/src/capabilities/comment-config.d.ts.map +1 -0
  59. package/dist/types/src/capabilities/compute-graph-registry.d.ts +3 -2
  60. package/dist/types/src/capabilities/compute-graph-registry.d.ts.map +1 -1
  61. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  62. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  63. package/dist/types/src/capabilities/index.d.ts +23 -11
  64. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  65. package/dist/types/src/capabilities/markdown.d.ts +3 -4
  66. package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
  67. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  68. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  69. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  70. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  71. package/dist/types/src/capabilities/state.d.ts +6 -0
  72. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  73. package/dist/types/src/capabilities/undo-mappings.d.ts +5 -0
  74. package/dist/types/src/capabilities/undo-mappings.d.ts.map +1 -0
  75. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts +1 -1
  76. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts.map +1 -1
  77. package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts +9 -4
  78. package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts.map +1 -1
  79. package/dist/types/src/components/Sheet/Sheet.d.ts +17 -0
  80. package/dist/types/src/components/Sheet/Sheet.d.ts.map +1 -0
  81. package/dist/types/src/components/Sheet/index.d.ts +2 -0
  82. package/dist/types/src/components/Sheet/index.d.ts.map +1 -0
  83. package/dist/types/src/components/SheetContent/SheetCellEditor.stories.d.ts +16 -0
  84. package/dist/types/src/components/SheetContent/SheetCellEditor.stories.d.ts.map +1 -0
  85. package/dist/types/src/components/SheetContent/SheetContent.d.ts +6 -0
  86. package/dist/types/src/components/SheetContent/SheetContent.d.ts.map +1 -0
  87. package/dist/types/src/components/SheetContent/SheetContent.stories.d.ts +93 -0
  88. package/dist/types/src/components/SheetContent/SheetContent.stories.d.ts.map +1 -0
  89. package/dist/types/src/components/SheetContent/index.d.ts +2 -0
  90. package/dist/types/src/components/SheetContent/index.d.ts.map +1 -0
  91. package/dist/types/src/components/{GridSheet → SheetContent}/util.d.ts +2 -2
  92. package/dist/types/src/components/SheetContent/util.d.ts.map +1 -0
  93. package/dist/types/src/components/{SheetContext/SheetContext.d.ts → SheetRoot/SheetRoot.d.ts} +9 -7
  94. package/dist/types/src/components/SheetRoot/SheetRoot.d.ts.map +1 -0
  95. package/dist/types/src/components/SheetRoot/index.d.ts +2 -0
  96. package/dist/types/src/components/SheetRoot/index.d.ts.map +1 -0
  97. package/dist/types/src/components/SheetStatusbar/SheetStatusbar.d.ts +6 -0
  98. package/dist/types/src/components/SheetStatusbar/SheetStatusbar.d.ts.map +1 -0
  99. package/dist/types/src/components/SheetStatusbar/index.d.ts +2 -0
  100. package/dist/types/src/components/SheetStatusbar/index.d.ts.map +1 -0
  101. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts +5 -6
  102. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -1
  103. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +92 -4
  104. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -1
  105. package/dist/types/src/components/SheetToolbar/align.d.ts +14 -21
  106. package/dist/types/src/components/SheetToolbar/align.d.ts.map +1 -1
  107. package/dist/types/src/components/SheetToolbar/style.d.ts +14 -20
  108. package/dist/types/src/components/SheetToolbar/style.d.ts.map +1 -1
  109. package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts +14 -1
  110. package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts.map +1 -1
  111. package/dist/types/src/components/index.d.ts +1 -4
  112. package/dist/types/src/components/index.d.ts.map +1 -1
  113. package/dist/types/src/containers/RangeList/RangeList.d.ts +7 -0
  114. package/dist/types/src/containers/RangeList/RangeList.d.ts.map +1 -0
  115. package/dist/types/src/containers/RangeList/index.d.ts +2 -0
  116. package/dist/types/src/containers/RangeList/index.d.ts.map +1 -0
  117. package/dist/types/src/containers/SheetContainer/SheetContainer.d.ts +12 -0
  118. package/dist/types/src/containers/SheetContainer/SheetContainer.d.ts.map +1 -0
  119. package/dist/types/src/containers/SheetContainer/SheetContainer.stories.d.ts +92 -0
  120. package/dist/types/src/containers/SheetContainer/SheetContainer.stories.d.ts.map +1 -0
  121. package/dist/types/src/containers/SheetContainer/index.d.ts +2 -0
  122. package/dist/types/src/containers/SheetContainer/index.d.ts.map +1 -0
  123. package/dist/types/src/containers/index.d.ts +4 -0
  124. package/dist/types/src/containers/index.d.ts.map +1 -0
  125. package/dist/types/src/extensions/compute.d.ts +2 -2
  126. package/dist/types/src/extensions/compute.d.ts.map +1 -1
  127. package/dist/types/src/extensions/compute.stories.d.ts +10 -13
  128. package/dist/types/src/extensions/compute.stories.d.ts.map +1 -1
  129. package/dist/types/src/extensions/editor/index.d.ts +1 -1
  130. package/dist/types/src/extensions/editor/index.d.ts.map +1 -1
  131. package/dist/types/src/extensions/editor/{extension.d.ts → sheet-extension.d.ts} +2 -2
  132. package/dist/types/src/extensions/editor/sheet-extension.d.ts.map +1 -0
  133. package/dist/types/src/extensions/editor/sheet-extension.test.d.ts +2 -0
  134. package/dist/types/src/extensions/editor/sheet-extension.test.d.ts.map +1 -0
  135. package/dist/types/src/index.d.ts +3 -2
  136. package/dist/types/src/index.d.ts.map +1 -1
  137. package/dist/types/src/integrations/thread-ranges.d.ts +1 -3
  138. package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
  139. package/dist/types/src/meta.d.ts +2 -3
  140. package/dist/types/src/meta.d.ts.map +1 -1
  141. package/dist/types/src/model/sheet-model.d.ts +7 -7
  142. package/dist/types/src/model/sheet-model.d.ts.map +1 -1
  143. package/dist/types/src/model/testing.d.ts +2 -2
  144. package/dist/types/src/model/testing.d.ts.map +1 -1
  145. package/dist/types/src/model/useSheetModel.d.ts +3 -3
  146. package/dist/types/src/model/useSheetModel.d.ts.map +1 -1
  147. package/dist/types/src/operations/definitions.d.ts +45 -0
  148. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  149. package/dist/types/src/operations/drop-axis.d.ts +5 -0
  150. package/dist/types/src/operations/drop-axis.d.ts.map +1 -0
  151. package/dist/types/src/operations/index.d.ts +4 -0
  152. package/dist/types/src/operations/index.d.ts.map +1 -0
  153. package/dist/types/src/operations/insert-axis.d.ts +5 -0
  154. package/dist/types/src/operations/insert-axis.d.ts.map +1 -0
  155. package/dist/types/src/operations/restore-axis.d.ts +5 -0
  156. package/dist/types/src/operations/restore-axis.d.ts.map +1 -0
  157. package/dist/types/src/operations/scroll-to-anchor.d.ts +5 -0
  158. package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -0
  159. package/dist/types/src/playwright/playwright.config.d.ts +3 -0
  160. package/dist/types/src/playwright/playwright.config.d.ts.map +1 -0
  161. package/dist/types/src/{testing/playwright → playwright}/sheet-manager.d.ts +1 -1
  162. package/dist/types/src/playwright/sheet-manager.d.ts.map +1 -0
  163. package/dist/types/src/playwright/sheet.spec.d.ts.map +1 -0
  164. package/dist/types/src/serializer.d.ts +2 -2
  165. package/dist/types/src/serializer.d.ts.map +1 -1
  166. package/dist/types/src/testing/data.d.ts +2 -2
  167. package/dist/types/src/testing/data.d.ts.map +1 -1
  168. package/dist/types/src/testing/testing.d.ts +28 -4
  169. package/dist/types/src/testing/testing.d.ts.map +1 -1
  170. package/dist/types/src/translations.d.ts +73 -92
  171. package/dist/types/src/translations.d.ts.map +1 -1
  172. package/dist/types/src/types/Sheet.d.ts +76 -0
  173. package/dist/types/src/types/Sheet.d.ts.map +1 -0
  174. package/dist/types/src/types/capabilities.d.ts +18 -0
  175. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  176. package/dist/types/src/types/index.d.ts +2 -1
  177. package/dist/types/src/types/index.d.ts.map +1 -1
  178. package/dist/types/src/types/sheet-range-types.d.ts +2 -2
  179. package/dist/types/src/types/sheet-range-types.d.ts.map +1 -1
  180. package/dist/types/src/types/types.d.ts +3 -78
  181. package/dist/types/src/types/types.d.ts.map +1 -1
  182. package/dist/types/src/types/util.d.ts +11 -11
  183. package/dist/types/src/types/util.d.ts.map +1 -1
  184. package/dist/types/tsconfig.tsbuildinfo +1 -1
  185. package/package.json +109 -80
  186. package/src/SheetPlugin.node.ts +21 -0
  187. package/src/SheetPlugin.test.ts +30 -0
  188. package/src/SheetPlugin.tsx +48 -70
  189. package/src/capabilities/anchor-sort.ts +20 -15
  190. package/src/capabilities/comment-config.ts +24 -0
  191. package/src/capabilities/compute-graph-registry.ts +21 -20
  192. package/src/capabilities/create-object.ts +30 -0
  193. package/src/capabilities/index.ts +16 -8
  194. package/src/capabilities/markdown.ts +23 -14
  195. package/src/capabilities/operation-handler.ts +16 -0
  196. package/src/capabilities/react-surface.tsx +38 -28
  197. package/src/capabilities/state.ts +29 -0
  198. package/src/capabilities/undo-mappings.ts +30 -0
  199. package/src/components/ComputeGraph/ComputeGraphContextProvider.tsx +2 -2
  200. package/src/components/ComputeGraph/compute-graph.stories.tsx +33 -29
  201. package/src/components/Sheet/Sheet.tsx +20 -0
  202. package/src/components/Sheet/index.ts +5 -0
  203. package/src/components/SheetContent/SheetCellEditor.stories.tsx +95 -0
  204. package/src/components/SheetContent/SheetContent.stories.tsx +60 -0
  205. package/src/components/{GridSheet/GridSheet.tsx → SheetContent/SheetContent.tsx} +100 -69
  206. package/src/components/{RangeList → SheetContent}/index.ts +1 -1
  207. package/src/components/{GridSheet → SheetContent}/util.ts +23 -16
  208. package/src/components/{SheetContext/SheetContext.tsx → SheetRoot/SheetRoot.tsx} +55 -42
  209. package/src/components/{GridSheet → SheetRoot}/index.ts +1 -1
  210. package/src/components/{FunctionEditor/FunctionEditor.tsx → SheetStatusbar/SheetStatusbar.tsx} +19 -7
  211. package/src/components/{FunctionEditor → SheetStatusbar}/index.ts +1 -1
  212. package/src/components/SheetToolbar/SheetToolbar.stories.tsx +20 -14
  213. package/src/components/SheetToolbar/SheetToolbar.tsx +62 -56
  214. package/src/components/SheetToolbar/align.ts +50 -24
  215. package/src/components/SheetToolbar/style.ts +52 -22
  216. package/src/components/SheetToolbar/useToolbarState.ts +22 -5
  217. package/src/components/index.ts +1 -7
  218. package/src/containers/RangeList/RangeList.tsx +65 -0
  219. package/src/containers/RangeList/index.ts +5 -0
  220. package/src/containers/SheetContainer/SheetContainer.stories.tsx +110 -0
  221. package/src/containers/SheetContainer/SheetContainer.tsx +57 -0
  222. package/src/containers/SheetContainer/index.ts +5 -0
  223. package/src/containers/index.ts +8 -0
  224. package/src/extensions/compute.stories.tsx +50 -36
  225. package/src/extensions/compute.ts +4 -5
  226. package/src/extensions/editor/index.ts +1 -1
  227. package/src/extensions/editor/{extension.test.ts → sheet-extension.test.ts} +2 -2
  228. package/src/extensions/editor/{extension.ts → sheet-extension.ts} +18 -15
  229. package/src/index.ts +8 -2
  230. package/src/integrations/thread-ranges.ts +21 -62
  231. package/src/meta.ts +9 -7
  232. package/src/model/sheet-model.test.ts +7 -6
  233. package/src/model/sheet-model.ts +87 -55
  234. package/src/model/testing.ts +5 -5
  235. package/src/model/useSheetModel.ts +4 -3
  236. package/src/operations/definitions.ts +73 -0
  237. package/src/operations/drop-axis.ts +26 -0
  238. package/src/operations/index.ts +14 -0
  239. package/src/operations/insert-axis.ts +19 -0
  240. package/src/operations/restore-axis.ts +19 -0
  241. package/src/operations/scroll-to-anchor.ts +31 -0
  242. package/src/playwright/playwright.config.ts +17 -0
  243. package/src/{testing/playwright → playwright}/sheet-manager.ts +1 -1
  244. package/src/{testing/playwright → playwright}/sheet.spec.ts +5 -4
  245. package/src/sanity.test.ts +6 -4
  246. package/src/serializer.ts +4 -4
  247. package/src/testing/data.ts +2 -2
  248. package/src/testing/testing.tsx +13 -7
  249. package/src/translations.ts +46 -38
  250. package/src/types/Sheet.ts +103 -0
  251. package/src/types/capabilities.ts +26 -0
  252. package/src/types/index.ts +2 -1
  253. package/src/types/sheet-range-types.ts +5 -5
  254. package/src/types/types.ts +6 -51
  255. package/src/types/util.ts +15 -42
  256. package/dist/lib/browser/SheetContainer-BDZXBB5U.mjs +0 -351
  257. package/dist/lib/browser/SheetContainer-BDZXBB5U.mjs.map +0 -7
  258. package/dist/lib/browser/anchor-sort-NYYZLRAA.mjs +0 -24
  259. package/dist/lib/browser/anchor-sort-NYYZLRAA.mjs.map +0 -7
  260. package/dist/lib/browser/chunk-5TA43LO4.mjs +0 -847
  261. package/dist/lib/browser/chunk-5TA43LO4.mjs.map +0 -7
  262. package/dist/lib/browser/chunk-D3G4UGEK.mjs +0 -18
  263. package/dist/lib/browser/chunk-D3G4UGEK.mjs.map +0 -7
  264. package/dist/lib/browser/chunk-FJRLDX7Z.mjs +0 -234
  265. package/dist/lib/browser/chunk-FJRLDX7Z.mjs.map +0 -7
  266. package/dist/lib/browser/chunk-I7FZ4TWJ.mjs +0 -892
  267. package/dist/lib/browser/chunk-I7FZ4TWJ.mjs.map +0 -7
  268. package/dist/lib/browser/chunk-IR42IS3F.mjs +0 -15
  269. package/dist/lib/browser/chunk-IR42IS3F.mjs.map +0 -7
  270. package/dist/lib/browser/compute-graph-registry-IXGGJJBU.mjs +0 -30
  271. package/dist/lib/browser/compute-graph-registry-IXGGJJBU.mjs.map +0 -7
  272. package/dist/lib/browser/intent-resolver-IBBI6B74.mjs +0 -56
  273. package/dist/lib/browser/intent-resolver-IBBI6B74.mjs.map +0 -7
  274. package/dist/lib/browser/markdown-T4TUP4BF.mjs +0 -26
  275. package/dist/lib/browser/markdown-T4TUP4BF.mjs.map +0 -7
  276. package/dist/lib/browser/react-surface-UI46P43F.mjs +0 -53
  277. package/dist/lib/browser/react-surface-UI46P43F.mjs.map +0 -7
  278. package/dist/lib/node/SheetContainer-VWPM3HYJ.cjs +0 -351
  279. package/dist/lib/node/SheetContainer-VWPM3HYJ.cjs.map +0 -7
  280. package/dist/lib/node/anchor-sort-A7NABMJM.cjs +0 -39
  281. package/dist/lib/node/anchor-sort-A7NABMJM.cjs.map +0 -7
  282. package/dist/lib/node/chunk-FIM6EZ6M.cjs +0 -256
  283. package/dist/lib/node/chunk-FIM6EZ6M.cjs.map +0 -7
  284. package/dist/lib/node/chunk-JSIDCZHB.cjs +0 -41
  285. package/dist/lib/node/chunk-JSIDCZHB.cjs.map +0 -7
  286. package/dist/lib/node/chunk-LJWWS53Z.cjs +0 -34
  287. package/dist/lib/node/chunk-LJWWS53Z.cjs.map +0 -7
  288. package/dist/lib/node/chunk-N7FSEUIN.cjs +0 -927
  289. package/dist/lib/node/chunk-N7FSEUIN.cjs.map +0 -7
  290. package/dist/lib/node/chunk-ST3WA73J.cjs +0 -855
  291. package/dist/lib/node/chunk-ST3WA73J.cjs.map +0 -7
  292. package/dist/lib/node/compute-graph-registry-ARLDHPFW.cjs +0 -56
  293. package/dist/lib/node/compute-graph-registry-ARLDHPFW.cjs.map +0 -7
  294. package/dist/lib/node/index.cjs +0 -173
  295. package/dist/lib/node/index.cjs.map +0 -7
  296. package/dist/lib/node/intent-resolver-2657YDOU.cjs +0 -69
  297. package/dist/lib/node/intent-resolver-2657YDOU.cjs.map +0 -7
  298. package/dist/lib/node/markdown-DBPOAYI7.cjs +0 -40
  299. package/dist/lib/node/markdown-DBPOAYI7.cjs.map +0 -7
  300. package/dist/lib/node/meta.json +0 -1
  301. package/dist/lib/node/react-surface-XQEIRKWU.cjs +0 -71
  302. package/dist/lib/node/react-surface-XQEIRKWU.cjs.map +0 -7
  303. package/dist/lib/node/types/index.cjs +0 -84
  304. package/dist/lib/node/types/index.cjs.map +0 -7
  305. package/dist/lib/node-esm/SheetContainer-V632Q4HA.mjs +0 -352
  306. package/dist/lib/node-esm/SheetContainer-V632Q4HA.mjs.map +0 -7
  307. package/dist/lib/node-esm/anchor-sort-JTNZOE67.mjs +0 -25
  308. package/dist/lib/node-esm/anchor-sort-JTNZOE67.mjs.map +0 -7
  309. package/dist/lib/node-esm/chunk-C4IKYVTV.mjs +0 -893
  310. package/dist/lib/node-esm/chunk-C4IKYVTV.mjs.map +0 -7
  311. package/dist/lib/node-esm/chunk-IQ76YE6M.mjs +0 -16
  312. package/dist/lib/node-esm/chunk-IQ76YE6M.mjs.map +0 -7
  313. package/dist/lib/node-esm/chunk-NMCVJWDT.mjs +0 -236
  314. package/dist/lib/node-esm/chunk-NMCVJWDT.mjs.map +0 -7
  315. package/dist/lib/node-esm/chunk-SOC52B67.mjs +0 -848
  316. package/dist/lib/node-esm/chunk-SOC52B67.mjs.map +0 -7
  317. package/dist/lib/node-esm/chunk-Y6ND5HWX.mjs +0 -20
  318. package/dist/lib/node-esm/chunk-Y6ND5HWX.mjs.map +0 -7
  319. package/dist/lib/node-esm/compute-graph-registry-7PDWXMHF.mjs +0 -31
  320. package/dist/lib/node-esm/compute-graph-registry-7PDWXMHF.mjs.map +0 -7
  321. package/dist/lib/node-esm/intent-resolver-M2HNR7PJ.mjs +0 -57
  322. package/dist/lib/node-esm/intent-resolver-M2HNR7PJ.mjs.map +0 -7
  323. package/dist/lib/node-esm/markdown-WWUJ3E5F.mjs +0 -27
  324. package/dist/lib/node-esm/markdown-WWUJ3E5F.mjs.map +0 -7
  325. package/dist/lib/node-esm/react-surface-OLXO2MVB.mjs +0 -54
  326. package/dist/lib/node-esm/react-surface-OLXO2MVB.mjs.map +0 -7
  327. package/dist/types/src/capabilities/capabilities.d.ts +0 -5
  328. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  329. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  330. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  331. package/dist/types/src/components/FunctionEditor/FunctionEditor.d.ts +0 -3
  332. package/dist/types/src/components/FunctionEditor/FunctionEditor.d.ts.map +0 -1
  333. package/dist/types/src/components/FunctionEditor/index.d.ts +0 -2
  334. package/dist/types/src/components/FunctionEditor/index.d.ts.map +0 -1
  335. package/dist/types/src/components/GridSheet/GridSheet.d.ts +0 -3
  336. package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +0 -1
  337. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts +0 -7
  338. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +0 -1
  339. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts +0 -25
  340. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts.map +0 -1
  341. package/dist/types/src/components/GridSheet/index.d.ts +0 -2
  342. package/dist/types/src/components/GridSheet/index.d.ts.map +0 -1
  343. package/dist/types/src/components/GridSheet/util.d.ts.map +0 -1
  344. package/dist/types/src/components/RangeList/RangeList.d.ts +0 -7
  345. package/dist/types/src/components/RangeList/RangeList.d.ts.map +0 -1
  346. package/dist/types/src/components/RangeList/index.d.ts +0 -2
  347. package/dist/types/src/components/RangeList/index.d.ts.map +0 -1
  348. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts +0 -11
  349. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +0 -1
  350. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts +0 -8
  351. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +0 -1
  352. package/dist/types/src/components/SheetContainer/index.d.ts +0 -3
  353. package/dist/types/src/components/SheetContainer/index.d.ts.map +0 -1
  354. package/dist/types/src/components/SheetContext/SheetContext.d.ts.map +0 -1
  355. package/dist/types/src/components/SheetContext/index.d.ts +0 -2
  356. package/dist/types/src/components/SheetContext/index.d.ts.map +0 -1
  357. package/dist/types/src/extensions/editor/extension.d.ts.map +0 -1
  358. package/dist/types/src/extensions/editor/extension.test.d.ts +0 -2
  359. package/dist/types/src/extensions/editor/extension.test.d.ts.map +0 -1
  360. package/dist/types/src/testing/playwright/sheet-manager.d.ts.map +0 -1
  361. package/dist/types/src/testing/playwright/sheet.spec.d.ts.map +0 -1
  362. package/dist/types/src/types/schema.d.ts +0 -37
  363. package/dist/types/src/types/schema.d.ts.map +0 -1
  364. package/src/capabilities/capabilities.ts +0 -14
  365. package/src/capabilities/intent-resolver.ts +0 -38
  366. package/src/components/GridSheet/GridSheet.stories.tsx +0 -53
  367. package/src/components/GridSheet/SheetCellEditor.stories.tsx +0 -93
  368. package/src/components/RangeList/RangeList.tsx +0 -60
  369. package/src/components/SheetContainer/SheetContainer.stories.tsx +0 -89
  370. package/src/components/SheetContainer/SheetContainer.tsx +0 -36
  371. package/src/components/SheetContainer/index.ts +0 -7
  372. package/src/components/SheetContext/index.ts +0 -5
  373. package/src/testing/playwright/playwright.config.cts +0 -18
  374. package/src/types/schema.ts +0 -60
  375. /package/dist/types/src/{testing/playwright → playwright}/sheet.spec.d.ts +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/scroll-to-anchor.ts", "../../../src/integrations/thread-ranges.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Operation } from '@dxos/compute';\n\nimport { parseThreadAnchorAsCellRange } from '../integrations/thread-ranges';\nimport { SheetCapabilities } from '../types';\nimport { ScrollToAnchor } from './definitions';\n\nconst handler: Operation.WithHandler<typeof ScrollToAnchor> = ScrollToAnchor.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* ({ subject, cursor, ref }) {\n const gridInstances = yield* Capability.get(SheetCapabilities.GridInstances);\n const entry = gridInstances.get(subject);\n if (!entry) {\n return;\n }\n entry.setActiveRefs(ref);\n const range = parseThreadAnchorAsCellRange(cursor);\n if (range) {\n entry.grid.setFocus({ ...range.to, plane: 'grid' }, true);\n }\n }),\n ),\n);\n\nexport default handler;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useCallback, useEffect, useMemo } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { debounce } from '@dxos/async';\nimport { type CellAddress, type CompleteCellRange, inRange } from '@dxos/compute-hyperformula';\nimport { Obj, Relation } from '@dxos/echo';\nimport { ThreadOperation } from '@dxos/plugin-thread/operations';\nimport { Filter, Query, useQuery } from '@dxos/react-client/echo';\nimport { linkedSegment } from '@dxos/react-ui-attention';\nimport { AnchoredTo, Thread } from '@dxos/types';\n\nimport { useSheetContext } from '#components';\n\nexport const completeCellRangeToThreadCursor = (range: CompleteCellRange): string => {\n return `${range.from.col},${range.from.row},${range.to.col},${range.to.row}`;\n};\n\nexport const parseThreadAnchorAsCellRange = (cursor: string): CompleteCellRange | null => {\n const coords = cursor.split(',');\n if (coords.length !== 4) {\n return null;\n } else {\n const [fromCol, fromRow, toCol, toRow] = coords;\n return {\n from: { col: parseInt(fromCol), row: parseInt(fromRow) },\n to: { col: parseInt(toCol), row: parseInt(toRow) },\n };\n }\n};\n\nexport const useSelectThreadOnCellFocus = () => {\n const { model, cursor } = useSheetContext();\n const { invokePromise } = useOperationInvoker();\n\n const db = Obj.getDatabase(model.sheet);\n const anchors = useQuery(db, Query.select(Filter.id(model.sheet.id)).targetOf(AnchoredTo.AnchoredTo));\n\n const selectClosestThread = useCallback(\n (cellAddress: CellAddress) => {\n if (!cellAddress) {\n return;\n }\n\n const closestThread = anchors.find((anchor) => {\n const source = Relation.getSource(anchor);\n if (anchor.anchor && Obj.instanceOf(Thread.Thread, source)) {\n const range = parseThreadAnchorAsCellRange(anchor.anchor);\n return range ? inRange(range, cellAddress) : false;\n } else {\n return false;\n }\n });\n\n if (closestThread) {\n void (async () => {\n await invokePromise(ThreadOperation.Select, { current: Relation.getDXN(closestThread).toString() });\n await invokePromise(LayoutOperation.UpdateCompanion, {\n subject: linkedSegment('comments'),\n });\n })();\n }\n },\n [invokePromise, anchors],\n );\n\n const debounced = useMemo(() => {\n return debounce((cellCoords: CellAddress) => requestAnimationFrame(() => selectClosestThread(cellCoords)), 50);\n }, [selectClosestThread]);\n\n useEffect(() => {\n if (!cursor) {\n return;\n }\n\n debounced(cursor);\n }, [cursor, debounced]);\n};\n"],
5
+ "mappings": ";;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,iBAAiB;;;ACH1B,SAASC,aAAaC,WAAWC,eAAe;AAEhD,SAASC,2BAA2B;AACpC,SAASC,uBAAuB;AAChC,SAASC,gBAAgB;AACzB,SAAmDC,eAAe;AAClE,SAASC,KAAKC,gBAAgB;AAC9B,SAASC,uBAAuB;AAChC,SAASC,QAAQC,OAAOC,gBAAgB;AACxC,SAASC,qBAAqB;AAC9B,SAASC,YAAYC,cAAc;AAEnC,SAASC,uBAAuB;AAMzB,IAAMC,+BAA+B,CAACC,WAAAA;AAC3C,QAAMC,SAASD,OAAOE,MAAM,GAAA;AAC5B,MAAID,OAAOE,WAAW,GAAG;AACvB,WAAO;EACT,OAAO;AACL,UAAM,CAACC,SAASC,SAASC,OAAOC,KAAAA,IAASN;AACzC,WAAO;MACLO,MAAM;QAAEC,KAAKC,SAASN,OAAAA;QAAUO,KAAKD,SAASL,OAAAA;MAAS;MACvDO,IAAI;QAAEH,KAAKC,SAASJ,KAAAA;QAAQK,KAAKD,SAASH,KAAAA;MAAO;IACnD;EACF;AACF;;;ADpBA,IAAMM,UAAwDC,eAAeC,KAC3EC,UAAUC,YACDC,kBAAW,WAAW,EAAEC,SAASC,QAAQC,IAAG,GAAE;AACnD,QAAMC,gBAAgB,OAAOC,WAAWC,IAAIC,kBAAkBC,aAAa;AAC3E,QAAMC,QAAQL,cAAcE,IAAIL,OAAAA;AAChC,MAAI,CAACQ,OAAO;AACV;EACF;AACAA,QAAMC,cAAcP,GAAAA;AACpB,QAAMQ,QAAQC,6BAA6BV,MAAAA;AAC3C,MAAIS,OAAO;AACTF,UAAMI,KAAKC,SAAS;MAAE,GAAGH,MAAMI;MAAIC,OAAO;IAAO,GAAG,IAAA;EACtD;AACF,CAAA,CAAA,CAAA;AAIJ,IAAA,2BAAerB;",
6
+ "names": ["Effect", "Capability", "Operation", "useCallback", "useEffect", "useMemo", "useOperationInvoker", "LayoutOperation", "debounce", "inRange", "Obj", "Relation", "ThreadOperation", "Filter", "Query", "useQuery", "linkedSegment", "AnchoredTo", "Thread", "useSheetContext", "parseThreadAnchorAsCellRange", "cursor", "coords", "split", "length", "fromCol", "fromRow", "toCol", "toRow", "from", "col", "parseInt", "row", "to", "handler", "ScrollToAnchor", "pipe", "Operation", "withHandler", "fnUntraced", "subject", "cursor", "ref", "gridInstances", "Capability", "get", "SheetCapabilities", "GridInstances", "entry", "setActiveRefs", "range", "parseThreadAnchorAsCellRange", "grid", "setFocus", "to", "plane"]
7
+ }
@@ -0,0 +1,55 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/translations.ts
4
+ import { meta } from "#meta";
5
+ import { Sheet } from "#types";
6
+ var translations = [
7
+ {
8
+ "en-US": {
9
+ [Sheet.Sheet.typename]: {
10
+ "typename.label": "Sheet",
11
+ "typename.label_zero": "Sheets",
12
+ "typename.label_one": "Sheet",
13
+ "typename.label_other": "Sheets",
14
+ "object-name.placeholder": "New sheet",
15
+ "add-object.label": "Add sheet",
16
+ "rename-object.label": "Rename sheet",
17
+ "delete-object.label": "Delete sheet",
18
+ "object-deleted.label": "Sheet deleted"
19
+ },
20
+ [meta.id]: {
21
+ "plugin.name": "Sheets",
22
+ "cell.placeholder": "Cell value...",
23
+ "range-key.alignment.label": "Align",
24
+ "range-key.style.label": "Style",
25
+ "range-value.start.label": "Align left",
26
+ "range-value.center.label": "Align center",
27
+ "range-value.end.label": "Align right",
28
+ "range-value.softwrap.label": "Wrap text",
29
+ "range-value.highlight.label": "Highlight",
30
+ "toolbar-action.label": "{{value}}",
31
+ "selection-overlaps-existing-comment.label": "Selected cell already has a comment",
32
+ "comment.label": "Add comment",
33
+ "comment-ranges-not-supported.label": "Commenting on ranges is not yet supported",
34
+ "no-cursor.label": "Select a cell to comment",
35
+ "add-col-before.label": "Add column before",
36
+ "add-col-after.label": "Add column after",
37
+ "delete-col.label": "Delete column",
38
+ "add-row-before.label": "Add row before",
39
+ "add-row-after.label": "Add row after",
40
+ "delete-row.label": "Delete row",
41
+ "range-list.heading": "Ranges",
42
+ "no-ranges.message": "No ranges",
43
+ "range.title": "{{position}} \u2014 {{value}}",
44
+ "col-dropped.label": "Deleted a column",
45
+ "row-dropped.label": "Deleted a row",
46
+ "align.label": "Text align",
47
+ "axis-dropped.label": "Drop axis"
48
+ }
49
+ }
50
+ }
51
+ ];
52
+ export {
53
+ translations
54
+ };
55
+ //# sourceMappingURL=translations.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/translations.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from '#meta';\nimport { Sheet } from '#types';\n\nexport const translations = [\n {\n 'en-US': {\n [Sheet.Sheet.typename]: {\n 'typename.label': 'Sheet',\n 'typename.label_zero': 'Sheets',\n 'typename.label_one': 'Sheet',\n 'typename.label_other': 'Sheets',\n 'object-name.placeholder': 'New sheet',\n 'add-object.label': 'Add sheet',\n 'rename-object.label': 'Rename sheet',\n 'delete-object.label': 'Delete sheet',\n 'object-deleted.label': 'Sheet deleted',\n },\n [meta.id]: {\n 'plugin.name': 'Sheets',\n 'cell.placeholder': 'Cell value...',\n\n 'range-key.alignment.label': 'Align',\n 'range-key.style.label': 'Style',\n\n 'range-value.start.label': 'Align left',\n 'range-value.center.label': 'Align center',\n 'range-value.end.label': 'Align right',\n 'range-value.softwrap.label': 'Wrap text',\n 'range-value.highlight.label': 'Highlight',\n\n 'toolbar-action.label': '{{value}}',\n 'selection-overlaps-existing-comment.label': 'Selected cell already has a comment',\n 'comment.label': 'Add comment',\n 'comment-ranges-not-supported.label': 'Commenting on ranges is not yet supported',\n 'no-cursor.label': 'Select a cell to comment',\n 'add-col-before.label': 'Add column before',\n 'add-col-after.label': 'Add column after',\n 'delete-col.label': 'Delete column',\n 'add-row-before.label': 'Add row before',\n 'add-row-after.label': 'Add row after',\n 'delete-row.label': 'Delete row',\n 'range-list.heading': 'Ranges',\n 'no-ranges.message': 'No ranges',\n 'range.title': '{{position}} — {{value}}',\n 'col-dropped.label': 'Deleted a column',\n 'row-dropped.label': 'Deleted a row',\n 'align.label': 'Text align',\n 'axis-dropped.label': 'Drop axis', // TODO(burdon): What does this mean?\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
+ "mappings": ";;;AAMA,SAASA,YAAY;AACrB,SAASC,aAAa;AAEf,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACD,MAAMA,MAAME,QAAQ,GAAG;QACtB,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,oBAAoB;QACpB,uBAAuB;QACvB,uBAAuB;QACvB,wBAAwB;MAC1B;MACA,CAACH,KAAKI,EAAE,GAAG;QACT,eAAe;QACf,oBAAoB;QAEpB,6BAA6B;QAC7B,yBAAyB;QAEzB,2BAA2B;QAC3B,4BAA4B;QAC5B,yBAAyB;QACzB,8BAA8B;QAC9B,+BAA+B;QAE/B,wBAAwB;QACxB,6CAA6C;QAC7C,iBAAiB;QACjB,sCAAsC;QACtC,mBAAmB;QACnB,wBAAwB;QACxB,uBAAuB;QACvB,oBAAoB;QACpB,wBAAwB;QACxB,uBAAuB;QACvB,oBAAoB;QACpB,sBAAsB;QACtB,qBAAqB;QACrB,eAAe;QACf,qBAAqB;QACrB,qBAAqB;QACrB,eAAe;QACf,sBAAsB;MACxB;IACF;EACF;;",
6
+ "names": ["meta", "Sheet", "translations", "typename", "id"]
7
+ }
@@ -1,16 +1,14 @@
1
1
  import {
2
2
  ApiError,
3
- CellValue,
4
3
  DEFAULT_COLS,
5
4
  DEFAULT_ROWS,
6
5
  MAX_COLS,
7
6
  MAX_ROWS,
8
- Range,
9
7
  RangeException,
10
8
  ReadonlyException,
11
- RowColumnMeta,
12
9
  SheetAction,
13
- SheetType,
10
+ SheetCapabilities,
11
+ Sheet_exports,
14
12
  addressFromIndex,
15
13
  addressToIndex,
16
14
  alignKey,
@@ -19,7 +17,6 @@ import {
19
17
  compareIndexPositions,
20
18
  createIndex,
21
19
  createIndices,
22
- createSheet,
23
20
  initialize,
24
21
  insertIndices,
25
22
  mapFormulaIndicesToRefs,
@@ -27,21 +24,19 @@ import {
27
24
  rangeFromIndex,
28
25
  rangeToIndex,
29
26
  styleKey
30
- } from "../chunk-I7FZ4TWJ.mjs";
31
- import "../chunk-D3G4UGEK.mjs";
27
+ } from "../chunk-SVGX3MWY.mjs";
28
+ import "../chunk-J5LGTIGS.mjs";
32
29
  export {
33
30
  ApiError,
34
- CellValue,
35
31
  DEFAULT_COLS,
36
32
  DEFAULT_ROWS,
37
33
  MAX_COLS,
38
34
  MAX_ROWS,
39
- Range,
40
35
  RangeException,
41
36
  ReadonlyException,
42
- RowColumnMeta,
37
+ Sheet_exports as Sheet,
43
38
  SheetAction,
44
- SheetType,
39
+ SheetCapabilities,
45
40
  addressFromIndex,
46
41
  addressToIndex,
47
42
  alignKey,
@@ -50,7 +45,6 @@ export {
50
45
  compareIndexPositions,
51
46
  createIndex,
52
47
  createIndices,
53
- createSheet,
54
48
  initialize,
55
49
  insertIndices,
56
50
  mapFormulaIndicesToRefs,
@@ -0,0 +1,49 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import "./chunk-HSLMI22Q.mjs";
3
+
4
+ // src/SheetPlugin.tsx
5
+ import { ActivationEvent, Plugin } from "@dxos/app-framework";
6
+ import { AppActivationEvents, AppPlugin } from "@dxos/app-toolkit";
7
+ import { AutomationEvents } from "@dxos/plugin-automation/types";
8
+ import { ClientEvents } from "@dxos/plugin-client/types";
9
+ import { MarkdownEvents } from "@dxos/plugin-markdown/types";
10
+ import { AnchorSort, CommentConfig, ComputeGraphRegistry, CreateObject, Markdown, OperationHandler, UndoMappings, ReactSurface, SheetState } from "#capabilities";
11
+ import { meta } from "#meta";
12
+ import { translations } from "#translations";
13
+ import { Sheet } from "#types";
14
+ var SheetPlugin = Plugin.define(meta).pipe(AppPlugin.addCommentConfigModule({
15
+ activate: CommentConfig
16
+ }), AppPlugin.addCreateObjectModule({
17
+ activate: CreateObject
18
+ }), AppPlugin.addOperationHandlerModule({
19
+ activate: OperationHandler
20
+ }), AppPlugin.addUndoMappingsModule({
21
+ activate: UndoMappings
22
+ }), AppPlugin.addSchemaModule({
23
+ schema: [
24
+ Sheet.Sheet
25
+ ]
26
+ }), AppPlugin.addSurfaceModule({
27
+ activate: ReactSurface
28
+ }), AppPlugin.addTranslationsModule({
29
+ translations
30
+ }), Plugin.addModule({
31
+ activatesOn: AppActivationEvents.SetupSettings,
32
+ activate: SheetState
33
+ }), Plugin.addModule({
34
+ activatesOn: ActivationEvent.allOf(ClientEvents.ClientReady, AutomationEvents.ComputeRuntimeReady),
35
+ activate: ComputeGraphRegistry
36
+ }), Plugin.addModule({
37
+ activatesOn: MarkdownEvents.SetupExtensions,
38
+ activate: Markdown
39
+ }), Plugin.addModule({
40
+ // TODO(wittjosiah): More relevant event?
41
+ activatesOn: AppActivationEvents.AppGraphReady,
42
+ activate: AnchorSort
43
+ }), Plugin.make);
44
+ var SheetPlugin_default = SheetPlugin;
45
+ export {
46
+ SheetPlugin,
47
+ SheetPlugin_default as default
48
+ };
49
+ //# sourceMappingURL=SheetPlugin-JMR3XCIU.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/SheetPlugin.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { ActivationEvent, Plugin } from '@dxos/app-framework';\nimport { AppActivationEvents, AppPlugin } from '@dxos/app-toolkit';\nimport { AutomationEvents } from '@dxos/plugin-automation/types';\nimport { ClientEvents } from '@dxos/plugin-client/types';\nimport { MarkdownEvents } from '@dxos/plugin-markdown/types';\n\nimport {\n AnchorSort,\n CommentConfig,\n ComputeGraphRegistry,\n CreateObject,\n Markdown,\n OperationHandler,\n UndoMappings,\n ReactSurface,\n SheetState,\n} from '#capabilities';\nimport { meta } from '#meta';\nimport { translations } from '#translations';\nimport { Sheet } from '#types';\n\nexport const SheetPlugin = Plugin.define(meta).pipe(\n AppPlugin.addCommentConfigModule({ activate: CommentConfig }),\n AppPlugin.addCreateObjectModule({ activate: CreateObject }),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n AppPlugin.addUndoMappingsModule({ activate: UndoMappings }),\n AppPlugin.addSchemaModule({ schema: [Sheet.Sheet] }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations }),\n Plugin.addModule({\n activatesOn: AppActivationEvents.SetupSettings,\n activate: SheetState,\n }),\n Plugin.addModule({\n activatesOn: ActivationEvent.allOf(ClientEvents.ClientReady, AutomationEvents.ComputeRuntimeReady),\n activate: ComputeGraphRegistry,\n }),\n Plugin.addModule({\n activatesOn: MarkdownEvents.SetupExtensions,\n activate: Markdown,\n }),\n Plugin.addModule({\n // TODO(wittjosiah): More relevant event?\n activatesOn: AppActivationEvents.AppGraphReady,\n activate: AnchorSort,\n }),\n Plugin.make,\n);\n\nexport default SheetPlugin;\n"],
5
+ "mappings": ";;;;AAIA,SAASA,iBAAiBC,cAAc;AACxC,SAASC,qBAAqBC,iBAAiB;AAC/C,SAASC,wBAAwB;AACjC,SAASC,oBAAoB;AAC7B,SAASC,sBAAsB;AAE/B,SACEC,YACAC,eACAC,sBACAC,cACAC,UACAC,kBACAC,cACAC,cACAC,kBACK;AACP,SAASC,YAAY;AACrB,SAASC,oBAAoB;AAC7B,SAASC,aAAa;AAEf,IAAMC,cAAclB,OAAOmB,OAAOJ,IAAAA,EAAMK,KAC7ClB,UAAUmB,uBAAuB;EAAEC,UAAUf;AAAc,CAAA,GAC3DL,UAAUqB,sBAAsB;EAAED,UAAUb;AAAa,CAAA,GACzDP,UAAUsB,0BAA0B;EAAEF,UAAUX;AAAiB,CAAA,GACjET,UAAUuB,sBAAsB;EAAEH,UAAUV;AAAa,CAAA,GACzDV,UAAUwB,gBAAgB;EAAEC,QAAQ;IAACV,MAAMA;;AAAO,CAAA,GAClDf,UAAU0B,iBAAiB;EAAEN,UAAUT;AAAa,CAAA,GACpDX,UAAU2B,sBAAsB;EAAEb;AAAa,CAAA,GAC/ChB,OAAO8B,UAAU;EACfC,aAAa9B,oBAAoB+B;EACjCV,UAAUR;AACZ,CAAA,GACAd,OAAO8B,UAAU;EACfC,aAAahC,gBAAgBkC,MAAM7B,aAAa8B,aAAa/B,iBAAiBgC,mBAAmB;EACjGb,UAAUd;AACZ,CAAA,GACAR,OAAO8B,UAAU;EACfC,aAAa1B,eAAe+B;EAC5Bd,UAAUZ;AACZ,CAAA,GACAV,OAAO8B,UAAU;;EAEfC,aAAa9B,oBAAoBoC;EACjCf,UAAUhB;AACZ,CAAA,GACAN,OAAOsC,IAAI;AAGb,IAAA,sBAAepB;",
6
+ "names": ["ActivationEvent", "Plugin", "AppActivationEvents", "AppPlugin", "AutomationEvents", "ClientEvents", "MarkdownEvents", "AnchorSort", "CommentConfig", "ComputeGraphRegistry", "CreateObject", "Markdown", "OperationHandler", "UndoMappings", "ReactSurface", "SheetState", "meta", "translations", "Sheet", "SheetPlugin", "define", "pipe", "addCommentConfigModule", "activate", "addCreateObjectModule", "addOperationHandlerModule", "addUndoMappingsModule", "addSchemaModule", "schema", "addSurfaceModule", "addTranslationsModule", "addModule", "activatesOn", "SetupSettings", "allOf", "ClientReady", "ComputeRuntimeReady", "SetupExtensions", "AppGraphReady", "make"]
7
+ }
@@ -0,0 +1,263 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ __export
4
+ } from "./chunk-HSLMI22Q.mjs";
5
+
6
+ // src/types/capabilities.ts
7
+ import { Capability } from "@dxos/app-framework";
8
+ import { meta } from "#meta";
9
+ (function(SheetCapabilities2) {
10
+ SheetCapabilities2.ComputeGraphRegistry = Capability.make(`${meta.id}.capability.compute-graph-registry`);
11
+ SheetCapabilities2.GridInstances = Capability.make(`${meta.id}.capability.grid-instances`);
12
+ })(SheetCapabilities || (SheetCapabilities = {}));
13
+ var SheetCapabilities;
14
+
15
+ // src/types/Sheet.ts
16
+ var Sheet_exports = {};
17
+ __export(Sheet_exports, {
18
+ CellValue: () => CellValue,
19
+ Range: () => Range,
20
+ RowColumnMeta: () => RowColumnMeta,
21
+ Sheet: () => Sheet,
22
+ make: () => make
23
+ });
24
+ import * as Schema from "effect/Schema";
25
+ import { addressFromA1Notation as addressFromA1Notation2, isFormula as isFormula2 } from "@dxos/compute-hyperformula";
26
+ import { Annotation, Obj, Type } from "@dxos/echo";
27
+ import { FormInputAnnotation } from "@dxos/echo/internal";
28
+
29
+ // src/types/util.ts
30
+ import { addressFromA1Notation, addressToA1Notation, isFormula } from "@dxos/compute-hyperformula";
31
+ import { randomBytes } from "@dxos/crypto";
32
+ import { invariant } from "@dxos/invariant";
33
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-sheet/src/types/util.ts";
34
+ var MAX_ROWS = 500;
35
+ var MAX_COLS = 676;
36
+ var DEFAULT_ROWS = 50;
37
+ var DEFAULT_COLS = 26;
38
+ var ApiError = class extends Error {
39
+ };
40
+ var ReadonlyException = class extends ApiError {
41
+ };
42
+ var RangeException = class extends ApiError {
43
+ constructor(n) {
44
+ super();
45
+ }
46
+ };
47
+ var createIndex = (length = 8) => {
48
+ const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
49
+ const charactersLength = characters.length;
50
+ const randomBuffer = randomBytes(length);
51
+ return Array.from(randomBuffer, (byte) => characters[byte % charactersLength]).join("");
52
+ };
53
+ var createIndices = (length) => Array.from({
54
+ length
55
+ }).map(() => createIndex());
56
+ var insertIndices = (indices, i, n, max) => {
57
+ if (i + n > max) {
58
+ throw new RangeException(i + n);
59
+ }
60
+ const idx = createIndices(n);
61
+ indices.splice(i, 0, ...idx);
62
+ return idx;
63
+ };
64
+ var initialize = (sheet, { rows = DEFAULT_ROWS, columns = DEFAULT_COLS } = {}) => {
65
+ if (!sheet.rows.length) {
66
+ insertIndices(sheet.rows, 0, rows, MAX_ROWS);
67
+ }
68
+ if (!sheet.columns.length) {
69
+ insertIndices(sheet.columns, 0, columns, MAX_COLS);
70
+ }
71
+ };
72
+ var addressToIndex = (sheet, cell) => {
73
+ return `${sheet.columns[cell.col]}@${sheet.rows[cell.row]}`;
74
+ };
75
+ var addressFromIndex = (sheet, idx) => {
76
+ const [column, row] = idx.split("@");
77
+ return {
78
+ col: sheet.columns.indexOf(column),
79
+ row: sheet.rows.indexOf(row)
80
+ };
81
+ };
82
+ var rangeToIndex = (sheet, range) => {
83
+ return [
84
+ range.from,
85
+ range.to ?? range.from
86
+ ].map((cell) => addressToIndex(sheet, cell)).join(":");
87
+ };
88
+ var rangeFromIndex = (sheet, idx) => {
89
+ const [from, to] = idx.split(":").map((index) => addressFromIndex(sheet, index));
90
+ return {
91
+ from,
92
+ to
93
+ };
94
+ };
95
+ var compareIndexPositions = (sheet, indexA, indexB) => {
96
+ const { row: rowA, col: columnA } = addressFromIndex(sheet, indexA);
97
+ const { row: rowB, col: columnB } = addressFromIndex(sheet, indexB);
98
+ if (rowA !== rowB) {
99
+ return rowA - rowB;
100
+ } else {
101
+ return columnA - columnB;
102
+ }
103
+ };
104
+ var mapFormulaRefsToIndices = (sheet, formula) => {
105
+ invariant(isFormula(formula), void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 96, S: void 0, A: ["isFormula(formula)", ""] });
106
+ return formula.replace(/([a-zA-Z]+)([0-9]+)/g, (match) => {
107
+ return addressToIndex(sheet, addressFromA1Notation(match));
108
+ });
109
+ };
110
+ var mapFormulaIndicesToRefs = (sheet, formula) => {
111
+ invariant(isFormula(formula), void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 104, S: void 0, A: ["isFormula(formula)", ""] });
112
+ return formula.replace(/([a-zA-Z0-9]+)@([a-zA-Z0-9]+)/g, (idx) => {
113
+ return addressToA1Notation(addressFromIndex(sheet, idx));
114
+ });
115
+ };
116
+
117
+ // src/types/Sheet.ts
118
+ var CellValue = Schema.Struct({
119
+ // TODO(burdon): How to store dates (datetime, date, time), percentages, etc.
120
+ // Consider import/export; natural access for other plugins. Special handling for currency (precision).
121
+ // TODO(burdon): Automerge (long string) or short string or number.
122
+ value: Schema.Any
123
+ });
124
+ var Range = Schema.Struct({
125
+ range: Schema.String,
126
+ key: Schema.String,
127
+ value: Schema.String
128
+ });
129
+ var RowColumnMeta = Schema.Struct({
130
+ size: Schema.optional(Schema.Number)
131
+ });
132
+ var Sheet = Schema.Struct({
133
+ name: Schema.optional(Schema.String),
134
+ // Sparse map of cells referenced by index.
135
+ cells: Schema.Record({
136
+ key: Schema.String,
137
+ value: CellValue
138
+ }).pipe(FormInputAnnotation.set(false)),
139
+ // Ordered row indices.
140
+ rows: Schema.Array(Schema.String).pipe(FormInputAnnotation.set(false)),
141
+ // Ordered column indices.
142
+ columns: Schema.Array(Schema.String).pipe(FormInputAnnotation.set(false)),
143
+ // Row metadata referenced by index.
144
+ rowMeta: Schema.Record({
145
+ key: Schema.String,
146
+ value: RowColumnMeta
147
+ }).pipe(FormInputAnnotation.set(false)),
148
+ // Column metadata referenced by index.
149
+ columnMeta: Schema.Record({
150
+ key: Schema.String,
151
+ value: RowColumnMeta
152
+ }).pipe(FormInputAnnotation.set(false)),
153
+ // Cell formatting referenced by indexed range.
154
+ ranges: Schema.Array(Range).pipe(FormInputAnnotation.set(false))
155
+ }).pipe(Type.object({
156
+ typename: "org.dxos.type.sheet",
157
+ version: "0.1.0"
158
+ }), Annotation.IconAnnotation.set({
159
+ icon: "ph--grid-nine--regular",
160
+ hue: "indigo"
161
+ }));
162
+ var make = ({ name, cells = {}, ...size } = {}) => {
163
+ const sheet = Obj.make(Sheet, {
164
+ name,
165
+ cells: {},
166
+ rows: [],
167
+ columns: [],
168
+ rowMeta: {},
169
+ columnMeta: {},
170
+ ranges: []
171
+ });
172
+ Obj.update(sheet, (sheet2) => {
173
+ initialize(sheet2, size);
174
+ if (cells) {
175
+ Object.entries(cells).forEach(([key, { value }]) => {
176
+ const idx = addressToIndex(sheet2, addressFromA1Notation2(key));
177
+ if (isFormula2(value)) {
178
+ value = mapFormulaRefsToIndices(sheet2, value);
179
+ }
180
+ sheet2.cells[idx] = {
181
+ value
182
+ };
183
+ });
184
+ }
185
+ });
186
+ return sheet;
187
+ };
188
+
189
+ // src/types/sheet-range-types.ts
190
+ var alignKey = "alignment";
191
+ var commentKey = "comment";
192
+ var styleKey = "style";
193
+ var cellClassNameForRange = ({ key, value }) => {
194
+ switch (key) {
195
+ case alignKey:
196
+ switch (value) {
197
+ case "start":
198
+ return "text-start";
199
+ case "center":
200
+ return "text-center";
201
+ case "end":
202
+ return "text-end";
203
+ default:
204
+ return void 0;
205
+ }
206
+ case commentKey:
207
+ return "bg-grid-comment";
208
+ case styleKey:
209
+ switch (value) {
210
+ case "highlight":
211
+ return "bg-grid-highlight!";
212
+ case "softwrap":
213
+ return "whitespace-normal!";
214
+ default:
215
+ return void 0;
216
+ }
217
+ default:
218
+ return void 0;
219
+ }
220
+ };
221
+
222
+ // src/types/types.ts
223
+ import * as Schema2 from "effect/Schema";
224
+ var ActionAxis = Schema2.Union(Schema2.Literal("row"), Schema2.Literal("col"));
225
+ (function(SheetAction2) {
226
+ SheetAction2.RestoreAxis = Schema2.Struct({
227
+ axis: ActionAxis,
228
+ axisIndex: Schema2.String,
229
+ index: Schema2.Number,
230
+ axisMeta: RowColumnMeta,
231
+ values: Schema2.Array(Schema2.Any)
232
+ });
233
+ })(SheetAction || (SheetAction = {}));
234
+ var SheetAction;
235
+
236
+ export {
237
+ SheetCapabilities,
238
+ MAX_ROWS,
239
+ MAX_COLS,
240
+ DEFAULT_ROWS,
241
+ DEFAULT_COLS,
242
+ ApiError,
243
+ ReadonlyException,
244
+ RangeException,
245
+ createIndex,
246
+ createIndices,
247
+ insertIndices,
248
+ initialize,
249
+ addressToIndex,
250
+ addressFromIndex,
251
+ rangeToIndex,
252
+ rangeFromIndex,
253
+ compareIndexPositions,
254
+ mapFormulaRefsToIndices,
255
+ mapFormulaIndicesToRefs,
256
+ Sheet_exports,
257
+ alignKey,
258
+ commentKey,
259
+ styleKey,
260
+ cellClassNameForRange,
261
+ SheetAction
262
+ };
263
+ //# sourceMappingURL=chunk-4A2KAXTF.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/capabilities.ts", "../../../src/types/Sheet.ts", "../../../src/types/util.ts", "../../../src/types/sheet-range-types.ts", "../../../src/types/types.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\nimport { type ComputeGraphRegistry } from '@dxos/compute-hyperformula';\nimport { type DxGridElement, type GridContentProps } from '@dxos/react-ui-grid';\n\nimport { meta } from '#meta';\n\nexport type GridEntry = { grid: DxGridElement; setActiveRefs: (refs: GridContentProps['activeRefs']) => void };\n\nexport type GridRegistry = {\n register: (attendableId: string, grid: DxGridElement, setActiveRefs: GridEntry['setActiveRefs']) => void;\n unregister: (attendableId: string) => void;\n get: (attendableId: string) => GridEntry | undefined;\n};\n\nexport namespace SheetCapabilities {\n export const ComputeGraphRegistry = Capability.make<ComputeGraphRegistry>(\n `${meta.id}.capability.compute-graph-registry`,\n );\n\n /** Registry of active grid instances keyed by attendable ID. */\n export const GridInstances = Capability.make<GridRegistry>(`${meta.id}.capability.grid-instances`);\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport { addressFromA1Notation, isFormula } from '@dxos/compute-hyperformula';\nimport { Annotation, Obj, Type } from '@dxos/echo';\nimport { FormInputAnnotation } from '@dxos/echo/internal';\n\nimport { addressToIndex, initialize, mapFormulaRefsToIndices } from './util';\n\nexport type SheetSize = {\n rows: number;\n columns: number;\n};\n\nexport const CellValue = Schema.Struct({\n // TODO(burdon): How to store dates (datetime, date, time), percentages, etc.\n // Consider import/export; natural access for other plugins. Special handling for currency (precision).\n // TODO(burdon): Automerge (long string) or short string or number.\n value: Schema.Any,\n});\n\nexport type CellValue = Schema.Schema.Type<typeof CellValue>;\n\n// TODO(burdon): IMPORTANT: Reconcile with Field definition.\nexport const Range = Schema.Struct({\n range: Schema.String,\n key: Schema.String,\n value: Schema.String,\n});\n\nexport type Range = Schema.Schema.Type<typeof Range>;\n\n// TODO(burdon): Visibility, locked, frozen, etc.\nexport const RowColumnMeta = Schema.Struct({\n size: Schema.optional(Schema.Number),\n});\n\n// TODO(burdon): Reconcile col/column (across packages).\n// TODO(burdon): Index to all updates when rows/columns are inserted/deleted.\nexport const Sheet = Schema.Struct({\n name: Schema.optional(Schema.String),\n\n // Sparse map of cells referenced by index.\n cells: Schema.Record({ key: Schema.String, value: CellValue }).pipe(FormInputAnnotation.set(false)),\n\n // Ordered row indices.\n rows: Schema.Array(Schema.String).pipe(FormInputAnnotation.set(false)),\n\n // Ordered column indices.\n columns: Schema.Array(Schema.String).pipe(FormInputAnnotation.set(false)),\n\n // Row metadata referenced by index.\n rowMeta: Schema.Record({ key: Schema.String, value: RowColumnMeta }).pipe(FormInputAnnotation.set(false)),\n\n // Column metadata referenced by index.\n columnMeta: Schema.Record({ key: Schema.String, value: RowColumnMeta }).pipe(FormInputAnnotation.set(false)),\n\n // Cell formatting referenced by indexed range.\n ranges: Schema.Array(Range).pipe(FormInputAnnotation.set(false)),\n}).pipe(\n Type.object({\n typename: 'org.dxos.type.sheet',\n version: '0.1.0',\n }),\n Annotation.IconAnnotation.set({\n icon: 'ph--grid-nine--regular',\n hue: 'indigo',\n }),\n);\n\nexport interface Sheet extends Schema.Schema.Type<typeof Sheet> {}\n\nexport type SheetProps = {\n name?: string;\n cells?: Record<string, CellValue>;\n} & Partial<SheetSize>;\n\nexport const make = ({ name, cells = {}, ...size }: SheetProps = {}) => {\n const sheet = Obj.make(Sheet, { name, cells: {}, rows: [], columns: [], rowMeta: {}, columnMeta: {}, ranges: [] });\n\n // Initialize and set cells within Obj.update to satisfy change context requirements.\n Obj.update(sheet, (sheet) => {\n initialize(sheet, size);\n\n if (cells) {\n Object.entries(cells).forEach(([key, { value }]) => {\n const idx = addressToIndex(sheet, addressFromA1Notation(key));\n if (isFormula(value)) {\n value = mapFormulaRefsToIndices(sheet, value);\n }\n\n sheet.cells[idx] = { value };\n });\n }\n });\n\n return sheet;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport {\n type CellAddress,\n type CellRange,\n type CompleteCellRange,\n addressFromA1Notation,\n addressToA1Notation,\n isFormula,\n} from '@dxos/compute-hyperformula';\nimport { randomBytes } from '@dxos/crypto';\nimport { type Obj } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\n\nimport { type Sheet } from '../types';\n\nexport const MAX_ROWS = 500;\nexport const MAX_COLS = 676; // 26^2;\n\nexport const DEFAULT_ROWS = 50;\nexport const DEFAULT_COLS = 26;\n\n// TODO(burdon): Factor out from dxos/protocols to new common package.\nexport class ApiError extends Error {}\n\nexport class ReadonlyException extends ApiError {}\n\nexport class RangeException extends ApiError {\n constructor(n: number) {\n super();\n }\n}\n\n/**\n * With a string length of 8, the chance of a collision is 0.02% for a sheet with 10,000 strings.\n */\nexport const createIndex = (length = 8): string => {\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n const charactersLength = characters.length;\n const randomBuffer = randomBytes(length);\n return Array.from(randomBuffer, (byte) => characters[byte % charactersLength]).join('');\n};\n\nexport const createIndices = (length: number): string[] => Array.from({ length }).map(() => createIndex());\n\nexport const insertIndices = (indices: string[], i: number, n: number, max: number) => {\n if (i + n > max) {\n throw new RangeException(i + n);\n }\n\n const idx = createIndices(n);\n indices.splice(i, 0, ...idx);\n return idx;\n};\n\nexport const initialize = (\n sheet: Obj.Mutable<Sheet.Sheet>,\n { rows = DEFAULT_ROWS, columns = DEFAULT_COLS }: Partial<Sheet.SheetSize> = {},\n) => {\n if (!sheet.rows.length) {\n insertIndices(sheet.rows, 0, rows, MAX_ROWS);\n }\n if (!sheet.columns.length) {\n insertIndices(sheet.columns, 0, columns, MAX_COLS);\n }\n};\n\n/**\n * E.g., \"A1\" => \"CA2@CB3\".\n */\nexport const addressToIndex = (sheet: Sheet.Sheet, cell: CellAddress): string => {\n return `${sheet.columns[cell.col]}@${sheet.rows[cell.row]}`;\n};\n\n/**\n * E.g., \"CA2@CB3\" => \"A1\".\n */\nexport const addressFromIndex = (sheet: Sheet.Sheet, idx: string): CellAddress => {\n const [column, row] = idx.split('@');\n return {\n col: sheet.columns.indexOf(column),\n row: sheet.rows.indexOf(row),\n };\n};\n\n/**\n * E.g., \"A1:B2\" => \"CA2@CB3:CC4@CD5\".\n */\nexport const rangeToIndex = (sheet: Sheet.Sheet, range: CellRange): string => {\n return [range.from, range.to ?? range.from].map((cell) => addressToIndex(sheet, cell)).join(':');\n};\n\n/**\n * E.g., \"CA2@CB3:CC4@CD5\" => \"A1:B2\".\n */\nexport const rangeFromIndex = (sheet: Sheet.Sheet, idx: string): CompleteCellRange => {\n const [from, to] = idx.split(':').map((index) => addressFromIndex(sheet, index));\n return { from, to };\n};\n\n/**\n * Compares the positions of two cell indexes in a sheet.\n * Sorts primarily by row, then by column if rows are equal.\n */\nexport const compareIndexPositions = (sheet: Sheet.Sheet, indexA: string, indexB: string): number => {\n const { row: rowA, col: columnA } = addressFromIndex(sheet, indexA);\n const { row: rowB, col: columnB } = addressFromIndex(sheet, indexB);\n\n // Sort by row first, then by column.\n if (rowA !== rowB) {\n return rowA - rowB;\n } else {\n return columnA - columnB;\n }\n};\n\n// TODO(burdon): Tests.\n\n/**\n * Map from A1 notation to indices.\n */\nexport const mapFormulaRefsToIndices = (sheet: Sheet.Sheet, formula: string): string => {\n invariant(isFormula(formula));\n return formula.replace(/([a-zA-Z]+)([0-9]+)/g, (match) => {\n return addressToIndex(sheet, addressFromA1Notation(match));\n });\n};\n\n/**\n * Map from indices to A1 notation.\n */\nexport const mapFormulaIndicesToRefs = (sheet: Sheet.Sheet, formula: string): string => {\n invariant(isFormula(formula));\n return formula.replace(/([a-zA-Z0-9]+)@([a-zA-Z0-9]+)/g, (idx) => {\n return addressToA1Notation(addressFromIndex(sheet, idx));\n });\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type ClassNameValue } from '@dxos/react-ui';\n\nimport { type Sheet } from '../types';\n\nexport const alignKey = 'alignment';\nexport type AlignKey = typeof alignKey;\nexport type AlignValue = 'start' | 'center' | 'end';\n\nexport const commentKey = 'comment';\nexport type CommentKey = typeof commentKey;\nexport type CommentValue = string;\n\nexport const styleKey = 'style';\nexport type StyleKey = typeof styleKey;\nexport type StyleValue = 'highlight' | 'softwrap';\n\n// TODO(burdon): Reconcile with plugin-table.\nexport const cellClassNameForRange = ({ key, value }: Sheet.Sheet['ranges'][number]): ClassNameValue => {\n switch (key) {\n case alignKey:\n switch (value) {\n case 'start':\n return 'text-start';\n case 'center':\n return 'text-center';\n case 'end':\n return 'text-end';\n default:\n return undefined;\n }\n\n case commentKey:\n return 'bg-grid-comment';\n\n case styleKey:\n switch (value) {\n case 'highlight':\n return 'bg-grid-highlight!';\n case 'softwrap':\n return 'whitespace-normal!';\n default:\n return undefined;\n }\n\n default:\n return undefined;\n }\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport * as Sheet from './Sheet';\n\n// TODO(wittjosiah): Factor out. This is `DxGridAxis` from `@dxos/react-ui-grid`.\nconst ActionAxis = Schema.Union(Schema.Literal('row'), Schema.Literal('col'));\n\nexport namespace SheetAction {\n export const RestoreAxis = Schema.Struct({\n axis: ActionAxis,\n axisIndex: Schema.String,\n index: Schema.Number,\n axisMeta: Sheet.RowColumnMeta,\n values: Schema.Array(Schema.Any),\n });\n\n export type RestoreAxis = Schema.Schema.Type<typeof RestoreAxis>;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["Capability", "meta", "SheetCapabilities", "ComputeGraphRegistry", "make", "id", "GridInstances", "Schema", "addressFromA1Notation", "isFormula", "Annotation", "Obj", "Type", "FormInputAnnotation", "addressFromA1Notation", "addressToA1Notation", "isFormula", "randomBytes", "invariant", "MAX_ROWS", "DEFAULT_ROWS", "DEFAULT_COLS", "ApiError", "ReadonlyException", "RangeException", "charactersLength", "characters", "length", "randomBuffer", "byte", "createIndices", "Array", "map", "createIndex", "i", "n", "idx", "indices", "insertIndices", "sheet", "col", "columns", "indexOf", "column", "row", "range", "from", "cell", "to", "rowB", "addressFromIndex", "indexB", "rowA", "columnA", "formula", "match", "addressToIndex", "CellValue", "Struct", "value", "Any", "Range", "range", "String", "key", "RowColumnMeta", "size", "optional", "Number", "Sheet", "name", "cells", "Record", "pipe", "FormInputAnnotation", "set", "rows", "Array", "columns", "rowMeta", "columnMeta", "ranges", "Type", "object", "typename", "version", "Annotation", "IconAnnotation", "icon", "hue", "make", "sheet", "Obj", "update", "initialize", "Object", "entries", "forEach", "idx", "addressToIndex", "addressFromA1Notation", "isFormula", "mapFormulaRefsToIndices", "alignKey", "commentKey", "styleKey", "cellClassNameForRange", "key", "value", "undefined", "Schema", "ActionAxis", "Union", "Literal", "SheetAction", "RestoreAxis", "Struct", "axis", "axisIndex", "String", "index", "Number", "axisMeta", "RowColumnMeta", "values", "Array", "Any"]
7
+ }
@@ -0,0 +1,11 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ var __defProp = Object.defineProperty;
3
+ var __export = (target, all) => {
4
+ for (var name in all)
5
+ __defProp(target, name, { get: all[name], enumerable: true });
6
+ };
7
+
8
+ export {
9
+ __export
10
+ };
11
+ //# sourceMappingURL=chunk-HSLMI22Q.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,119 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ __export
4
+ } from "./chunk-HSLMI22Q.mjs";
5
+
6
+ // src/operations/definitions.ts
7
+ var definitions_exports = {};
8
+ __export(definitions_exports, {
9
+ DropAxis: () => DropAxis,
10
+ DropAxisOutput: () => DropAxisOutput,
11
+ InsertAxis: () => InsertAxis,
12
+ RestoreAxis: () => RestoreAxis,
13
+ ScrollToAnchor: () => ScrollToAnchor
14
+ });
15
+ import * as Schema from "effect/Schema";
16
+ import { Capability } from "@dxos/app-framework";
17
+ import { Operation } from "@dxos/compute";
18
+ import { meta } from "#meta";
19
+ var SHEET_OPERATION = `${meta.id}.operation`;
20
+ var Axis = Schema.Union(Schema.Literal("row"), Schema.Literal("col"));
21
+ var InsertAxis = Operation.make({
22
+ meta: {
23
+ key: `${SHEET_OPERATION}.axis-insert`,
24
+ name: "Insert Axis"
25
+ },
26
+ input: Schema.Struct({
27
+ model: Schema.Any,
28
+ axis: Axis,
29
+ index: Schema.Number,
30
+ count: Schema.optional(Schema.Number)
31
+ }),
32
+ output: Schema.Void
33
+ });
34
+ var DropAxisOutput = Schema.Struct({
35
+ axis: Axis.annotations({
36
+ description: "The axis type (row or col)."
37
+ }),
38
+ axisIndex: Schema.String.annotations({
39
+ description: "The dropped axis index."
40
+ }),
41
+ index: Schema.Number.annotations({
42
+ description: "The position the axis was at."
43
+ }),
44
+ axisMeta: Schema.Any.annotations({
45
+ description: "The row/column metadata."
46
+ }),
47
+ values: Schema.Array(Schema.Any).annotations({
48
+ description: "The cell values that were dropped."
49
+ })
50
+ });
51
+ var DropAxis = Operation.make({
52
+ meta: {
53
+ key: `${SHEET_OPERATION}.axis-drop`,
54
+ name: "Drop Axis"
55
+ },
56
+ input: Schema.Struct({
57
+ model: Schema.Any,
58
+ axis: Axis,
59
+ axisIndex: Schema.String
60
+ }),
61
+ output: DropAxisOutput
62
+ });
63
+ var ScrollToAnchor = Operation.make({
64
+ meta: {
65
+ key: `${SHEET_OPERATION}.scroll-to-anchor`,
66
+ name: "Scroll To Anchor"
67
+ },
68
+ services: [
69
+ Capability.Service
70
+ ],
71
+ input: Schema.Struct({
72
+ subject: Schema.String.annotations({
73
+ description: "Attendable ID of the sheet."
74
+ }),
75
+ cursor: Schema.String.annotations({
76
+ description: "Cell range coordinates."
77
+ }),
78
+ ref: Schema.optional(Schema.Any.annotations({
79
+ description: "Active refs for highlighting."
80
+ }))
81
+ }),
82
+ output: Schema.Void
83
+ });
84
+ var RestoreAxis = Operation.make({
85
+ meta: {
86
+ key: `${SHEET_OPERATION}.restore-axis`,
87
+ name: "Restore Axis"
88
+ },
89
+ input: Schema.Struct({
90
+ model: Schema.Any.annotations({
91
+ description: "The sheet model."
92
+ }),
93
+ axis: Axis.annotations({
94
+ description: "The axis type (row or col)."
95
+ }),
96
+ axisIndex: Schema.String.annotations({
97
+ description: "The axis index to restore."
98
+ }),
99
+ index: Schema.Number.annotations({
100
+ description: "The position to restore at."
101
+ }),
102
+ axisMeta: Schema.Any.annotations({
103
+ description: "The row/column metadata."
104
+ }),
105
+ values: Schema.Array(Schema.Any).annotations({
106
+ description: "The cell values to restore."
107
+ })
108
+ }),
109
+ output: Schema.Void
110
+ });
111
+
112
+ export {
113
+ InsertAxis,
114
+ DropAxis,
115
+ ScrollToAnchor,
116
+ RestoreAxis,
117
+ definitions_exports
118
+ };
119
+ //# sourceMappingURL=chunk-MCZFRYOP.mjs.map