@dxos/plugin-sheet 0.8.3-staging.0fa589b → 0.8.4-main.03d5cd7b56

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 (402) hide show
  1. package/dist/lib/neutral/RangeList-HYB5S6KQ.mjs +46 -0
  2. package/dist/lib/neutral/RangeList-HYB5S6KQ.mjs.map +7 -0
  3. package/dist/lib/neutral/SheetContainer-ZOVKGHLT.mjs +33 -0
  4. package/dist/lib/neutral/SheetContainer-ZOVKGHLT.mjs.map +7 -0
  5. package/dist/lib/neutral/SheetPlugin.mjs +48 -0
  6. package/dist/lib/neutral/SheetPlugin.mjs.map +7 -0
  7. package/dist/lib/neutral/SheetPlugin.node.mjs +27 -0
  8. package/dist/lib/neutral/SheetPlugin.node.mjs.map +7 -0
  9. package/dist/lib/neutral/anchor-sort-TTCKGX7V.mjs +22 -0
  10. package/dist/lib/neutral/anchor-sort-TTCKGX7V.mjs.map +7 -0
  11. package/dist/lib/neutral/capabilities/index.mjs +25 -0
  12. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  13. package/dist/lib/neutral/chunk-4GWJDLTH.mjs +83 -0
  14. package/dist/lib/neutral/chunk-4GWJDLTH.mjs.map +7 -0
  15. package/dist/lib/{browser/chunk-FJRLDX7Z.mjs → neutral/chunk-4SBAIU6F.mjs} +17 -17
  16. package/dist/lib/neutral/chunk-4SBAIU6F.mjs.map +7 -0
  17. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  18. package/dist/lib/neutral/chunk-KC2SMDNF.mjs +373 -0
  19. package/dist/lib/neutral/chunk-KC2SMDNF.mjs.map +7 -0
  20. package/dist/lib/neutral/chunk-YFHTB6MX.mjs +8 -0
  21. package/dist/lib/neutral/chunk-YFHTB6MX.mjs.map +7 -0
  22. package/dist/lib/neutral/chunk-ZWOQCLH7.mjs +21 -0
  23. package/dist/lib/neutral/chunk-ZWOQCLH7.mjs.map +7 -0
  24. package/dist/lib/neutral/comment-config-ZBWNCJMZ.mjs +20 -0
  25. package/dist/lib/neutral/comment-config-ZBWNCJMZ.mjs.map +7 -0
  26. package/dist/lib/neutral/components/index.mjs +1551 -0
  27. package/dist/lib/neutral/components/index.mjs.map +7 -0
  28. package/dist/lib/neutral/compute-graph-registry-IEQBF5XZ.mjs +20 -0
  29. package/dist/lib/neutral/compute-graph-registry-IEQBF5XZ.mjs.map +7 -0
  30. package/dist/lib/neutral/containers/index.mjs +11 -0
  31. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  32. package/dist/lib/neutral/create-object-OKQAXJCW.mjs +27 -0
  33. package/dist/lib/neutral/create-object-OKQAXJCW.mjs.map +7 -0
  34. package/dist/lib/neutral/drop-axis-G6UOXG54.mjs +23 -0
  35. package/dist/lib/neutral/drop-axis-G6UOXG54.mjs.map +7 -0
  36. package/dist/lib/{node-esm/types → neutral}/index.mjs +16 -13
  37. package/dist/lib/neutral/insert-axis-ZFFNG22G.mjs +16 -0
  38. package/dist/lib/neutral/insert-axis-ZFFNG22G.mjs.map +7 -0
  39. package/dist/lib/neutral/markdown-I2AKJYPF.mjs +28 -0
  40. package/dist/lib/neutral/markdown-I2AKJYPF.mjs.map +7 -0
  41. package/dist/lib/neutral/meta.json +1 -0
  42. package/dist/lib/neutral/meta.mjs +8 -0
  43. package/dist/lib/neutral/meta.mjs.map +7 -0
  44. package/dist/lib/neutral/operation-handler-TB6LFV2H.mjs +13 -0
  45. package/dist/lib/neutral/operation-handler-TB6LFV2H.mjs.map +7 -0
  46. package/dist/lib/neutral/operations/index.mjs +8 -0
  47. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  48. package/dist/lib/neutral/plugin.mjs +16 -0
  49. package/dist/lib/neutral/plugin.mjs.map +7 -0
  50. package/dist/lib/neutral/react-surface-ID4JCAFR.mjs +44 -0
  51. package/dist/lib/neutral/react-surface-ID4JCAFR.mjs.map +7 -0
  52. package/dist/lib/neutral/restore-axis-44DM6N54.mjs +16 -0
  53. package/dist/lib/neutral/restore-axis-44DM6N54.mjs.map +7 -0
  54. package/dist/lib/neutral/scroll-to-anchor-WHX3HJC7.mjs +33 -0
  55. package/dist/lib/neutral/scroll-to-anchor-WHX3HJC7.mjs.map +7 -0
  56. package/dist/lib/neutral/state-HPA27MX2.mjs +29 -0
  57. package/dist/lib/neutral/state-HPA27MX2.mjs.map +7 -0
  58. package/dist/lib/neutral/testing/index.mjs +103 -0
  59. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  60. package/dist/lib/neutral/translations.mjs +55 -0
  61. package/dist/lib/neutral/translations.mjs.map +7 -0
  62. package/dist/lib/{browser → neutral}/types/index.mjs +8 -12
  63. package/dist/lib/neutral/types/index.mjs.map +7 -0
  64. package/dist/lib/neutral/undo-mappings-3FQLSTCZ.mjs +31 -0
  65. package/dist/lib/neutral/undo-mappings-3FQLSTCZ.mjs.map +7 -0
  66. package/dist/types/src/SheetPlugin.d.ts +3 -1
  67. package/dist/types/src/SheetPlugin.d.ts.map +1 -1
  68. package/dist/types/src/SheetPlugin.node.d.ts +4 -0
  69. package/dist/types/src/SheetPlugin.node.d.ts.map +1 -0
  70. package/dist/types/src/SheetPlugin.test.d.ts +2 -0
  71. package/dist/types/src/SheetPlugin.test.d.ts.map +1 -0
  72. package/dist/types/src/capabilities/anchor-sort.d.ts +4 -4
  73. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
  74. package/dist/types/src/capabilities/comment-config.d.ts +12 -0
  75. package/dist/types/src/capabilities/comment-config.d.ts.map +1 -0
  76. package/dist/types/src/capabilities/compute-graph-registry.d.ts +3 -2
  77. package/dist/types/src/capabilities/compute-graph-registry.d.ts.map +1 -1
  78. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  79. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  80. package/dist/types/src/capabilities/index.d.ts +23 -11
  81. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  82. package/dist/types/src/capabilities/markdown.d.ts +3 -4
  83. package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
  84. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  85. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  86. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  87. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  88. package/dist/types/src/capabilities/state.d.ts +6 -0
  89. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  90. package/dist/types/src/capabilities/undo-mappings.d.ts +5 -0
  91. package/dist/types/src/capabilities/undo-mappings.d.ts.map +1 -0
  92. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts +1 -1
  93. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts.map +1 -1
  94. package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts +9 -4
  95. package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts.map +1 -1
  96. package/dist/types/src/components/Sheet/Sheet.d.ts +17 -0
  97. package/dist/types/src/components/Sheet/Sheet.d.ts.map +1 -0
  98. package/dist/types/src/components/Sheet/index.d.ts +2 -0
  99. package/dist/types/src/components/Sheet/index.d.ts.map +1 -0
  100. package/dist/types/src/components/SheetContent/SheetCellEditor.stories.d.ts +16 -0
  101. package/dist/types/src/components/SheetContent/SheetCellEditor.stories.d.ts.map +1 -0
  102. package/dist/types/src/components/SheetContent/SheetContent.d.ts +6 -0
  103. package/dist/types/src/components/SheetContent/SheetContent.d.ts.map +1 -0
  104. package/dist/types/src/components/SheetContent/SheetContent.stories.d.ts +93 -0
  105. package/dist/types/src/components/SheetContent/SheetContent.stories.d.ts.map +1 -0
  106. package/dist/types/src/components/SheetContent/index.d.ts +2 -0
  107. package/dist/types/src/components/SheetContent/index.d.ts.map +1 -0
  108. package/dist/types/src/components/{GridSheet → SheetContent}/util.d.ts +2 -2
  109. package/dist/types/src/components/SheetContent/util.d.ts.map +1 -0
  110. package/dist/types/src/components/{SheetContext/SheetContext.d.ts → SheetRoot/SheetRoot.d.ts} +9 -7
  111. package/dist/types/src/components/SheetRoot/SheetRoot.d.ts.map +1 -0
  112. package/dist/types/src/components/SheetRoot/index.d.ts +2 -0
  113. package/dist/types/src/components/SheetRoot/index.d.ts.map +1 -0
  114. package/dist/types/src/components/SheetStatusbar/SheetStatusbar.d.ts +6 -0
  115. package/dist/types/src/components/SheetStatusbar/SheetStatusbar.d.ts.map +1 -0
  116. package/dist/types/src/components/SheetStatusbar/index.d.ts +2 -0
  117. package/dist/types/src/components/SheetStatusbar/index.d.ts.map +1 -0
  118. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts +5 -6
  119. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -1
  120. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +92 -4
  121. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -1
  122. package/dist/types/src/components/SheetToolbar/align.d.ts +14 -21
  123. package/dist/types/src/components/SheetToolbar/align.d.ts.map +1 -1
  124. package/dist/types/src/components/SheetToolbar/style.d.ts +14 -20
  125. package/dist/types/src/components/SheetToolbar/style.d.ts.map +1 -1
  126. package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts +14 -1
  127. package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts.map +1 -1
  128. package/dist/types/src/components/index.d.ts +1 -4
  129. package/dist/types/src/components/index.d.ts.map +1 -1
  130. package/dist/types/src/containers/RangeList/RangeList.d.ts +7 -0
  131. package/dist/types/src/containers/RangeList/RangeList.d.ts.map +1 -0
  132. package/dist/types/src/containers/RangeList/index.d.ts +2 -0
  133. package/dist/types/src/containers/RangeList/index.d.ts.map +1 -0
  134. package/dist/types/src/containers/SheetContainer/SheetContainer.d.ts +12 -0
  135. package/dist/types/src/containers/SheetContainer/SheetContainer.d.ts.map +1 -0
  136. package/dist/types/src/containers/SheetContainer/SheetContainer.stories.d.ts +92 -0
  137. package/dist/types/src/containers/SheetContainer/SheetContainer.stories.d.ts.map +1 -0
  138. package/dist/types/src/containers/SheetContainer/index.d.ts +2 -0
  139. package/dist/types/src/containers/SheetContainer/index.d.ts.map +1 -0
  140. package/dist/types/src/containers/index.d.ts +4 -0
  141. package/dist/types/src/containers/index.d.ts.map +1 -0
  142. package/dist/types/src/extensions/compute.d.ts +2 -2
  143. package/dist/types/src/extensions/compute.d.ts.map +1 -1
  144. package/dist/types/src/extensions/compute.stories.d.ts +10 -13
  145. package/dist/types/src/extensions/compute.stories.d.ts.map +1 -1
  146. package/dist/types/src/extensions/editor/index.d.ts +1 -1
  147. package/dist/types/src/extensions/editor/index.d.ts.map +1 -1
  148. package/dist/types/src/extensions/editor/{extension.d.ts → sheet-extension.d.ts} +2 -2
  149. package/dist/types/src/extensions/editor/sheet-extension.d.ts.map +1 -0
  150. package/dist/types/src/extensions/editor/sheet-extension.test.d.ts +2 -0
  151. package/dist/types/src/extensions/editor/sheet-extension.test.d.ts.map +1 -0
  152. package/dist/types/src/index.d.ts +2 -2
  153. package/dist/types/src/index.d.ts.map +1 -1
  154. package/dist/types/src/integrations/thread-ranges.d.ts +1 -3
  155. package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
  156. package/dist/types/src/meta.d.ts +2 -3
  157. package/dist/types/src/meta.d.ts.map +1 -1
  158. package/dist/types/src/model/sheet-model.d.ts +7 -7
  159. package/dist/types/src/model/sheet-model.d.ts.map +1 -1
  160. package/dist/types/src/model/testing.d.ts +2 -2
  161. package/dist/types/src/model/testing.d.ts.map +1 -1
  162. package/dist/types/src/model/useSheetModel.d.ts +3 -3
  163. package/dist/types/src/model/useSheetModel.d.ts.map +1 -1
  164. package/dist/types/src/operations/drop-axis.d.ts +5 -0
  165. package/dist/types/src/operations/drop-axis.d.ts.map +1 -0
  166. package/dist/types/src/operations/index.d.ts +3 -0
  167. package/dist/types/src/operations/index.d.ts.map +1 -0
  168. package/dist/types/src/operations/insert-axis.d.ts +5 -0
  169. package/dist/types/src/operations/insert-axis.d.ts.map +1 -0
  170. package/dist/types/src/operations/restore-axis.d.ts +5 -0
  171. package/dist/types/src/operations/restore-axis.d.ts.map +1 -0
  172. package/dist/types/src/operations/scroll-to-anchor.d.ts +5 -0
  173. package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -0
  174. package/dist/types/src/playwright/playwright.config.d.ts +3 -0
  175. package/dist/types/src/playwright/playwright.config.d.ts.map +1 -0
  176. package/dist/types/src/{testing/playwright → playwright}/sheet-manager.d.ts +1 -1
  177. package/dist/types/src/playwright/sheet-manager.d.ts.map +1 -0
  178. package/dist/types/src/playwright/sheet.spec.d.ts.map +1 -0
  179. package/dist/types/src/plugin.d.ts +4 -0
  180. package/dist/types/src/plugin.d.ts.map +1 -0
  181. package/dist/types/src/serializer.d.ts +3 -3
  182. package/dist/types/src/serializer.d.ts.map +1 -1
  183. package/dist/types/src/testing/data.d.ts +2 -2
  184. package/dist/types/src/testing/data.d.ts.map +1 -1
  185. package/dist/types/src/testing/testing.d.ts +28 -4
  186. package/dist/types/src/testing/testing.d.ts.map +1 -1
  187. package/dist/types/src/translations.d.ts +73 -92
  188. package/dist/types/src/translations.d.ts.map +1 -1
  189. package/dist/types/src/types/Sheet.d.ts +76 -0
  190. package/dist/types/src/types/Sheet.d.ts.map +1 -0
  191. package/dist/types/src/types/SheetCapabilities.d.ts +16 -0
  192. package/dist/types/src/types/SheetCapabilities.d.ts.map +1 -0
  193. package/dist/types/src/types/SheetOperation.d.ts +45 -0
  194. package/dist/types/src/types/SheetOperation.d.ts.map +1 -0
  195. package/dist/types/src/types/index.d.ts +3 -1
  196. package/dist/types/src/types/index.d.ts.map +1 -1
  197. package/dist/types/src/types/sheet-range-types.d.ts +2 -2
  198. package/dist/types/src/types/sheet-range-types.d.ts.map +1 -1
  199. package/dist/types/src/types/types.d.ts +3 -78
  200. package/dist/types/src/types/types.d.ts.map +1 -1
  201. package/dist/types/src/types/util.d.ts +11 -11
  202. package/dist/types/src/types/util.d.ts.map +1 -1
  203. package/dist/types/tsconfig.tsbuildinfo +1 -1
  204. package/package.json +134 -82
  205. package/src/SheetPlugin.node.ts +21 -0
  206. package/src/SheetPlugin.test.ts +30 -0
  207. package/src/SheetPlugin.tsx +46 -68
  208. package/src/capabilities/anchor-sort.ts +20 -15
  209. package/src/capabilities/comment-config.ts +24 -0
  210. package/src/capabilities/compute-graph-registry.ts +21 -20
  211. package/src/capabilities/create-object.ts +30 -0
  212. package/src/capabilities/index.ts +16 -8
  213. package/src/capabilities/markdown.ts +22 -13
  214. package/src/capabilities/operation-handler.ts +16 -0
  215. package/src/capabilities/react-surface.tsx +38 -28
  216. package/src/capabilities/state.ts +29 -0
  217. package/src/capabilities/undo-mappings.ts +30 -0
  218. package/src/components/ComputeGraph/ComputeGraphContextProvider.tsx +2 -2
  219. package/src/components/ComputeGraph/compute-graph.stories.tsx +33 -29
  220. package/src/components/Sheet/Sheet.tsx +20 -0
  221. package/src/components/Sheet/index.ts +5 -0
  222. package/src/components/SheetContent/SheetCellEditor.stories.tsx +95 -0
  223. package/src/components/SheetContent/SheetContent.stories.tsx +60 -0
  224. package/src/components/{GridSheet/GridSheet.tsx → SheetContent/SheetContent.tsx} +100 -69
  225. package/src/components/{RangeList → SheetContent}/index.ts +1 -1
  226. package/src/components/{GridSheet → SheetContent}/util.ts +23 -16
  227. package/src/components/{SheetContext/SheetContext.tsx → SheetRoot/SheetRoot.tsx} +55 -42
  228. package/src/components/{GridSheet → SheetRoot}/index.ts +1 -1
  229. package/src/components/{FunctionEditor/FunctionEditor.tsx → SheetStatusbar/SheetStatusbar.tsx} +19 -7
  230. package/src/components/{FunctionEditor → SheetStatusbar}/index.ts +1 -1
  231. package/src/components/SheetToolbar/SheetToolbar.stories.tsx +20 -14
  232. package/src/components/SheetToolbar/SheetToolbar.tsx +62 -56
  233. package/src/components/SheetToolbar/align.ts +50 -24
  234. package/src/components/SheetToolbar/style.ts +52 -22
  235. package/src/components/SheetToolbar/useToolbarState.ts +22 -5
  236. package/src/components/index.ts +1 -7
  237. package/src/containers/RangeList/RangeList.tsx +65 -0
  238. package/src/containers/RangeList/index.ts +5 -0
  239. package/src/containers/SheetContainer/SheetContainer.stories.tsx +110 -0
  240. package/src/containers/SheetContainer/SheetContainer.tsx +57 -0
  241. package/src/containers/SheetContainer/index.ts +5 -0
  242. package/src/containers/index.ts +8 -0
  243. package/src/extensions/compute.stories.tsx +50 -36
  244. package/src/extensions/compute.ts +4 -5
  245. package/src/extensions/editor/index.ts +1 -1
  246. package/src/extensions/editor/{extension.test.ts → sheet-extension.test.ts} +2 -2
  247. package/src/extensions/editor/{extension.ts → sheet-extension.ts} +18 -15
  248. package/src/index.ts +2 -2
  249. package/src/integrations/thread-ranges.ts +21 -62
  250. package/src/meta.ts +9 -7
  251. package/src/model/sheet-model.test.ts +7 -6
  252. package/src/model/sheet-model.ts +87 -55
  253. package/src/model/testing.ts +5 -5
  254. package/src/model/useSheetModel.ts +4 -3
  255. package/src/operations/drop-axis.ts +26 -0
  256. package/src/operations/index.ts +12 -0
  257. package/src/operations/insert-axis.ts +19 -0
  258. package/src/operations/restore-axis.ts +19 -0
  259. package/src/operations/scroll-to-anchor.ts +30 -0
  260. package/src/playwright/playwright.config.ts +17 -0
  261. package/src/{testing/playwright → playwright}/sheet-manager.ts +1 -1
  262. package/src/{testing/playwright → playwright}/sheet.spec.ts +5 -4
  263. package/src/plugin.ts +11 -0
  264. package/src/sanity.test.ts +6 -4
  265. package/src/serializer.ts +5 -5
  266. package/src/testing/data.ts +2 -2
  267. package/src/testing/testing.tsx +13 -7
  268. package/src/translations.ts +46 -38
  269. package/src/types/Sheet.ts +103 -0
  270. package/src/types/SheetCapabilities.ts +26 -0
  271. package/src/types/SheetOperation.ts +75 -0
  272. package/src/types/index.ts +4 -1
  273. package/src/types/sheet-range-types.ts +5 -5
  274. package/src/types/types.ts +6 -51
  275. package/src/types/util.ts +15 -42
  276. package/dist/lib/browser/SheetContainer-BDZXBB5U.mjs +0 -351
  277. package/dist/lib/browser/SheetContainer-BDZXBB5U.mjs.map +0 -7
  278. package/dist/lib/browser/anchor-sort-NYYZLRAA.mjs +0 -24
  279. package/dist/lib/browser/anchor-sort-NYYZLRAA.mjs.map +0 -7
  280. package/dist/lib/browser/chunk-5TA43LO4.mjs +0 -847
  281. package/dist/lib/browser/chunk-5TA43LO4.mjs.map +0 -7
  282. package/dist/lib/browser/chunk-D3G4UGEK.mjs +0 -18
  283. package/dist/lib/browser/chunk-D3G4UGEK.mjs.map +0 -7
  284. package/dist/lib/browser/chunk-FJRLDX7Z.mjs.map +0 -7
  285. package/dist/lib/browser/chunk-I7FZ4TWJ.mjs +0 -892
  286. package/dist/lib/browser/chunk-I7FZ4TWJ.mjs.map +0 -7
  287. package/dist/lib/browser/chunk-IR42IS3F.mjs +0 -15
  288. package/dist/lib/browser/chunk-IR42IS3F.mjs.map +0 -7
  289. package/dist/lib/browser/compute-graph-registry-IXGGJJBU.mjs +0 -30
  290. package/dist/lib/browser/compute-graph-registry-IXGGJJBU.mjs.map +0 -7
  291. package/dist/lib/browser/index.mjs +0 -154
  292. package/dist/lib/browser/index.mjs.map +0 -7
  293. package/dist/lib/browser/intent-resolver-IBBI6B74.mjs +0 -56
  294. package/dist/lib/browser/intent-resolver-IBBI6B74.mjs.map +0 -7
  295. package/dist/lib/browser/markdown-T4TUP4BF.mjs +0 -26
  296. package/dist/lib/browser/markdown-T4TUP4BF.mjs.map +0 -7
  297. package/dist/lib/browser/meta.json +0 -1
  298. package/dist/lib/browser/react-surface-UI46P43F.mjs +0 -53
  299. package/dist/lib/browser/react-surface-UI46P43F.mjs.map +0 -7
  300. package/dist/lib/node/SheetContainer-VWPM3HYJ.cjs +0 -351
  301. package/dist/lib/node/SheetContainer-VWPM3HYJ.cjs.map +0 -7
  302. package/dist/lib/node/anchor-sort-A7NABMJM.cjs +0 -39
  303. package/dist/lib/node/anchor-sort-A7NABMJM.cjs.map +0 -7
  304. package/dist/lib/node/chunk-FIM6EZ6M.cjs +0 -256
  305. package/dist/lib/node/chunk-FIM6EZ6M.cjs.map +0 -7
  306. package/dist/lib/node/chunk-JSIDCZHB.cjs +0 -41
  307. package/dist/lib/node/chunk-JSIDCZHB.cjs.map +0 -7
  308. package/dist/lib/node/chunk-LJWWS53Z.cjs +0 -34
  309. package/dist/lib/node/chunk-LJWWS53Z.cjs.map +0 -7
  310. package/dist/lib/node/chunk-N7FSEUIN.cjs +0 -927
  311. package/dist/lib/node/chunk-N7FSEUIN.cjs.map +0 -7
  312. package/dist/lib/node/chunk-ST3WA73J.cjs +0 -855
  313. package/dist/lib/node/chunk-ST3WA73J.cjs.map +0 -7
  314. package/dist/lib/node/compute-graph-registry-ARLDHPFW.cjs +0 -56
  315. package/dist/lib/node/compute-graph-registry-ARLDHPFW.cjs.map +0 -7
  316. package/dist/lib/node/index.cjs +0 -173
  317. package/dist/lib/node/index.cjs.map +0 -7
  318. package/dist/lib/node/intent-resolver-2657YDOU.cjs +0 -69
  319. package/dist/lib/node/intent-resolver-2657YDOU.cjs.map +0 -7
  320. package/dist/lib/node/markdown-DBPOAYI7.cjs +0 -40
  321. package/dist/lib/node/markdown-DBPOAYI7.cjs.map +0 -7
  322. package/dist/lib/node/meta.json +0 -1
  323. package/dist/lib/node/react-surface-XQEIRKWU.cjs +0 -71
  324. package/dist/lib/node/react-surface-XQEIRKWU.cjs.map +0 -7
  325. package/dist/lib/node/types/index.cjs +0 -84
  326. package/dist/lib/node/types/index.cjs.map +0 -7
  327. package/dist/lib/node-esm/SheetContainer-V632Q4HA.mjs +0 -352
  328. package/dist/lib/node-esm/SheetContainer-V632Q4HA.mjs.map +0 -7
  329. package/dist/lib/node-esm/anchor-sort-JTNZOE67.mjs +0 -25
  330. package/dist/lib/node-esm/anchor-sort-JTNZOE67.mjs.map +0 -7
  331. package/dist/lib/node-esm/chunk-C4IKYVTV.mjs +0 -893
  332. package/dist/lib/node-esm/chunk-C4IKYVTV.mjs.map +0 -7
  333. package/dist/lib/node-esm/chunk-IQ76YE6M.mjs +0 -16
  334. package/dist/lib/node-esm/chunk-IQ76YE6M.mjs.map +0 -7
  335. package/dist/lib/node-esm/chunk-NMCVJWDT.mjs +0 -236
  336. package/dist/lib/node-esm/chunk-NMCVJWDT.mjs.map +0 -7
  337. package/dist/lib/node-esm/chunk-SOC52B67.mjs +0 -848
  338. package/dist/lib/node-esm/chunk-SOC52B67.mjs.map +0 -7
  339. package/dist/lib/node-esm/chunk-Y6ND5HWX.mjs +0 -20
  340. package/dist/lib/node-esm/chunk-Y6ND5HWX.mjs.map +0 -7
  341. package/dist/lib/node-esm/compute-graph-registry-7PDWXMHF.mjs +0 -31
  342. package/dist/lib/node-esm/compute-graph-registry-7PDWXMHF.mjs.map +0 -7
  343. package/dist/lib/node-esm/index.mjs +0 -155
  344. package/dist/lib/node-esm/index.mjs.map +0 -7
  345. package/dist/lib/node-esm/intent-resolver-M2HNR7PJ.mjs +0 -57
  346. package/dist/lib/node-esm/intent-resolver-M2HNR7PJ.mjs.map +0 -7
  347. package/dist/lib/node-esm/markdown-WWUJ3E5F.mjs +0 -27
  348. package/dist/lib/node-esm/markdown-WWUJ3E5F.mjs.map +0 -7
  349. package/dist/lib/node-esm/meta.json +0 -1
  350. package/dist/lib/node-esm/react-surface-OLXO2MVB.mjs +0 -54
  351. package/dist/lib/node-esm/react-surface-OLXO2MVB.mjs.map +0 -7
  352. package/dist/types/src/capabilities/capabilities.d.ts +0 -5
  353. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  354. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  355. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  356. package/dist/types/src/components/FunctionEditor/FunctionEditor.d.ts +0 -3
  357. package/dist/types/src/components/FunctionEditor/FunctionEditor.d.ts.map +0 -1
  358. package/dist/types/src/components/FunctionEditor/index.d.ts +0 -2
  359. package/dist/types/src/components/FunctionEditor/index.d.ts.map +0 -1
  360. package/dist/types/src/components/GridSheet/GridSheet.d.ts +0 -3
  361. package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +0 -1
  362. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts +0 -7
  363. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +0 -1
  364. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts +0 -25
  365. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts.map +0 -1
  366. package/dist/types/src/components/GridSheet/index.d.ts +0 -2
  367. package/dist/types/src/components/GridSheet/index.d.ts.map +0 -1
  368. package/dist/types/src/components/GridSheet/util.d.ts.map +0 -1
  369. package/dist/types/src/components/RangeList/RangeList.d.ts +0 -7
  370. package/dist/types/src/components/RangeList/RangeList.d.ts.map +0 -1
  371. package/dist/types/src/components/RangeList/index.d.ts +0 -2
  372. package/dist/types/src/components/RangeList/index.d.ts.map +0 -1
  373. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts +0 -11
  374. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +0 -1
  375. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts +0 -8
  376. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +0 -1
  377. package/dist/types/src/components/SheetContainer/index.d.ts +0 -3
  378. package/dist/types/src/components/SheetContainer/index.d.ts.map +0 -1
  379. package/dist/types/src/components/SheetContext/SheetContext.d.ts.map +0 -1
  380. package/dist/types/src/components/SheetContext/index.d.ts +0 -2
  381. package/dist/types/src/components/SheetContext/index.d.ts.map +0 -1
  382. package/dist/types/src/extensions/editor/extension.d.ts.map +0 -1
  383. package/dist/types/src/extensions/editor/extension.test.d.ts +0 -2
  384. package/dist/types/src/extensions/editor/extension.test.d.ts.map +0 -1
  385. package/dist/types/src/testing/playwright/sheet-manager.d.ts.map +0 -1
  386. package/dist/types/src/testing/playwright/sheet.spec.d.ts.map +0 -1
  387. package/dist/types/src/types/schema.d.ts +0 -37
  388. package/dist/types/src/types/schema.d.ts.map +0 -1
  389. package/src/capabilities/capabilities.ts +0 -14
  390. package/src/capabilities/intent-resolver.ts +0 -38
  391. package/src/components/GridSheet/GridSheet.stories.tsx +0 -53
  392. package/src/components/GridSheet/SheetCellEditor.stories.tsx +0 -93
  393. package/src/components/RangeList/RangeList.tsx +0 -60
  394. package/src/components/SheetContainer/SheetContainer.stories.tsx +0 -89
  395. package/src/components/SheetContainer/SheetContainer.tsx +0 -36
  396. package/src/components/SheetContainer/index.ts +0 -7
  397. package/src/components/SheetContext/index.ts +0 -5
  398. package/src/testing/playwright/playwright.config.cts +0 -18
  399. package/src/types/schema.ts +0 -60
  400. /package/dist/lib/{browser/types/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  401. /package/dist/lib/{node-esm/types → neutral}/index.mjs.map +0 -0
  402. /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/SheetContainer/SheetContainer.tsx", "../../../src/components/FunctionEditor/FunctionEditor.tsx", "../../../src/components/SheetToolbar/SheetToolbar.tsx", "../../../src/components/SheetToolbar/align.ts", "../../../src/components/SheetToolbar/style.ts", "../../../src/components/SheetToolbar/useToolbarState.ts", "../../../src/components/SheetContainer/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { fullyQualifiedId, type Space } from '@dxos/react-client/echo';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { type SheetType } from '../../types';\nimport { useComputeGraph } from '../ComputeGraph';\nimport { FunctionEditor } from '../FunctionEditor';\nimport { GridSheet } from '../GridSheet';\nimport { SheetProvider } from '../SheetContext';\nimport { SheetToolbar } from '../SheetToolbar';\n\nexport type SheetContainerProps = {\n space: Space;\n sheet: SheetType;\n role?: string;\n ignoreAttention?: boolean;\n};\n\nexport const SheetContainer = ({ space, sheet, role, ignoreAttention }: SheetContainerProps) => {\n const graph = useComputeGraph(space);\n\n return graph ? (\n <SheetProvider sheet={sheet} graph={graph} ignoreAttention={ignoreAttention}>\n <StackItem.Content toolbar statusbar {...(role === 'section' && { classNames: 'aspect-video' })}>\n <SheetToolbar id={fullyQualifiedId(sheet)} />\n <GridSheet />\n <FunctionEditor />\n </StackItem.Content>\n </SheetProvider>\n ) : null;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { addressToA1Notation, isFormula, rangeToA1Notation } from '@dxos/compute';\nimport { Icon } from '@dxos/react-ui';\n\nimport { mapFormulaIndicesToRefs } from '../../types';\nimport { useSheetContext } from '../SheetContext';\n\nexport const FunctionEditor = () => {\n const { model, cursor, range } = useSheetContext();\n\n let value;\n let formula = false;\n if (cursor) {\n value = model.getCellValue(cursor);\n if (isFormula(value)) {\n value = model.graph.mapFunctionBindingFromId(mapFormulaIndicesToRefs(model.sheet, value));\n formula = true;\n } else if (value != null) {\n value = String(value);\n }\n }\n\n return (\n <div className='flex shrink-0 justify-between items-center px-4 py-1 text-sm bg-toolbarSurface border-bs !border-subduedSeparator'>\n <div className='flex gap-4 items-center'>\n <div className='flex w-16 items-center font-mono'>\n {(range && rangeToA1Notation(range)) || (cursor && addressToA1Notation(cursor))}\n </div>\n <div className='flex gap-2 items-center'>\n <Icon icon='ph--function--regular' classNames={['text-greenText', formula ? 'visible' : 'invisible']} />\n <span className='font-mono'>{value}</span>\n </div>\n </div>\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport React, { type PropsWithChildren, useMemo } from 'react';\n\nimport { useAppGraph } from '@dxos/app-framework';\nimport { type CompleteCellRange } from '@dxos/compute';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport {\n type ActionGraphEdges,\n type ActionGraphNodes,\n type ActionGraphProps,\n createGapSeparator,\n MenuProvider,\n rxFromSignal,\n ToolbarMenu,\n useMenuActions,\n} from '@dxos/react-ui-menu';\n\nimport { createAlign, useAlignState } from './align';\nimport { createStyle, useStyleState } from './style';\nimport { type ToolbarState, useToolbarState } from './useToolbarState';\nimport { type SheetModel } from '../../model';\nimport { useSheetContext } from '../SheetContext';\n\n//\n// Root\n//\n\nexport type SheetToolbarProps = ThemedClassName<PropsWithChildren<{ id: string }>>;\n\nconst createToolbarActions = (\n model: SheetModel,\n state: ToolbarState,\n cursorFallbackRange?: CompleteCellRange,\n customActions?: Rx.Rx<ActionGraphProps>,\n) => {\n return Rx.make((get) => {\n const align = get(rxFromSignal(() => createAlign(model, state, cursorFallbackRange)));\n const style = get(rxFromSignal(() => createStyle(model, state, cursorFallbackRange)));\n const gap = createGapSeparator();\n const nodes: ActionGraphNodes = [...align.nodes, ...style.nodes, ...gap.nodes];\n const edges: ActionGraphEdges = [...align.edges, ...style.edges, ...gap.edges];\n if (customActions) {\n const custom = get(customActions);\n nodes.push(...custom.nodes);\n edges.push(...custom.edges);\n }\n return {\n nodes,\n edges,\n };\n });\n};\n\nexport const SheetToolbar = ({ id, classNames }: SheetToolbarProps) => {\n const { model, cursorFallbackRange } = useSheetContext();\n const state = useToolbarState({});\n useAlignState(state);\n useStyleState(state);\n\n const { graph } = useAppGraph();\n const customActions = useMemo(() => {\n return Rx.make((get) => {\n const actions = get(graph.actions(id));\n const nodes = actions.filter((action) => action.properties.disposition === 'toolbar');\n return { nodes, edges: nodes.map((node) => ({ source: 'root', target: node.id })) };\n });\n }, [graph]);\n\n const actionsCreator = useMemo(\n () => createToolbarActions(model, state, cursorFallbackRange, customActions),\n [model, state, cursorFallbackRange, customActions],\n );\n const menu = useMenuActions(actionsCreator);\n\n return (\n <MenuProvider {...menu} attendableId={id}>\n <ToolbarMenu classNames={classNames} />\n </MenuProvider>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect } from 'react';\n\nimport { type CompleteCellRange, inRange } from '@dxos/compute';\nimport { createMenuAction, createMenuItemGroup, type ToolbarMenuActionGroupProperties } from '@dxos/react-ui-menu';\n\nimport { type ToolbarState } from './useToolbarState';\nimport { SHEET_PLUGIN } from '../../meta';\nimport { type SheetModel } from '../../model';\nimport { type AlignKey, alignKey, type AlignValue, rangeFromIndex, rangeToIndex } from '../../types';\nimport { useSheetContext } from '../SheetContext';\n\nexport type AlignAction = { key: AlignKey; value: AlignValue };\n\nexport type AlignState = { [alignKey]: AlignValue | undefined };\n\nconst aligns: Record<AlignValue, string> = {\n start: 'ph--text-align-left--regular',\n center: 'ph--text-align-center--regular',\n end: 'ph--text-align-right--regular',\n};\n\nexport const useAlignState = (state: Partial<AlignState>) => {\n const { cursor, model } = useSheetContext();\n useEffect(() => {\n // TODO(thure): Can this O(n) call be memoized?\n state[alignKey] = (\n cursor\n ? model.sheet.ranges?.findLast(\n ({ range, key }) => key === alignKey && inRange(rangeFromIndex(model.sheet, range), cursor),\n )?.value\n : undefined\n ) as AlignValue | undefined;\n }, [cursor, model.sheet]);\n};\n\nconst createAlignGroupAction = (value?: AlignValue) =>\n createMenuItemGroup('align', {\n label: ['align label', { ns: SHEET_PLUGIN }],\n variant: 'toggleGroup',\n selectCardinality: 'single',\n value: `${alignKey}--${value}`,\n } as ToolbarMenuActionGroupProperties);\n\nconst createAlignActions = (model: SheetModel, state: ToolbarState, cursorFallbackRange?: CompleteCellRange) =>\n Object.entries(aligns).map(([alignValue, icon]) => {\n return createMenuAction<AlignAction>(\n `${alignKey}--${alignValue}`,\n () => {\n if (!cursorFallbackRange) {\n return;\n }\n const index =\n model.sheet.ranges?.findIndex(\n (range) =>\n range.key === alignKey && inRange(rangeFromIndex(model.sheet, range.range), cursorFallbackRange.from),\n ) ?? -1;\n const nextRangeEntity = {\n range: rangeToIndex(model.sheet, cursorFallbackRange),\n key: alignKey,\n value: alignValue as AlignValue,\n };\n if (index < 0) {\n model.sheet.ranges?.push(nextRangeEntity);\n state[alignKey] = nextRangeEntity.value;\n } else if (model.sheet.ranges![index].value === nextRangeEntity.value) {\n model.sheet.ranges?.splice(index, 1);\n state[alignKey] = undefined;\n } else {\n model.sheet.ranges?.splice(index, 1, nextRangeEntity);\n state[alignKey] = nextRangeEntity.value;\n }\n },\n {\n key: alignKey,\n value: alignValue as AlignValue,\n checked: state[alignKey] === alignValue,\n label: [`range value ${alignValue} label`, { ns: SHEET_PLUGIN }],\n icon,\n testId: `grid.toolbar.${alignKey}.${alignValue}`,\n },\n );\n });\n\nexport const createAlign = (model: SheetModel, state: ToolbarState, cursorFallbackRange?: CompleteCellRange) => {\n const alignGroup = createAlignGroupAction(state[alignKey]);\n const alignActions = createAlignActions(model, state, cursorFallbackRange);\n return {\n nodes: [alignGroup, ...alignActions],\n edges: [\n { source: 'root', target: 'align' },\n ...alignActions.map(({ id }) => ({ source: alignGroup.id, target: id })),\n ],\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect } from 'react';\n\nimport { type CompleteCellRange, inRange } from '@dxos/compute';\nimport { createMenuAction, createMenuItemGroup, type ToolbarMenuActionGroupProperties } from '@dxos/react-ui-menu';\n\nimport { SHEET_PLUGIN } from '../../meta';\nimport { type SheetModel } from '../../model';\nimport { rangeFromIndex, rangeToIndex, type StyleKey, type StyleValue } from '../../types';\nimport { useSheetContext } from '../SheetContext';\n\nexport type StyleState = Partial<Record<StyleValue, boolean>>;\n\nexport type StyleAction = { key: StyleKey; value: StyleValue };\n\nconst styles: Record<StyleValue, string> = {\n highlight: 'ph--highlighter--regular',\n softwrap: 'ph--paragraph--regular',\n};\n\nexport const useStyleState = (state: StyleState) => {\n const { cursorFallbackRange, model } = useSheetContext();\n\n useEffect(() => {\n state.highlight = false;\n state.softwrap = false;\n if (cursorFallbackRange && model.sheet.ranges) {\n model.sheet.ranges\n .filter(\n ({ range, key }) => key === 'style' && inRange(rangeFromIndex(model.sheet, range), cursorFallbackRange.from),\n )\n .forEach(({ value }) => {\n state[value as StyleValue] = true;\n });\n }\n }, [cursorFallbackRange, model.sheet]);\n};\n\nconst createStyleGroup = (state: StyleState) => {\n return createMenuItemGroup('style', {\n variant: 'toggleGroup',\n selectCardinality: 'multiple',\n value: Object.keys(styles)\n .filter((key) => !!state[key as StyleValue])\n .map((styleValue) => `style--${styleValue}`),\n } as ToolbarMenuActionGroupProperties);\n};\n\nconst createStyleActions = (model: SheetModel, state: StyleState, cursorFallbackRange?: CompleteCellRange) =>\n Object.entries(styles).map(([styleValue, icon]) => {\n return createMenuAction<StyleAction>(\n `style--${styleValue}`,\n () => {\n if (!cursorFallbackRange) {\n return;\n }\n const index =\n model.sheet.ranges?.findIndex(\n (range) =>\n range.key === 'style' && inRange(rangeFromIndex(model.sheet, range.range), cursorFallbackRange.from),\n ) ?? -1;\n const nextRangeEntity = {\n range: rangeToIndex(model.sheet, cursorFallbackRange),\n key: 'style',\n value: styleValue as StyleValue,\n };\n if (\n model.sheet.ranges\n .filter(\n ({ range, key: rangeKey }) =>\n rangeKey === 'style' && inRange(rangeFromIndex(model.sheet, range), cursorFallbackRange.from),\n )\n .some(({ value: rangeValue }) => rangeValue === styleValue)\n ) {\n // this value should be unset\n if (index >= 0) {\n model.sheet.ranges?.splice(index, 1);\n }\n state[nextRangeEntity.value] = false;\n } else {\n model.sheet.ranges?.push(nextRangeEntity);\n state[nextRangeEntity.value] = true;\n }\n },\n {\n key: 'style',\n value: styleValue as StyleValue,\n icon,\n label: [`range value ${styleValue} label`, { ns: SHEET_PLUGIN }],\n checked: !!state[styleValue as StyleValue],\n },\n );\n });\n\nexport const createStyle = (model: SheetModel, state: StyleState, cursorFallbackRange?: CompleteCellRange) => {\n const styleGroupAction = createStyleGroup(state);\n const styleActions = createStyleActions(model, state, cursorFallbackRange);\n return {\n nodes: [styleGroupAction, ...styleActions],\n edges: [\n { source: 'root', target: 'style' },\n ...styleActions.map(({ id }) => ({ source: styleGroupAction.id, target: id })),\n ],\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { live } from '@dxos/live-object';\n\nimport { type AlignState } from './align';\nimport { type StyleState } from './style';\n\nexport type ToolbarState = Partial<StyleState & AlignState>;\n\nexport const useToolbarState = (initialState: ToolbarState = {}) => {\n return useMemo(() => live<ToolbarState>(initialState), []);\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { SheetContainer } from './SheetContainer';\n\nexport default SheetContainer;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mBAAkB;AAElB,kBAA6C;AAC7C,4BAA0B;;ACH1B,IAAAA,gBAAkB;AAElB,qBAAkE;AAClE,sBAAqB;;ACHrB,sBAAmB;AACnB,IAAAA,gBAAuD;AAEvD,2BAA4B;AAG5B,2BASO;;ACfP,IAAAA,gBAA0B;AAE1B,IAAAC,kBAAgD;AAChD,IAAAC,wBAA6F;ACH7F,IAAAF,gBAA0B;AAE1B,IAAAC,kBAAgD;AAChD,IAAAC,wBAA6F;ACH7F,IAAAF,gBAAwB;AAExB,yBAAqB;AJMd,IAAMG,iBAAiB,MAAA;;;AAC5B,UAAM,EAAEC,OAAOC,QAAQC,MAAK,QAAKC,uCAAAA;AAEjC,QAAIC;AACJ,QAAIC,UAAU;AACd,QAAIJ,QAAQ;AACVG,cAAQJ,MAAMM,aAAaL,MAAAA;AAC3B,cAAIM,0BAAUH,KAAAA,GAAQ;AACpBA,gBAAQJ,MAAMQ,MAAMC,6BAAyBC,+CAAwBV,MAAMW,OAAOP,KAAAA,CAAAA;AAClFC,kBAAU;MACZ,WAAWD,SAAS,MAAM;AACxBA,gBAAQQ,OAAOR,KAAAA;MACjB;IACF;AAEA,WACE,8BAAAS,QAAA,cAACC,OAAAA;MAAIC,WAAU;OACb,8BAAAF,QAAA,cAACC,OAAAA;MAAIC,WAAU;OACb,8BAAAF,QAAA,cAACC,OAAAA;MAAIC,WAAU;OACXb,aAASc,kCAAkBd,KAAAA,KAAYD,cAAUgB,oCAAoBhB,MAAAA,CAAAA,GAEzE,8BAAAY,QAAA,cAACC,OAAAA;MAAIC,WAAU;OACb,8BAAAF,QAAA,cAACK,sBAAAA;MAAKC,MAAK;MAAwBC,YAAY;QAAC;QAAkBf,UAAU,YAAY;;QACxF,8BAAAQ,QAAA,cAACQ,QAAAA;MAAKN,WAAU;OAAaX,KAAAA,CAAAA,CAAAA,CAAAA;;;;AAKvC;AErBA,IAAMkB,SAAqC;EACzCC,OAAO;EACPC,QAAQ;EACRC,KAAK;AACP;AAEO,IAAMC,gBAAgB,CAACC,UAAAA;;;AAC5B,UAAM,EAAE1B,QAAQD,MAAK,QAAKG,uCAAAA;AAC1ByB,iCAAU,MAAA;AAERD,YAAME,8BAAAA,IACJ5B,SACID,MAAMW,MAAMmB,QAAQC,SAClB,CAAC,EAAE7B,OAAO8B,IAAG,MAAOA,QAAQH,sCAAYI,6BAAQC,sCAAelC,MAAMW,OAAOT,KAAAA,GAAQD,MAAAA,CAAAA,GACnFG,QACH+B;IAER,GAAG;MAAClC;MAAQD,MAAMW;KAAM;;;;AAC1B;AAEA,IAAMyB,yBAAyB,CAAChC,cAC9BiC,2CAAoB,SAAS;EAC3BC,OAAO;IAAC;IAAe;MAAEC,IAAIC;IAAa;;EAC1CC,SAAS;EACTC,mBAAmB;EACnBtC,OAAO,GAAGyB,8BAAAA,KAAazB,KAAAA;AACzB,CAAA;AAEF,IAAMuC,qBAAqB,CAAC3C,OAAmB2B,OAAqBiB,wBAClEC,OAAOC,QAAQxB,MAAAA,EAAQyB,IAAI,CAAC,CAACC,YAAY7B,IAAAA,MAAK;AAC5C,aAAO8B,wCACL,GAAGpB,8BAAAA,KAAamB,UAAAA,IAChB,MAAA;AACE,QAAI,CAACJ,qBAAqB;AACxB;IACF;AACA,UAAMM,QACJlD,MAAMW,MAAMmB,QAAQqB,UAClB,CAACjD,UACCA,MAAM8B,QAAQH,sCAAYI,6BAAQC,sCAAelC,MAAMW,OAAOT,MAAMA,KAAK,GAAG0C,oBAAoBQ,IAAI,CAAA,KACnG;AACP,UAAMC,kBAAkB;MACtBnD,WAAOoD,oCAAatD,MAAMW,OAAOiC,mBAAAA;MACjCZ,KAAKH;MACLzB,OAAO4C;IACT;AACA,QAAIE,QAAQ,GAAG;AACblD,YAAMW,MAAMmB,QAAQyB,KAAKF,eAAAA;AACzB1B,YAAME,8BAAAA,IAAYwB,gBAAgBjD;IACpC,WAAWJ,MAAMW,MAAMmB,OAAQoB,KAAAA,EAAO9C,UAAUiD,gBAAgBjD,OAAO;AACrEJ,YAAMW,MAAMmB,QAAQ0B,OAAON,OAAO,CAAA;AAClCvB,YAAME,8BAAAA,IAAYM;IACpB,OAAO;AACLnC,YAAMW,MAAMmB,QAAQ0B,OAAON,OAAO,GAAGG,eAAAA;AACrC1B,YAAME,8BAAAA,IAAYwB,gBAAgBjD;IACpC;EACF,GACA;IACE4B,KAAKH;IACLzB,OAAO4C;IACPS,SAAS9B,MAAME,8BAAAA,MAAcmB;IAC7BV,OAAO;MAAC,eAAeU,UAAAA;MAAoB;QAAET,IAAIC;MAAa;;IAC9DrB;IACAuC,QAAQ,gBAAgB7B,8BAAAA,IAAYmB,UAAAA;EACtC,CAAA;AAEJ,CAAA;AAEK,IAAMW,cAAc,CAAC3D,OAAmB2B,OAAqBiB,wBAAAA;AAClE,QAAMgB,aAAaxB,uBAAuBT,MAAME,8BAAAA,CAAS;AACzD,QAAMgC,eAAelB,mBAAmB3C,OAAO2B,OAAOiB,mBAAAA;AACtD,SAAO;IACLkB,OAAO;MAACF;SAAeC;;IACvBE,OAAO;MACL;QAAEC,QAAQ;QAAQC,QAAQ;MAAQ;SAC/BJ,aAAad,IAAI,CAAC,EAAEmB,GAAE,OAAQ;QAAEF,QAAQJ,WAAWM;QAAID,QAAQC;MAAG,EAAA;;EAEzE;AACF;AC/EA,IAAMC,SAAqC;EACzCC,WAAW;EACXC,UAAU;AACZ;AAEO,IAAMC,gBAAgB,CAAC3C,UAAAA;AAC5B,QAAM,EAAEiB,qBAAqB5C,MAAK,QAAKG,uCAAAA;AAEvCyB,oBAAAA,WAAU,MAAA;AACRD,UAAMyC,YAAY;AAClBzC,UAAM0C,WAAW;AACjB,QAAIzB,uBAAuB5C,MAAMW,MAAMmB,QAAQ;AAC7C9B,YAAMW,MAAMmB,OACTyC,OACC,CAAC,EAAErE,OAAO8B,IAAG,MAAOA,QAAQ,eAAWC,gBAAAA,aAAQC,sCAAelC,MAAMW,OAAOT,KAAAA,GAAQ0C,oBAAoBQ,IAAI,CAAA,EAE5GoB,QAAQ,CAAC,EAAEpE,MAAK,MAAE;AACjBuB,cAAMvB,KAAAA,IAAuB;MAC/B,CAAA;IACJ;EACF,GAAG;IAACwC;IAAqB5C,MAAMW;GAAM;AACvC;AAEA,IAAM8D,mBAAmB,CAAC9C,UAAAA;AACxB,aAAOU,sBAAAA,qBAAoB,SAAS;IAClCI,SAAS;IACTC,mBAAmB;IACnBtC,OAAOyC,OAAO6B,KAAKP,MAAAA,EAChBI,OAAO,CAACvC,QAAQ,CAAC,CAACL,MAAMK,GAAAA,CAAkB,EAC1Ce,IAAI,CAAC4B,eAAe,UAAUA,UAAAA,EAAY;EAC/C,CAAA;AACF;AAEA,IAAMC,qBAAqB,CAAC5E,OAAmB2B,OAAmBiB,wBAChEC,OAAOC,QAAQqB,MAAAA,EAAQpB,IAAI,CAAC,CAAC4B,YAAYxD,IAAAA,MAAK;AAC5C,aAAO8B,sBAAAA,kBACL,UAAU0B,UAAAA,IACV,MAAA;AACE,QAAI,CAAC/B,qBAAqB;AACxB;IACF;AACA,UAAMM,QACJlD,MAAMW,MAAMmB,QAAQqB,UAClB,CAACjD,UACCA,MAAM8B,QAAQ,eAAWC,gBAAAA,aAAQC,sCAAelC,MAAMW,OAAOT,MAAMA,KAAK,GAAG0C,oBAAoBQ,IAAI,CAAA,KAClG;AACP,UAAMC,kBAAkB;MACtBnD,WAAOoD,oCAAatD,MAAMW,OAAOiC,mBAAAA;MACjCZ,KAAK;MACL5B,OAAOuE;IACT;AACA,QACE3E,MAAMW,MAAMmB,OACTyC,OACC,CAAC,EAAErE,OAAO8B,KAAK6C,SAAQ,MACrBA,aAAa,eAAW5C,gBAAAA,aAAQC,sCAAelC,MAAMW,OAAOT,KAAAA,GAAQ0C,oBAAoBQ,IAAI,CAAA,EAE/F0B,KAAK,CAAC,EAAE1E,OAAO2E,WAAU,MAAOA,eAAeJ,UAAAA,GAClD;AAEA,UAAIzB,SAAS,GAAG;AACdlD,cAAMW,MAAMmB,QAAQ0B,OAAON,OAAO,CAAA;MACpC;AACAvB,YAAM0B,gBAAgBjD,KAAK,IAAI;IACjC,OAAO;AACLJ,YAAMW,MAAMmB,QAAQyB,KAAKF,eAAAA;AACzB1B,YAAM0B,gBAAgBjD,KAAK,IAAI;IACjC;EACF,GACA;IACE4B,KAAK;IACL5B,OAAOuE;IACPxD;IACAmB,OAAO;MAAC,eAAeqC,UAAAA;MAAoB;QAAEpC,IAAIC;MAAa;;IAC9DiB,SAAS,CAAC,CAAC9B,MAAMgD,UAAAA;EACnB,CAAA;AAEJ,CAAA;AAEK,IAAMK,cAAc,CAAChF,OAAmB2B,OAAmBiB,wBAAAA;AAChE,QAAMqC,mBAAmBR,iBAAiB9C,KAAAA;AAC1C,QAAMuD,eAAeN,mBAAmB5E,OAAO2B,OAAOiB,mBAAAA;AACtD,SAAO;IACLkB,OAAO;MAACmB;SAAqBC;;IAC7BnB,OAAO;MACL;QAAEC,QAAQ;QAAQC,QAAQ;MAAQ;SAC/BiB,aAAanC,IAAI,CAAC,EAAEmB,GAAE,OAAQ;QAAEF,QAAQiB,iBAAiBf;QAAID,QAAQC;MAAG,EAAA;;EAE/E;AACF;AC9FO,IAAMiB,kBAAkB,CAACC,eAA6B,CAAC,MAAC;AAC7D,aAAOC,uBAAQ,UAAMC,yBAAmBF,YAAAA,GAAe,CAAA,CAAE;AAC3D;AHkBA,IAAMG,uBAAuB,CAC3BvF,OACA2B,OACAiB,qBACA4C,kBAAAA;AAEA,SAAOC,mBAAGC,KAAK,CAACC,QAAAA;AACd,UAAMC,QAAQD,QAAIE,mCAAa,MAAMlC,YAAY3D,OAAO2B,OAAOiB,mBAAAA,CAAAA,CAAAA;AAC/D,UAAMkD,QAAQH,QAAIE,mCAAa,MAAMb,YAAYhF,OAAO2B,OAAOiB,mBAAAA,CAAAA,CAAAA;AAC/D,UAAMmD,UAAMC,yCAAAA;AACZ,UAAMlC,QAA0B;SAAI8B,MAAM9B;SAAUgC,MAAMhC;SAAUiC,IAAIjC;;AACxE,UAAMC,QAA0B;SAAI6B,MAAM7B;SAAU+B,MAAM/B;SAAUgC,IAAIhC;;AACxE,QAAIyB,eAAe;AACjB,YAAMS,SAASN,IAAIH,aAAAA;AACnB1B,YAAMP,KAAI,GAAI0C,OAAOnC,KAAK;AAC1BC,YAAMR,KAAI,GAAI0C,OAAOlC,KAAK;IAC5B;AACA,WAAO;MACLD;MACAC;IACF;EACF,CAAA;AACF;AAEO,IAAMmC,eAAe,CAAC,EAAEhC,IAAI9C,WAAU,MAAqB;;;AAChE,UAAM,EAAEpB,OAAO4C,oBAAmB,QAAKzC,uCAAAA;AACvC,UAAMwB,QAAQwD,gBAAgB,CAAC,CAAA;AAC/BzD,kBAAcC,KAAAA;AACd2C,kBAAc3C,KAAAA;AAEd,UAAM,EAAEnB,MAAK,QAAK2F,kCAAAA;AAClB,UAAMX,oBAAgBH,cAAAA,SAAQ,MAAA;AAC5B,aAAOI,mBAAGC,KAAK,CAACC,QAAAA;AACd,cAAMS,UAAUT,IAAInF,MAAM4F,QAAQlC,EAAAA,CAAAA;AAClC,cAAMJ,QAAQsC,QAAQ7B,OAAO,CAAC8B,WAAWA,OAAOC,WAAWC,gBAAgB,SAAA;AAC3E,eAAO;UAAEzC;UAAOC,OAAOD,MAAMf,IAAI,CAACyD,UAAU;YAAExC,QAAQ;YAAQC,QAAQuC,KAAKtC;UAAG,EAAA;QAAI;MACpF,CAAA;IACF,GAAG;MAAC1D;KAAM;AAEV,UAAMiG,qBAAiBpB,cAAAA,SACrB,MAAME,qBAAqBvF,OAAO2B,OAAOiB,qBAAqB4C,aAAAA,GAC9D;MAACxF;MAAO2B;MAAOiB;MAAqB4C;KAAc;AAEpD,UAAMkB,WAAOC,qCAAeF,cAAAA;AAE5B,WACE5F,8BAAAA,QAAA,cAAC+F,mCAAAA;MAAc,GAAGF;MAAMG,cAAc3C;OACpCrD,8BAAAA,QAAA,cAACiG,kCAAAA;MAAY1F;;;;;AAGnB;AF5DO,IAAM2F,iBAAiB,CAAC,EAAEC,OAAOrG,OAAOsG,MAAMC,gBAAe,MAAuB;;;AACzF,UAAM1G,YAAQ2G,uCAAgBH,KAAAA;AAE9B,WAAOxG,QACLK,6BAAAA,QAAA,cAACuG,qCAAAA;MAAczG;MAAcH;MAAc0G;OACzCrG,6BAAAA,QAAA,cAACwG,gCAAUC,SAAO;MAACC,SAAAA;MAAQC,WAAAA;MAAW,GAAIP,SAAS,aAAa;QAAE7F,YAAY;MAAe;OAC3FP,6BAAAA,QAAA,cAACqF,cAAAA;MAAahC,QAAIuD,8BAAiB9G,KAAAA;QACnCE,6BAAAA,QAAA,cAAC6G,iCAAAA,IAAAA,GACD7G,6BAAAA,QAAA,cAACd,gBAAAA,IAAAA,CAAAA,CAAAA,IAGH;;;;AACN;AM7BA,IAAA,yBAAegH;",
6
- "names": ["import_react", "import_compute", "import_react_ui_menu", "FunctionEditor", "model", "cursor", "range", "useSheetContext", "value", "formula", "getCellValue", "isFormula", "graph", "mapFunctionBindingFromId", "mapFormulaIndicesToRefs", "sheet", "String", "React", "div", "className", "rangeToA1Notation", "addressToA1Notation", "Icon", "icon", "classNames", "span", "aligns", "start", "center", "end", "useAlignState", "state", "useEffect", "alignKey", "ranges", "findLast", "key", "inRange", "rangeFromIndex", "undefined", "createAlignGroupAction", "createMenuItemGroup", "label", "ns", "SHEET_PLUGIN", "variant", "selectCardinality", "createAlignActions", "cursorFallbackRange", "Object", "entries", "map", "alignValue", "createMenuAction", "index", "findIndex", "from", "nextRangeEntity", "rangeToIndex", "push", "splice", "checked", "testId", "createAlign", "alignGroup", "alignActions", "nodes", "edges", "source", "target", "id", "styles", "highlight", "softwrap", "useStyleState", "filter", "forEach", "createStyleGroup", "keys", "styleValue", "createStyleActions", "rangeKey", "some", "rangeValue", "createStyle", "styleGroupAction", "styleActions", "useToolbarState", "initialState", "useMemo", "live", "createToolbarActions", "customActions", "Rx", "make", "get", "align", "rxFromSignal", "style", "gap", "createGapSeparator", "custom", "SheetToolbar", "useAppGraph", "actions", "action", "properties", "disposition", "node", "actionsCreator", "menu", "useMenuActions", "MenuProvider", "attendableId", "ToolbarMenu", "SheetContainer", "space", "role", "ignoreAttention", "useComputeGraph", "SheetProvider", "StackItem", "Content", "toolbar", "statusbar", "fullyQualifiedId", "GridSheet"]
7
- }
@@ -1,39 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var anchor_sort_A7NABMJM_exports = {};
20
- __export(anchor_sort_A7NABMJM_exports, {
21
- default: () => anchor_sort_default
22
- });
23
- module.exports = __toCommonJS(anchor_sort_A7NABMJM_exports);
24
- var import_chunk_N7FSEUIN = require("./chunk-N7FSEUIN.cjs");
25
- var import_chunk_JSIDCZHB = require("./chunk-JSIDCZHB.cjs");
26
- var import_app_framework = require("@dxos/app-framework");
27
- var import_echo = require("@dxos/echo");
28
- var import_echo2 = require("@dxos/react-client/echo");
29
- var anchor_sort_default = () => (0, import_app_framework.contributes)(import_app_framework.Capabilities.AnchorSort, {
30
- key: import_echo.Type.getTypename(import_chunk_N7FSEUIN.SheetType),
31
- sort: (anchorA, anchorB) => {
32
- const sheet = (0, import_echo2.getTarget)(anchorA);
33
- if (sheet !== (0, import_echo2.getTarget)(anchorB)) {
34
- return 0;
35
- }
36
- return !anchorA.anchor || !anchorB.anchor ? 0 : (0, import_chunk_N7FSEUIN.compareIndexPositions)(sheet, anchorA.anchor, anchorB.anchor);
37
- }
38
- });
39
- //# sourceMappingURL=anchor-sort-A7NABMJM.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/anchor-sort.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { Type } from '@dxos/echo';\nimport { getTarget } from '@dxos/react-client/echo';\n\nimport { compareIndexPositions, SheetType } from '../types';\n\nexport default () =>\n contributes(Capabilities.AnchorSort, {\n key: Type.getTypename(SheetType)!,\n sort: (anchorA, anchorB) => {\n const sheet = getTarget(anchorA) as SheetType;\n if (sheet !== getTarget(anchorB)) {\n return 0;\n }\n\n return !anchorA.anchor || !anchorB.anchor ? 0 : compareIndexPositions(sheet, anchorA.anchor, anchorB.anchor);\n },\n });\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAA0C;AAC1C,kBAAqB;AACrB,IAAAA,eAA0B;AAI1B,IAAA,sBAAe,UACbC,kCAAYC,kCAAaC,YAAY;EACnCC,KAAKC,iBAAKC,YAAYC,+BAAAA;EACtBC,MAAM,CAACC,SAASC,YAAAA;AACd,UAAMC,YAAQC,wBAAUH,OAAAA;AACxB,QAAIE,cAAUC,wBAAUF,OAAAA,GAAU;AAChC,aAAO;IACT;AAEA,WAAO,CAACD,QAAQI,UAAU,CAACH,QAAQG,SAAS,QAAIC,6CAAsBH,OAAOF,QAAQI,QAAQH,QAAQG,MAAM;EAC7G;AACF,CAAA;",
6
- "names": ["import_echo", "contributes", "Capabilities", "AnchorSort", "key", "Type", "getTypename", "SheetType", "sort", "anchorA", "anchorB", "sheet", "getTarget", "anchor", "compareIndexPositions"]
7
- }
@@ -1,256 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var chunk_FIM6EZ6M_exports = {};
20
- __export(chunk_FIM6EZ6M_exports, {
21
- computeGraphFacet: () => computeGraphFacet,
22
- rangeExtension: () => rangeExtension,
23
- sheetExtension: () => sheetExtension
24
- });
25
- module.exports = __toCommonJS(chunk_FIM6EZ6M_exports);
26
- var import_language = require("@codemirror/language");
27
- var import_state = require("@codemirror/state");
28
- var import_view = require("@codemirror/view");
29
- var import_async = require("@dxos/async");
30
- var import_compute = require("@dxos/compute");
31
- var import_invariant = require("@dxos/invariant");
32
- var import_react_ui_editor = require("@dxos/react-ui-editor");
33
- var import_autocomplete = require("@codemirror/autocomplete");
34
- var import_language2 = require("@codemirror/language");
35
- var import_view2 = require("@codemirror/view");
36
- var import_highlight = require("@lezer/highlight");
37
- var import_codemirror_lang_spreadsheet = require("codemirror-lang-spreadsheet");
38
- var import_compute2 = require("@dxos/compute");
39
- var import_react_ui_editor2 = require("@dxos/react-ui-editor");
40
- var import_react_ui_theme = require("@dxos/react-ui-theme");
41
- var updateAllDecorations = import_state.StateEffect.define();
42
- var computeGraphFacet = (0, import_react_ui_editor.singleValueFacet)();
43
- var highlightStyles = import_language2.HighlightStyle.define([
44
- // Function.
45
- {
46
- tag: import_highlight.tags.name,
47
- class: "text-accentText"
48
- },
49
- // Range.
50
- {
51
- tag: import_highlight.tags.tagName,
52
- class: "text-pinkText"
53
- },
54
- // Values.
55
- {
56
- tag: import_highlight.tags.number,
57
- class: "text-tealText"
58
- },
59
- {
60
- tag: import_highlight.tags.bool,
61
- class: "text-tealText"
62
- },
63
- {
64
- tag: import_highlight.tags.string,
65
- class: "text-tealText"
66
- },
67
- // Error.
68
- {
69
- tag: import_highlight.tags.invalid,
70
- class: "text-unAccent"
71
- }
72
- ]);
73
- var languageFacet = (0, import_react_ui_editor2.singleValueFacet)();
74
- var sheetExtension = ({ debug, functions = [] }) => {
75
- const { extension, language } = (0, import_codemirror_lang_spreadsheet.spreadsheet)({
76
- idiom: "en-US",
77
- decimalSeparator: "."
78
- });
79
- const createCompletion = (name) => {
80
- const { section = "Custom", description, syntax } = functions.find((value) => value.name === name) ?? {};
81
- return {
82
- section,
83
- label: name,
84
- info: () => {
85
- if (!description && !syntax) {
86
- return null;
87
- }
88
- const root = document.createElement("div");
89
- root.className = "flex flex-col gap-2 text-sm";
90
- const title = document.createElement("h2");
91
- title.innerText = name;
92
- title.className = "text-lg font-mono text-accentText";
93
- root.appendChild(title);
94
- if (description) {
95
- const info = document.createElement("p");
96
- info.innerText = description;
97
- info.className = "text-subdued";
98
- root.appendChild(info);
99
- }
100
- if (syntax) {
101
- const detail = document.createElement("pre");
102
- detail.innerText = syntax;
103
- detail.className = "whitespace-pre-wrap text-greenText";
104
- root.appendChild(detail);
105
- }
106
- return root;
107
- },
108
- apply: (view, completion, from, to) => {
109
- const insertParens = to === view.state.doc.toString().length;
110
- view.dispatch(view.state.update({
111
- changes: {
112
- from,
113
- to,
114
- insert: completion.label + (insertParens ? "()" : "")
115
- },
116
- selection: {
117
- anchor: from + completion.label.length + 1
118
- }
119
- }));
120
- }
121
- };
122
- };
123
- return [
124
- extension,
125
- languageFacet.of(language),
126
- language.data.of({
127
- autocomplete: (context) => {
128
- if (context.state.doc.toString()[0] !== "=") {
129
- return null;
130
- }
131
- const match = context.matchBefore(/\w*/);
132
- if (!match || match.from === match.to) {
133
- return null;
134
- }
135
- const text = match.text.toUpperCase();
136
- if (!context.explicit && match.text.length < 2) {
137
- return null;
138
- }
139
- return {
140
- from: match.from,
141
- options: functions?.filter(({ name }) => name.startsWith(text)).map(({ name }) => createCompletion(name)) ?? []
142
- };
143
- }
144
- }),
145
- (0, import_language2.syntaxHighlighting)(highlightStyles),
146
- (0, import_autocomplete.autocompletion)({
147
- aboveCursor: false,
148
- defaultKeymap: true,
149
- activateOnTyping: true,
150
- closeOnBlur: !debug,
151
- icons: false,
152
- tooltipClass: () => (0, import_react_ui_theme.mx)("!-left-[1px] !top-[33px] !-m-0 border !border-t-0 [&>ul]:!min-w-[198px]", "[&>ul>li[aria-selected]]:!bg-accentSurface", "border-separator")
153
- }),
154
- import_view2.keymap.of([
155
- {
156
- key: "Tab",
157
- run: (view) => {
158
- return (0, import_autocomplete.completionStatus)(view.state) === "active" ? (0, import_autocomplete.acceptCompletion)(view) : (0, import_autocomplete.startCompletion)(view);
159
- }
160
- }
161
- ])
162
- ];
163
- };
164
- var rangeExtension = ({ onInit, onStateChange }) => {
165
- let view;
166
- let activeRange;
167
- const notifier = {
168
- setRange: (range) => {
169
- if (activeRange) {
170
- view.dispatch(view.state.update({
171
- changes: {
172
- ...activeRange,
173
- insert: range.toString()
174
- },
175
- selection: {
176
- anchor: activeRange.from + range.length
177
- }
178
- }));
179
- }
180
- view.focus();
181
- }
182
- };
183
- return import_view2.ViewPlugin.fromClass(class {
184
- constructor(_view) {
185
- view = _view;
186
- onInit?.(notifier);
187
- }
188
- update(view2) {
189
- const { anchor } = view2.state.selection.ranges[0];
190
- activeRange = void 0;
191
- const language = view2.state.facet(languageFacet);
192
- const { topNode } = language.parser.parse(view2.state.doc.toString());
193
- visitTree(topNode, ({ type, from, to }) => {
194
- if (from <= anchor && to >= anchor) {
195
- switch (type.name) {
196
- case "Function":
197
- activeRange = {
198
- from: to,
199
- to
200
- };
201
- break;
202
- case "CloseParen":
203
- activeRange = {
204
- from,
205
- to: from
206
- };
207
- break;
208
- case "RangeToken":
209
- case "CellToken":
210
- activeRange = {
211
- from,
212
- to
213
- };
214
- return true;
215
- }
216
- }
217
- return false;
218
- });
219
- if (!activeRange && view2.state.doc.toString()[0] === "=") {
220
- const str = view2.state.doc.sliceString(1);
221
- if (import_compute2.RANGE_NOTATION.test(str)) {
222
- activeRange = {
223
- from: 1,
224
- to: str.length + 1
225
- };
226
- } else {
227
- activeRange = {
228
- from: str.length + 1,
229
- to: str.length + 1
230
- };
231
- }
232
- }
233
- onStateChange?.({
234
- activeRange: activeRange ? view2.state.doc.sliceString(activeRange.from, activeRange.to) : void 0
235
- });
236
- }
237
- });
238
- };
239
- var visitTree = (node, callback) => {
240
- if (callback(node)) {
241
- return true;
242
- }
243
- for (let child = node.firstChild; child !== null; child = child.nextSibling) {
244
- if (visitTree(child, callback)) {
245
- return true;
246
- }
247
- }
248
- return false;
249
- };
250
- // Annotate the CommonJS export names for ESM import in node:
251
- 0 && (module.exports = {
252
- computeGraphFacet,
253
- rangeExtension,
254
- sheetExtension
255
- });
256
- //# sourceMappingURL=chunk-FIM6EZ6M.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/extensions/compute.ts", "../../../src/extensions/editor/extension.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { syntaxTree } from '@codemirror/language';\nimport {\n type EditorState,\n type Extension,\n type RangeSet,\n RangeSetBuilder,\n StateEffect,\n StateField,\n type Transaction,\n} from '@codemirror/state';\nimport { Decoration, EditorView, ViewPlugin, WidgetType } from '@codemirror/view';\n\nimport { type CleanupFn, debounce } from '@dxos/async';\nimport {\n createSheetName,\n type CellAddress,\n type CellScalarValue,\n type ComputeGraph,\n type ComputeNode,\n} from '@dxos/compute';\nimport { invariant } from '@dxos/invariant';\nimport { documentId, singleValueFacet } from '@dxos/react-ui-editor';\n\nconst LANGUAGE_TAG = 'dx';\n\n// TODO(burdon): Create marker just for our decorator?\nconst updateAllDecorations = StateEffect.define<void>();\n\nexport const computeGraphFacet = singleValueFacet<ComputeGraph>();\n\nexport type ComputeOptions = {};\n\nexport const compute = (options: ComputeOptions = {}): Extension => {\n let computeNode: ComputeNode | undefined;\n\n const update = (state: EditorState, current?: RangeSet<Decoration>) => {\n const builder = new RangeSetBuilder<Decoration>();\n if (computeNode) {\n computeNode.clear();\n syntaxTree(state).iterate({\n enter: (node) => {\n switch (node.name) {\n case 'FencedCode': {\n const cursor = state.selection.main.head;\n if (state.readOnly || cursor < node.from || cursor > node.to) {\n const info = node.node.getChild('CodeInfo');\n if (info) {\n const type = state.sliceDoc(info.from, info.to);\n const text = node.node.getChild('CodeText');\n if (type === LANGUAGE_TAG && text) {\n const formula = state.sliceDoc(text.from, text.to);\n\n const iter = current?.iter(node.node.from);\n if (iter?.value && iter?.value.spec.formula === formula) {\n // Add existing widget.\n builder.add(node.from, node.to, iter.value);\n } else {\n // TODO(burdon): Create ordered list of cells on each decoration run.\n const cell: CellAddress = { col: node.node.from, row: 0 };\n invariant(computeNode);\n // NOTE: This triggers re-render (below).\n computeNode.setValue(cell, formula);\n const value = computeNode.getValue(cell);\n builder.add(\n node.from,\n node.to,\n Decoration.replace({\n widget: new ComputeWidget(formula, value),\n formula,\n }),\n );\n }\n }\n }\n }\n\n break;\n }\n }\n },\n });\n }\n\n return builder.finish();\n };\n\n return [\n ViewPlugin.fromClass(\n class {\n // Graph subscription.\n private _subscription?: CleanupFn;\n constructor(view: EditorView) {\n const id = view.state.facet(documentId);\n const computeGraph = view.state.facet(computeGraphFacet);\n if (id && computeGraph) {\n queueMicrotask(async () => {\n computeNode = computeGraph.getOrCreateNode(createSheetName({ type: '', id }));\n await computeNode.open();\n\n // Trigger re-render if values updated.\n // TODO(burdon): Trigger only if formula value updated (currently triggered during render).\n this._subscription = computeNode.update.on(\n debounce(({ type, ...rest }) => {\n if (type === 'valuesUpdated') {\n view.dispatch({\n effects: updateAllDecorations.of(),\n });\n }\n }, 250),\n );\n });\n }\n }\n\n destroy() {\n this._subscription?.();\n void computeNode?.close();\n computeNode = undefined;\n }\n },\n ),\n\n StateField.define<RangeSet<Decoration>>({\n create: (state) => update(state),\n update: (rangeSet: RangeSet<Decoration>, tr: Transaction) => update(tr.state, rangeSet),\n provide: (field) => EditorView.decorations.from(field),\n }),\n ];\n};\n\n// TODO(burdon): Click to edit.\nclass ComputeWidget extends WidgetType {\n constructor(\n private readonly formula: string,\n private readonly value: CellScalarValue,\n ) {\n super();\n }\n\n override toDOM(_view: EditorView): HTMLDivElement {\n const div = document.createElement('div');\n div.setAttribute('title', this.formula);\n div.innerText = String(this.value);\n return div;\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n type Completion,\n type CompletionContext,\n type CompletionResult,\n acceptCompletion,\n autocompletion,\n completionStatus,\n startCompletion,\n} from '@codemirror/autocomplete';\nimport { HighlightStyle, type Language, syntaxHighlighting } from '@codemirror/language';\nimport { type Extension } from '@codemirror/state';\nimport { type EditorView, ViewPlugin, type ViewUpdate, keymap } from '@codemirror/view';\nimport { type SyntaxNode } from '@lezer/common';\nimport { tags } from '@lezer/highlight';\nimport { spreadsheet } from 'codemirror-lang-spreadsheet';\n\nimport { type FunctionDefinition } from '@dxos/compute';\nimport { RANGE_NOTATION } from '@dxos/compute';\nimport { singleValueFacet } from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\n\n/**\n * https://codemirror.net/examples/styling\n * https://lezer.codemirror.net/docs/ref/#highlight\n * https://github.com/luizzappa/codemirror-lang-spreadsheet/blob/main/src/index.ts#L28 (mapping)\n */\n// TODO(burdon): Define light/dark.\nconst highlightStyles = HighlightStyle.define([\n // Function.\n {\n tag: tags.name,\n class: 'text-accentText',\n },\n // Range.\n {\n tag: tags.tagName,\n class: 'text-pinkText',\n },\n // Values.\n {\n tag: tags.number,\n class: 'text-tealText',\n },\n {\n tag: tags.bool,\n class: 'text-tealText',\n },\n {\n tag: tags.string,\n class: 'text-tealText',\n },\n // Error.\n {\n tag: tags.invalid,\n class: 'text-unAccent',\n },\n]);\n\nconst languageFacet = singleValueFacet<Language>();\n\nexport type SheetExtensionOptions = {\n debug?: boolean;\n functions?: FunctionDefinition[];\n};\n\n/**\n * Spreadsheet formula extension and parser.\n * https://github.com/luizzappa/codemirror-lang-spreadsheet\n * https://github.com/luizzappa/codemirror-app-spreadsheet/blob/master/src/editor.ts\n * https://github.com/codemirror/lang-example\n * https://hyperformula.handsontable.com/guide/key-concepts.html#grammar\n */\nexport const sheetExtension = ({ debug, functions = [] }: SheetExtensionOptions): Extension => {\n const { extension, language } = spreadsheet({ idiom: 'en-US', decimalSeparator: '.' });\n\n const createCompletion = (name: string) => {\n const { section = 'Custom', description, syntax } = functions.find((value) => value.name === name) ?? {};\n\n return {\n section,\n label: name,\n info: () => {\n if (!description && !syntax) {\n return null;\n }\n\n // TODO(burdon): Standardize color styles.\n const root = document.createElement('div');\n root.className = 'flex flex-col gap-2 text-sm';\n\n const title = document.createElement('h2');\n title.innerText = name;\n title.className = 'text-lg font-mono text-accentText';\n root.appendChild(title);\n\n if (description) {\n const info = document.createElement('p');\n info.innerText = description;\n info.className = 'text-subdued';\n root.appendChild(info);\n }\n\n if (syntax) {\n const detail = document.createElement('pre');\n detail.innerText = syntax;\n detail.className = 'whitespace-pre-wrap text-greenText';\n root.appendChild(detail);\n }\n\n return root;\n },\n apply: (view, completion, from, to) => {\n const insertParens = to === view.state.doc.toString().length;\n view.dispatch(\n view.state.update({\n changes: {\n from,\n to,\n insert: completion.label + (insertParens ? '()' : ''),\n },\n selection: {\n anchor: from + completion.label.length + 1,\n },\n }),\n );\n },\n } satisfies Completion;\n };\n\n return [\n extension,\n languageFacet.of(language),\n language.data.of({\n autocomplete: (context: CompletionContext): CompletionResult | null => {\n if (context.state.doc.toString()[0] !== '=') {\n return null;\n }\n const match = context.matchBefore(/\\w*/);\n if (!match || match.from === match.to) {\n return null;\n }\n\n const text = match.text.toUpperCase();\n if (!context.explicit && match.text.length < 2) {\n return null;\n }\n\n return {\n from: match.from,\n options:\n functions?.filter(({ name }) => name.startsWith(text)).map(({ name }) => createCompletion(name)) ?? [],\n };\n },\n }),\n\n syntaxHighlighting(highlightStyles),\n autocompletion({\n aboveCursor: false,\n defaultKeymap: true,\n activateOnTyping: true,\n closeOnBlur: !debug,\n icons: false,\n tooltipClass: () =>\n mx(\n '!-left-[1px] !top-[33px] !-m-0 border !border-t-0 [&>ul]:!min-w-[198px]',\n '[&>ul>li[aria-selected]]:!bg-accentSurface',\n 'border-separator',\n ),\n }),\n keymap.of([\n {\n key: 'Tab',\n run: (view) => {\n return completionStatus(view.state) === 'active' ? acceptCompletion(view) : startCompletion(view);\n },\n },\n ]),\n\n // Parsing.\n // StateField.define({\n // create: (state) => {},\n // update: (value, tr) => {\n // log.info('update');\n // syntaxTree(tr.state).iterate({\n // enter: ({ type, from, to }) => {\n // log.info('node', { type: type.name, from, to });\n // },\n // });\n // },\n // }),\n ];\n};\n\nexport type SelectionRange = { from: number; to: number };\n\nexport interface RangeController {\n setRange(range: string): void;\n}\n\nexport type RangeExtensionOptions = {\n /**\n * Provides controller callback when extension is initialized.\n */\n onInit?: (controller: RangeController) => void;\n /**\n * Called when the active range changes.\n * @param state The current state.\n * @param state.activeRange undefined if no range is active, otherwise a possibly partially defined range.\n */\n onStateChange?: (state: { activeRange: string | undefined }) => void;\n};\n\n/**\n * Tracks the currently active cell within a formula and provides a callback to modify it.\n */\nexport const rangeExtension = ({ onInit, onStateChange }: RangeExtensionOptions): Extension => {\n let view: EditorView;\n let activeRange: SelectionRange | undefined;\n\n // Called externally to provide current range.\n const notifier: RangeController = {\n setRange: (range: string) => {\n if (activeRange) {\n view.dispatch(\n view.state.update({\n changes: { ...activeRange, insert: range.toString() },\n selection: { anchor: activeRange.from + range.length },\n }),\n );\n }\n\n view.focus();\n },\n };\n\n return ViewPlugin.fromClass(\n class {\n constructor(_view: EditorView) {\n view = _view;\n onInit?.(notifier);\n }\n\n update(view: ViewUpdate) {\n const { anchor } = view.state.selection.ranges[0];\n\n // Find first Range or cell at cursor.\n activeRange = undefined;\n const language = view.state.facet(languageFacet);\n const { topNode } = language.parser.parse(view.state.doc.toString());\n visitTree(topNode, ({ type, from, to }) => {\n if (from <= anchor && to >= anchor) {\n switch (type.name) {\n case 'Function':\n // Mark but keep looking.\n activeRange = { from: to, to };\n break;\n\n case 'CloseParen':\n // Mark but keep looking.\n activeRange = { from, to: from };\n break;\n\n case 'RangeToken':\n case 'CellToken':\n activeRange = { from, to };\n return true;\n }\n }\n\n return false;\n });\n\n // Allow start of formula.\n if (!activeRange && view.state.doc.toString()[0] === '=') {\n const str = view.state.doc.sliceString(1);\n if (RANGE_NOTATION.test(str)) {\n activeRange = { from: 1, to: str.length + 1 };\n } else {\n activeRange = { from: str.length + 1, to: str.length + 1 };\n }\n }\n\n onStateChange?.({\n activeRange: activeRange ? view.state.doc.sliceString(activeRange.from, activeRange.to) : undefined,\n });\n }\n },\n );\n};\n\n/**\n * Lezer parse result visitor.\n */\nconst visitTree = (node: SyntaxNode, callback: (node: SyntaxNode) => boolean): boolean => {\n if (callback(node)) {\n return true;\n }\n\n for (let child = node.firstChild; child !== null; child = child.nextSibling) {\n if (visitTree(child, callback)) {\n return true;\n }\n }\n\n return false;\n};\n"],
5
- "mappings": "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",
6
- "names": ["import_language", "import_view", "import_compute", "import_react_ui_editor", "updateAllDecorations", "StateEffect", "define", "computeGraphFacet", "singleValueFacet", "highlightStyles", "HighlightStyle", "tag", "tags", "name", "class", "tagName", "number", "bool", "string", "invalid", "languageFacet", "sheetExtension", "debug", "functions", "extension", "language", "spreadsheet", "idiom", "decimalSeparator", "createCompletion", "section", "description", "syntax", "find", "value", "label", "info", "root", "document", "createElement", "className", "title", "innerText", "appendChild", "detail", "apply", "view", "completion", "from", "to", "insertParens", "state", "doc", "toString", "length", "dispatch", "update", "changes", "insert", "selection", "anchor", "of", "data", "autocomplete", "context", "match", "matchBefore", "text", "toUpperCase", "explicit", "options", "filter", "startsWith", "map", "syntaxHighlighting", "autocompletion", "aboveCursor", "defaultKeymap", "activateOnTyping", "closeOnBlur", "icons", "tooltipClass", "mx", "keymap", "key", "run", "completionStatus", "acceptCompletion", "startCompletion", "rangeExtension", "onInit", "onStateChange", "activeRange", "notifier", "setRange", "range", "focus", "ViewPlugin", "fromClass", "_view", "ranges", "undefined", "facet", "topNode", "parser", "parse", "visitTree", "type", "str", "sliceString", "RANGE_NOTATION", "test", "node", "callback", "child", "firstChild", "nextSibling"]
7
- }
@@ -1,41 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var chunk_JSIDCZHB_exports = {};
20
- __export(chunk_JSIDCZHB_exports, {
21
- SHEET_PLUGIN: () => SHEET_PLUGIN,
22
- meta: () => meta
23
- });
24
- module.exports = __toCommonJS(chunk_JSIDCZHB_exports);
25
- var SHEET_PLUGIN = "dxos.org/plugin/sheet";
26
- var meta = {
27
- id: SHEET_PLUGIN,
28
- name: "Sheet",
29
- 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. ",
30
- icon: "ph--grid-nine--regular",
31
- source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-sheet",
32
- screenshots: [
33
- "https://dxos.network/plugin-details-sheet-dark.png"
34
- ]
35
- };
36
- // Annotate the CommonJS export names for ESM import in node:
37
- 0 && (module.exports = {
38
- SHEET_PLUGIN,
39
- meta
40
- });
41
- //# sourceMappingURL=chunk-JSIDCZHB.cjs.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,34 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var chunk_LJWWS53Z_exports = {};
20
- __export(chunk_LJWWS53Z_exports, {
21
- SheetCapabilities: () => SheetCapabilities
22
- });
23
- module.exports = __toCommonJS(chunk_LJWWS53Z_exports);
24
- var import_chunk_JSIDCZHB = require("./chunk-JSIDCZHB.cjs");
25
- var import_app_framework = require("@dxos/app-framework");
26
- (function(SheetCapabilities2) {
27
- SheetCapabilities2.ComputeGraphRegistry = (0, import_app_framework.defineCapability)(`${import_chunk_JSIDCZHB.SHEET_PLUGIN}/capability/compute-graph-registry`);
28
- })(SheetCapabilities || (SheetCapabilities = {}));
29
- var SheetCapabilities;
30
- // Annotate the CommonJS export names for ESM import in node:
31
- 0 && (module.exports = {
32
- SheetCapabilities
33
- });
34
- //# sourceMappingURL=chunk-LJWWS53Z.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/capabilities.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineCapability } from '@dxos/app-framework';\nimport { type ComputeGraphRegistry } from '@dxos/compute';\n\nimport { SHEET_PLUGIN } from '../meta';\n\nexport namespace SheetCapabilities {\n export const ComputeGraphRegistry = defineCapability<ComputeGraphRegistry>(\n `${SHEET_PLUGIN}/capability/compute-graph-registry`,\n );\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAAiC;UAKhBA,oBAAAA;qBACFC,2BAAuBC,uCAClC,GAAGC,kCAAAA,oCAAgD;AAEvD,GAJiBH,sBAAAA,oBAAAA,CAAAA,EAAAA;;",
6
- "names": ["SheetCapabilities", "ComputeGraphRegistry", "defineCapability", "SHEET_PLUGIN"]
7
- }