@dxos/plugin-sheet 0.8.4-main.28f8d3d → 0.8.4-main.406dc2a

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 (148) hide show
  1. package/dist/lib/browser/{SheetContainer-JZNFXBW3.mjs → SheetContainer-VL34UND4.mjs} +28 -28
  2. package/dist/lib/browser/SheetContainer-VL34UND4.mjs.map +7 -0
  3. package/dist/lib/browser/{anchor-sort-VRX3YZKT.mjs → anchor-sort-3N44DS5F.mjs} +5 -5
  4. package/dist/lib/browser/{anchor-sort-VRX3YZKT.mjs.map → anchor-sort-3N44DS5F.mjs.map} +1 -1
  5. package/dist/lib/browser/{chunk-ELAASQ5H.mjs → chunk-ADK2HW4A.mjs} +24 -17
  6. package/dist/lib/browser/chunk-ADK2HW4A.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-6AKBCBL4.mjs → chunk-CSBSADPQ.mjs} +2 -4
  8. package/dist/lib/browser/chunk-CSBSADPQ.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-VTTKAHAY.mjs → chunk-SSN4HYJL.mjs} +6 -6
  10. package/dist/lib/browser/chunk-SSN4HYJL.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-BVTHIA5U.mjs → chunk-ZJWJMX4E.mjs} +25 -20
  12. package/dist/lib/browser/chunk-ZJWJMX4E.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-KJWZUQVA.mjs → chunk-ZMPNHFIP.mjs} +4 -4
  14. package/dist/lib/browser/chunk-ZMPNHFIP.mjs.map +7 -0
  15. package/dist/lib/browser/compute-graph-registry-MF65HGGM.mjs +21 -0
  16. package/dist/lib/browser/compute-graph-registry-MF65HGGM.mjs.map +7 -0
  17. package/dist/lib/browser/index.mjs +12 -13
  18. package/dist/lib/browser/index.mjs.map +3 -3
  19. package/dist/lib/browser/{intent-resolver-SSLPTP5O.mjs → intent-resolver-BQLV6IAA.mjs} +7 -7
  20. package/dist/lib/browser/intent-resolver-BQLV6IAA.mjs.map +7 -0
  21. package/dist/lib/browser/{markdown-3VPZYNGU.mjs → markdown-RMTMI237.mjs} +6 -6
  22. package/dist/lib/browser/{markdown-3VPZYNGU.mjs.map → markdown-RMTMI237.mjs.map} +1 -1
  23. package/dist/lib/browser/meta.json +1 -1
  24. package/dist/lib/browser/{react-surface-Y7KTPJW2.mjs → react-surface-7ZDMQDCT.mjs} +11 -11
  25. package/dist/lib/browser/react-surface-7ZDMQDCT.mjs.map +7 -0
  26. package/dist/lib/browser/types/index.mjs +2 -2
  27. package/dist/lib/node-esm/{SheetContainer-GOIBAE2P.mjs → SheetContainer-NWJ7L6FC.mjs} +28 -28
  28. package/dist/lib/node-esm/SheetContainer-NWJ7L6FC.mjs.map +7 -0
  29. package/dist/lib/node-esm/{anchor-sort-YM2UBIKL.mjs → anchor-sort-YL2OZHYM.mjs} +5 -5
  30. package/dist/lib/node-esm/{anchor-sort-YM2UBIKL.mjs.map → anchor-sort-YL2OZHYM.mjs.map} +1 -1
  31. package/dist/lib/node-esm/{chunk-4L5CIB7E.mjs → chunk-BZAPYBSH.mjs} +24 -17
  32. package/dist/lib/node-esm/chunk-BZAPYBSH.mjs.map +7 -0
  33. package/dist/lib/node-esm/{chunk-3K5VNYOF.mjs → chunk-H3GSD33H.mjs} +2 -4
  34. package/dist/lib/node-esm/chunk-H3GSD33H.mjs.map +7 -0
  35. package/dist/lib/node-esm/{chunk-FXRXBHWM.mjs → chunk-IK4O7FUJ.mjs} +6 -6
  36. package/dist/lib/node-esm/chunk-IK4O7FUJ.mjs.map +7 -0
  37. package/dist/lib/node-esm/{chunk-6SK5LJ5S.mjs → chunk-LN6ZSAII.mjs} +4 -4
  38. package/dist/lib/node-esm/chunk-LN6ZSAII.mjs.map +7 -0
  39. package/dist/lib/node-esm/{chunk-56HYMW55.mjs → chunk-YL7BVJPC.mjs} +25 -20
  40. package/dist/lib/node-esm/chunk-YL7BVJPC.mjs.map +7 -0
  41. package/dist/lib/node-esm/compute-graph-registry-P2O5LDFZ.mjs +22 -0
  42. package/dist/lib/node-esm/compute-graph-registry-P2O5LDFZ.mjs.map +7 -0
  43. package/dist/lib/node-esm/index.mjs +12 -13
  44. package/dist/lib/node-esm/index.mjs.map +3 -3
  45. package/dist/lib/node-esm/{intent-resolver-5P6DBGK2.mjs → intent-resolver-MV5ZFXAQ.mjs} +7 -7
  46. package/dist/lib/node-esm/intent-resolver-MV5ZFXAQ.mjs.map +7 -0
  47. package/dist/lib/node-esm/{markdown-SFDGQWYE.mjs → markdown-EDIWHA3P.mjs} +6 -6
  48. package/dist/lib/node-esm/{markdown-SFDGQWYE.mjs.map → markdown-EDIWHA3P.mjs.map} +1 -1
  49. package/dist/lib/node-esm/meta.json +1 -1
  50. package/dist/lib/node-esm/{react-surface-6Z5FAOBH.mjs → react-surface-TUME5MM2.mjs} +11 -11
  51. package/dist/lib/node-esm/react-surface-TUME5MM2.mjs.map +7 -0
  52. package/dist/lib/node-esm/types/index.mjs +2 -2
  53. package/dist/types/src/SheetPlugin.d.ts +1 -1
  54. package/dist/types/src/SheetPlugin.d.ts.map +1 -1
  55. package/dist/types/src/capabilities/anchor-sort.d.ts +2 -2
  56. package/dist/types/src/capabilities/compute-graph-registry.d.ts +1 -1
  57. package/dist/types/src/capabilities/compute-graph-registry.d.ts.map +1 -1
  58. package/dist/types/src/capabilities/index.d.ts +6 -8
  59. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  60. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  61. package/dist/types/src/capabilities/markdown.d.ts +1 -3
  62. package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
  63. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  64. package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts +9 -4
  65. package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts.map +1 -1
  66. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts +50 -3
  67. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +1 -1
  68. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts +11 -20
  69. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts.map +1 -1
  70. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +1 -1
  71. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts +52 -5
  72. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +1 -1
  73. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -1
  74. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +86 -4
  75. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -1
  76. package/dist/types/src/extensions/compute.d.ts +1 -1
  77. package/dist/types/src/extensions/compute.d.ts.map +1 -1
  78. package/dist/types/src/extensions/compute.stories.d.ts +10 -13
  79. package/dist/types/src/extensions/compute.stories.d.ts.map +1 -1
  80. package/dist/types/src/extensions/editor/index.d.ts +1 -1
  81. package/dist/types/src/extensions/editor/index.d.ts.map +1 -1
  82. package/dist/types/src/extensions/editor/{extension.d.ts → sheet-extension.d.ts} +1 -1
  83. package/dist/types/src/extensions/editor/sheet-extension.d.ts.map +1 -0
  84. package/dist/types/src/extensions/editor/sheet-extension.test.d.ts +2 -0
  85. package/dist/types/src/extensions/editor/sheet-extension.test.d.ts.map +1 -0
  86. package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
  87. package/dist/types/src/meta.d.ts +0 -1
  88. package/dist/types/src/meta.d.ts.map +1 -1
  89. package/dist/types/src/model/sheet-model.d.ts +1 -1
  90. package/dist/types/src/model/sheet-model.d.ts.map +1 -1
  91. package/dist/types/src/testing/testing.d.ts +1 -1
  92. package/dist/types/src/testing/testing.d.ts.map +1 -1
  93. package/dist/types/src/types/schema.d.ts +1 -1
  94. package/dist/types/src/types/schema.d.ts.map +1 -1
  95. package/dist/types/src/types/types.d.ts +7 -7
  96. package/dist/types/src/types/types.d.ts.map +1 -1
  97. package/dist/types/tsconfig.tsbuildinfo +1 -1
  98. package/package.json +63 -63
  99. package/src/SheetPlugin.tsx +68 -60
  100. package/src/capabilities/capabilities.ts +2 -2
  101. package/src/capabilities/compute-graph-registry.ts +8 -13
  102. package/src/capabilities/intent-resolver.ts +2 -2
  103. package/src/capabilities/react-surface.tsx +3 -3
  104. package/src/components/ComputeGraph/compute-graph.stories.tsx +10 -10
  105. package/src/components/GridSheet/GridSheet.stories.tsx +16 -11
  106. package/src/components/GridSheet/GridSheet.tsx +8 -8
  107. package/src/components/GridSheet/SheetCellEditor.stories.tsx +38 -40
  108. package/src/components/RangeList/RangeList.tsx +3 -3
  109. package/src/components/SheetContainer/SheetContainer.stories.tsx +37 -37
  110. package/src/components/SheetContainer/SheetContainer.tsx +5 -1
  111. package/src/components/SheetToolbar/SheetToolbar.stories.tsx +17 -12
  112. package/src/components/SheetToolbar/SheetToolbar.tsx +11 -11
  113. package/src/components/SheetToolbar/align.ts +3 -3
  114. package/src/components/SheetToolbar/style.ts +2 -2
  115. package/src/extensions/compute.stories.tsx +26 -23
  116. package/src/extensions/compute.ts +1 -2
  117. package/src/extensions/editor/index.ts +1 -1
  118. package/src/extensions/editor/{extension.test.ts → sheet-extension.test.ts} +1 -1
  119. package/src/integrations/thread-ranges.ts +5 -4
  120. package/src/meta.ts +1 -3
  121. package/src/model/sheet-model.ts +1 -1
  122. package/src/testing/testing.tsx +8 -2
  123. package/src/types/schema.ts +1 -1
  124. package/src/types/types.ts +3 -3
  125. package/dist/lib/browser/SheetContainer-JZNFXBW3.mjs.map +0 -7
  126. package/dist/lib/browser/chunk-6AKBCBL4.mjs.map +0 -7
  127. package/dist/lib/browser/chunk-BVTHIA5U.mjs.map +0 -7
  128. package/dist/lib/browser/chunk-ELAASQ5H.mjs.map +0 -7
  129. package/dist/lib/browser/chunk-KJWZUQVA.mjs.map +0 -7
  130. package/dist/lib/browser/chunk-VTTKAHAY.mjs.map +0 -7
  131. package/dist/lib/browser/compute-graph-registry-6YJHXORG.mjs +0 -30
  132. package/dist/lib/browser/compute-graph-registry-6YJHXORG.mjs.map +0 -7
  133. package/dist/lib/browser/intent-resolver-SSLPTP5O.mjs.map +0 -7
  134. package/dist/lib/browser/react-surface-Y7KTPJW2.mjs.map +0 -7
  135. package/dist/lib/node-esm/SheetContainer-GOIBAE2P.mjs.map +0 -7
  136. package/dist/lib/node-esm/chunk-3K5VNYOF.mjs.map +0 -7
  137. package/dist/lib/node-esm/chunk-4L5CIB7E.mjs.map +0 -7
  138. package/dist/lib/node-esm/chunk-56HYMW55.mjs.map +0 -7
  139. package/dist/lib/node-esm/chunk-6SK5LJ5S.mjs.map +0 -7
  140. package/dist/lib/node-esm/chunk-FXRXBHWM.mjs.map +0 -7
  141. package/dist/lib/node-esm/compute-graph-registry-ET5KJNLV.mjs +0 -31
  142. package/dist/lib/node-esm/compute-graph-registry-ET5KJNLV.mjs.map +0 -7
  143. package/dist/lib/node-esm/intent-resolver-5P6DBGK2.mjs.map +0 -7
  144. package/dist/lib/node-esm/react-surface-6Z5FAOBH.mjs.map +0 -7
  145. package/dist/types/src/extensions/editor/extension.d.ts.map +0 -1
  146. package/dist/types/src/extensions/editor/extension.test.d.ts +0 -2
  147. package/dist/types/src/extensions/editor/extension.test.d.ts.map +0 -1
  148. /package/src/extensions/editor/{extension.ts → sheet-extension.ts} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-sheet",
3
- "version": "0.8.4-main.28f8d3d",
3
+ "version": "0.8.4-main.406dc2a",
4
4
  "description": "Braneframe sketch plugin",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -35,10 +35,10 @@
35
35
  "src"
36
36
  ],
37
37
  "dependencies": {
38
- "@codemirror/autocomplete": "^6.18.1",
39
- "@codemirror/language": "^6.10.3",
40
- "@codemirror/state": "^6.4.1",
41
- "@codemirror/view": "^6.34.1",
38
+ "@codemirror/autocomplete": "^6.19.0",
39
+ "@codemirror/language": "^6.11.3",
40
+ "@codemirror/state": "^6.5.2",
41
+ "@codemirror/view": "^6.38.4",
42
42
  "@dnd-kit/core": "^6.0.5",
43
43
  "@dnd-kit/modifiers": "^6.0.0",
44
44
  "@dnd-kit/sortable": "^7.0.1",
@@ -48,81 +48,81 @@
48
48
  "@lezer/lezer": "^1.1.2",
49
49
  "@lezer/lr": "^1.4.2",
50
50
  "@preact-signals/safe-react": "^0.9.0",
51
- "@preact/signals-core": "^1.9.0",
51
+ "@preact/signals-core": "^1.12.1",
52
52
  "@radix-ui/react-context": "1.1.1",
53
53
  "codemirror-lang-spreadsheet": "^1.3.0",
54
54
  "date-fns": "^3.3.1",
55
55
  "lodash.defaultsdeep": "^4.6.1",
56
56
  "re-resizable": "^6.9.17",
57
- "react-markdown": "^8.0.5",
57
+ "react-markdown": "^10.1.0",
58
58
  "react-resize-detector": "^11.0.1",
59
- "@dxos/app-framework": "0.8.4-main.28f8d3d",
60
- "@dxos/client": "0.8.4-main.28f8d3d",
61
- "@dxos/async": "0.8.4-main.28f8d3d",
62
- "@dxos/compute": "0.8.4-main.28f8d3d",
63
- "@dxos/crypto": "0.8.4-main.28f8d3d",
64
- "@dxos/context": "0.8.4-main.28f8d3d",
65
- "@dxos/debug": "0.8.4-main.28f8d3d",
66
- "@dxos/echo": "0.8.4-main.28f8d3d",
67
- "@dxos/functions": "0.8.4-main.28f8d3d",
68
- "@dxos/echo-schema": "0.8.4-main.28f8d3d",
69
- "@dxos/invariant": "0.8.4-main.28f8d3d",
70
- "@dxos/lit-grid": "0.8.4-main.28f8d3d",
71
- "@dxos/keys": "0.8.4-main.28f8d3d",
72
- "@dxos/live-object": "0.8.4-main.28f8d3d",
73
- "@dxos/log": "0.8.4-main.28f8d3d",
74
- "@dxos/plugin-attention": "0.8.4-main.28f8d3d",
75
- "@dxos/plugin-client": "0.8.4-main.28f8d3d",
76
- "@dxos/plugin-deck": "0.8.4-main.28f8d3d",
77
- "@dxos/plugin-graph": "0.8.4-main.28f8d3d",
78
- "@dxos/plugin-markdown": "0.8.4-main.28f8d3d",
79
- "@dxos/plugin-script": "0.8.4-main.28f8d3d",
80
- "@dxos/plugin-space": "0.8.4-main.28f8d3d",
81
- "@dxos/plugin-stack": "0.8.4-main.28f8d3d",
82
- "@dxos/plugin-thread": "0.8.4-main.28f8d3d",
83
- "@dxos/react-client": "0.8.4-main.28f8d3d",
84
- "@dxos/react-hooks": "0.8.4-main.28f8d3d",
85
- "@dxos/react-ui-attention": "0.8.4-main.28f8d3d",
86
- "@dxos/react-ui-editor": "0.8.4-main.28f8d3d",
87
- "@dxos/react-ui-grid": "0.8.4-main.28f8d3d",
88
- "@dxos/react-ui-form": "0.8.4-main.28f8d3d",
89
- "@dxos/react-ui-list": "0.8.4-main.28f8d3d",
90
- "@dxos/react-ui-menu": "0.8.4-main.28f8d3d",
91
- "@dxos/react-ui-stack": "0.8.4-main.28f8d3d",
92
- "@dxos/schema": "0.8.4-main.28f8d3d",
93
- "@dxos/util": "0.8.4-main.28f8d3d"
59
+ "@dxos/async": "0.8.4-main.406dc2a",
60
+ "@dxos/client": "0.8.4-main.406dc2a",
61
+ "@dxos/context": "0.8.4-main.406dc2a",
62
+ "@dxos/compute": "0.8.4-main.406dc2a",
63
+ "@dxos/app-framework": "0.8.4-main.406dc2a",
64
+ "@dxos/crypto": "0.8.4-main.406dc2a",
65
+ "@dxos/debug": "0.8.4-main.406dc2a",
66
+ "@dxos/echo": "0.8.4-main.406dc2a",
67
+ "@dxos/functions": "0.8.4-main.406dc2a",
68
+ "@dxos/invariant": "0.8.4-main.406dc2a",
69
+ "@dxos/keys": "0.8.4-main.406dc2a",
70
+ "@dxos/lit-grid": "0.8.4-main.406dc2a",
71
+ "@dxos/live-object": "0.8.4-main.406dc2a",
72
+ "@dxos/plugin-attention": "0.8.4-main.406dc2a",
73
+ "@dxos/plugin-automation": "0.8.4-main.406dc2a",
74
+ "@dxos/plugin-client": "0.8.4-main.406dc2a",
75
+ "@dxos/log": "0.8.4-main.406dc2a",
76
+ "@dxos/plugin-deck": "0.8.4-main.406dc2a",
77
+ "@dxos/plugin-graph": "0.8.4-main.406dc2a",
78
+ "@dxos/plugin-markdown": "0.8.4-main.406dc2a",
79
+ "@dxos/plugin-script": "0.8.4-main.406dc2a",
80
+ "@dxos/plugin-space": "0.8.4-main.406dc2a",
81
+ "@dxos/react-client": "0.8.4-main.406dc2a",
82
+ "@dxos/react-hooks": "0.8.4-main.406dc2a",
83
+ "@dxos/plugin-thread": "0.8.4-main.406dc2a",
84
+ "@dxos/plugin-stack": "0.8.4-main.406dc2a",
85
+ "@dxos/react-ui-attention": "0.8.4-main.406dc2a",
86
+ "@dxos/react-ui-editor": "0.8.4-main.406dc2a",
87
+ "@dxos/react-ui-form": "0.8.4-main.406dc2a",
88
+ "@dxos/react-ui-grid": "0.8.4-main.406dc2a",
89
+ "@dxos/react-ui-list": "0.8.4-main.406dc2a",
90
+ "@dxos/react-ui-menu": "0.8.4-main.406dc2a",
91
+ "@dxos/react-ui-stack": "0.8.4-main.406dc2a",
92
+ "@dxos/schema": "0.8.4-main.406dc2a",
93
+ "@dxos/util": "0.8.4-main.406dc2a"
94
94
  },
95
95
  "devDependencies": {
96
- "@effect-rx/rx-react": "0.38.0",
97
- "@effect/platform": "0.90.2",
96
+ "@effect-rx/rx-react": "0.42.4",
97
+ "@effect/platform": "0.92.1",
98
98
  "@lezer/generator": "^1.7.1",
99
99
  "@tldraw/indices": "^2.0.0-alpha.14",
100
100
  "@types/lodash.defaultsdeep": "^4.6.6",
101
- "@types/react": "~18.2.0",
102
- "@types/react-dom": "~18.2.0",
101
+ "@types/react": "~19.2.2",
102
+ "@types/react-dom": "~19.2.1",
103
103
  "@types/react-window": "^1.8.8",
104
- "effect": "3.17.7",
105
- "react": "~18.2.0",
106
- "react-dom": "~18.2.0",
107
- "vite": "5.4.7",
108
- "@dxos/lit-grid": "0.8.4-main.28f8d3d",
109
- "@dxos/random": "0.8.4-main.28f8d3d",
110
- "@dxos/react-ui": "0.8.4-main.28f8d3d",
111
- "@dxos/react-ui-theme": "0.8.4-main.28f8d3d",
112
- "@dxos/react-ui-syntax-highlighter": "0.8.4-main.28f8d3d",
113
- "@dxos/storybook-utils": "0.8.4-main.28f8d3d",
114
- "@dxos/react-ui-types": "0.8.4-main.28f8d3d",
115
- "@dxos/test-utils": "0.8.4-main.28f8d3d",
116
- "@dxos/echo-generator": "0.8.4-main.28f8d3d"
104
+ "effect": "3.18.3",
105
+ "react": "~19.2.0",
106
+ "react-dom": "~19.2.0",
107
+ "vite": "7.1.9",
108
+ "@dxos/lit-grid": "0.8.4-main.406dc2a",
109
+ "@dxos/echo-generator": "0.8.4-main.406dc2a",
110
+ "@dxos/react-ui-syntax-highlighter": "0.8.4-main.406dc2a",
111
+ "@dxos/react-ui": "0.8.4-main.406dc2a",
112
+ "@dxos/react-ui-types": "0.8.4-main.406dc2a",
113
+ "@dxos/react-ui-theme": "0.8.4-main.406dc2a",
114
+ "@dxos/storybook-utils": "0.8.4-main.406dc2a",
115
+ "@dxos/test-utils": "0.8.4-main.406dc2a",
116
+ "@dxos/random": "0.8.4-main.406dc2a"
117
117
  },
118
118
  "peerDependencies": {
119
119
  "@effect-rx/rx-react": "^0.34.1",
120
120
  "@effect/platform": "^0.80.12",
121
121
  "effect": "^3.13.3",
122
- "react": "~18.2.0",
123
- "react-dom": "~18.2.0",
124
- "@dxos/react-ui": "0.8.4-main.28f8d3d",
125
- "@dxos/react-ui-theme": "0.8.4-main.28f8d3d"
122
+ "react": "^19.0.0",
123
+ "react-dom": "^19.0.0",
124
+ "@dxos/react-ui": "0.8.4-main.406dc2a",
125
+ "@dxos/react-ui-theme": "0.8.4-main.406dc2a"
126
126
  },
127
127
  "publishConfig": {
128
128
  "access": "public"
@@ -2,7 +2,16 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from '@dxos/app-framework';
5
+ import {
6
+ Capabilities,
7
+ Events,
8
+ allOf,
9
+ contributes,
10
+ createIntent,
11
+ defineModule,
12
+ definePlugin,
13
+ } from '@dxos/app-framework';
14
+ import { AutomationEvents } from '@dxos/plugin-automation';
6
15
  import { ClientEvents } from '@dxos/plugin-client';
7
16
  import { MarkdownEvents } from '@dxos/plugin-markdown';
8
17
  import { SpaceCapabilities } from '@dxos/plugin-space';
@@ -14,63 +23,62 @@ import { serializer } from './serializer';
14
23
  import { translations } from './translations';
15
24
  import { SheetAction, SheetType } from './types';
16
25
 
17
- export const SheetPlugin = () =>
18
- definePlugin(meta, [
19
- defineModule({
20
- id: `${meta.id}/module/compute-graph-registry`,
21
- activatesOn: ClientEvents.ClientReady,
22
- activate: ComputeGraphRegistry,
23
- }),
24
- defineModule({
25
- id: `${meta.id}/module/translations`,
26
- activatesOn: Events.SetupTranslations,
27
- activate: () => contributes(Capabilities.Translations, translations),
28
- }),
29
- defineModule({
30
- id: `${meta.id}/module/metadata`,
31
- activatesOn: Events.SetupMetadata,
32
- activate: () =>
33
- contributes(Capabilities.Metadata, {
34
- id: SheetType.typename,
35
- metadata: {
36
- label: (object: SheetType) => object.name,
37
- icon: 'ph--grid-nine--regular',
38
- serializer,
39
- comments: 'anchored',
40
- },
26
+ export const SheetPlugin = definePlugin(meta, () => [
27
+ defineModule({
28
+ id: `${meta.id}/module/compute-graph-registry`,
29
+ activatesOn: allOf(ClientEvents.ClientReady, AutomationEvents.ComputeRuntimeReady),
30
+ activate: ComputeGraphRegistry,
31
+ }),
32
+ defineModule({
33
+ id: `${meta.id}/module/translations`,
34
+ activatesOn: Events.SetupTranslations,
35
+ activate: () => contributes(Capabilities.Translations, translations),
36
+ }),
37
+ defineModule({
38
+ id: `${meta.id}/module/metadata`,
39
+ activatesOn: Events.SetupMetadata,
40
+ activate: () =>
41
+ contributes(Capabilities.Metadata, {
42
+ id: SheetType.typename,
43
+ metadata: {
44
+ label: (object: SheetType) => object.name,
45
+ icon: 'ph--grid-nine--regular',
46
+ serializer,
47
+ comments: 'anchored',
48
+ },
49
+ }),
50
+ }),
51
+ defineModule({
52
+ id: `${meta.id}/module/object-form`,
53
+ activatesOn: ClientEvents.SetupSchema,
54
+ activate: () =>
55
+ contributes(
56
+ SpaceCapabilities.ObjectForm,
57
+ defineObjectForm({
58
+ objectSchema: SheetType,
59
+ getIntent: (props, options) => createIntent(SheetAction.Create, { ...props, space: options.space }),
41
60
  }),
42
- }),
43
- defineModule({
44
- id: `${meta.id}/module/object-form`,
45
- activatesOn: ClientEvents.SetupSchema,
46
- activate: () =>
47
- contributes(
48
- SpaceCapabilities.ObjectForm,
49
- defineObjectForm({
50
- objectSchema: SheetType,
51
- getIntent: (props, options) => createIntent(SheetAction.Create, { ...props, space: options.space }),
52
- }),
53
- ),
54
- }),
55
- defineModule({
56
- id: `${meta.id}/module/markdown`,
57
- activatesOn: MarkdownEvents.SetupExtensions,
58
- activate: Markdown,
59
- }),
60
- defineModule({
61
- id: `${meta.id}/module/anchor-sort`,
62
- // TODO(wittjosiah): More relevant event?
63
- activatesOn: Events.AppGraphReady,
64
- activate: AnchorSort,
65
- }),
66
- defineModule({
67
- id: `${meta.id}/module/react-surface`,
68
- activatesOn: Events.SetupReactSurface,
69
- activate: ReactSurface,
70
- }),
71
- defineModule({
72
- id: `${meta.id}/module/intent-resolver`,
73
- activatesOn: Events.SetupIntentResolver,
74
- activate: IntentResolver,
75
- }),
76
- ]);
61
+ ),
62
+ }),
63
+ defineModule({
64
+ id: `${meta.id}/module/markdown`,
65
+ activatesOn: MarkdownEvents.SetupExtensions,
66
+ activate: Markdown,
67
+ }),
68
+ defineModule({
69
+ id: `${meta.id}/module/anchor-sort`,
70
+ // TODO(wittjosiah): More relevant event?
71
+ activatesOn: Events.AppGraphReady,
72
+ activate: AnchorSort,
73
+ }),
74
+ defineModule({
75
+ id: `${meta.id}/module/react-surface`,
76
+ activatesOn: Events.SetupReactSurface,
77
+ activate: ReactSurface,
78
+ }),
79
+ defineModule({
80
+ id: `${meta.id}/module/intent-resolver`,
81
+ activatesOn: Events.SetupIntentResolver,
82
+ activate: IntentResolver,
83
+ }),
84
+ ]);
@@ -5,10 +5,10 @@
5
5
  import { defineCapability } from '@dxos/app-framework';
6
6
  import { type ComputeGraphRegistry } from '@dxos/compute';
7
7
 
8
- import { SHEET_PLUGIN } from '../meta';
8
+ import { meta } from '../meta';
9
9
 
10
10
  export namespace SheetCapabilities {
11
11
  export const ComputeGraphRegistry = defineCapability<ComputeGraphRegistry>(
12
- `${SHEET_PLUGIN}/capability/compute-graph-registry`,
12
+ `${meta.id}/capability/compute-graph-registry`,
13
13
  );
14
14
  }
@@ -3,26 +3,21 @@
3
3
  //
4
4
 
5
5
  import { type PluginContext, contributes } from '@dxos/app-framework';
6
- import { ClientCapabilities } from '@dxos/plugin-client';
6
+ import { AutomationCapabilities } from '@dxos/plugin-automation';
7
7
 
8
8
  import { SheetCapabilities } from './capabilities';
9
9
 
10
- const isSecure = (protocol: string) => {
11
- return protocol === 'https:' || protocol === 'wss:';
12
- };
10
+ // Locally declare the Automation ComputeRuntime capability by ID to avoid direct import dependency.
13
11
 
14
12
  export default async (context: PluginContext) => {
15
- const client = context.getCapability(ClientCapabilities.Client);
16
- let remoteFunctionUrl: string | undefined;
17
- if (client.config.values.runtime?.services?.edge?.url) {
18
- const url = new URL('/functions', client.config.values.runtime?.services?.edge?.url);
19
- url.protocol = isSecure(url.protocol) ? 'https' : 'http';
20
- remoteFunctionUrl = url.toString();
21
- }
22
-
23
13
  // TODO(wittjosiah): This can probably be a module level import now due to lazy capability loading.
24
14
  // Async import removes direct dependency on hyperformula.
25
15
  const { defaultPlugins, ComputeGraphRegistry } = await import('@dxos/compute');
26
- const computeGraphRegistry = new ComputeGraphRegistry({ plugins: defaultPlugins, remoteFunctionUrl });
16
+ const computeRuntimeResolver = context.getCapability(AutomationCapabilities.ComputeRuntime);
17
+
18
+ const computeGraphRegistry = new ComputeGraphRegistry({
19
+ plugins: defaultPlugins,
20
+ computeRuntime: computeRuntimeResolver,
21
+ });
27
22
  return contributes(SheetCapabilities.ComputeGraphRegistry, computeGraphRegistry);
28
23
  };
@@ -4,7 +4,7 @@
4
4
 
5
5
  import { Capabilities, contributes, createResolver } from '@dxos/app-framework';
6
6
 
7
- import { SHEET_PLUGIN } from '../meta';
7
+ import { meta } from '../meta';
8
8
  import { SheetAction, createSheet } from '../types';
9
9
 
10
10
  export default () =>
@@ -26,7 +26,7 @@ export default () =>
26
26
  const undoData = model[axis === 'col' ? 'dropColumn' : 'dropRow'](axisIndex);
27
27
  return {
28
28
  undoable: {
29
- message: [`${axis} dropped label`, { ns: SHEET_PLUGIN }],
29
+ message: [`${axis} dropped label`, { ns: meta.id }],
30
30
  data: { ...undoData, model },
31
31
  },
32
32
  };
@@ -9,7 +9,7 @@ import { Obj } from '@dxos/echo';
9
9
  import { getSpace } from '@dxos/react-client/echo';
10
10
 
11
11
  import { ComputeGraphContextProvider, RangeList, SheetContainer } from '../components';
12
- import { SHEET_PLUGIN } from '../meta';
12
+ import { meta } from '../meta';
13
13
  import { SheetType } from '../types';
14
14
 
15
15
  import { SheetCapabilities } from './capabilities';
@@ -17,7 +17,7 @@ import { SheetCapabilities } from './capabilities';
17
17
  export default () =>
18
18
  contributes(Capabilities.ReactSurface, [
19
19
  createSurface({
20
- id: `${SHEET_PLUGIN}/sheet`,
20
+ id: `${meta.id}/sheet`,
21
21
  role: ['article', 'section'],
22
22
  filter: (data): data is { subject: SheetType } =>
23
23
  Obj.instanceOf(SheetType, data.subject) && !!getSpace(data.subject),
@@ -32,7 +32,7 @@ export default () =>
32
32
  },
33
33
  }),
34
34
  createSurface({
35
- id: `${SHEET_PLUGIN}/object-settings`,
35
+ id: `${meta.id}/object-settings`,
36
36
  role: 'object-settings',
37
37
  filter: (data): data is { subject: SheetType } => Obj.instanceOf(SheetType, data.subject),
38
38
  component: ({ data }) => <RangeList sheet={data.subject} />,
@@ -2,9 +2,7 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
6
-
7
- import { type Meta } from '@storybook/react-vite';
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
8
6
  import React, { useEffect, useRef, useState } from 'react';
9
7
 
10
8
  import { testFunctionPlugins } from '@dxos/compute/testing';
@@ -13,8 +11,8 @@ import { FunctionType } from '@dxos/functions';
13
11
  import { useSpace } from '@dxos/react-client/echo';
14
12
  import { withClientProvider } from '@dxos/react-client/testing';
15
13
  import { Button, Input, Toolbar } from '@dxos/react-ui';
14
+ import { withTheme } from '@dxos/react-ui/testing';
16
15
  import { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';
17
- import { withTheme } from '@dxos/storybook-utils';
18
16
 
19
17
  import { useSheetModel } from '../../model';
20
18
  import { withComputeGraphDecorator } from '../../testing';
@@ -24,7 +22,7 @@ import { useComputeGraph } from './ComputeGraphContextProvider';
24
22
 
25
23
  const FUNCTION_NAME = 'TEST';
26
24
 
27
- const Story = () => {
25
+ const DefaultStory = () => {
28
26
  const space = useSpace();
29
27
  const graph = useComputeGraph(space);
30
28
  const [sheet, setSheet] = useState<SheetType>();
@@ -83,16 +81,18 @@ const Story = () => {
83
81
  );
84
82
  };
85
83
 
86
- export const Default = {};
84
+ export const Default: Story = {};
87
85
 
88
- const meta: Meta = {
86
+ const meta = {
89
87
  title: 'plugins/plugin-sheet/functions',
88
+ render: DefaultStory,
90
89
  decorators: [
90
+ withTheme,
91
91
  withClientProvider({ types: [FunctionType, SheetType], createIdentity: true, createSpace: true }),
92
92
  withComputeGraphDecorator({ plugins: testFunctionPlugins }),
93
- withTheme,
94
93
  ],
95
- render: (args: any) => <Story {...args} />,
96
- };
94
+ } satisfies Meta<typeof DefaultStory>;
97
95
 
98
96
  export default meta;
97
+
98
+ type Story = StoryObj<typeof meta>;
@@ -2,16 +2,15 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
6
-
7
- import { type Meta } from '@storybook/react-vite';
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
8
6
  import React from 'react';
9
7
 
10
8
  import { IntentPlugin } from '@dxos/app-framework';
11
9
  import { withPluginManager } from '@dxos/app-framework/testing';
10
+ import { testFunctionPlugins } from '@dxos/compute/testing';
12
11
  import { useSpace } from '@dxos/react-client/echo';
13
12
  import { withClientProvider } from '@dxos/react-client/testing';
14
- import { withLayout, withTheme } from '@dxos/storybook-utils';
13
+ import { withTheme } from '@dxos/react-ui/testing';
15
14
 
16
15
  import { createTestCells, useTestSheet, withComputeGraphDecorator } from '../../testing';
17
16
  import { translations } from '../../translations';
@@ -31,24 +30,30 @@ export const Basic = () => {
31
30
 
32
31
  return (
33
32
  <SheetProvider graph={graph} sheet={sheet} ignoreAttention>
34
- <GridSheet />
33
+ <div role='none' className='grid bs-full is-full'>
34
+ <GridSheet />
35
+ </div>
35
36
  </SheetProvider>
36
37
  );
37
38
  };
38
39
 
39
- const meta: Meta = {
40
+ const meta = {
40
41
  title: 'plugins/plugin-sheet/GridSheet',
41
42
  component: GridSheet,
42
43
  decorators: [
43
- withClientProvider({ types: [SheetType], createSpace: true }),
44
- withComputeGraphDecorator(),
45
44
  withTheme,
46
- withLayout({ fullscreen: true, classNames: 'grid' }),
45
+ withClientProvider({ types: [SheetType], createSpace: true }),
46
+ withComputeGraphDecorator({ plugins: testFunctionPlugins }),
47
47
  withPluginManager({
48
48
  plugins: [IntentPlugin()],
49
49
  }),
50
50
  ],
51
- parameters: { translations },
52
- };
51
+ parameters: {
52
+ layout: 'fullscreen',
53
+ translations,
54
+ },
55
+ } satisfies Meta<typeof GridSheet>;
53
56
 
54
57
  export default meta;
58
+
59
+ type Story = StoryObj<typeof meta>;
@@ -34,7 +34,7 @@ import {
34
34
 
35
35
  import { type RangeController, rangeExtension, sheetExtension } from '../../extensions';
36
36
  import { useSelectThreadOnCellFocus, useUpdateFocusedCellOnThreadSelection } from '../../integrations';
37
- import { SHEET_PLUGIN } from '../../meta';
37
+ import { meta } from '../../meta';
38
38
  import { DEFAULT_COLS, DEFAULT_ROWS, SheetAction } from '../../types';
39
39
  import { useSheetContext } from '../SheetContext';
40
40
 
@@ -60,16 +60,16 @@ const frozen = {
60
60
  };
61
61
 
62
62
  const sheetColDefault = {
63
- frozenColsStart: { size: 48, readonly: true },
63
+ frozenColsStart: { size: 48, readonly: true, focusUnfurl: false },
64
64
  grid: { size: defaultColSize, resizeable: true },
65
65
  };
66
66
  const sheetRowDefault = {
67
- frozenRowsStart: { size: defaultRowSize, readonly: true },
67
+ frozenRowsStart: { size: defaultRowSize, readonly: true, focusUnfurl: false },
68
68
  grid: { size: defaultRowSize, resizeable: true },
69
69
  };
70
70
 
71
71
  export const GridSheet = () => {
72
- const { t } = useTranslation(SHEET_PLUGIN);
72
+ const { t } = useTranslation(meta.id);
73
73
  const { id, model, editing, setCursor, setRange, cursor, cursorFallbackRange, activeRefs, ignoreAttention } =
74
74
  useSheetContext();
75
75
  // NOTE(thure): using `useState` instead of `useRef` works with refs provided by `@lit/react` and gives us
@@ -77,7 +77,7 @@ export const GridSheet = () => {
77
77
  const [dxGrid, setDxGrid] = useState<DxGridElement | null>(null);
78
78
  const [extraplanarFocus, setExtraplanarFocus] = useState<DxGridPosition | null>(null);
79
79
  const { dispatchPromise: dispatch } = useIntentDispatcher();
80
- const rangeController = useRef<RangeController>();
80
+ const rangeController = useRef<RangeController>(null);
81
81
  const { hasAttention } = useAttention(id);
82
82
 
83
83
  const handleFocus = useCallback(
@@ -279,7 +279,7 @@ export const GridSheet = () => {
279
279
 
280
280
  const { columns, rows } = useSheetModelDxGridProps(dxGrid, model);
281
281
 
282
- const extension = useMemo(
282
+ const extensions = useMemo(
283
283
  () => [
284
284
  editorKeys({ onClose: handleClose, ...(editing?.initialContent && { onNav: handleClose }) }),
285
285
  sheetExtension({ functions: model.graph.getFunctions() }),
@@ -308,8 +308,8 @@ export const GridSheet = () => {
308
308
 
309
309
  return (
310
310
  // TODO(thure): Why are Table’s and Sheet’s editor boxes off by 1px?
311
- <div role='none' className='relative min-bs-0 [&_.cm-editor]:!border-lb [&_.cm-editor]:!border-transparent '>
312
- <GridCellEditor getCellContent={getCellContent} extension={extension} onBlur={handleBlur} />
311
+ <div role='none' className='relative min-bs-0 [&_.cm-editor]:!border-lb [&_.cm-editor]:!border-transparent'>
312
+ <GridCellEditor getCellContent={getCellContent} extensions={extensions} onBlur={handleBlur} />
313
313
  <Grid.Content
314
314
  initialCells={initialCells}
315
315
  limitColumns={DEFAULT_COLS}