@dxos/plugin-script 0.7.5-main.e9bb01b → 0.7.5-staging.2ff1350

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 (215) hide show
  1. package/dist/lib/browser/{AutomationPanel-KZVZMZE6.mjs → AutomationPanel-6HFRNRWV.mjs} +3 -3
  2. package/dist/lib/browser/{ScriptContainer-AERJBGYK.mjs → ScriptContainer-GR7X5NSI.mjs} +97 -69
  3. package/dist/lib/browser/ScriptContainer-GR7X5NSI.mjs.map +7 -0
  4. package/dist/lib/browser/artifact-definition-NAWYXFF5.mjs +243 -0
  5. package/dist/lib/browser/artifact-definition-NAWYXFF5.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-Y4CVWFVS.mjs → chunk-5SXOHNAK.mjs} +4 -4
  7. package/dist/lib/browser/chunk-5SXOHNAK.mjs.map +7 -0
  8. package/dist/lib/browser/{chunk-ABNZIPST.mjs → chunk-6MOQ4BP3.mjs} +2 -2
  9. package/dist/lib/browser/{chunk-J7CBIZI2.mjs → chunk-7RUMC44X.mjs} +19 -7
  10. package/dist/lib/browser/{chunk-J7CBIZI2.mjs.map → chunk-7RUMC44X.mjs.map} +3 -3
  11. package/dist/lib/browser/{chunk-ESPJMGXJ.mjs → chunk-FVVCAWNP.mjs} +2 -2
  12. package/dist/lib/browser/chunk-FVVCAWNP.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-NFPF4OIU.mjs → chunk-N46LE7FS.mjs} +2 -2
  14. package/dist/lib/browser/chunk-YJAKD6E3.mjs +69 -0
  15. package/dist/lib/browser/chunk-YJAKD6E3.mjs.map +7 -0
  16. package/dist/lib/browser/{compiler-4QD7VFZX.mjs → compiler-YY2XSKHQ.mjs} +4 -6
  17. package/dist/lib/browser/compiler-YY2XSKHQ.mjs.map +7 -0
  18. package/dist/lib/browser/index.mjs +47 -30
  19. package/dist/lib/browser/index.mjs.map +4 -4
  20. package/dist/lib/browser/{intent-resolver-YABC4JRJ.mjs → intent-resolver-I6VDXUDH.mjs} +4 -4
  21. package/dist/lib/browser/meta.json +1 -1
  22. package/dist/lib/browser/{react-surface-FRQIIYKG.mjs → react-surface-FGWXHB7P.mjs} +5 -5
  23. package/dist/lib/browser/{react-surface-FRQIIYKG.mjs.map → react-surface-FGWXHB7P.mjs.map} +2 -2
  24. package/dist/lib/browser/{settings-S4MGGM4D.mjs → settings-SZCDKHWO.mjs} +3 -3
  25. package/dist/lib/browser/types.mjs +2 -2
  26. package/dist/lib/node/{AutomationPanel-6QSV7ZYK.cjs → AutomationPanel-RBQ4DODN.cjs} +8 -8
  27. package/dist/lib/node/{ScriptContainer-DOAQ6KOE.cjs → ScriptContainer-SLARXOSU.cjs} +100 -70
  28. package/dist/lib/node/ScriptContainer-SLARXOSU.cjs.map +7 -0
  29. package/dist/lib/node/artifact-definition-7AANUS3X.cjs +262 -0
  30. package/dist/lib/node/artifact-definition-7AANUS3X.cjs.map +7 -0
  31. package/dist/lib/node/{chunk-HU2JXUXI.cjs → chunk-5UH3F7TA.cjs} +5 -5
  32. package/dist/lib/node/chunk-5UH3F7TA.cjs.map +7 -0
  33. package/dist/lib/node/chunk-7XULMIYT.cjs +77 -0
  34. package/dist/lib/node/chunk-7XULMIYT.cjs.map +7 -0
  35. package/dist/lib/node/{chunk-RZHY5LAR.cjs → chunk-ALY3N6PW.cjs} +6 -6
  36. package/dist/lib/node/{chunk-6M2VRFBC.cjs → chunk-DJGLGRQV.cjs} +6 -6
  37. package/dist/lib/node/{chunk-63C2KSD6.cjs → chunk-JITODKGN.cjs} +23 -11
  38. package/dist/lib/node/{chunk-63C2KSD6.cjs.map → chunk-JITODKGN.cjs.map} +3 -3
  39. package/dist/lib/node/{chunk-CZVVFUVL.cjs → chunk-K3ZZWVXS.cjs} +7 -7
  40. package/dist/lib/node/chunk-K3ZZWVXS.cjs.map +7 -0
  41. package/dist/lib/node/{compiler-Q3EXWKV5.cjs → compiler-UIBLKJKG.cjs} +9 -9
  42. package/dist/lib/node/compiler-UIBLKJKG.cjs.map +7 -0
  43. package/dist/lib/node/index.cjs +62 -46
  44. package/dist/lib/node/index.cjs.map +4 -4
  45. package/dist/lib/node/{intent-resolver-7HI2CDGB.cjs → intent-resolver-MYATX7IR.cjs} +9 -9
  46. package/dist/lib/node/meta.json +1 -1
  47. package/dist/lib/node/{react-surface-IKONODLG.cjs → react-surface-2GH5HQX4.cjs} +18 -18
  48. package/dist/lib/node/{react-surface-IKONODLG.cjs.map → react-surface-2GH5HQX4.cjs.map} +2 -2
  49. package/dist/lib/node/{settings-Q5XIA4LZ.cjs → settings-SZFSMSKM.cjs} +9 -9
  50. package/dist/lib/node/types.cjs +4 -4
  51. package/dist/lib/node/types.cjs.map +1 -1
  52. package/dist/lib/node-esm/{AutomationPanel-EZQSGJLS.mjs → AutomationPanel-WTVVVMRH.mjs} +3 -3
  53. package/dist/lib/node-esm/{ScriptContainer-HE5QPPFZ.mjs → ScriptContainer-MHRJXMC4.mjs} +97 -69
  54. package/dist/lib/node-esm/ScriptContainer-MHRJXMC4.mjs.map +7 -0
  55. package/dist/lib/node-esm/artifact-definition-KBASPVMM.mjs +245 -0
  56. package/dist/lib/node-esm/artifact-definition-KBASPVMM.mjs.map +7 -0
  57. package/dist/lib/node-esm/{chunk-77LRZF2W.mjs → chunk-2AFXX34U.mjs} +4 -4
  58. package/dist/lib/node-esm/chunk-2AFXX34U.mjs.map +7 -0
  59. package/dist/lib/node-esm/chunk-6CHX4CEL.mjs +71 -0
  60. package/dist/lib/node-esm/chunk-6CHX4CEL.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-3YOO5E2D.mjs → chunk-CP5LXTK5.mjs} +2 -2
  62. package/dist/lib/node-esm/{chunk-UWHMEJYW.mjs → chunk-IAELQPSI.mjs} +19 -7
  63. package/dist/lib/node-esm/{chunk-UWHMEJYW.mjs.map → chunk-IAELQPSI.mjs.map} +3 -3
  64. package/dist/lib/node-esm/{chunk-EOBGHKNT.mjs → chunk-P2V2Y5LV.mjs} +2 -2
  65. package/dist/lib/node-esm/chunk-P2V2Y5LV.mjs.map +7 -0
  66. package/dist/lib/node-esm/{chunk-5D2AXTAW.mjs → chunk-UNQFIERE.mjs} +2 -2
  67. package/dist/lib/node-esm/{compiler-KJEIPDZ6.mjs → compiler-XTXFGZJM.mjs} +4 -6
  68. package/dist/lib/node-esm/compiler-XTXFGZJM.mjs.map +7 -0
  69. package/dist/lib/node-esm/index.mjs +47 -30
  70. package/dist/lib/node-esm/index.mjs.map +4 -4
  71. package/dist/lib/node-esm/{intent-resolver-KG7I6JJA.mjs → intent-resolver-PBDTYC4P.mjs} +4 -4
  72. package/dist/lib/node-esm/meta.json +1 -1
  73. package/dist/lib/node-esm/{react-surface-YA7WIRAM.mjs → react-surface-MLE3J3TF.mjs} +5 -5
  74. package/dist/lib/node-esm/{react-surface-YA7WIRAM.mjs.map → react-surface-MLE3J3TF.mjs.map} +2 -2
  75. package/dist/lib/node-esm/{settings-NZXHNIQ3.mjs → settings-GR4O2WHZ.mjs} +3 -3
  76. package/dist/lib/node-esm/types.mjs +2 -2
  77. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  78. package/dist/types/src/capabilities/artifact-definition.d.ts +11 -0
  79. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -0
  80. package/dist/types/src/capabilities/index.d.ts +1 -0
  81. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  82. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  83. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts +1 -2
  84. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts.map +1 -1
  85. package/dist/types/src/components/DebugPanel/DebugPanel.d.ts +1 -2
  86. package/dist/types/src/components/DebugPanel/DebugPanel.d.ts.map +1 -1
  87. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts +3 -4
  88. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
  89. package/dist/types/src/components/ScriptContainer.d.ts +2 -3
  90. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  91. package/dist/types/src/components/ScriptSettings/ScriptSettings.d.ts +1 -2
  92. package/dist/types/src/components/ScriptSettings/ScriptSettings.d.ts.map +1 -1
  93. package/dist/types/src/components/ScriptSettingsPanel.d.ts +1 -2
  94. package/dist/types/src/components/ScriptSettingsPanel.d.ts.map +1 -1
  95. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +2 -3
  96. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  97. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +1 -2
  98. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  99. package/dist/types/src/components/index.d.ts +2 -2
  100. package/dist/types/src/components/index.d.ts.map +1 -1
  101. package/dist/types/src/events.d.ts +4 -0
  102. package/dist/types/src/events.d.ts.map +1 -0
  103. package/dist/types/src/hooks/deploy.d.ts.map +1 -0
  104. package/dist/types/src/hooks/format.d.ts.map +1 -0
  105. package/dist/types/src/hooks/index.d.ts +7 -0
  106. package/dist/types/src/hooks/index.d.ts.map +1 -0
  107. package/dist/types/src/{components/ScriptToolbar/templateSelect.d.ts → hooks/template.d.ts} +1 -1
  108. package/dist/types/src/hooks/template.d.ts.map +1 -0
  109. package/dist/types/src/{components/ScriptToolbar → hooks}/useToolbarAction.d.ts +1 -1
  110. package/dist/types/src/hooks/useToolbarAction.d.ts.map +1 -0
  111. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -0
  112. package/dist/types/src/hooks/view.d.ts.map +1 -0
  113. package/dist/types/src/index.d.ts +0 -1
  114. package/dist/types/src/index.d.ts.map +1 -1
  115. package/dist/types/src/meta.d.ts.map +1 -1
  116. package/dist/types/src/templates/chess.d.ts +1 -4
  117. package/dist/types/src/templates/chess.d.ts.map +1 -1
  118. package/dist/types/src/templates/discord.d.ts +3 -0
  119. package/dist/types/src/templates/discord.d.ts.map +1 -0
  120. package/dist/types/src/templates/echo.d.ts.map +1 -1
  121. package/dist/types/src/templates/forex-effect.d.ts +3 -0
  122. package/dist/types/src/templates/forex-effect.d.ts.map +1 -0
  123. package/dist/types/src/templates/forex.d.ts +1 -4
  124. package/dist/types/src/templates/forex.d.ts.map +1 -1
  125. package/dist/types/src/templates/index.d.ts.map +1 -1
  126. package/dist/types/src/translations.d.ts +6 -0
  127. package/dist/types/src/translations.d.ts.map +1 -1
  128. package/package.json +42 -42
  129. package/src/ScriptPlugin.tsx +28 -12
  130. package/src/capabilities/artifact-definition.ts +219 -0
  131. package/src/capabilities/compiler.ts +1 -1
  132. package/src/capabilities/index.ts +1 -0
  133. package/src/capabilities/react-surface.tsx +2 -1
  134. package/src/compiler/compiler.browser.test.ts +1 -1
  135. package/src/components/DebugPanel/DebugPanel.tsx +2 -2
  136. package/src/components/FrameContainer/FrameContainer.tsx +5 -4
  137. package/src/components/ScriptContainer.tsx +10 -5
  138. package/src/components/ScriptSettingsPanel.tsx +16 -2
  139. package/src/components/ScriptToolbar/ScriptToolbar.tsx +8 -6
  140. package/src/components/TypescriptEditor/TypescriptEditor.tsx +2 -2
  141. package/src/events.ts +11 -0
  142. package/src/{components/ScriptToolbar → hooks}/deploy.ts +16 -4
  143. package/src/{components/ScriptToolbar → hooks}/format.ts +1 -1
  144. package/src/hooks/index.ts +11 -0
  145. package/src/{components/ScriptToolbar/templateSelect.ts → hooks/template.ts} +2 -2
  146. package/src/{components/ScriptToolbar → hooks}/useToolbarAction.ts +1 -1
  147. package/src/{components/ScriptToolbar → hooks}/view.ts +1 -1
  148. package/src/index.ts +0 -1
  149. package/src/meta.ts +2 -1
  150. package/src/templates/chess.ts +42 -35
  151. package/src/templates/discord.ts +103 -0
  152. package/src/templates/echo.ts +5 -1
  153. package/src/templates/forex-effect.ts +41 -0
  154. package/src/templates/forex.ts +23 -16
  155. package/src/templates/index.ts +15 -0
  156. package/src/translations.ts +2 -0
  157. package/dist/lib/browser/ScriptContainer-AERJBGYK.mjs.map +0 -7
  158. package/dist/lib/browser/chunk-ESPJMGXJ.mjs.map +0 -7
  159. package/dist/lib/browser/chunk-REL2R7SB.mjs +0 -52
  160. package/dist/lib/browser/chunk-REL2R7SB.mjs.map +0 -7
  161. package/dist/lib/browser/chunk-SDHKTS6H.mjs +0 -237
  162. package/dist/lib/browser/chunk-SDHKTS6H.mjs.map +0 -7
  163. package/dist/lib/browser/chunk-Y4CVWFVS.mjs.map +0 -7
  164. package/dist/lib/browser/compiler-4QD7VFZX.mjs.map +0 -7
  165. package/dist/lib/node/ScriptContainer-DOAQ6KOE.cjs.map +0 -7
  166. package/dist/lib/node/chunk-CZVVFUVL.cjs.map +0 -7
  167. package/dist/lib/node/chunk-HU2JXUXI.cjs.map +0 -7
  168. package/dist/lib/node/chunk-T4TXCRN5.cjs +0 -260
  169. package/dist/lib/node/chunk-T4TXCRN5.cjs.map +0 -7
  170. package/dist/lib/node/chunk-TJ4BTPOS.cjs +0 -64
  171. package/dist/lib/node/chunk-TJ4BTPOS.cjs.map +0 -7
  172. package/dist/lib/node/compiler-Q3EXWKV5.cjs.map +0 -7
  173. package/dist/lib/node-esm/ScriptContainer-HE5QPPFZ.mjs.map +0 -7
  174. package/dist/lib/node-esm/chunk-77LRZF2W.mjs.map +0 -7
  175. package/dist/lib/node-esm/chunk-EOBGHKNT.mjs.map +0 -7
  176. package/dist/lib/node-esm/chunk-G76M6O46.mjs +0 -239
  177. package/dist/lib/node-esm/chunk-G76M6O46.mjs.map +0 -7
  178. package/dist/lib/node-esm/chunk-JJZYWSD7.mjs +0 -54
  179. package/dist/lib/node-esm/chunk-JJZYWSD7.mjs.map +0 -7
  180. package/dist/lib/node-esm/compiler-KJEIPDZ6.mjs.map +0 -7
  181. package/dist/types/src/bundler/bundler.d.ts +0 -39
  182. package/dist/types/src/bundler/bundler.d.ts.map +0 -1
  183. package/dist/types/src/bundler/bundler.test.d.ts +0 -2
  184. package/dist/types/src/bundler/bundler.test.d.ts.map +0 -1
  185. package/dist/types/src/bundler/index.d.ts +0 -2
  186. package/dist/types/src/bundler/index.d.ts.map +0 -1
  187. package/dist/types/src/components/ScriptToolbar/deploy.d.ts.map +0 -1
  188. package/dist/types/src/components/ScriptToolbar/format.d.ts.map +0 -1
  189. package/dist/types/src/components/ScriptToolbar/templateSelect.d.ts.map +0 -1
  190. package/dist/types/src/components/ScriptToolbar/useToolbarAction.d.ts.map +0 -1
  191. package/dist/types/src/components/ScriptToolbar/useToolbarState.d.ts.map +0 -1
  192. package/dist/types/src/components/ScriptToolbar/view.d.ts.map +0 -1
  193. package/src/bundler/bundler.test.ts +0 -55
  194. package/src/bundler/bundler.ts +0 -250
  195. package/src/bundler/index.ts +0 -5
  196. /package/dist/lib/browser/{AutomationPanel-KZVZMZE6.mjs.map → AutomationPanel-6HFRNRWV.mjs.map} +0 -0
  197. /package/dist/lib/browser/{chunk-ABNZIPST.mjs.map → chunk-6MOQ4BP3.mjs.map} +0 -0
  198. /package/dist/lib/browser/{chunk-NFPF4OIU.mjs.map → chunk-N46LE7FS.mjs.map} +0 -0
  199. /package/dist/lib/browser/{intent-resolver-YABC4JRJ.mjs.map → intent-resolver-I6VDXUDH.mjs.map} +0 -0
  200. /package/dist/lib/browser/{settings-S4MGGM4D.mjs.map → settings-SZCDKHWO.mjs.map} +0 -0
  201. /package/dist/lib/node/{AutomationPanel-6QSV7ZYK.cjs.map → AutomationPanel-RBQ4DODN.cjs.map} +0 -0
  202. /package/dist/lib/node/{chunk-RZHY5LAR.cjs.map → chunk-ALY3N6PW.cjs.map} +0 -0
  203. /package/dist/lib/node/{chunk-6M2VRFBC.cjs.map → chunk-DJGLGRQV.cjs.map} +0 -0
  204. /package/dist/lib/node/{intent-resolver-7HI2CDGB.cjs.map → intent-resolver-MYATX7IR.cjs.map} +0 -0
  205. /package/dist/lib/node/{settings-Q5XIA4LZ.cjs.map → settings-SZFSMSKM.cjs.map} +0 -0
  206. /package/dist/lib/node-esm/{AutomationPanel-EZQSGJLS.mjs.map → AutomationPanel-WTVVVMRH.mjs.map} +0 -0
  207. /package/dist/lib/node-esm/{chunk-3YOO5E2D.mjs.map → chunk-CP5LXTK5.mjs.map} +0 -0
  208. /package/dist/lib/node-esm/{chunk-5D2AXTAW.mjs.map → chunk-UNQFIERE.mjs.map} +0 -0
  209. /package/dist/lib/node-esm/{intent-resolver-KG7I6JJA.mjs.map → intent-resolver-PBDTYC4P.mjs.map} +0 -0
  210. /package/dist/lib/node-esm/{settings-NZXHNIQ3.mjs.map → settings-GR4O2WHZ.mjs.map} +0 -0
  211. /package/dist/types/src/{components/ScriptToolbar → hooks}/deploy.d.ts +0 -0
  212. /package/dist/types/src/{components/ScriptToolbar → hooks}/format.d.ts +0 -0
  213. /package/dist/types/src/{components/ScriptToolbar → hooks}/useToolbarState.d.ts +0 -0
  214. /package/dist/types/src/{components/ScriptToolbar → hooks}/view.d.ts +0 -0
  215. /package/src/{components/ScriptToolbar → hooks}/useToolbarState.ts +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/capabilities/react-surface.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, createSurface, useCapability } from '@dxos/app-framework';\nimport { ScriptType } from '@dxos/functions';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { Clipboard } from '@dxos/react-ui';\n\nimport { ScriptCapabilities } from './capabilities';\nimport { AutomationPanel, ScriptSettings, ScriptContainer, ScriptSettingsPanel } from '../components';\nimport { SCRIPT_PLUGIN } from '../meta';\nimport { type ScriptSettingsProps } from '../types';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${SCRIPT_PLUGIN}/settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<ScriptSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === SCRIPT_PLUGIN,\n component: ({ data: { subject } }) => <ScriptSettings settings={subject.value} />,\n }),\n createSurface({\n id: `${SCRIPT_PLUGIN}/article`,\n role: 'article',\n filter: (data): data is { subject: ScriptType } => data.subject instanceof ScriptType,\n component: ({ data, role }) => {\n const compiler = useCapability(ScriptCapabilities.Compiler);\n const settings = useCapability(Capabilities.SettingsStore).getStore<ScriptSettingsProps>(SCRIPT_PLUGIN)!.value;\n return <ScriptContainer role={role} script={data.subject} settings={settings} env={compiler.environment} />;\n },\n }),\n createSurface({\n id: `${SCRIPT_PLUGIN}/automation`,\n role: 'complementary--automation',\n position: 'hoist',\n filter: (data): data is { subject: ScriptType } => data.subject instanceof ScriptType,\n component: ({ data }) => <AutomationPanel subject={data.subject} />,\n }),\n createSurface({\n id: `${SCRIPT_PLUGIN}/settings-panel`,\n role: 'complementary--settings',\n filter: (data): data is { subject: ScriptType } => data.subject instanceof ScriptType,\n component: ({ data }) => (\n <Clipboard.Provider>\n <ScriptSettingsPanel script={data.subject} />\n </Clipboard.Provider>\n ),\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,aAAaC,eAAeC,qBAAqB;AACxE,SAASC,kBAAkB;AAC3B,SAASC,qBAAqB;AAC9B,SAASC,iBAAiB;AAO1B,IAAA,wBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,cAAc;IACZC,IAAI,GAAGC,aAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SACPA,KAAKC,mBAAmBC,iBAAiBF,KAAKC,QAAQE,WAAWN;IACnEO,WAAW,CAAC,EAAEJ,MAAM,EAAEC,QAAO,EAAE,MAAO,sBAAA,cAACI,gBAAAA;MAAeC,UAAUL,QAAQM;;EAC1E,CAAA;EACAZ,cAAc;IACZC,IAAI,GAAGC,aAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAA0CA,KAAKC,mBAAmBO;IAC3EJ,WAAW,CAAC,EAAEJ,MAAMF,KAAI,MAAE;AACxB,YAAMW,WAAWC,cAAcC,mBAAmBC,QAAQ;AAC1D,YAAMN,WAAWI,cAAcjB,aAAaS,aAAa,EAAEW,SAA8BhB,aAAAA,EAAgBU;AACzG,aAAO,sBAAA,cAACO,iBAAAA;QAAgBhB;QAAYiB,QAAQf,KAAKC;QAASK;QAAoBU,KAAKP,SAASQ;;IAC9F;EACF,CAAA;EACAtB,cAAc;IACZC,IAAI,GAAGC,aAAAA;IACPC,MAAM;IACNoB,UAAU;IACVnB,QAAQ,CAACC,SAA0CA,KAAKC,mBAAmBO;IAC3EJ,WAAW,CAAC,EAAEJ,KAAI,MAAO,sBAAA,cAACmB,iBAAAA;MAAgBlB,SAASD,KAAKC;;EAC1D,CAAA;EACAN,cAAc;IACZC,IAAI,GAAGC,aAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAA0CA,KAAKC,mBAAmBO;IAC3EJ,WAAW,CAAC,EAAEJ,KAAI,MAChB,sBAAA,cAACoB,UAAUC,UAAQ,MACjB,sBAAA,cAACC,qBAAAA;MAAoBP,QAAQf,KAAKC;;EAGxC,CAAA;CACD;",
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, createSurface, useCapability } from '@dxos/app-framework';\nimport { ScriptType } from '@dxos/functions';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { Clipboard } from '@dxos/react-ui';\n\nimport { ScriptCapabilities } from './capabilities';\nimport { AutomationPanel, ScriptSettings, ScriptContainer, ScriptSettingsPanel } from '../components';\nimport { SCRIPT_PLUGIN } from '../meta';\nimport { type ScriptSettingsProps } from '../types';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${SCRIPT_PLUGIN}/settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<ScriptSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === SCRIPT_PLUGIN,\n component: ({ data: { subject } }) => <ScriptSettings settings={subject.value} />,\n }),\n createSurface({\n id: `${SCRIPT_PLUGIN}/article`,\n role: 'article',\n filter: (data): data is { subject: ScriptType } => data.subject instanceof ScriptType,\n component: ({ data, role }) => {\n const compiler = useCapability(ScriptCapabilities.Compiler);\n // TODO(dmaretskyi): Since settings store is not reactive, this would break on the script plugin being enabled without a page reload.\n const settings = useCapability(Capabilities.SettingsStore).getStore<ScriptSettingsProps>(SCRIPT_PLUGIN)?.value;\n return <ScriptContainer role={role} script={data.subject} settings={settings} env={compiler.environment} />;\n },\n }),\n createSurface({\n id: `${SCRIPT_PLUGIN}/automation`,\n role: 'complementary--automation',\n position: 'hoist',\n filter: (data): data is { subject: ScriptType } => data.subject instanceof ScriptType,\n component: ({ data }) => <AutomationPanel subject={data.subject} />,\n }),\n createSurface({\n id: `${SCRIPT_PLUGIN}/settings-panel`,\n role: 'complementary--settings',\n filter: (data): data is { subject: ScriptType } => data.subject instanceof ScriptType,\n component: ({ data }) => (\n <Clipboard.Provider>\n <ScriptSettingsPanel script={data.subject} />\n </Clipboard.Provider>\n ),\n }),\n ]);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,aAAaC,eAAeC,qBAAqB;AACxE,SAASC,kBAAkB;AAC3B,SAASC,qBAAqB;AAC9B,SAASC,iBAAiB;AAO1B,IAAA,wBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,cAAc;IACZC,IAAI,GAAGC,aAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SACPA,KAAKC,mBAAmBC,iBAAiBF,KAAKC,QAAQE,WAAWN;IACnEO,WAAW,CAAC,EAAEJ,MAAM,EAAEC,QAAO,EAAE,MAAO,sBAAA,cAACI,gBAAAA;MAAeC,UAAUL,QAAQM;;EAC1E,CAAA;EACAZ,cAAc;IACZC,IAAI,GAAGC,aAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAA0CA,KAAKC,mBAAmBO;IAC3EJ,WAAW,CAAC,EAAEJ,MAAMF,KAAI,MAAE;AACxB,YAAMW,WAAWC,cAAcC,mBAAmBC,QAAQ;AAE1D,YAAMN,WAAWI,cAAcjB,aAAaS,aAAa,EAAEW,SAA8BhB,aAAAA,GAAgBU;AACzG,aAAO,sBAAA,cAACO,iBAAAA;QAAgBhB;QAAYiB,QAAQf,KAAKC;QAASK;QAAoBU,KAAKP,SAASQ;;IAC9F;EACF,CAAA;EACAtB,cAAc;IACZC,IAAI,GAAGC,aAAAA;IACPC,MAAM;IACNoB,UAAU;IACVnB,QAAQ,CAACC,SAA0CA,KAAKC,mBAAmBO;IAC3EJ,WAAW,CAAC,EAAEJ,KAAI,MAAO,sBAAA,cAACmB,iBAAAA;MAAgBlB,SAASD,KAAKC;;EAC1D,CAAA;EACAN,cAAc;IACZC,IAAI,GAAGC,aAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAA0CA,KAAKC,mBAAmBO;IAC3EJ,WAAW,CAAC,EAAEJ,KAAI,MAChB,sBAAA,cAACoB,UAAUC,UAAQ,MACjB,sBAAA,cAACC,qBAAAA;MAAoBP,QAAQf,KAAKC;;EAGxC,CAAA;CACD;",
6
6
  "names": ["React", "Capabilities", "contributes", "createSurface", "useCapability", "ScriptType", "SettingsStore", "Clipboard", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "SCRIPT_PLUGIN", "role", "filter", "data", "subject", "SettingsStore", "prefix", "component", "ScriptSettings", "settings", "value", "ScriptType", "compiler", "useCapability", "ScriptCapabilities", "Compiler", "getStore", "ScriptContainer", "script", "env", "environment", "position", "AutomationPanel", "Clipboard", "Provider", "ScriptSettingsPanel"]
7
7
  }
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  ScriptSettingsSchema
3
- } from "./chunk-NFPF4OIU.mjs";
3
+ } from "./chunk-N46LE7FS.mjs";
4
4
  import {
5
5
  SCRIPT_PLUGIN
6
- } from "./chunk-ESPJMGXJ.mjs";
6
+ } from "./chunk-FVVCAWNP.mjs";
7
7
 
8
8
  // packages/plugins/experimental/plugin-script/src/capabilities/settings.ts
9
9
  import { Capabilities, contributes } from "@dxos/app-framework";
@@ -21,4 +21,4 @@ var settings_default = () => {
21
21
  export {
22
22
  settings_default as default
23
23
  };
24
- //# sourceMappingURL=settings-S4MGGM4D.mjs.map
24
+ //# sourceMappingURL=settings-SZCDKHWO.mjs.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  ScriptAction,
3
3
  ScriptSettingsSchema
4
- } from "./chunk-NFPF4OIU.mjs";
5
- import "./chunk-ESPJMGXJ.mjs";
4
+ } from "./chunk-N46LE7FS.mjs";
5
+ import "./chunk-FVVCAWNP.mjs";
6
6
  export {
7
7
  ScriptAction,
8
8
  ScriptSettingsSchema
@@ -26,14 +26,14 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var AutomationPanel_6QSV7ZYK_exports = {};
30
- __export(AutomationPanel_6QSV7ZYK_exports, {
29
+ var AutomationPanel_RBQ4DODN_exports = {};
30
+ __export(AutomationPanel_RBQ4DODN_exports, {
31
31
  AutomationPanel: () => AutomationPanel,
32
32
  default: () => AutomationPanel_default
33
33
  });
34
- module.exports = __toCommonJS(AutomationPanel_6QSV7ZYK_exports);
35
- var import_chunk_CZVVFUVL = require("./chunk-CZVVFUVL.cjs");
36
- var import_chunk_HU2JXUXI = require("./chunk-HU2JXUXI.cjs");
34
+ module.exports = __toCommonJS(AutomationPanel_RBQ4DODN_exports);
35
+ var import_chunk_K3ZZWVXS = require("./chunk-K3ZZWVXS.cjs");
36
+ var import_chunk_5UH3F7TA = require("./chunk-5UH3F7TA.cjs");
37
37
  var import_react = __toESM(require("react"));
38
38
  var import_debug = require("@dxos/debug");
39
39
  var import_functions = require("@dxos/functions");
@@ -41,7 +41,7 @@ var import_react_client = require("@dxos/react-client");
41
41
  var import_echo = require("@dxos/react-client/echo");
42
42
  var import_react_ui = require("@dxos/react-ui");
43
43
  var AutomationPanel = ({ subject }) => {
44
- const { t } = (0, import_react_ui.useTranslation)(import_chunk_HU2JXUXI.SCRIPT_PLUGIN);
44
+ const { t } = (0, import_react_ui.useTranslation)(import_chunk_5UH3F7TA.SCRIPT_PLUGIN);
45
45
  const space = (0, import_echo.getSpace)(subject);
46
46
  const functions = (0, import_echo.useQuery)(space ?? void 0, subject instanceof import_functions.ScriptType ? import_echo.Filter.schema(import_functions.FunctionType, {
47
47
  source: subject
@@ -80,7 +80,7 @@ var ChatPanel = ({ fn, subject }) => {
80
80
  space,
81
81
  subject
82
82
  ]);
83
- return /* @__PURE__ */ import_react.default.createElement(import_chunk_CZVVFUVL.DebugPanel, {
83
+ return /* @__PURE__ */ import_react.default.createElement(import_chunk_K3ZZWVXS.DebugPanel, {
84
84
  functionUrl,
85
85
  classNames: "flex-1"
86
86
  });
@@ -101,4 +101,4 @@ var AutomationPanel_default = AutomationPanel;
101
101
  0 && (module.exports = {
102
102
  AutomationPanel
103
103
  });
104
- //# sourceMappingURL=AutomationPanel-6QSV7ZYK.cjs.map
104
+ //# sourceMappingURL=AutomationPanel-RBQ4DODN.cjs.map
@@ -26,16 +26,15 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var ScriptContainer_DOAQ6KOE_exports = {};
30
- __export(ScriptContainer_DOAQ6KOE_exports, {
29
+ var ScriptContainer_SLARXOSU_exports = {};
30
+ __export(ScriptContainer_SLARXOSU_exports, {
31
31
  ScriptContainer: () => ScriptContainer,
32
32
  default: () => ScriptContainer_default
33
33
  });
34
- module.exports = __toCommonJS(ScriptContainer_DOAQ6KOE_exports);
35
- var import_chunk_T4TXCRN5 = require("./chunk-T4TXCRN5.cjs");
36
- var import_chunk_TJ4BTPOS = require("./chunk-TJ4BTPOS.cjs");
37
- var import_chunk_CZVVFUVL = require("./chunk-CZVVFUVL.cjs");
38
- var import_chunk_HU2JXUXI = require("./chunk-HU2JXUXI.cjs");
34
+ module.exports = __toCommonJS(ScriptContainer_SLARXOSU_exports);
35
+ var import_chunk_7XULMIYT = require("./chunk-7XULMIYT.cjs");
36
+ var import_chunk_K3ZZWVXS = require("./chunk-K3ZZWVXS.cjs");
37
+ var import_chunk_5UH3F7TA = require("./chunk-5UH3F7TA.cjs");
39
38
  var import_react = __toESM(require("react"));
40
39
  var import_echo = require("@dxos/react-client/echo");
41
40
  var import_halo = require("@dxos/react-client/halo");
@@ -49,6 +48,7 @@ var import_react_ui_editor2 = require("@dxos/react-ui-editor");
49
48
  var import_react_ui_menu = require("@dxos/react-ui-menu");
50
49
  var import_react3 = require("react");
51
50
  var import_functions = require("@dxos/functions");
51
+ var import_bundler = require("@dxos/functions/bundler");
52
52
  var import_log = require("@dxos/log");
53
53
  var import_react_client = require("@dxos/react-client");
54
54
  var import_echo3 = require("@dxos/react-client/echo");
@@ -64,9 +64,9 @@ var import_react5 = require("react");
64
64
  var import_functions2 = require("@dxos/functions");
65
65
  var import_live_object = require("@dxos/live-object");
66
66
  var import_react_ui_menu4 = require("@dxos/react-ui-menu");
67
+ var import_react_ui_menu5 = require("@dxos/react-ui-menu");
67
68
  var import_react6 = require("react");
68
69
  var import_log3 = require("@dxos/log");
69
- var import_react_ui_menu5 = require("@dxos/react-ui-menu");
70
70
  var import_react7 = require("react");
71
71
  var import_live_object2 = require("@dxos/live-object");
72
72
  var import_lang_javascript = require("@codemirror/lang-javascript");
@@ -81,13 +81,13 @@ var import_react8 = __toESM(require("react"));
81
81
  var import_react_ui3 = require("@dxos/react-ui");
82
82
  var import_react_ui_editor3 = require("@dxos/react-ui-editor");
83
83
  var import_util = require("@dxos/util");
84
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/components/ScriptToolbar/deploy.ts";
84
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/hooks/deploy.ts";
85
85
  var createDeploy = (state) => {
86
86
  const errorItem = (0, import_react_ui_menu2.createMenuAction)("error", {
87
87
  label: state.error ?? [
88
88
  "no error label",
89
89
  {
90
- ns: import_chunk_HU2JXUXI.SCRIPT_PLUGIN
90
+ ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
91
91
  }
92
92
  ],
93
93
  icon: "ph--warning-circle--regular",
@@ -98,7 +98,7 @@ var createDeploy = (state) => {
98
98
  label: [
99
99
  state.deploying ? "pending label" : "deploy label",
100
100
  {
101
- ns: import_chunk_HU2JXUXI.SCRIPT_PLUGIN
101
+ ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
102
102
  }
103
103
  ],
104
104
  icon: state.deploying ? "ph--spinner-gap--regular" : "ph--cloud-arrow-up--regular",
@@ -110,7 +110,7 @@ var createDeploy = (state) => {
110
110
  label: [
111
111
  "copy link label",
112
112
  {
113
- ns: import_chunk_HU2JXUXI.SCRIPT_PLUGIN
113
+ ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
114
114
  }
115
115
  ],
116
116
  icon: "ph--link--regular",
@@ -182,7 +182,7 @@ var useDeployHandler = ({ state, script }) => {
182
182
  state,
183
183
  script
184
184
  });
185
- const { t } = (0, import_react_ui2.useTranslation)(import_chunk_HU2JXUXI.SCRIPT_PLUGIN);
185
+ const { t } = (0, import_react_ui2.useTranslation)(import_chunk_5UH3F7TA.SCRIPT_PLUGIN);
186
186
  return (0, import_react3.useCallback)(async () => {
187
187
  if (!script.source || !space) {
188
188
  return;
@@ -191,12 +191,14 @@ var useDeployHandler = ({ state, script }) => {
191
191
  state.deploying = true;
192
192
  try {
193
193
  const existingFunctionId = existingFunctionUrl?.split("/").at(-1);
194
- const bundler = new import_chunk_T4TXCRN5.Bundler({
194
+ const bundler = new import_bundler.Bundler({
195
195
  platform: "browser",
196
196
  sandboxedModules: [],
197
197
  remoteModules: {}
198
198
  });
199
- const buildResult = await bundler.bundle(script.source.target.content);
199
+ const buildResult = await bundler.bundle({
200
+ source: script.source.target.content
201
+ });
200
202
  if (buildResult.error || !buildResult.bundle) {
201
203
  throw buildResult.error;
202
204
  }
@@ -228,6 +230,20 @@ var useDeployHandler = ({ state, script }) => {
228
230
  source: (0, import_echo3.makeRef)(script)
229
231
  }));
230
232
  script.changed = false;
233
+ if (script.description !== void 0 && script.description.trim() !== "") {
234
+ deployedFunction.description = script.description;
235
+ } else if (meta.description) {
236
+ deployedFunction.description = meta.description;
237
+ } else {
238
+ import_log.log.verbose("no description in function metadata", {
239
+ functionId
240
+ }, {
241
+ F: __dxlog_file,
242
+ L: 138,
243
+ S: void 0,
244
+ C: (f, a) => f(...a)
245
+ });
246
+ }
231
247
  if (meta.inputSchema) {
232
248
  deployedFunction.inputSchema = meta.inputSchema;
233
249
  } else {
@@ -235,7 +251,19 @@ var useDeployHandler = ({ state, script }) => {
235
251
  functionId
236
252
  }, {
237
253
  F: __dxlog_file,
238
- L: 137,
254
+ L: 144,
255
+ S: void 0,
256
+ C: (f, a) => f(...a)
257
+ });
258
+ }
259
+ if (meta.outputSchema) {
260
+ deployedFunction.outputSchema = meta.outputSchema;
261
+ } else {
262
+ import_log.log.verbose("no output schema in function metadata", {
263
+ functionId
264
+ }, {
265
+ F: __dxlog_file,
266
+ L: 149,
239
267
  S: void 0,
240
268
  C: (f, a) => f(...a)
241
269
  });
@@ -245,7 +273,7 @@ var useDeployHandler = ({ state, script }) => {
245
273
  } catch (err) {
246
274
  import_log.log.catch(err, void 0, {
247
275
  F: __dxlog_file,
248
- L: 144,
276
+ L: 156,
249
277
  S: void 0,
250
278
  C: (f, a) => f(...a)
251
279
  });
@@ -271,13 +299,13 @@ var useCopyHandler = ({ state }) => (0, import_react3.useCallback)(async () => {
271
299
  }, [
272
300
  state.functionUrl
273
301
  ]);
274
- var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/components/ScriptToolbar/format.ts";
302
+ var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/hooks/format.ts";
275
303
  var createFormat = () => {
276
304
  const formatAction = (0, import_react_ui_menu3.createMenuAction)("format", {
277
305
  label: [
278
306
  "format label",
279
307
  {
280
- ns: import_chunk_HU2JXUXI.SCRIPT_PLUGIN
308
+ ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
281
309
  }
282
310
  ],
283
311
  icon: "ph--magic-wand--regular"
@@ -324,14 +352,14 @@ var createTemplateSelectGroup = () => {
324
352
  label: [
325
353
  "template select group label",
326
354
  {
327
- ns: import_chunk_HU2JXUXI.SCRIPT_PLUGIN
355
+ ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
328
356
  }
329
357
  ],
330
358
  variant: "dropdownMenu"
331
359
  });
332
360
  };
333
361
  var createTemplateSelectActions = () => {
334
- return import_chunk_TJ4BTPOS.templates.map((template) => {
362
+ return import_chunk_7XULMIYT.templates.map((template) => {
335
363
  return (0, import_react_ui_menu4.createMenuAction)(`template--${template.id}`, {
336
364
  label: template.name,
337
365
  value: template.id,
@@ -361,7 +389,7 @@ var createTemplateSelect = () => {
361
389
  };
362
390
  var useTemplateSelectHandler = ({ script }) => {
363
391
  return (0, import_react5.useCallback)((templateId) => {
364
- const template = import_chunk_TJ4BTPOS.templates.find((template2) => template2.id === templateId);
392
+ const template = import_chunk_7XULMIYT.templates.find((template2) => template2.id === templateId);
365
393
  if (template) {
366
394
  script.name = template.name;
367
395
  script.source.target.content = template.source;
@@ -381,44 +409,6 @@ var useTemplateSelectHandler = ({ script }) => {
381
409
  script
382
410
  ]);
383
411
  };
384
- var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/components/ScriptToolbar/useToolbarAction.ts";
385
- var useToolbarAction = (props) => {
386
- const handleTemplateSelect = useTemplateSelectHandler(props);
387
- const handleFormat = useFormatHandler(props);
388
- const handleDeploy = useDeployHandler(props);
389
- const handleCopy = useCopyHandler(props);
390
- return (0, import_react6.useCallback)((action) => {
391
- switch (action.properties.type) {
392
- case "template":
393
- handleTemplateSelect(action.properties.value);
394
- break;
395
- case "view":
396
- props.state.view = action.properties.value;
397
- break;
398
- case "format":
399
- void handleFormat();
400
- break;
401
- case "deploy":
402
- void handleDeploy();
403
- break;
404
- case "copy":
405
- void handleCopy();
406
- break;
407
- default:
408
- import_log3.log.error("Unknown action type", action, {
409
- F: __dxlog_file3,
410
- L: 49,
411
- S: void 0,
412
- C: (f, a) => f(...a)
413
- });
414
- }
415
- }, [
416
- handleTemplateSelect,
417
- handleFormat,
418
- handleDeploy,
419
- handleCopy
420
- ]);
421
- };
422
412
  var views = {
423
413
  editor: "ph--code--regular",
424
414
  split: "ph--square-split-vertical--regular",
@@ -429,7 +419,7 @@ var createViewGroupItem = (state) => {
429
419
  label: [
430
420
  "view group label",
431
421
  {
432
- ns: import_chunk_HU2JXUXI.SCRIPT_PLUGIN
422
+ ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
433
423
  }
434
424
  ],
435
425
  variant: "dropdownMenu",
@@ -445,7 +435,7 @@ var createViewActions = (state) => {
445
435
  label: [
446
436
  `view ${viewType} label`,
447
437
  {
448
- ns: import_chunk_HU2JXUXI.SCRIPT_PLUGIN
438
+ ns: import_chunk_5UH3F7TA.SCRIPT_PLUGIN
449
439
  }
450
440
  ],
451
441
  icon,
@@ -473,6 +463,47 @@ var createView = (state) => {
473
463
  ]
474
464
  };
475
465
  };
466
+ var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/hooks/useToolbarAction.ts";
467
+ var useToolbarAction = (props) => {
468
+ const handleTemplateSelect = useTemplateSelectHandler(props);
469
+ const handleFormat = useFormatHandler(props);
470
+ const handleDeploy = useDeployHandler(props);
471
+ const handleCopy = useCopyHandler(props);
472
+ return (0, import_react6.useCallback)((action) => {
473
+ switch (action.properties.type) {
474
+ case "template":
475
+ handleTemplateSelect(action.properties.value);
476
+ break;
477
+ case "view":
478
+ props.state.view = action.properties.value;
479
+ break;
480
+ case "format":
481
+ void handleFormat();
482
+ break;
483
+ case "deploy":
484
+ void handleDeploy();
485
+ break;
486
+ case "copy":
487
+ void handleCopy();
488
+ break;
489
+ default:
490
+ import_log3.log.error("Unknown action type", action, {
491
+ F: __dxlog_file3,
492
+ L: 49,
493
+ S: void 0,
494
+ C: (f, a) => f(...a)
495
+ });
496
+ }
497
+ }, [
498
+ handleTemplateSelect,
499
+ handleFormat,
500
+ handleDeploy,
501
+ handleCopy
502
+ ]);
503
+ };
504
+ var useToolbarState = (initialState = {}) => {
505
+ return (0, import_react7.useMemo)(() => (0, import_live_object2.create)(initialState), []);
506
+ };
476
507
  var createToolbar = (state) => {
477
508
  const templateSelect = createTemplateSelect();
478
509
  const format2 = createFormat();
@@ -518,9 +549,6 @@ var ScriptToolbar = ({ script, role, state, classNames }) => {
518
549
  classNames
519
550
  }))));
520
551
  };
521
- var useToolbarState = (initialState = {}) => {
522
- return (0, import_react7.useMemo)(() => (0, import_live_object2.create)(initialState), []);
523
- };
524
552
  var TypescriptEditor = ({ id, env, className, initialValue, extensions, scrollTo, selection, toolbar, inputMode = "vscode" }) => {
525
553
  const { themeMode } = (0, import_react_ui3.useThemeContext)();
526
554
  const { parentRef, focusAttributes } = (0, import_react_ui_editor3.useTextEditor)(() => ({
@@ -579,7 +607,7 @@ var TypescriptEditor = ({ id, env, className, initialValue, extensions, scrollTo
579
607
  })
580
608
  ] : []
581
609
  ]
582
- ].filter(import_util.nonNullable),
610
+ ].filter(import_util.isNonNullable),
583
611
  selection,
584
612
  scrollTo
585
613
  }), [
@@ -628,7 +656,9 @@ var createTooltipRenderer = (themeMode) => {
628
656
  };
629
657
  };
630
658
  };
631
- var ScriptContainer = ({ role, classNames, script, settings, env }) => {
659
+ var ScriptContainer = ({ role, classNames, script, settings = {
660
+ editorInputMode: "vscode"
661
+ }, env }) => {
632
662
  const identity = (0, import_halo.useIdentity)();
633
663
  const space = (0, import_echo.getSpace)(script);
634
664
  const extensions = (0, import_react.useMemo)(() => [
@@ -654,7 +684,7 @@ var ScriptContainer = ({ role, classNames, script, settings, env }) => {
654
684
  identity
655
685
  ]);
656
686
  const state = useToolbarState({
657
- view: "split"
687
+ view: "editor"
658
688
  });
659
689
  useDeployState({
660
690
  state,
@@ -677,7 +707,7 @@ var ScriptContainer = ({ role, classNames, script, settings, env }) => {
677
707
  className: (0, import_react_ui_editor.stackItemContentEditorClassNames)(role),
678
708
  inputMode: settings.editorInputMode,
679
709
  toolbar: true
680
- }), state.view !== "editor" && /* @__PURE__ */ import_react.default.createElement(import_chunk_CZVVFUVL.DebugPanel, {
710
+ }), state.view !== "editor" && /* @__PURE__ */ import_react.default.createElement(import_chunk_K3ZZWVXS.DebugPanel, {
681
711
  functionUrl: state.functionUrl
682
712
  })));
683
713
  };
@@ -686,4 +716,4 @@ var ScriptContainer_default = ScriptContainer;
686
716
  0 && (module.exports = {
687
717
  ScriptContainer
688
718
  });
689
- //# sourceMappingURL=ScriptContainer-DOAQ6KOE.cjs.map
719
+ //# sourceMappingURL=ScriptContainer-SLARXOSU.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/ScriptContainer.tsx", "../../../src/components/ScriptToolbar/ScriptToolbar.tsx", "../../../src/hooks/deploy.ts", "../../../src/hooks/format.ts", "../../../src/hooks/template.ts", "../../../src/hooks/view.ts", "../../../src/hooks/useToolbarAction.ts", "../../../src/hooks/useToolbarState.ts", "../../../src/components/TypescriptEditor/TypescriptEditor.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { createDocAccessor, getSpace } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { createDataExtensions, listener, stackItemContentEditorClassNames } from '@dxos/react-ui-editor';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { DebugPanel } from './DebugPanel';\nimport { ScriptToolbar } from './ScriptToolbar';\nimport { TypescriptEditor, type TypescriptEditorProps } from './TypescriptEditor';\nimport { useDeployState, useToolbarState } from '../hooks';\nimport { type ScriptSettingsProps } from '../types';\n\nexport type ScriptEditorProps = ThemedClassName<{\n script: ScriptType;\n settings?: ScriptSettingsProps;\n role?: string;\n}> &\n Pick<TypescriptEditorProps, 'env'>;\n\nexport const ScriptContainer = ({\n role,\n classNames,\n script,\n settings = { editorInputMode: 'vscode' },\n env,\n}: ScriptEditorProps) => {\n const identity = useIdentity();\n const space = getSpace(script);\n\n const extensions = useMemo(\n () => [\n listener({\n onChange: (text) => {\n if (script.source.target && script.source.target.content !== text) {\n script.changed = true;\n }\n },\n }),\n createDataExtensions({\n id: script.id,\n text: script.source.target && createDocAccessor(script.source.target, ['content']),\n space,\n identity,\n }),\n ],\n [script, script.source.target, space, identity],\n );\n\n const state = useToolbarState({ view: 'editor' });\n useDeployState({ state, script });\n\n return (\n <StackItem.Content toolbar>\n <ScriptToolbar state={state} role={role} script={script} />\n <div role='none' className={mx('flex flex-col w-full overflow-hidden divide-y divide-separator', classNames)}>\n {state.view !== 'debug' && (\n <TypescriptEditor\n id={script.id}\n env={env}\n initialValue={script.source?.target?.content}\n extensions={extensions}\n className={stackItemContentEditorClassNames(role)}\n inputMode={settings.editorInputMode}\n toolbar\n />\n )}\n\n {state.view !== 'editor' && <DebugPanel functionUrl={state.functionUrl} />}\n </div>\n </StackItem.Content>\n );\n};\n\nexport default ScriptContainer;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { ElevationProvider, type ThemedClassName } from '@dxos/react-ui';\nimport { stackItemContentToolbarClassNames } from '@dxos/react-ui-editor';\nimport { createGapSeparator, MenuProvider, ToolbarMenu, useMenuActions } from '@dxos/react-ui-menu';\n\nimport {\n type ScriptToolbarState,\n createDeploy,\n createFormat,\n createTemplateSelect,\n createView,\n useToolbarAction,\n} from '../../hooks';\n\nexport type ScriptToolbarProps = ThemedClassName<{\n role?: string;\n script: ScriptType;\n state: ScriptToolbarState;\n}>;\n\nconst createToolbar = (state: ScriptToolbarState) => {\n const templateSelect = createTemplateSelect();\n const format = createFormat();\n const gap = createGapSeparator();\n const deploy = createDeploy(state);\n const view = createView(state);\n return {\n nodes: [...templateSelect.nodes, ...format.nodes, ...gap.nodes, ...deploy.nodes, ...view.nodes],\n edges: [...templateSelect.edges, ...format.edges, ...gap.edges, ...deploy.edges, ...view.edges],\n };\n};\n\nexport const ScriptToolbar = ({ script, role, state, classNames }: ScriptToolbarProps) => {\n const handleAction = useToolbarAction({ state, script });\n const toolbarCreator = useCallback(() => createToolbar(state), [state]);\n const menu = useMenuActions(toolbarCreator);\n return (\n <div role='none' className={stackItemContentToolbarClassNames(role)}>\n <ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>\n <MenuProvider {...menu} onAction={handleAction} attendableId={fullyQualifiedId(script)}>\n <ToolbarMenu classNames={classNames} />\n </MenuProvider>\n </ElevationProvider>\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback, useEffect, useMemo } from 'react';\n\nimport {\n FunctionType,\n type ScriptType,\n getInvocationUrl,\n getUserFunctionUrlInMetadata,\n incrementSemverPatch,\n setUserFunctionUrlInMetadata,\n uploadWorkerFunction,\n} from '@dxos/functions';\nimport { Bundler } from '@dxos/functions/bundler';\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, create, getMeta, getSpace, makeRef, useQuery } from '@dxos/react-client/echo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { createMenuAction } from '@dxos/react-ui-menu';\n\nimport { type ViewState } from './view';\nimport { SCRIPT_PLUGIN } from '../meta';\n\nexport type DeployActionProperties = { type: 'deploy' } | { type: 'copy' };\n\nexport type DeployState = ViewState & {\n deploying: boolean;\n deployed: boolean;\n functionUrl: string;\n error: string;\n};\n\nexport const createDeploy = (state: Partial<DeployState>) => {\n const errorItem = createMenuAction('error', {\n label: state.error ?? ['no error label', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--warning-circle--regular',\n hidden: !state.error,\n });\n\n const deployAction = createMenuAction<DeployActionProperties>('deploy', {\n type: 'deploy',\n label: [state.deploying ? 'pending label' : 'deploy label', { ns: SCRIPT_PLUGIN }],\n icon: state.deploying ? 'ph--spinner-gap--regular' : 'ph--cloud-arrow-up--regular',\n disabled: state.deploying,\n classNames: state.deploying ? '[&_svg]:animate-spin' : '',\n });\n\n const copyAction = createMenuAction<DeployActionProperties>('copy', {\n type: 'copy',\n label: ['copy link label', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--link--regular',\n disabled: !state.functionUrl,\n });\n\n return {\n nodes: [errorItem, deployAction, copyAction],\n edges: [\n { source: 'root', target: 'error' },\n { source: 'root', target: 'deploy' },\n { source: 'root', target: 'copy' },\n ],\n };\n};\n\nconst useDeployDeps = ({ state, script }: { state: Partial<DeployState>; script: ScriptType }) => {\n const space = getSpace(script);\n const [fn] = useQuery(space, Filter.schema(FunctionType, { source: script }));\n const client = useClient();\n const existingFunctionUrl = useMemo(() => fn && getUserFunctionUrlInMetadata(getMeta(fn)), [fn]);\n return { space, fn, client, existingFunctionUrl };\n};\n\nexport const useDeployState = ({ state, script }: { state: Partial<DeployState>; script: ScriptType }) => {\n const { space, client, existingFunctionUrl } = useDeployDeps({ state, script });\n useEffect(() => {\n if (!existingFunctionUrl) {\n return;\n }\n\n state.functionUrl = getInvocationUrl(existingFunctionUrl, client.config.values.runtime?.services?.edge?.url ?? '', {\n spaceId: space?.id,\n });\n }, [existingFunctionUrl, space]);\n\n useEffect(() => {\n state.deployed = Boolean(existingFunctionUrl) && !script.changed;\n }, [script.changed, existingFunctionUrl]);\n};\n\nexport const useDeployHandler = ({ state, script }: { state: Partial<DeployState>; script: ScriptType }) => {\n const { space, fn, client, existingFunctionUrl } = useDeployDeps({ state, script });\n const { t } = useTranslation(SCRIPT_PLUGIN);\n\n return useCallback(async () => {\n if (!script.source || !space) {\n return;\n }\n\n state.error = undefined;\n state.deploying = true;\n\n try {\n const existingFunctionId = existingFunctionUrl?.split('/').at(-1);\n\n const bundler = new Bundler({ platform: 'browser', sandboxedModules: [], remoteModules: {} });\n const buildResult = await bundler.bundle({ source: script.source.target!.content });\n if (buildResult.error || !buildResult.bundle) {\n throw buildResult.error;\n }\n\n const { functionId, version, meta } = await uploadWorkerFunction({\n client,\n spaceId: space.id,\n version: fn ? incrementSemverPatch(fn.version) : '0.0.1',\n functionId: existingFunctionId,\n source: buildResult.bundle,\n });\n if (functionId === undefined || version === undefined) {\n throw new Error(`Upload didn't return expected data: functionId=${functionId}, version=${version}`);\n }\n\n log.info('function uploaded', { functionId, version });\n if (fn) {\n fn.version = version;\n }\n\n const deployedFunction =\n fn ?? space.db.add(create(FunctionType, { name: functionId, version, source: makeRef(script) }));\n\n script.changed = false;\n if (script.description !== undefined && script.description.trim() !== '') {\n deployedFunction.description = script.description;\n } else if (meta.description) {\n deployedFunction.description = meta.description;\n } else {\n log.verbose('no description in function metadata', { functionId });\n }\n\n if (meta.inputSchema) {\n deployedFunction.inputSchema = meta.inputSchema;\n } else {\n log.verbose('no input schema in function metadata', { functionId });\n }\n if (meta.outputSchema) {\n deployedFunction.outputSchema = meta.outputSchema;\n } else {\n log.verbose('no output schema in function metadata', { functionId });\n }\n\n setUserFunctionUrlInMetadata(getMeta(deployedFunction), `/${space.id}/${functionId}`);\n\n state.view = 'split';\n } catch (err: any) {\n log.catch(err);\n state.error = t('upload failed label');\n }\n state.deploying = false;\n }, [fn, client, t, existingFunctionUrl, script, script.name, script.source, space?.id ?? null]);\n};\n\nexport const useCopyHandler = ({ state }: { state: Partial<DeployState> }) =>\n useCallback(async () => {\n if (!state.functionUrl) {\n return;\n }\n await navigator.clipboard.writeText(state.functionUrl);\n }, [state.functionUrl]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { format } from 'prettier';\nimport prettierPluginEstree from 'prettier/plugins/estree';\nimport prettierPluginTypescript from 'prettier/plugins/typescript';\nimport { useCallback } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { createMenuAction } from '@dxos/react-ui-menu';\n\nimport { SCRIPT_PLUGIN } from '../meta';\n\nexport type FormatActionProperties = { type: 'format' };\n\nexport const createFormat = () => {\n const formatAction = createMenuAction('format', {\n label: ['format label', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--magic-wand--regular',\n });\n\n return {\n nodes: [formatAction],\n edges: [{ source: 'root', target: 'format' }],\n };\n};\n\nexport const useFormatHandler = ({ script }: { script: ScriptType }) =>\n useCallback(async () => {\n if (!script.source) {\n return;\n }\n\n try {\n script.source.target!.content = await format(script.source.target!.content, {\n parser: 'typescript',\n plugins: [prettierPluginEstree, prettierPluginTypescript],\n semi: true,\n singleQuote: true,\n });\n } catch (err: any) {\n // TODO(wittjosiah): Show error in UI.\n log.catch(err);\n }\n }, [script.source]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { FUNCTIONS_PRESET_META_KEY, type ScriptType } from '@dxos/functions';\nimport { getMeta } from '@dxos/live-object';\nimport { createMenuItemGroup, createMenuAction } from '@dxos/react-ui-menu';\n\nimport { SCRIPT_PLUGIN } from '../meta';\nimport { templates } from '../templates';\n\nexport type TemplateActionProperties = { type: 'template'; value: string };\n\nconst createTemplateSelectGroup = () => {\n return createMenuItemGroup('template-select', {\n label: ['template select group label', { ns: SCRIPT_PLUGIN }],\n variant: 'dropdownMenu',\n });\n};\n\nconst createTemplateSelectActions = () => {\n return templates.map((template) => {\n return createMenuAction<TemplateActionProperties>(`template--${template.id}`, {\n label: template.name,\n value: template.id,\n type: 'template',\n });\n });\n};\n\nexport const createTemplateSelect = () => {\n const templateSelectGroup = createTemplateSelectGroup();\n const templateSelectActions = createTemplateSelectActions();\n return {\n nodes: [templateSelectGroup, ...templateSelectActions],\n edges: [\n { source: 'root', target: 'template-select' },\n ...templateSelectActions.map((action) => ({ source: 'template-select', target: action.id })),\n ],\n };\n};\n\nexport const useTemplateSelectHandler = ({ script }: { script: ScriptType }) => {\n return useCallback(\n (templateId: string) => {\n const template = templates.find((template) => template.id === templateId);\n if (template) {\n script.name = template.name;\n script.source!.target!.content = template.source;\n const metaKeys = getMeta(script).keys;\n const oldPresetIndex = metaKeys.findIndex((key) => key.source === FUNCTIONS_PRESET_META_KEY);\n if (oldPresetIndex >= 0) {\n metaKeys.splice(oldPresetIndex, 1);\n }\n if (template.presetId) {\n metaKeys.push({ source: FUNCTIONS_PRESET_META_KEY, id: template.presetId });\n }\n }\n },\n [script],\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { createMenuAction, createMenuItemGroup } from '@dxos/react-ui-menu';\n\nimport { SCRIPT_PLUGIN } from '../meta';\n\nexport type ViewType = 'editor' | 'split' | 'debug';\n\nexport type ViewState = { view: ViewType };\n\nexport type ViewActionProperties = { type: 'view'; value: ViewType };\n\nconst views: Record<ViewType, string> = {\n editor: 'ph--code--regular',\n split: 'ph--square-split-vertical--regular',\n debug: 'ph--bug--regular',\n};\n\nconst createViewGroupItem = (state: Partial<ViewState>) => {\n return createMenuItemGroup('view', {\n label: ['view group label', { ns: SCRIPT_PLUGIN }],\n variant: 'dropdownMenu',\n applyActive: true,\n value: state.view,\n });\n};\n\nconst createViewActions = (state: Partial<ViewState>) => {\n return Object.entries(views).map(([viewType, icon]) => {\n return createMenuAction<ViewActionProperties>(`view--${viewType}`, {\n type: 'view',\n value: viewType as ViewType,\n label: [`view ${viewType} label`, { ns: SCRIPT_PLUGIN }],\n icon,\n checked: state.view === viewType,\n });\n });\n};\n\nexport const createView = (state: Partial<ViewState>) => {\n const viewGroupItem = createViewGroupItem(state);\n const viewActions = createViewActions(state);\n return {\n nodes: [viewGroupItem, ...viewActions],\n edges: [\n { source: 'root', target: 'view' },\n ...viewActions.map((action) => ({ source: 'view', target: action.id })),\n ],\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { type MenuAction, type MenuActionHandler } from '@dxos/react-ui-menu';\n\nimport { type DeployActionProperties, useDeployHandler, useCopyHandler } from './deploy';\nimport { type FormatActionProperties, useFormatHandler } from './format';\nimport { type TemplateActionProperties, useTemplateSelectHandler } from './template';\nimport { type ScriptToolbarState } from './useToolbarState';\nimport { type ViewActionProperties } from './view';\n\nexport type ScriptToolbarActionProperties =\n | TemplateActionProperties\n | ViewActionProperties\n | FormatActionProperties\n | DeployActionProperties;\n\nexport type ScriptToolbarAction = MenuAction<ScriptToolbarActionProperties>;\n\nexport const useToolbarAction = (props: { state: ScriptToolbarState; script: ScriptType }) => {\n const handleTemplateSelect = useTemplateSelectHandler(props);\n const handleFormat = useFormatHandler(props);\n const handleDeploy = useDeployHandler(props);\n const handleCopy = useCopyHandler(props);\n return useCallback(\n ((action: ScriptToolbarAction) => {\n switch (action.properties.type) {\n case 'template':\n handleTemplateSelect(action.properties.value);\n break;\n case 'view':\n props.state.view = action.properties.value;\n break;\n case 'format':\n void handleFormat();\n break;\n case 'deploy':\n void handleDeploy();\n break;\n case 'copy':\n void handleCopy();\n break;\n default:\n log.error('Unknown action type', action);\n }\n }) as MenuActionHandler,\n [handleTemplateSelect, handleFormat, handleDeploy, handleCopy],\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { create } from '@dxos/live-object';\n\nimport { type DeployState } from './deploy';\nimport { type ViewState } from './view';\n\nexport type ScriptToolbarState = Partial<DeployState & ViewState>;\n\nexport const useToolbarState = (initialState: ScriptToolbarState = {}) => {\n return useMemo(() => create<ScriptToolbarState>(initialState), []);\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { javascript } from '@codemirror/lang-javascript';\nimport { defaultHighlightStyle } from '@codemirror/language';\nimport { Prec } from '@codemirror/state';\nimport { oneDarkHighlightStyle } from '@codemirror/theme-one-dark';\nimport { keymap } from '@codemirror/view';\nimport { tags } from '@lezer/highlight';\nimport { type VirtualTypeScriptEnvironment } from '@typescript/vfs';\nimport { continueKeymap } from '@valtown/codemirror-continue';\nimport { tsSync, tsFacet, tsLinter, tsAutocomplete, tsHover, type HoverInfo } from '@valtown/codemirror-ts';\nimport React from 'react';\n\nimport { type ThemeMode, useThemeContext } from '@dxos/react-ui';\nimport {\n autocomplete,\n createBasicExtensions,\n createThemeExtensions,\n editorFullWidth,\n type EditorInputMode,\n editorMonospace,\n EditorView,\n folding,\n InputModeExtensions,\n useTextEditor,\n type UseTextEditorProps,\n} from '@dxos/react-ui-editor';\nimport { isNonNullable } from '@dxos/util';\n\nexport type TypescriptEditorProps = {\n id: string;\n inputMode?: EditorInputMode;\n env?: VirtualTypeScriptEnvironment;\n toolbar?: boolean;\n} & Pick<UseTextEditorProps, 'className' | 'initialValue' | 'extensions' | 'scrollTo' | 'selection'>;\n\nexport const TypescriptEditor = ({\n id,\n env,\n className,\n initialValue,\n extensions,\n scrollTo,\n selection,\n toolbar,\n inputMode = 'vscode',\n}: TypescriptEditorProps) => {\n const { themeMode } = useThemeContext();\n const { parentRef, focusAttributes } = useTextEditor(\n () => ({\n id,\n initialValue,\n extensions: [\n extensions,\n createBasicExtensions({\n highlightActiveLine: true,\n indentWithTab: true,\n lineNumbers: true,\n lineWrapping: false,\n scrollPastEnd: true,\n }),\n createThemeExtensions({\n themeMode,\n syntaxHighlighting: true,\n slots: {\n content: { className: editorFullWidth },\n },\n }),\n // NOTE: Not using default editor gutter because folding for code works best right beside text.\n EditorView.theme({\n '.cm-gutters': {\n // Match margin from content.\n marginTop: '16px',\n },\n }),\n InputModeExtensions[inputMode],\n folding(),\n // Continues block comments when you hit Enter.\n Prec.high(keymap.of(continueKeymap)),\n // TODO(burdon): Factor out.\n [\n editorMonospace,\n javascript({ typescript: true }),\n // https://github.com/val-town/codemirror-ts\n autocomplete({ override: env ? [tsAutocomplete()] : [] }),\n env\n ? [\n tsFacet.of({ env, path: `/src/${id}.ts` }),\n tsSync(),\n tsLinter(),\n tsHover({ renderTooltip: createTooltipRenderer(themeMode) }),\n ]\n : [],\n ],\n ].filter(isNonNullable),\n selection,\n scrollTo,\n }),\n [id, extensions, themeMode, inputMode, selection, scrollTo],\n );\n\n return (\n <div ref={parentRef} data-toolbar={toolbar ? 'enabled' : 'disabled'} className={className} {...focusAttributes} />\n );\n};\n\nconst createTooltipRenderer = (themeMode: ThemeMode) => {\n const theme = themeMode === 'dark' ? oneDarkHighlightStyle : defaultHighlightStyle;\n\n const classFromKind = (_kind: string) => {\n // E.g., localName, methodName, parameterName, etc.\n const kind = _kind.endsWith('Name') ? 'name' : _kind;\n const validTag = kind in tags;\n if (!validTag) {\n return '';\n }\n\n const tag = tags[kind as keyof typeof tags];\n if (typeof tag === 'function') {\n return '';\n }\n\n return theme.style([tag]) ?? '';\n };\n\n return (info: HoverInfo) => {\n const div = document.createElement('div');\n div.className = 'p-1 rounded border border-separator bg-baseSurface xs:max-w-80 max-w-lg';\n\n if (info.quickInfo?.displayParts) {\n for (const part of info.quickInfo.displayParts) {\n const span = div.appendChild(document.createElement('span'));\n span.className = classFromKind(part.kind);\n span.innerText = part.text;\n }\n }\n\n return { dom: div };\n };\n};\n\nexport default TypescriptEditor;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mBAA+B;AAG/B,kBAA4C;AAC5C,kBAA4B;AAE5B,6BAAiF;AACjF,4BAA0B;AAC1B,4BAAmB;ACRnB,IAAAA,gBAAmC;AAGnC,IAAAC,eAAiC;AACjC,sBAAwD;AACxD,IAAAC,0BAAkD;AAClD,2BAA8E;ACN9E,IAAAF,gBAAgD;AAEhD,uBAQO;AACP,qBAAwB;AACxB,iBAAoB;AACpB,0BAA0B;AAC1B,IAAAC,eAAqE;AACrE,IAAAE,mBAA+B;AAC/B,IAAAC,wBAAiC;AChBjC,sBAAuB;AACvB,oBAAiC;AACjC,wBAAqC;AACrC,IAAAJ,gBAA4B;AAG5B,IAAAK,cAAoB;AACpB,IAAAD,wBAAiC;ACPjC,IAAAJ,gBAA4B;AAE5B,IAAAM,oBAA2D;AAC3D,yBAAwB;AACxB,IAAAF,wBAAsD;ACJtD,IAAAA,wBAAsD;ACAtD,IAAAJ,gBAA4B;AAG5B,IAAAK,cAAoB;ACHpB,IAAAL,gBAAwB;AAExB,IAAAO,sBAAuB;ACFvB,6BAA2B;AAC3B,sBAAsC;AACtC,mBAAqB;AACrB,4BAAsC;AACtC,kBAAuB;AACvB,uBAAqB;AAErB,iCAA+B;AAC/B,2BAAmF;AACnF,IAAAP,gBAAkB;AAElB,IAAAG,mBAAgD;AAChD,IAAAD,0BAYO;AACP,kBAA8B;;ANKvB,IAAMM,eAAe,CAACC,UAAAA;AAC3B,QAAMC,gBAAYC,wCAAiB,SAAS;IAC1CC,OAAOH,MAAMI,SAAS;MAAC;MAAkB;QAAEC,IAAIC;MAAc;;IAC7DC,MAAM;IACNC,QAAQ,CAACR,MAAMI;EACjB,CAAA;AAEA,QAAMK,mBAAeP,wCAAyC,UAAU;IACtEQ,MAAM;IACNP,OAAO;MAACH,MAAMW,YAAY,kBAAkB;MAAgB;QAAEN,IAAIC;MAAc;;IAChFC,MAAMP,MAAMW,YAAY,6BAA6B;IACrDC,UAAUZ,MAAMW;IAChBE,YAAYb,MAAMW,YAAY,yBAAyB;EACzD,CAAA;AAEA,QAAMG,iBAAaZ,wCAAyC,QAAQ;IAClEQ,MAAM;IACNP,OAAO;MAAC;MAAmB;QAAEE,IAAIC;MAAc;;IAC/CC,MAAM;IACNK,UAAU,CAACZ,MAAMe;EACnB,CAAA;AAEA,SAAO;IACLC,OAAO;MAACf;MAAWQ;MAAcK;;IACjCG,OAAO;MACL;QAAEC,QAAQ;QAAQC,QAAQ;MAAQ;MAClC;QAAED,QAAQ;QAAQC,QAAQ;MAAS;MACnC;QAAED,QAAQ;QAAQC,QAAQ;MAAO;;EAErC;AACF;AAEA,IAAMC,gBAAgB,CAAC,EAAEpB,OAAOqB,OAAM,MAAuD;AAC3F,QAAMC,YAAQC,uBAASF,MAAAA;AACvB,QAAM,CAACG,EAAAA,QAAMC,uBAASH,OAAOI,oBAAOC,OAAOC,+BAAc;IAAEV,QAAQG;EAAO,CAAA,CAAA;AAC1E,QAAMQ,aAASC,+BAAAA;AACf,QAAMC,0BAAsBC,uBAAQ,MAAMR,UAAMS,mDAA6BC,sBAAQV,EAAAA,CAAAA,GAAM;IAACA;GAAG;AAC/F,SAAO;IAAEF;IAAOE;IAAIK;IAAQE;EAAoB;AAClD;AAEO,IAAMI,iBAAiB,CAAC,EAAEnC,OAAOqB,OAAM,MAAuD;AACnG,QAAM,EAAEC,OAAOO,QAAQE,oBAAmB,IAAKX,cAAc;IAAEpB;IAAOqB;EAAO,CAAA;AAC7Ee,+BAAU,MAAA;AACR,QAAI,CAACL,qBAAqB;AACxB;IACF;AAEA/B,UAAMe,kBAAcsB,mCAAiBN,qBAAqBF,OAAOS,OAAOC,OAAOC,SAASC,UAAUC,MAAMC,OAAO,IAAI;MACjHC,SAAStB,OAAOuB;IAClB,CAAA;EACF,GAAG;IAACd;IAAqBT;GAAM;AAE/Bc,+BAAU,MAAA;AACRpC,UAAM8C,WAAWC,QAAQhB,mBAAAA,KAAwB,CAACV,OAAO2B;EAC3D,GAAG;IAAC3B,OAAO2B;IAASjB;GAAoB;AAC1C;AAEO,IAAMkB,mBAAmB,CAAC,EAAEjD,OAAOqB,OAAM,MAAuD;AACrG,QAAM,EAAEC,OAAOE,IAAIK,QAAQE,oBAAmB,IAAKX,cAAc;IAAEpB;IAAOqB;EAAO,CAAA;AACjF,QAAM,EAAE6B,EAAC,QAAKC,iCAAe7C,mCAAAA;AAE7B,aAAO8C,2BAAY,YAAA;AACjB,QAAI,CAAC/B,OAAOH,UAAU,CAACI,OAAO;AAC5B;IACF;AAEAtB,UAAMI,QAAQiD;AACdrD,UAAMW,YAAY;AAElB,QAAI;AACF,YAAM2C,qBAAqBvB,qBAAqBwB,MAAM,GAAA,EAAKC,GAAG,EAAC;AAE/D,YAAMC,UAAU,IAAIC,uBAAQ;QAAEC,UAAU;QAAWC,kBAAkB,CAAA;QAAIC,eAAe,CAAC;MAAE,CAAA;AAC3F,YAAMC,cAAc,MAAML,QAAQM,OAAO;QAAE7C,QAAQG,OAAOH,OAAOC,OAAQ6C;MAAQ,CAAA;AACjF,UAAIF,YAAY1D,SAAS,CAAC0D,YAAYC,QAAQ;AAC5C,cAAMD,YAAY1D;MACpB;AAEA,YAAM,EAAE6D,YAAYC,SAASC,KAAI,IAAK,UAAMC,uCAAqB;QAC/DvC;QACAe,SAAStB,MAAMuB;QACfqB,SAAS1C,SAAK6C,uCAAqB7C,GAAG0C,OAAO,IAAI;QACjDD,YAAYX;QACZpC,QAAQ4C,YAAYC;MACtB,CAAA;AACA,UAAIE,eAAeZ,UAAaa,YAAYb,QAAW;AACrD,cAAM,IAAIiB,MAAM,kDAAkDL,UAAAA,aAAuBC,OAAAA,EAAS;MACpG;AAEAK,qBAAIC,KAAK,qBAAqB;QAAEP;QAAYC;MAAQ,GAAA;;;;;;AACpD,UAAI1C,IAAI;AACNA,WAAG0C,UAAUA;MACf;AAEA,YAAMO,mBACJjD,MAAMF,MAAMoD,GAAGC,QAAIC,qBAAOhD,+BAAc;QAAEiD,MAAMZ;QAAYC;QAAShD,YAAQ4D,sBAAQzD,MAAAA;MAAQ,CAAA,CAAA;AAE/FA,aAAO2B,UAAU;AACjB,UAAI3B,OAAO0D,gBAAgB1B,UAAahC,OAAO0D,YAAYC,KAAI,MAAO,IAAI;AACxEP,yBAAiBM,cAAc1D,OAAO0D;MACxC,WAAWZ,KAAKY,aAAa;AAC3BN,yBAAiBM,cAAcZ,KAAKY;MACtC,OAAO;AACLR,uBAAIU,QAAQ,uCAAuC;UAAEhB;QAAW,GAAA;;;;;;MAClE;AAEA,UAAIE,KAAKe,aAAa;AACpBT,yBAAiBS,cAAcf,KAAKe;MACtC,OAAO;AACLX,uBAAIU,QAAQ,wCAAwC;UAAEhB;QAAW,GAAA;;;;;;MACnE;AACA,UAAIE,KAAKgB,cAAc;AACrBV,yBAAiBU,eAAehB,KAAKgB;MACvC,OAAO;AACLZ,uBAAIU,QAAQ,yCAAyC;UAAEhB;QAAW,GAAA;;;;;;MACpE;AAEAmB,6DAA6BlD,sBAAQuC,gBAAAA,GAAmB,IAAInD,MAAMuB,EAAE,IAAIoB,UAAAA,EAAY;AAEpFjE,YAAMqF,OAAO;IACf,SAASC,KAAU;AACjBf,qBAAIgB,MAAMD,KAAAA,QAAAA;;;;;;AACVtF,YAAMI,QAAQ8C,EAAE,qBAAA;IAClB;AACAlD,UAAMW,YAAY;EACpB,GAAG;IAACa;IAAIK;IAAQqB;IAAGnB;IAAqBV;IAAQA,OAAOwD;IAAMxD,OAAOH;IAAQI,OAAOuB,MAAM;GAAK;AAChG;AAEO,IAAM2C,iBAAiB,CAAC,EAAExF,MAAK,UACpCoD,2BAAY,YAAA;AACV,MAAI,CAACpD,MAAMe,aAAa;AACtB;EACF;AACA,QAAM0E,UAAUC,UAAUC,UAAU3F,MAAMe,WAAW;AACvD,GAAG;EAACf,MAAMe;CAAY;;ACvJjB,IAAM6E,eAAe,MAAA;AAC1B,QAAMC,mBAAe3F,sBAAAA,kBAAiB,UAAU;IAC9CC,OAAO;MAAC;MAAgB;QAAEE,IAAIC;MAAc;;IAC5CC,MAAM;EACR,CAAA;AAEA,SAAO;IACLS,OAAO;MAAC6E;;IACR5E,OAAO;MAAC;QAAEC,QAAQ;QAAQC,QAAQ;MAAS;;EAC7C;AACF;AAEO,IAAM2E,mBAAmB,CAAC,EAAEzE,OAAM,UACvC+B,cAAAA,aAAY,YAAA;AACV,MAAI,CAAC/B,OAAOH,QAAQ;AAClB;EACF;AAEA,MAAI;AACFG,WAAOH,OAAOC,OAAQ6C,UAAU,UAAM+B,wBAAO1E,OAAOH,OAAOC,OAAQ6C,SAAS;MAC1EgC,QAAQ;MACRC,SAAS;QAACC,cAAAA;QAAsBC,kBAAAA;;MAChCC,MAAM;MACNC,aAAa;IACf,CAAA;EACF,SAASf,KAAU;AAEjBf,gBAAAA,IAAIgB,MAAMD,KAAAA,QAAAA;;;;;;EACZ;AACF,GAAG;EAACjE,OAAOH;CAAO;AC/BpB,IAAMoF,4BAA4B,MAAA;AAChC,aAAOC,2CAAoB,mBAAmB;IAC5CpG,OAAO;MAAC;MAA+B;QAAEE,IAAIC;MAAc;;IAC3DkG,SAAS;EACX,CAAA;AACF;AAEA,IAAMC,8BAA8B,MAAA;AAClC,SAAOC,gCAAUC,IAAI,CAACC,aAAAA;AACpB,eAAO1G,sBAAAA,kBAA2C,aAAa0G,SAAS/D,EAAE,IAAI;MAC5E1C,OAAOyG,SAAS/B;MAChBgC,OAAOD,SAAS/D;MAChBnC,MAAM;IACR,CAAA;EACF,CAAA;AACF;AAEO,IAAMoG,uBAAuB,MAAA;AAClC,QAAMC,sBAAsBT,0BAAAA;AAC5B,QAAMU,wBAAwBP,4BAAAA;AAC9B,SAAO;IACLzF,OAAO;MAAC+F;SAAwBC;;IAChC/F,OAAO;MACL;QAAEC,QAAQ;QAAQC,QAAQ;MAAkB;SACzC6F,sBAAsBL,IAAI,CAACM,YAAY;QAAE/F,QAAQ;QAAmBC,QAAQ8F,OAAOpE;MAAG,EAAA;;EAE7F;AACF;AAEO,IAAMqE,2BAA2B,CAAC,EAAE7F,OAAM,MAA0B;AACzE,aAAO+B,cAAAA,aACL,CAAC+D,eAAAA;AACC,UAAMP,WAAWF,gCAAUU,KAAK,CAACR,cAAaA,UAAS/D,OAAOsE,UAAAA;AAC9D,QAAIP,UAAU;AACZvF,aAAOwD,OAAO+B,SAAS/B;AACvBxD,aAAOH,OAAQC,OAAQ6C,UAAU4C,SAAS1F;AAC1C,YAAMmG,eAAWnF,mBAAAA,SAAQb,MAAAA,EAAQiG;AACjC,YAAMC,iBAAiBF,SAASG,UAAU,CAACC,QAAQA,IAAIvG,WAAWwG,2CAAAA;AAClE,UAAIH,kBAAkB,GAAG;AACvBF,iBAASM,OAAOJ,gBAAgB,CAAA;MAClC;AACA,UAAIX,SAASgB,UAAU;AACrBP,iBAASQ,KAAK;UAAE3G,QAAQwG;UAA2B7E,IAAI+D,SAASgB;QAAS,CAAA;MAC3E;IACF;EACF,GACA;IAACvG;GAAO;AAEZ;ACjDA,IAAMyG,QAAkC;EACtCC,QAAQ;EACRxE,OAAO;EACPyE,OAAO;AACT;AAEA,IAAMC,sBAAsB,CAACjI,UAAAA;AAC3B,aAAOuG,sBAAAA,qBAAoB,QAAQ;IACjCpG,OAAO;MAAC;MAAoB;QAAEE,IAAIC;MAAc;;IAChDkG,SAAS;IACT0B,aAAa;IACbrB,OAAO7G,MAAMqF;EACf,CAAA;AACF;AAEA,IAAM8C,oBAAoB,CAACnI,UAAAA;AACzB,SAAOoI,OAAOC,QAAQP,KAAAA,EAAOnB,IAAI,CAAC,CAAC2B,UAAU/H,IAAAA,MAAK;AAChD,eAAOL,sBAAAA,kBAAuC,SAASoI,QAAAA,IAAY;MACjE5H,MAAM;MACNmG,OAAOyB;MACPnI,OAAO;QAAC,QAAQmI,QAAAA;QAAkB;UAAEjI,IAAIC;QAAc;;MACtDC;MACAgI,SAASvI,MAAMqF,SAASiD;IAC1B,CAAA;EACF,CAAA;AACF;AAEO,IAAME,aAAa,CAACxI,UAAAA;AACzB,QAAMyI,gBAAgBR,oBAAoBjI,KAAAA;AAC1C,QAAM0I,cAAcP,kBAAkBnI,KAAAA;AACtC,SAAO;IACLgB,OAAO;MAACyH;SAAkBC;;IAC1BzH,OAAO;MACL;QAAEC,QAAQ;QAAQC,QAAQ;MAAO;SAC9BuH,YAAY/B,IAAI,CAACM,YAAY;QAAE/F,QAAQ;QAAQC,QAAQ8F,OAAOpE;MAAG,EAAA;;EAExE;AACF;;AC3BO,IAAM8F,mBAAmB,CAACC,UAAAA;AAC/B,QAAMC,uBAAuB3B,yBAAyB0B,KAAAA;AACtD,QAAME,eAAehD,iBAAiB8C,KAAAA;AACtC,QAAMG,eAAe9F,iBAAiB2F,KAAAA;AACtC,QAAMI,aAAaxD,eAAeoD,KAAAA;AAClC,aAAOxF,cAAAA,aACJ,CAAC6D,WAAAA;AACA,YAAQA,OAAOgC,WAAWvI,MAAI;MAC5B,KAAK;AACHmI,6BAAqB5B,OAAOgC,WAAWpC,KAAK;AAC5C;MACF,KAAK;AACH+B,cAAM5I,MAAMqF,OAAO4B,OAAOgC,WAAWpC;AACrC;MACF,KAAK;AACH,aAAKiC,aAAAA;AACL;MACF,KAAK;AACH,aAAKC,aAAAA;AACL;MACF,KAAK;AACH,aAAKC,WAAAA;AACL;MACF;AACEzE,oBAAAA,IAAInE,MAAM,uBAAuB6G,QAAAA;;;;;;IACrC;EACF,GACA;IAAC4B;IAAsBC;IAAcC;IAAcC;GAAW;AAElE;ACxCO,IAAME,kBAAkB,CAACC,eAAmC,CAAC,MAAC;AACnE,aAAOnH,cAAAA,SAAQ,UAAM4C,oBAAAA,QAA2BuE,YAAAA,GAAe,CAAA,CAAE;AACnE;ANYA,IAAMC,gBAAgB,CAACpJ,UAAAA;AACrB,QAAMqJ,iBAAiBvC,qBAAAA;AACvB,QAAMf,UAASH,aAAAA;AACf,QAAM0D,UAAMC,yCAAAA;AACZ,QAAMC,SAASzJ,aAAaC,KAAAA;AAC5B,QAAMqF,OAAOmD,WAAWxI,KAAAA;AACxB,SAAO;IACLgB,OAAO;SAAIqI,eAAerI;SAAU+E,QAAO/E;SAAUsI,IAAItI;SAAUwI,OAAOxI;SAAUqE,KAAKrE;;IACzFC,OAAO;SAAIoI,eAAepI;SAAU8E,QAAO9E;SAAUqI,IAAIrI;SAAUuI,OAAOvI;SAAUoE,KAAKpE;;EAC3F;AACF;AAEO,IAAMwI,gBAAgB,CAAC,EAAEpI,QAAQqI,MAAM1J,OAAOa,WAAU,MAAsB;AACnF,QAAM8I,eAAehB,iBAAiB;IAAE3I;IAAOqB;EAAO,CAAA;AACtD,QAAMuI,qBAAiBxG,cAAAA,aAAY,MAAMgG,cAAcpJ,KAAAA,GAAQ;IAACA;GAAM;AACtE,QAAM6J,WAAOC,qCAAeF,cAAAA;AAC5B,SACE,8BAAAG,QAAA,cAACC,OAAAA;IAAIN,MAAK;IAAOO,eAAWC,2DAAkCR,IAAAA;KAC5D,8BAAAK,QAAA,cAACI,mCAAAA;IAAkBC,WAAWV,SAAS,YAAY,eAAe;KAChE,8BAAAK,QAAA,cAACM,mCAAAA;IAAc,GAAGR;IAAMS,UAAUX;IAAcY,kBAAcC,+BAAiBnJ,MAAAA;KAC7E,8BAAA0I,QAAA,cAACU,kCAAAA;IAAY5J;;AAKvB;AOdO,IAAM6J,mBAAmB,CAAC,EAC/B7H,IACA8H,KACAV,WACAW,cACAC,YACAC,UACAC,WACAC,SACAC,YAAY,SAAQ,MACE;AACtB,QAAM,EAAEC,UAAS,QAAKC,kCAAAA;AACtB,QAAM,EAAEC,WAAWC,gBAAe,QAAKC,uCACrC,OAAO;IACLzI;IACA+H;IACAC,YAAY;MACVA;UACAU,+CAAsB;QACpBC,qBAAqB;QACrBC,eAAe;QACfC,aAAa;QACbC,cAAc;QACdC,eAAe;MACjB,CAAA;UACAC,+CAAsB;QACpBX;QACAY,oBAAoB;QACpBC,OAAO;UACL/H,SAAS;YAAEiG,WAAW+B;UAAgB;QACxC;MACF,CAAA;;MAEAC,mCAAWC,MAAM;QACf,eAAe;;UAEbC,WAAW;QACb;MACF,CAAA;MACAC,4CAAoBnB,SAAAA;UACpBoB,iCAAAA;;MAEAC,kBAAKC,KAAKC,mBAAOC,GAAGC,yCAAAA,CAAAA;;MAEpB;QACEC;YACAC,mCAAW;UAAEC,YAAY;QAAK,CAAA;;YAE9BC,sCAAa;UAAEC,UAAUpC,MAAM;gBAACqC,qCAAAA;cAAoB,CAAA;QAAG,CAAA;QACvDrC,MACI;UACEsC,6BAAQR,GAAG;YAAE9B;YAAKuC,MAAM,QAAQrK,EAAAA;UAAQ,CAAA;cACxCsK,6BAAAA;cACAC,+BAAAA;cACAC,8BAAQ;YAAEC,eAAeC,sBAAsBrC,SAAAA;UAAW,CAAA;YAE5D,CAAA;;MAENsC,OAAOC,yBAAAA;IACT1C;IACAD;EACF,IACA;IAACjI;IAAIgI;IAAYK;IAAWD;IAAWF;IAAWD;GAAS;AAG7D,SACEf,8BAAAA,QAAA,cAACC,OAAAA;IAAI0D,KAAKtC;IAAWuC,gBAAc3C,UAAU,YAAY;IAAYf;IAAuB,GAAGoB;;AAEnG;AAEA,IAAMkC,wBAAwB,CAACrC,cAAAA;AAC7B,QAAMgB,QAAQhB,cAAc,SAAS0C,8CAAwBC;AAE7D,QAAMC,gBAAgB,CAACC,UAAAA;AAErB,UAAMC,OAAOD,MAAME,SAAS,MAAA,IAAU,SAASF;AAC/C,UAAMG,WAAWF,QAAQG;AACzB,QAAI,CAACD,UAAU;AACb,aAAO;IACT;AAEA,UAAME,MAAMD,sBAAKH,IAAAA;AACjB,QAAI,OAAOI,QAAQ,YAAY;AAC7B,aAAO;IACT;AAEA,WAAOlC,MAAMmC,MAAM;MAACD;KAAI,KAAK;EAC/B;AAEA,SAAO,CAAC5J,SAAAA;AACN,UAAMwF,MAAMsE,SAASC,cAAc,KAAA;AACnCvE,QAAIC,YAAY;AAEhB,QAAIzF,KAAKgK,WAAWC,cAAc;AAChC,iBAAWC,QAAQlK,KAAKgK,UAAUC,cAAc;AAC9C,cAAME,OAAO3E,IAAI4E,YAAYN,SAASC,cAAc,MAAA,CAAA;AACpDI,aAAK1E,YAAY6D,cAAcY,KAAKV,IAAI;AACxCW,aAAKE,YAAYH,KAAKI;MACxB;IACF;AAEA,WAAO;MAAEC,KAAK/E;IAAI;EACpB;AACF;ARlHO,IAAMgF,kBAAkB,CAAC,EAC9BtF,MACA7I,YACAQ,QACA4N,WAAW;EAAEC,iBAAiB;AAAS,GACvCvE,IAAG,MACe;AAClB,QAAMwE,eAAWC,yBAAAA;AACjB,QAAM9N,YAAQC,YAAAA,UAASF,MAAAA;AAEvB,QAAMwJ,iBAAa7I,aAAAA,SACjB,MAAM;QACJqN,iCAAS;MACPC,UAAU,CAACR,SAAAA;AACT,YAAIzN,OAAOH,OAAOC,UAAUE,OAAOH,OAAOC,OAAO6C,YAAY8K,MAAM;AACjEzN,iBAAO2B,UAAU;QACnB;MACF;IACF,CAAA;QACAuM,6CAAqB;MACnB1M,IAAIxB,OAAOwB;MACXiM,MAAMzN,OAAOH,OAAOC,cAAUqO,+BAAkBnO,OAAOH,OAAOC,QAAQ;QAAC;OAAU;MACjFG;MACA6N;IACF,CAAA;KAEF;IAAC9N;IAAQA,OAAOH,OAAOC;IAAQG;IAAO6N;GAAS;AAGjD,QAAMnP,QAAQkJ,gBAAgB;IAAE7D,MAAM;EAAS,CAAA;AAC/ClD,iBAAe;IAAEnC;IAAOqB;EAAO,CAAA;AAE/B,SACE0I,6BAAAA,QAAA,cAAC0F,gCAAUC,SAAO;IAAC1E,SAAAA;KACjBjB,6BAAAA,QAAA,cAACN,eAAAA;IAAczJ;IAAc0J;IAAYrI;MACzC0I,6BAAAA,QAAA,cAACC,OAAAA;IAAIN,MAAK;IAAOO,eAAW0F,0BAAG,kEAAkE9O,UAAAA;KAC9Fb,MAAMqF,SAAS,WACd0E,6BAAAA,QAAA,cAACW,kBAAAA;IACC7H,IAAIxB,OAAOwB;IACX8H;IACAC,cAAcvJ,OAAOH,QAAQC,QAAQ6C;IACrC6G;IACAZ,eAAW2F,yDAAiClG,IAAAA;IAC5CuB,WAAWgE,SAASC;IACpBlE,SAAAA;MAIHhL,MAAMqF,SAAS,YAAY0E,6BAAAA,QAAA,cAAC8F,kCAAAA;IAAW9O,aAAaf,MAAMe;;AAInE;AAEA,IAAA,0BAAeiO;",
6
+ "names": ["import_react", "import_echo", "import_react_ui_editor", "import_react_ui", "import_react_ui_menu", "import_log", "import_functions", "import_live_object", "createDeploy", "state", "errorItem", "createMenuAction", "label", "error", "ns", "SCRIPT_PLUGIN", "icon", "hidden", "deployAction", "type", "deploying", "disabled", "classNames", "copyAction", "functionUrl", "nodes", "edges", "source", "target", "useDeployDeps", "script", "space", "getSpace", "fn", "useQuery", "Filter", "schema", "FunctionType", "client", "useClient", "existingFunctionUrl", "useMemo", "getUserFunctionUrlInMetadata", "getMeta", "useDeployState", "useEffect", "getInvocationUrl", "config", "values", "runtime", "services", "edge", "url", "spaceId", "id", "deployed", "Boolean", "changed", "useDeployHandler", "t", "useTranslation", "useCallback", "undefined", "existingFunctionId", "split", "at", "bundler", "Bundler", "platform", "sandboxedModules", "remoteModules", "buildResult", "bundle", "content", "functionId", "version", "meta", "uploadWorkerFunction", "incrementSemverPatch", "Error", "log", "info", "deployedFunction", "db", "add", "create", "name", "makeRef", "description", "trim", "verbose", "inputSchema", "outputSchema", "setUserFunctionUrlInMetadata", "view", "err", "catch", "useCopyHandler", "navigator", "clipboard", "writeText", "createFormat", "formatAction", "useFormatHandler", "format", "parser", "plugins", "prettierPluginEstree", "prettierPluginTypescript", "semi", "singleQuote", "createTemplateSelectGroup", "createMenuItemGroup", "variant", "createTemplateSelectActions", "templates", "map", "template", "value", "createTemplateSelect", "templateSelectGroup", "templateSelectActions", "action", "useTemplateSelectHandler", "templateId", "find", "metaKeys", "keys", "oldPresetIndex", "findIndex", "key", "FUNCTIONS_PRESET_META_KEY", "splice", "presetId", "push", "views", "editor", "debug", "createViewGroupItem", "applyActive", "createViewActions", "Object", "entries", "viewType", "checked", "createView", "viewGroupItem", "viewActions", "useToolbarAction", "props", "handleTemplateSelect", "handleFormat", "handleDeploy", "handleCopy", "properties", "useToolbarState", "initialState", "createToolbar", "templateSelect", "gap", "createGapSeparator", "deploy", "ScriptToolbar", "role", "handleAction", "toolbarCreator", "menu", "useMenuActions", "React", "div", "className", "stackItemContentToolbarClassNames", "ElevationProvider", "elevation", "MenuProvider", "onAction", "attendableId", "fullyQualifiedId", "ToolbarMenu", "TypescriptEditor", "env", "initialValue", "extensions", "scrollTo", "selection", "toolbar", "inputMode", "themeMode", "useThemeContext", "parentRef", "focusAttributes", "useTextEditor", "createBasicExtensions", "highlightActiveLine", "indentWithTab", "lineNumbers", "lineWrapping", "scrollPastEnd", "createThemeExtensions", "syntaxHighlighting", "slots", "editorFullWidth", "EditorView", "theme", "marginTop", "InputModeExtensions", "folding", "Prec", "high", "keymap", "of", "continueKeymap", "editorMonospace", "javascript", "typescript", "autocomplete", "override", "tsAutocomplete", "tsFacet", "path", "tsSync", "tsLinter", "tsHover", "renderTooltip", "createTooltipRenderer", "filter", "isNonNullable", "ref", "data-toolbar", "oneDarkHighlightStyle", "defaultHighlightStyle", "classFromKind", "_kind", "kind", "endsWith", "validTag", "tags", "tag", "style", "document", "createElement", "quickInfo", "displayParts", "part", "span", "appendChild", "innerText", "text", "dom", "ScriptContainer", "settings", "editorInputMode", "identity", "useIdentity", "listener", "onChange", "createDataExtensions", "createDocAccessor", "StackItem", "Content", "mx", "stackItemContentEditorClassNames", "DebugPanel"]
7
+ }