@theoremjs/studio 0.0.0-stage → 0.3.2

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 (473) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +295 -2
  3. package/agreement.d.ts +14 -0
  4. package/agreement.js +80 -0
  5. package/asks.d.ts +47 -0
  6. package/asks.js +54 -0
  7. package/browser-connection.d.ts +49 -0
  8. package/browser-connection.js +215 -0
  9. package/browser-engine.d.ts +11 -0
  10. package/browser-engine.js +11 -0
  11. package/browser-execution.d.ts +6 -0
  12. package/browser-execution.js +18 -0
  13. package/browser-live.d.ts +4 -0
  14. package/browser-live.js +132 -0
  15. package/browser-transport.d.ts +33 -0
  16. package/browser-transport.js +229 -0
  17. package/browser.d.ts +4 -0
  18. package/browser.js +4 -0
  19. package/canonical.d.ts +10 -0
  20. package/canonical.js +25 -0
  21. package/compile-workspace.d.ts +28 -0
  22. package/compile-workspace.js +295 -0
  23. package/compile.d.ts +65 -0
  24. package/compile.js +1605 -0
  25. package/concierge-demo.d.ts +17 -0
  26. package/concierge-demo.js +1230 -0
  27. package/conversation-key.d.ts +5 -0
  28. package/conversation-key.js +10 -0
  29. package/decision-example-images.d.ts +30 -0
  30. package/decision-example-images.js +30 -0
  31. package/deno.json +3 -0
  32. package/draft.d.ts +407 -0
  33. package/draft.js +505 -0
  34. package/editors.d.ts +29 -0
  35. package/editors.js +51 -0
  36. package/example-embedding-files.d.ts +11 -0
  37. package/example-embedding-files.js +20 -0
  38. package/example.d.ts +36 -0
  39. package/example.js +357 -0
  40. package/guardrail-probe.d.ts +100 -0
  41. package/guardrail-probe.js +722 -0
  42. package/held-credentials.d.ts +28 -0
  43. package/held-credentials.js +87 -0
  44. package/installed.mjs +40 -0
  45. package/lent-keys.d.ts +122 -0
  46. package/lent-keys.js +47 -0
  47. package/line-diff.d.ts +15 -0
  48. package/line-diff.js +41 -0
  49. package/live-connection.d.ts +22 -0
  50. package/live-connection.js +27 -0
  51. package/live-session-bridge.d.ts +15 -0
  52. package/live-session-bridge.js +202 -0
  53. package/map-line.d.ts +19 -0
  54. package/map-line.js +42 -0
  55. package/map.d.ts +154 -0
  56. package/map.js +525 -0
  57. package/media-accept.d.ts +19 -0
  58. package/media-accept.js +65 -0
  59. package/mod.d.ts +39 -0
  60. package/mod.js +33 -0
  61. package/origins.d.ts +52 -0
  62. package/origins.js +165 -0
  63. package/package.json +85 -4
  64. package/page/assets/Banner-BISz3nXA.js +2 -0
  65. package/page/assets/BottomSheet-BwfBDtje.js +1 -0
  66. package/page/assets/Card-Lp-0P5eL.js +1 -0
  67. package/page/assets/CardWall-CBRLdDZW.js +1 -0
  68. package/page/assets/Center-nHS1JSux.js +1 -0
  69. package/page/assets/CheckboxInput-Cj5pk-KI.js +2 -0
  70. package/page/assets/CodeBlock-C7XJ4ioE.js +51 -0
  71. package/page/assets/CollapsibleGroup-N7_SOjbm.js +2 -0
  72. package/page/assets/ContextMenu-CBu9H-9H.js +2 -0
  73. package/page/assets/DateInput-BGrQ5tPC.js +1 -0
  74. package/page/assets/Dialog-DELWQo-v.js +1 -0
  75. package/page/assets/EmptyState-C8W4JKBZ.js +1 -0
  76. package/page/assets/HoverCard-D1Y1ltWQ.js +1 -0
  77. package/page/assets/Icon-JrysT8aU.js +3 -0
  78. package/page/assets/IconAlertTriangle-BqAEqqdU.js +1 -0
  79. package/page/assets/IconButton-DlOGzJIX.js +1 -0
  80. package/page/assets/IconEye-BB5aY-wQ.js +1 -0
  81. package/page/assets/IconFileText-6zOFKKrF.js +1 -0
  82. package/page/assets/IconSearch-BTx66a40.js +1 -0
  83. package/page/assets/IconShield-DDOh7Gr5.js +1 -0
  84. package/page/assets/ItemSwipeLayer-Ckn4X6h9.js +1 -0
  85. package/page/assets/PaneState-BvA2tLQg.js +1 -0
  86. package/page/assets/PaneState-eUzUkNE8.css +1 -0
  87. package/page/assets/ScrollableArea-Ckugdj1N.js +1 -0
  88. package/page/assets/Section-DJ97F7QE.js +1 -0
  89. package/page/assets/SegmentedControlItem-h-aaXzyS.js +1 -0
  90. package/page/assets/SidePanel-BL32abk8.js +1 -0
  91. package/page/assets/StackItem-CQviqAfM.js +1 -0
  92. package/page/assets/Text-bum6zWWx.js +2 -0
  93. package/page/assets/TimestampHoverCard-DQIG0RZF.js +1 -0
  94. package/page/assets/ToolResultCharts-CgshSv9Q.js +1 -0
  95. package/page/assets/Tooltip-BH9xiRMl.js +1 -0
  96. package/page/assets/TraceInspector-_yZiz05W.js +1 -0
  97. package/page/assets/TraceOverview-BPO-HIYK.js +57 -0
  98. package/page/assets/VStack-CkVMcNiK.js +1 -0
  99. package/page/assets/_virtual_studio-type-sources-ByxqQaOG.js +12936 -0
  100. package/page/assets/arrive-DvbqpeRS.js +1 -0
  101. package/page/assets/browser-engine-CYq9DQAM.js +9 -0
  102. package/page/assets/browser-transport-D-2jDYe7.js +47 -0
  103. package/page/assets/codicon-DF1abBS2.ttf +0 -0
  104. package/page/assets/compile-egress-BSxOdX4K.js +23 -0
  105. package/page/assets/container.stylex-BmOi-8DQ.js +1 -0
  106. package/page/assets/createReactComponent-CZwsv6DD.js +1 -0
  107. package/page/assets/decision-example-images-CZGr7YIT.js +1 -0
  108. package/page/assets/devWarning-DxuplmRl.js +1 -0
  109. package/page/assets/editor-DjpsE8to.css +1 -0
  110. package/page/assets/editor.api-Cd3ViPQa.js +908 -0
  111. package/page/assets/editor.worker-6GY8RhDc.js +1 -0
  112. package/page/assets/editor.worker-BmdWdrHZ.js +33 -0
  113. package/page/assets/editors-BJX_S59A.js +1 -0
  114. package/page/assets/egress-automata-B5ZGE1mT.js +1 -0
  115. package/page/assets/embedding-space-view-CfQBPDxD.js +140 -0
  116. package/page/assets/encode-files-Bc3HJyAh.js +1 -0
  117. package/page/assets/export-agent-C3yyzXH8.js +43 -0
  118. package/page/assets/figtree-latin-400-normal-BD4aNku5.woff +0 -0
  119. package/page/assets/figtree-latin-400-normal-g7Dtegnw.woff2 +0 -0
  120. package/page/assets/figtree-latin-500-normal-BWnGEVsr.woff2 +0 -0
  121. package/page/assets/figtree-latin-500-normal-B_yy1phn.woff +0 -0
  122. package/page/assets/figtree-latin-600-normal-BM_oTo4n.woff +0 -0
  123. package/page/assets/figtree-latin-600-normal-Cv_xCTDl.woff2 +0 -0
  124. package/page/assets/figtree-latin-700-normal-BCCt2T1q.woff +0 -0
  125. package/page/assets/figtree-latin-700-normal-th6qEP7c.woff2 +0 -0
  126. package/page/assets/focusOutline.stylex-BT0kfa4t.js +1 -0
  127. package/page/assets/focusableSelector-DXZeMU85.js +1 -0
  128. package/page/assets/groupStyles-C7Ter7zC.js +1 -0
  129. package/page/assets/guardrail-tester-Gut5xK4a.js +9 -0
  130. package/page/assets/host-patterns-C9RMP16Q.js +1 -0
  131. package/page/assets/index-CvvmFKgS.js +105 -0
  132. package/page/assets/index-DOaHlqBo.css +1 -0
  133. package/page/assets/isRtlElement-BG33-k_H.js +1 -0
  134. package/page/assets/labels-provider-4TIWDvsE.js +3 -0
  135. package/page/assets/lent-keys-C32ems-I.js +1 -0
  136. package/page/assets/live-ingress-lDUGPwth.js +1 -0
  137. package/page/assets/live-messages-CnkL4GWi.js +1 -0
  138. package/page/assets/mergeProps-ptS-gIMz.js +1 -0
  139. package/page/assets/padding.stylex-B76907Zf.js +1 -0
  140. package/page/assets/preload-helper-DpV6A1kQ.js +1 -0
  141. package/page/assets/reader-BOCCYaRp.js +7 -0
  142. package/page/assets/register-CDgivxvX.js +2 -0
  143. package/page/assets/rolldown-runtime-hePW80VL.js +1 -0
  144. package/page/assets/schemas-BQ9Jydzb.js +56 -0
  145. package/page/assets/shaped-data-BcarWqd5.js +16 -0
  146. package/page/assets/sharedResizeObserver-4U9Xq5Oq.js +1 -0
  147. package/page/assets/stub-DhdcU_Ew.js +471 -0
  148. package/page/assets/studio-code-pane-C_SAbcOa.js +8 -0
  149. package/page/assets/studio-console-DZwlEsvr.js +3 -0
  150. package/page/assets/studio-decision-B0FnCAXA.js +1 -0
  151. package/page/assets/studio-embedding-CmA51HVo.js +2 -0
  152. package/page/assets/studio-host-console-By7hqu2l.js +2 -0
  153. package/page/assets/studio-live-BrcVQcyV.js +1 -0
  154. package/page/assets/studio-map-B_xSia-z.js +1 -0
  155. package/page/assets/studio-map-Bb06Tw1F.css +1 -0
  156. package/page/assets/studio-monaco-CbKf90i6.css +1 -0
  157. package/page/assets/studio-monaco-xfyfezQS.js +34 -0
  158. package/page/assets/studio-ts.worker-B-EXG4Sv.js +67741 -0
  159. package/page/assets/studio-ts.worker-BXtW3z-O.js +1 -0
  160. package/page/assets/studio-type-checker-BOvxudki.js +23 -0
  161. package/page/assets/themeProps-3IqahpCr.js +1 -0
  162. package/page/assets/tokens.stylex-DkHf0P9C.js +1 -0
  163. package/page/assets/tool-schema-idaOe2nI.js +18 -0
  164. package/page/assets/trace-patterns-DnYJa0nI.js +1 -0
  165. package/page/assets/trace-record-C3zNksA_.js +1 -0
  166. package/page/assets/trace-schema-9CdEyG6Q.js +1 -0
  167. package/page/assets/tree-DqyAMsbI.js +3 -0
  168. package/page/assets/turn-client-Du3Um3Mg.js +2 -0
  169. package/page/assets/types-BhfXQCLx.js +1 -0
  170. package/page/assets/typescript-20GgZ8PJ.js +1 -0
  171. package/page/assets/use-one-call-Hcs8YBp1.js +1 -0
  172. package/page/assets/useAdaptivePresentation-BzmPCddb.js +1 -0
  173. package/page/assets/useClipboard-BgGRxRMJ.js +1 -0
  174. package/page/assets/useContainerReveal-BFy8N_QU.js +1 -0
  175. package/page/assets/useDevWarning-Z9SoixOP.js +1 -0
  176. package/page/assets/useLayerDismissal-B_G7IWpC.js +1 -0
  177. package/page/assets/useMediaQuery-BCT0NUeZ.js +1 -0
  178. package/page/assets/useScrollLock-Dyf6PHJt.js +1 -0
  179. package/page/assets/useScrollableArea-0NzdiBCq.js +1 -0
  180. package/page/assets/useTooltip-CJM_xhLB.js +1 -0
  181. package/page/assets/workspace-DZALqEDX.js +1 -0
  182. package/page/assets/zip-DTcEfps6.js +1 -0
  183. package/page/index.html +90 -0
  184. package/page.mjs +49 -0
  185. package/people.d.ts +87 -0
  186. package/people.js +110 -0
  187. package/policy.d.ts +43 -0
  188. package/policy.js +102 -0
  189. package/ports.d.mts +32 -0
  190. package/ports.mjs +85 -0
  191. package/probe-battery.d.ts +13 -0
  192. package/probe-battery.js +404 -0
  193. package/providers.d.ts +149 -0
  194. package/providers.js +306 -0
  195. package/read-source.d.ts +48 -0
  196. package/read-source.js +1301 -0
  197. package/read-steps.d.ts +23 -0
  198. package/read-steps.js +2 -0
  199. package/reader.d.ts +11 -0
  200. package/reader.js +11 -0
  201. package/registrations.d.ts +83 -0
  202. package/registrations.js +1 -0
  203. package/requirements.d.ts +22 -0
  204. package/requirements.js +38 -0
  205. package/run-payload-core.d.ts +28 -0
  206. package/run-payload-core.js +123 -0
  207. package/run-payload.d.ts +32 -0
  208. package/run-payload.js +26 -0
  209. package/runtime-scope.d.ts +84 -0
  210. package/runtime-scope.js +308 -0
  211. package/runtime.d.ts +84 -0
  212. package/runtime.js +387 -0
  213. package/section-notes.d.ts +33 -0
  214. package/section-notes.js +38 -0
  215. package/serve-page.mjs +96 -0
  216. package/server/draft-decide.d.ts +72 -0
  217. package/server/draft-decide.js +111 -0
  218. package/server/draft-embedding.d.ts +3 -0
  219. package/server/draft-embedding.js +35 -0
  220. package/server/draft-handler.d.ts +82 -0
  221. package/server/draft-handler.js +213 -0
  222. package/server/draft-probe.d.ts +14 -0
  223. package/server/draft-probe.js +61 -0
  224. package/server/draft-replies.d.ts +22 -0
  225. package/server/draft-replies.js +46 -0
  226. package/server/edited-session.d.ts +28 -0
  227. package/server/edited-session.js +83 -0
  228. package/server/edits.d.ts +38 -0
  229. package/server/edits.js +195 -0
  230. package/server/handler.d.ts +133 -0
  231. package/server/handler.js +598 -0
  232. package/server/lent-draft.d.ts +19 -0
  233. package/server/lent-draft.js +23 -0
  234. package/server/live.d.ts +15 -0
  235. package/server/live.js +96 -0
  236. package/server/open-editor.d.ts +63 -0
  237. package/server/open-editor.js +115 -0
  238. package/server/origins.d.ts +18 -0
  239. package/server/origins.js +330 -0
  240. package/server/project-source.d.ts +208 -0
  241. package/server/project-source.js +1042 -0
  242. package/server/project.d.ts +22 -0
  243. package/server/project.js +56 -0
  244. package/server/run-traces.d.ts +20 -0
  245. package/server/run-traces.js +96 -0
  246. package/server/save-new.d.ts +29 -0
  247. package/server/save-new.js +514 -0
  248. package/server/save-plan.d.ts +46 -0
  249. package/server/save-plan.js +1134 -0
  250. package/server/save-remove.d.ts +21 -0
  251. package/server/save-remove.js +528 -0
  252. package/server/save-session.d.ts +96 -0
  253. package/server/save-session.js +418 -0
  254. package/server/save-wire.d.ts +235 -0
  255. package/server/save-wire.js +8 -0
  256. package/server/save.d.ts +52 -0
  257. package/server/save.js +209 -0
  258. package/server/serve.d.ts +23 -0
  259. package/server/serve.js +413 -0
  260. package/server/test-connection.d.ts +17 -0
  261. package/server/test-connection.js +362 -0
  262. package/server/test-key.d.ts +2 -0
  263. package/server/test-key.js +83 -0
  264. package/server/watch.d.ts +28 -0
  265. package/server/watch.js +93 -0
  266. package/server/zod-edit.d.ts +74 -0
  267. package/server/zod-edit.js +558 -0
  268. package/server.d.ts +8 -0
  269. package/server.js +8 -0
  270. package/setups.mjs +170 -0
  271. package/shared-carry.d.ts +114 -0
  272. package/shared-carry.js +523 -0
  273. package/shared-settings.d.ts +34 -0
  274. package/shared-settings.js +70 -0
  275. package/source.d.ts +75 -0
  276. package/source.js +414 -0
  277. package/start.mjs +169 -0
  278. package/stream-lines.d.ts +9 -0
  279. package/stream-lines.js +27 -0
  280. package/stub.d.ts +6 -0
  281. package/stub.js +33 -0
  282. package/surface.d.ts +53 -0
  283. package/surface.js +631 -0
  284. package/system-markup.d.ts +20 -0
  285. package/system-markup.js +51 -0
  286. package/tool-schema.d.ts +23 -0
  287. package/tool-schema.js +69 -0
  288. package/tools.d.ts +16 -0
  289. package/tools.js +91 -0
  290. package/traces.d.ts +24 -0
  291. package/traces.js +29 -0
  292. package/transport.d.ts +57 -0
  293. package/transport.js +187 -0
  294. package/tree.d.ts +32 -0
  295. package/tree.js +83 -0
  296. package/types.d.ts +62 -0
  297. package/types.js +6 -0
  298. package/ui/acting-as-button.d.ts +2 -0
  299. package/ui/acting-as-button.js +16 -0
  300. package/ui/add-provider.d.ts +13 -0
  301. package/ui/add-provider.js +20 -0
  302. package/ui/boot-mark.css +53 -0
  303. package/ui/boot-mark.d.ts +19 -0
  304. package/ui/boot-mark.js +128 -0
  305. package/ui/boot-paint.d.ts +8 -0
  306. package/ui/boot-paint.js +8 -0
  307. package/ui/brand-icons.d.ts +57 -0
  308. package/ui/brand-icons.js +148 -0
  309. package/ui/built/theme.css +830 -0
  310. package/ui/built/theme.css.d.ts +9 -0
  311. package/ui/built/theorem-studio.d.ts +13 -0
  312. package/ui/built/theorem-studio.js +705 -0
  313. package/ui/built/theorem-studio.variants.d.ts +28 -0
  314. package/ui/code/monaco-contributions.d.ts +45 -0
  315. package/ui/code/studio-code.d.ts +7 -0
  316. package/ui/code/studio-code.js +253 -0
  317. package/ui/code/studio-monaco.d.ts +44 -0
  318. package/ui/code/studio-monaco.js +48 -0
  319. package/ui/code/studio-ts.worker.d.ts +1 -0
  320. package/ui/code/studio-ts.worker.js +16 -0
  321. package/ui/code/studio-type-checker.d.ts +12 -0
  322. package/ui/code/studio-type-checker.js +308 -0
  323. package/ui/code/studio-type-sources.d.ts +26 -0
  324. package/ui/confirm-write.d.ts +12 -0
  325. package/ui/confirm-write.js +45 -0
  326. package/ui/diff-block.d.ts +21 -0
  327. package/ui/diff-block.js +17 -0
  328. package/ui/figtree.css +59 -0
  329. package/ui/file-place.d.ts +4 -0
  330. package/ui/file-place.js +26 -0
  331. package/ui/guardrail-tester.d.ts +18 -0
  332. package/ui/guardrail-tester.js +248 -0
  333. package/ui/inspector-context.d.ts +119 -0
  334. package/ui/inspector-context.js +84 -0
  335. package/ui/inspector.d.ts +247 -0
  336. package/ui/inspector.js +284 -0
  337. package/ui/lib/acting-as.d.ts +25 -0
  338. package/ui/lib/acting-as.js +90 -0
  339. package/ui/lib/boot-sequence.d.ts +32 -0
  340. package/ui/lib/boot-sequence.js +57 -0
  341. package/ui/lib/export-agent.d.ts +11 -0
  342. package/ui/lib/export-agent.js +335 -0
  343. package/ui/lib/facet-icons.d.ts +20 -0
  344. package/ui/lib/facet-icons.js +21 -0
  345. package/ui/lib/panel-motion.d.ts +8 -0
  346. package/ui/lib/panel-motion.js +74 -0
  347. package/ui/lib/project-address.d.ts +14 -0
  348. package/ui/lib/project-address.js +24 -0
  349. package/ui/lib/project-starting.d.ts +13 -0
  350. package/ui/lib/project-starting.js +30 -0
  351. package/ui/lib/project-traces.d.ts +17 -0
  352. package/ui/lib/project-traces.js +54 -0
  353. package/ui/lib/read-map.d.ts +30 -0
  354. package/ui/lib/read-map.js +173 -0
  355. package/ui/lib/read-progress.d.ts +14 -0
  356. package/ui/lib/read-progress.js +12 -0
  357. package/ui/lib/refusal-lines.d.ts +3 -0
  358. package/ui/lib/refusal-lines.js +8 -0
  359. package/ui/lib/studio-activity.d.ts +5 -0
  360. package/ui/lib/studio-activity.js +17 -0
  361. package/ui/lib/studio-console.d.ts +27 -0
  362. package/ui/lib/studio-console.js +9 -0
  363. package/ui/lib/studio-conversation.d.ts +20 -0
  364. package/ui/lib/studio-conversation.js +130 -0
  365. package/ui/lib/studio-examples.d.ts +31 -0
  366. package/ui/lib/studio-examples.js +25 -0
  367. package/ui/lib/studio-labels.d.ts +6 -0
  368. package/ui/lib/studio-labels.js +13 -0
  369. package/ui/lib/studio-map-kept.d.ts +17 -0
  370. package/ui/lib/studio-map-kept.js +48 -0
  371. package/ui/lib/studio-open.d.ts +22 -0
  372. package/ui/lib/studio-open.js +54 -0
  373. package/ui/lib/studio-page.d.ts +33 -0
  374. package/ui/lib/studio-page.js +121 -0
  375. package/ui/lib/studio-prefs.d.ts +26 -0
  376. package/ui/lib/studio-prefs.js +87 -0
  377. package/ui/lib/studio-project.d.ts +106 -0
  378. package/ui/lib/studio-project.js +177 -0
  379. package/ui/lib/studio-restore.d.ts +49 -0
  380. package/ui/lib/studio-restore.js +251 -0
  381. package/ui/lib/studio-run-open.d.ts +15 -0
  382. package/ui/lib/studio-run-open.js +16 -0
  383. package/ui/lib/studio-session.d.ts +34 -0
  384. package/ui/lib/studio-session.js +17 -0
  385. package/ui/lib/studio-settings.d.ts +15 -0
  386. package/ui/lib/studio-settings.js +48 -0
  387. package/ui/lib/studio-store.d.ts +64 -0
  388. package/ui/lib/studio-store.js +391 -0
  389. package/ui/lib/studio-watch.d.ts +12 -0
  390. package/ui/lib/studio-watch.js +27 -0
  391. package/ui/lib/tab-fills.d.ts +6 -0
  392. package/ui/lib/tab-fills.js +14 -0
  393. package/ui/lib/tool-credentials.d.ts +3 -0
  394. package/ui/lib/tool-credentials.js +23 -0
  395. package/ui/lib/tool-probe.d.ts +19 -0
  396. package/ui/lib/tool-probe.js +104 -0
  397. package/ui/lib/type-icons.d.ts +35 -0
  398. package/ui/lib/type-icons.js +38 -0
  399. package/ui/lib/when-idle.d.ts +5 -0
  400. package/ui/lib/when-idle.js +14 -0
  401. package/ui/lib/zip.d.ts +5 -0
  402. package/ui/lib/zip.js +8 -0
  403. package/ui/map-token.css +11 -0
  404. package/ui/map-token.d.ts +17 -0
  405. package/ui/map-token.js +29 -0
  406. package/ui/mcp-icon.d.ts +6 -0
  407. package/ui/mcp-icon.js +8 -0
  408. package/ui/motion.css +113 -0
  409. package/ui/pan.d.ts +32 -0
  410. package/ui/pan.js +90 -0
  411. package/ui/profile-editor.d.ts +33 -0
  412. package/ui/profile-editor.js +2638 -0
  413. package/ui/provider-editor.d.ts +15 -0
  414. package/ui/provider-editor.js +92 -0
  415. package/ui/read-map.css +48 -0
  416. package/ui/read-map.d.ts +7 -0
  417. package/ui/read-map.js +163 -0
  418. package/ui/refusal-detail.d.ts +4 -0
  419. package/ui/refusal-detail.js +21 -0
  420. package/ui/shared-change.d.ts +9 -0
  421. package/ui/shared-change.js +28 -0
  422. package/ui/shell-motion.css +121 -0
  423. package/ui/shell-motion.d.ts +73 -0
  424. package/ui/shell-motion.js +194 -0
  425. package/ui/studio-code-pane.d.ts +19 -0
  426. package/ui/studio-code-pane.js +44 -0
  427. package/ui/studio-compare.d.ts +80 -0
  428. package/ui/studio-compare.js +326 -0
  429. package/ui/studio-conflicts.d.ts +17 -0
  430. package/ui/studio-conflicts.js +87 -0
  431. package/ui/studio-connection.d.ts +64 -0
  432. package/ui/studio-connection.js +286 -0
  433. package/ui/studio-decision.d.ts +6 -0
  434. package/ui/studio-decision.js +49 -0
  435. package/ui/studio-embedding.d.ts +6 -0
  436. package/ui/studio-embedding.js +30 -0
  437. package/ui/studio-host-console.d.ts +6 -0
  438. package/ui/studio-host-console.js +17 -0
  439. package/ui/studio-host.d.ts +73 -0
  440. package/ui/studio-host.js +12 -0
  441. package/ui/studio-live.d.ts +17 -0
  442. package/ui/studio-live.js +26 -0
  443. package/ui/studio-map.css +273 -0
  444. package/ui/studio-map.d.ts +17 -0
  445. package/ui/studio-map.js +397 -0
  446. package/ui/studio-nav.d.ts +24 -0
  447. package/ui/studio-nav.js +17 -0
  448. package/ui/studio-no-project.d.ts +5 -0
  449. package/ui/studio-no-project.js +9 -0
  450. package/ui/studio-run.css +76 -0
  451. package/ui/studio-run.d.ts +14 -0
  452. package/ui/studio-run.js +119 -0
  453. package/ui/studio-runner.d.ts +45 -0
  454. package/ui/studio-runner.js +187 -0
  455. package/ui/studio-save.d.ts +49 -0
  456. package/ui/studio-save.js +307 -0
  457. package/ui/studio-screen.d.ts +61 -0
  458. package/ui/studio-screen.js +2078 -0
  459. package/ui/studio-settings.d.ts +31 -0
  460. package/ui/studio-settings.js +288 -0
  461. package/ui/studio-shell.css +27 -0
  462. package/ui/studio-shell.d.ts +43 -0
  463. package/ui/studio-shell.js +87 -0
  464. package/ui/studio-theme.d.ts +7 -0
  465. package/ui/studio-theme.js +94 -0
  466. package/ui/studio.css +427 -0
  467. package/ui/theorem-mark.css +84 -0
  468. package/ui/theorem-mark.d.ts +22 -0
  469. package/ui/theorem-mark.js +21 -0
  470. package/vite.d.mts +30 -0
  471. package/vite.mjs +277 -0
  472. package/workspace.d.ts +230 -0
  473. package/workspace.js +1054 -0
package/ui/studio.css ADDED
@@ -0,0 +1,427 @@
1
+ /*
2
+ * The studio screen's own rules: the tree, the phone sheets and the few layout classes its editors
3
+ * use. Every look comes from Astryx and its theme tokens, which the host loads.
4
+ */
5
+
6
+ /* A box that takes all the room its parent gives: the screen and the code view. */
7
+ .studio-fill {
8
+ height: 100%;
9
+ width: 100%;
10
+ }
11
+
12
+ /* The guardrail examples scroll sideways with no bar under them. */
13
+ .scrollbar-none {
14
+ scrollbar-width: none;
15
+ }
16
+
17
+ /* A criterion's label keeps a fixed share of its row, so the texts beside them line up. */
18
+ .criterion-label {
19
+ flex: 0 0 38%;
20
+ min-width: 0;
21
+ }
22
+
23
+ /*
24
+ * A studio tree row's add or remove button shows on hover or keyboard focus, fading in,
25
+ * so the tree reads as names at rest. Without hover (touch), it always shows.
26
+ */
27
+ .studio-tree-row {
28
+ position: relative;
29
+ }
30
+
31
+ /* Out of the row's flow, so it neither heightens the row nor narrows the label at rest. */
32
+ .studio-tree-action {
33
+ position: absolute;
34
+ inset-inline-end: var(--spacing-1);
35
+ top: 50%;
36
+ translate: 0 -50%;
37
+ display: inline-flex;
38
+ opacity: 0;
39
+ transition: opacity var(--duration-fast) var(--ease-standard);
40
+ }
41
+
42
+ .studio-tree-row:hover .studio-tree-action,
43
+ .studio-tree-row:has(:focus-visible) .studio-tree-action {
44
+ opacity: 1;
45
+ }
46
+
47
+ @media (hover: none) {
48
+ .studio-tree-action {
49
+ opacity: 1;
50
+ }
51
+ }
52
+
53
+ /*
54
+ * The button sits over the label's end rather than beside it, so it never widens the row; the
55
+ * label fades out beneath it instead of being pushed along.
56
+ */
57
+ @media (hover: none) {
58
+ .studio-tree-row > button:not([data-tree-toggle]) {
59
+ mask-image: linear-gradient(to left, transparent var(--spacing-6), #000 var(--spacing-10));
60
+ }
61
+ }
62
+
63
+ .studio-tree-row:is(:hover, :has(:focus-visible)) > button:not([data-tree-toggle]) {
64
+ mask-image: linear-gradient(to left, transparent var(--spacing-6), #000 var(--spacing-10));
65
+ }
66
+
67
+ /* A row with two buttons fades a button's width further in. */
68
+ .studio-tree-row:has(.studio-tree-action > :nth-child(2)):is(:hover, :has(:focus-visible))
69
+ > button:not([data-tree-toggle]) {
70
+ mask-image: linear-gradient(
71
+ to left,
72
+ transparent calc(var(--spacing-6) + var(--spacing-8)),
73
+ #000 calc(var(--spacing-10) + var(--spacing-8))
74
+ );
75
+ }
76
+
77
+ /* A list row's badges stay on one line: past the field's width they end in an ellipsis beside the
78
+ count, rather than wrapping the count out of the field. */
79
+ .inspector-list span:has(> .astryx-badge) {
80
+ flex-wrap: nowrap;
81
+ min-width: 0;
82
+ }
83
+
84
+ /*
85
+ * Controls the project's files set in code: the fieldset is the lock, with no box of its own, and
86
+ * it greys what it holds. A lock inside a lock greys once.
87
+ */
88
+ .inspector-set-in-code {
89
+ border: 0;
90
+ margin: 0;
91
+ min-inline-size: 0;
92
+ opacity: 0.75;
93
+ padding: 0;
94
+ pointer-events: none;
95
+ }
96
+
97
+ .inspector-set-in-code .inspector-set-in-code {
98
+ opacity: 1;
99
+ }
100
+
101
+ /*
102
+ * Where a value set in code comes from: the field status's box under the control, in grey since
103
+ * nothing is wrong, held to one line. The open button sits inside the box's own padding.
104
+ */
105
+ .inspector-origin {
106
+ align-items: center;
107
+ background: var(--color-background-muted);
108
+ border-radius: var(--radius-element);
109
+ color: var(--color-text-secondary);
110
+ display: flex;
111
+ font-size: var(--text-supporting-size);
112
+ gap: var(--spacing-1);
113
+ line-height: var(--text-supporting-leading);
114
+ min-width: 0;
115
+ padding-block: var(--spacing-1);
116
+ padding-inline: var(--spacing-2);
117
+ }
118
+
119
+ /* The hover card's trigger wraps the line inline: it takes the row's width instead. */
120
+ .inspector-origin-trigger {
121
+ display: flex;
122
+ min-width: 0;
123
+ }
124
+
125
+ /* The line is the way to its file: a button that looks like the note it is. */
126
+ button.inspector-origin {
127
+ border: 0;
128
+ cursor: pointer;
129
+ font-family: inherit;
130
+ text-align: start;
131
+ width: 100%;
132
+ }
133
+
134
+ button.inspector-origin:hover {
135
+ color: var(--color-text-primary);
136
+ }
137
+
138
+ .inspector-origin-text {
139
+ flex: 1;
140
+ min-width: 0;
141
+ overflow: hidden;
142
+ text-overflow: ellipsis;
143
+ white-space: nowrap;
144
+ }
145
+
146
+ /* An optional section the draft leaves out: in the tree, a step quieter than the rest. */
147
+ .studio-tree-off {
148
+ color: var(--color-text-secondary);
149
+ }
150
+
151
+ @media (prefers-reduced-motion: reduce) {
152
+ .studio-tree-action {
153
+ transition: none;
154
+ }
155
+ }
156
+
157
+ /*
158
+ * The studio on a phone, the way the docs reader works: the editor fills the screen, the tree
159
+ * opens over it from Sections, and the preview opens over it from Preview, with Back to return. The
160
+ * draft lives only on this page, so the preview is a sheet here rather than another page.
161
+ */
162
+ .studio-phone {
163
+ display: none;
164
+ }
165
+
166
+ /* The frame's class in each selector outranks Astryx's own one-class rules, including the panel's
167
+ resized width, without !important. */
168
+ @media (width < 768px) {
169
+ .studio-phone {
170
+ display: contents;
171
+ }
172
+
173
+ .studio-frame {
174
+ position: relative;
175
+ }
176
+
177
+ .studio-frame .studio-side {
178
+ width: 100%;
179
+ max-width: none;
180
+ flex: 1 1 auto;
181
+ }
182
+
183
+ .studio-frame .studio-side-handle,
184
+ .studio-frame .studio-tree,
185
+ .studio-frame .studio-preview {
186
+ display: none;
187
+ }
188
+
189
+ .studio-frame.studio-tree-open .studio-tree,
190
+ .studio-frame.studio-preview-open .studio-preview {
191
+ display: flex;
192
+ position: absolute;
193
+ inset: 0;
194
+ z-index: 2;
195
+ width: 100%;
196
+ }
197
+
198
+ /* The tree covers the editor inside the raised panel; the preview covers the page. */
199
+ .studio-frame.studio-tree-open .studio-tree {
200
+ background: var(--color-background-surface);
201
+ }
202
+
203
+ .studio-frame.studio-preview-open .studio-preview {
204
+ background: var(--color-background-body);
205
+ }
206
+
207
+ .studio-frame.studio-tree-open .studio-tree > * {
208
+ width: 100%;
209
+ }
210
+ }
211
+
212
+ /*
213
+ * The map opens beside the editor, in the room the preview gives up: the panel widens over the
214
+ * preview, which goes with its handle, and the tree and the editor keep the widths they had. A
215
+ * handle between the editor and the map resizes the editor as the panel's did. The frame's class
216
+ * outranks the panel's resized width.
217
+ */
218
+ .studio-map-pane {
219
+ min-width: 0;
220
+ border-inline-start: 1px solid var(--color-border);
221
+ }
222
+
223
+ @media (width >= 768px) {
224
+ .studio-frame:is(.studio-map-open, .studio-settings-open) .studio-side {
225
+ width: 100%;
226
+ max-width: none;
227
+ flex: 1 1 auto;
228
+ }
229
+
230
+ .studio-frame.studio-map-open .studio-view {
231
+ flex: 0 0 var(--studio-view-width, 24rem);
232
+ width: var(--studio-view-width, 24rem);
233
+ min-width: 0;
234
+ }
235
+
236
+ .studio-frame:is(.studio-map-open, .studio-settings-open) .studio-side-handle,
237
+ .studio-frame:is(.studio-map-open, .studio-settings-open) .studio-preview {
238
+ display: none;
239
+ }
240
+ }
241
+
242
+ /* On a phone the map covers the editor inside the raised panel, the way the tree does. */
243
+ @media (width < 768px) {
244
+ .studio-frame .studio-map-handle {
245
+ display: none;
246
+ }
247
+
248
+ .studio-frame .studio-map-pane {
249
+ position: absolute;
250
+ inset: 0;
251
+ z-index: 2;
252
+ width: 100%;
253
+ border-inline-start: 0;
254
+ background: var(--color-background-surface);
255
+ }
256
+ }
257
+
258
+ /*
259
+ * An editor swaps its list for one row's page, and back: a detector's, a question's. Each side
260
+ * fades in as it mounts, so the swap reads as a move rather than a jump.
261
+ */
262
+ .editor-page {
263
+ animation: editor-page-enter var(--duration-fast) var(--ease-standard);
264
+ }
265
+
266
+ @keyframes editor-page-enter {
267
+ from {
268
+ opacity: 0;
269
+ }
270
+ }
271
+
272
+ @media (prefers-reduced-motion: reduce) {
273
+ .editor-page {
274
+ animation: none;
275
+ }
276
+ }
277
+
278
+ /*
279
+ * A row's own action, shown while the row is hovered or holds focus. Where nothing hovers (touch),
280
+ * it always shows.
281
+ */
282
+ @media (hover: hover) {
283
+ .row-reveal {
284
+ opacity: 0;
285
+ transition: opacity var(--duration-fast) var(--ease-standard);
286
+ }
287
+
288
+ .astryx-list-item:hover .row-reveal,
289
+ .astryx-list-item:focus-within .row-reveal {
290
+ opacity: 1;
291
+ }
292
+ }
293
+
294
+ /* A unified diff, in the Save review and the file-conflict dialog: removed lines red, added lines
295
+ green, each with its sign in a gutter. */
296
+ .studio-diff {
297
+ margin: 0;
298
+ min-width: 0;
299
+ border: 1px solid var(--color-border);
300
+ border-radius: var(--radius-element);
301
+ overflow: hidden;
302
+ font-family: var(--font-family-code);
303
+ font-size: var(--font-size-xs);
304
+ line-height: 1.6;
305
+ }
306
+
307
+ .studio-diff-head {
308
+ display: flex;
309
+ align-items: center;
310
+ justify-content: space-between;
311
+ gap: var(--spacing-3);
312
+ padding: var(--spacing-1) var(--spacing-3);
313
+ border-bottom: 1px solid var(--color-border);
314
+ background: var(--color-background-muted);
315
+ color: var(--color-text-secondary);
316
+ }
317
+
318
+ .studio-diff-title {
319
+ min-width: 0;
320
+ overflow: hidden;
321
+ text-overflow: ellipsis;
322
+ white-space: nowrap;
323
+ }
324
+
325
+ .studio-diff-sides {
326
+ display: flex;
327
+ flex-wrap: wrap;
328
+ column-gap: var(--spacing-4);
329
+ min-width: 0;
330
+ }
331
+
332
+ .studio-diff-count {
333
+ display: flex;
334
+ flex: none;
335
+ gap: var(--spacing-2);
336
+ font-variant-numeric: tabular-nums;
337
+ }
338
+
339
+ .studio-diff-head [data-sign="-"] {
340
+ color: var(--color-text-red);
341
+ }
342
+
343
+ .studio-diff-head [data-sign="+"] {
344
+ color: var(--color-text-green);
345
+ }
346
+
347
+ /* The gutters size to their widest cell and every line shares them. */
348
+ .studio-diff-lines {
349
+ display: grid;
350
+ grid-template-columns: repeat(2, max-content) minmax(max-content, 1fr);
351
+ overflow: auto;
352
+ padding-block: var(--spacing-1);
353
+ }
354
+
355
+ .studio-diff[data-wrapped="true"] .studio-diff-lines {
356
+ grid-template-columns: repeat(2, max-content) minmax(0, 1fr);
357
+ }
358
+
359
+ .studio-diff-line {
360
+ display: grid;
361
+ grid-column: 1 / -1;
362
+ grid-template-columns: subgrid;
363
+ }
364
+
365
+ .studio-diff-line[data-sign="-"] {
366
+ background: var(--color-background-red);
367
+ }
368
+
369
+ .studio-diff-line[data-sign="+"] {
370
+ background: var(--color-background-green);
371
+ }
372
+
373
+ .studio-diff-number,
374
+ .studio-diff-sign {
375
+ padding-inline: var(--spacing-2);
376
+ color: var(--color-text-secondary);
377
+ text-align: end;
378
+ user-select: none;
379
+ }
380
+
381
+ .studio-diff-sign {
382
+ grid-column: 2;
383
+ text-align: center;
384
+ }
385
+
386
+ .studio-diff-line[data-sign="-"] .studio-diff-sign {
387
+ color: var(--color-text-red);
388
+ }
389
+
390
+ .studio-diff-line[data-sign="+"] .studio-diff-sign {
391
+ color: var(--color-text-green);
392
+ }
393
+
394
+ .studio-diff-line code {
395
+ grid-column: 3;
396
+ padding-inline-end: var(--spacing-3);
397
+ font: inherit;
398
+ white-space: pre;
399
+ transition: opacity 120ms ease;
400
+ }
401
+
402
+ .studio-diff[data-wrapped="true"] .studio-diff-line code {
403
+ white-space: pre-wrap;
404
+ overflow-wrap: anywhere;
405
+ }
406
+
407
+ /* The side that does not stand is set aside: struck through and faint. */
408
+ .studio-diff[data-kept="+"] .studio-diff-line[data-sign="-"] code,
409
+ .studio-diff[data-kept="-"] .studio-diff-line[data-sign="+"] code {
410
+ text-decoration: line-through;
411
+ opacity: 0.55;
412
+ }
413
+
414
+ @media (prefers-reduced-motion: reduce) {
415
+ .studio-diff-line code {
416
+ transition: none;
417
+ }
418
+ }
419
+
420
+ /* In Save's review, a file's name stays at the top while its changes pass. */
421
+ .save-file {
422
+ position: sticky;
423
+ top: 0;
424
+ z-index: 1;
425
+ padding-block: var(--spacing-1);
426
+ background: var(--color-background-surface);
427
+ }
@@ -0,0 +1,84 @@
1
+ /* Pen timing. Strokes overlap so the second crosses the first; the dot lands after both settle.
2
+ Dash geometry stays on the SVG attributes (pathLength units). Do not set
3
+ stroke-dasharray or stroke-dashoffset here: CSS lengths are pixels and the
4
+ round caps show up as dots. */
5
+ .theorem-mark {
6
+ --mark-delay: 40ms;
7
+ --mark-draw: 700ms;
8
+ --mark-draw-late: 640ms;
9
+ --mark-stagger: 220ms;
10
+ --mark-dot-at: 820ms;
11
+ --mark-dot-in: 240ms;
12
+ display: block;
13
+ width: 72px;
14
+ height: 72px;
15
+ }
16
+
17
+ .theorem-mark-stroke {
18
+ animation-name: theorem-mark-draw;
19
+ animation-duration: var(--mark-draw);
20
+ animation-timing-function: cubic-bezier(0.45, 0.02, 0.15, 1);
21
+ animation-delay: var(--mark-delay);
22
+ animation-fill-mode: forwards;
23
+ }
24
+
25
+ .theorem-mark-stroke-late {
26
+ animation-duration: var(--mark-draw-late);
27
+ animation-delay: calc(var(--mark-delay) + var(--mark-stagger));
28
+ }
29
+
30
+ .theorem-mark-dot {
31
+ transform-box: fill-box;
32
+ transform-origin: center;
33
+ transform: scale(0);
34
+ animation: theorem-mark-dot-in var(--mark-dot-in) cubic-bezier(0.16, 1, 0.3, 1)
35
+ calc(var(--mark-delay) + var(--mark-dot-at)) forwards;
36
+ }
37
+
38
+ @keyframes theorem-mark-draw {
39
+ /* Stay invisible while the dash is only a round cap, then show the line. */
40
+ 0% {
41
+ opacity: 0;
42
+ stroke-dashoffset: 1;
43
+ }
44
+
45
+ 12% {
46
+ opacity: 1;
47
+ stroke-dashoffset: 0.82;
48
+ }
49
+
50
+ 100% {
51
+ opacity: 1;
52
+ stroke-dashoffset: 0;
53
+ }
54
+ }
55
+
56
+ @keyframes theorem-mark-dot-in {
57
+ from {
58
+ opacity: 0;
59
+ transform: scale(0);
60
+ }
61
+
62
+ to {
63
+ opacity: 1;
64
+ transform: scale(1);
65
+ }
66
+ }
67
+
68
+ @media (prefers-reduced-motion: reduce) {
69
+ .theorem-mark-stroke,
70
+ .theorem-mark-dot {
71
+ animation: none;
72
+ transition: none;
73
+ }
74
+
75
+ .theorem-mark-stroke {
76
+ stroke-dashoffset: 0;
77
+ opacity: 1;
78
+ }
79
+
80
+ .theorem-mark-dot {
81
+ opacity: 1;
82
+ transform: none;
83
+ }
84
+ }
@@ -0,0 +1,22 @@
1
+ import type { SVGProps } from 'react';
2
+ /**
3
+ * Geometry of `public/favicon.svg`: the tile's 24×24 mark, translated by the
4
+ * favicon's own `(4 4)` inset. The tile's black rect is the page, so it is not drawn.
5
+ */
6
+ export declare const THEOREM_MARK: {
7
+ readonly rise: "M4.5 18.5c2 0 3-1.2 4.2-3.4l2.6-5c1-1.9 2.1-3.1 4.2-3.1";
8
+ readonly fall: "M5.5 8.2c1.6-.9 3.2-.4 3.8 1.6l2.3 6.6c.6 1.7 2.1 2.4 3.9 1.7";
9
+ readonly dot: {
10
+ readonly cx: 19.5;
11
+ readonly cy: 4.5;
12
+ readonly r: 1.6;
13
+ };
14
+ };
15
+ export type TheoremMarkProps = SVGProps<SVGSVGElement> & {
16
+ /** Stroke and dot paint. The boot and nav loaders pass white; the rail uses currentColor. */
17
+ ink?: string;
18
+ };
19
+ /** The favicon mark. Strokes draw in order, then the dot lands. */
20
+ export declare function TheoremMark({ ink, className, ...props }: TheoremMarkProps): import("react").JSX.Element;
21
+ /** The mark as an icon beside Tabler's glyphs: drawn whole and still, in the current colour. */
22
+ export declare function IconTheorem(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import './theorem-mark.css';
3
+ /**
4
+ * Geometry of `public/favicon.svg`: the tile's 24×24 mark, translated by the
5
+ * favicon's own `(4 4)` inset. The tile's black rect is the page, so it is not drawn.
6
+ */
7
+ export const THEOREM_MARK = {
8
+ rise: 'M4.5 18.5c2 0 3-1.2 4.2-3.4l2.6-5c1-1.9 2.1-3.1 4.2-3.1',
9
+ fall: 'M5.5 8.2c1.6-.9 3.2-.4 3.8 1.6l2.3 6.6c.6 1.7 2.1 2.4 3.9 1.7',
10
+ dot: { cx: 19.5, cy: 4.5, r: 1.6 },
11
+ };
12
+ /** The favicon mark. Strokes draw in order, then the dot lands. */
13
+ export function TheoremMark({ ink = 'currentColor', className, ...props }) {
14
+ const { cx, cy, r } = THEOREM_MARK.dot;
15
+ return (_jsx("svg", { viewBox: "0 0 32 32", className: className ? `theorem-mark ${className}` : 'theorem-mark', "aria-hidden": true, ...props, children: _jsxs("g", { transform: "translate(4 4)", fill: "none", stroke: ink, strokeWidth: 2, strokeLinecap: "round", children: [_jsx("path", { className: "theorem-mark-stroke", pathLength: 1, strokeDasharray: 1, strokeDashoffset: 1, opacity: 0, d: THEOREM_MARK.rise }), _jsx("path", { className: "theorem-mark-stroke theorem-mark-stroke-late", pathLength: 1, strokeDasharray: 1, strokeDashoffset: 1, opacity: 0, d: THEOREM_MARK.fall }), _jsx("circle", { className: "theorem-mark-dot", cx: cx, cy: cy, r: r, fill: ink, stroke: "none", opacity: 0 })] }) }));
16
+ }
17
+ /** The mark as an icon beside Tabler's glyphs: drawn whole and still, in the current colour. */
18
+ export function IconTheorem(props) {
19
+ const { cx, cy, r } = THEOREM_MARK.dot;
20
+ return (_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", "aria-hidden": true, ...props, children: [_jsx("path", { d: THEOREM_MARK.rise }), _jsx("path", { d: THEOREM_MARK.fall }), _jsx("circle", { cx: cx, cy: cy, r: r, fill: "currentColor", stroke: "none" })] }));
21
+ }
package/vite.d.mts ADDED
@@ -0,0 +1,30 @@
1
+ /**
2
+ * What a Vite build needs to show the studio screen (`@theoremjs/studio/ui`). `hostRoot` is the
3
+ * app that shows it; its install holds React and the design library.
4
+ *
5
+ * - The screen's packages resolve to the host's install where it has them, so there is one copy
6
+ * of each. Monaco, fflate, and zod are the package's own dependencies: an install from the
7
+ * registry puts them in the host, and a linked package keeps them beside itself.
8
+ * - `virtual:studio-codicons/*` is Monaco's icon sheets.
9
+ * - `virtual:studio-type-sources` is the declarations for the open agent's file. The Monaco
10
+ * worker typechecks that one file. It does not typecheck the kernel: these are the
11
+ * declarations for `@theoremjs/agents` (emitted from the repo when the package is linked from
12
+ * it, or the ones the installed package ships), plus the zod declarations that entry imports. Locale files and anything the entries do not reach are
13
+ * left out. The worker resolves a `.js` import in a declaration to the `.d.ts` beside it.
14
+ */
15
+ export function studioVite({ hostRoot }: {
16
+ hostRoot: any;
17
+ }): {
18
+ name: string;
19
+ config(): {
20
+ resolve: {
21
+ dedupe: string[];
22
+ };
23
+ };
24
+ resolveId(source: any): any;
25
+ load(source: any): string | undefined;
26
+ };
27
+ /** A package's folder as `root` resolves it: in its own `node_modules`, or the nearest one above. */
28
+ export function installedFrom(root: any, name: any): any;
29
+ /** A package's folder: the host's install when it has one, or the copy the studio package came with. */
30
+ export function hostPackage(hostRoot: any, name: any, ownRoot?: any): any;