@dxos/plugin-script 0.8.4-main.67995b8 → 0.8.4-main.ae835ea

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 (304) hide show
  1. package/dist/lib/browser/DeploymentDialog-E5NXT4UQ.mjs +14 -0
  2. package/dist/lib/browser/NotebookContainer-C36N7AFF.mjs +817 -0
  3. package/dist/lib/browser/NotebookContainer-C36N7AFF.mjs.map +7 -0
  4. package/dist/lib/browser/ScriptContainer-4YPRUM3C.mjs +148 -0
  5. package/dist/lib/browser/ScriptContainer-4YPRUM3C.mjs.map +7 -0
  6. package/dist/lib/browser/{app-graph-builder-HLQ7K3BT.mjs → app-graph-builder-LEOPGBJD.mjs} +11 -9
  7. package/dist/lib/browser/app-graph-builder-LEOPGBJD.mjs.map +7 -0
  8. package/dist/lib/browser/blueprint-definition-6PZWZM2Y.mjs +30 -0
  9. package/dist/lib/browser/blueprint-definition-6PZWZM2Y.mjs.map +7 -0
  10. package/dist/lib/browser/chunk-5S5YQNJZ.mjs +304 -0
  11. package/dist/lib/browser/chunk-5S5YQNJZ.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-3U6DTUH3.mjs → chunk-A5K3TXYA.mjs} +29 -43
  13. package/dist/lib/browser/chunk-A5K3TXYA.mjs.map +7 -0
  14. package/dist/lib/browser/{chunk-QYAREHGH.mjs → chunk-EB6AXFXO.mjs} +8 -5
  15. package/dist/lib/browser/chunk-EB6AXFXO.mjs.map +7 -0
  16. package/dist/lib/browser/chunk-HCURXADW.mjs +102 -0
  17. package/dist/lib/browser/chunk-HCURXADW.mjs.map +7 -0
  18. package/dist/lib/browser/{chunk-FIM2MVNJ.mjs → chunk-HHTOAI2J.mjs} +161 -72
  19. package/dist/lib/browser/chunk-HHTOAI2J.mjs.map +7 -0
  20. package/dist/lib/browser/{chunk-P4HQKUCP.mjs → chunk-IQMYIWHG.mjs} +15 -15
  21. package/dist/lib/browser/chunk-IQMYIWHG.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  23. package/dist/lib/browser/chunk-LI4P25M5.mjs +111 -0
  24. package/dist/lib/browser/chunk-LI4P25M5.mjs.map +7 -0
  25. package/dist/lib/browser/{chunk-FMDXKOP7.mjs → chunk-Q2DGRQRN.mjs} +75 -53
  26. package/dist/lib/browser/chunk-Q2DGRQRN.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-ST3ACVUC.mjs +88 -0
  28. package/dist/lib/browser/chunk-ST3ACVUC.mjs.map +7 -0
  29. package/dist/lib/browser/{chunk-5TVBECWH.mjs → chunk-UOQ6NCH3.mjs} +2 -2
  30. package/dist/lib/browser/{compiler-CXCUA4UQ.mjs → compiler-Q4UY2COU.mjs} +9 -5
  31. package/dist/lib/browser/compiler-Q4UY2COU.mjs.map +7 -0
  32. package/dist/lib/browser/index.mjs +109 -44
  33. package/dist/lib/browser/index.mjs.map +3 -3
  34. package/dist/lib/browser/{intent-resolver-S3H2SMUY.mjs → intent-resolver-AMMHATM7.mjs} +40 -24
  35. package/dist/lib/browser/intent-resolver-AMMHATM7.mjs.map +7 -0
  36. package/dist/lib/browser/meta.json +1 -1
  37. package/dist/lib/browser/{react-surface-FYYXZA7C.mjs → react-surface-X4NATU6B.mjs} +43 -19
  38. package/dist/lib/browser/react-surface-X4NATU6B.mjs.map +7 -0
  39. package/dist/lib/browser/{settings-KCTBK5TY.mjs → settings-6UXY7F7D.mjs} +10 -8
  40. package/dist/lib/browser/settings-6UXY7F7D.mjs.map +7 -0
  41. package/dist/lib/browser/templates/index.mjs +2 -1
  42. package/dist/lib/browser/types/index.mjs +8 -4
  43. package/dist/lib/node-esm/DeploymentDialog-OSHHSEBH.mjs +15 -0
  44. package/dist/lib/node-esm/DeploymentDialog-OSHHSEBH.mjs.map +7 -0
  45. package/dist/lib/node-esm/NotebookContainer-FOVFGJQR.mjs +818 -0
  46. package/dist/lib/node-esm/NotebookContainer-FOVFGJQR.mjs.map +7 -0
  47. package/dist/lib/node-esm/ScriptContainer-EW24D5II.mjs +149 -0
  48. package/dist/lib/node-esm/ScriptContainer-EW24D5II.mjs.map +7 -0
  49. package/dist/lib/node-esm/{app-graph-builder-7EYIHWH4.mjs → app-graph-builder-XJ3MY5BM.mjs} +11 -9
  50. package/dist/lib/node-esm/app-graph-builder-XJ3MY5BM.mjs.map +7 -0
  51. package/dist/lib/node-esm/blueprint-definition-5R6YCSZZ.mjs +31 -0
  52. package/dist/lib/node-esm/blueprint-definition-5R6YCSZZ.mjs.map +7 -0
  53. package/dist/lib/node-esm/chunk-2GVTWESW.mjs +90 -0
  54. package/dist/lib/node-esm/chunk-2GVTWESW.mjs.map +7 -0
  55. package/dist/lib/node-esm/{chunk-35M3CHYE.mjs → chunk-55JZVM6K.mjs} +2 -2
  56. package/dist/lib/node-esm/chunk-EJLYOSD7.mjs +113 -0
  57. package/dist/lib/node-esm/chunk-EJLYOSD7.mjs.map +7 -0
  58. package/dist/lib/node-esm/{chunk-RT43MACC.mjs → chunk-GA27XSEY.mjs} +29 -43
  59. package/dist/lib/node-esm/chunk-GA27XSEY.mjs.map +7 -0
  60. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  61. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  62. package/dist/lib/node-esm/{chunk-AHXJ6NQU.mjs → chunk-IBV2DR36.mjs} +8 -5
  63. package/dist/lib/node-esm/chunk-IBV2DR36.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-N2XLVOFB.mjs +103 -0
  65. package/dist/lib/node-esm/chunk-N2XLVOFB.mjs.map +7 -0
  66. package/dist/lib/node-esm/{chunk-XJPK3IYI.mjs → chunk-O7HXE72S.mjs} +75 -53
  67. package/dist/lib/node-esm/chunk-O7HXE72S.mjs.map +7 -0
  68. package/dist/lib/node-esm/{chunk-7NMI4CEU.mjs → chunk-OZ6LCME4.mjs} +161 -72
  69. package/dist/lib/node-esm/chunk-OZ6LCME4.mjs.map +7 -0
  70. package/dist/lib/node-esm/chunk-TUGLYZDT.mjs +305 -0
  71. package/dist/lib/node-esm/chunk-TUGLYZDT.mjs.map +7 -0
  72. package/dist/lib/node-esm/{chunk-QKK3NDHW.mjs → chunk-UEGPBCSF.mjs} +15 -15
  73. package/dist/lib/node-esm/chunk-UEGPBCSF.mjs.map +7 -0
  74. package/dist/lib/node-esm/{compiler-EPFKQXPE.mjs → compiler-I6A4KE6E.mjs} +9 -5
  75. package/dist/lib/node-esm/compiler-I6A4KE6E.mjs.map +7 -0
  76. package/dist/lib/node-esm/index.mjs +109 -44
  77. package/dist/lib/node-esm/index.mjs.map +3 -3
  78. package/dist/lib/node-esm/{intent-resolver-OHKNJFCC.mjs → intent-resolver-YKLZQR7U.mjs} +40 -24
  79. package/dist/lib/node-esm/intent-resolver-YKLZQR7U.mjs.map +7 -0
  80. package/dist/lib/node-esm/meta.json +1 -1
  81. package/dist/lib/node-esm/{react-surface-V32NWHKN.mjs → react-surface-LVGLBSTE.mjs} +43 -19
  82. package/dist/lib/node-esm/react-surface-LVGLBSTE.mjs.map +7 -0
  83. package/dist/lib/node-esm/{settings-DXZ334A3.mjs → settings-O4EZPUE3.mjs} +10 -8
  84. package/dist/lib/node-esm/settings-O4EZPUE3.mjs.map +7 -0
  85. package/dist/lib/node-esm/templates/index.mjs +2 -1
  86. package/dist/lib/node-esm/types/index.mjs +8 -4
  87. package/dist/types/src/ScriptPlugin.d.ts +1 -1
  88. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  90. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/artifact-definition.d.ts +1 -1
  92. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
  94. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  95. package/dist/types/src/capabilities/compiler.d.ts +1 -1
  96. package/dist/types/src/capabilities/compiler.d.ts.map +1 -1
  97. package/dist/types/src/capabilities/index.d.ts +6 -6
  98. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  100. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  101. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  102. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/settings.d.ts +1 -1
  104. package/dist/types/src/compiler/compiler.d.ts.map +1 -1
  105. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts +2 -2
  106. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
  107. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +243 -13
  108. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
  109. package/dist/types/src/components/DeploymentDialog/index.d.ts +1 -1
  110. package/dist/types/src/components/DeploymentDialog/index.d.ts.map +1 -1
  111. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
  112. package/dist/types/src/components/NotebookContainer.d.ts +10 -0
  113. package/dist/types/src/components/NotebookContainer.d.ts.map +1 -0
  114. package/dist/types/src/components/NotebookContainer.stories.d.ts +251 -0
  115. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +1 -0
  116. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +15 -0
  117. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -0
  118. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts +9 -0
  119. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts.map +1 -0
  120. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +14 -0
  121. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -0
  122. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +245 -0
  123. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -0
  124. package/dist/types/src/components/NotebookStack/index.d.ts +3 -0
  125. package/dist/types/src/components/NotebookStack/index.d.ts.map +1 -0
  126. package/dist/types/src/components/ScriptContainer.d.ts +4 -4
  127. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  128. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +5 -6
  129. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  130. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +242 -10
  131. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  132. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts +2 -2
  133. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +1 -1
  134. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +2 -2
  135. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +1 -1
  136. package/dist/types/src/components/TestPanel/TestContainer.d.ts +2 -2
  137. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +1 -1
  138. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +4 -2
  139. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  140. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +11 -4
  141. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  142. package/dist/types/src/components/index.d.ts +3 -4
  143. package/dist/types/src/components/index.d.ts.map +1 -1
  144. package/dist/types/src/events.d.ts.map +1 -1
  145. package/dist/types/src/hooks/deploy.d.ts +17 -16
  146. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  147. package/dist/types/src/hooks/format.d.ts +2 -2
  148. package/dist/types/src/hooks/format.d.ts.map +1 -1
  149. package/dist/types/src/hooks/template.d.ts +4 -14
  150. package/dist/types/src/hooks/template.d.ts.map +1 -1
  151. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  152. package/dist/types/src/index.d.ts +1 -0
  153. package/dist/types/src/index.d.ts.map +1 -1
  154. package/dist/types/src/meta.d.ts +0 -1
  155. package/dist/types/src/meta.d.ts.map +1 -1
  156. package/dist/types/src/notebook/compute-graph.d.ts +45 -0
  157. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -0
  158. package/dist/types/src/notebook/compute-graph.test.d.ts +2 -0
  159. package/dist/types/src/notebook/compute-graph.test.d.ts.map +1 -0
  160. package/dist/types/src/notebook/eval.d.ts +13 -0
  161. package/dist/types/src/notebook/eval.d.ts.map +1 -0
  162. package/dist/types/src/notebook/index.d.ts +2 -0
  163. package/dist/types/src/notebook/index.d.ts.map +1 -0
  164. package/dist/types/src/notebook/vfs-parser.d.ts +74 -0
  165. package/dist/types/src/notebook/vfs-parser.d.ts.map +1 -0
  166. package/dist/types/src/notebook/vfs-parser.test.d.ts +2 -0
  167. package/dist/types/src/notebook/vfs-parser.test.d.ts.map +1 -0
  168. package/dist/types/src/templates/chess.d.ts.map +1 -1
  169. package/dist/types/src/templates/data-generator.d.ts.map +1 -1
  170. package/dist/types/src/templates/discord.d.ts.map +1 -1
  171. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  172. package/dist/types/src/templates/forex.d.ts.map +1 -1
  173. package/dist/types/src/templates/gmail.d.ts.map +1 -1
  174. package/dist/types/src/templates/index.d.ts +43 -1
  175. package/dist/types/src/templates/index.d.ts.map +1 -1
  176. package/dist/types/src/templates/{echo.d.ts → ping.d.ts} +1 -1
  177. package/dist/types/src/templates/ping.d.ts.map +1 -0
  178. package/dist/types/src/testing/data.d.ts +3 -0
  179. package/dist/types/src/testing/data.d.ts.map +1 -0
  180. package/dist/types/src/testing/index.d.ts +2 -0
  181. package/dist/types/src/testing/index.d.ts.map +1 -0
  182. package/dist/types/src/translations.d.ts +30 -5
  183. package/dist/types/src/translations.d.ts.map +1 -1
  184. package/dist/types/src/types/Notebook.d.ts +31 -0
  185. package/dist/types/src/types/Notebook.d.ts.map +1 -0
  186. package/dist/types/src/types/actions.d.ts +54 -0
  187. package/dist/types/src/types/actions.d.ts.map +1 -0
  188. package/dist/types/src/types/index.d.ts +3 -1
  189. package/dist/types/src/types/index.d.ts.map +1 -1
  190. package/dist/types/src/types/types.d.ts +6 -0
  191. package/dist/types/src/types/types.d.ts.map +1 -0
  192. package/dist/types/src/util/deploy.d.ts +7 -7
  193. package/dist/types/src/util/deploy.d.ts.map +1 -1
  194. package/dist/types/src/util/functions.d.ts +6 -3
  195. package/dist/types/src/util/functions.d.ts.map +1 -1
  196. package/dist/types/tsconfig.tsbuildinfo +1 -1
  197. package/package.json +82 -75
  198. package/src/ScriptPlugin.tsx +90 -71
  199. package/src/capabilities/app-graph-builder.ts +9 -8
  200. package/src/capabilities/artifact-definition.ts +7 -4
  201. package/src/capabilities/blueprint-definition.ts +30 -0
  202. package/src/capabilities/compiler.ts +2 -1
  203. package/src/capabilities/index.ts +1 -1
  204. package/src/capabilities/intent-resolver.ts +21 -12
  205. package/src/capabilities/react-surface.tsx +28 -15
  206. package/src/capabilities/settings.ts +3 -3
  207. package/src/compiler/compiler.ts +1 -1
  208. package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +39 -20
  209. package/src/components/DeploymentDialog/DeploymentDialog.tsx +16 -22
  210. package/src/components/DeploymentDialog/index.ts +1 -1
  211. package/src/components/FrameContainer/FrameContainer.tsx +3 -2
  212. package/src/components/NotebookContainer.stories.tsx +83 -0
  213. package/src/components/NotebookContainer.tsx +263 -0
  214. package/src/components/NotebookStack/NotebookCell.tsx +208 -0
  215. package/src/components/NotebookStack/NotebookMenu.tsx +47 -0
  216. package/src/components/NotebookStack/NotebookStack.stories.tsx +54 -0
  217. package/src/components/NotebookStack/NotebookStack.tsx +86 -0
  218. package/src/components/NotebookStack/index.ts +6 -0
  219. package/src/components/ScriptContainer.tsx +7 -6
  220. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +34 -17
  221. package/src/components/ScriptToolbar/ScriptToolbar.tsx +33 -26
  222. package/src/components/Settings/ScriptObjectSettings.tsx +113 -33
  223. package/src/components/Settings/ScriptPluginSettings.tsx +37 -47
  224. package/src/components/TestPanel/TestContainer.tsx +4 -3
  225. package/src/components/TestPanel/TestPanel.tsx +7 -7
  226. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +79 -31
  227. package/src/components/TypescriptEditor/TypescriptEditor.tsx +37 -34
  228. package/src/components/index.ts +3 -0
  229. package/src/events.ts +2 -2
  230. package/src/hooks/deploy.ts +23 -24
  231. package/src/hooks/format.ts +4 -4
  232. package/src/hooks/template.ts +6 -15
  233. package/src/hooks/useCreateAndDeployScriptTemplates.ts +6 -5
  234. package/src/index.ts +1 -0
  235. package/src/meta.ts +7 -5
  236. package/src/notebook/compute-graph.test.ts +70 -0
  237. package/src/notebook/compute-graph.ts +206 -0
  238. package/src/notebook/eval.ts +105 -0
  239. package/src/notebook/index.ts +5 -0
  240. package/src/notebook/vfs-parser.test.ts +149 -0
  241. package/src/notebook/vfs-parser.ts +451 -0
  242. package/src/templates/chess.ts +3 -1
  243. package/src/templates/data-generator.ts +9 -3
  244. package/src/templates/discord.ts +12 -4
  245. package/src/templates/forex-effect.ts +7 -3
  246. package/src/templates/forex.ts +3 -1
  247. package/src/templates/gmail.ts +33 -62
  248. package/src/templates/index.ts +6 -6
  249. package/src/testing/data.ts +72 -0
  250. package/src/testing/index.ts +5 -0
  251. package/src/translations.ts +33 -7
  252. package/src/types/Notebook.ts +41 -0
  253. package/src/types/actions.ts +53 -0
  254. package/src/types/index.ts +3 -1
  255. package/src/types/types.ts +15 -0
  256. package/src/util/deploy.ts +27 -44
  257. package/src/util/functions.ts +36 -7
  258. package/dist/lib/browser/DeploymentDialog-M4QIHTDR.mjs +0 -12
  259. package/dist/lib/browser/ScriptContainer-Z6SIGRRC.mjs +0 -262
  260. package/dist/lib/browser/ScriptContainer-Z6SIGRRC.mjs.map +0 -7
  261. package/dist/lib/browser/app-graph-builder-HLQ7K3BT.mjs.map +0 -7
  262. package/dist/lib/browser/artifact-definition-CK3BIBSI.mjs +0 -247
  263. package/dist/lib/browser/artifact-definition-CK3BIBSI.mjs.map +0 -7
  264. package/dist/lib/browser/chunk-3U6DTUH3.mjs.map +0 -7
  265. package/dist/lib/browser/chunk-FIM2MVNJ.mjs.map +0 -7
  266. package/dist/lib/browser/chunk-FMDXKOP7.mjs.map +0 -7
  267. package/dist/lib/browser/chunk-IS4OG2UW.mjs +0 -39
  268. package/dist/lib/browser/chunk-IS4OG2UW.mjs.map +0 -7
  269. package/dist/lib/browser/chunk-P4HQKUCP.mjs.map +0 -7
  270. package/dist/lib/browser/chunk-QYAREHGH.mjs.map +0 -7
  271. package/dist/lib/browser/chunk-R4R7VOFY.mjs +0 -88
  272. package/dist/lib/browser/chunk-R4R7VOFY.mjs.map +0 -7
  273. package/dist/lib/browser/compiler-CXCUA4UQ.mjs.map +0 -7
  274. package/dist/lib/browser/intent-resolver-S3H2SMUY.mjs.map +0 -7
  275. package/dist/lib/browser/react-surface-FYYXZA7C.mjs.map +0 -7
  276. package/dist/lib/browser/settings-KCTBK5TY.mjs.map +0 -7
  277. package/dist/lib/node-esm/DeploymentDialog-3KPRWFE7.mjs +0 -13
  278. package/dist/lib/node-esm/ScriptContainer-KPU75HHI.mjs +0 -263
  279. package/dist/lib/node-esm/ScriptContainer-KPU75HHI.mjs.map +0 -7
  280. package/dist/lib/node-esm/app-graph-builder-7EYIHWH4.mjs.map +0 -7
  281. package/dist/lib/node-esm/artifact-definition-YCBV4YX2.mjs +0 -248
  282. package/dist/lib/node-esm/artifact-definition-YCBV4YX2.mjs.map +0 -7
  283. package/dist/lib/node-esm/chunk-7NMI4CEU.mjs.map +0 -7
  284. package/dist/lib/node-esm/chunk-AHXJ6NQU.mjs.map +0 -7
  285. package/dist/lib/node-esm/chunk-F5GFJ3PY.mjs +0 -90
  286. package/dist/lib/node-esm/chunk-F5GFJ3PY.mjs.map +0 -7
  287. package/dist/lib/node-esm/chunk-JIPFLBYA.mjs +0 -40
  288. package/dist/lib/node-esm/chunk-JIPFLBYA.mjs.map +0 -7
  289. package/dist/lib/node-esm/chunk-QKK3NDHW.mjs.map +0 -7
  290. package/dist/lib/node-esm/chunk-RT43MACC.mjs.map +0 -7
  291. package/dist/lib/node-esm/chunk-XJPK3IYI.mjs.map +0 -7
  292. package/dist/lib/node-esm/compiler-EPFKQXPE.mjs.map +0 -7
  293. package/dist/lib/node-esm/intent-resolver-OHKNJFCC.mjs.map +0 -7
  294. package/dist/lib/node-esm/react-surface-V32NWHKN.mjs.map +0 -7
  295. package/dist/lib/node-esm/settings-DXZ334A3.mjs.map +0 -7
  296. package/dist/types/src/templates/echo.d.ts.map +0 -1
  297. package/dist/types/src/types/schema.d.ts +0 -38
  298. package/dist/types/src/types/schema.d.ts.map +0 -1
  299. package/src/types/schema.ts +0 -37
  300. /package/dist/lib/browser/{DeploymentDialog-M4QIHTDR.mjs.map → DeploymentDialog-E5NXT4UQ.mjs.map} +0 -0
  301. /package/dist/lib/{node-esm/DeploymentDialog-3KPRWFE7.mjs.map → browser/chunk-J5LGTIGS.mjs.map} +0 -0
  302. /package/dist/lib/browser/{chunk-5TVBECWH.mjs.map → chunk-UOQ6NCH3.mjs.map} +0 -0
  303. /package/dist/lib/node-esm/{chunk-35M3CHYE.mjs.map → chunk-55JZVM6K.mjs.map} +0 -0
  304. /package/src/templates/{echo.ts → ping.ts} +0 -0
@@ -0,0 +1,208 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import React, { useCallback, useMemo } from 'react';
6
+
7
+ import { Surface } from '@dxos/app-framework';
8
+ import { invariant } from '@dxos/invariant';
9
+ import { TemplateEditor } from '@dxos/plugin-assistant';
10
+ import { createDocAccessor } from '@dxos/react-client/echo';
11
+ import { type Space } from '@dxos/react-client/echo';
12
+ import { useThemeContext, useTranslation } from '@dxos/react-ui';
13
+ import { QueryEditor, type QueryEditorProps } from '@dxos/react-ui-components';
14
+ import {
15
+ type BasicExtensionsOptions,
16
+ Editor,
17
+ type EditorProps,
18
+ createBasicExtensions,
19
+ createDataExtensions,
20
+ createMarkdownExtensions,
21
+ createThemeExtensions,
22
+ decorateMarkdown,
23
+ } from '@dxos/react-ui-editor';
24
+ import { mx } from '@dxos/react-ui-theme';
25
+ import { isNonNullable } from '@dxos/util';
26
+
27
+ import { meta } from '../../meta';
28
+ import { type ComputeGraph } from '../../notebook';
29
+ import { type Notebook } from '../../types';
30
+ import { TypescriptEditor, type TypescriptEditorProps } from '../TypescriptEditor';
31
+
32
+ import { type NotebookMenuProps } from './NotebookMenu';
33
+
34
+ const editorStyles = 'p-2 pis-3';
35
+ const valueStyles = 'p-1 pis-3';
36
+
37
+ export type NotebookCellProps = {
38
+ space?: Space;
39
+ graph?: ComputeGraph;
40
+ dragging?: boolean;
41
+ cell: Notebook.Cell;
42
+ promptResults?: Record<string, string>;
43
+ } & (Pick<NotebookMenuProps, 'onCellInsert' | 'onCellDelete'> & Pick<TypescriptEditorProps, 'env'>);
44
+
45
+ // TODO(burdon): Show evaluation errors.
46
+ export const NotebookCell = ({ space, graph, dragging, cell, promptResults, env }: NotebookCellProps) => {
47
+ const { t } = useTranslation(meta.id);
48
+
49
+ const extensions = useMemo(() => {
50
+ return cell.source?.target
51
+ ? [createDataExtensions({ id: cell.id, text: createDocAccessor(cell.source.target, ['content']) })].filter(
52
+ isNonNullable,
53
+ )
54
+ : [];
55
+ }, [cell.source?.target]);
56
+
57
+ const view = cell.view?.target;
58
+
59
+ const handleQueryChange = useCallback<NonNullable<QueryEditorProps['onChange']>>(
60
+ (value: string) => {
61
+ invariant(cell.source?.target);
62
+ cell.source.target.content = value;
63
+ },
64
+ [cell],
65
+ );
66
+
67
+ switch (cell.type) {
68
+ case 'markdown':
69
+ if (!cell.source?.target) {
70
+ return null;
71
+ }
72
+
73
+ return (
74
+ <NotebookTextEditor
75
+ id={cell.id}
76
+ classNames={editorStyles}
77
+ initialValue={cell.source.target.content}
78
+ extensions={extensions}
79
+ />
80
+ );
81
+
82
+ case 'script':
83
+ if (!cell.source?.target) {
84
+ return null;
85
+ }
86
+
87
+ return (
88
+ <>
89
+ <TypescriptEditor
90
+ id={cell.id}
91
+ role='section'
92
+ classNames={editorStyles}
93
+ initialValue={cell.source.target.content}
94
+ extensions={extensions}
95
+ env={env}
96
+ options={{
97
+ placeholder: t('notebook cell placeholder'),
98
+ highlightActiveLine: false,
99
+ lineNumbers: false,
100
+ }}
101
+ />
102
+ <NotebookCellValue cell={cell} graph={graph} />
103
+ </>
104
+ );
105
+
106
+ case 'query':
107
+ if (!cell.source?.target) {
108
+ return null;
109
+ }
110
+
111
+ // TODO(burdon): Remove app-framework deps (via render prop).
112
+ return (
113
+ <div className={mx('bs-full overflow-hidden grid', view && !dragging && 'grid-rows-[min-content_1fr]')}>
114
+ <QueryEditor
115
+ id={cell.id}
116
+ classNames={[editorStyles, 'border-b border-subduedSeparator']}
117
+ db={space?.db}
118
+ value={cell.source.target.content}
119
+ onChange={handleQueryChange}
120
+ />
121
+ {view && !dragging && <Surface role='section' limit={1} data={{ subject: view }} />}
122
+ </div>
123
+ );
124
+
125
+ // TODO(burdon): Use streaming response from Chat.
126
+ case 'prompt':
127
+ if (!cell.prompt?.target) {
128
+ return null;
129
+ }
130
+
131
+ return (
132
+ <>
133
+ <TemplateEditor
134
+ id={cell.id}
135
+ template={cell.prompt.target.instructions}
136
+ lineNumbers={false}
137
+ classNames={editorStyles}
138
+ />
139
+ <NotebookPromptResult cell={cell} promptResults={promptResults} />
140
+ </>
141
+ );
142
+
143
+ default:
144
+ return null;
145
+ }
146
+ };
147
+
148
+ const NotebookCellValue = ({ cell, graph }: NotebookCellProps) => {
149
+ const name = graph?.expressions.value[cell.id]?.name;
150
+ const value = graph?.getValue(cell.id);
151
+ if (value == null) {
152
+ return null;
153
+ }
154
+
155
+ return (
156
+ <div
157
+ className={mx(
158
+ 'flex is-full bg-groupSurface border-t border-subduedSeparator text-description font-mono',
159
+ valueStyles,
160
+ )}
161
+ >
162
+ {name && (
163
+ <>
164
+ <span className='text-successText'>{name}</span>
165
+ <span className='text-description'>&nbsp;=&nbsp;</span>
166
+ </>
167
+ )}
168
+ <span>{value}</span>
169
+ </div>
170
+ );
171
+ };
172
+
173
+ const NotebookPromptResult = ({ cell, promptResults }: NotebookCellProps) => {
174
+ if (!cell.prompt) {
175
+ return null;
176
+ }
177
+
178
+ const value = promptResults?.[cell.prompt.dxn.toString()];
179
+ if (value == null) {
180
+ return null;
181
+ }
182
+
183
+ return (
184
+ <div className={mx('flex is-full bg-groupSurface text-description border-t border-subduedSeparator', valueStyles)}>
185
+ <NotebookTextEditor readOnly value={value} />
186
+ </div>
187
+ );
188
+ };
189
+
190
+ const NotebookTextEditor = ({
191
+ extensions: extensionsParam,
192
+ readOnly,
193
+ ...props
194
+ }: EditorProps & Pick<BasicExtensionsOptions, 'readOnly'>) => {
195
+ const { t } = useTranslation(meta.id);
196
+ const { themeMode } = useThemeContext();
197
+ const extensions = useMemo(() => {
198
+ return [
199
+ createBasicExtensions({ placeholder: t('notebook markdown placeholder'), readOnly }),
200
+ createThemeExtensions({ themeMode, syntaxHighlighting: true }),
201
+ createMarkdownExtensions(),
202
+ decorateMarkdown(),
203
+ extensionsParam,
204
+ ].filter(isNonNullable);
205
+ }, [extensionsParam]);
206
+
207
+ return <Editor {...props} extensions={extensions} moveToEnd />;
208
+ };
@@ -0,0 +1,47 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import React from 'react';
6
+
7
+ import { DropdownMenu, useTranslation } from '@dxos/react-ui';
8
+
9
+ import { meta } from '../../meta';
10
+ import { type Notebook } from '../../types';
11
+
12
+ export type NotebookMenuProps = {
13
+ cell?: Notebook.Cell;
14
+ onCellInsert?: (type: Notebook.CellType, after: string | undefined) => void;
15
+ onCellDelete?: (id: string) => void;
16
+ };
17
+
18
+ // TODO(burdon): Better way to organize menu?
19
+ export const NotebookMenu = ({ cell, onCellInsert, onCellDelete }: NotebookMenuProps) => {
20
+ const { t } = useTranslation(meta.id);
21
+ 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>
46
+ );
47
+ };
@@ -0,0 +1,54 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
+
7
+ import { IntentPlugin, SettingsPlugin } from '@dxos/app-framework';
8
+ import { withPluginManager } from '@dxos/app-framework/testing';
9
+ import { AutomationPlugin } from '@dxos/plugin-automation';
10
+ import { ClientPlugin } from '@dxos/plugin-client';
11
+ import { SpacePlugin } from '@dxos/plugin-space';
12
+ import { withLayout, withTheme } from '@dxos/react-ui/testing';
13
+
14
+ import { createNotebook } from '../../testing';
15
+ import { translations } from '../../translations';
16
+
17
+ import { NotebookStack } from './NotebookStack';
18
+
19
+ const meta = {
20
+ title: 'plugins/plugin-script/NotebookStack',
21
+ component: NotebookStack,
22
+ decorators: [
23
+ withTheme,
24
+ withLayout({ container: 'column', classNames: 'is-prose' }),
25
+ // TODO(burdon): Factor out Surface to avoid dependency on app-framework.
26
+ withPluginManager({
27
+ plugins: [
28
+ ClientPlugin({
29
+ onClientInitialized: async ({ client }) => {
30
+ await client.halo.createIdentity();
31
+ await client.spaces.waitUntilReady();
32
+ },
33
+ }),
34
+ SpacePlugin({}),
35
+ SettingsPlugin(),
36
+ IntentPlugin(),
37
+ AutomationPlugin(),
38
+ ],
39
+ }),
40
+ ],
41
+ parameters: {
42
+ translations,
43
+ },
44
+ } satisfies Meta<typeof NotebookStack>;
45
+
46
+ export default meta;
47
+
48
+ type Story = StoryObj<typeof meta>;
49
+
50
+ export const Default: Story = {
51
+ args: {
52
+ notebook: createNotebook(),
53
+ },
54
+ };
@@ -0,0 +1,86 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import React from 'react';
6
+
7
+ import { DropdownMenu, IconButton, type ThemedClassName, useTranslation } from '@dxos/react-ui';
8
+ import { Stack, StackItem, type StackProps } from '@dxos/react-ui-stack';
9
+
10
+ import { meta } from '../../meta';
11
+ import { type Notebook } from '../../types';
12
+ import { type TypescriptEditorProps } from '../TypescriptEditor';
13
+
14
+ import { NotebookCell, type NotebookCellProps } from './NotebookCell';
15
+ import { NotebookMenu } from './NotebookMenu';
16
+
17
+ const minSectionHeight = 'min-bs-[16rem]';
18
+
19
+ export type NotebookStackProps = ThemedClassName<
20
+ {
21
+ notebook?: Notebook.Notebook;
22
+ onRearrange?: StackProps['onRearrange'];
23
+ } & (Pick<NotebookSectionProps, 'space' | 'graph' | 'promptResults' | 'onCellInsert' | 'onCellDelete'> &
24
+ Pick<TypescriptEditorProps, 'env'>)
25
+ >;
26
+
27
+ // TODO(burdon): Option for narrow rail (with compact buttons that align with first button in toolbar).
28
+ export const NotebookStack = ({ classNames, notebook, onRearrange, ...props }: NotebookStackProps) => {
29
+ return (
30
+ <Stack classNames={classNames} orientation='vertical' size='contain' rail onRearrange={onRearrange}>
31
+ {notebook?.cells.map((cell, i) => (
32
+ <NotebookSection key={i} cell={cell} {...props} />
33
+ ))}
34
+ </Stack>
35
+ );
36
+ };
37
+
38
+ type NotebookSectionProps = NotebookCellProps;
39
+
40
+ const NotebookSection = ({
41
+ cell,
42
+ space,
43
+ env,
44
+ promptResults,
45
+ onCellInsert,
46
+ onCellDelete,
47
+ ...props
48
+ }: NotebookSectionProps) => {
49
+ const { t } = useTranslation(meta.id);
50
+ const resizable = cell.type === 'query';
51
+
52
+ return (
53
+ <StackItem.Root role='section' item={cell} draggable classNames={resizable && minSectionHeight}>
54
+ <StackItem.Heading classNames='bs-full p-1 justify-between attention-surface'>
55
+ <StackItem.DragHandle asChild>
56
+ <IconButton variant='ghost' icon='ph--dots-six-vertical--regular' iconOnly label='Drag handle' />
57
+ </StackItem.DragHandle>
58
+ <DropdownMenu.Root>
59
+ <DropdownMenu.Trigger asChild>
60
+ <IconButton
61
+ variant='ghost'
62
+ icon='ph--dots-three--regular'
63
+ iconOnly
64
+ label={t('notebook cell insert label')}
65
+ />
66
+ </DropdownMenu.Trigger>
67
+ <NotebookMenu cell={cell} onCellInsert={onCellInsert} onCellDelete={onCellDelete} />
68
+ </DropdownMenu.Root>
69
+ {resizable && <StackItem.ResizeHandle />}
70
+ </StackItem.Heading>
71
+
72
+ {/* TODO(burdon): Move drag preview to outer stack (uniformly). */}
73
+ <StackItem.DragPreview>
74
+ {({ item: cell }) => (
75
+ <StackItem.Content classNames='overflow-visible bg-groupSurface border border-subduedSeparator'>
76
+ <NotebookCell space={space} cell={cell} env={env} dragging />
77
+ </StackItem.Content>
78
+ )}
79
+ </StackItem.DragPreview>
80
+
81
+ <StackItem.Content classNames='overflow-visible'>
82
+ <NotebookCell space={space} cell={cell} env={env} promptResults={promptResults} {...props} />
83
+ </StackItem.Content>
84
+ </StackItem.Root>
85
+ );
86
+ };
@@ -0,0 +1,6 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export * from './NotebookMenu';
6
+ export * from './NotebookStack';
@@ -4,21 +4,22 @@
4
4
 
5
5
  import React, { useMemo } from 'react';
6
6
 
7
- import { type ScriptType } from '@dxos/functions';
7
+ import { type Script } from '@dxos/functions';
8
8
  import { createDocAccessor, getSpace } from '@dxos/react-client/echo';
9
9
  import { useIdentity } from '@dxos/react-client/halo';
10
10
  import { createDataExtensions, listener, stackItemContentEditorClassNames } from '@dxos/react-ui-editor';
11
11
  import { StackItem } from '@dxos/react-ui-stack';
12
12
 
13
+ import { useDeployState, useToolbarState } from '../hooks';
14
+ import { type ScriptSettings } from '../types';
15
+
13
16
  import { ScriptToolbar } from './ScriptToolbar';
14
17
  import { TypescriptEditor, type TypescriptEditorProps } from './TypescriptEditor';
15
- import { useDeployState, useToolbarState } from '../hooks';
16
- import { type ScriptSettingsProps } from '../types';
17
18
 
18
19
  export type ScriptEditorProps = {
19
20
  role: string;
20
- script: ScriptType;
21
- settings?: ScriptSettingsProps;
21
+ script: Script.Script;
22
+ settings?: ScriptSettings;
22
23
  } & Pick<TypescriptEditorProps, 'env'>;
23
24
 
24
25
  export const ScriptContainer = ({ role, script, settings = { editorInputMode: 'vscode' }, env }: ScriptEditorProps) => {
@@ -32,7 +33,7 @@ export const ScriptContainer = ({ role, script, settings = { editorInputMode: 'v
32
33
  script.source.target
33
34
  ? [
34
35
  listener({
35
- onChange: (text) => {
36
+ onChange: ({ text }) => {
36
37
  if (script.source.target?.content !== text) {
37
38
  script.changed = true;
38
39
  }
@@ -2,29 +2,46 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
6
 
7
- import { type Meta } from '@storybook/react-vite';
7
+ import { IntentPlugin } from '@dxos/app-framework';
8
+ import { withPluginManager } from '@dxos/app-framework/testing';
9
+ import { Script } from '@dxos/functions';
10
+ import { ClientPlugin } from '@dxos/plugin-client';
11
+ import { withLayout, withTheme } from '@dxos/react-ui/testing';
8
12
 
9
- import { withLayout, withTheme } from '@dxos/storybook-utils';
13
+ import { translations } from '../../translations';
10
14
 
11
15
  import { ScriptToolbar } from './ScriptToolbar';
12
- import { templates } from '../../templates';
13
16
 
14
- export const Default = {
15
- args: {
16
- binding: 'example',
17
- deployed: true,
18
- templates,
19
- onFormat: () => console.log('Format'),
20
- onTogglePanel: () => {},
21
- },
22
- };
23
-
24
- const meta: Meta = {
17
+ const meta = {
25
18
  title: 'plugins/plugin-script/Toolbar',
26
19
  component: ScriptToolbar,
27
- decorators: [withTheme, withLayout()],
28
- };
20
+ // TODO(wittjosiah): Try to write story which does not depend on plugin manager.
21
+ decorators: [
22
+ withTheme,
23
+ withLayout({ classNames: 'is-prose' }),
24
+ withPluginManager({
25
+ plugins: [IntentPlugin(), ClientPlugin({})],
26
+ }),
27
+ ],
28
+ parameters: {
29
+ layout: 'centered',
30
+ translations,
31
+ },
32
+ } satisfies Meta<typeof ScriptToolbar>;
29
33
 
30
34
  export default meta;
35
+
36
+ type Story = StoryObj<typeof meta>;
37
+
38
+ export const Default: Story = {
39
+ args: {
40
+ state: {},
41
+ script: Script.make({
42
+ name: 'test',
43
+ description: 'test',
44
+ source: 'test',
45
+ }),
46
+ },
47
+ };
@@ -5,10 +5,17 @@
5
5
  import { Rx } from '@effect-rx/rx-react';
6
6
  import React, { useMemo } from 'react';
7
7
 
8
- import { type ScriptType } from '@dxos/functions';
8
+ import { type Script } from '@dxos/functions';
9
9
  import { fullyQualifiedId } from '@dxos/react-client/echo';
10
- import { ElevationProvider, useTranslation, type ThemedClassName } from '@dxos/react-ui';
11
- import { createGapSeparator, MenuProvider, rxFromSignal, ToolbarMenu, useMenuActions } from '@dxos/react-ui-menu';
10
+ import { ElevationProvider, useTranslation } from '@dxos/react-ui';
11
+ import {
12
+ type ActionGraphProps,
13
+ MenuProvider,
14
+ ToolbarMenu,
15
+ createGapSeparator,
16
+ rxFromSignal,
17
+ useMenuActions,
18
+ } from '@dxos/react-ui-menu';
12
19
 
13
20
  import {
14
21
  type CreateDeployOptions,
@@ -18,9 +25,30 @@ import {
18
25
  createTemplateSelect,
19
26
  useDeployDeps,
20
27
  } from '../../hooks';
21
- import { SCRIPT_PLUGIN } from '../../meta';
28
+ import { meta } from '../../meta';
29
+
30
+ export type ScriptToolbarProps = {
31
+ role?: string;
32
+ script: Script.Script;
33
+ state: ScriptToolbarState;
34
+ };
35
+
36
+ export const ScriptToolbar = ({ script, role, state }: ScriptToolbarProps) => {
37
+ const { t } = useTranslation(meta.id);
38
+ const options = useDeployDeps({ script });
39
+ const menu = useMemo(() => createToolbarActions({ state, script, t, ...options }), [state, script, options, t]);
40
+ const actions = useMenuActions(menu);
41
+
42
+ return (
43
+ <ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>
44
+ <MenuProvider {...actions} attendableId={fullyQualifiedId(script)}>
45
+ <ToolbarMenu />
46
+ </MenuProvider>
47
+ </ElevationProvider>
48
+ );
49
+ };
22
50
 
23
- const createToolbar = ({ state, script, ...options }: CreateDeployOptions) =>
51
+ const createToolbarActions = ({ state, script, ...options }: CreateDeployOptions): Rx.Rx<ActionGraphProps> =>
24
52
  Rx.make((get) =>
25
53
  get(
26
54
  rxFromSignal(() => {
@@ -35,24 +63,3 @@ const createToolbar = ({ state, script, ...options }: CreateDeployOptions) =>
35
63
  }),
36
64
  ),
37
65
  );
38
-
39
- export type ScriptToolbarProps = ThemedClassName<{
40
- role?: string;
41
- script: ScriptType;
42
- state: ScriptToolbarState;
43
- }>;
44
-
45
- export const ScriptToolbar = ({ script, role, state, classNames }: ScriptToolbarProps) => {
46
- const { t } = useTranslation(SCRIPT_PLUGIN);
47
- const options = useDeployDeps({ script });
48
- const toolbarCreator = useMemo(() => createToolbar({ state, script, t, ...options }), [state, script, options, t]);
49
- const menu = useMenuActions(toolbarCreator);
50
-
51
- return (
52
- <ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>
53
- <MenuProvider {...menu} attendableId={fullyQualifiedId(script)}>
54
- <ToolbarMenu classNames={classNames} />
55
- </MenuProvider>
56
- </ElevationProvider>
57
- );
58
- };