@dxos/plugin-sheet 0.10.0 → 0.11.1

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 (227) hide show
  1. package/dist/lib/SheetPlugin.mjs +32 -0
  2. package/dist/lib/SheetPlugin.mjs.map +1 -0
  3. package/dist/lib/SheetPlugin.node.mjs +11 -0
  4. package/dist/lib/SheetPlugin.node.mjs.map +1 -0
  5. package/dist/lib/SheetPlugin.workerd.mjs +11 -0
  6. package/dist/lib/SheetPlugin.workerd.mjs.map +1 -0
  7. package/dist/lib/capabilities/node.mjs +10 -0
  8. package/dist/lib/capabilities/node.mjs.map +1 -0
  9. package/dist/lib/capabilities.mjs +16 -0
  10. package/dist/lib/capabilities.mjs.map +1 -0
  11. package/dist/lib/chunk-RangeList.mjs +47 -0
  12. package/dist/lib/chunk-RangeList.mjs.map +1 -0
  13. package/dist/lib/chunk-SheetArticle.mjs +58 -0
  14. package/dist/lib/chunk-SheetArticle.mjs.map +1 -0
  15. package/dist/lib/chunk-anchor-sort.mjs +18 -0
  16. package/dist/lib/chunk-anchor-sort.mjs.map +1 -0
  17. package/dist/lib/chunk-comment-config.mjs +18 -0
  18. package/dist/lib/chunk-comment-config.mjs.map +1 -0
  19. package/dist/lib/chunk-compute-graph-registry.mjs +24 -0
  20. package/dist/lib/chunk-compute-graph-registry.mjs.map +1 -0
  21. package/dist/lib/chunk-create-object.mjs +24 -0
  22. package/dist/lib/chunk-create-object.mjs.map +1 -0
  23. package/dist/lib/chunk-create.mjs +20 -0
  24. package/dist/lib/chunk-create.mjs.map +1 -0
  25. package/dist/lib/chunk-drop-axis.mjs +18 -0
  26. package/dist/lib/chunk-drop-axis.mjs.map +1 -0
  27. package/dist/lib/chunk-extensions.mjs +246 -0
  28. package/dist/lib/chunk-extensions.mjs.map +1 -0
  29. package/dist/lib/chunk-get-values.mjs +73 -0
  30. package/dist/lib/chunk-get-values.mjs.map +1 -0
  31. package/dist/lib/chunk-insert-axis.mjs +11 -0
  32. package/dist/lib/chunk-insert-axis.mjs.map +1 -0
  33. package/dist/lib/chunk-markdown-extension.mjs +22 -0
  34. package/dist/lib/chunk-markdown-extension.mjs.map +1 -0
  35. package/dist/lib/{neutral/chunk-WTSCOM64.mjs → chunk-meta.mjs} +20 -28
  36. package/dist/lib/chunk-meta.mjs.map +1 -0
  37. package/dist/lib/chunk-operation-handler.mjs +11 -0
  38. package/dist/lib/chunk-operation-handler.mjs.map +1 -0
  39. package/dist/lib/chunk-react-surface.mjs +27 -0
  40. package/dist/lib/chunk-react-surface.mjs.map +1 -0
  41. package/dist/lib/chunk-restore-axis.mjs +11 -0
  42. package/dist/lib/chunk-restore-axis.mjs.map +1 -0
  43. package/dist/lib/chunk-scroll-to-anchor.mjs +20 -0
  44. package/dist/lib/chunk-scroll-to-anchor.mjs.map +1 -0
  45. package/dist/lib/chunk-set-values.mjs +20 -0
  46. package/dist/lib/chunk-set-values.mjs.map +1 -0
  47. package/dist/lib/{neutral/skill-definition-U3KQCFOI.mjs → chunk-skill-definition.mjs} +6 -8
  48. package/dist/lib/chunk-skill-definition.mjs.map +1 -0
  49. package/dist/lib/chunk-state.mjs +27 -0
  50. package/dist/lib/chunk-state.mjs.map +1 -0
  51. package/dist/lib/chunk-thread-ranges.mjs +59 -0
  52. package/dist/lib/chunk-thread-ranges.mjs.map +1 -0
  53. package/dist/lib/chunk-types.mjs +355 -0
  54. package/dist/lib/chunk-types.mjs.map +1 -0
  55. package/dist/lib/chunk-undo-mappings.mjs +22 -0
  56. package/dist/lib/chunk-undo-mappings.mjs.map +1 -0
  57. package/dist/lib/components.mjs +1377 -0
  58. package/dist/lib/components.mjs.map +1 -0
  59. package/dist/lib/containers.mjs +8 -0
  60. package/dist/lib/containers.mjs.map +1 -0
  61. package/dist/lib/index.mjs +4 -0
  62. package/dist/lib/meta.mjs +2 -0
  63. package/dist/lib/operations/node.mjs +7 -0
  64. package/dist/lib/operations/node.mjs.map +1 -0
  65. package/dist/lib/operations.mjs +7 -0
  66. package/dist/lib/operations.mjs.map +1 -0
  67. package/dist/lib/plugin.mjs +9 -0
  68. package/dist/lib/plugin.mjs.map +1 -0
  69. package/dist/lib/skills.mjs +42 -0
  70. package/dist/lib/skills.mjs.map +1 -0
  71. package/dist/lib/testing.mjs +59 -0
  72. package/dist/lib/testing.mjs.map +1 -0
  73. package/dist/lib/translations.mjs +50 -0
  74. package/dist/lib/translations.mjs.map +1 -0
  75. package/dist/lib/types.mjs +2 -0
  76. package/dist/types/src/capabilities/anchor-sort.d.ts +1 -1
  77. package/dist/types/src/capabilities/compute-graph-registry.d.ts +1 -1
  78. package/dist/types/src/capabilities/create-object.d.ts +1 -1
  79. package/dist/types/src/capabilities/markdown-extension.d.ts +1 -1
  80. package/dist/types/src/capabilities/node.d.ts +7 -0
  81. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  82. package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
  83. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  84. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  85. package/dist/types/src/capabilities/skill-definition.d.ts +1 -1
  86. package/dist/types/src/capabilities/state.d.ts +1 -1
  87. package/dist/types/src/capabilities/undo-mappings.d.ts +1 -1
  88. package/dist/types/src/components/ComputeGraph/ComputeGraphContext.d.ts +11 -0
  89. package/dist/types/src/components/ComputeGraph/ComputeGraphContext.d.ts.map +1 -0
  90. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts +1 -10
  91. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts.map +1 -1
  92. package/dist/types/src/components/ComputeGraph/index.d.ts +1 -0
  93. package/dist/types/src/components/ComputeGraph/index.d.ts.map +1 -1
  94. package/dist/types/src/components/Sheet/Sheet.d.ts +4 -4
  95. package/dist/types/src/components/Sheet/Sheet.d.ts.map +1 -1
  96. package/dist/types/src/components/SheetContent/SheetContent.d.ts +1 -1
  97. package/dist/types/src/components/SheetContent/SheetContent.d.ts.map +1 -1
  98. package/dist/types/src/components/SheetContent/SheetContent.stories.d.ts +1 -1
  99. package/dist/types/src/components/SheetRoot/SheetContext.d.ts +4 -0
  100. package/dist/types/src/components/SheetRoot/SheetContext.d.ts.map +1 -0
  101. package/dist/types/src/components/SheetRoot/SheetRoot.d.ts +0 -1
  102. package/dist/types/src/components/SheetRoot/SheetRoot.d.ts.map +1 -1
  103. package/dist/types/src/components/SheetRoot/index.d.ts +1 -0
  104. package/dist/types/src/components/SheetRoot/index.d.ts.map +1 -1
  105. package/dist/types/src/components/SheetStatusbar/SheetStatusbar.d.ts +1 -1
  106. package/dist/types/src/components/SheetStatusbar/SheetStatusbar.d.ts.map +1 -1
  107. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts +1 -1
  108. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -1
  109. package/dist/types/src/components/index.d.ts +1 -0
  110. package/dist/types/src/components/index.d.ts.map +1 -1
  111. package/dist/types/src/containers/RangeList/RangeList.d.ts +4 -1
  112. package/dist/types/src/containers/RangeList/RangeList.d.ts.map +1 -1
  113. package/dist/types/src/containers/SheetArticle/SheetArticle.d.ts +4 -5
  114. package/dist/types/src/containers/SheetArticle/SheetArticle.d.ts.map +1 -1
  115. package/dist/types/src/containers/SheetArticle/SheetArticle.stories.d.ts +4 -1
  116. package/dist/types/src/containers/SheetArticle/SheetArticle.stories.d.ts.map +1 -1
  117. package/dist/types/src/extensions/editor/sheet-extension.d.ts.map +1 -1
  118. package/dist/types/src/operations/node.d.ts +3 -0
  119. package/dist/types/src/operations/node.d.ts.map +1 -0
  120. package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -1
  121. package/dist/types/src/plugin.d.ts +1 -1
  122. package/dist/types/src/plugin.d.ts.map +1 -1
  123. package/dist/types/src/testing/testing.d.ts +8 -2
  124. package/dist/types/src/testing/testing.d.ts.map +1 -1
  125. package/dist/types/src/types/SheetOperation.d.ts +1 -1
  126. package/dist/types/src/types/SheetOperation.d.ts.map +1 -1
  127. package/dist/types/tsconfig.tsbuildinfo +1 -1
  128. package/dx.config.ts +1 -0
  129. package/package.json +75 -67
  130. package/src/capabilities/node.ts +18 -0
  131. package/src/capabilities/{react-surface.tsx → react-surface.ts} +6 -18
  132. package/src/components/ComputeGraph/ComputeGraphContext.ts +35 -0
  133. package/src/components/ComputeGraph/ComputeGraphContextProvider.tsx +2 -27
  134. package/src/components/ComputeGraph/compute-graph.stories.tsx +1 -1
  135. package/src/components/ComputeGraph/index.ts +2 -0
  136. package/src/components/Sheet/Sheet.tsx +1 -1
  137. package/src/components/SheetRoot/SheetContext.ts +19 -0
  138. package/src/components/SheetRoot/SheetRoot.tsx +2 -9
  139. package/src/components/SheetRoot/index.ts +2 -0
  140. package/src/components/SheetStatusbar/SheetStatusbar.tsx +1 -1
  141. package/src/components/SheetToolbar/SheetToolbar.tsx +9 -9
  142. package/src/components/index.ts +1 -0
  143. package/src/containers/RangeList/RangeList.tsx +2 -0
  144. package/src/containers/SheetArticle/SheetArticle.stories.tsx +15 -24
  145. package/src/containers/SheetArticle/SheetArticle.tsx +23 -11
  146. package/src/extensions/editor/sheet-extension.ts +61 -2
  147. package/src/integrations/thread-ranges.ts +4 -4
  148. package/src/operations/node.ts +18 -0
  149. package/src/operations/scroll-to-anchor.ts +3 -2
  150. package/src/plugin.ts +1 -1
  151. package/src/testing/testing.tsx +11 -5
  152. package/src/types/SheetOperation.ts +6 -2
  153. package/dist/lib/neutral/RangeList-EIJTFS7P.mjs +0 -53
  154. package/dist/lib/neutral/RangeList-EIJTFS7P.mjs.map +0 -7
  155. package/dist/lib/neutral/SheetArticle-IUPQYGUU.mjs +0 -34
  156. package/dist/lib/neutral/SheetArticle-IUPQYGUU.mjs.map +0 -7
  157. package/dist/lib/neutral/SheetPlugin.mjs +0 -61
  158. package/dist/lib/neutral/SheetPlugin.mjs.map +0 -7
  159. package/dist/lib/neutral/SheetPlugin.node.mjs +0 -27
  160. package/dist/lib/neutral/SheetPlugin.node.mjs.map +0 -7
  161. package/dist/lib/neutral/SheetPlugin.workerd.mjs +0 -21
  162. package/dist/lib/neutral/SheetPlugin.workerd.mjs.map +0 -7
  163. package/dist/lib/neutral/anchor-sort-2POWTKTD.mjs +0 -22
  164. package/dist/lib/neutral/anchor-sort-2POWTKTD.mjs.map +0 -7
  165. package/dist/lib/neutral/capabilities/index.mjs +0 -27
  166. package/dist/lib/neutral/capabilities/index.mjs.map +0 -7
  167. package/dist/lib/neutral/chunk-ERHMBRSU.mjs +0 -234
  168. package/dist/lib/neutral/chunk-ERHMBRSU.mjs.map +0 -7
  169. package/dist/lib/neutral/chunk-HEN74ZWI.mjs +0 -83
  170. package/dist/lib/neutral/chunk-HEN74ZWI.mjs.map +0 -7
  171. package/dist/lib/neutral/chunk-HY4DM35G.mjs +0 -466
  172. package/dist/lib/neutral/chunk-HY4DM35G.mjs.map +0 -7
  173. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +0 -10
  174. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +0 -7
  175. package/dist/lib/neutral/chunk-TDGEOMRG.mjs +0 -8
  176. package/dist/lib/neutral/chunk-TDGEOMRG.mjs.map +0 -7
  177. package/dist/lib/neutral/chunk-WTSCOM64.mjs.map +0 -7
  178. package/dist/lib/neutral/comment-config-4CIQFYM2.mjs +0 -22
  179. package/dist/lib/neutral/comment-config-4CIQFYM2.mjs.map +0 -7
  180. package/dist/lib/neutral/components/index.mjs +0 -1552
  181. package/dist/lib/neutral/components/index.mjs.map +0 -7
  182. package/dist/lib/neutral/compute-graph-registry-YYINTFC2.mjs +0 -26
  183. package/dist/lib/neutral/compute-graph-registry-YYINTFC2.mjs.map +0 -7
  184. package/dist/lib/neutral/containers/index.mjs +0 -11
  185. package/dist/lib/neutral/containers/index.mjs.map +0 -7
  186. package/dist/lib/neutral/create-I3TKMPQO.mjs +0 -30
  187. package/dist/lib/neutral/create-I3TKMPQO.mjs.map +0 -7
  188. package/dist/lib/neutral/create-object-5WEY5XZJ.mjs +0 -27
  189. package/dist/lib/neutral/create-object-5WEY5XZJ.mjs.map +0 -7
  190. package/dist/lib/neutral/drop-axis-JPFU5CJO.mjs +0 -23
  191. package/dist/lib/neutral/drop-axis-JPFU5CJO.mjs.map +0 -7
  192. package/dist/lib/neutral/get-values-7YWQTH65.mjs +0 -92
  193. package/dist/lib/neutral/get-values-7YWQTH65.mjs.map +0 -7
  194. package/dist/lib/neutral/index.mjs +0 -66
  195. package/dist/lib/neutral/index.mjs.map +0 -7
  196. package/dist/lib/neutral/insert-axis-WD6ZC3UA.mjs +0 -16
  197. package/dist/lib/neutral/insert-axis-WD6ZC3UA.mjs.map +0 -7
  198. package/dist/lib/neutral/markdown-extension-HTJDICGT.mjs +0 -28
  199. package/dist/lib/neutral/markdown-extension-HTJDICGT.mjs.map +0 -7
  200. package/dist/lib/neutral/meta.json +0 -1
  201. package/dist/lib/neutral/meta.mjs +0 -8
  202. package/dist/lib/neutral/meta.mjs.map +0 -7
  203. package/dist/lib/neutral/operation-handler-TB6LFV2H.mjs +0 -13
  204. package/dist/lib/neutral/operation-handler-TB6LFV2H.mjs.map +0 -7
  205. package/dist/lib/neutral/operations/index.mjs +0 -8
  206. package/dist/lib/neutral/operations/index.mjs.map +0 -7
  207. package/dist/lib/neutral/plugin.mjs +0 -16
  208. package/dist/lib/neutral/plugin.mjs.map +0 -7
  209. package/dist/lib/neutral/react-surface-TJT6F2E4.mjs +0 -40
  210. package/dist/lib/neutral/react-surface-TJT6F2E4.mjs.map +0 -7
  211. package/dist/lib/neutral/restore-axis-RLPX7P3G.mjs +0 -16
  212. package/dist/lib/neutral/restore-axis-RLPX7P3G.mjs.map +0 -7
  213. package/dist/lib/neutral/scroll-to-anchor-6FJJQWZC.mjs +0 -33
  214. package/dist/lib/neutral/scroll-to-anchor-6FJJQWZC.mjs.map +0 -7
  215. package/dist/lib/neutral/set-values-5DVOVLJH.mjs +0 -30
  216. package/dist/lib/neutral/set-values-5DVOVLJH.mjs.map +0 -7
  217. package/dist/lib/neutral/skill-definition-U3KQCFOI.mjs.map +0 -7
  218. package/dist/lib/neutral/state-HPA27MX2.mjs +0 -29
  219. package/dist/lib/neutral/state-HPA27MX2.mjs.map +0 -7
  220. package/dist/lib/neutral/testing/index.mjs +0 -103
  221. package/dist/lib/neutral/testing/index.mjs.map +0 -7
  222. package/dist/lib/neutral/translations.mjs +0 -56
  223. package/dist/lib/neutral/translations.mjs.map +0 -7
  224. package/dist/lib/neutral/types/index.mjs +0 -58
  225. package/dist/lib/neutral/types/index.mjs.map +0 -7
  226. package/dist/lib/neutral/undo-mappings-O75AYIRG.mjs +0 -31
  227. package/dist/lib/neutral/undo-mappings-O75AYIRG.mjs.map +0 -7
package/dx.config.ts CHANGED
@@ -27,5 +27,6 @@ export default Config2.make({
27
27
  source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-sheet',
28
28
  spec: 'PLUGIN.mdl',
29
29
  screenshots: [{ dark: 'https://dxos.network/plugin-details-sheet-dark.png' }],
30
+ tags: ['alpha'],
30
31
  },
31
32
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-sheet",
3
- "version": "0.10.0",
3
+ "version": "0.11.1",
4
4
  "description": "Braneframe sketch plugin",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -14,29 +14,37 @@
14
14
  "type": "module",
15
15
  "imports": {
16
16
  "#capabilities": {
17
- "source": "./src/capabilities/index.ts",
17
+ "source": {
18
+ "node": "./src/capabilities/node.ts",
19
+ "default": "./src/capabilities/index.ts"
20
+ },
18
21
  "types": "./dist/types/src/capabilities/index.d.ts",
19
- "default": "./dist/lib/neutral/capabilities/index.mjs"
22
+ "node": "./dist/lib/capabilities/node.mjs",
23
+ "default": "./dist/lib/capabilities.mjs"
20
24
  },
21
25
  "#components": {
22
26
  "source": "./src/components/index.ts",
23
27
  "types": "./dist/types/src/components/index.d.ts",
24
- "default": "./dist/lib/neutral/components/index.mjs"
28
+ "default": "./dist/lib/components.mjs"
25
29
  },
26
30
  "#containers": {
27
31
  "source": "./src/containers/index.ts",
28
32
  "types": "./dist/types/src/containers/index.d.ts",
29
- "default": "./dist/lib/neutral/containers/index.mjs"
33
+ "default": "./dist/lib/containers.mjs"
30
34
  },
31
35
  "#meta": {
32
36
  "source": "./src/meta.ts",
33
37
  "types": "./dist/types/src/meta.d.ts",
34
- "default": "./dist/lib/neutral/meta.mjs"
38
+ "default": "./dist/lib/meta.mjs"
35
39
  },
36
40
  "#operations": {
37
- "source": "./src/operations/index.ts",
41
+ "source": {
42
+ "node": "./src/operations/node.ts",
43
+ "default": "./src/operations/index.ts"
44
+ },
38
45
  "types": "./dist/types/src/operations/index.d.ts",
39
- "default": "./dist/lib/neutral/operations/index.mjs"
46
+ "node": "./dist/lib/operations/node.mjs",
47
+ "default": "./dist/lib/operations.mjs"
40
48
  },
41
49
  "#plugin": {
42
50
  "source": {
@@ -45,43 +53,43 @@
45
53
  "default": "./src/SheetPlugin.tsx"
46
54
  },
47
55
  "types": "./dist/types/src/SheetPlugin.d.ts",
48
- "workerd": "./dist/lib/neutral/SheetPlugin.workerd.mjs",
49
- "node": "./dist/lib/neutral/SheetPlugin.node.mjs",
50
- "default": "./dist/lib/neutral/SheetPlugin.mjs"
56
+ "workerd": "./dist/lib/SheetPlugin.workerd.mjs",
57
+ "node": "./dist/lib/SheetPlugin.node.mjs",
58
+ "default": "./dist/lib/SheetPlugin.mjs"
51
59
  },
52
60
  "#skills": {
53
61
  "source": "./src/skills/index.ts",
54
62
  "types": "./dist/types/src/skills/index.d.ts",
55
- "default": "./dist/lib/neutral/skills/index.mjs"
63
+ "default": "./dist/lib/skills.mjs"
56
64
  },
57
65
  "#testing": "./src/testing/index.ts",
58
66
  "#translations": {
59
67
  "source": "./src/translations.ts",
60
68
  "types": "./dist/types/src/translations.d.ts",
61
- "default": "./dist/lib/neutral/translations.mjs"
69
+ "default": "./dist/lib/translations.mjs"
62
70
  },
63
71
  "#types": {
64
72
  "source": "./src/types/index.ts",
65
73
  "types": "./dist/types/src/types/index.d.ts",
66
- "default": "./dist/lib/neutral/types/index.mjs"
74
+ "default": "./dist/lib/types.mjs"
67
75
  }
68
76
  },
69
77
  "exports": {
70
78
  ".": {
71
79
  "source": "./src/index.ts",
72
80
  "types": "./dist/types/src/index.d.ts",
73
- "default": "./dist/lib/neutral/index.mjs"
81
+ "import": "./dist/lib/index.mjs"
74
82
  },
75
83
  "./assets/PLUGIN.mdl": "./PLUGIN.mdl",
76
84
  "./plugin": {
77
85
  "source": "./src/plugin.ts",
78
86
  "types": "./dist/types/src/plugin.d.ts",
79
- "default": "./dist/lib/neutral/plugin.mjs"
87
+ "import": "./dist/lib/plugin.mjs"
80
88
  },
81
89
  "./translations": {
82
90
  "source": "./src/translations.ts",
83
91
  "types": "./dist/types/src/translations.d.ts",
84
- "default": "./dist/lib/neutral/translations.mjs"
92
+ "import": "./dist/lib/translations.mjs"
85
93
  }
86
94
  },
87
95
  "types": "dist/types/src/index.d.ts",
@@ -92,46 +100,46 @@
92
100
  "PLUGIN.mdl"
93
101
  ],
94
102
  "dependencies": {
95
- "@codemirror/autocomplete": "^6.20.2",
96
- "@codemirror/language": "^6.12.3",
97
- "@codemirror/state": "^6.6.0",
98
- "@codemirror/view": "^6.43.0",
103
+ "@codemirror/autocomplete": "^6.20.3",
104
+ "@codemirror/language": "^6.12.4",
105
+ "@codemirror/state": "^6.7.1",
106
+ "@codemirror/view": "^6.43.6",
99
107
  "@lezer/common": "^1.5.2",
100
108
  "@lezer/highlight": "^1.2.3",
101
109
  "codemirror-lang-spreadsheet": "^1.3.0",
102
- "@dxos/app-toolkit": "0.10.0",
103
- "@dxos/client": "0.10.0",
104
- "@dxos/compute": "0.10.0",
105
- "@dxos/async": "0.10.0",
106
- "@dxos/context": "0.10.0",
107
- "@dxos/crypto": "0.10.0",
108
- "@dxos/compute-hyperformula": "0.10.0",
109
- "@dxos/echo": "0.10.0",
110
- "@dxos/debug": "0.10.0",
111
- "@dxos/echo-doc": "0.10.0",
112
- "@dxos/echo-react": "0.10.0",
113
- "@dxos/invariant": "0.10.0",
114
- "@dxos/keys": "0.10.0",
115
- "@dxos/lit-grid": "0.10.0",
116
- "@dxos/log": "0.10.0",
117
- "@dxos/plugin-client": "0.10.0",
118
- "@dxos/plugin-comments": "0.10.0",
119
- "@dxos/plugin-graph": "0.10.0",
120
- "@dxos/plugin-markdown": "0.10.0",
121
- "@dxos/react-client": "0.10.0",
122
- "@dxos/plugin-space": "0.10.0",
123
- "@dxos/react-ui-attention": "0.10.0",
124
- "@dxos/react-hooks": "0.10.0",
125
- "@dxos/react-ui-editor": "0.10.0",
126
- "@dxos/react-ui-grid": "0.10.0",
127
- "@dxos/react-ui-form": "0.10.0",
128
- "@dxos/react-ui-list": "0.10.0",
129
- "@dxos/react-ui-menu": "0.10.0",
130
- "@dxos/schema": "0.10.0",
131
- "@dxos/types": "0.10.0",
132
- "@dxos/ui-editor": "0.10.0",
133
- "@dxos/util": "0.10.0",
134
- "@dxos/app-framework": "0.10.0"
110
+ "@dxos/app-framework": "0.11.1",
111
+ "@dxos/client": "0.11.1",
112
+ "@dxos/compute": "0.11.1",
113
+ "@dxos/compute-hyperformula": "0.11.1",
114
+ "@dxos/context": "0.11.1",
115
+ "@dxos/crypto": "0.11.1",
116
+ "@dxos/debug": "0.11.1",
117
+ "@dxos/echo": "0.11.1",
118
+ "@dxos/echo-doc": "0.11.1",
119
+ "@dxos/echo-react": "0.11.1",
120
+ "@dxos/invariant": "0.11.1",
121
+ "@dxos/keys": "0.11.1",
122
+ "@dxos/lit-grid": "0.11.1",
123
+ "@dxos/log": "0.11.1",
124
+ "@dxos/plugin-client": "0.11.1",
125
+ "@dxos/plugin-graph": "0.11.1",
126
+ "@dxos/plugin-markdown": "0.11.1",
127
+ "@dxos/plugin-review": "0.11.1",
128
+ "@dxos/plugin-space": "0.11.1",
129
+ "@dxos/react-client": "0.11.1",
130
+ "@dxos/react-hooks": "0.11.1",
131
+ "@dxos/react-ui-attention": "0.11.1",
132
+ "@dxos/react-ui-editor": "0.11.1",
133
+ "@dxos/react-ui-grid": "0.11.1",
134
+ "@dxos/react-ui-form": "0.11.1",
135
+ "@dxos/react-ui-list": "0.11.1",
136
+ "@dxos/react-ui-menu": "0.11.1",
137
+ "@dxos/schema": "0.11.1",
138
+ "@dxos/types": "0.11.1",
139
+ "@dxos/ui-editor": "0.11.1",
140
+ "@dxos/util": "0.11.1",
141
+ "@dxos/async": "0.11.1",
142
+ "@dxos/app-toolkit": "0.11.1"
135
143
  },
136
144
  "devDependencies": {
137
145
  "@effect-atom/atom-react": "^0.5.0",
@@ -144,17 +152,17 @@
144
152
  "effect": "3.21.4",
145
153
  "react": "~19.2.7",
146
154
  "react-dom": "~19.2.7",
147
- "vite": "^8.0.16",
148
- "@dxos/echo-generator": "0.10.0",
149
- "@dxos/lit-grid": "0.10.0",
150
- "@dxos/plugin-testing": "0.10.0",
151
- "@dxos/random": "0.10.0",
152
- "@dxos/react-ui": "0.10.0",
153
- "@dxos/react-ui-syntax-highlighter": "0.10.0",
154
- "@dxos/test-utils": "0.10.0",
155
- "@dxos/ui-theme": "0.10.0",
156
- "@dxos/storybook-utils": "0.10.0",
157
- "@dxos/ui-types": "0.10.0"
155
+ "vite": "^8.1.4",
156
+ "@dxos/echo-generator": "0.11.1",
157
+ "@dxos/lit-grid": "0.11.1",
158
+ "@dxos/plugin-testing": "0.11.1",
159
+ "@dxos/random": "0.11.1",
160
+ "@dxos/react-ui": "0.11.1",
161
+ "@dxos/react-ui-syntax-highlighter": "0.11.1",
162
+ "@dxos/storybook-utils": "0.11.1",
163
+ "@dxos/test-utils": "0.11.1",
164
+ "@dxos/ui-theme": "0.11.1",
165
+ "@dxos/ui-types": "0.11.1"
158
166
  },
159
167
  "peerDependencies": {
160
168
  "@effect-atom/atom-react": "^0.5.0",
@@ -162,8 +170,8 @@
162
170
  "effect": "3.21.4",
163
171
  "react": "~19.2.7",
164
172
  "react-dom": "~19.2.7",
165
- "@dxos/ui-theme": "0.10.0",
166
- "@dxos/react-ui": "0.10.0"
173
+ "@dxos/react-ui": "^0.11.1",
174
+ "@dxos/ui-theme": "^0.11.1"
167
175
  },
168
176
  "publishConfig": {
169
177
  "access": "public"
@@ -0,0 +1,18 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { Capability } from '@dxos/app-framework';
6
+ import { OperationHandlerSet } from '@dxos/compute';
7
+
8
+ // The capabilities `SheetPlugin.node` activates, and only those. `Capability.lazy` defers the
9
+ // import at runtime but a bundler still walks it, so listing the React surfaces here would pull
10
+ // the plugin's components into every node and bun build.
11
+
12
+ export const CommentConfig = Capability.lazy('CommentConfig', () => import('./comment-config'));
13
+ export const CreateObject = Capability.lazy('CreateObject', () => import('./create-object'));
14
+ export const OperationHandler = Capability.lazy<OperationHandlerSet.OperationHandlerSet>(
15
+ 'OperationHandler',
16
+ () => import('./operation-handler'),
17
+ );
18
+ export const UndoMappings = Capability.lazy('UndoMappings', () => import('./undo-mappings'));
@@ -3,16 +3,14 @@
3
3
  //
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
- import React from 'react';
7
6
 
8
7
  import { Capabilities, Capability } from '@dxos/app-framework';
9
- import { Surface, useCapability } from '@dxos/app-framework/ui';
8
+ import { Surface } from '@dxos/app-framework/ui';
10
9
  import { AppSurface } from '@dxos/app-toolkit/ui';
11
10
  import { Obj } from '@dxos/echo';
12
- import { getSpace } from '@dxos/react-client/echo';
13
11
 
14
12
  import { RangeList, SheetArticle } from '#containers';
15
- import { Sheet, SheetCapabilities } from '#types';
13
+ import { Sheet } from '#types';
16
14
 
17
15
  export default Capability.makeModule(() =>
18
16
  Effect.succeed(
@@ -24,24 +22,14 @@ export default Capability.makeModule(() =>
24
22
  AppSurface.object(AppSurface.Article, Sheet.Sheet, (data) => !!Obj.getDatabase(data.subject)),
25
23
  AppSurface.object(AppSurface.Section, Sheet.Sheet, (data) => !!Obj.getDatabase(data.subject)),
26
24
  ),
27
- component: ({ data, role }) => {
28
- const computeGraphRegistry = useCapability(SheetCapabilities.ComputeGraphRegistry);
29
-
30
- return (
31
- <SheetArticle
32
- role={role}
33
- subject={data.subject}
34
- attendableId={data.attendableId}
35
- space={getSpace(data.subject)!}
36
- registry={computeGraphRegistry}
37
- />
38
- );
39
- },
25
+ component: SheetArticle,
26
+ props: ({ role, data: { subject, attendableId } }) => ({ role, subject, attendableId }),
40
27
  }),
41
28
  Surface.create({
42
29
  id: 'objectProperties',
43
30
  filter: AppSurface.object(AppSurface.ObjectProperties, Sheet.Sheet),
44
- component: ({ data }) => <RangeList sheet={data.subject} />,
31
+ component: RangeList,
32
+ props: ({ data: { subject } }) => ({ sheet: subject }),
45
33
  }),
46
34
  ]),
47
35
  ),
@@ -0,0 +1,35 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ import { createContext, useContext } from 'react';
6
+
7
+ import { type ComputeGraph, type ComputeGraphRegistry } from '@dxos/compute-hyperformula';
8
+ import { raise } from '@dxos/debug';
9
+ import { type Space } from '@dxos/react-client/echo';
10
+ import { useAsyncState } from '@dxos/react-hooks';
11
+
12
+ // Kept out of `ComputeGraphContextProvider.tsx`: react-refresh only fast-refreshes a module whose exports are all
13
+ // components, so a context and its hook exported beside them force a full page reload on every edit.
14
+
15
+ export type ComputeGraphContextType = {
16
+ registry: ComputeGraphRegistry;
17
+ };
18
+
19
+ /**
20
+ * The compute graph context manages a ComputeGraph for each space.
21
+ */
22
+ export const ComputeGraphContext = createContext<ComputeGraphContextType | undefined>(undefined);
23
+
24
+ export const useComputeGraph = (space?: Space): ComputeGraph | undefined => {
25
+ const { registry } = useContext(ComputeGraphContext) ?? raise(new Error('Missing ComputeGraphContext'));
26
+ const [graph] = useAsyncState(async () => {
27
+ if (space) {
28
+ const graph = registry.getOrCreateGraph(space);
29
+ await graph.open();
30
+ return graph;
31
+ }
32
+ }, [space, registry]);
33
+
34
+ return graph;
35
+ };
@@ -2,35 +2,10 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import React, { type PropsWithChildren, createContext, useContext } from 'react';
5
+ import React, { type PropsWithChildren } from 'react';
6
6
 
7
- import { type ComputeGraph, type ComputeGraphRegistry } from '@dxos/compute-hyperformula';
8
- import { raise } from '@dxos/debug';
9
- import { type Space } from '@dxos/react-client/echo';
10
- import { useAsyncState } from '@dxos/react-hooks';
11
-
12
- export type ComputeGraphContextType = {
13
- registry: ComputeGraphRegistry;
14
- };
15
-
16
- /**
17
- * The compute graph context manages a ComputeGraph for each space.
18
- */
19
- export const ComputeGraphContext = createContext<ComputeGraphContextType | undefined>(undefined);
7
+ import { ComputeGraphContext, type ComputeGraphContextType } from './ComputeGraphContext';
20
8
 
21
9
  export const ComputeGraphContextProvider = ({ registry, children }: PropsWithChildren<ComputeGraphContextType>) => {
22
10
  return <ComputeGraphContext.Provider value={{ registry }}>{children}</ComputeGraphContext.Provider>;
23
11
  };
24
-
25
- export const useComputeGraph = (space?: Space): ComputeGraph | undefined => {
26
- const { registry } = useContext(ComputeGraphContext) ?? raise(new Error('Missing ComputeGraphContext'));
27
- const [graph] = useAsyncState(async () => {
28
- if (space) {
29
- const graph = registry.getOrCreateGraph(space);
30
- await graph.open();
31
- return graph;
32
- }
33
- }, [space, registry]);
34
-
35
- return graph;
36
- };
@@ -18,7 +18,7 @@ import { withComputeGraphDecorator } from '#testing';
18
18
  import { Sheet } from '#types';
19
19
 
20
20
  import { useSheetModel } from '../../model';
21
- import { useComputeGraph } from './ComputeGraphContextProvider';
21
+ import { useComputeGraph } from './ComputeGraphContext';
22
22
 
23
23
  const FUNCTION_NAME = 'TEST';
24
24
 
@@ -2,4 +2,6 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
+ export { type ComputeGraphContextType, useComputeGraph } from './ComputeGraphContext';
6
+
5
7
  export * from './ComputeGraphContextProvider';
@@ -7,7 +7,7 @@ import { SheetRoot } from '../SheetRoot';
7
7
  import { SheetStatusbar } from '../SheetStatusbar';
8
8
  import { SheetToolbar } from '../SheetToolbar';
9
9
 
10
- export { type SheetContextValue, type SheetRootProps, useSheetContext } from '../SheetRoot';
10
+ export { type SheetContextValue, type SheetRootProps } from '../SheetRoot';
11
11
  export { type SheetContentProps } from '../SheetContent';
12
12
  export { type SheetToolbarProps } from '../SheetToolbar';
13
13
  export { type SheetStatusbarProps } from '../SheetStatusbar';
@@ -0,0 +1,19 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ import { createContext, useContext } from 'react';
6
+
7
+ import { raise } from '@dxos/debug';
8
+
9
+ import { type SheetContextValue } from './SheetRoot';
10
+
11
+ // Kept out of `SheetRoot.tsx`: react-refresh only fast-refreshes a module whose exports are all
12
+ // components, so a context and its hook exported beside them force a full page reload on every edit.
13
+
14
+ // TODO(burdon): Use radix context.
15
+ export const SheetContext = createContext<SheetContextValue | undefined>(undefined);
16
+
17
+ export const useSheetContext = (): SheetContextValue => {
18
+ return useContext(SheetContext) ?? raise(new Error('Missing SheetContext'));
19
+ };
@@ -2,7 +2,7 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import React, { type PropsWithChildren, createContext, useCallback, useContext, useState } from 'react';
5
+ import React, { type PropsWithChildren, useCallback, useState } from 'react';
6
6
 
7
7
  import {
8
8
  type CellAddress,
@@ -10,7 +10,6 @@ import {
10
10
  type CompleteCellRange,
11
11
  type ComputeGraph,
12
12
  } from '@dxos/compute-hyperformula';
13
- import { raise } from '@dxos/debug';
14
13
  import {
15
14
  Grid,
16
15
  type GridContentProps,
@@ -22,6 +21,7 @@ import {
22
21
  import { type Sheet } from '#types';
23
22
 
24
23
  import { type SheetModel, useSheetModel } from '../../model';
24
+ import { SheetContext } from './SheetContext';
25
25
 
26
26
  export type SheetContextValue = {
27
27
  id: string;
@@ -52,13 +52,6 @@ export type SheetContextValue = {
52
52
  onInfo?: () => void;
53
53
  };
54
54
 
55
- // TODO(burdon): Use radix context.
56
- const SheetContext = createContext<SheetContextValue | undefined>(undefined);
57
-
58
- export const useSheetContext = (): SheetContextValue => {
59
- return useContext(SheetContext) ?? raise(new Error('Missing SheetContext'));
60
- };
61
-
62
55
  export type SheetRootProps = {
63
56
  graph: ComputeGraph;
64
57
  sheet: Sheet.Sheet;
@@ -2,4 +2,6 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
+ export { useSheetContext } from './SheetContext';
6
+
5
7
  export * from './SheetRoot';
@@ -36,7 +36,7 @@ export const SheetStatusbar = composable<HTMLDivElement, SheetStatusbarProps>((p
36
36
  ref={forwardedRef}
37
37
  {...rest}
38
38
  className={mx(
39
- 'flex shrink-0 justify-between items-center px-4 py-1 text-sm bg-toolbar-surface border-y !border-subdued-separator',
39
+ 'flex shrink-0 justify-between items-center px-4 py-1 text-sm dx-toolbar-surface border-y !border-subdued-separator',
40
40
  className,
41
41
  )}
42
42
  >
@@ -8,7 +8,14 @@ import React, { useContext, useMemo } from 'react';
8
8
  import { useAppGraph } from '@dxos/app-toolkit/ui';
9
9
  import { type CompleteCellRange } from '@dxos/compute-hyperformula';
10
10
  import { composable, composableProps } from '@dxos/react-ui';
11
- import { type ActionGraphProps, Menu, createGapSeparator, useMenuActions } from '@dxos/react-ui-menu';
11
+ import {
12
+ type ActionGraphProps,
13
+ Menu,
14
+ createGapSeparator,
15
+ graphActions,
16
+ isToolbarAction,
17
+ useMenuActions,
18
+ } from '@dxos/react-ui-menu';
12
19
 
13
20
  import { type SheetModel } from '../../model';
14
21
  import { useSheetContext } from '../SheetRoot';
@@ -64,14 +71,7 @@ export const SheetToolbar = composable<HTMLDivElement, SheetToolbarProps>((props
64
71
 
65
72
  const { graph } = useAppGraph();
66
73
  const customActions = useMemo(() => {
67
- return Atom.make((get) => {
68
- const actions = get(graph.actions(attendableId));
69
- const nodes = actions.filter((action) => action.properties.disposition === 'toolbar');
70
- return {
71
- nodes,
72
- edges: nodes.map((node) => ({ source: 'root', target: node.id, relation: 'child' })),
73
- };
74
- });
74
+ return Atom.make((get) => graphActions(graph, get, attendableId, { filter: isToolbarAction }));
75
75
  }, [graph, attendableId]);
76
76
 
77
77
  const actionsCreator = useMemo(
@@ -3,4 +3,5 @@
3
3
  //
4
4
 
5
5
  export * from './ComputeGraph';
6
+ export { useSheetContext } from './SheetRoot';
6
7
  export * from './Sheet';
@@ -79,3 +79,5 @@ export const RangeList = ({ sheet: sheetProp }: RangeListProps) => {
79
79
  </>
80
80
  );
81
81
  };
82
+
83
+ RangeList.displayName = 'RangeList';
@@ -4,11 +4,13 @@
4
4
 
5
5
  import { type Meta } from '@storybook/react-vite';
6
6
  import * as Effect from 'effect/Effect';
7
- import React, { useContext } from 'react';
7
+ import React from 'react';
8
8
 
9
9
  import { Capabilities, Capability } from '@dxos/app-framework';
10
10
  import { withPluginManager } from '@dxos/app-framework/testing';
11
11
  import { Operation, OperationHandlerSet } from '@dxos/compute';
12
+ import { ComputeGraphRegistry } from '@dxos/compute-hyperformula';
13
+ import { createMockedComputeRuntimeProvider } from '@dxos/compute-hyperformula/testing';
12
14
  import { Obj } from '@dxos/echo';
13
15
  import { corePlugins } from '@dxos/plugin-testing';
14
16
  import { useSpaces } from '@dxos/react-client/echo';
@@ -16,15 +18,19 @@ import { withClientProvider } from '@dxos/react-client/testing';
16
18
  import { AttendableContainer } from '@dxos/react-ui-attention';
17
19
  import { withLayout, withTheme } from '@dxos/react-ui/testing';
18
20
 
19
- import { ComputeGraphContext, useComputeGraph } from '#components';
21
+ import { useComputeGraph } from '#components';
20
22
  import { createTestCells, useTestSheet, withComputeGraphDecorator } from '#testing';
21
23
  import { translations } from '#translations';
22
- import { SheetOperation } from '#types';
24
+ import { SheetCapabilities, SheetOperation } from '#types';
23
25
  import { Sheet } from '#types';
24
26
 
25
27
  import RangeList from '../RangeList';
26
28
  import { SheetArticle } from './SheetArticle';
27
29
 
30
+ // SheetArticle resolves the registry from its capability, so the context and the capability must
31
+ // share one instance.
32
+ const registry = new ComputeGraphRegistry({ computeRuntime: createMockedComputeRuntimeProvider() });
33
+
28
34
  const meta = {
29
35
  title: 'plugins/plugin-sheet/containers/SheetArticle',
30
36
  component: SheetArticle,
@@ -32,10 +38,11 @@ const meta = {
32
38
  withTheme(),
33
39
  withLayout({ layout: 'fullscreen' }),
34
40
  withClientProvider({ types: [Sheet.Sheet], createSpace: true }),
35
- withComputeGraphDecorator(),
41
+ withComputeGraphDecorator({ registry }),
36
42
  withPluginManager({
37
43
  plugins: [...corePlugins()],
38
44
  capabilities: [
45
+ Capability.contributes(SheetCapabilities.ComputeGraphRegistry, registry),
39
46
  Capability.contributes(
40
47
  Capabilities.OperationHandler,
41
48
  OperationHandlerSet.make(
@@ -61,22 +68,14 @@ export default meta;
61
68
  export const Default = () => {
62
69
  const [space] = useSpaces();
63
70
  const graph = useComputeGraph(space);
64
- const { registry } = useContext(ComputeGraphContext) ?? {};
65
71
  const sheet = useTestSheet(space, graph, { cells: createTestCells() });
66
- if (!sheet || !space || !registry) {
72
+ if (!sheet || !space) {
67
73
  return null;
68
74
  }
69
75
 
70
76
  return (
71
77
  <AttendableContainer id={Obj.getURI(sheet)} classNames='contents'>
72
- <SheetArticle
73
- role='article'
74
- space={space}
75
- subject={sheet}
76
- attendableId='test'
77
- registry={registry}
78
- ignoreAttention
79
- />
78
+ <SheetArticle role='article' subject={sheet} attendableId='test' ignoreAttention />
80
79
  </AttendableContainer>
81
80
  );
82
81
  };
@@ -84,23 +83,15 @@ export const Default = () => {
84
83
  export const Spec = () => {
85
84
  const [space] = useSpaces();
86
85
  const graph = useComputeGraph(space);
87
- const { registry } = useContext(ComputeGraphContext) ?? {};
88
86
  const sheet = useTestSheet(space, graph, { cells: { A1: { value: 'Ready' } } });
89
- if (!sheet || !space || !registry) {
87
+ if (!sheet || !space) {
90
88
  return null;
91
89
  }
92
90
 
93
91
  return (
94
92
  <AttendableContainer id={Obj.getURI(sheet)} classNames='contents'>
95
93
  <div className='w-full grid grid-cols-[1fr_20rem]'>
96
- <SheetArticle
97
- role='article'
98
- space={space}
99
- subject={sheet}
100
- attendableId='test'
101
- registry={registry}
102
- ignoreAttention
103
- />
94
+ <SheetArticle role='article' subject={sheet} attendableId='test' ignoreAttention />
104
95
  <div data-testid='grid.range-list'>
105
96
  <RangeList sheet={sheet} />
106
97
  </div>