@dxos/plugin-script 0.8.4-main.3eb6e50203 → 0.8.4-main.4a85c3132b

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 (269) hide show
  1. package/README.md +15 -13
  2. package/dist/lib/browser/{chunk-BU6CGVU2.mjs → DeploymentDialog-IIOXAS47.mjs} +11 -10
  3. package/dist/lib/browser/DeploymentDialog-IIOXAS47.mjs.map +7 -0
  4. package/dist/lib/browser/{NotebookContainer-UQ4I24R6.mjs → NotebookContainer-VVZOKGRC.mjs} +31 -26
  5. package/dist/lib/browser/NotebookContainer-VVZOKGRC.mjs.map +7 -0
  6. package/dist/lib/browser/ScriptContainer-A5SSIUH6.mjs +93 -0
  7. package/dist/lib/browser/ScriptContainer-A5SSIUH6.mjs.map +7 -0
  8. package/dist/lib/browser/ScriptObjectSettings-HYYC7KXC.mjs +294 -0
  9. package/dist/lib/browser/ScriptObjectSettings-HYYC7KXC.mjs.map +7 -0
  10. package/dist/lib/browser/ScriptPluginSettings-UTWA7CBT.mjs +55 -0
  11. package/dist/lib/browser/ScriptPluginSettings-UTWA7CBT.mjs.map +7 -0
  12. package/dist/lib/browser/ScriptProperties-HREPUE65.mjs +28 -0
  13. package/dist/lib/browser/ScriptProperties-HREPUE65.mjs.map +7 -0
  14. package/dist/lib/browser/TestContainer-D4Y2K2TT.mjs +39 -0
  15. package/dist/lib/browser/TestContainer-D4Y2K2TT.mjs.map +7 -0
  16. package/dist/lib/browser/{blueprint-definition-5RFKE7VK.mjs → blueprint-definition-YMZEJBAZ.mjs} +4 -5
  17. package/dist/lib/browser/blueprint-definition-YMZEJBAZ.mjs.map +7 -0
  18. package/dist/lib/browser/blueprints/index.mjs +3 -3
  19. package/dist/lib/browser/{chunk-3BSF5BIA.mjs → chunk-6IXFDTAI.mjs} +6 -6
  20. package/dist/lib/browser/{chunk-3BSF5BIA.mjs.map → chunk-6IXFDTAI.mjs.map} +3 -3
  21. package/dist/lib/browser/chunk-ATTZUDT7.mjs +67 -0
  22. package/dist/lib/browser/chunk-ATTZUDT7.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-G3XIOLLI.mjs +174 -0
  24. package/dist/lib/browser/chunk-G3XIOLLI.mjs.map +7 -0
  25. package/dist/lib/browser/{chunk-4N5TLXEJ.mjs → chunk-J7PGML5B.mjs} +3 -3
  26. package/dist/lib/browser/chunk-J7PGML5B.mjs.map +7 -0
  27. package/dist/lib/browser/{chunk-WWCDIB6Z.mjs → chunk-MUEVLYXJ.mjs} +89 -249
  28. package/dist/lib/browser/chunk-MUEVLYXJ.mjs.map +7 -0
  29. package/dist/lib/browser/chunk-PLDBKKYO.mjs +789 -0
  30. package/dist/lib/browser/chunk-PLDBKKYO.mjs.map +7 -0
  31. package/dist/lib/browser/chunk-Q66L5EUR.mjs +20 -0
  32. package/dist/lib/browser/chunk-Q66L5EUR.mjs.map +7 -0
  33. package/dist/lib/browser/{chunk-F3QKSKSF.mjs → chunk-TW27W3EL.mjs} +11 -17
  34. package/dist/lib/browser/chunk-TW27W3EL.mjs.map +7 -0
  35. package/dist/lib/browser/chunk-ZYU2LP6U.mjs +11 -0
  36. package/dist/lib/browser/chunk-ZYU2LP6U.mjs.map +7 -0
  37. package/dist/lib/browser/{compiler-VPUVTFQD.mjs → compiler-53G6ZHQM.mjs} +10 -72
  38. package/dist/lib/browser/compiler-53G6ZHQM.mjs.map +7 -0
  39. package/dist/lib/browser/index.mjs +24 -19
  40. package/dist/lib/browser/index.mjs.map +1 -1
  41. package/dist/lib/browser/meta.json +1 -1
  42. package/dist/lib/browser/{operation-resolver-NYDY7GDT.mjs → operation-resolver-CYEISDDK.mjs} +4 -8
  43. package/dist/lib/browser/operation-resolver-CYEISDDK.mjs.map +7 -0
  44. package/dist/lib/browser/{react-surface-FYOQSC6S.mjs → react-surface-26P6HAFD.mjs} +14 -13
  45. package/dist/lib/browser/react-surface-26P6HAFD.mjs.map +7 -0
  46. package/dist/lib/browser/{settings-5SF77MRH.mjs → settings-76UM7442.mjs} +3 -3
  47. package/dist/lib/browser/templates/index.mjs +1 -1
  48. package/dist/lib/browser/types/index.mjs +2 -2
  49. package/dist/lib/node-esm/{chunk-U6PXM2HT.mjs → DeploymentDialog-ZHPHEV2H.mjs} +11 -10
  50. package/dist/lib/node-esm/DeploymentDialog-ZHPHEV2H.mjs.map +7 -0
  51. package/dist/lib/node-esm/{NotebookContainer-DQGZ6QHI.mjs → NotebookContainer-ZLWTNMQA.mjs} +31 -26
  52. package/dist/lib/node-esm/NotebookContainer-ZLWTNMQA.mjs.map +7 -0
  53. package/dist/lib/node-esm/ScriptContainer-S4UKQAWP.mjs +94 -0
  54. package/dist/lib/node-esm/ScriptContainer-S4UKQAWP.mjs.map +7 -0
  55. package/dist/lib/node-esm/ScriptObjectSettings-C5QBRERY.mjs +295 -0
  56. package/dist/lib/node-esm/ScriptObjectSettings-C5QBRERY.mjs.map +7 -0
  57. package/dist/lib/node-esm/ScriptPluginSettings-MFACDW4R.mjs +56 -0
  58. package/dist/lib/node-esm/ScriptPluginSettings-MFACDW4R.mjs.map +7 -0
  59. package/dist/lib/node-esm/ScriptProperties-FMNIX3KU.mjs +29 -0
  60. package/dist/lib/node-esm/ScriptProperties-FMNIX3KU.mjs.map +7 -0
  61. package/dist/lib/node-esm/TestContainer-AO45YPGV.mjs +40 -0
  62. package/dist/lib/node-esm/TestContainer-AO45YPGV.mjs.map +7 -0
  63. package/dist/lib/node-esm/{blueprint-definition-EYL5GNDC.mjs → blueprint-definition-5MGY6BRQ.mjs} +4 -5
  64. package/dist/lib/node-esm/blueprint-definition-5MGY6BRQ.mjs.map +7 -0
  65. package/dist/lib/node-esm/blueprints/index.mjs +3 -3
  66. package/dist/lib/node-esm/chunk-5BG7OJGQ.mjs +176 -0
  67. package/dist/lib/node-esm/chunk-5BG7OJGQ.mjs.map +7 -0
  68. package/dist/lib/node-esm/chunk-H46R2RS5.mjs +790 -0
  69. package/dist/lib/node-esm/chunk-H46R2RS5.mjs.map +7 -0
  70. package/dist/lib/node-esm/chunk-JGN7TDJH.mjs +69 -0
  71. package/dist/lib/node-esm/chunk-JGN7TDJH.mjs.map +7 -0
  72. package/dist/lib/node-esm/{chunk-V37R7KB5.mjs → chunk-QG6ANK4B.mjs} +3 -3
  73. package/dist/lib/node-esm/chunk-QG6ANK4B.mjs.map +7 -0
  74. package/dist/lib/node-esm/{chunk-Y3G5NCTP.mjs → chunk-S7DSCLOW.mjs} +11 -16
  75. package/dist/lib/node-esm/chunk-S7DSCLOW.mjs.map +7 -0
  76. package/dist/lib/node-esm/chunk-TZ2EBTPQ.mjs +22 -0
  77. package/dist/lib/node-esm/chunk-TZ2EBTPQ.mjs.map +7 -0
  78. package/dist/lib/node-esm/chunk-UFBVE33O.mjs +12 -0
  79. package/dist/lib/node-esm/chunk-UFBVE33O.mjs.map +7 -0
  80. package/dist/lib/node-esm/{chunk-KRVL7UYI.mjs → chunk-WWD5LUU6.mjs} +6 -6
  81. package/dist/lib/node-esm/{chunk-KRVL7UYI.mjs.map → chunk-WWD5LUU6.mjs.map} +3 -3
  82. package/dist/lib/node-esm/{chunk-ECRSTVR6.mjs → chunk-ZDJ2FI7E.mjs} +89 -249
  83. package/dist/lib/node-esm/chunk-ZDJ2FI7E.mjs.map +7 -0
  84. package/dist/lib/node-esm/{compiler-WUOSY6MS.mjs → compiler-HHQW7EP3.mjs} +10 -72
  85. package/dist/lib/node-esm/compiler-HHQW7EP3.mjs.map +7 -0
  86. package/dist/lib/node-esm/index.mjs +24 -19
  87. package/dist/lib/node-esm/index.mjs.map +1 -1
  88. package/dist/lib/node-esm/meta.json +1 -1
  89. package/dist/lib/node-esm/{operation-resolver-AJNJXGCE.mjs → operation-resolver-HFFDXWND.mjs} +4 -8
  90. package/dist/lib/node-esm/operation-resolver-HFFDXWND.mjs.map +7 -0
  91. package/dist/lib/node-esm/{react-surface-LREMOVNJ.mjs → react-surface-THCIK266.mjs} +14 -13
  92. package/dist/lib/node-esm/react-surface-THCIK266.mjs.map +7 -0
  93. package/dist/lib/node-esm/{settings-ILI762CY.mjs → settings-CCHDPLFJ.mjs} +3 -3
  94. package/dist/lib/node-esm/templates/index.mjs +1 -1
  95. package/dist/lib/node-esm/types/index.mjs +2 -2
  96. package/dist/types/src/blueprints/index.d.ts +1 -1
  97. package/dist/types/src/blueprints/index.d.ts.map +1 -1
  98. package/dist/types/src/blueprints/script-blueprint.d.ts +3 -21
  99. package/dist/types/src/blueprints/script-blueprint.d.ts.map +1 -1
  100. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +1 -1
  101. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts +1 -1
  102. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +1 -5
  103. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -1
  104. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +1 -1
  105. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -1
  106. package/dist/types/src/capabilities/compiler/compiler.d.ts +1 -1
  107. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +1 -1
  108. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +1 -1
  109. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  110. package/dist/types/src/capabilities/settings/settings.d.ts +1 -1
  111. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
  112. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -1
  113. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -1
  114. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts.map +1 -1
  115. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +3 -2
  116. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  117. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  118. package/dist/types/src/components/TestPanel/index.d.ts +0 -1
  119. package/dist/types/src/components/TestPanel/index.d.ts.map +1 -1
  120. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  121. package/dist/types/src/components/index.d.ts +4 -5
  122. package/dist/types/src/components/index.d.ts.map +1 -1
  123. package/dist/types/src/constants.d.ts +2 -0
  124. package/dist/types/src/constants.d.ts.map +1 -0
  125. package/dist/types/src/{components → containers}/DeploymentDialog/DeploymentDialog.d.ts +0 -2
  126. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.d.ts.map +1 -0
  127. package/dist/types/src/{components → containers}/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
  128. package/dist/types/src/containers/DeploymentDialog/index.d.ts +3 -0
  129. package/dist/types/src/containers/DeploymentDialog/index.d.ts.map +1 -0
  130. package/dist/types/src/{components → containers/NotebookContainer}/NotebookContainer.d.ts +2 -3
  131. package/dist/types/src/containers/NotebookContainer/NotebookContainer.d.ts.map +1 -0
  132. package/dist/types/src/containers/NotebookContainer/NotebookContainer.stories.d.ts.map +1 -0
  133. package/dist/types/src/containers/NotebookContainer/index.d.ts +3 -0
  134. package/dist/types/src/containers/NotebookContainer/index.d.ts.map +1 -0
  135. package/dist/types/src/{components → containers/ScriptContainer}/ScriptContainer.d.ts +2 -3
  136. package/dist/types/src/containers/ScriptContainer/ScriptContainer.d.ts.map +1 -0
  137. package/dist/types/src/containers/ScriptContainer/index.d.ts +3 -0
  138. package/dist/types/src/containers/ScriptContainer/index.d.ts.map +1 -0
  139. package/dist/types/src/{components/Settings → containers/ScriptObjectSettings}/ScriptObjectSettings.d.ts +0 -1
  140. package/dist/types/src/containers/ScriptObjectSettings/ScriptObjectSettings.d.ts.map +1 -0
  141. package/dist/types/src/containers/ScriptObjectSettings/index.d.ts +3 -0
  142. package/dist/types/src/containers/ScriptObjectSettings/index.d.ts.map +1 -0
  143. package/dist/types/src/containers/ScriptPluginSettings/ScriptPluginSettings.d.ts.map +1 -0
  144. package/dist/types/src/containers/ScriptPluginSettings/index.d.ts +3 -0
  145. package/dist/types/src/containers/ScriptPluginSettings/index.d.ts.map +1 -0
  146. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts +7 -0
  147. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts.map +1 -0
  148. package/dist/types/src/containers/ScriptProperties/index.d.ts +3 -0
  149. package/dist/types/src/containers/ScriptProperties/index.d.ts.map +1 -0
  150. package/dist/types/src/containers/TestContainer/TestContainer.d.ts.map +1 -0
  151. package/dist/types/src/containers/TestContainer/index.d.ts +3 -0
  152. package/dist/types/src/containers/TestContainer/index.d.ts.map +1 -0
  153. package/dist/types/src/containers/index.d.ts +9 -0
  154. package/dist/types/src/containers/index.d.ts.map +1 -0
  155. package/dist/types/src/hooks/deploy.d.ts +2 -1
  156. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  157. package/dist/types/src/hooks/format.d.ts +1 -0
  158. package/dist/types/src/hooks/format.d.ts.map +1 -1
  159. package/dist/types/src/hooks/template.d.ts +1 -0
  160. package/dist/types/src/hooks/template.d.ts.map +1 -1
  161. package/dist/types/src/index.d.ts +1 -0
  162. package/dist/types/src/index.d.ts.map +1 -1
  163. package/dist/types/src/templates/chess-bot.d.ts.map +1 -1
  164. package/dist/types/src/templates/commentary.d.ts.map +1 -1
  165. package/dist/types/src/types/Notebook.d.ts +12 -4
  166. package/dist/types/src/types/Notebook.d.ts.map +1 -1
  167. package/dist/types/tsconfig.tsbuildinfo +1 -1
  168. package/package.json +74 -74
  169. package/src/blueprints/index.ts +1 -1
  170. package/src/blueprints/script-blueprint.ts +14 -7
  171. package/src/capabilities/blueprint-definition/blueprint-definition.ts +4 -11
  172. package/src/capabilities/operation-resolver/operation-resolver.ts +1 -1
  173. package/src/capabilities/react-surface/react-surface.tsx +13 -11
  174. package/src/components/FrameContainer/FrameContainer.tsx +2 -3
  175. package/src/components/FrameContainer/frame.html +21 -21
  176. package/src/components/NotebookStack/NotebookCell.tsx +7 -9
  177. package/src/components/NotebookStack/NotebookStack.stories.tsx +2 -3
  178. package/src/components/NotebookStack/NotebookStack.tsx +3 -3
  179. package/src/components/QueryEditor/QueryEditor.stories.tsx +16 -14
  180. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +4 -5
  181. package/src/components/ScriptToolbar/ScriptToolbar.tsx +7 -7
  182. package/src/components/TestPanel/TestPanel.tsx +6 -6
  183. package/src/components/TestPanel/index.ts +0 -1
  184. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +16 -14
  185. package/src/components/TypescriptEditor/TypescriptEditor.tsx +1 -1
  186. package/src/components/index.ts +4 -9
  187. package/src/constants.ts +7 -0
  188. package/src/{components → containers}/DeploymentDialog/DeploymentDialog.stories.tsx +3 -4
  189. package/src/{components → containers}/DeploymentDialog/DeploymentDialog.tsx +2 -6
  190. package/src/containers/DeploymentDialog/index.ts +7 -0
  191. package/src/{components → containers/NotebookContainer}/NotebookContainer.stories.tsx +7 -7
  192. package/src/{components → containers/NotebookContainer}/NotebookContainer.tsx +36 -39
  193. package/src/containers/NotebookContainer/index.ts +7 -0
  194. package/src/{components → containers/ScriptContainer}/ScriptContainer.tsx +20 -20
  195. package/src/containers/ScriptContainer/index.ts +7 -0
  196. package/src/{components/Settings → containers/ScriptObjectSettings}/ScriptObjectSettings.tsx +3 -21
  197. package/src/containers/ScriptObjectSettings/index.ts +7 -0
  198. package/src/containers/ScriptPluginSettings/index.ts +7 -0
  199. package/src/containers/ScriptProperties/ScriptProperties.tsx +33 -0
  200. package/src/containers/ScriptProperties/index.ts +7 -0
  201. package/src/{components/TestPanel → containers/TestContainer}/TestContainer.tsx +7 -6
  202. package/src/containers/TestContainer/index.ts +7 -0
  203. package/src/containers/index.ts +13 -0
  204. package/src/e2e/deploy.test.ts +1 -1
  205. package/src/hooks/deploy.ts +5 -5
  206. package/src/hooks/format.ts +1 -0
  207. package/src/hooks/template.ts +2 -2
  208. package/src/index.ts +1 -0
  209. package/src/templates/chess-bot.ts +2 -2
  210. package/src/templates/commentary.ts +4 -3
  211. package/src/types/Notebook.ts +4 -4
  212. package/dist/lib/browser/DeploymentDialog-XUAFCNI7.mjs +0 -14
  213. package/dist/lib/browser/DeploymentDialog-XUAFCNI7.mjs.map +0 -7
  214. package/dist/lib/browser/NotebookContainer-UQ4I24R6.mjs.map +0 -7
  215. package/dist/lib/browser/ScriptContainer-NB76645V.mjs +0 -149
  216. package/dist/lib/browser/ScriptContainer-NB76645V.mjs.map +0 -7
  217. package/dist/lib/browser/blueprint-definition-5RFKE7VK.mjs.map +0 -7
  218. package/dist/lib/browser/chunk-4N5TLXEJ.mjs.map +0 -7
  219. package/dist/lib/browser/chunk-BKGEAUUH.mjs +0 -270
  220. package/dist/lib/browser/chunk-BKGEAUUH.mjs.map +0 -7
  221. package/dist/lib/browser/chunk-BU6CGVU2.mjs.map +0 -7
  222. package/dist/lib/browser/chunk-F3QKSKSF.mjs.map +0 -7
  223. package/dist/lib/browser/chunk-I7CSE6T3.mjs +0 -110
  224. package/dist/lib/browser/chunk-I7CSE6T3.mjs.map +0 -7
  225. package/dist/lib/browser/chunk-LYMPME7J.mjs +0 -609
  226. package/dist/lib/browser/chunk-LYMPME7J.mjs.map +0 -7
  227. package/dist/lib/browser/chunk-WWCDIB6Z.mjs.map +0 -7
  228. package/dist/lib/browser/compiler-VPUVTFQD.mjs.map +0 -7
  229. package/dist/lib/browser/operation-resolver-NYDY7GDT.mjs.map +0 -7
  230. package/dist/lib/browser/react-surface-FYOQSC6S.mjs.map +0 -7
  231. package/dist/lib/node-esm/DeploymentDialog-GGWDQMEB.mjs +0 -15
  232. package/dist/lib/node-esm/DeploymentDialog-GGWDQMEB.mjs.map +0 -7
  233. package/dist/lib/node-esm/NotebookContainer-DQGZ6QHI.mjs.map +0 -7
  234. package/dist/lib/node-esm/ScriptContainer-PCNJFUWX.mjs +0 -150
  235. package/dist/lib/node-esm/ScriptContainer-PCNJFUWX.mjs.map +0 -7
  236. package/dist/lib/node-esm/blueprint-definition-EYL5GNDC.mjs.map +0 -7
  237. package/dist/lib/node-esm/chunk-3CKQUF55.mjs +0 -610
  238. package/dist/lib/node-esm/chunk-3CKQUF55.mjs.map +0 -7
  239. package/dist/lib/node-esm/chunk-3QBXN6QC.mjs +0 -271
  240. package/dist/lib/node-esm/chunk-3QBXN6QC.mjs.map +0 -7
  241. package/dist/lib/node-esm/chunk-ECRSTVR6.mjs.map +0 -7
  242. package/dist/lib/node-esm/chunk-SLU3KRV3.mjs +0 -112
  243. package/dist/lib/node-esm/chunk-SLU3KRV3.mjs.map +0 -7
  244. package/dist/lib/node-esm/chunk-U6PXM2HT.mjs.map +0 -7
  245. package/dist/lib/node-esm/chunk-V37R7KB5.mjs.map +0 -7
  246. package/dist/lib/node-esm/chunk-Y3G5NCTP.mjs.map +0 -7
  247. package/dist/lib/node-esm/compiler-WUOSY6MS.mjs.map +0 -7
  248. package/dist/lib/node-esm/operation-resolver-AJNJXGCE.mjs.map +0 -7
  249. package/dist/lib/node-esm/react-surface-LREMOVNJ.mjs.map +0 -7
  250. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +0 -1
  251. package/dist/types/src/components/DeploymentDialog/index.d.ts +0 -4
  252. package/dist/types/src/components/DeploymentDialog/index.d.ts.map +0 -1
  253. package/dist/types/src/components/NotebookContainer.d.ts.map +0 -1
  254. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +0 -1
  255. package/dist/types/src/components/ScriptContainer.d.ts.map +0 -1
  256. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +0 -1
  257. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +0 -1
  258. package/dist/types/src/components/Settings/index.d.ts +0 -3
  259. package/dist/types/src/components/Settings/index.d.ts.map +0 -1
  260. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +0 -1
  261. package/src/components/DeploymentDialog/index.ts +0 -9
  262. package/src/components/Settings/index.ts +0 -6
  263. /package/dist/lib/browser/{settings-5SF77MRH.mjs.map → settings-76UM7442.mjs.map} +0 -0
  264. /package/dist/lib/node-esm/{settings-ILI762CY.mjs.map → settings-CCHDPLFJ.mjs.map} +0 -0
  265. /package/dist/types/src/{components → containers}/DeploymentDialog/DeploymentDialog.stories.d.ts +0 -0
  266. /package/dist/types/src/{components → containers/NotebookContainer}/NotebookContainer.stories.d.ts +0 -0
  267. /package/dist/types/src/{components/Settings → containers/ScriptPluginSettings}/ScriptPluginSettings.d.ts +0 -0
  268. /package/dist/types/src/{components/TestPanel → containers/TestContainer}/TestContainer.d.ts +0 -0
  269. /package/src/{components/Settings → containers/ScriptPluginSettings}/ScriptPluginSettings.tsx +0 -0
@@ -0,0 +1,94 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ ScriptToolbar,
4
+ TypescriptEditor
5
+ } from "./chunk-H46R2RS5.mjs";
6
+ import "./chunk-JGN7TDJH.mjs";
7
+ import {
8
+ useDeployState,
9
+ useToolbarState
10
+ } from "./chunk-ZDJ2FI7E.mjs";
11
+ import "./chunk-5BG7OJGQ.mjs";
12
+ import "./chunk-WWD5LUU6.mjs";
13
+ import "./chunk-QG6ANK4B.mjs";
14
+ import "./chunk-5HSJPAK7.mjs";
15
+ import "./chunk-HSLMI22Q.mjs";
16
+
17
+ // src/containers/ScriptContainer/ScriptContainer.tsx
18
+ import React, { useMemo } from "react";
19
+ import { Obj } from "@dxos/echo";
20
+ import { createDocAccessor } from "@dxos/echo-db";
21
+ import { getSpace } from "@dxos/react-client/echo";
22
+ import { useIdentity } from "@dxos/react-client/halo";
23
+ import { Panel } from "@dxos/react-ui";
24
+ import { createDataExtensions, listener, stackItemContentEditorClassNames } from "@dxos/ui-editor";
25
+ var ScriptContainer = ({ role, subject: script, settings = {
26
+ editorInputMode: "vscode"
27
+ }, env }) => {
28
+ const identity = useIdentity();
29
+ const space = getSpace(script);
30
+ const state = useToolbarState();
31
+ useDeployState({
32
+ script,
33
+ state
34
+ });
35
+ const extensions = useMemo(() => {
36
+ if (!script.source.target) {
37
+ return [];
38
+ }
39
+ return [
40
+ createDataExtensions({
41
+ id: script.id,
42
+ text: createDocAccessor(script.source.target, [
43
+ "content"
44
+ ]),
45
+ messenger: space,
46
+ identity
47
+ }),
48
+ listener({
49
+ onChange: ({ text }) => {
50
+ if (script.source.target?.content !== text) {
51
+ Obj.change(script, (s) => {
52
+ s.changed = true;
53
+ });
54
+ }
55
+ }
56
+ })
57
+ ];
58
+ }, [
59
+ identity,
60
+ space,
61
+ script,
62
+ script.source.target
63
+ ]);
64
+ if (!extensions.length) {
65
+ return null;
66
+ }
67
+ return /* @__PURE__ */ React.createElement(Panel.Root, {
68
+ role,
69
+ className: "dx-article"
70
+ }, /* @__PURE__ */ React.createElement(Panel.Toolbar, {
71
+ asChild: true
72
+ }, /* @__PURE__ */ React.createElement(ScriptToolbar, {
73
+ state,
74
+ role,
75
+ script
76
+ })), /* @__PURE__ */ React.createElement(Panel.Content, {
77
+ asChild: true
78
+ }, /* @__PURE__ */ React.createElement(TypescriptEditor, {
79
+ id: script.id,
80
+ env,
81
+ initialValue: script.source?.target?.content,
82
+ extensions,
83
+ classNames: stackItemContentEditorClassNames(role),
84
+ inputMode: settings.editorInputMode,
85
+ toolbar: true
86
+ })));
87
+ };
88
+
89
+ // src/containers/ScriptContainer/index.ts
90
+ var ScriptContainer_default = ScriptContainer;
91
+ export {
92
+ ScriptContainer_default as default
93
+ };
94
+ //# sourceMappingURL=ScriptContainer-S4UKQAWP.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/ScriptContainer/ScriptContainer.tsx", "../../../src/containers/ScriptContainer/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { Obj } from '@dxos/echo';\nimport { createDocAccessor } from '@dxos/echo-db';\nimport { type Script } from '@dxos/functions';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { Panel } from '@dxos/react-ui';\nimport { createDataExtensions, listener, stackItemContentEditorClassNames } from '@dxos/ui-editor';\n\nimport { ScriptToolbar, TypescriptEditor, type TypescriptEditorProps } from '../../components';\nimport { useDeployState, useToolbarState } from '../../hooks';\nimport { type ScriptSettings } from '../../types';\n\nexport type ScriptEditorProps = SurfaceComponentProps<\n Script.Script,\n {\n settings?: ScriptSettings;\n } & Pick<TypescriptEditorProps, 'env'>\n>;\n\nexport const ScriptContainer = ({\n role,\n subject: script,\n settings = { editorInputMode: 'vscode' },\n env,\n}: ScriptEditorProps) => {\n const identity = useIdentity();\n const space = getSpace(script);\n const state = useToolbarState();\n useDeployState({ script, state });\n\n const extensions = useMemo(() => {\n if (!script.source.target) {\n return [];\n }\n\n return [\n createDataExtensions({\n id: script.id,\n text: createDocAccessor(script.source.target, ['content']),\n messenger: space,\n identity,\n }),\n listener({\n onChange: ({ text }) => {\n if (script.source.target?.content !== text) {\n Obj.change(script, (s) => {\n s.changed = true;\n });\n }\n },\n }),\n ];\n }, [identity, space, script, script.source.target]);\n\n if (!extensions.length) {\n return null;\n }\n\n return (\n <Panel.Root role={role} className='dx-article'>\n <Panel.Toolbar asChild>\n <ScriptToolbar state={state} role={role} script={script} />\n </Panel.Toolbar>\n <Panel.Content asChild>\n <TypescriptEditor\n id={script.id}\n env={env}\n initialValue={script.source?.target?.content}\n extensions={extensions}\n classNames={stackItemContentEditorClassNames(role)}\n inputMode={settings.editorInputMode}\n toolbar\n />\n </Panel.Content>\n </Panel.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ScriptContainer } from './ScriptContainer';\n\nexport default ScriptContainer;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAIA,OAAOA,SAASC,eAAe;AAG/B,SAASC,WAAW;AACpB,SAASC,yBAAyB;AAElC,SAASC,gBAAgB;AACzB,SAASC,mBAAmB;AAC5B,SAASC,aAAa;AACtB,SAASC,sBAAsBC,UAAUC,wCAAwC;AAa1E,IAAMC,kBAAkB,CAAC,EAC9BC,MACAC,SAASC,QACTC,WAAW;EAAEC,iBAAiB;AAAS,GACvCC,IAAG,MACe;AAClB,QAAMC,WAAWC,YAAAA;AACjB,QAAMC,QAAQC,SAASP,MAAAA;AACvB,QAAMQ,QAAQC,gBAAAA;AACdC,iBAAe;IAAEV;IAAQQ;EAAM,CAAA;AAE/B,QAAMG,aAAaC,QAAQ,MAAA;AACzB,QAAI,CAACZ,OAAOa,OAAOC,QAAQ;AACzB,aAAO,CAAA;IACT;AAEA,WAAO;MACLC,qBAAqB;QACnBC,IAAIhB,OAAOgB;QACXC,MAAMC,kBAAkBlB,OAAOa,OAAOC,QAAQ;UAAC;SAAU;QACzDK,WAAWb;QACXF;MACF,CAAA;MACAgB,SAAS;QACPC,UAAU,CAAC,EAAEJ,KAAI,MAAE;AACjB,cAAIjB,OAAOa,OAAOC,QAAQQ,YAAYL,MAAM;AAC1CM,gBAAIC,OAAOxB,QAAQ,CAACyB,MAAAA;AAClBA,gBAAEC,UAAU;YACd,CAAA;UACF;QACF;MACF,CAAA;;EAEJ,GAAG;IAACtB;IAAUE;IAAON;IAAQA,OAAOa,OAAOC;GAAO;AAElD,MAAI,CAACH,WAAWgB,QAAQ;AACtB,WAAO;EACT;AAEA,SACE,sBAAA,cAACC,MAAMC,MAAI;IAAC/B;IAAYgC,WAAU;KAChC,sBAAA,cAACF,MAAMG,SAAO;IAACC,SAAAA;KACb,sBAAA,cAACC,eAAAA;IAAczB;IAAcV;IAAYE;OAE3C,sBAAA,cAAC4B,MAAMM,SAAO;IAACF,SAAAA;KACb,sBAAA,cAACG,kBAAAA;IACCnB,IAAIhB,OAAOgB;IACXb;IACAiC,cAAcpC,OAAOa,QAAQC,QAAQQ;IACrCX;IACA0B,YAAYC,iCAAiCxC,IAAAA;IAC7CyC,WAAWtC,SAASC;IACpBsC,SAAAA;;AAKV;;;AC7EA,IAAA,0BAAeC;",
6
+ "names": ["React", "useMemo", "Obj", "createDocAccessor", "getSpace", "useIdentity", "Panel", "createDataExtensions", "listener", "stackItemContentEditorClassNames", "ScriptContainer", "role", "subject", "script", "settings", "editorInputMode", "env", "identity", "useIdentity", "space", "getSpace", "state", "useToolbarState", "useDeployState", "extensions", "useMemo", "source", "target", "createDataExtensions", "id", "text", "createDocAccessor", "messenger", "listener", "onChange", "content", "Obj", "change", "s", "changed", "length", "Panel", "Root", "className", "Toolbar", "asChild", "ScriptToolbar", "Content", "TypescriptEditor", "initialValue", "classNames", "stackItemContentEditorClassNames", "inputMode", "toolbar", "ScriptContainer"]
7
+ }
@@ -0,0 +1,295 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ meta
4
+ } from "./chunk-5HSJPAK7.mjs";
5
+ import "./chunk-HSLMI22Q.mjs";
6
+
7
+ // src/containers/ScriptObjectSettings/ScriptObjectSettings.tsx
8
+ import { Octokit } from "@octokit/core";
9
+ import React, { useCallback, useState } from "react";
10
+ import { ToolId } from "@dxos/ai";
11
+ import { useOperationInvoker } from "@dxos/app-framework/ui";
12
+ import { SettingsOperation } from "@dxos/app-toolkit";
13
+ import { Blueprint, Template } from "@dxos/blueprints";
14
+ import { Filter, Obj, Ref } from "@dxos/echo";
15
+ import { Function, getUserFunctionIdInMetadata } from "@dxos/functions";
16
+ import { getInvocationUrl } from "@dxos/functions-runtime";
17
+ import { log } from "@dxos/log";
18
+ import { useClient } from "@dxos/react-client";
19
+ import { useQuery } from "@dxos/react-client/echo";
20
+ import { Button, Clipboard, Input, useAsyncEffect, useControlledState, useTranslation } from "@dxos/react-ui";
21
+ import { AccessToken } from "@dxos/types";
22
+ import { kebabize } from "@dxos/util";
23
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/containers/ScriptObjectSettings/ScriptObjectSettings.tsx";
24
+ var ScriptObjectSettings = ({ object }) => {
25
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Binding, {
26
+ object
27
+ }), /* @__PURE__ */ React.createElement(BlueprintEditor, {
28
+ object
29
+ }), /* @__PURE__ */ React.createElement(Publishing, {
30
+ object
31
+ }));
32
+ };
33
+ var BlueprintEditor = ({ object }) => {
34
+ const { t } = useTranslation(meta.id);
35
+ const db = Obj.getDatabase(object);
36
+ const [fn] = useQuery(db, Filter.type(Function.Function, {
37
+ source: Ref.make(object)
38
+ }));
39
+ const blueprints = useQuery(db, Filter.type(Blueprint.Blueprint));
40
+ const [creating, setCreating] = useState(false);
41
+ const [instructions, setInstructions] = useState(`You can run the script "${object.name ?? "script"}".`);
42
+ const blueprintKey = `dxos.org/blueprint/${kebabize(object.name ?? "script")}`;
43
+ const existingBlueprint = blueprints.find((bp) => bp.key === blueprintKey);
44
+ useAsyncEffect(async () => {
45
+ if (!existingBlueprint) {
46
+ return;
47
+ }
48
+ const source = await existingBlueprint.instructions.source.load();
49
+ setInstructions(source.content ?? "");
50
+ }, [
51
+ existingBlueprint
52
+ ]);
53
+ const handleSave = useCallback(async () => {
54
+ if (!db) {
55
+ return;
56
+ }
57
+ setCreating(true);
58
+ try {
59
+ if (existingBlueprint) {
60
+ const text = await existingBlueprint.instructions.source.load();
61
+ Obj.change(text, (t2) => {
62
+ t2.content = instructions;
63
+ });
64
+ if (fn?.key) {
65
+ const toolId = ToolId.make(fn.key);
66
+ if (!existingBlueprint.tools?.includes(toolId)) {
67
+ Obj.change(existingBlueprint, (b) => {
68
+ b.tools = [
69
+ ...b.tools ?? [],
70
+ toolId
71
+ ];
72
+ });
73
+ }
74
+ }
75
+ } else if (fn?.key) {
76
+ db.add(Blueprint.make({
77
+ key: blueprintKey,
78
+ name: object.name ?? "Script",
79
+ instructions: Template.make({
80
+ source: instructions
81
+ }),
82
+ tools: [
83
+ ToolId.make(fn.key)
84
+ ]
85
+ }));
86
+ }
87
+ await db.flush();
88
+ } finally {
89
+ setCreating(false);
90
+ }
91
+ }, [
92
+ db,
93
+ existingBlueprint,
94
+ fn,
95
+ blueprintKey,
96
+ object.name,
97
+ instructions
98
+ ]);
99
+ return /* @__PURE__ */ React.createElement("div", {
100
+ className: "flex flex-col gap-4 my-form-padding"
101
+ }, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("h2", null, t("blueprint editor label", {
102
+ default: "Blueprint"
103
+ })), /* @__PURE__ */ React.createElement("p", {
104
+ className: "text-description text-sm"
105
+ }, t("blueprint editor description", {
106
+ default: "Create a blueprint that exposes this script as a tool."
107
+ }))), /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement("div", {
108
+ role: "none",
109
+ className: "flex flex-col gap-1"
110
+ }, /* @__PURE__ */ React.createElement(Input.Label, null, t("blueprint instructions label", {
111
+ default: "Instructions"
112
+ })), /* @__PURE__ */ React.createElement(Input.TextArea, {
113
+ placeholder: t("blueprint instructions placeholder", {
114
+ default: "Describe how this tool should be used."
115
+ }),
116
+ rows: 6,
117
+ value: instructions,
118
+ onChange: (event) => setInstructions(event.target.value),
119
+ classNames: "resize-y"
120
+ }))), /* @__PURE__ */ React.createElement("div", {
121
+ className: "flex justify-end gap-2"
122
+ }, /* @__PURE__ */ React.createElement(Button, {
123
+ disabled: !existingBlueprint && !fn?.key || creating,
124
+ onClick: handleSave
125
+ }, t(creating ? "creating label" : "create blueprint label", {
126
+ default: creating ? "Creating\u2026" : "Create blueprint"
127
+ }))));
128
+ };
129
+ var Binding = ({ object }) => {
130
+ const { t } = useTranslation(meta.id);
131
+ const client = useClient();
132
+ const db = Obj.getDatabase(object);
133
+ const [fn] = useQuery(db, Filter.type(Function.Function, {
134
+ source: Ref.make(object)
135
+ }));
136
+ const functionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));
137
+ const functionUrl = functionId && getInvocationUrl(functionId, client.config.values.runtime?.services?.edge?.url ?? "", {
138
+ spaceId: db?.spaceId
139
+ });
140
+ const [binding, setBinding] = useControlledState(fn?.binding ?? "");
141
+ const handleBindingChange = useCallback((event) => {
142
+ setBinding(event.target.value);
143
+ }, [
144
+ setBinding
145
+ ]);
146
+ const handleBindingBlur = useCallback(() => {
147
+ Obj.change(fn, (f) => {
148
+ f.binding = binding;
149
+ });
150
+ }, [
151
+ fn,
152
+ binding
153
+ ]);
154
+ if (!fn || !functionUrl) {
155
+ return null;
156
+ }
157
+ return /* @__PURE__ */ React.createElement("div", {
158
+ role: "form",
159
+ className: "flex flex-col gap-2 my-form-padding"
160
+ }, /* @__PURE__ */ React.createElement("h2", null, t("remote function settings heading")), /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement("div", {
161
+ role: "none",
162
+ className: "flex flex-col gap-1"
163
+ }, /* @__PURE__ */ React.createElement(Input.Label, null, t("function url label")), /* @__PURE__ */ React.createElement("div", {
164
+ role: "none",
165
+ className: "flex gap-1"
166
+ }, /* @__PURE__ */ React.createElement(Input.TextInput, {
167
+ disabled: true,
168
+ value: functionUrl,
169
+ onChange: (event) => {
170
+ Obj.change(fn, (f) => {
171
+ f.name = event.target.value;
172
+ });
173
+ }
174
+ }), /* @__PURE__ */ React.createElement(Clipboard.IconButton, {
175
+ value: functionUrl
176
+ })))), /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement("div", {
177
+ role: "none",
178
+ className: "flex flex-col gap-1"
179
+ }, /* @__PURE__ */ React.createElement(Input.Label, null, t("function binding label")), /* @__PURE__ */ React.createElement(Input.TextInput, {
180
+ placeholder: t("function binding placeholder"),
181
+ value: binding,
182
+ onChange: handleBindingChange,
183
+ onBlur: handleBindingBlur
184
+ }))));
185
+ };
186
+ var Publishing = ({ object }) => {
187
+ const { t } = useTranslation(meta.id);
188
+ const { invokePromise } = useOperationInvoker();
189
+ const db = Obj.getDatabase(object);
190
+ const [githubToken] = useQuery(db, Filter.type(AccessToken.AccessToken, {
191
+ source: "github.com"
192
+ }));
193
+ const gistKey = Obj.getMeta(object).keys.find(({ source }) => source === "github.com");
194
+ const [gistUrl, setGistUrl] = useState();
195
+ useAsyncEffect(async () => {
196
+ const token = githubToken?.token;
197
+ const gistId = gistKey?.id;
198
+ if (!token || !gistId) {
199
+ setGistUrl(void 0);
200
+ return;
201
+ }
202
+ try {
203
+ const octokit = new Octokit({
204
+ auth: githubToken.token
205
+ });
206
+ const response = await octokit.request("GET /gists/{gist_id}", {
207
+ gist_id: gistId
208
+ });
209
+ setGistUrl(response.data.html_url);
210
+ } catch (err) {
211
+ log.catch(err, void 0, {
212
+ F: __dxlog_file,
213
+ L: 221,
214
+ S: void 0,
215
+ C: (f, a) => f(...a)
216
+ });
217
+ setGistUrl(void 0);
218
+ }
219
+ }, [
220
+ githubToken,
221
+ gistKey
222
+ ]);
223
+ const handleOpenTokenManager = useCallback(() => invokePromise(SettingsOperation.Open, {
224
+ plugin: "dxos.org/plugin/token-manager"
225
+ }), [
226
+ invokePromise
227
+ ]);
228
+ const [publishing, setPublishing] = useState(false);
229
+ const handlePublish = useCallback(async () => {
230
+ setPublishing(true);
231
+ const octokit = new Octokit({
232
+ auth: githubToken.token
233
+ });
234
+ const source = await object.source.load();
235
+ const filename = object.name ? kebabize(object.name) : "composer-script";
236
+ const files = {
237
+ [`${filename}.ts`]: {
238
+ content: source.content
239
+ }
240
+ };
241
+ try {
242
+ const meta2 = Obj.getMeta(object);
243
+ const githubKey = meta2.keys.find(({ source: source2 }) => source2 === "github.com");
244
+ const gistId = githubKey?.id;
245
+ if (gistId) {
246
+ await octokit.request("PATCH /gists/{gist_id}", {
247
+ gist_id: gistId,
248
+ files
249
+ });
250
+ } else {
251
+ const response = await octokit.request("POST /gists", {
252
+ public: true,
253
+ files
254
+ });
255
+ const gistId2 = response.data.id;
256
+ if (gistId2) {
257
+ Obj.change(object, (obj) => {
258
+ Obj.getMeta(obj).keys.push({
259
+ source: "github.com",
260
+ id: gistId2
261
+ });
262
+ });
263
+ }
264
+ }
265
+ } finally {
266
+ setPublishing(false);
267
+ }
268
+ }, [
269
+ object,
270
+ githubToken
271
+ ]);
272
+ return /* @__PURE__ */ React.createElement("div", {
273
+ className: "flex flex-col gap-4 my-form-padding"
274
+ }, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("h2", null, t("script publish settings label")), /* @__PURE__ */ React.createElement("p", {
275
+ className: "text-description text-sm"
276
+ }, t("script publish settings description"))), !githubToken && /* @__PURE__ */ React.createElement("div", {
277
+ className: "flex flex-col gap-2"
278
+ }, /* @__PURE__ */ React.createElement("span", null, t("no github token label")), /* @__PURE__ */ React.createElement(Button, {
279
+ onClick: handleOpenTokenManager
280
+ }, t("open token manager label"))), githubToken && /* @__PURE__ */ React.createElement("div", {
281
+ className: "flex justify-end gap-2"
282
+ }, gistUrl && /* @__PURE__ */ React.createElement(Clipboard.IconButton, {
283
+ value: gistUrl
284
+ }), /* @__PURE__ */ React.createElement(Button, {
285
+ disabled: publishing,
286
+ onClick: handlePublish
287
+ }, t(publishing ? "publishing label" : "publish label"))));
288
+ };
289
+
290
+ // src/containers/ScriptObjectSettings/index.ts
291
+ var ScriptObjectSettings_default = ScriptObjectSettings;
292
+ export {
293
+ ScriptObjectSettings_default as default
294
+ };
295
+ //# sourceMappingURL=ScriptObjectSettings-C5QBRERY.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/ScriptObjectSettings/ScriptObjectSettings.tsx", "../../../src/containers/ScriptObjectSettings/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Octokit } from '@octokit/core';\nimport React, { type ChangeEvent, useCallback, useState } from 'react';\n\nimport { ToolId } from '@dxos/ai';\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { SettingsOperation } from '@dxos/app-toolkit';\nimport { Blueprint, Template } from '@dxos/blueprints';\nimport { Filter, Obj, Ref } from '@dxos/echo';\nimport { Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';\nimport { getInvocationUrl } from '@dxos/functions-runtime';\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { useQuery } from '@dxos/react-client/echo';\nimport { Button, Clipboard, Input, useAsyncEffect, useControlledState, useTranslation } from '@dxos/react-ui';\nimport { AccessToken } from '@dxos/types';\nimport { kebabize } from '@dxos/util';\n\nimport { meta } from '../../meta';\n\nexport type ScriptObjectSettingsProps = {\n object: Script.Script;\n};\n\nexport const ScriptObjectSettings = ({ object }: ScriptObjectSettingsProps) => {\n return (\n <>\n <Binding object={object} />\n <BlueprintEditor object={object} />\n <Publishing object={object} />\n </>\n );\n};\n\nconst BlueprintEditor = ({ object }: ScriptObjectSettingsProps) => {\n const { t } = useTranslation(meta.id);\n const db = Obj.getDatabase(object);\n const [fn] = useQuery(db, Filter.type(Function.Function, { source: Ref.make(object) }));\n const blueprints = useQuery(db, Filter.type(Blueprint.Blueprint));\n\n const [creating, setCreating] = useState(false);\n const [instructions, setInstructions] = useState<string>(`You can run the script \"${object.name ?? 'script'}\".`);\n const blueprintKey = `dxos.org/blueprint/${kebabize(object.name ?? 'script')}`;\n const existingBlueprint = blueprints.find((bp) => bp.key === blueprintKey);\n\n useAsyncEffect(async () => {\n if (!existingBlueprint) {\n return;\n }\n const source = await existingBlueprint.instructions.source.load();\n setInstructions(source.content ?? '');\n }, [existingBlueprint]);\n\n const handleSave = useCallback(async () => {\n if (!db) {\n return;\n }\n\n setCreating(true);\n try {\n if (existingBlueprint) {\n const text = await existingBlueprint.instructions.source.load();\n Obj.change(text, (t) => {\n t.content = instructions;\n });\n if (fn?.key) {\n const toolId = ToolId.make(fn.key);\n if (!existingBlueprint.tools?.includes(toolId)) {\n Obj.change(existingBlueprint, (b) => {\n b.tools = [...(b.tools ?? []), toolId];\n });\n }\n }\n } else if (fn?.key) {\n db.add(\n Blueprint.make({\n key: blueprintKey,\n name: object.name ?? 'Script',\n instructions: Template.make({\n source: instructions,\n }),\n tools: [ToolId.make(fn.key)],\n }),\n );\n }\n await db.flush();\n } finally {\n setCreating(false);\n }\n }, [db, existingBlueprint, fn, blueprintKey, object.name, instructions]);\n\n return (\n <div className='flex flex-col gap-4 my-form-padding'>\n <div>\n <h2>{t('blueprint editor label', { default: 'Blueprint' })}</h2>\n <p className='text-description text-sm'>\n {t('blueprint editor description', {\n default: 'Create a blueprint that exposes this script as a tool.',\n })}\n </p>\n </div>\n <Input.Root>\n <div role='none' className='flex flex-col gap-1'>\n <Input.Label>{t('blueprint instructions label', { default: 'Instructions' })}</Input.Label>\n <Input.TextArea\n placeholder={t('blueprint instructions placeholder', {\n default: 'Describe how this tool should be used.',\n })}\n rows={6}\n value={instructions}\n onChange={(event) => setInstructions(event.target.value)}\n classNames='resize-y'\n />\n </div>\n </Input.Root>\n <div className='flex justify-end gap-2'>\n <Button disabled={(!existingBlueprint && !fn?.key) || creating} onClick={handleSave}>\n {t(creating ? 'creating label' : 'create blueprint label', {\n default: creating ? 'Creating…' : 'Create blueprint',\n })}\n </Button>\n </div>\n </div>\n );\n};\n\nconst Binding = ({ object }: ScriptObjectSettingsProps) => {\n const { t } = useTranslation(meta.id);\n const client = useClient();\n const db = Obj.getDatabase(object);\n const [fn] = useQuery(db, Filter.type(Function.Function, { source: Ref.make(object) }));\n\n const functionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));\n const functionUrl =\n functionId &&\n getInvocationUrl(functionId, client.config.values.runtime?.services?.edge?.url ?? '', {\n spaceId: db?.spaceId,\n });\n\n const [binding, setBinding] = useControlledState(fn?.binding ?? '');\n const handleBindingChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n setBinding(event.target.value);\n },\n [setBinding],\n );\n\n const handleBindingBlur = useCallback(() => {\n Obj.change(fn, (f) => {\n f.binding = binding;\n });\n }, [fn, binding]);\n\n if (!fn || !functionUrl) {\n return null;\n }\n\n // TODO(burdon): Use form.\n return (\n <div role='form' className='flex flex-col gap-2 my-form-padding'>\n <h2>{t('remote function settings heading')}</h2>\n <Input.Root>\n <div role='none' className='flex flex-col gap-1'>\n <Input.Label>{t('function url label')}</Input.Label>\n <div role='none' className='flex gap-1'>\n <Input.TextInput\n disabled\n value={functionUrl}\n onChange={(event) => {\n Obj.change(fn, (f) => {\n f.name = event.target.value;\n });\n }}\n />\n <Clipboard.IconButton value={functionUrl} />\n </div>\n </div>\n </Input.Root>\n <Input.Root>\n <div role='none' className='flex flex-col gap-1'>\n <Input.Label>{t('function binding label')}</Input.Label>\n <Input.TextInput\n placeholder={t('function binding placeholder')}\n value={binding}\n onChange={handleBindingChange}\n onBlur={handleBindingBlur}\n />\n </div>\n </Input.Root>\n </div>\n );\n};\n\n// TODO(burdon): Move to separate tab?\nconst Publishing = ({ object }: ScriptObjectSettingsProps) => {\n const { t } = useTranslation(meta.id);\n const { invokePromise } = useOperationInvoker();\n const db = Obj.getDatabase(object);\n const [githubToken] = useQuery(db, Filter.type(AccessToken.AccessToken, { source: 'github.com' }));\n const gistKey = Obj.getMeta(object).keys.find(({ source }) => source === 'github.com');\n const [gistUrl, setGistUrl] = useState<string | undefined>();\n\n useAsyncEffect(async () => {\n const token = githubToken?.token;\n const gistId = gistKey?.id;\n if (!token || !gistId) {\n setGistUrl(undefined);\n return;\n }\n\n try {\n const octokit = new Octokit({ auth: githubToken.token });\n const response = await octokit.request('GET /gists/{gist_id}', {\n gist_id: gistId,\n });\n setGistUrl(response.data.html_url);\n } catch (err) {\n log.catch(err);\n setGistUrl(undefined);\n }\n }, [githubToken, gistKey]);\n\n const handleOpenTokenManager = useCallback(\n () =>\n invokePromise(SettingsOperation.Open, {\n plugin: 'dxos.org/plugin/token-manager',\n }),\n [invokePromise],\n );\n\n const [publishing, setPublishing] = useState(false);\n const handlePublish = useCallback(async () => {\n setPublishing(true);\n const octokit = new Octokit({ auth: githubToken.token });\n const source = await object.source.load();\n const filename = object.name ? kebabize(object.name) : 'composer-script';\n const files = { [`${filename}.ts`]: { content: source.content } };\n\n try {\n // TODO(wittjosiah): Factor out to intent.\n const meta = Obj.getMeta(object);\n const githubKey = meta.keys.find(({ source }) => source === 'github.com');\n const gistId = githubKey?.id;\n if (gistId) {\n await octokit.request('PATCH /gists/{gist_id}', {\n gist_id: gistId,\n files,\n });\n } else {\n const response = await octokit.request('POST /gists', {\n public: true,\n files,\n });\n const gistId = response.data.id;\n if (gistId) {\n Obj.change(object, (obj) => {\n Obj.getMeta(obj).keys.push({ source: 'github.com', id: gistId });\n });\n }\n }\n } finally {\n setPublishing(false);\n }\n }, [object, githubToken]);\n\n return (\n <div className='flex flex-col gap-4 my-form-padding'>\n <div>\n <h2>{t('script publish settings label')}</h2>\n <p className='text-description text-sm'>{t('script publish settings description')}</p>\n </div>\n {!githubToken && (\n <div className='flex flex-col gap-2'>\n <span>{t('no github token label')}</span>\n <Button onClick={handleOpenTokenManager}>{t('open token manager label')}</Button>\n </div>\n )}\n {githubToken && (\n <div className='flex justify-end gap-2'>\n {gistUrl && <Clipboard.IconButton value={gistUrl} />}\n <Button disabled={publishing} onClick={handlePublish}>\n {t(publishing ? 'publishing label' : 'publish label')}\n </Button>\n </div>\n )}\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { ScriptObjectSettings } from './ScriptObjectSettings';\n\nexport default ScriptObjectSettings;\n"],
5
+ "mappings": "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",
6
+ "names": ["Octokit", "React", "useCallback", "useState", "ToolId", "useOperationInvoker", "SettingsOperation", "Blueprint", "Template", "Filter", "Obj", "Ref", "Function", "getUserFunctionIdInMetadata", "getInvocationUrl", "log", "useClient", "useQuery", "Button", "Clipboard", "Input", "useAsyncEffect", "useControlledState", "useTranslation", "AccessToken", "kebabize", "ScriptObjectSettings", "object", "Binding", "BlueprintEditor", "Publishing", "t", "useTranslation", "meta", "id", "db", "Obj", "getDatabase", "fn", "useQuery", "Filter", "type", "Function", "source", "Ref", "make", "blueprints", "Blueprint", "creating", "setCreating", "useState", "instructions", "setInstructions", "name", "blueprintKey", "kebabize", "existingBlueprint", "find", "bp", "key", "useAsyncEffect", "load", "content", "handleSave", "useCallback", "text", "change", "toolId", "ToolId", "tools", "includes", "b", "add", "Template", "flush", "div", "className", "h2", "default", "p", "Input", "Root", "role", "Label", "TextArea", "placeholder", "rows", "value", "onChange", "event", "target", "classNames", "Button", "disabled", "onClick", "client", "useClient", "functionId", "getUserFunctionIdInMetadata", "getMeta", "functionUrl", "getInvocationUrl", "config", "values", "runtime", "services", "edge", "url", "spaceId", "binding", "setBinding", "useControlledState", "handleBindingChange", "handleBindingBlur", "f", "TextInput", "Clipboard", "IconButton", "onBlur", "invokePromise", "useOperationInvoker", "githubToken", "AccessToken", "gistKey", "keys", "gistUrl", "setGistUrl", "token", "gistId", "undefined", "octokit", "Octokit", "auth", "response", "request", "gist_id", "data", "html_url", "err", "log", "catch", "handleOpenTokenManager", "SettingsOperation", "Open", "plugin", "publishing", "setPublishing", "handlePublish", "filename", "files", "githubKey", "public", "obj", "push", "span", "ScriptObjectSettings"]
7
+ }
@@ -0,0 +1,56 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ getAccessCredential
4
+ } from "./chunk-5BG7OJGQ.mjs";
5
+ import {
6
+ meta
7
+ } from "./chunk-5HSJPAK7.mjs";
8
+ import "./chunk-HSLMI22Q.mjs";
9
+
10
+ // src/containers/ScriptPluginSettings/ScriptPluginSettings.tsx
11
+ import React from "react";
12
+ import { useClient } from "@dxos/react-client";
13
+ import { Button, Select, useTranslation } from "@dxos/react-ui";
14
+ import { Settings } from "@dxos/react-ui-form";
15
+ import { EditorInputModes } from "@dxos/ui-editor";
16
+ var ScriptPluginSettings = ({ settings, onSettingsChange }) => {
17
+ const { t } = useTranslation(meta.id);
18
+ const client = useClient();
19
+ const handleAuthenticate = async () => {
20
+ const { identityKey } = client.halo.identity.get();
21
+ await client.halo.writeCredentials([
22
+ getAccessCredential(identityKey)
23
+ ]);
24
+ };
25
+ return /* @__PURE__ */ React.createElement(Settings.Root, null, /* @__PURE__ */ React.createElement(Settings.Section, {
26
+ title: t("settings title", {
27
+ ns: meta.id
28
+ })
29
+ }, /* @__PURE__ */ React.createElement(Settings.Group, null, /* @__PURE__ */ React.createElement(Settings.ItemInput, {
30
+ title: t("authenticate action label")
31
+ }, /* @__PURE__ */ React.createElement(Button, {
32
+ onClick: handleAuthenticate
33
+ }, t("authenticate button label"))), /* @__PURE__ */ React.createElement(Settings.ItemInput, {
34
+ title: t("editor input mode label")
35
+ }, /* @__PURE__ */ React.createElement(Select.Root, {
36
+ value: settings.editorInputMode ?? "default",
37
+ onValueChange: (value) => {
38
+ onSettingsChange((s) => ({
39
+ ...s,
40
+ editorInputMode: value
41
+ }));
42
+ }
43
+ }, /* @__PURE__ */ React.createElement(Select.TriggerButton, {
44
+ placeholder: t("select editor input mode placeholder")
45
+ }), /* @__PURE__ */ React.createElement(Select.Portal, null, /* @__PURE__ */ React.createElement(Select.Content, null, /* @__PURE__ */ React.createElement(Select.Viewport, null, EditorInputModes.map((mode) => /* @__PURE__ */ React.createElement(Select.Option, {
46
+ key: mode,
47
+ value: mode
48
+ }, t(`settings editor input mode ${mode} label`)))), /* @__PURE__ */ React.createElement(Select.Arrow, null))))))));
49
+ };
50
+
51
+ // src/containers/ScriptPluginSettings/index.ts
52
+ var ScriptPluginSettings_default = ScriptPluginSettings;
53
+ export {
54
+ ScriptPluginSettings_default as default
55
+ };
56
+ //# sourceMappingURL=ScriptPluginSettings-MFACDW4R.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/ScriptPluginSettings/ScriptPluginSettings.tsx", "../../../src/containers/ScriptPluginSettings/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useClient } from '@dxos/react-client';\nimport { Button, Select, useTranslation } from '@dxos/react-ui';\nimport { Settings } from '@dxos/react-ui-form';\nimport { type EditorInputMode, EditorInputModes } from '@dxos/ui-editor';\n\nimport { meta } from '../../meta';\nimport { type ScriptSettings } from '../../types';\nimport { getAccessCredential } from '../../util';\n\nexport type ScriptPluginSettingsComponentProps = {\n settings: ScriptSettings;\n onSettingsChange: (fn: (current: ScriptSettings) => ScriptSettings) => void;\n};\n\nexport const ScriptPluginSettings = ({ settings, onSettingsChange }: ScriptPluginSettingsComponentProps) => {\n const { t } = useTranslation(meta.id);\n const client = useClient();\n\n // TODO(burdon): Check token.\n const handleAuthenticate = async () => {\n const { identityKey } = client.halo.identity.get()!;\n await client.halo.writeCredentials([getAccessCredential(identityKey)]);\n };\n\n return (\n <Settings.Root>\n <Settings.Section title={t('settings title', { ns: meta.id })}>\n <Settings.Group>\n {/* TODO(wittjosiah): Hide outside of dev environments. */}\n <Settings.ItemInput title={t('authenticate action label')}>\n <Button onClick={handleAuthenticate}>{t('authenticate button label')}</Button>\n </Settings.ItemInput>\n\n <Settings.ItemInput title={t('editor input mode label')}>\n <Select.Root\n value={settings.editorInputMode ?? 'default'}\n onValueChange={(value) => {\n onSettingsChange((s) => ({ ...s, editorInputMode: value as EditorInputMode }));\n }}\n >\n <Select.TriggerButton placeholder={t('select editor input mode placeholder')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {EditorInputModes.map((mode) => (\n <Select.Option key={mode} value={mode}>\n {t(`settings editor input mode ${mode} label`)}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </Settings.ItemInput>\n </Settings.Group>\n </Settings.Section>\n </Settings.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ScriptPluginSettings } from './ScriptPluginSettings';\n\nexport default ScriptPluginSettings;\n"],
5
+ "mappings": ";;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,iBAAiB;AAC1B,SAASC,QAAQC,QAAQC,sBAAsB;AAC/C,SAASC,gBAAgB;AACzB,SAA+BC,wBAAwB;AAWhD,IAAMC,uBAAuB,CAAC,EAAEC,UAAUC,iBAAgB,MAAsC;AACrG,QAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,QAAMC,SAASC,UAAAA;AAGf,QAAMC,qBAAqB,YAAA;AACzB,UAAM,EAAEC,YAAW,IAAKH,OAAOI,KAAKC,SAASC,IAAG;AAChD,UAAMN,OAAOI,KAAKG,iBAAiB;MAACC,oBAAoBL,WAAAA;KAAa;EACvE;AAEA,SACE,sBAAA,cAACM,SAASC,MAAI,MACZ,sBAAA,cAACD,SAASE,SAAO;IAACC,OAAOhB,EAAE,kBAAkB;MAAEiB,IAAIf,KAAKC;IAAG,CAAA;KACzD,sBAAA,cAACU,SAASK,OAAK,MAEb,sBAAA,cAACL,SAASM,WAAS;IAACH,OAAOhB,EAAE,2BAAA;KAC3B,sBAAA,cAACoB,QAAAA;IAAOC,SAASf;KAAqBN,EAAE,2BAAA,CAAA,CAAA,GAG1C,sBAAA,cAACa,SAASM,WAAS;IAACH,OAAOhB,EAAE,yBAAA;KAC3B,sBAAA,cAACsB,OAAOR,MAAI;IACVS,OAAOzB,SAAS0B,mBAAmB;IACnCC,eAAe,CAACF,UAAAA;AACdxB,uBAAiB,CAAC2B,OAAO;QAAE,GAAGA;QAAGF,iBAAiBD;MAAyB,EAAA;IAC7E;KAEA,sBAAA,cAACD,OAAOK,eAAa;IAACC,aAAa5B,EAAE,sCAAA;MACrC,sBAAA,cAACsB,OAAOO,QAAM,MACZ,sBAAA,cAACP,OAAOQ,SAAO,MACb,sBAAA,cAACR,OAAOS,UAAQ,MACbC,iBAAiBC,IAAI,CAACC,SACrB,sBAAA,cAACZ,OAAOa,QAAM;IAACC,KAAKF;IAAMX,OAAOW;KAC9BlC,EAAE,8BAA8BkC,IAAAA,QAAY,CAAA,CAAA,CAAA,GAInD,sBAAA,cAACZ,OAAOe,OAAK,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAS/B;;;AC3DA,IAAA,+BAAeC;",
6
+ "names": ["React", "useClient", "Button", "Select", "useTranslation", "Settings", "EditorInputModes", "ScriptPluginSettings", "settings", "onSettingsChange", "t", "useTranslation", "meta", "id", "client", "useClient", "handleAuthenticate", "identityKey", "halo", "identity", "get", "writeCredentials", "getAccessCredential", "Settings", "Root", "Section", "title", "ns", "Group", "ItemInput", "Button", "onClick", "Select", "value", "editorInputMode", "onValueChange", "s", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "EditorInputModes", "map", "mode", "Option", "key", "Arrow", "ScriptPluginSettings"]
7
+ }
@@ -0,0 +1,29 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ meta
4
+ } from "./chunk-5HSJPAK7.mjs";
5
+ import "./chunk-HSLMI22Q.mjs";
6
+
7
+ // src/containers/ScriptProperties/ScriptProperties.tsx
8
+ import React from "react";
9
+ import { Obj } from "@dxos/echo";
10
+ import { Input, useTranslation } from "@dxos/react-ui";
11
+ var ScriptProperties = ({ object }) => {
12
+ const { t } = useTranslation(meta.id);
13
+ return /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement(Input.Label, null, t("description label")), /* @__PURE__ */ React.createElement(Input.TextInput, {
14
+ placeholder: t("description placeholder"),
15
+ value: object.description ?? "",
16
+ onChange: (event) => {
17
+ Obj.change(object, (o) => {
18
+ o.description = event.target.value;
19
+ });
20
+ }
21
+ }));
22
+ };
23
+
24
+ // src/containers/ScriptProperties/index.ts
25
+ var ScriptProperties_default = ScriptProperties;
26
+ export {
27
+ ScriptProperties_default as default
28
+ };
29
+ //# sourceMappingURL=ScriptProperties-FMNIX3KU.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/ScriptProperties/ScriptProperties.tsx", "../../../src/containers/ScriptProperties/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Obj } from '@dxos/echo';\nimport { type Script } from '@dxos/functions';\nimport { Input, useTranslation } from '@dxos/react-ui';\n\nimport { meta } from '../../meta';\n\nexport type ScriptPropertiesProps = {\n object: Script.Script;\n};\n\nexport const ScriptProperties = ({ object }: ScriptPropertiesProps) => {\n const { t } = useTranslation(meta.id);\n return (\n <Input.Root>\n <Input.Label>{t('description label')}</Input.Label>\n <Input.TextInput\n placeholder={t('description placeholder')}\n value={object.description ?? ''}\n onChange={(event) => {\n Obj.change(object, (o) => {\n o.description = event.target.value;\n });\n }}\n />\n </Input.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { ScriptProperties } from './ScriptProperties';\n\nexport default ScriptProperties;\n"],
5
+ "mappings": ";;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,WAAW;AAEpB,SAASC,OAAOC,sBAAsB;AAQ/B,IAAMC,mBAAmB,CAAC,EAAEC,OAAM,MAAyB;AAChE,QAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,SACE,sBAAA,cAACC,MAAMC,MAAI,MACT,sBAAA,cAACD,MAAME,OAAK,MAAEN,EAAE,mBAAA,CAAA,GAChB,sBAAA,cAACI,MAAMG,WAAS;IACdC,aAAaR,EAAE,yBAAA;IACfS,OAAOV,OAAOW,eAAe;IAC7BC,UAAU,CAACC,UAAAA;AACTC,UAAIC,OAAOf,QAAQ,CAACgB,MAAAA;AAClBA,UAAEL,cAAcE,MAAMI,OAAOP;MAC/B,CAAA;IACF;;AAIR;;;AC1BA,IAAA,2BAAeQ;",
6
+ "names": ["React", "Obj", "Input", "useTranslation", "ScriptProperties", "object", "t", "useTranslation", "meta", "id", "Input", "Root", "Label", "TextInput", "placeholder", "value", "description", "onChange", "event", "Obj", "change", "o", "target", "ScriptProperties"]
7
+ }
@@ -0,0 +1,40 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ TestPanel
4
+ } from "./chunk-H46R2RS5.mjs";
5
+ import "./chunk-JGN7TDJH.mjs";
6
+ import {
7
+ useDeployState,
8
+ useToolbarState
9
+ } from "./chunk-ZDJ2FI7E.mjs";
10
+ import "./chunk-5BG7OJGQ.mjs";
11
+ import "./chunk-WWD5LUU6.mjs";
12
+ import "./chunk-QG6ANK4B.mjs";
13
+ import "./chunk-5HSJPAK7.mjs";
14
+ import "./chunk-HSLMI22Q.mjs";
15
+
16
+ // src/containers/TestContainer/TestContainer.tsx
17
+ import React from "react";
18
+ import { Panel } from "@dxos/react-ui";
19
+ var TestContainer = ({ role, script }) => {
20
+ const state = useToolbarState();
21
+ useDeployState({
22
+ state,
23
+ script
24
+ });
25
+ return /* @__PURE__ */ React.createElement(Panel.Root, {
26
+ role,
27
+ className: "dx-article"
28
+ }, /* @__PURE__ */ React.createElement(Panel.Content, {
29
+ asChild: true
30
+ }, /* @__PURE__ */ React.createElement(TestPanel, {
31
+ functionUrl: state.value.functionUrl
32
+ })));
33
+ };
34
+
35
+ // src/containers/TestContainer/index.ts
36
+ var TestContainer_default = TestContainer;
37
+ export {
38
+ TestContainer_default as default
39
+ };
40
+ //# sourceMappingURL=TestContainer-AO45YPGV.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/TestContainer/TestContainer.tsx", "../../../src/containers/TestContainer/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Script } from '@dxos/functions';\nimport { Panel } from '@dxos/react-ui';\n\nimport { TestPanel } from '../../components';\nimport { useDeployState, useToolbarState } from '../../hooks';\n\nexport type TestContainerProps = {\n role: string;\n script: Script.Script;\n};\n\nexport const TestContainer = ({ role, script }: TestContainerProps) => {\n const state = useToolbarState();\n useDeployState({ state, script });\n return (\n <Panel.Root role={role} className='dx-article'>\n <Panel.Content asChild>\n <TestPanel functionUrl={state.value.functionUrl} />\n </Panel.Content>\n </Panel.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { TestContainer } from './TestContainer';\n\nexport default TestContainer;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;AAIA,OAAOA,WAAW;AAGlB,SAASC,aAAa;AAUf,IAAMC,gBAAgB,CAAC,EAAEC,MAAMC,OAAM,MAAsB;AAChE,QAAMC,QAAQC,gBAAAA;AACdC,iBAAe;IAAEF;IAAOD;EAAO,CAAA;AAC/B,SACE,sBAAA,cAACI,MAAMC,MAAI;IAACN;IAAYO,WAAU;KAChC,sBAAA,cAACF,MAAMG,SAAO;IAACC,SAAAA;KACb,sBAAA,cAACC,WAAAA;IAAUC,aAAaT,MAAMU,MAAMD;;AAI5C;;;ACrBA,IAAA,wBAAeE;",
6
+ "names": ["React", "Panel", "TestContainer", "role", "script", "state", "useToolbarState", "useDeployState", "Panel", "Root", "className", "Content", "asChild", "TestPanel", "functionUrl", "value", "TestContainer"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
- script_blueprint_exports
4
- } from "./chunk-Y3G5NCTP.mjs";
3
+ script_blueprint_default
4
+ } from "./chunk-S7DSCLOW.mjs";
5
5
  import "./chunk-HSLMI22Q.mjs";
6
6
 
7
7
  // src/capabilities/blueprint-definition/blueprint-definition.ts
@@ -9,11 +9,10 @@ import * as Effect from "effect/Effect";
9
9
  import { Capability } from "@dxos/app-framework";
10
10
  import { AppCapabilities } from "@dxos/app-toolkit";
11
11
  var blueprintDefinition = Capability.makeModule(() => Effect.succeed([
12
- Capability.contributes(AppCapabilities.Functions, script_blueprint_exports.functions),
13
- Capability.contributes(AppCapabilities.BlueprintDefinition, script_blueprint_exports.make())
12
+ Capability.contributes(AppCapabilities.BlueprintDefinition, script_blueprint_default)
14
13
  ]));
15
14
  var blueprint_definition_default = blueprintDefinition;
16
15
  export {
17
16
  blueprint_definition_default as default
18
17
  };
19
- //# sourceMappingURL=blueprint-definition-EYL5GNDC.mjs.map
18
+ //# sourceMappingURL=blueprint-definition-5MGY6BRQ.mjs.map