@dxos/plugin-sheet 0.8.3 → 0.8.4-main.1068cf700f

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 (297) hide show
  1. package/dist/lib/browser/SheetContainer-6DNFC4TY.mjs +397 -0
  2. package/dist/lib/browser/SheetContainer-6DNFC4TY.mjs.map +7 -0
  3. package/dist/lib/browser/anchor-sort-AMMLA66W.mjs +24 -0
  4. package/dist/lib/browser/anchor-sort-AMMLA66W.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-EDWHV64N.mjs +1473 -0
  6. package/dist/lib/browser/chunk-EDWHV64N.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-FJRLDX7Z.mjs → chunk-IFLWVS2V.mjs} +7 -7
  8. package/dist/lib/browser/chunk-IFLWVS2V.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-KE3AKN5W.mjs +397 -0
  10. package/dist/lib/browser/chunk-KE3AKN5W.mjs.map +7 -0
  11. package/dist/lib/browser/compute-graph-registry-RC5L7RE4.mjs +21 -0
  12. package/dist/lib/browser/compute-graph-registry-RC5L7RE4.mjs.map +7 -0
  13. package/dist/lib/browser/index.mjs +80 -89
  14. package/dist/lib/browser/index.mjs.map +4 -4
  15. package/dist/lib/browser/markdown-D2T2DOVX.mjs +29 -0
  16. package/dist/lib/browser/markdown-D2T2DOVX.mjs.map +7 -0
  17. package/dist/lib/browser/meta.json +1 -1
  18. package/dist/lib/browser/operation-resolver-P2RX75DA.mjs +79 -0
  19. package/dist/lib/browser/operation-resolver-P2RX75DA.mjs.map +7 -0
  20. package/dist/lib/browser/react-surface-45CRAB5G.mjs +51 -0
  21. package/dist/lib/browser/react-surface-45CRAB5G.mjs.map +7 -0
  22. package/dist/lib/browser/types/index.mjs +7 -12
  23. package/dist/lib/node-esm/SheetContainer-7H5R7M54.mjs +398 -0
  24. package/dist/lib/node-esm/SheetContainer-7H5R7M54.mjs.map +7 -0
  25. package/dist/lib/node-esm/anchor-sort-VHMBRX2E.mjs +25 -0
  26. package/dist/lib/node-esm/anchor-sort-VHMBRX2E.mjs.map +7 -0
  27. package/dist/lib/node-esm/chunk-6J5L47IB.mjs +398 -0
  28. package/dist/lib/node-esm/chunk-6J5L47IB.mjs.map +7 -0
  29. package/dist/lib/node-esm/chunk-AYSEWH7N.mjs +1474 -0
  30. package/dist/lib/node-esm/chunk-AYSEWH7N.mjs.map +7 -0
  31. package/dist/lib/node-esm/{chunk-NMCVJWDT.mjs → chunk-PPOYR7DK.mjs} +7 -7
  32. package/dist/lib/node-esm/chunk-PPOYR7DK.mjs.map +7 -0
  33. package/dist/lib/node-esm/compute-graph-registry-ZGXVLVGD.mjs +22 -0
  34. package/dist/lib/node-esm/compute-graph-registry-ZGXVLVGD.mjs.map +7 -0
  35. package/dist/lib/node-esm/index.mjs +80 -89
  36. package/dist/lib/node-esm/index.mjs.map +4 -4
  37. package/dist/lib/node-esm/markdown-PTV72DLO.mjs +30 -0
  38. package/dist/lib/node-esm/markdown-PTV72DLO.mjs.map +7 -0
  39. package/dist/lib/node-esm/meta.json +1 -1
  40. package/dist/lib/node-esm/operation-resolver-WPIWQ5IO.mjs +80 -0
  41. package/dist/lib/node-esm/operation-resolver-WPIWQ5IO.mjs.map +7 -0
  42. package/dist/lib/node-esm/react-surface-ITV2L6HK.mjs +52 -0
  43. package/dist/lib/node-esm/react-surface-ITV2L6HK.mjs.map +7 -0
  44. package/dist/lib/node-esm/types/index.mjs +7 -12
  45. package/dist/types/src/SheetPlugin.d.ts +2 -1
  46. package/dist/types/src/SheetPlugin.d.ts.map +1 -1
  47. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts +6 -0
  48. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts.map +1 -0
  49. package/dist/types/src/capabilities/anchor-sort/index.d.ts +3 -0
  50. package/dist/types/src/capabilities/anchor-sort/index.d.ts.map +1 -0
  51. package/dist/types/src/capabilities/compute-graph-registry/compute-graph-registry.d.ts +5 -0
  52. package/dist/types/src/capabilities/compute-graph-registry/compute-graph-registry.d.ts.map +1 -0
  53. package/dist/types/src/capabilities/compute-graph-registry/index.d.ts +3 -0
  54. package/dist/types/src/capabilities/compute-graph-registry/index.d.ts.map +1 -0
  55. package/dist/types/src/capabilities/index.d.ts +5 -11
  56. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  57. package/dist/types/src/capabilities/markdown/index.d.ts +3 -0
  58. package/dist/types/src/capabilities/markdown/index.d.ts.map +1 -0
  59. package/dist/types/src/capabilities/markdown/markdown.d.ts +5 -0
  60. package/dist/types/src/capabilities/markdown/markdown.d.ts.map +1 -0
  61. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  62. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  63. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  64. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  65. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  66. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  67. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  68. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  69. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts.map +1 -1
  70. package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts +9 -4
  71. package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts.map +1 -1
  72. package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +1 -1
  73. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts +51 -3
  74. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +1 -1
  75. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts +11 -20
  76. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts.map +1 -1
  77. package/dist/types/src/components/GridSheet/util.d.ts +1 -1
  78. package/dist/types/src/components/GridSheet/util.d.ts.map +1 -1
  79. package/dist/types/src/components/RangeList/RangeList.d.ts +2 -2
  80. package/dist/types/src/components/RangeList/RangeList.d.ts.map +1 -1
  81. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts +5 -6
  82. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +1 -1
  83. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts +54 -5
  84. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +1 -1
  85. package/dist/types/src/components/SheetContext/SheetContext.d.ts +3 -3
  86. package/dist/types/src/components/SheetContext/SheetContext.d.ts.map +1 -1
  87. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts +3 -4
  88. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -1
  89. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +88 -4
  90. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -1
  91. package/dist/types/src/components/SheetToolbar/align.d.ts +13 -20
  92. package/dist/types/src/components/SheetToolbar/align.d.ts.map +1 -1
  93. package/dist/types/src/components/SheetToolbar/style.d.ts +12 -18
  94. package/dist/types/src/components/SheetToolbar/style.d.ts.map +1 -1
  95. package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts +14 -1
  96. package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts.map +1 -1
  97. package/dist/types/src/components/index.d.ts +1 -1
  98. package/dist/types/src/components/index.d.ts.map +1 -1
  99. package/dist/types/src/extensions/compute.d.ts +1 -1
  100. package/dist/types/src/extensions/compute.d.ts.map +1 -1
  101. package/dist/types/src/extensions/compute.stories.d.ts +10 -13
  102. package/dist/types/src/extensions/compute.stories.d.ts.map +1 -1
  103. package/dist/types/src/extensions/editor/index.d.ts +1 -1
  104. package/dist/types/src/extensions/editor/index.d.ts.map +1 -1
  105. package/dist/types/src/extensions/editor/{extension.d.ts → sheet-extension.d.ts} +1 -1
  106. package/dist/types/src/extensions/editor/sheet-extension.d.ts.map +1 -0
  107. package/dist/types/src/extensions/editor/sheet-extension.test.d.ts +2 -0
  108. package/dist/types/src/extensions/editor/sheet-extension.test.d.ts.map +1 -0
  109. package/dist/types/src/index.d.ts +1 -1
  110. package/dist/types/src/index.d.ts.map +1 -1
  111. package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
  112. package/dist/types/src/meta.d.ts +2 -3
  113. package/dist/types/src/meta.d.ts.map +1 -1
  114. package/dist/types/src/model/sheet-model.d.ts +6 -6
  115. package/dist/types/src/model/sheet-model.d.ts.map +1 -1
  116. package/dist/types/src/model/testing.d.ts +2 -2
  117. package/dist/types/src/model/testing.d.ts.map +1 -1
  118. package/dist/types/src/model/useSheetModel.d.ts +2 -2
  119. package/dist/types/src/model/useSheetModel.d.ts.map +1 -1
  120. package/dist/types/src/playwright/playwright.config.d.ts +3 -0
  121. package/dist/types/src/playwright/playwright.config.d.ts.map +1 -0
  122. package/dist/types/src/{testing/playwright → playwright}/sheet-manager.d.ts +1 -1
  123. package/dist/types/src/playwright/sheet-manager.d.ts.map +1 -0
  124. package/dist/types/src/playwright/sheet.spec.d.ts.map +1 -0
  125. package/dist/types/src/serializer.d.ts +2 -2
  126. package/dist/types/src/serializer.d.ts.map +1 -1
  127. package/dist/types/src/testing/data.d.ts +2 -2
  128. package/dist/types/src/testing/data.d.ts.map +1 -1
  129. package/dist/types/src/testing/testing.d.ts +27 -3
  130. package/dist/types/src/testing/testing.d.ts.map +1 -1
  131. package/dist/types/src/translations.d.ts +8 -62
  132. package/dist/types/src/translations.d.ts.map +1 -1
  133. package/dist/types/src/types/Sheet.d.ts +76 -0
  134. package/dist/types/src/types/Sheet.d.ts.map +1 -0
  135. package/dist/types/src/types/capabilities.d.ts +6 -0
  136. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  137. package/dist/types/src/types/index.d.ts +2 -1
  138. package/dist/types/src/types/index.d.ts.map +1 -1
  139. package/dist/types/src/types/sheet-range-types.d.ts +2 -2
  140. package/dist/types/src/types/sheet-range-types.d.ts.map +1 -1
  141. package/dist/types/src/types/types.d.ts +92 -75
  142. package/dist/types/src/types/types.d.ts.map +1 -1
  143. package/dist/types/src/types/util.d.ts +10 -10
  144. package/dist/types/src/types/util.d.ts.map +1 -1
  145. package/dist/types/tsconfig.tsbuildinfo +1 -1
  146. package/package.json +83 -73
  147. package/src/SheetPlugin.tsx +53 -65
  148. package/src/capabilities/anchor-sort/anchor-sort.ts +27 -0
  149. package/src/capabilities/anchor-sort/index.ts +7 -0
  150. package/src/capabilities/compute-graph-registry/compute-graph-registry.ts +27 -0
  151. package/src/capabilities/compute-graph-registry/index.ts +7 -0
  152. package/src/capabilities/index.ts +5 -9
  153. package/src/capabilities/markdown/index.ts +7 -0
  154. package/src/capabilities/markdown/markdown.ts +30 -0
  155. package/src/capabilities/operation-resolver/index.ts +7 -0
  156. package/src/capabilities/operation-resolver/operation-resolver.ts +77 -0
  157. package/src/capabilities/react-surface/index.ts +7 -0
  158. package/src/capabilities/react-surface/react-surface.tsx +43 -0
  159. package/src/components/ComputeGraph/ComputeGraphContextProvider.tsx +1 -1
  160. package/src/components/ComputeGraph/compute-graph.stories.tsx +21 -20
  161. package/src/components/FunctionEditor/FunctionEditor.tsx +2 -2
  162. package/src/components/GridSheet/GridSheet.stories.tsx +23 -17
  163. package/src/components/GridSheet/GridSheet.tsx +63 -52
  164. package/src/components/GridSheet/SheetCellEditor.stories.tsx +44 -43
  165. package/src/components/GridSheet/util.ts +17 -11
  166. package/src/components/RangeList/RangeList.tsx +13 -10
  167. package/src/components/SheetContainer/SheetContainer.stories.tsx +71 -47
  168. package/src/components/SheetContainer/SheetContainer.tsx +30 -18
  169. package/src/components/SheetContext/SheetContext.tsx +9 -9
  170. package/src/components/SheetToolbar/SheetToolbar.stories.tsx +19 -13
  171. package/src/components/SheetToolbar/SheetToolbar.tsx +52 -42
  172. package/src/components/SheetToolbar/align.ts +46 -20
  173. package/src/components/SheetToolbar/style.ts +48 -18
  174. package/src/components/SheetToolbar/useToolbarState.ts +22 -5
  175. package/src/extensions/compute.stories.tsx +43 -30
  176. package/src/extensions/compute.ts +3 -4
  177. package/src/extensions/editor/index.ts +1 -1
  178. package/src/extensions/editor/{extension.test.ts → sheet-extension.test.ts} +1 -1
  179. package/src/extensions/editor/{extension.ts → sheet-extension.ts} +7 -4
  180. package/src/index.ts +1 -1
  181. package/src/integrations/thread-ranges.ts +43 -51
  182. package/src/meta.ts +9 -7
  183. package/src/model/sheet-model.test.ts +5 -4
  184. package/src/model/sheet-model.ts +85 -53
  185. package/src/model/testing.ts +4 -4
  186. package/src/model/useSheetModel.ts +2 -2
  187. package/src/playwright/playwright.config.ts +17 -0
  188. package/src/{testing/playwright → playwright}/sheet-manager.ts +1 -1
  189. package/src/{testing/playwright → playwright}/sheet.spec.ts +3 -2
  190. package/src/sanity.test.ts +4 -5
  191. package/src/serializer.ts +4 -4
  192. package/src/testing/data.ts +2 -2
  193. package/src/testing/testing.tsx +11 -5
  194. package/src/translations.ts +10 -7
  195. package/src/types/Sheet.ts +97 -0
  196. package/src/types/capabilities.ts +14 -0
  197. package/src/types/index.ts +2 -1
  198. package/src/types/sheet-range-types.ts +2 -2
  199. package/src/types/types.ts +84 -49
  200. package/src/types/util.ts +14 -41
  201. package/dist/lib/browser/SheetContainer-BDZXBB5U.mjs +0 -351
  202. package/dist/lib/browser/SheetContainer-BDZXBB5U.mjs.map +0 -7
  203. package/dist/lib/browser/anchor-sort-NYYZLRAA.mjs +0 -24
  204. package/dist/lib/browser/anchor-sort-NYYZLRAA.mjs.map +0 -7
  205. package/dist/lib/browser/chunk-5TA43LO4.mjs +0 -847
  206. package/dist/lib/browser/chunk-5TA43LO4.mjs.map +0 -7
  207. package/dist/lib/browser/chunk-D3G4UGEK.mjs +0 -18
  208. package/dist/lib/browser/chunk-D3G4UGEK.mjs.map +0 -7
  209. package/dist/lib/browser/chunk-FJRLDX7Z.mjs.map +0 -7
  210. package/dist/lib/browser/chunk-I7FZ4TWJ.mjs +0 -892
  211. package/dist/lib/browser/chunk-I7FZ4TWJ.mjs.map +0 -7
  212. package/dist/lib/browser/chunk-IR42IS3F.mjs +0 -15
  213. package/dist/lib/browser/chunk-IR42IS3F.mjs.map +0 -7
  214. package/dist/lib/browser/compute-graph-registry-IXGGJJBU.mjs +0 -30
  215. package/dist/lib/browser/compute-graph-registry-IXGGJJBU.mjs.map +0 -7
  216. package/dist/lib/browser/intent-resolver-IBBI6B74.mjs +0 -56
  217. package/dist/lib/browser/intent-resolver-IBBI6B74.mjs.map +0 -7
  218. package/dist/lib/browser/markdown-T4TUP4BF.mjs +0 -26
  219. package/dist/lib/browser/markdown-T4TUP4BF.mjs.map +0 -7
  220. package/dist/lib/browser/react-surface-UI46P43F.mjs +0 -53
  221. package/dist/lib/browser/react-surface-UI46P43F.mjs.map +0 -7
  222. package/dist/lib/node/SheetContainer-VWPM3HYJ.cjs +0 -351
  223. package/dist/lib/node/SheetContainer-VWPM3HYJ.cjs.map +0 -7
  224. package/dist/lib/node/anchor-sort-A7NABMJM.cjs +0 -39
  225. package/dist/lib/node/anchor-sort-A7NABMJM.cjs.map +0 -7
  226. package/dist/lib/node/chunk-FIM6EZ6M.cjs +0 -256
  227. package/dist/lib/node/chunk-FIM6EZ6M.cjs.map +0 -7
  228. package/dist/lib/node/chunk-JSIDCZHB.cjs +0 -41
  229. package/dist/lib/node/chunk-JSIDCZHB.cjs.map +0 -7
  230. package/dist/lib/node/chunk-LJWWS53Z.cjs +0 -34
  231. package/dist/lib/node/chunk-LJWWS53Z.cjs.map +0 -7
  232. package/dist/lib/node/chunk-N7FSEUIN.cjs +0 -927
  233. package/dist/lib/node/chunk-N7FSEUIN.cjs.map +0 -7
  234. package/dist/lib/node/chunk-ST3WA73J.cjs +0 -855
  235. package/dist/lib/node/chunk-ST3WA73J.cjs.map +0 -7
  236. package/dist/lib/node/compute-graph-registry-ARLDHPFW.cjs +0 -56
  237. package/dist/lib/node/compute-graph-registry-ARLDHPFW.cjs.map +0 -7
  238. package/dist/lib/node/index.cjs +0 -173
  239. package/dist/lib/node/index.cjs.map +0 -7
  240. package/dist/lib/node/intent-resolver-2657YDOU.cjs +0 -69
  241. package/dist/lib/node/intent-resolver-2657YDOU.cjs.map +0 -7
  242. package/dist/lib/node/markdown-DBPOAYI7.cjs +0 -40
  243. package/dist/lib/node/markdown-DBPOAYI7.cjs.map +0 -7
  244. package/dist/lib/node/meta.json +0 -1
  245. package/dist/lib/node/react-surface-XQEIRKWU.cjs +0 -71
  246. package/dist/lib/node/react-surface-XQEIRKWU.cjs.map +0 -7
  247. package/dist/lib/node/types/index.cjs +0 -84
  248. package/dist/lib/node/types/index.cjs.map +0 -7
  249. package/dist/lib/node-esm/SheetContainer-V632Q4HA.mjs +0 -352
  250. package/dist/lib/node-esm/SheetContainer-V632Q4HA.mjs.map +0 -7
  251. package/dist/lib/node-esm/anchor-sort-JTNZOE67.mjs +0 -25
  252. package/dist/lib/node-esm/anchor-sort-JTNZOE67.mjs.map +0 -7
  253. package/dist/lib/node-esm/chunk-C4IKYVTV.mjs +0 -893
  254. package/dist/lib/node-esm/chunk-C4IKYVTV.mjs.map +0 -7
  255. package/dist/lib/node-esm/chunk-IQ76YE6M.mjs +0 -16
  256. package/dist/lib/node-esm/chunk-IQ76YE6M.mjs.map +0 -7
  257. package/dist/lib/node-esm/chunk-NMCVJWDT.mjs.map +0 -7
  258. package/dist/lib/node-esm/chunk-SOC52B67.mjs +0 -848
  259. package/dist/lib/node-esm/chunk-SOC52B67.mjs.map +0 -7
  260. package/dist/lib/node-esm/chunk-Y6ND5HWX.mjs +0 -20
  261. package/dist/lib/node-esm/chunk-Y6ND5HWX.mjs.map +0 -7
  262. package/dist/lib/node-esm/compute-graph-registry-7PDWXMHF.mjs +0 -31
  263. package/dist/lib/node-esm/compute-graph-registry-7PDWXMHF.mjs.map +0 -7
  264. package/dist/lib/node-esm/intent-resolver-M2HNR7PJ.mjs +0 -57
  265. package/dist/lib/node-esm/intent-resolver-M2HNR7PJ.mjs.map +0 -7
  266. package/dist/lib/node-esm/markdown-WWUJ3E5F.mjs +0 -27
  267. package/dist/lib/node-esm/markdown-WWUJ3E5F.mjs.map +0 -7
  268. package/dist/lib/node-esm/react-surface-OLXO2MVB.mjs +0 -54
  269. package/dist/lib/node-esm/react-surface-OLXO2MVB.mjs.map +0 -7
  270. package/dist/types/src/capabilities/anchor-sort.d.ts +0 -6
  271. package/dist/types/src/capabilities/anchor-sort.d.ts.map +0 -1
  272. package/dist/types/src/capabilities/capabilities.d.ts +0 -5
  273. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  274. package/dist/types/src/capabilities/compute-graph-registry.d.ts +0 -4
  275. package/dist/types/src/capabilities/compute-graph-registry.d.ts.map +0 -1
  276. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  277. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  278. package/dist/types/src/capabilities/markdown.d.ts +0 -6
  279. package/dist/types/src/capabilities/markdown.d.ts.map +0 -1
  280. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  281. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  282. package/dist/types/src/extensions/editor/extension.d.ts.map +0 -1
  283. package/dist/types/src/extensions/editor/extension.test.d.ts +0 -2
  284. package/dist/types/src/extensions/editor/extension.test.d.ts.map +0 -1
  285. package/dist/types/src/testing/playwright/sheet-manager.d.ts.map +0 -1
  286. package/dist/types/src/testing/playwright/sheet.spec.d.ts.map +0 -1
  287. package/dist/types/src/types/schema.d.ts +0 -37
  288. package/dist/types/src/types/schema.d.ts.map +0 -1
  289. package/src/capabilities/anchor-sort.ts +0 -22
  290. package/src/capabilities/capabilities.ts +0 -14
  291. package/src/capabilities/compute-graph-registry.ts +0 -28
  292. package/src/capabilities/intent-resolver.ts +0 -38
  293. package/src/capabilities/markdown.ts +0 -22
  294. package/src/capabilities/react-surface.tsx +0 -39
  295. package/src/testing/playwright/playwright.config.cts +0 -18
  296. package/src/types/schema.ts +0 -60
  297. /package/dist/types/src/{testing/playwright → playwright}/sheet.spec.d.ts +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/ComputeGraph/ComputeGraphContextProvider.tsx", "../../../src/components/RangeList/RangeList.tsx", "../../../src/components/index.ts", "../../../src/components/GridSheet/GridSheet.tsx", "../../../src/components/GridSheet/util.ts", "../../../src/integrations/thread-ranges.ts", "../../../src/components/SheetContext/SheetContext.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { createContext, type PropsWithChildren, useContext } from 'react';\n\nimport { type ComputeGraph, type ComputeGraphRegistry } from '@dxos/compute';\nimport { raise } from '@dxos/debug';\nimport { type Space } from '@dxos/react-client/echo';\nimport { useAsyncState } from '@dxos/react-hooks';\n\nexport type ComputeGraphContextType = {\n registry: ComputeGraphRegistry;\n};\n\n/**\n * The compute graph context manages a ComputeGraph for each space.\n */\nexport const ComputeGraphContext = createContext<ComputeGraphContextType | undefined>(undefined);\n\nexport const ComputeGraphContextProvider = ({ registry, children }: PropsWithChildren<ComputeGraphContextType>) => {\n return <ComputeGraphContext.Provider value={{ registry }}>{children}</ComputeGraphContext.Provider>;\n};\n\nexport const useComputeGraph = (space?: Space): ComputeGraph | undefined => {\n const { registry } = useContext(ComputeGraphContext) ?? raise(new Error('Missing ComputeGraphContext'));\n const [graph] = useAsyncState(async () => {\n if (space) {\n const graph = registry.getOrCreateGraph(space);\n await graph.open();\n return graph;\n }\n }, [space, registry]);\n\n return graph;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema } from 'effect';\nimport React, { useCallback } from 'react';\n\nimport { rangeToA1Notation } from '@dxos/compute';\nimport { Callout, useTranslation } from '@dxos/react-ui';\nimport { List } from '@dxos/react-ui-list';\nimport { ghostHover } from '@dxos/react-ui-theme';\n\nimport { SHEET_PLUGIN } from '../../meta';\nimport { rangeFromIndex } from '../../types';\nimport { Range, type SheetType } from '../../types';\n\nexport type RangeListProps = {\n sheet: SheetType;\n};\n\nexport const RangeList = ({ sheet }: RangeListProps) => {\n const { t } = useTranslation(SHEET_PLUGIN);\n // TODO(thure): Implement similar to comments, #8121\n const handleSelectRange = (range: Range) => {};\n const handleDeleteRange = useCallback(\n (range: Range) => {\n const index = sheet.ranges.findIndex((sheetRange) => sheetRange === range);\n sheet.ranges.splice(index, 1);\n },\n [sheet],\n );\n return (\n <>\n <h2 className='mbs-cardSpacingBlock mbe-labelSpacingBlock text-sm font-semibold'>{t('range list heading')}</h2>\n {sheet.ranges.length < 1 ? (\n <Callout.Root>\n <Callout.Title>{t('no ranges message')}</Callout.Title>\n </Callout.Root>\n ) : (\n <List.Root<Range> items={sheet.ranges} isItem={Schema.is(Range)}>\n {({ items: ranges }) =>\n ranges.map((range, i) => (\n <List.Item key={i} item={range} classNames={['p-2', ghostHover]}>\n <List.ItemDragHandle />\n <List.ItemTitle onClick={() => handleSelectRange(range)}>\n {t('range title', {\n position: rangeToA1Notation(rangeFromIndex(sheet, range.range)),\n key: t(`range key ${range.key} label`),\n value: t(`range value ${range.value} label`),\n })}\n </List.ItemTitle>\n <List.ItemDeleteButton onClick={() => handleDeleteRange(range)} />\n </List.Item>\n ))\n }\n </List.Root>\n )}\n </>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './ComputeGraph';\nexport * from './GridSheet';\nexport * from './RangeList';\nexport * from './SheetContext';\n\nexport const SheetContainer = lazy(() => import('./SheetContainer'));\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, {\n useCallback,\n useMemo,\n useRef,\n useState,\n type FocusEvent,\n type KeyboardEvent,\n type WheelEvent,\n type MouseEvent,\n} from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { rangeToA1Notation, type CellRange } from '@dxos/compute';\nimport { defaultColSize, defaultRowSize } from '@dxos/lit-grid';\nimport { DropdownMenu, Icon, useTranslation } from '@dxos/react-ui';\nimport { useAttention } from '@dxos/react-ui-attention';\nimport {\n closestCell,\n editorKeys,\n parseCellIndex,\n Grid,\n GridCellEditor,\n type DxGridElement,\n type DxGridPosition,\n type DxGridCellIndex,\n type EditorKeyHandler,\n type EditorBlurHandler,\n type GridContentProps,\n} from '@dxos/react-ui-grid';\n\nimport { colLabelCell, rowLabelCell, useSheetModelDxGridProps } from './util';\nimport { rangeExtension, sheetExtension, type RangeController } from '../../extensions';\nimport { useSelectThreadOnCellFocus, useUpdateFocusedCellOnThreadSelection } from '../../integrations';\nimport { SHEET_PLUGIN } from '../../meta';\nimport { DEFAULT_COLS, DEFAULT_ROWS, SheetAction } from '../../types';\nimport { useSheetContext } from '../SheetContext';\n\nconst inertPosition: DxGridPosition = { plane: 'grid', col: 0, row: 0 };\n\nconst initialCells = {\n grid: {},\n frozenColsStart: [...Array(64)].reduce((acc, _, i) => {\n acc[`0,${i}`] = rowLabelCell(i);\n return acc;\n }, {}),\n frozenRowsStart: [...Array(12)].reduce((acc, _, i) => {\n acc[`${i},0`] = colLabelCell(i);\n return acc;\n }, {}),\n};\n\nconst frozen = {\n frozenColsStart: 1,\n frozenRowsStart: 1,\n};\n\nconst sheetColDefault = {\n frozenColsStart: { size: 48, readonly: true },\n grid: { size: defaultColSize, resizeable: true },\n};\nconst sheetRowDefault = {\n frozenRowsStart: { size: defaultRowSize, readonly: true },\n grid: { size: defaultRowSize, resizeable: true },\n};\n\nexport const GridSheet = () => {\n const { t } = useTranslation(SHEET_PLUGIN);\n const { id, model, editing, setCursor, setRange, cursor, cursorFallbackRange, activeRefs, ignoreAttention } =\n useSheetContext();\n // NOTE(thure): using `useState` instead of `useRef` works with refs provided by `@lit/react` and gives us\n // a reliable dependency for `useEffect` whereas `useLayoutEffect` does not guarantee the element will be defined.\n const [dxGrid, setDxGrid] = useState<DxGridElement | null>(null);\n const [extraplanarFocus, setExtraplanarFocus] = useState<DxGridPosition | null>(null);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const rangeController = useRef<RangeController>();\n const { hasAttention } = useAttention(id);\n\n const handleFocus = useCallback(\n (event: FocusEvent) => {\n if (!editing) {\n const cell = closestCell(event.target);\n if (cell) {\n if (cell.plane === 'grid') {\n setCursor({ col: cell.col, row: cell.row });\n setExtraplanarFocus(null);\n } else {\n setExtraplanarFocus(cell);\n }\n } else {\n setExtraplanarFocus(null);\n }\n }\n },\n [editing],\n );\n\n // TODO(burdon): Validate formula before closing: hf.validateFormula();\n const handleClose = useCallback<EditorKeyHandler>(\n (_value, event) => {\n if (event) {\n const { key, shift } = event;\n const axis = ['Enter', 'ArrowUp', 'ArrowDown'].includes(key)\n ? 'row'\n : ['Tab', 'ArrowLeft', 'ArrowRight'].includes(key)\n ? 'col'\n : undefined;\n const delta = key.startsWith('Arrow') ? (['ArrowUp', 'ArrowLeft'].includes(key) ? -1 : 1) : shift ? -1 : 1;\n dxGrid?.refocus(axis, delta);\n }\n },\n [model, editing, dxGrid],\n );\n\n const handleBlur = useCallback<EditorBlurHandler>(\n (value) => {\n if (value !== undefined) {\n model.setValue(parseCellIndex(editing!.index), value);\n }\n },\n [model, editing],\n );\n\n const handleAxisResize = useCallback<NonNullable<GridContentProps['onAxisResize']>>(\n ({ axis, size, index: numericIndex }) => {\n if (axis === 'row') {\n const rowId = model.sheet.rows[parseInt(numericIndex)];\n model.sheet.rowMeta[rowId] ??= {};\n model.sheet.rowMeta[rowId].size = size;\n } else {\n const columnId = model.sheet.columns[parseInt(numericIndex)];\n model.sheet.columnMeta[columnId] ??= {};\n model.sheet.columnMeta[columnId].size = size;\n }\n },\n [model],\n );\n\n const handleSelect = useCallback<NonNullable<GridContentProps['onSelect']>>(\n ({ minCol, maxCol, minRow, maxRow }) => {\n const range: CellRange = { from: { col: minCol, row: minRow } };\n if (minCol !== maxCol || minRow !== maxRow) {\n range.to = { col: maxCol, row: maxRow };\n }\n if (editing) {\n // Update range selection in formula.\n rangeController.current?.setRange(rangeToA1Notation(range));\n } else {\n // Setting range while editing causes focus to move to null, avoid doing so.\n setRange(range.to ? range : undefined);\n }\n },\n [editing],\n );\n\n const handleWheel = useCallback(\n (event: WheelEvent) => {\n if (!ignoreAttention && !hasAttention) {\n event.stopPropagation();\n }\n },\n [hasAttention, ignoreAttention],\n );\n\n const selectEntireAxis = useCallback(\n (pos: DxGridPosition) => {\n switch (pos.plane) {\n case 'frozenRowsStart':\n return dxGrid?.setSelection({\n start: { col: pos.col, row: 0, plane: 'grid' },\n end: { col: pos.col, row: model.sheet.rows.length - 1, plane: 'grid' },\n });\n case 'frozenColsStart':\n return dxGrid?.setSelection({\n start: { row: pos.row, col: 0, plane: 'grid' },\n end: { row: pos.row, col: model.sheet.columns.length - 1, plane: 'grid' },\n });\n }\n },\n [dxGrid, model.sheet],\n );\n\n const handleClick = useCallback(\n (event: MouseEvent) => {\n const cell = closestCell(event.target);\n if (cell) {\n selectEntireAxis(cell);\n }\n },\n [selectEntireAxis],\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n switch (event.key) {\n case 'Backspace':\n case 'Delete':\n event.preventDefault();\n return cursorFallbackRange && model.clear(cursorFallbackRange);\n case 'Enter':\n case 'Space':\n if (dxGrid && extraplanarFocus) {\n switch (extraplanarFocus.plane) {\n case 'frozenRowsStart':\n case 'frozenColsStart':\n event.preventDefault();\n return selectEntireAxis(extraplanarFocus);\n }\n }\n }\n if (event.metaKey || event.ctrlKey) {\n switch (event.key) {\n case 'x':\n case 'X':\n event.preventDefault();\n return cursorFallbackRange && model.cut(cursorFallbackRange);\n case 'c':\n case 'C':\n event.preventDefault();\n return cursorFallbackRange && model.copy(cursorFallbackRange);\n case 'v':\n case 'V':\n event.preventDefault();\n return cursor && model.paste(cursor);\n case 'z':\n event.preventDefault();\n return event.shiftKey ? model.redo() : model.undo();\n case 'Z':\n case 'y':\n event.preventDefault();\n return model.redo();\n }\n }\n },\n [cursorFallbackRange, model, cursor, extraplanarFocus, selectEntireAxis],\n );\n\n const contextMenuAnchorRef = useRef<HTMLButtonElement | null>(null);\n const [contextMenuOpen, setContextMenuOpen] = useState<DxGridPosition | null>(null);\n const contextMenuAxis = contextMenuOpen?.plane.startsWith('frozenRows') ? 'col' : 'row';\n\n const handleContextMenu = useCallback((event: MouseEvent) => {\n const cell = closestCell(event.target);\n if (cell && cell.plane.startsWith('frozen')) {\n event.preventDefault();\n contextMenuAnchorRef.current = event.target as HTMLButtonElement;\n setContextMenuOpen(cell);\n }\n }, []);\n\n const handleAxisMenuAction = useCallback(\n (operation: 'insert-before' | 'insert-after' | 'drop') => {\n switch (operation) {\n case 'insert-before':\n case 'insert-after':\n return dispatch(\n createIntent(SheetAction.InsertAxis, {\n model,\n axis: contextMenuAxis,\n index: contextMenuOpen![contextMenuAxis] + (operation === 'insert-before' ? 0 : 1),\n }),\n );\n case 'drop':\n return dispatch(\n createIntent(SheetAction.DropAxis, {\n model,\n axis: contextMenuAxis,\n axisIndex: model.sheet[contextMenuAxis === 'row' ? 'rows' : 'columns'][contextMenuOpen![contextMenuAxis]],\n }),\n );\n }\n },\n [contextMenuAxis, contextMenuOpen, model, dispatch],\n );\n\n const { columns, rows } = useSheetModelDxGridProps(dxGrid, model);\n\n const extension = useMemo(\n () => [\n editorKeys({ onClose: handleClose, ...(editing?.initialContent && { onNav: handleClose }) }),\n sheetExtension({ functions: model.graph.getFunctions() }),\n rangeExtension({\n onInit: (fn) => (rangeController.current = fn),\n onStateChange: (state) => {\n if (dxGrid) {\n // This can’t dispatch a setState in this component, otherwise the cell editor remounts and loses focus.\n dxGrid.mode = typeof state.activeRange === 'undefined' ? 'edit' : 'edit-select';\n }\n },\n }),\n ],\n [model, handleClose, editing],\n );\n\n const getCellContent = useCallback(\n (index: DxGridCellIndex) => {\n return model.getCellText(parseCellIndex(index));\n },\n [model],\n );\n\n useUpdateFocusedCellOnThreadSelection(dxGrid);\n useSelectThreadOnCellFocus();\n\n return (\n // TODO(thure): Why are Table’s and Sheet’s editor boxes off by 1px?\n <div role='none' className='relative min-bs-0 [&_.cm-editor]:!border-lb [&_.cm-editor]:!border-transparent '>\n <GridCellEditor getCellContent={getCellContent} extension={extension} onBlur={handleBlur} />\n <Grid.Content\n initialCells={initialCells}\n limitColumns={DEFAULT_COLS}\n limitRows={DEFAULT_ROWS}\n columns={columns}\n rows={rows}\n // TODO(burdon): `col` vs. `column`?\n columnDefault={sheetColDefault}\n rowDefault={sheetRowDefault}\n frozen={frozen}\n onAxisResize={handleAxisResize}\n onSelect={handleSelect}\n onFocus={handleFocus}\n onWheelCapture={handleWheel}\n onKeyDown={handleKeyDown}\n onContextMenu={handleContextMenu}\n onClick={handleClick}\n overscroll='trap'\n className='[--dx-grid-base:var(--baseSurface)] [&_.dx-grid]:absolute [&_.dx-grid]:inset-0'\n activeRefs={activeRefs}\n ref={setDxGrid}\n />\n <DropdownMenu.Root\n modal={false}\n open={!!contextMenuOpen}\n onOpenChange={(nextOpen) => setContextMenuOpen(nextOpen ? inertPosition : null)}\n >\n <DropdownMenu.VirtualTrigger virtualRef={contextMenuAnchorRef} />\n <DropdownMenu.Content side={contextMenuAxis === 'col' ? 'bottom' : 'right'} sideOffset={4} collisionPadding={8}>\n <DropdownMenu.Viewport>\n <DropdownMenu.Item\n onClick={() => handleAxisMenuAction('insert-before')}\n data-testid={`grid.${contextMenuAxis}.insert-before`}\n >\n <Icon\n size={5}\n icon={contextMenuAxis === 'col' ? 'ph--columns-plus-left--regular' : 'ph--rows-plus-top--regular'}\n />\n <span>{t(`add ${contextMenuAxis} before label`)}</span>\n </DropdownMenu.Item>\n <DropdownMenu.Item\n onClick={() => handleAxisMenuAction('insert-after')}\n data-testid={`grid.${contextMenuAxis}.insert-after`}\n >\n <Icon\n size={5}\n icon={contextMenuAxis === 'col' ? 'ph--columns-plus-right--regular' : 'ph--rows-plus-bottom--regular'}\n />\n <span>{t(`add ${contextMenuAxis} after label`)}</span>\n </DropdownMenu.Item>\n <DropdownMenu.Item\n onClick={() => handleAxisMenuAction('drop')}\n data-testid={`grid.${contextMenuAxis}.drop`}\n >\n <Icon size={5} icon='ph--backspace--regular' />\n <span>{t(`delete ${contextMenuAxis} label`)}</span>\n </DropdownMenu.Item>\n </DropdownMenu.Viewport>\n <DropdownMenu.Arrow />\n </DropdownMenu.Content>\n </DropdownMenu.Root>\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { inRange } from '@dxos/compute';\nimport { createDocAccessor } from '@dxos/react-client/echo';\nimport { parseValue, cellClassesForFieldType } from '@dxos/react-ui-form';\nimport {\n type GridContentProps,\n type DxGridElement,\n type DxGridAxisMeta,\n type DxGridPlane,\n type DxGridPlaneRange,\n type DxGridPlaneCells,\n type DxGridCellValue,\n colToA1Notation,\n rowToA1Notation,\n commentedClassName,\n} from '@dxos/react-ui-grid';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { type SheetModel } from '../../model';\nimport { cellClassNameForRange, rangeFromIndex } from '../../types';\n\nconst createDxGridColumns = (model: SheetModel): DxGridAxisMeta => {\n return model.sheet.columns.reduce(\n (acc: DxGridAxisMeta, columnId, numericIndex) => {\n if (model.sheet.columnMeta[columnId] && model.sheet.columnMeta[columnId].size) {\n acc.grid[numericIndex] = { size: model.sheet.columnMeta[columnId].size, resizeable: true };\n }\n return acc;\n },\n { grid: {} },\n );\n};\n\nconst createDxGridRows = (model: SheetModel): DxGridAxisMeta => {\n return model.sheet.rows.reduce(\n (acc: DxGridAxisMeta, rowId, numericIndex) => {\n if (model.sheet.rowMeta[rowId] && model.sheet.rowMeta[rowId].size) {\n acc.grid[numericIndex] = { size: model.sheet.rowMeta[rowId].size, resizeable: true };\n }\n return acc;\n },\n { grid: {} },\n );\n};\n\nconst projectCellProps = (model: SheetModel, col: number, row: number): DxGridCellValue => {\n const address = { col, row };\n const rawValue = model.getValue(address);\n const ranges = model.sheet.ranges?.filter(({ range }) => inRange(rangeFromIndex(model.sheet, range), address));\n const threadRefs = undefined;\n // TODO(wittjosiah): Update this to get threads via relations.\n // model.sheet.threads\n // ?.filter((thread) => {\n // const range = thread.target?.anchor && parseThreadAnchorAsCellRange(thread.target!.anchor);\n // return thread && range ? inRange(range, address) : false;\n // })\n // .map((thread) => fullyQualifiedId(thread!))\n // .join(' ');\n\n const description = model.getValueDescription(address);\n const type = description?.type;\n const format = description?.format;\n const classNames = ranges?.map(cellClassNameForRange).reverse();\n\n return {\n value: parseValue({ type, format, value: rawValue }),\n className: mx(cellClassesForFieldType({ type, format }), threadRefs && commentedClassName, classNames),\n dataRefs: threadRefs,\n };\n};\nconst gridCellGetter = (model: SheetModel) => {\n // TODO(thure): Actually use the cache.\n const cachedGridCells: DxGridPlaneCells = {};\n return (nextBounds: DxGridPlaneRange): DxGridPlaneCells => {\n [...Array(nextBounds.end.col - nextBounds.start.col)].forEach((_, c0) => {\n return [...Array(nextBounds.end.row - nextBounds.start.row)].forEach((_, r0) => {\n const col = nextBounds.start.col + c0;\n const row = nextBounds.start.row + r0;\n cachedGridCells[`${col},${row}`] = projectCellProps(model, col, row);\n });\n });\n return cachedGridCells;\n };\n};\n\nexport const rowLabelCell = (row: number) => ({\n value: rowToA1Notation(row),\n className: '!bg-toolbarSurface text-subdued text-end pie-1',\n resizeHandle: 'row',\n});\n\nexport const colLabelCell = (col: number) => ({\n value: colToA1Notation(col),\n className: '!bg-toolbarSurface text-subdued',\n resizeHandle: 'col',\n});\n\nconst cellGetter = (model: SheetModel) => {\n const getGridCells = gridCellGetter(model);\n return (nextBounds: DxGridPlaneRange, plane: DxGridPlane): DxGridPlaneCells => {\n switch (plane) {\n case 'grid':\n return getGridCells(nextBounds);\n case 'fixedStartStart': {\n return {\n '0,0': { className: '!bg-toolbarSurface' },\n };\n }\n case 'frozenColsStart':\n return [...Array(nextBounds.end.row - nextBounds.start.row)].reduce((acc, _, r0) => {\n const r = nextBounds.start.row + r0;\n acc[`0,${r}`] = rowLabelCell(r);\n return acc;\n }, {});\n case 'frozenRowsStart':\n return [...Array(nextBounds.end.col - nextBounds.start.col)].reduce((acc, _, c0) => {\n const c = nextBounds.start.col + c0;\n acc[`${c},0`] = colLabelCell(c);\n return acc;\n }, {});\n default:\n return {};\n }\n };\n};\n\nexport const useSheetModelDxGridProps = (\n dxGrid: DxGridElement | null,\n model: SheetModel,\n): Pick<GridContentProps, 'columns' | 'rows'> => {\n const [columns, setColumns] = useState<DxGridAxisMeta>(createDxGridColumns(model));\n const [rows, setRows] = useState<DxGridAxisMeta>(createDxGridRows(model));\n\n useEffect(() => {\n const cellsAccessor = createDocAccessor(model.sheet, ['cells']);\n if (dxGrid) {\n dxGrid.getCells = cellGetter(model);\n }\n const handleCellsUpdate = () => {\n dxGrid?.requestUpdate('initialCells');\n };\n cellsAccessor.handle.addListener('change', handleCellsUpdate);\n const unsubscribe = model.graph.update.on(handleCellsUpdate);\n return () => {\n cellsAccessor.handle.removeListener('change', handleCellsUpdate);\n unsubscribe();\n };\n }, [model, dxGrid]);\n\n useEffect(() => {\n const columnMetaAccessor = createDocAccessor(model.sheet, ['columnMeta']);\n const rowMetaAccessor = createDocAccessor(model.sheet, ['rowMeta']);\n const handleColumnMetaUpdate = () => {\n setColumns(createDxGridColumns(model));\n };\n const handleRowMetaUpdate = () => {\n setRows(createDxGridRows(model));\n };\n columnMetaAccessor.handle.addListener('change', handleColumnMetaUpdate);\n rowMetaAccessor.handle.addListener('change', handleRowMetaUpdate);\n return () => {\n columnMetaAccessor.handle.removeListener('change', handleColumnMetaUpdate);\n rowMetaAccessor.handle.removeListener('change', handleRowMetaUpdate);\n };\n }, [model, dxGrid]);\n\n return { columns, rows };\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema, pipe } from 'effect';\nimport { useCallback, useEffect, useMemo } from 'react';\n\nimport {\n createIntent,\n createResolver,\n LayoutAction,\n useIntentResolver,\n useIntentDispatcher,\n chain,\n} from '@dxos/app-framework';\nimport { debounce } from '@dxos/async';\nimport { type CellAddress, type CompleteCellRange, inRange } from '@dxos/compute';\nimport { Obj, Relation } from '@dxos/echo';\nimport { ATTENDABLE_PATH_SEPARATOR, DeckAction } from '@dxos/plugin-deck/types';\nimport { ThreadAction, ThreadType } from '@dxos/plugin-thread/types';\nimport { Filter, fullyQualifiedId, getSpace, Query, useQuery } from '@dxos/react-client/echo';\nimport { type DxGridElement, type DxGridPosition, type GridContentProps } from '@dxos/react-ui-grid';\nimport { AnchoredTo } from '@dxos/schema';\n\nimport { useSheetContext } from '../components';\nimport { SHEET_PLUGIN } from '../meta';\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 useUpdateFocusedCellOnThreadSelection = (grid: DxGridElement | null) => {\n const { model, setActiveRefs } = useSheetContext();\n const scrollIntoViewResolver = useMemo(\n () =>\n createResolver({\n intent: LayoutAction.ScrollIntoView,\n position: 'hoist',\n filter: (\n data,\n ): data is {\n part: 'current';\n subject: string;\n options: { cursor: string; ref: GridContentProps['activeRefs'] };\n } => {\n if (!Schema.is(LayoutAction.ScrollIntoView.fields.input)(data)) {\n return false;\n }\n\n return data.subject === fullyQualifiedId(model.sheet) && !!data.options?.cursor;\n },\n resolve: ({ options: { cursor, ref } }) => {\n setActiveRefs(ref);\n // TODO(Zan): Everywhere we refer to the cursor in a thread context should change to `anchor`.\n const range = parseThreadAnchorAsCellRange(cursor!);\n range && grid?.setFocus({ ...range.to, plane: 'grid' }, true);\n },\n }),\n [model.sheet, setActiveRefs],\n );\n\n useIntentResolver(SHEET_PLUGIN, scrollIntoViewResolver);\n};\n\nexport const useSelectThreadOnCellFocus = () => {\n const { model, cursor } = useSheetContext();\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n const space = getSpace(model.sheet);\n const anchors = useQuery(space, Query.select(Filter.ids(model.sheet.id)).targetOf(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(ThreadType, 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 const primary = fullyQualifiedId(model.sheet);\n const intent = pipe(\n createIntent(ThreadAction.Select, { current: fullyQualifiedId(closestThread) }),\n chain(DeckAction.ChangeCompanion, { primary, companion: `${primary}${ATTENDABLE_PATH_SEPARATOR}comments` }),\n );\n void dispatch(intent);\n }\n },\n [dispatch, anchors],\n );\n\n const debounced = useMemo(() => {\n return debounce((cellCoords: DxGridPosition) => requestAnimationFrame(() => selectClosestThread(cellCoords)), 50);\n }, [selectClosestThread]);\n\n useEffect(() => {\n if (!cursor) {\n return;\n }\n debounced(cursor);\n }, [cursor, debounced]);\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { type PropsWithChildren, createContext, useCallback, useContext, useState } from 'react';\n\nimport { type ComputeGraph, type CellAddress, type CellRange, type CompleteCellRange } from '@dxos/compute';\nimport { invariant } from '@dxos/invariant';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport {\n Grid,\n type GridContentProps,\n type GridEditing,\n type GridScopedProps,\n useGridContext,\n} from '@dxos/react-ui-grid';\n\nimport { type SheetModel, useSheetModel } from '../../model';\nimport { type SheetType } from '../../types';\n\nexport type SheetContextValue = {\n id: string;\n\n model: SheetModel;\n\n // Cursor state.\n // TODO(burdon): Cursor and range should use indices.\n cursor?: CellAddress;\n setCursor: (cell: CellAddress | undefined) => void;\n range?: CellRange;\n setRange: (range: CellRange | undefined) => void;\n cursorFallbackRange?: CompleteCellRange;\n\n // Editing state (undefined if not editing).\n editing: GridEditing;\n setEditing: (editing: GridEditing) => void;\n\n // Active refs\n activeRefs: GridContentProps['activeRefs'];\n setActiveRefs: (activeRefs: GridContentProps['activeRefs']) => void;\n\n // Events.\n // TODO(burdon): Generalize.\n onInfo?: () => void;\n\n // Flags\n ignoreAttention?: boolean;\n};\n\nconst SheetContext = createContext<SheetContextValue | undefined>(undefined);\n\nexport const useSheetContext = (): SheetContextValue => {\n const context = useContext(SheetContext);\n invariant(context);\n return context;\n};\n\nconst SheetProviderImpl = ({\n model,\n onInfo,\n ignoreAttention,\n children,\n __gridScope,\n}: GridScopedProps<PropsWithChildren<Pick<SheetContextValue, 'onInfo' | 'model' | 'ignoreAttention'>>>) => {\n const { id, editing, setEditing } = useGridContext('SheetProvider', __gridScope);\n\n const [cursor, setCursorInternal] = useState<CellAddress>();\n const [range, setRangeInternal] = useState<CellRange>();\n const [cursorFallbackRange, setCursorFallbackRange] = useState<CompleteCellRange>();\n const [activeRefs, setActiveRefs] = useState<GridContentProps['activeRefs']>('');\n\n const setCursor = useCallback(\n (nextCursor?: CellAddress) => {\n setCursorInternal(nextCursor);\n setCursorFallbackRange(\n range?.to ? (range as CompleteCellRange) : nextCursor ? { from: nextCursor!, to: nextCursor! } : undefined,\n );\n },\n [range],\n );\n const setRange = useCallback(\n (nextRange?: CellRange) => {\n setRangeInternal(nextRange);\n setCursorFallbackRange(\n nextRange?.to ? (nextRange as CompleteCellRange) : cursor ? { from: cursor!, to: cursor! } : undefined,\n );\n },\n [cursor],\n );\n\n return (\n <SheetContext.Provider\n value={{\n id,\n model,\n editing,\n setEditing,\n cursor,\n setCursor,\n range,\n setRange,\n cursorFallbackRange,\n activeRefs,\n setActiveRefs,\n // TODO(burdon): Change to event.\n onInfo,\n ignoreAttention,\n }}\n >\n {children}\n </SheetContext.Provider>\n );\n};\n\nexport type SheetProviderProps = {\n graph: ComputeGraph;\n sheet: SheetType;\n readonly?: boolean;\n ignoreAttention?: boolean;\n} & Pick<SheetContextValue, 'onInfo'>;\n\nexport const SheetProvider = ({\n children,\n graph,\n sheet,\n readonly,\n ignoreAttention,\n onInfo,\n}: PropsWithChildren<SheetProviderProps>) => {\n const model = useSheetModel(graph, sheet, { readonly });\n\n return !model ? null : (\n <Grid.Root id={fullyQualifiedId(sheet)}>\n <SheetProviderImpl model={model} onInfo={onInfo} ignoreAttention={ignoreAttention}>\n {children}\n </SheetProviderImpl>\n </Grid.Root>\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["React", "createContext", "useContext", "raise", "useAsyncState", "ComputeGraphContext", "createContext", "undefined", "ComputeGraphContextProvider", "registry", "children", "Provider", "value", "useComputeGraph", "space", "useContext", "raise", "Error", "graph", "useAsyncState", "getOrCreateGraph", "open", "Schema", "React", "useCallback", "rangeToA1Notation", "Callout", "useTranslation", "List", "ghostHover", "RangeList", "sheet", "t", "useTranslation", "SHEET_PLUGIN", "handleSelectRange", "range", "handleDeleteRange", "useCallback", "index", "ranges", "findIndex", "sheetRange", "splice", "React", "h2", "className", "length", "Callout", "Root", "Title", "List", "items", "isItem", "Schema", "is", "Range", "map", "i", "Item", "key", "item", "classNames", "ghostHover", "ItemDragHandle", "ItemTitle", "onClick", "position", "rangeToA1Notation", "rangeFromIndex", "value", "ItemDeleteButton", "lazy", "React", "useCallback", "useMemo", "useRef", "useState", "createIntent", "useIntentDispatcher", "rangeToA1Notation", "defaultColSize", "defaultRowSize", "DropdownMenu", "Icon", "useTranslation", "useAttention", "closestCell", "editorKeys", "parseCellIndex", "Grid", "GridCellEditor", "useEffect", "useState", "inRange", "createDocAccessor", "parseValue", "cellClassesForFieldType", "colToA1Notation", "rowToA1Notation", "commentedClassName", "mx", "createDxGridColumns", "model", "sheet", "columns", "reduce", "acc", "columnId", "numericIndex", "columnMeta", "size", "grid", "resizeable", "createDxGridRows", "rows", "rowId", "rowMeta", "projectCellProps", "col", "row", "address", "rawValue", "getValue", "ranges", "filter", "range", "inRange", "rangeFromIndex", "threadRefs", "undefined", "description", "getValueDescription", "type", "format", "classNames", "map", "cellClassNameForRange", "reverse", "value", "parseValue", "className", "mx", "cellClassesForFieldType", "commentedClassName", "dataRefs", "gridCellGetter", "cachedGridCells", "nextBounds", "Array", "end", "start", "forEach", "_", "c0", "r0", "rowLabelCell", "rowToA1Notation", "resizeHandle", "colLabelCell", "colToA1Notation", "cellGetter", "getGridCells", "plane", "r", "c", "useSheetModelDxGridProps", "dxGrid", "setColumns", "useState", "setRows", "useEffect", "cellsAccessor", "createDocAccessor", "getCells", "handleCellsUpdate", "requestUpdate", "handle", "addListener", "unsubscribe", "graph", "update", "on", "removeListener", "columnMetaAccessor", "rowMetaAccessor", "handleColumnMetaUpdate", "handleRowMetaUpdate", "Schema", "pipe", "useCallback", "useEffect", "useMemo", "createIntent", "createResolver", "LayoutAction", "useIntentResolver", "useIntentDispatcher", "chain", "debounce", "inRange", "Obj", "Relation", "ATTENDABLE_PATH_SEPARATOR", "DeckAction", "ThreadAction", "ThreadType", "Filter", "fullyQualifiedId", "getSpace", "Query", "useQuery", "AnchoredTo", "parseThreadAnchorAsCellRange", "cursor", "coords", "split", "length", "fromCol", "fromRow", "toCol", "toRow", "from", "col", "parseInt", "row", "to", "useUpdateFocusedCellOnThreadSelection", "grid", "model", "setActiveRefs", "useSheetContext", "scrollIntoViewResolver", "useMemo", "createResolver", "intent", "LayoutAction", "ScrollIntoView", "position", "filter", "data", "Schema", "is", "fields", "input", "subject", "fullyQualifiedId", "sheet", "options", "resolve", "ref", "range", "setFocus", "plane", "useIntentResolver", "SHEET_PLUGIN", "useSelectThreadOnCellFocus", "dispatchPromise", "dispatch", "useIntentDispatcher", "space", "getSpace", "anchors", "useQuery", "Query", "select", "Filter", "ids", "id", "targetOf", "AnchoredTo", "selectClosestThread", "useCallback", "cellAddress", "closestThread", "find", "anchor", "source", "Relation", "getSource", "Obj", "instanceOf", "ThreadType", "inRange", "primary", "pipe", "createIntent", "ThreadAction", "Select", "current", "chain", "DeckAction", "ChangeCompanion", "companion", "ATTENDABLE_PATH_SEPARATOR", "debounced", "debounce", "cellCoords", "requestAnimationFrame", "useEffect", "React", "createContext", "useCallback", "useContext", "useState", "invariant", "fullyQualifiedId", "Grid", "useGridContext", "SheetContext", "createContext", "undefined", "useSheetContext", "context", "useContext", "invariant", "SheetProviderImpl", "model", "onInfo", "ignoreAttention", "children", "__gridScope", "id", "editing", "setEditing", "useGridContext", "cursor", "setCursorInternal", "useState", "range", "setRangeInternal", "cursorFallbackRange", "setCursorFallbackRange", "activeRefs", "setActiveRefs", "setCursor", "useCallback", "nextCursor", "to", "from", "setRange", "nextRange", "React", "Provider", "value", "SheetProvider", "graph", "sheet", "readonly", "useSheetModel", "Grid", "Root", "fullyQualifiedId", "inertPosition", "plane", "col", "row", "initialCells", "grid", "frozenColsStart", "Array", "reduce", "acc", "_", "i", "rowLabelCell", "frozenRowsStart", "colLabelCell", "frozen", "sheetColDefault", "size", "readonly", "defaultColSize", "resizeable", "sheetRowDefault", "defaultRowSize", "GridSheet", "t", "useTranslation", "SHEET_PLUGIN", "id", "model", "editing", "setCursor", "setRange", "cursor", "cursorFallbackRange", "activeRefs", "ignoreAttention", "useSheetContext", "dxGrid", "setDxGrid", "useState", "extraplanarFocus", "setExtraplanarFocus", "dispatchPromise", "dispatch", "useIntentDispatcher", "rangeController", "useRef", "hasAttention", "useAttention", "handleFocus", "useCallback", "event", "cell", "closestCell", "target", "handleClose", "_value", "key", "shift", "axis", "includes", "undefined", "delta", "startsWith", "refocus", "handleBlur", "value", "setValue", "parseCellIndex", "index", "handleAxisResize", "numericIndex", "rowId", "sheet", "rows", "parseInt", "rowMeta", "columnId", "columns", "columnMeta", "handleSelect", "minCol", "maxCol", "minRow", "maxRow", "range", "from", "to", "current", "rangeToA1Notation", "handleWheel", "stopPropagation", "selectEntireAxis", "pos", "setSelection", "start", "end", "length", "handleClick", "handleKeyDown", "preventDefault", "clear", "metaKey", "ctrlKey", "cut", "copy", "paste", "shiftKey", "redo", "undo", "contextMenuAnchorRef", "contextMenuOpen", "setContextMenuOpen", "contextMenuAxis", "handleContextMenu", "handleAxisMenuAction", "operation", "createIntent", "SheetAction", "InsertAxis", "DropAxis", "axisIndex", "useSheetModelDxGridProps", "extension", "useMemo", "editorKeys", "onClose", "initialContent", "onNav", "sheetExtension", "functions", "graph", "getFunctions", "rangeExtension", "onInit", "fn", "onStateChange", "state", "mode", "activeRange", "getCellContent", "getCellText", "useUpdateFocusedCellOnThreadSelection", "useSelectThreadOnCellFocus", "React", "div", "role", "className", "GridCellEditor", "onBlur", "Grid", "Content", "limitColumns", "DEFAULT_COLS", "limitRows", "DEFAULT_ROWS", "columnDefault", "rowDefault", "onAxisResize", "onSelect", "onFocus", "onWheelCapture", "onKeyDown", "onContextMenu", "onClick", "overscroll", "ref", "DropdownMenu", "Root", "modal", "open", "onOpenChange", "nextOpen", "VirtualTrigger", "virtualRef", "side", "sideOffset", "collisionPadding", "Viewport", "Item", "data-testid", "Icon", "icon", "span", "Arrow", "SheetContainer", "lazy"]
7
- }
@@ -1,20 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
-
3
- // packages/plugins/plugin-sheet/src/meta.ts
4
- var SHEET_PLUGIN = "dxos.org/plugin/sheet";
5
- var meta = {
6
- id: SHEET_PLUGIN,
7
- name: "Sheet",
8
- description: "Sheets in Composer are simple spreadsheets which allow you to leverage custom functions inside of cell grids. Leverage more than 400 pre-built formulas like Sum, Average, Count, Max, Min along with many others. You can also deploy your own custom functions using the Scripts plugin. ",
9
- icon: "ph--grid-nine--regular",
10
- source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-sheet",
11
- screenshots: [
12
- "https://dxos.network/plugin-details-sheet-dark.png"
13
- ]
14
- };
15
-
16
- export {
17
- SHEET_PLUGIN,
18
- meta
19
- };
20
- //# sourceMappingURL=chunk-Y6ND5HWX.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const SHEET_PLUGIN = 'dxos.org/plugin/sheet';\n\nexport const meta: PluginMeta = {\n id: SHEET_PLUGIN,\n name: 'Sheet',\n description:\n 'Sheets in Composer are simple spreadsheets which allow you to leverage custom functions inside of cell grids. Leverage more than 400 pre-built formulas like Sum, Average, Count, Max, Min along with many others. You can also deploy your own custom functions using the Scripts plugin. ',\n icon: 'ph--grid-nine--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-sheet',\n screenshots: ['https://dxos.network/plugin-details-sheet-dark.png'],\n};\n"],
5
- "mappings": ";;;AAMO,IAAMA,eAAe;AAErB,IAAMC,OAAmB;EAC9BC,IAAIF;EACJG,MAAM;EACNC,aACE;EACFC,MAAM;EACNC,QAAQ;EACRC,aAAa;IAAC;;AAChB;",
6
- "names": ["SHEET_PLUGIN", "meta", "id", "name", "description", "icon", "source", "screenshots"]
7
- }
@@ -1,31 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- SheetCapabilities
4
- } from "./chunk-IQ76YE6M.mjs";
5
- import "./chunk-Y6ND5HWX.mjs";
6
-
7
- // packages/plugins/plugin-sheet/src/capabilities/compute-graph-registry.ts
8
- import { contributes } from "@dxos/app-framework";
9
- import { ClientCapabilities } from "@dxos/plugin-client";
10
- var isSecure = (protocol) => {
11
- return protocol === "https:" || protocol === "wss:";
12
- };
13
- var compute_graph_registry_default = async (context) => {
14
- const client = context.getCapability(ClientCapabilities.Client);
15
- let remoteFunctionUrl;
16
- if (client.config.values.runtime?.services?.edge?.url) {
17
- const url = new URL("/functions", client.config.values.runtime?.services?.edge?.url);
18
- url.protocol = isSecure(url.protocol) ? "https" : "http";
19
- remoteFunctionUrl = url.toString();
20
- }
21
- const { defaultPlugins, ComputeGraphRegistry } = await import("@dxos/compute");
22
- const computeGraphRegistry = new ComputeGraphRegistry({
23
- plugins: defaultPlugins,
24
- remoteFunctionUrl
25
- });
26
- return contributes(SheetCapabilities.ComputeGraphRegistry, computeGraphRegistry);
27
- };
28
- export {
29
- compute_graph_registry_default as default
30
- };
31
- //# sourceMappingURL=compute-graph-registry-7PDWXMHF.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/compute-graph-registry.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes, type PluginContext } from '@dxos/app-framework';\nimport { ClientCapabilities } from '@dxos/plugin-client';\n\nimport { SheetCapabilities } from './capabilities';\n\nconst isSecure = (protocol: string) => {\n return protocol === 'https:' || protocol === 'wss:';\n};\n\nexport default async (context: PluginContext) => {\n const client = context.getCapability(ClientCapabilities.Client);\n let remoteFunctionUrl: string | undefined;\n if (client.config.values.runtime?.services?.edge?.url) {\n const url = new URL('/functions', client.config.values.runtime?.services?.edge?.url);\n url.protocol = isSecure(url.protocol) ? 'https' : 'http';\n remoteFunctionUrl = url.toString();\n }\n\n // TODO(wittjosiah): This can probably be a module level import now due to lazy capability loading.\n // Async import removes direct dependency on hyperformula.\n const { defaultPlugins, ComputeGraphRegistry } = await import('@dxos/compute');\n const computeGraphRegistry = new ComputeGraphRegistry({ plugins: defaultPlugins, remoteFunctionUrl });\n return contributes(SheetCapabilities.ComputeGraphRegistry, computeGraphRegistry);\n};\n"],
5
- "mappings": ";;;;;;;AAIA,SAASA,mBAAuC;AAChD,SAASC,0BAA0B;AAInC,IAAMC,WAAW,CAACC,aAAAA;AAChB,SAAOA,aAAa,YAAYA,aAAa;AAC/C;AAEA,IAAA,iCAAe,OAAOC,YAAAA;AACpB,QAAMC,SAASD,QAAQE,cAAcC,mBAAmBC,MAAM;AAC9D,MAAIC;AACJ,MAAIJ,OAAOK,OAAOC,OAAOC,SAASC,UAAUC,MAAMC,KAAK;AACrD,UAAMA,MAAM,IAAIC,IAAI,cAAcX,OAAOK,OAAOC,OAAOC,SAASC,UAAUC,MAAMC,GAAAA;AAChFA,QAAIZ,WAAWD,SAASa,IAAIZ,QAAQ,IAAI,UAAU;AAClDM,wBAAoBM,IAAIE,SAAQ;EAClC;AAIA,QAAM,EAAEC,gBAAgBC,qBAAoB,IAAK,MAAM,OAAO,eAAA;AAC9D,QAAMC,uBAAuB,IAAID,qBAAqB;IAAEE,SAASH;IAAgBT;EAAkB,CAAA;AACnG,SAAOa,YAAYC,kBAAkBJ,sBAAsBC,oBAAAA;AAC7D;",
6
- "names": ["contributes", "ClientCapabilities", "isSecure", "protocol", "context", "client", "getCapability", "ClientCapabilities", "Client", "remoteFunctionUrl", "config", "values", "runtime", "services", "edge", "url", "URL", "toString", "defaultPlugins", "ComputeGraphRegistry", "computeGraphRegistry", "plugins", "contributes", "SheetCapabilities"]
7
- }
@@ -1,57 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- SheetAction,
4
- createSheet
5
- } from "./chunk-C4IKYVTV.mjs";
6
- import {
7
- SHEET_PLUGIN
8
- } from "./chunk-Y6ND5HWX.mjs";
9
-
10
- // packages/plugins/plugin-sheet/src/capabilities/intent-resolver.ts
11
- import { contributes, Capabilities, createResolver } from "@dxos/app-framework";
12
- var intent_resolver_default = () => contributes(Capabilities.IntentResolver, [
13
- createResolver({
14
- intent: SheetAction.Create,
15
- resolve: ({ name }) => ({
16
- data: {
17
- object: createSheet({
18
- name
19
- })
20
- }
21
- })
22
- }),
23
- createResolver({
24
- intent: SheetAction.InsertAxis,
25
- resolve: ({ model, axis, index, count }) => {
26
- const _indices = model[axis === "col" ? "insertColumns" : "insertRows"](index, count);
27
- }
28
- }),
29
- createResolver({
30
- intent: SheetAction.DropAxis,
31
- resolve: ({ model, axis, axisIndex, deletionData }, undo) => {
32
- if (!undo) {
33
- const undoData = model[axis === "col" ? "dropColumn" : "dropRow"](axisIndex);
34
- return {
35
- undoable: {
36
- message: [
37
- `${axis} dropped label`,
38
- {
39
- ns: SHEET_PLUGIN
40
- }
41
- ],
42
- data: {
43
- ...undoData,
44
- model
45
- }
46
- }
47
- };
48
- } else if (undo && deletionData) {
49
- model[deletionData.axis === "col" ? "restoreColumn" : "restoreRow"](deletionData);
50
- }
51
- }
52
- })
53
- ]);
54
- export {
55
- intent_resolver_default as default
56
- };
57
- //# sourceMappingURL=intent-resolver-M2HNR7PJ.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes, Capabilities, createResolver } from '@dxos/app-framework';\n\nimport { SHEET_PLUGIN } from '../meta';\nimport { createSheet, SheetAction } from '../types';\n\nexport default () =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: SheetAction.Create,\n resolve: ({ name }) => ({ data: { object: createSheet({ name }) } }),\n }),\n createResolver({\n intent: SheetAction.InsertAxis,\n resolve: ({ model, axis, index, count }) => {\n const _indices = model[axis === 'col' ? 'insertColumns' : 'insertRows'](index, count);\n },\n }),\n createResolver({\n intent: SheetAction.DropAxis,\n resolve: ({ model, axis, axisIndex, deletionData }, undo) => {\n if (!undo) {\n const undoData = model[axis === 'col' ? 'dropColumn' : 'dropRow'](axisIndex);\n return {\n undoable: {\n message: [`${axis} dropped label`, { ns: SHEET_PLUGIN }],\n data: { ...undoData, model },\n },\n };\n } else if (undo && deletionData) {\n model[deletionData.axis === 'col' ? 'restoreColumn' : 'restoreRow'](deletionData);\n }\n },\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;AAIA,SAASA,aAAaC,cAAcC,sBAAsB;AAK1D,IAAA,0BAAe,MACbC,YAAYC,aAAaC,gBAAgB;EACvCC,eAAe;IACbC,QAAQC,YAAYC;IACpBC,SAAS,CAAC,EAAEC,KAAI,OAAQ;MAAEC,MAAM;QAAEC,QAAQC,YAAY;UAAEH;QAAK,CAAA;MAAG;IAAE;EACpE,CAAA;EACAL,eAAe;IACbC,QAAQC,YAAYO;IACpBL,SAAS,CAAC,EAAEM,OAAOC,MAAMC,OAAOC,MAAK,MAAE;AACrC,YAAMC,WAAWJ,MAAMC,SAAS,QAAQ,kBAAkB,YAAA,EAAcC,OAAOC,KAAAA;IACjF;EACF,CAAA;EACAb,eAAe;IACbC,QAAQC,YAAYa;IACpBX,SAAS,CAAC,EAAEM,OAAOC,MAAMK,WAAWC,aAAY,GAAIC,SAAAA;AAClD,UAAI,CAACA,MAAM;AACT,cAAMC,WAAWT,MAAMC,SAAS,QAAQ,eAAe,SAAA,EAAWK,SAAAA;AAClE,eAAO;UACLI,UAAU;YACRC,SAAS;cAAC,GAAGV,IAAAA;cAAsB;gBAAEW,IAAIC;cAAa;;YACtDjB,MAAM;cAAE,GAAGa;cAAUT;YAAM;UAC7B;QACF;MACF,WAAWQ,QAAQD,cAAc;AAC/BP,cAAMO,aAAaN,SAAS,QAAQ,kBAAkB,YAAA,EAAcM,YAAAA;MACtE;IACF;EACF,CAAA;CACD;",
6
- "names": ["contributes", "Capabilities", "createResolver", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "SheetAction", "Create", "resolve", "name", "data", "object", "createSheet", "InsertAxis", "model", "axis", "index", "count", "_indices", "DropAxis", "axisIndex", "deletionData", "undo", "undoData", "undoable", "message", "ns", "SHEET_PLUGIN"]
7
- }
@@ -1,27 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- SheetCapabilities
4
- } from "./chunk-IQ76YE6M.mjs";
5
- import {
6
- computeGraphFacet
7
- } from "./chunk-NMCVJWDT.mjs";
8
- import "./chunk-Y6ND5HWX.mjs";
9
-
10
- // packages/plugins/plugin-sheet/src/capabilities/markdown.ts
11
- import { contributes } from "@dxos/app-framework";
12
- import { getSpace } from "@dxos/client/echo";
13
- import { MarkdownCapabilities } from "@dxos/plugin-markdown";
14
- var markdown_default = (context) => contributes(MarkdownCapabilities.Extensions, [
15
- ({ document: doc }) => {
16
- const computeGraphRegistry = context.getCapability(SheetCapabilities.ComputeGraphRegistry);
17
- const space = getSpace(doc);
18
- if (space) {
19
- const computeGraph = computeGraphRegistry.getOrCreateGraph(space);
20
- return computeGraphFacet.of(computeGraph);
21
- }
22
- }
23
- ]);
24
- export {
25
- markdown_default as default
26
- };
27
- //# sourceMappingURL=markdown-WWUJ3E5F.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/markdown.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes, type PluginContext } from '@dxos/app-framework';\nimport { getSpace } from '@dxos/client/echo';\nimport { MarkdownCapabilities } from '@dxos/plugin-markdown';\n\nimport { SheetCapabilities } from './capabilities';\nimport { computeGraphFacet } from '../extensions';\n\nexport default (context: PluginContext) =>\n contributes(MarkdownCapabilities.Extensions, [\n ({ document: doc }) => {\n const computeGraphRegistry = context.getCapability(SheetCapabilities.ComputeGraphRegistry);\n const space = getSpace(doc);\n if (space) {\n const computeGraph = computeGraphRegistry.getOrCreateGraph(space);\n return computeGraphFacet.of(computeGraph);\n }\n },\n ]);\n"],
5
- "mappings": ";;;;;;;;;;AAIA,SAASA,mBAAuC;AAChD,SAASC,gBAAgB;AACzB,SAASC,4BAA4B;AAKrC,IAAA,mBAAe,CAACC,YACdC,YAAYC,qBAAqBC,YAAY;EAC3C,CAAC,EAAEC,UAAUC,IAAG,MAAE;AAChB,UAAMC,uBAAuBN,QAAQO,cAAcC,kBAAkBC,oBAAoB;AACzF,UAAMC,QAAQC,SAASN,GAAAA;AACvB,QAAIK,OAAO;AACT,YAAME,eAAeN,qBAAqBO,iBAAiBH,KAAAA;AAC3D,aAAOI,kBAAkBC,GAAGH,YAAAA;IAC9B;EACF;CACD;",
6
- "names": ["contributes", "getSpace", "MarkdownCapabilities", "context", "contributes", "MarkdownCapabilities", "Extensions", "document", "doc", "computeGraphRegistry", "getCapability", "SheetCapabilities", "ComputeGraphRegistry", "space", "getSpace", "computeGraph", "getOrCreateGraph", "computeGraphFacet", "of"]
7
- }
@@ -1,54 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- SheetCapabilities
4
- } from "./chunk-IQ76YE6M.mjs";
5
- import {
6
- ComputeGraphContextProvider,
7
- RangeList,
8
- SheetContainer
9
- } from "./chunk-SOC52B67.mjs";
10
- import {
11
- SheetType
12
- } from "./chunk-C4IKYVTV.mjs";
13
- import "./chunk-NMCVJWDT.mjs";
14
- import {
15
- SHEET_PLUGIN
16
- } from "./chunk-Y6ND5HWX.mjs";
17
-
18
- // packages/plugins/plugin-sheet/src/capabilities/react-surface.tsx
19
- import React from "react";
20
- import { Capabilities, contributes, createSurface, useCapability } from "@dxos/app-framework";
21
- import { Obj } from "@dxos/echo";
22
- import { getSpace } from "@dxos/react-client/echo";
23
- var react_surface_default = () => contributes(Capabilities.ReactSurface, [
24
- createSurface({
25
- id: `${SHEET_PLUGIN}/sheet`,
26
- role: [
27
- "article",
28
- "section"
29
- ],
30
- filter: (data) => Obj.instanceOf(SheetType, data.subject) && !!getSpace(data.subject),
31
- component: ({ data, role }) => {
32
- const computeGraphRegistry = useCapability(SheetCapabilities.ComputeGraphRegistry);
33
- return /* @__PURE__ */ React.createElement(ComputeGraphContextProvider, {
34
- registry: computeGraphRegistry
35
- }, /* @__PURE__ */ React.createElement(SheetContainer, {
36
- space: getSpace(data.subject),
37
- sheet: data.subject,
38
- role
39
- }));
40
- }
41
- }),
42
- createSurface({
43
- id: `${SHEET_PLUGIN}/object-settings`,
44
- role: "object-settings",
45
- filter: (data) => Obj.instanceOf(SheetType, data.subject),
46
- component: ({ data }) => /* @__PURE__ */ React.createElement(RangeList, {
47
- sheet: data.subject
48
- })
49
- })
50
- ]);
51
- export {
52
- react_surface_default as default
53
- };
54
- //# sourceMappingURL=react-surface-OLXO2MVB.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, createSurface, useCapability } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { getSpace } from '@dxos/react-client/echo';\n\nimport { SheetCapabilities } from './capabilities';\nimport { ComputeGraphContextProvider, RangeList, SheetContainer } from '../components';\nimport { SHEET_PLUGIN } from '../meta';\nimport { SheetType } from '../types';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${SHEET_PLUGIN}/sheet`,\n role: ['article', 'section'],\n filter: (data): data is { subject: SheetType } =>\n Obj.instanceOf(SheetType, data.subject) && !!getSpace(data.subject),\n component: ({ data, role }) => {\n const computeGraphRegistry = useCapability(SheetCapabilities.ComputeGraphRegistry);\n\n return (\n <ComputeGraphContextProvider registry={computeGraphRegistry}>\n <SheetContainer space={getSpace(data.subject)!} sheet={data.subject} role={role} />\n </ComputeGraphContextProvider>\n );\n },\n }),\n createSurface({\n id: `${SHEET_PLUGIN}/object-settings`,\n role: 'object-settings',\n filter: (data): data is { subject: SheetType } => Obj.instanceOf(SheetType, data.subject),\n component: ({ data }) => <RangeList sheet={data.subject} />,\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,aAAaC,eAAeC,qBAAqB;AACxE,SAASC,WAAW;AACpB,SAASC,gBAAgB;AAOzB,IAAA,wBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,cAAc;IACZC,IAAI,GAAGC,YAAAA;IACPC,MAAM;MAAC;MAAW;;IAClBC,QAAQ,CAACC,SACPC,IAAIC,WAAWC,WAAWH,KAAKI,OAAO,KAAK,CAAC,CAACC,SAASL,KAAKI,OAAO;IACpEE,WAAW,CAAC,EAAEN,MAAMF,KAAI,MAAE;AACxB,YAAMS,uBAAuBC,cAAcC,kBAAkBC,oBAAoB;AAEjF,aACE,sBAAA,cAACC,6BAAAA;QAA4BC,UAAUL;SACrC,sBAAA,cAACM,gBAAAA;QAAeC,OAAOT,SAASL,KAAKI,OAAO;QAAIW,OAAOf,KAAKI;QAASN;;IAG3E;EACF,CAAA;EACAH,cAAc;IACZC,IAAI,GAAGC,YAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAAyCC,IAAIC,WAAWC,WAAWH,KAAKI,OAAO;IACxFE,WAAW,CAAC,EAAEN,KAAI,MAAO,sBAAA,cAACgB,WAAAA;MAAUD,OAAOf,KAAKI;;EAClD,CAAA;CACD;",
6
- "names": ["React", "Capabilities", "contributes", "createSurface", "useCapability", "Obj", "getSpace", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "SHEET_PLUGIN", "role", "filter", "data", "Obj", "instanceOf", "SheetType", "subject", "getSpace", "component", "computeGraphRegistry", "useCapability", "SheetCapabilities", "ComputeGraphRegistry", "ComputeGraphContextProvider", "registry", "SheetContainer", "space", "sheet", "RangeList"]
7
- }
@@ -1,6 +0,0 @@
1
- declare const _default: () => import("@dxos/app-framework").Capability<{
2
- key: string;
3
- sort: (anchorA: import("@dxos/schema").AnchoredTo, anchorB: import("@dxos/schema").AnchoredTo) => number;
4
- }>;
5
- export default _default;
6
- //# sourceMappingURL=anchor-sort.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"anchor-sort.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/anchor-sort.ts"],"names":[],"mappings":";;;;AAUA,wBAWK"}
@@ -1,5 +0,0 @@
1
- import { type ComputeGraphRegistry } from '@dxos/compute';
2
- export declare namespace SheetCapabilities {
3
- const ComputeGraphRegistry: import("@dxos/app-framework").InterfaceDef<ComputeGraphRegistry>;
4
- }
5
- //# sourceMappingURL=capabilities.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/capabilities.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAI1D,yBAAiB,iBAAiB,CAAC;IAC1B,MAAM,oBAAoB,kEAEhC,CAAC;CACH"}
@@ -1,4 +0,0 @@
1
- import { type PluginContext } from '@dxos/app-framework';
2
- declare const _default: (context: PluginContext) => Promise<import("@dxos/app-framework").Capability<import("@dxos/compute").ComputeGraphRegistry>>;
3
- export default _default;
4
- //# sourceMappingURL=compute-graph-registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compute-graph-registry.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/compute-graph-registry.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;yBAShD,SAAS,aAAa;AAA5C,wBAcE"}
@@ -1,4 +0,0 @@
1
- import { Capabilities } from '@dxos/app-framework';
2
- declare const _default: () => import("@dxos/app-framework").Capability<Capabilities.IntentResolver>;
3
- export default _default;
4
- //# sourceMappingURL=intent-resolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"intent-resolver.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/intent-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,YAAY,EAAkB,MAAM,qBAAqB,CAAC;;AAKhF,wBA4BK"}
@@ -1,6 +0,0 @@
1
- import { type PluginContext } from '@dxos/app-framework';
2
- declare const _default: (context: PluginContext) => import("@dxos/app-framework").Capability<(({ document: doc }: {
3
- document?: import("@dxos/plugin-markdown/types").DocumentType;
4
- }) => import("@codemirror/state").Extension | undefined)[]>;
5
- export default _default;
6
- //# sourceMappingURL=markdown.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/markdown.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;yBAOtD,SAAS,aAAa;;;AAAtC,wBAUK"}
@@ -1,4 +0,0 @@
1
- import { Capabilities } from '@dxos/app-framework';
2
- declare const _default: () => import("@dxos/app-framework").Capability<Capabilities.ReactSurface>;
3
- export default _default;
4
- //# sourceMappingURL=react-surface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAA6C,MAAM,qBAAqB,CAAC;;AAS9F,wBAuBK"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/editor/extension.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAMnD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AA4CxD,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAClC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,sBAA2B,qBAAqB,KAAG,SAuHjF,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,IAAI,CAAC;IAC/C;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,KAAK,IAAI,CAAC;CACtE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,2BAA2B,qBAAqB,KAAG,SAyEjF,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=extension.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension.test.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/editor/extension.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sheet-manager.d.ts","sourceRoot":"","sources":["../../../../../src/testing/playwright/sheet-manager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE3E;;;GAGG;AACH,qBAAa,YAAY;gBACX,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO;IAKtC,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,IAAI,CAAC;IAEL,KAAK;IAKL,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxC,UAAU,CAAC,IAAI,EAAE,MAAM;IAIjB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASnE,WAAW,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtE,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnE,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAIlD,UAAU,IAAI,OAAO;IAIrB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAGvC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sheet.spec.d.ts","sourceRoot":"","sources":["../../../../../src/testing/playwright/sheet.spec.ts"],"names":[],"mappings":""}
@@ -1,37 +0,0 @@
1
- import { Schema } from 'effect';
2
- import { Type } from '@dxos/echo';
3
- export declare const CellValue: Schema.Struct<{
4
- value: typeof Schema.Any;
5
- }>;
6
- export type CellValue = Schema.Schema.Type<typeof CellValue>;
7
- export declare const Range: Schema.Struct<{
8
- range: typeof Schema.String;
9
- key: typeof Schema.String;
10
- value: typeof Schema.String;
11
- }>;
12
- export type Range = Schema.Schema.Type<typeof Range>;
13
- export declare const RowColumnMeta: Schema.Struct<{
14
- size: Schema.optional<typeof Schema.Number>;
15
- }>;
16
- export declare const SheetType: Type.obj<Schema.Struct<{
17
- name: Schema.optional<typeof Schema.String>;
18
- cells: Schema.mutable<Schema.Record$<typeof Schema.String, Schema.mutable<Schema.Struct<{
19
- value: typeof Schema.Any;
20
- }>>>>;
21
- rows: Schema.mutable<Schema.Array$<typeof Schema.String>>;
22
- columns: Schema.mutable<Schema.Array$<typeof Schema.String>>;
23
- rowMeta: Schema.mutable<Schema.Record$<typeof Schema.String, Schema.mutable<Schema.Struct<{
24
- size: Schema.optional<typeof Schema.Number>;
25
- }>>>>;
26
- columnMeta: Schema.mutable<Schema.Record$<typeof Schema.String, Schema.mutable<Schema.Struct<{
27
- size: Schema.optional<typeof Schema.Number>;
28
- }>>>>;
29
- ranges: Schema.mutable<Schema.Array$<Schema.Struct<{
30
- range: typeof Schema.String;
31
- key: typeof Schema.String;
32
- value: typeof Schema.String;
33
- }>>>;
34
- }>>;
35
- export interface SheetType extends Schema.Schema.Type<typeof SheetType> {
36
- }
37
- //# sourceMappingURL=schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/types/schema.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,eAAO,MAAM,SAAS;;EAKpB,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,SAAS,CAAC,CAAC;AAG7D,eAAO,MAAM,KAAK;;;;EAIhB,CAAC;AAEH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC;AAGrD,eAAO,MAAM,aAAa;;EAExB,CAAC;AAIH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;GAyBrB,CAAC;AACF,MAAM,WAAW,SAAU,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,SAAS,CAAC;CAAG"}
@@ -1,22 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Capabilities, contributes } from '@dxos/app-framework';
6
- import { Type } from '@dxos/echo';
7
- import { getTarget } from '@dxos/react-client/echo';
8
-
9
- import { compareIndexPositions, SheetType } from '../types';
10
-
11
- export default () =>
12
- contributes(Capabilities.AnchorSort, {
13
- key: Type.getTypename(SheetType)!,
14
- sort: (anchorA, anchorB) => {
15
- const sheet = getTarget(anchorA) as SheetType;
16
- if (sheet !== getTarget(anchorB)) {
17
- return 0;
18
- }
19
-
20
- return !anchorA.anchor || !anchorB.anchor ? 0 : compareIndexPositions(sheet, anchorA.anchor, anchorB.anchor);
21
- },
22
- });
@@ -1,14 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { defineCapability } from '@dxos/app-framework';
6
- import { type ComputeGraphRegistry } from '@dxos/compute';
7
-
8
- import { SHEET_PLUGIN } from '../meta';
9
-
10
- export namespace SheetCapabilities {
11
- export const ComputeGraphRegistry = defineCapability<ComputeGraphRegistry>(
12
- `${SHEET_PLUGIN}/capability/compute-graph-registry`,
13
- );
14
- }
@@ -1,28 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { contributes, type PluginContext } from '@dxos/app-framework';
6
- import { ClientCapabilities } from '@dxos/plugin-client';
7
-
8
- import { SheetCapabilities } from './capabilities';
9
-
10
- const isSecure = (protocol: string) => {
11
- return protocol === 'https:' || protocol === 'wss:';
12
- };
13
-
14
- export default async (context: PluginContext) => {
15
- const client = context.getCapability(ClientCapabilities.Client);
16
- let remoteFunctionUrl: string | undefined;
17
- if (client.config.values.runtime?.services?.edge?.url) {
18
- const url = new URL('/functions', client.config.values.runtime?.services?.edge?.url);
19
- url.protocol = isSecure(url.protocol) ? 'https' : 'http';
20
- remoteFunctionUrl = url.toString();
21
- }
22
-
23
- // TODO(wittjosiah): This can probably be a module level import now due to lazy capability loading.
24
- // Async import removes direct dependency on hyperformula.
25
- const { defaultPlugins, ComputeGraphRegistry } = await import('@dxos/compute');
26
- const computeGraphRegistry = new ComputeGraphRegistry({ plugins: defaultPlugins, remoteFunctionUrl });
27
- return contributes(SheetCapabilities.ComputeGraphRegistry, computeGraphRegistry);
28
- };