@dxos/plugin-script 0.12.0-next-73daef452f1464b62efdbca75fb0067c1066f264 → 0.13.0

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 (329) hide show
  1. package/PLUGIN.mdl +93 -17
  2. package/README.md +1 -1
  3. package/dist/lib/Notebook.mjs +4 -5
  4. package/dist/lib/Notebook.mjs.map +1 -1
  5. package/dist/lib/ScriptCapabilities.mjs.map +1 -1
  6. package/dist/lib/ScriptOperation.mjs +1 -1
  7. package/dist/lib/ScriptOperation.mjs.map +1 -1
  8. package/dist/lib/ScriptOperationHandlerSet.mjs.map +1 -1
  9. package/dist/lib/ScriptSkill.mjs +1 -1
  10. package/dist/lib/ScriptSkill.mjs.map +1 -1
  11. package/dist/lib/capabilities.browser.mjs +51 -0
  12. package/dist/lib/capabilities.browser.mjs.map +1 -0
  13. package/dist/lib/capabilities.mjs +17 -7
  14. package/dist/lib/capabilities.mjs.map +1 -1
  15. package/dist/lib/capabilities.node.mjs +16 -4
  16. package/dist/lib/capabilities.node.mjs.map +1 -1
  17. package/dist/lib/capabilities.tauri.mjs +51 -0
  18. package/dist/lib/capabilities.tauri.mjs.map +1 -0
  19. package/dist/lib/capabilities.workerd.mjs +1 -1
  20. package/dist/lib/capabilities.workerd.mjs.map +1 -1
  21. package/dist/lib/chunk-DeploymentDialog.mjs +12 -9
  22. package/dist/lib/chunk-DeploymentDialog.mjs.map +1 -1
  23. package/dist/lib/chunk-NotebookArticle.mjs +37 -36
  24. package/dist/lib/chunk-NotebookArticle.mjs.map +1 -1
  25. package/dist/lib/chunk-PLUGIN.mjs +6 -0
  26. package/dist/lib/chunk-PLUGIN.mjs.map +1 -0
  27. package/dist/lib/chunk-ScriptArticle.mjs +14 -15
  28. package/dist/lib/chunk-ScriptArticle.mjs.map +1 -1
  29. package/dist/lib/chunk-ScriptProperties.mjs +91 -94
  30. package/dist/lib/chunk-ScriptProperties.mjs.map +1 -1
  31. package/dist/lib/chunk-ScriptSettings.mjs +11 -8
  32. package/dist/lib/chunk-ScriptSettings.mjs.map +1 -1
  33. package/dist/lib/chunk-TestContainer.mjs +5 -5
  34. package/dist/lib/chunk-TestContainer.mjs.map +1 -1
  35. package/dist/lib/chunk-app-graph-builder.mjs +2 -0
  36. package/dist/lib/chunk-app-graph-builder.mjs.map +1 -1
  37. package/dist/lib/chunk-compiler.mjs +87 -4
  38. package/dist/lib/chunk-compiler.mjs.map +1 -1
  39. package/dist/lib/chunk-create-object.mjs +1 -1
  40. package/dist/lib/chunk-create-script.mjs.map +1 -1
  41. package/dist/lib/chunk-create.mjs +4 -4
  42. package/dist/lib/chunk-create.mjs.map +1 -1
  43. package/dist/lib/chunk-definitions.mjs +246 -0
  44. package/dist/lib/chunk-definitions.mjs.map +1 -0
  45. package/dist/lib/chunk-delete.mjs +2 -2
  46. package/dist/lib/chunk-delete.mjs.map +1 -1
  47. package/dist/lib/chunk-deploy.mjs +16 -12
  48. package/dist/lib/chunk-deploy.mjs.map +1 -1
  49. package/dist/lib/chunk-errors.mjs +8 -0
  50. package/dist/lib/chunk-errors.mjs.map +1 -0
  51. package/dist/lib/chunk-functions.mjs +66 -246
  52. package/dist/lib/chunk-functions.mjs.map +1 -1
  53. package/dist/lib/chunk-inspect-invocations.mjs +3 -3
  54. package/dist/lib/chunk-inspect-invocations.mjs.map +1 -1
  55. package/dist/lib/chunk-install-function.mjs +11 -11
  56. package/dist/lib/chunk-install-function.mjs.map +1 -1
  57. package/dist/lib/chunk-invoke.mjs +6 -6
  58. package/dist/lib/chunk-invoke.mjs.map +1 -1
  59. package/dist/lib/chunk-operation-handler.mjs +16 -2
  60. package/dist/lib/chunk-operation-handler.mjs.map +1 -1
  61. package/dist/lib/chunk-query-deployed-functions.mjs +5 -6
  62. package/dist/lib/chunk-query-deployed-functions.mjs.map +1 -1
  63. package/dist/lib/chunk-react-surface.mjs +14 -10
  64. package/dist/lib/chunk-react-surface.mjs.map +1 -1
  65. package/dist/lib/chunk-read.mjs +4 -3
  66. package/dist/lib/chunk-read.mjs.map +1 -1
  67. package/dist/lib/chunk-settings.mjs +2 -2
  68. package/dist/lib/chunk-settings.mjs.map +1 -1
  69. package/dist/lib/chunk-skill-definition.mjs +1 -1
  70. package/dist/lib/chunk-templates.mjs +3 -3
  71. package/dist/lib/chunk-update.mjs +4 -3
  72. package/dist/lib/chunk-update.mjs.map +1 -1
  73. package/dist/lib/components.mjs +114 -123
  74. package/dist/lib/components.mjs.map +1 -1
  75. package/dist/lib/containers.mjs.map +1 -1
  76. package/dist/lib/hooks.mjs +96 -16
  77. package/dist/lib/hooks.mjs.map +1 -1
  78. package/dist/lib/index.mjs +5 -3
  79. package/dist/lib/meta.mjs.map +1 -1
  80. package/dist/lib/ns/ScriptFunction.mjs +12 -0
  81. package/dist/lib/ns/ScriptFunction.mjs.map +1 -0
  82. package/dist/lib/ns/Templates.mjs +11 -0
  83. package/dist/lib/ns/Templates.mjs.map +1 -0
  84. package/dist/lib/testing.mjs +1 -1
  85. package/dist/lib/translations.mjs +2 -1
  86. package/dist/lib/translations.mjs.map +1 -1
  87. package/dist/types/src/ScriptFunction.d.ts +2 -0
  88. package/dist/types/src/ScriptFunction.d.ts.map +1 -0
  89. package/dist/types/src/Templates.d.ts +2 -0
  90. package/dist/types/src/Templates.d.ts.map +1 -0
  91. package/dist/types/src/capabilities/ScriptSurfaces.d.ts.map +1 -1
  92. package/dist/types/src/capabilities/compiler.d.ts +2 -1
  93. package/dist/types/src/capabilities/compiler.d.ts.map +1 -1
  94. package/dist/types/src/capabilities/errors.d.ts +33 -0
  95. package/dist/types/src/capabilities/errors.d.ts.map +1 -0
  96. package/dist/types/src/capabilities/gen/browser.d.ts +12 -0
  97. package/dist/types/src/capabilities/gen/browser.d.ts.map +1 -0
  98. package/dist/types/src/capabilities/gen/node.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/gen/tauri.d.ts +12 -0
  100. package/dist/types/src/capabilities/gen/tauri.d.ts.map +1 -0
  101. package/dist/types/src/capabilities/gen/workerd.d.ts.map +1 -1
  102. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  103. package/dist/types/src/compiler/index.d.ts +1 -1
  104. package/dist/types/src/compiler/index.d.ts.map +1 -1
  105. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +3 -3
  106. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -1
  107. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts.map +1 -1
  108. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +4 -4
  109. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -1
  110. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +10 -0
  111. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -1
  112. package/dist/types/src/components/NotebookStack/index.d.ts +2 -2
  113. package/dist/types/src/components/NotebookStack/index.d.ts.map +1 -1
  114. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +2 -2
  115. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  116. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +10 -0
  117. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  118. package/dist/types/src/components/ScriptToolbar/index.d.ts +1 -1
  119. package/dist/types/src/components/ScriptToolbar/index.d.ts.map +1 -1
  120. package/dist/types/src/components/TestPanel/TestPanel.d.ts +2 -2
  121. package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
  122. package/dist/types/src/components/TestPanel/index.d.ts +1 -1
  123. package/dist/types/src/components/TestPanel/index.d.ts.map +1 -1
  124. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +2 -2
  125. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  126. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +1 -1
  127. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  128. package/dist/types/src/components/TypescriptEditor/index.d.ts +1 -1
  129. package/dist/types/src/components/TypescriptEditor/index.d.ts.map +1 -1
  130. package/dist/types/src/components/index.d.ts +4 -5
  131. package/dist/types/src/components/index.d.ts.map +1 -1
  132. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.d.ts +1 -1
  133. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
  134. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts +10 -0
  135. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
  136. package/dist/types/src/containers/DeploymentDialog/index.d.ts +1 -1
  137. package/dist/types/src/containers/DeploymentDialog/index.d.ts.map +1 -1
  138. package/dist/types/src/containers/NotebookArticle/NotebookArticle.d.ts +1 -1
  139. package/dist/types/src/containers/NotebookArticle/NotebookArticle.d.ts.map +1 -1
  140. package/dist/types/src/containers/NotebookArticle/NotebookArticle.stories.d.ts +1 -1
  141. package/dist/types/src/containers/NotebookArticle/NotebookArticle.stories.d.ts.map +1 -1
  142. package/dist/types/src/containers/NotebookArticle/index.d.ts +1 -1
  143. package/dist/types/src/containers/NotebookArticle/index.d.ts.map +1 -1
  144. package/dist/types/src/containers/ScriptArticle/ScriptArticle.d.ts +1 -1
  145. package/dist/types/src/containers/ScriptArticle/ScriptArticle.d.ts.map +1 -1
  146. package/dist/types/src/containers/ScriptArticle/ScriptArticle.stories.d.ts +10 -0
  147. package/dist/types/src/containers/ScriptArticle/ScriptArticle.stories.d.ts.map +1 -1
  148. package/dist/types/src/containers/ScriptArticle/index.d.ts +1 -1
  149. package/dist/types/src/containers/ScriptArticle/index.d.ts.map +1 -1
  150. package/dist/types/src/containers/ScriptProperties/FunctionBinding.d.ts.map +1 -1
  151. package/dist/types/src/containers/ScriptProperties/FunctionPublishing.d.ts.map +1 -1
  152. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts +1 -1
  153. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts.map +1 -1
  154. package/dist/types/src/containers/ScriptProperties/ScriptProperties.stories.d.ts +10 -0
  155. package/dist/types/src/containers/ScriptProperties/ScriptProperties.stories.d.ts.map +1 -1
  156. package/dist/types/src/containers/ScriptProperties/SkillEditor.d.ts.map +1 -1
  157. package/dist/types/src/containers/ScriptProperties/index.d.ts +1 -1
  158. package/dist/types/src/containers/ScriptProperties/index.d.ts.map +1 -1
  159. package/dist/types/src/containers/ScriptSettings/ScriptSettings.d.ts +2 -2
  160. package/dist/types/src/containers/ScriptSettings/ScriptSettings.d.ts.map +1 -1
  161. package/dist/types/src/containers/ScriptSettings/ScriptSettings.stories.d.ts +11 -1
  162. package/dist/types/src/containers/ScriptSettings/ScriptSettings.stories.d.ts.map +1 -1
  163. package/dist/types/src/containers/ScriptSettings/index.d.ts +1 -1
  164. package/dist/types/src/containers/ScriptSettings/index.d.ts.map +1 -1
  165. package/dist/types/src/containers/TestContainer/index.d.ts +1 -1
  166. package/dist/types/src/containers/TestContainer/index.d.ts.map +1 -1
  167. package/dist/types/src/containers/index.d.ts.map +1 -1
  168. package/dist/types/src/hooks/deploy.d.ts +3 -3
  169. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  170. package/dist/types/src/hooks/index.d.ts +6 -6
  171. package/dist/types/src/hooks/index.d.ts.map +1 -1
  172. package/dist/types/src/hooks/useCompiler.d.ts +1 -1
  173. package/dist/types/src/hooks/useCompiler.d.ts.map +1 -1
  174. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts +1 -1
  175. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  176. package/dist/types/src/hooks/useToolbarState.d.ts +2 -2
  177. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
  178. package/dist/types/src/index.d.ts +5 -3
  179. package/dist/types/src/index.d.ts.map +1 -1
  180. package/dist/types/src/notebook/compute-graph.d.ts +3 -3
  181. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -1
  182. package/dist/types/src/notebook/index.d.ts +1 -1
  183. package/dist/types/src/notebook/index.d.ts.map +1 -1
  184. package/dist/types/src/operations/ScriptOperationHandlerSet.d.ts.map +1 -1
  185. package/dist/types/src/operations/index.d.ts +1 -1
  186. package/dist/types/src/operations/index.d.ts.map +1 -1
  187. package/dist/types/src/skills/ScriptSkill.d.ts.map +1 -1
  188. package/dist/types/src/skills/functions/definitions.d.ts +8 -6
  189. package/dist/types/src/skills/functions/definitions.d.ts.map +1 -1
  190. package/dist/types/src/skills/functions/deploy.d.ts +4 -2
  191. package/dist/types/src/skills/functions/deploy.d.ts.map +1 -1
  192. package/dist/types/src/skills/functions/errors.d.ts +33 -0
  193. package/dist/types/src/skills/functions/errors.d.ts.map +1 -0
  194. package/dist/types/src/skills/functions/index.d.ts +1 -1
  195. package/dist/types/src/skills/functions/index.d.ts.map +1 -1
  196. package/dist/types/src/skills/functions/install-function.d.ts +3 -2
  197. package/dist/types/src/skills/functions/install-function.d.ts.map +1 -1
  198. package/dist/types/src/skills/functions/invoke.d.ts +2 -2
  199. package/dist/types/src/skills/functions/invoke.d.ts.map +1 -1
  200. package/dist/types/src/skills/functions/query-deployed-functions.d.ts +2 -2
  201. package/dist/types/src/skills/functions/query-deployed-functions.d.ts.map +1 -1
  202. package/dist/types/src/skills/index.d.ts +1 -1
  203. package/dist/types/src/skills/index.d.ts.map +1 -1
  204. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  205. package/dist/types/src/testing/index.d.ts +2 -2
  206. package/dist/types/src/testing/index.d.ts.map +1 -1
  207. package/dist/types/src/translations.d.ts +10 -0
  208. package/dist/types/src/translations.d.ts.map +1 -1
  209. package/dist/types/src/types/Notebook.d.ts.map +1 -1
  210. package/dist/types/src/types/ScriptCapabilities.d.ts +3 -3
  211. package/dist/types/src/types/ScriptCapabilities.d.ts.map +1 -1
  212. package/dist/types/src/types/index.d.ts +5 -5
  213. package/dist/types/src/types/index.d.ts.map +1 -1
  214. package/dist/types/src/util/deploy.d.ts +6 -3
  215. package/dist/types/src/util/deploy.d.ts.map +1 -1
  216. package/dist/types/src/util/functions.d.ts +1 -1
  217. package/dist/types/src/util/functions.d.ts.map +1 -1
  218. package/dist/types/src/util/index.d.ts +2 -2
  219. package/dist/types/src/util/index.d.ts.map +1 -1
  220. package/dist/types/tsconfig.tsbuildinfo +1 -1
  221. package/package.json +106 -96
  222. package/src/ScriptFunction.ts +7 -0
  223. package/src/Templates.ts +7 -0
  224. package/src/capabilities/ScriptSurfaces.tsx +19 -10
  225. package/src/capabilities/app-graph-builder.ts +2 -0
  226. package/src/capabilities/compiler.ts +6 -5
  227. package/src/capabilities/errors.ts +8 -0
  228. package/src/capabilities/gen/browser.ts +62 -0
  229. package/src/capabilities/gen/node.ts +10 -10
  230. package/src/capabilities/gen/tauri.ts +62 -0
  231. package/src/capabilities/gen/workerd.ts +4 -4
  232. package/src/capabilities/index.ts +11 -11
  233. package/src/capabilities/operation-handler.ts +1 -1
  234. package/src/capabilities/react-surface.ts +4 -4
  235. package/src/capabilities/settings.ts +2 -2
  236. package/src/compiler/compiler.browser.test.ts +1 -1
  237. package/src/compiler/index.ts +1 -1
  238. package/src/components/NotebookStack/NotebookCell.tsx +35 -29
  239. package/src/components/NotebookStack/NotebookMenu.tsx +27 -26
  240. package/src/components/NotebookStack/NotebookStack.stories.tsx +3 -3
  241. package/src/components/NotebookStack/NotebookStack.tsx +20 -17
  242. package/src/components/NotebookStack/index.ts +2 -2
  243. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +5 -5
  244. package/src/components/ScriptToolbar/ScriptToolbar.tsx +14 -15
  245. package/src/components/ScriptToolbar/index.ts +1 -1
  246. package/src/components/TestPanel/TestPanel.tsx +29 -23
  247. package/src/components/TestPanel/index.ts +1 -1
  248. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +10 -8
  249. package/src/components/TypescriptEditor/TypescriptEditor.tsx +11 -7
  250. package/src/components/TypescriptEditor/index.ts +1 -1
  251. package/src/components/index.ts +4 -5
  252. package/src/containers/DeploymentDialog/DeploymentDialog.stories.tsx +5 -7
  253. package/src/containers/DeploymentDialog/DeploymentDialog.tsx +18 -15
  254. package/src/containers/DeploymentDialog/index.ts +1 -1
  255. package/src/containers/NotebookArticle/NotebookArticle.stories.tsx +6 -6
  256. package/src/containers/NotebookArticle/NotebookArticle.tsx +25 -21
  257. package/src/containers/NotebookArticle/index.ts +1 -1
  258. package/src/containers/ScriptArticle/ScriptArticle.stories.tsx +3 -3
  259. package/src/containers/ScriptArticle/ScriptArticle.tsx +13 -11
  260. package/src/containers/ScriptArticle/index.ts +1 -1
  261. package/src/containers/ScriptProperties/FunctionBinding.tsx +18 -18
  262. package/src/containers/ScriptProperties/FunctionPublishing.tsx +22 -22
  263. package/src/containers/ScriptProperties/ScriptProperties.stories.tsx +3 -3
  264. package/src/containers/ScriptProperties/ScriptProperties.tsx +10 -10
  265. package/src/containers/ScriptProperties/SkillEditor.tsx +16 -14
  266. package/src/containers/ScriptProperties/index.ts +1 -1
  267. package/src/containers/ScriptSettings/ScriptSettings.stories.tsx +1 -1
  268. package/src/containers/ScriptSettings/ScriptSettings.tsx +16 -11
  269. package/src/containers/ScriptSettings/index.ts +1 -1
  270. package/src/containers/TestContainer/TestContainer.tsx +4 -4
  271. package/src/containers/TestContainer/index.ts +1 -1
  272. package/src/containers/index.ts +6 -6
  273. package/src/e2e/ai.test.ts +1 -1
  274. package/src/hooks/deploy.ts +12 -5
  275. package/src/hooks/index.ts +6 -6
  276. package/src/hooks/template.ts +1 -1
  277. package/src/hooks/useCompiler.ts +8 -7
  278. package/src/hooks/useCreateAndDeployScriptTemplates.ts +10 -5
  279. package/src/hooks/useToolbarState.ts +4 -4
  280. package/src/index.ts +5 -3
  281. package/src/meta.ts +1 -1
  282. package/src/notebook/compute-graph.test.ts +2 -2
  283. package/src/notebook/compute-graph.ts +4 -4
  284. package/src/notebook/index.ts +1 -1
  285. package/src/notebook/vfs-parser.test.ts +1 -1
  286. package/src/notebook/vfs-parser.ts +1 -1
  287. package/src/operations/ScriptOperationHandlerSet.ts +3 -1
  288. package/src/operations/create-script.ts +1 -1
  289. package/src/operations/index.ts +1 -1
  290. package/src/plugin.test.ts +2 -2
  291. package/src/skills/ScriptSkill.ts +3 -1
  292. package/src/skills/functions/create.ts +4 -4
  293. package/src/skills/functions/definitions.ts +8 -6
  294. package/src/skills/functions/delete.ts +1 -1
  295. package/src/skills/functions/deploy.ts +13 -9
  296. package/src/skills/functions/errors.ts +8 -0
  297. package/src/skills/functions/index.ts +11 -11
  298. package/src/skills/functions/inspect-invocations.ts +1 -1
  299. package/src/skills/functions/install-function.ts +11 -14
  300. package/src/skills/functions/invoke.ts +5 -5
  301. package/src/skills/functions/query-deployed-functions.ts +3 -4
  302. package/src/skills/functions/read.ts +3 -2
  303. package/src/skills/functions/update.ts +3 -2
  304. package/src/skills/index.ts +1 -1
  305. package/src/templates/anthropic.ts +2 -2
  306. package/src/templates/commentary.ts +1 -1
  307. package/src/templates/forex-effect.ts +7 -4
  308. package/src/testing/index.ts +2 -2
  309. package/src/translations.ts +4 -2
  310. package/src/types/Notebook.ts +6 -4
  311. package/src/types/ScriptCapabilities.ts +3 -3
  312. package/src/types/ScriptOperation.ts +1 -1
  313. package/src/types/index.ts +5 -5
  314. package/src/util/deploy.ts +10 -7
  315. package/src/util/functions.ts +24 -15
  316. package/src/util/index.ts +2 -2
  317. package/dist/lib/chunk-compiler2.mjs +0 -76
  318. package/dist/lib/chunk-compiler2.mjs.map +0 -1
  319. package/dist/lib/chunk-util.mjs +0 -146
  320. package/dist/lib/chunk-util.mjs.map +0 -1
  321. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts +0 -5
  322. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts.map +0 -1
  323. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts +0 -14
  324. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts.map +0 -1
  325. package/dist/types/src/components/QueryEditor/index.d.ts +0 -2
  326. package/dist/types/src/components/QueryEditor/index.d.ts.map +0 -1
  327. package/src/components/QueryEditor/QueryEditor.stories.tsx +0 -91
  328. package/src/components/QueryEditor/QueryEditor.tsx +0 -50
  329. package/src/components/QueryEditor/index.ts +0 -5
@@ -11,7 +11,7 @@ import * as AppCapability from '@dxos/app-toolkit/AppCapability';
11
11
  import { translations } from '#translations';
12
12
  import { ScriptCapabilities, ScriptEvents } from '#types';
13
13
 
14
- export const Schema = AppCapability.schema(() => import('../schema'));
14
+ export const Schema = AppCapability.schema(() => import('../schema.ts'));
15
15
 
16
16
  export const Compiler = Capability.lazyModule(
17
17
  'Compiler',
@@ -20,14 +20,14 @@ export const Compiler = Capability.lazyModule(
20
20
  // Genuine runtime event: the compiler is only loaded on demand (`hooks/useCompiler.ts`), not at startup.
21
21
  activatesOn: ScriptEvents.SetupCompiler,
22
22
  },
23
- () => import('../compiler'),
23
+ () => import('../compiler.ts'),
24
24
  );
25
25
 
26
- export const OperationHandler = AppCapability.operationHandler(() => import('../operation-handler'), {
26
+ export const OperationHandler = AppCapability.operationHandler(() => import('../operation-handler.ts'), {
27
27
  activatesOn: ActivationEvents.Idle,
28
28
  });
29
29
 
30
- export const ScriptSettings = AppCapability.settings(() => import('../settings'), {
30
+ export const ScriptSettings = AppCapability.settings(() => import('../settings.ts'), {
31
31
  activatesOn: ActivationEvents.Idle,
32
32
  provides: [ScriptCapabilities.Settings],
33
33
  });
@@ -14,15 +14,15 @@ import { ScriptCapabilities, ScriptEvents } from '#types';
14
14
  // eslint-disable-next-line import/no-relative-packages
15
15
  import pluginSpec from '../../PLUGIN.mdl?raw';
16
16
 
17
- export const AppGraphBuilder = AppCapability.appGraphBuilder(() => import('./app-graph-builder'), {
18
- environments: ['node'],
17
+ export const AppGraphBuilder = AppCapability.appGraphBuilder(() => import('./app-graph-builder.ts'), {
18
+ environments: ['browser', 'node', 'tauri'],
19
19
  });
20
- export const Schema = AppCapability.schema(() => import('./schema'));
21
- export const SkillDefinition = AppCapability.skillDefinition(() => import('./skill-definition'), {
22
- environments: ['node'],
20
+ export const Schema = AppCapability.schema(() => import('./schema.ts'));
21
+ export const SkillDefinition = AppCapability.skillDefinition(() => import('./skill-definition.ts'), {
22
+ environments: ['browser', 'node', 'tauri'],
23
23
  });
24
- export const CreateObject = SpaceCapability.createObject(() => import('./create-object'), {
25
- environments: ['node'],
24
+ export const CreateObject = SpaceCapability.createObject(() => import('./create-object.ts'), {
25
+ environments: ['browser', 'node', 'tauri'],
26
26
  });
27
27
  export const Compiler = Capability.lazyModule(
28
28
  'Compiler',
@@ -31,15 +31,15 @@ export const Compiler = Capability.lazyModule(
31
31
  // Genuine runtime event: the compiler is only loaded on demand (`hooks/useCompiler.ts`), not at startup.
32
32
  activatesOn: ScriptEvents.SetupCompiler,
33
33
  },
34
- () => import('./compiler'),
34
+ () => import('./compiler.ts'),
35
35
  );
36
- export const OperationHandler = AppCapability.operationHandler(() => import('./operation-handler'), {
36
+ export const OperationHandler = AppCapability.operationHandler(() => import('./operation-handler.ts'), {
37
37
  activatesOn: ActivationEvents.Idle,
38
38
  });
39
- export const ReactSurface = AppCapability.surface(() => import('./react-surface'), {
39
+ export const ReactSurface = AppCapability.surface(() => import('./react-surface.ts'), {
40
40
  roles: ['org.dxos.role.article', 'org.dxos.role.dialog', 'org.dxos.role.objectProperties', 'org.dxos.role.section'],
41
41
  });
42
- export const ScriptSettings = AppCapability.settings(() => import('./settings'), {
42
+ export const ScriptSettings = AppCapability.settings(() => import('./settings.ts'), {
43
43
  activatesOn: ActivationEvents.Idle,
44
44
  provides: [ScriptCapabilities.Settings],
45
45
  });
@@ -10,7 +10,7 @@ import * as OperationHandlerSet from '@dxos/compute/OperationHandlerSet';
10
10
 
11
11
  import { ScriptOperationHandlerSet } from '#operations';
12
12
 
13
- import { ScriptHandlers } from '../skills/functions';
13
+ import { ScriptHandlers } from '../skills/functions/index.ts';
14
14
 
15
15
  export default Capability.makeModule(
16
16
  Effect.fnUntraced(function* () {
@@ -7,21 +7,21 @@ import { type ComponentProps } from 'react';
7
7
 
8
8
  import * as Capabilities from '@dxos/app-framework/Capabilities';
9
9
  import * as Capability from '@dxos/app-framework/Capability';
10
- import { Surface } from '@dxos/app-framework/ui';
11
- import { AppSurface } from '@dxos/app-toolkit/ui';
10
+ import * as Surface from '@dxos/app-framework/Surface';
11
+ import * as AppSurface from '@dxos/app-toolkit/AppSurface';
12
12
  import * as Script from '@dxos/compute/Script';
13
13
 
14
14
  import { DeploymentDialog, ScriptProperties, TestContainer } from '#containers';
15
15
  import { meta } from '#meta';
16
16
  import { Notebook } from '#types';
17
17
 
18
- import { DEPLOYMENT_DIALOG } from '../constants';
18
+ import { DEPLOYMENT_DIALOG } from '../constants.ts';
19
19
  import {
20
20
  NotebookArticleSurface,
21
21
  ScriptArticleSurface,
22
22
  ScriptLogsSurface,
23
23
  ScriptSettingsSurface,
24
- } from './ScriptSurfaces';
24
+ } from './ScriptSurfaces.tsx';
25
25
 
26
26
  export default Capability.makeModule(() =>
27
27
  Effect.succeed(
@@ -6,14 +6,14 @@ import * as Effect from 'effect/Effect';
6
6
 
7
7
  import * as Capability from '@dxos/app-framework/Capability';
8
8
  import * as AppCapabilities from '@dxos/app-toolkit/AppCapabilities';
9
- import { createKvsStore } from '@dxos/effect';
9
+ import * as KvsStore from '@dxos/effect/KvsStore';
10
10
 
11
11
  import { meta } from '#meta';
12
12
  import { ScriptCapabilities, Settings } from '#types';
13
13
 
14
14
  export default Capability.makeModule(() =>
15
15
  Effect.sync(() => {
16
- const settingsAtom = createKvsStore({
16
+ const settingsAtom = KvsStore.make({
17
17
  key: meta.profile.key,
18
18
  schema: Settings.Settings,
19
19
  defaultValue: () => ({
@@ -4,7 +4,7 @@
4
4
 
5
5
  import { describe, expect, test } from 'vitest';
6
6
 
7
- import { Compiler } from './compiler';
7
+ import { Compiler } from './compiler.ts';
8
8
 
9
9
  describe('Compiler', () => {
10
10
  test('Basic', async () => {
@@ -2,4 +2,4 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- export * from './compiler';
5
+ export * from './compiler.ts';
@@ -4,15 +4,16 @@
4
4
 
5
5
  import React, { useCallback, useMemo } from 'react';
6
6
 
7
- import { Surface } from '@dxos/app-framework/ui';
8
- import { AppSurface } from '@dxos/app-toolkit/ui';
7
+ import * as Surface from '@dxos/app-framework/Surface';
8
+ import * as AppSurface from '@dxos/app-toolkit/AppSurface';
9
9
  import { type Database, Obj } from '@dxos/echo';
10
10
  import { Doc } from '@dxos/echo-doc';
11
+ import { useResolveRef } from '@dxos/echo-react';
11
12
  import { invariant } from '@dxos/invariant';
12
- import { TemplateEditor } from '@dxos/plugin-routine/components';
13
- import { useThemeContext, useTranslation } from '@dxos/react-ui';
14
- import { QueryEditor, type QueryEditorProps } from '@dxos/react-ui-components';
13
+ import * as TemplateEditor from '@dxos/plugin-routine/TemplateEditor';
15
14
  import { Editor, type EditorViewProps } from '@dxos/react-ui-editor';
15
+ import { QueryEditor, type QueryEditorProps } from '@dxos/react-ui-query';
16
+ import * as Hooks from '@dxos/react-ui/Hooks';
16
17
  import {
17
18
  type BasicExtensionsOptions,
18
19
  createBasicExtensions,
@@ -27,9 +28,9 @@ import { isNonNullable } from '@dxos/util';
27
28
  import { meta } from '#meta';
28
29
  import { Notebook } from '#types';
29
30
 
30
- import { type ComputeGraph } from '../../notebook';
31
- import { TypescriptEditor, type TypescriptEditorProps } from '../TypescriptEditor';
32
- import { type NotebookMenuProps } from './NotebookMenu';
31
+ import { type ComputeGraph } from '../../notebook/index.ts';
32
+ import { TypescriptEditor, type TypescriptEditorProps } from '../TypescriptEditor/index.ts';
33
+ import { type NotebookMenuProps } from './NotebookMenu.tsx';
33
34
 
34
35
  const editorStyles = 'p-2 ps-3';
35
36
  const valueStyles = 'p-1 ps-3';
@@ -44,15 +45,15 @@ export type NotebookCellProps = {
44
45
 
45
46
  // TODO(burdon): Show evaluation errors.
46
47
  export const NotebookCell = ({ db, graph, dragging, cell, promptResults, env }: NotebookCellProps) => {
47
- const { t } = useTranslation(meta.profile.key);
48
+ const { t } = Hooks.useTranslation(meta.profile.key);
48
49
 
49
- const extensions = useMemo(() => {
50
- return cell.source?.target
51
- ? [createDataExtensions({ id: cell.id, text: Doc.createAccessor(cell.source.target, ['content']) })]
52
- : [];
53
- }, [cell.source?.target]);
50
+ const source = useResolveRef(cell.source);
51
+ const prompt = useResolveRef(cell.prompt);
52
+ const explorerGraph = useResolveRef(cell.graph);
54
53
 
55
- const explorerGraph = cell.graph?.target;
54
+ const extensions = useMemo(() => {
55
+ return source ? [createDataExtensions({ id: cell.id, text: Doc.createAccessor(source, ['content']) })] : [];
56
+ }, [source]);
56
57
 
57
58
  const handleQueryChange = useCallback<NonNullable<QueryEditorProps['onChange']>>(
58
59
  (value: string) => {
@@ -66,7 +67,7 @@ export const NotebookCell = ({ db, graph, dragging, cell, promptResults, env }:
66
67
 
67
68
  switch (cell.type) {
68
69
  case 'markdown':
69
- if (!cell.source?.target) {
70
+ if (!source) {
70
71
  return null;
71
72
  }
72
73
 
@@ -74,23 +75,23 @@ export const NotebookCell = ({ db, graph, dragging, cell, promptResults, env }:
74
75
  <NotebookTextEditor
75
76
  id={cell.id}
76
77
  classNames={editorStyles}
77
- initialValue={cell.source.target.content}
78
+ initialValue={source.content}
78
79
  extensions={extensions}
79
80
  />
80
81
  );
81
82
 
82
83
  case 'script':
83
- if (!cell.source?.target) {
84
+ if (!source) {
84
85
  return null;
85
86
  }
86
87
 
87
88
  return (
88
- <div className='flex flex-col divide-y divide-subdued-separator'>
89
+ <div className='flex flex-col divide-y divide-separator-subtle'>
89
90
  <TypescriptEditor
90
91
  id={cell.id}
91
92
  role='section'
92
93
  classNames={editorStyles}
93
- initialValue={cell.source.target.content}
94
+ initialValue={source.content}
94
95
  extensions={extensions}
95
96
  env={env}
96
97
  options={{
@@ -104,7 +105,7 @@ export const NotebookCell = ({ db, graph, dragging, cell, promptResults, env }:
104
105
  );
105
106
 
106
107
  case 'query':
107
- if (!cell.source?.target) {
108
+ if (!source) {
108
109
  return null;
109
110
  }
110
111
 
@@ -115,7 +116,7 @@ export const NotebookCell = ({ db, graph, dragging, cell, promptResults, env }:
115
116
  id={cell.id}
116
117
  classNames={editorStyles}
117
118
  db={db}
118
- value={cell.source.target.content}
119
+ value={source.content}
119
120
  onChange={handleQueryChange}
120
121
  />
121
122
  {explorerGraph && !dragging && (
@@ -130,13 +131,18 @@ export const NotebookCell = ({ db, graph, dragging, cell, promptResults, env }:
130
131
 
131
132
  // TODO(burdon): Use streaming response from Chat.
132
133
  case 'prompt':
133
- if (!cell.prompt?.target) {
134
+ if (!prompt) {
134
135
  return null;
135
136
  }
136
137
 
137
138
  return (
138
139
  <>
139
- <TemplateEditor id={cell.id} source={cell.prompt.target.text} lineNumbers={false} classNames={editorStyles} />
140
+ <TemplateEditor.TemplateEditor
141
+ id={cell.id}
142
+ source={prompt.text}
143
+ lineNumbers={false}
144
+ classNames={editorStyles}
145
+ />
140
146
  <NotebookPromptResult cell={cell} promptResults={promptResults} />
141
147
  </>
142
148
  );
@@ -154,11 +160,11 @@ const NotebookCellValue = ({ cell, graph }: NotebookCellProps) => {
154
160
  }
155
161
 
156
162
  return (
157
- <div className={mx('flex w-full bg-group-surface text-description font-mono', valueStyles)}>
163
+ <div className={mx('flex w-full bg-group-surface text-fg-muted font-mono', valueStyles)}>
158
164
  {name && (
159
165
  <>
160
166
  <span className='text-success-text'>{name}</span>
161
- <span className='text-description'>&nbsp;=&nbsp;</span>
167
+ <span className='text-fg-muted'>&nbsp;=&nbsp;</span>
162
168
  </>
163
169
  )}
164
170
  <span>{value}</span>
@@ -177,7 +183,7 @@ const NotebookPromptResult = ({ cell, promptResults }: NotebookCellProps) => {
177
183
  }
178
184
 
179
185
  return (
180
- <div className={mx('flex w-full dx-group-surface text-description border-y border-subdued-separator', valueStyles)}>
186
+ <div className={mx('flex w-full dx-group-surface text-fg-muted border-y border-separator-subtle', valueStyles)}>
181
187
  <NotebookTextEditor readOnly value={value} />
182
188
  </div>
183
189
  );
@@ -189,8 +195,8 @@ const NotebookTextEditor = ({
189
195
  readOnly,
190
196
  ...props
191
197
  }: EditorViewProps & Pick<BasicExtensionsOptions, 'readOnly'>) => {
192
- const { t } = useTranslation(meta.profile.key);
193
- const { themeMode } = useThemeContext();
198
+ const { t } = Hooks.useTranslation(meta.profile.key);
199
+ const themeMode = Hooks.useThemeMode();
194
200
  const extensions = useMemo(() => {
195
201
  return [
196
202
  createThemeExtensions({ themeMode, syntaxHighlighting: true }),
@@ -4,7 +4,8 @@
4
4
 
5
5
  import React from 'react';
6
6
 
7
- import { DropdownMenu, useTranslation } from '@dxos/react-ui';
7
+ import * as Hooks from '@dxos/react-ui/Hooks';
8
+ import * as Menu from '@dxos/react-ui/Menu';
8
9
 
9
10
  import { meta } from '#meta';
10
11
  import { Notebook } from '#types';
@@ -17,31 +18,31 @@ export type NotebookMenuProps = {
17
18
 
18
19
  // TODO(burdon): Better way to organize menu?
19
20
  export const NotebookMenu = ({ cell, onCellInsert, onCellDelete }: NotebookMenuProps) => {
20
- const { t } = useTranslation(meta.profile.key);
21
+ const { t } = Hooks.useTranslation(meta.profile.key);
21
22
  return (
22
- <DropdownMenu.Portal>
23
- <DropdownMenu.Content>
24
- <DropdownMenu.Viewport>
25
- <DropdownMenu.Item onClick={() => onCellInsert?.('script', cell?.id)}>
26
- {t('notebook-cell-insert-script.label')}
27
- </DropdownMenu.Item>
28
- <DropdownMenu.Item onClick={() => onCellInsert?.('prompt', cell?.id)}>
29
- {t('notebook-cell-insert-prompt.label')}
30
- </DropdownMenu.Item>
31
- <DropdownMenu.Item onClick={() => onCellInsert?.('query', cell?.id)}>
32
- {t('notebook-cell-insert-query.label')}
33
- </DropdownMenu.Item>
34
- <DropdownMenu.Item onClick={() => onCellInsert?.('markdown', cell?.id)}>
35
- {t('notebook-cell-insert-markdown.label')}
36
- </DropdownMenu.Item>
37
- {cell && onCellDelete && (
38
- <DropdownMenu.Item onClick={() => onCellDelete?.(cell.id)}>
39
- {t('notebook-cell-delete.label')}
40
- </DropdownMenu.Item>
41
- )}
42
- </DropdownMenu.Viewport>
43
- <DropdownMenu.Arrow />
44
- </DropdownMenu.Content>
45
- </DropdownMenu.Portal>
23
+ <Menu.Content>
24
+ <Menu.Item
25
+ onClick={() => onCellInsert?.('script', cell?.id)}
26
+ item={{ value: t('notebook-cell-insert-script.label'), label: t('notebook-cell-insert-script.label') }}
27
+ />
28
+ <Menu.Item
29
+ onClick={() => onCellInsert?.('prompt', cell?.id)}
30
+ item={{ value: t('notebook-cell-insert-prompt.label'), label: t('notebook-cell-insert-prompt.label') }}
31
+ />
32
+ <Menu.Item
33
+ onClick={() => onCellInsert?.('query', cell?.id)}
34
+ item={{ value: t('notebook-cell-insert-query.label'), label: t('notebook-cell-insert-query.label') }}
35
+ />
36
+ <Menu.Item
37
+ onClick={() => onCellInsert?.('markdown', cell?.id)}
38
+ item={{ value: t('notebook-cell-insert-markdown.label'), label: t('notebook-cell-insert-markdown.label') }}
39
+ />
40
+ {cell && onCellDelete && (
41
+ <Menu.Item
42
+ onClick={() => onCellDelete?.(cell.id)}
43
+ item={{ value: t('notebook-cell-delete.label'), label: t('notebook-cell-delete.label') }}
44
+ />
45
+ )}
46
+ </Menu.Content>
46
47
  );
47
48
  };
@@ -10,14 +10,14 @@ import { withPluginManager } from '@dxos/app-framework/testing';
10
10
  import { ClientPlugin } from '@dxos/plugin-client/testing';
11
11
  import { initializeIdentity } from '@dxos/plugin-client/testing';
12
12
  import { RoutinePlugin } from '@dxos/plugin-routine/testing';
13
- import { corePlugins } from '@dxos/plugin-testing';
13
+ import * as CorePlugins from '@dxos/plugin-testing/CorePlugins';
14
14
  import { withMosaic } from '@dxos/react-ui-mosaic/testing';
15
15
  import { withLayout } from '@dxos/react-ui/testing';
16
16
 
17
17
  import { createNotebook } from '#testing';
18
18
  import { translations } from '#translations';
19
19
 
20
- import { NotebookStack } from './NotebookStack';
20
+ import { NotebookStack } from './NotebookStack.tsx';
21
21
 
22
22
  const NotebookStackStory = () => {
23
23
  const notebook = useMemo(() => createNotebook(), []);
@@ -32,7 +32,7 @@ const meta = {
32
32
  withLayout({ layout: 'column', classNames: 'dx-document' }),
33
33
  withPluginManager({
34
34
  plugins: [
35
- ...corePlugins(),
35
+ ...CorePlugins.make(),
36
36
  ClientPlugin.make({
37
37
  onClientInitialized: ({ client }) =>
38
38
  Effect.gen(function* () {
@@ -5,32 +5,35 @@
5
5
  import React, { useCallback, useId, useMemo, useState } from 'react';
6
6
 
7
7
  import { Obj } from '@dxos/echo';
8
- import { DropdownMenu, IconButton, ScrollArea, type ThemedClassName, useTranslation } from '@dxos/react-ui';
9
- import { composable, composableProps } from '@dxos/react-ui';
10
8
  import { type DndContainerHandler } from '@dxos/react-ui-dnd';
11
9
  import { Mosaic, type MosaicTileProps } from '@dxos/react-ui-mosaic';
10
+ import * as Button from '@dxos/react-ui/Button';
11
+ import * as Hooks from '@dxos/react-ui/Hooks';
12
+ import * as Menu from '@dxos/react-ui/Menu';
13
+ import * as ScrollArea from '@dxos/react-ui/ScrollArea';
14
+ import * as Util from '@dxos/react-ui/Util';
12
15
  import { mx } from '@dxos/ui-theme';
13
16
  import { arrayMove } from '@dxos/util';
14
17
 
15
18
  import { meta } from '#meta';
16
19
  import { Notebook } from '#types';
17
20
 
18
- import { type TypescriptEditorProps } from '../TypescriptEditor';
19
- import { NotebookCell, type NotebookCellProps } from './NotebookCell';
20
- import { NotebookMenu } from './NotebookMenu';
21
+ import { type TypescriptEditorProps } from '../TypescriptEditor/index.ts';
22
+ import { NotebookCell, type NotebookCellProps } from './NotebookCell.tsx';
23
+ import { NotebookMenu } from './NotebookMenu.tsx';
21
24
 
22
25
  const minSectionHeight = 'min-h-[16rem]';
23
26
 
24
27
  const getCellId = (cell: Notebook.Cell) => cell.id;
25
28
 
26
- export type NotebookStackProps = ThemedClassName<
29
+ export type NotebookStackProps = Util.ThemedClassName<
27
30
  {
28
31
  notebook?: Notebook.Notebook;
29
32
  } & (Pick<NotebookSectionProps, 'db' | 'graph' | 'promptResults' | 'onCellInsert' | 'onCellDelete'> &
30
33
  Pick<TypescriptEditorProps, 'env'>)
31
34
  >;
32
35
 
33
- export const NotebookStack = composable<HTMLDivElement, NotebookStackProps>(
36
+ export const NotebookStack = Util.composable<HTMLDivElement, NotebookStackProps>(
34
37
  ({ notebook, db, graph, promptResults, onCellInsert, onCellDelete, env, ...props }, forwardedRef) => {
35
38
  const [viewport, setViewport] = useState<HTMLElement | null>(null);
36
39
 
@@ -96,7 +99,7 @@ export const NotebookStack = composable<HTMLDivElement, NotebookStackProps>(
96
99
  eventHandler={eventHandler}
97
100
  ref={forwardedRef}
98
101
  >
99
- <ScrollArea.Root orientation='vertical' padding {...composableProps(props)}>
102
+ <ScrollArea.Root orientation='vertical' {...Util.composableProps(props)}>
100
103
  <ScrollArea.Viewport ref={setViewport}>
101
104
  <Mosaic.Stack orientation='vertical' items={notebook?.cells ?? []} getId={getCellId} Tile={Tile} />
102
105
  </ScrollArea.Viewport>
@@ -121,7 +124,7 @@ const NotebookSection = ({
121
124
  onCellDelete,
122
125
  ...tileProps
123
126
  }: NotebookSectionProps) => {
124
- const { t } = useTranslation(meta.profile.key);
127
+ const { t } = Hooks.useTranslation(meta.profile.key);
125
128
  const resizable = cell.type === 'query';
126
129
  const [dragHandle, setDragHandle] = useState<HTMLButtonElement | null>(null);
127
130
 
@@ -131,30 +134,30 @@ const NotebookSection = ({
131
134
  data={cell}
132
135
  dragHandle={dragHandle}
133
136
  classNames={mx(
134
- 'grid grid-cols-[min-content_1fr] overflow-visible border border-subdued-separator',
137
+ 'grid grid-cols-[min-content_1fr] overflow-visible border border-separator-subtle',
135
138
  resizable && minSectionHeight,
136
139
  )}
137
140
  >
138
141
  {/* Side rail */}
139
- <div className='flex flex-col p-1 border-e border-subdued-separator dx-attention-surface'>
140
- <IconButton
142
+ <div className='flex flex-col p-1 border-e border-separator-subtle dx-attention-surface'>
143
+ <Button.Root
141
144
  ref={setDragHandle}
142
145
  variant='ghost'
143
146
  icon='ph--dots-six-vertical--regular'
144
147
  iconOnly
145
148
  label='Drag handle'
146
149
  />
147
- <DropdownMenu.Root>
148
- <DropdownMenu.Trigger asChild>
149
- <IconButton
150
+ <Menu.Root>
151
+ <Menu.Trigger asChild>
152
+ <Button.Root
150
153
  variant='ghost'
151
154
  icon='ph--dots-three--regular'
152
155
  iconOnly
153
156
  label={t('notebook-cell-insert.label')}
154
157
  />
155
- </DropdownMenu.Trigger>
158
+ </Menu.Trigger>
156
159
  <NotebookMenu cell={cell} onCellInsert={onCellInsert} onCellDelete={onCellDelete} />
157
- </DropdownMenu.Root>
160
+ </Menu.Root>
158
161
  </div>
159
162
 
160
163
  <NotebookCell db={db} cell={cell} env={env} graph={graph} promptResults={promptResults} />
@@ -2,5 +2,5 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- export * from './NotebookMenu';
6
- export * from './NotebookStack';
5
+ export * from './NotebookMenu.tsx';
6
+ export * from './NotebookStack.tsx';
@@ -3,11 +3,11 @@
3
3
  //
4
4
 
5
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
6
- import * as Atom from 'effect/unstable/reactivity/Atom';
7
- import * as Registry from 'effect/unstable/reactivity/AtomRegistry';
6
+ import * as Atom from 'effect/reactivity/Atom';
7
+ import * as Registry from 'effect/reactivity/AtomRegistry';
8
8
  import React, { useMemo } from 'react';
9
9
 
10
- import { ProcessManagerPlugin } from '@dxos/app-framework';
10
+ import * as ProcessManagerPlugin from '@dxos/app-framework/ProcessManagerPlugin';
11
11
  import { withPluginManager } from '@dxos/app-framework/testing';
12
12
  import * as Script from '@dxos/compute/Script';
13
13
  import { ClientPlugin } from '@dxos/plugin-client/testing';
@@ -16,7 +16,7 @@ import { withLayout, withTheme } from '@dxos/react-ui/testing';
16
16
  import { type ScriptToolbarState, type ScriptToolbarStateStore } from '#hooks';
17
17
  import { translations } from '#translations';
18
18
 
19
- import { ScriptToolbar } from './ScriptToolbar';
19
+ import { ScriptToolbar } from './ScriptToolbar.tsx';
20
20
 
21
21
  // Create a mock store for stories.
22
22
  const createMockStore = (initialState: ScriptToolbarState = {}): ScriptToolbarStateStore => {
@@ -54,7 +54,7 @@ const meta = {
54
54
  withTheme(),
55
55
  withLayout({ classNames: 'w-document-max-width' }),
56
56
  withPluginManager({
57
- plugins: [ProcessManagerPlugin(), ClientPlugin.make({})],
57
+ plugins: [ProcessManagerPlugin.make(), ClientPlugin.make({})],
58
58
  }),
59
59
  ],
60
60
  parameters: {
@@ -2,14 +2,19 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import * as Atom from 'effect/unstable/reactivity/Atom';
5
+ import * as Atom from 'effect/reactivity/Atom';
6
6
  import React, { useMemo } from 'react';
7
7
 
8
- import { AppSurface } from '@dxos/app-toolkit/ui';
9
8
  import type * as Script from '@dxos/compute/Script';
10
- import { ElevationProvider, useTranslation } from '@dxos/react-ui';
11
- import { composable, composableProps } from '@dxos/react-ui';
12
- import { type ActionGraphProps, Menu, MenuRootProps, createGapSeparator, useMenuActions } from '@dxos/react-ui-menu';
9
+ import {
10
+ type ActionGraphProps,
11
+ ActionToolbar,
12
+ type ActionToolbarProps,
13
+ createGapSeparator,
14
+ useMenuActions,
15
+ } from '@dxos/react-ui-menu';
16
+ import * as Hooks from '@dxos/react-ui/Hooks';
17
+ import * as Util from '@dxos/react-ui/Util';
13
18
 
14
19
  import {
15
20
  type CreateDeployOptions,
@@ -21,14 +26,14 @@ import {
21
26
  } from '#hooks';
22
27
  import { meta } from '#meta';
23
28
 
24
- export type ScriptToolbarProps = Pick<MenuRootProps, 'attendableId'> & {
29
+ export type ScriptToolbarProps = Pick<ActionToolbarProps, 'attendableId'> & {
25
30
  script: Script.Script;
26
31
  state: ScriptToolbarStateStore;
27
32
  };
28
33
 
29
- export const ScriptToolbar = composable<HTMLDivElement, ScriptToolbarProps>(
34
+ export const ScriptToolbar = Util.composable<HTMLDivElement, ScriptToolbarProps>(
30
35
  ({ script, attendableId, role, state, ...props }, forwardedRef) => {
31
- const { t } = useTranslation(meta.profile.key);
36
+ const { t } = Hooks.useTranslation(meta.profile.key);
32
37
  const options = useDeployDeps({ script });
33
38
  const menuCreator = useMemo(
34
39
  () => createToolbarActions({ state, script, t, ...options }),
@@ -37,13 +42,7 @@ export const ScriptToolbar = composable<HTMLDivElement, ScriptToolbarProps>(
37
42
  const menuActions = useMenuActions(menuCreator);
38
43
 
39
44
  return (
40
- <ElevationProvider elevation={role === AppSurface.Section.role ? 'positioned' : 'base'}>
41
- <Menu.Root {...menuActions} attendableId={attendableId}>
42
- <Menu.Toolbar {...composableProps(props)} ref={forwardedRef}>
43
- <Menu.Items />
44
- </Menu.Toolbar>
45
- </Menu.Root>
46
- </ElevationProvider>
45
+ <ActionToolbar {...menuActions} attendableId={attendableId} {...Util.composableProps(props)} ref={forwardedRef} />
47
46
  );
48
47
  },
49
48
  );
@@ -2,4 +2,4 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- export * from './ScriptToolbar';
5
+ export * from './ScriptToolbar.tsx';